{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":2804440,"defaultBranch":"main","name":"engine.io-client","ownerLogin":"socketio","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2011-11-18T18:04:11.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10566080?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717588499.0","currentOid":""},"activityList":{"items":[{"before":"a4105e542ce27b0da824bfc986ded93e2b6541fa","after":null,"ref":"refs/heads/fix/random-cache-burst","pushedAt":"2024-06-05T11:54:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"c087dc5f3290e077ea5b52e22950828a9da38252","after":"b624c508325615fe5f0ba82293d14831d8861324","ref":"refs/heads/main","pushedAt":"2024-06-05T11:54:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix: add some randomness to the cache busting string generator\n\nThe yeast() method could generate the same string twice when used in\ntwo different iframes, which can cause Safari to only send one HTTP\nrequest (deduplication) and trigger an HTTP 400 error afterwards since\nthe two iframes share the same session ID.\n\nThis new method, combining 5 chars from the timestamp and 3 chars from\nMath.random() should be sufficient for our use case.\n\nRelated: https://github.com/socketio/engine.io/issues/690\n\nSee also: https://github.com/socketio/engine.io-client/commit/874484cc1e6a12a3083f2cf6d74a3f28813ef809","shortMessageHtmlLink":"fix: add some randomness to the cache busting string generator"}},{"before":null,"after":"a4105e542ce27b0da824bfc986ded93e2b6541fa","ref":"refs/heads/fix/random-cache-burst","pushedAt":"2024-06-05T09:50:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix: use some randomness to the cache bursting string generator","shortMessageHtmlLink":"fix: use some randomness to the cache bursting string generator"}},{"before":"ce13763b524df125cf65f53f1a968752e8eef7f1","after":"c087dc5f3290e077ea5b52e22950828a9da38252","ref":"refs/heads/main","pushedAt":"2024-06-04T15:20:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"docs(changelog): include the size of the bundle","shortMessageHtmlLink":"docs(changelog): include the size of the bundle"}},{"before":"e0144c88312b64411d8e057e3c7270185536a3e7","after":null,"ref":"refs/heads/refactor/prefix-private-attributes","pushedAt":"2024-06-04T15:09:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"2b9abbbfaef804b784bed392dd129e152cdf048f","after":"ce13763b524df125cf65f53f1a968752e8eef7f1","ref":"refs/heads/main","pushedAt":"2024-06-04T15:09:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"ci: upgrade to actions/checkout@4 and actions/setup-node@4\n\nReference: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/","shortMessageHtmlLink":"ci: upgrade to actions/checkout@4 and actions/setup-node@4"}},{"before":null,"after":"e0144c88312b64411d8e057e3c7270185536a3e7","ref":"refs/heads/refactor/prefix-private-attributes","pushedAt":"2024-06-04T14:18:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: prefix private attributes to allow property mangling\n\nReference: https://terser.org/docs/options/#mangle-properties-options","shortMessageHtmlLink":"refactor: prefix private attributes to allow property mangling"}},{"before":"e105551ef17ff8a23aa3ebdea9119619ae4208ad","after":"2b9abbbfaef804b784bed392dd129e152cdf048f","ref":"refs/heads/main","pushedAt":"2024-06-03T13:07:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"chore: restore the debug package in the dev bundle\n\nThe debug package was not included anymore in the dev bundle since the\nmigration from webpack to rollup ([1]) in version 6.0.0.\n\n[1]: https://github.com/socketio/engine.io-client/commit/27de300de42420ab59a02ec7a3445e636cbcc78e\n\nSee also: https://github.com/socketio/engine.io-client/commit/4683a954d4ac265d1ad75bc813d6bc4388ba7f37","shortMessageHtmlLink":"chore: restore the debug package in the dev bundle"}},{"before":"f32f159c705f140bfbb9240b45de714623917caa","after":null,"ref":"refs/heads/fix/node-credentials-ws","pushedAt":"2024-06-03T08:02:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"3f6647897a68b0403ded768711e809c21e173fd5","after":"e105551ef17ff8a23aa3ebdea9119619ae4208ad","ref":"refs/heads/main","pushedAt":"2024-06-03T08:02:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix: fix cookie management with WebSocket (Node.js only)\n\nBefore this commit, the cookies were only sent with the HTTP\nlong-polling transport, and not when upgrading to WebSocket.\n\nSee also: https://github.com/socketio/engine.io-client/commit/5fc88a62d4017cdc144fa39b9755deadfff2db34","shortMessageHtmlLink":"fix: fix cookie management with WebSocket (Node.js only)"}},{"before":"8dc9ea93c83a3666af1a007f7a32a68770b50be4","after":"f32f159c705f140bfbb9240b45de714623917caa","ref":"refs/heads/fix/node-credentials-ws","pushedAt":"2024-06-03T07:53:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"lint","shortMessageHtmlLink":"lint"}},{"before":null,"after":"8dc9ea93c83a3666af1a007f7a32a68770b50be4","ref":"refs/heads/fix/node-credentials-ws","pushedAt":"2024-06-03T07:53:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix: include the cookies with Node.js","shortMessageHtmlLink":"fix: include the cookies with Node.js"}},{"before":"4aec72a53cca0e6eb300ce075a8ed4881c459579","after":"3f6647897a68b0403ded768711e809c21e173fd5","ref":"refs/heads/main","pushedAt":"2024-05-31T16:48:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"chore: remove unused rollup plugin\n\nThis plugin is not needed anymore, since the\n`@socket.io/component-emitter` package now includes an ESM version.","shortMessageHtmlLink":"chore: remove unused rollup plugin"}},{"before":"dd52844f09db7133cb1f9eb009cb2bd7c0a26211","after":"4aec72a53cca0e6eb300ce075a8ed4881c459579","ref":"refs/heads/main","pushedAt":"2024-05-31T16:36:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"chore: use babel loose mode when transpiling classes\n\nBy default, Babel uses `Object.defineProperty()` when transpiling\nclasses. We'll now use the loose mode which creates a more terse\noutput.\n\n| | before | after |\n|----------|--------|--------|\n| min+gzip | 8.8 KB | 8.6 KB |\n| min+br | 8.0 KB | 7.7 KB |\n\nReference: https://babeljs.io/docs/babel-plugin-transform-classes","shortMessageHtmlLink":"chore: use babel loose mode when transpiling classes"}},{"before":"f4d898ee9652939a4550a41ac0e8143056154c0a","after":"dd52844f09db7133cb1f9eb009cb2bd7c0a26211","ref":"refs/heads/main","pushedAt":"2024-05-31T16:10:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"chore: add a script to compute the bundle size","shortMessageHtmlLink":"chore: add a script to compute the bundle size"}},{"before":"5185dc17122a390159e60e8e01040a0a5447ce7d","after":null,"ref":"refs/heads/feat/transport-tree-shaking","pushedAt":"2024-05-31T15:26:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"579b243e89ac7dc58233f9844ef70817364ecf52","after":"f4d898ee9652939a4550a41ac0e8143056154c0a","ref":"refs/heads/main","pushedAt":"2024-05-31T15:25:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"feat: allow to provide a list of transport implementations\n\nThis commit adds the ability to provide a list of transport\nimplementations to use when connecting to an Engine.IO server.\n\nThis can be used to use HTTP long-polling based on `fetch()`, instead\nof the default implementation based on the `XMLHttpRequest` object.\n\n```\nimport { Socket, Fetch, WebSocket } from \"engine.io-client\";\n\nconst socket = new Socket({\n transports: [Fetch, WebSocket]\n});\n```\n\nThis is useful in some environments that do not provide a\n`XMLHttpRequest` object, like Chrome extension background scripts.\n\n> XMLHttpRequest() can't be called from a service worker, extension or\notherwise. Replace calls from your background script to\nXMLHttpRequest() with calls to global fetch().\n\nSource: https://developer.chrome.com/docs/extensions/develop/migrate/to-service-workers#replace-xmlhttprequest\n\nRelated:\n\n- https://github.com/socketio/engine.io-client/issues/716\n- https://github.com/socketio/socket.io/issues/4980\n\nThis is also useful when running the client with Deno or Bun, as it\nallows to use the built-in `fetch()` method and `WebSocket` object,\ninstead of using the `xmlhttprequest-ssl` and `ws` Node.js packages.\n\nRelated: https://github.com/socketio/socket.io-deno/issues/12\n\nThis feature also comes with the ability to exclude the code related to\nunused transports (a.k.a. \"tree-shaking\"):\n\n```js\nimport { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n\nconst socket = new SocketWithoutUpgrade({\n transports: [WebSocket]\n});\n```\n\nIn that case, the code related to HTTP long-polling and WebTransport\nwill be excluded from the final bundle.\n\nRelated: https://github.com/socketio/socket.io/discussions/4393","shortMessageHtmlLink":"feat: allow to provide a list of transport implementations"}},{"before":"745996bee1cf892aebe36eac7ea6bae0f2c2f2ee","after":"5185dc17122a390159e60e8e01040a0a5447ce7d","ref":"refs/heads/feat/transport-tree-shaking","pushedAt":"2024-05-31T14:49:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"feat: allow tree-shaking of unused transports","shortMessageHtmlLink":"feat: allow tree-shaking of unused transports"}},{"before":"5c68145de6a2e18b99d415cd04adb7318ed65ebe","after":null,"ref":"refs/heads/feat/try-all-transports","pushedAt":"2024-05-28T18:10:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"2c1851d0954f0f30338524eb4689a32a0dcb56cc","after":"579b243e89ac7dc58233f9844ef70817364ecf52","ref":"refs/heads/main","pushedAt":"2024-05-28T17:56:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"feat: add the ability to test all transports\n\nWhen setting the `tryAllTransports` option to `true`, if the first\ntransport (usually, HTTP long-polling) fails, then the other transports\nwill be tested too.\n\nThis is useful in two cases:\n\n> when HTTP long-polling is disabled on the server, or if CORS fails\n\nRelated:\n\n- https://github.com/socketio/engine.io-client/issues/575\n- https://github.com/socketio/socket.io-client/issues/1448\n\n> when WebSocket is tested first (`transports: [\"websocket\", \"polling\"])\n\nRelated:\n\n- https://github.com/socketio/engine.io-client/issues/714\n- https://github.com/socketio/socket.io-client/issues/1599\n\nThe only potential downside is that the connection attempt could take\nmore time in case of failure, as there have been reports of WebSocket\nconnection errors taking several seconds before being detected (that's\none reason for using HTTP long-polling first). That's why the option\ndefaults to `false` for now.","shortMessageHtmlLink":"feat: add the ability to test all transports"}},{"before":"68d2e764d2a83068cbd2440fe27c0c56e776007d","after":"5c68145de6a2e18b99d415cd04adb7318ed65ebe","ref":"refs/heads/feat/try-all-transports","pushedAt":"2024-05-27T16:31:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix test","shortMessageHtmlLink":"fix test"}},{"before":null,"after":"68d2e764d2a83068cbd2440fe27c0c56e776007d","ref":"refs/heads/feat/try-all-transports","pushedAt":"2024-05-27T16:22:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"feat: add the ability to test all transports","shortMessageHtmlLink":"feat: add the ability to test all transports"}},{"before":"68f9e0d8e08dd7fdbb37353137caff4b4eb63c17","after":"2c1851d0954f0f30338524eb4689a32a0dcb56cc","ref":"refs/heads/main","pushedAt":"2024-05-20T03:33:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: simplify transport creation\n\nThe try/catch clause was needed for the JSONP transport, which was\nremoved in [1].\n\n[1]: https://github.com/socketio/engine.io-client/commit/b2c73812e978489b5dfbe516a26b6b8fd628856d","shortMessageHtmlLink":"refactor: simplify transport creation"}},{"before":"68f9e0d8e08dd7fdbb37353137caff4b4eb63c17","after":null,"ref":"refs/heads/refactor/typing","pushedAt":"2024-05-19T17:58:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"156d622c485c261a542b92b129437a22bd62dd00","after":"68f9e0d8e08dd7fdbb37353137caff4b4eb63c17","ref":"refs/heads/main","pushedAt":"2024-05-19T17:58:34.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: improve the types","shortMessageHtmlLink":"refactor: improve the types"}},{"before":null,"after":"68f9e0d8e08dd7fdbb37353137caff4b4eb63c17","ref":"refs/heads/refactor/typing","pushedAt":"2024-05-19T17:55:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: improve the types","shortMessageHtmlLink":"refactor: improve the types"}},{"before":"62cbed729de418c85d89283e2f196df26d47aaff","after":"156d622c485c261a542b92b129437a22bd62dd00","ref":"refs/heads/main","pushedAt":"2024-05-19T17:20:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: remove unused onlyBinaryUpgrades option\n\nThis option no longer has any effect since [1].\n\n[1]: https://github.com/socketio/engine.io-client/commit/c46611ce44897ef27f111f34151455d57193588b","shortMessageHtmlLink":"refactor: remove unused onlyBinaryUpgrades option"}},{"before":null,"after":"745996bee1cf892aebe36eac7ea6bae0f2c2f2ee","ref":"refs/heads/feat/transport-tree-shaking","pushedAt":"2024-04-30T22:32:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"feat: allow tree-shaking of unused transports","shortMessageHtmlLink":"feat: allow tree-shaking of unused transports"}},{"before":"499267c174926256b76175cafa70166cde9211b5","after":null,"ref":"refs/heads/refactor/uri-length","pushedAt":"2024-04-23T09:25:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"b11763beecfe4622867b4dec9d1db77460733ffb","after":"62cbed729de418c85d89283e2f196df26d47aaff","ref":"refs/heads/main","pushedAt":"2024-04-23T09:25:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: change URL max length to 8000\n\nThe previous limit of 2000 characters was a bit too low in certain cases.\n\nFrom https://www.rfc-editor.org/rfc/rfc9110#section-4.1-5\n\n> It is RECOMMENDED that all senders and recipients support, at a minimum, URIs with lengths of 8000 octets in protocol elements.\n\nRelated: https://github.com/socketio/engine.io-client/issues/715\n\nSee also: https://github.com/socketio/engine.io-client/commit/707597df26abfa1e6b569b2a62918dfcc8b80b5d","shortMessageHtmlLink":"refactor: change URL max length to 8000"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXQ7eYgA","startCursor":null,"endCursor":null}},"title":"Activity ยท socketio/engine.io-client"}