@erinjs/core 1.0.0 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/{core/LICENSE → LICENSE} +203 -203
  2. package/README.md +46 -0
  3. package/dist/index.d.mts +2084 -0
  4. package/dist/index.d.ts +2084 -0
  5. package/dist/index.js +3867 -0
  6. package/dist/index.mjs +3809 -0
  7. package/package.json +50 -15
  8. package/core/.changeset/README.md +0 -8
  9. package/core/.changeset/community-bootstrap-release.md +0 -17
  10. package/core/.changeset/config.json +0 -11
  11. package/core/.changeset/no-changelog.js +0 -16
  12. package/core/.changeset/pre.json +0 -17
  13. package/core/.editorconfig +0 -13
  14. package/core/.gitattributes +0 -2
  15. package/core/.github/CODE_OF_CONDUCT.md +0 -23
  16. package/core/.github/FUNDING.yml +0 -7
  17. package/core/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
  18. package/core/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
  19. package/core/.github/PULL_REQUEST_TEMPLATE.md +0 -16
  20. package/core/.github/dependabot.yml +0 -16
  21. package/core/.github/workflows/autoapp.yml +0 -16
  22. package/core/.github/workflows/ci.yml +0 -187
  23. package/core/.github/workflows/codeql.yml +0 -30
  24. package/core/.github/workflows/deploy-docs.yml +0 -54
  25. package/core/.github/workflows/publish.yml +0 -43
  26. package/core/.lintstagedrc.json +0 -4
  27. package/core/.nvmrc +0 -1
  28. package/core/.prettierignore +0 -8
  29. package/core/.prettierrc +0 -11
  30. package/core/CONTRIBUTING.md +0 -70
  31. package/core/README.md +0 -61
  32. package/core/SECURITY.md +0 -21
  33. package/core/apps/docs/index.html +0 -28
  34. package/core/apps/docs/middleware.ts +0 -21
  35. package/core/apps/docs/package.json +0 -33
  36. package/core/apps/docs/public/@flux.png +0 -0
  37. package/core/apps/docs/public/docs/latest/guides.json +0 -1420
  38. package/core/apps/docs/public/docs/latest/main.json +0 -14981
  39. package/core/apps/docs/public/docs/latest/rag-index.json +0 -1
  40. package/core/apps/docs/public/docs/v1.0.5/guides.json +0 -226
  41. package/core/apps/docs/public/docs/v1.0.5/main.json +0 -7920
  42. package/core/apps/docs/public/docs/v1.0.6/guides.json +0 -226
  43. package/core/apps/docs/public/docs/v1.0.6/main.json +0 -7920
  44. package/core/apps/docs/public/docs/v1.0.7/guides.json +0 -259
  45. package/core/apps/docs/public/docs/v1.0.7/main.json +0 -8652
  46. package/core/apps/docs/public/docs/v1.0.8/guides.json +0 -313
  47. package/core/apps/docs/public/docs/v1.0.8/main.json +0 -9618
  48. package/core/apps/docs/public/docs/v1.0.9/guides.json +0 -319
  49. package/core/apps/docs/public/docs/v1.0.9/main.json +0 -10694
  50. package/core/apps/docs/public/docs/v1.1.0/guides.json +0 -589
  51. package/core/apps/docs/public/docs/v1.1.0/main.json +0 -12576
  52. package/core/apps/docs/public/docs/v1.1.2/guides.json +0 -650
  53. package/core/apps/docs/public/docs/v1.1.2/main.json +0 -13239
  54. package/core/apps/docs/public/docs/v1.1.3/guides.json +0 -650
  55. package/core/apps/docs/public/docs/v1.1.3/main.json +0 -13239
  56. package/core/apps/docs/public/docs/v1.1.4/guides.json +0 -708
  57. package/core/apps/docs/public/docs/v1.1.4/main.json +0 -13231
  58. package/core/apps/docs/public/docs/v1.1.5/guides.json +0 -1035
  59. package/core/apps/docs/public/docs/v1.1.5/main.json +0 -13838
  60. package/core/apps/docs/public/docs/v1.1.6/guides.json +0 -1041
  61. package/core/apps/docs/public/docs/v1.1.6/main.json +0 -14313
  62. package/core/apps/docs/public/docs/v1.1.8/guides.json +0 -1047
  63. package/core/apps/docs/public/docs/v1.1.8/main.json +0 -14421
  64. package/core/apps/docs/public/docs/v1.1.9/guides.json +0 -1047
  65. package/core/apps/docs/public/docs/v1.1.9/main.json +0 -14421
  66. package/core/apps/docs/public/docs/v1.2.0/guides.json +0 -1212
  67. package/core/apps/docs/public/docs/v1.2.0/main.json +0 -14663
  68. package/core/apps/docs/public/docs/v1.2.1/guides.json +0 -1293
  69. package/core/apps/docs/public/docs/v1.2.1/main.json +0 -14828
  70. package/core/apps/docs/public/docs/v1.2.2/guides.json +0 -1293
  71. package/core/apps/docs/public/docs/v1.2.2/main.json +0 -15025
  72. package/core/apps/docs/public/docs/v1.2.3/guides.json +0 -1420
  73. package/core/apps/docs/public/docs/v1.2.3/main.json +0 -14954
  74. package/core/apps/docs/public/docs/v1.2.4/guides.json +0 -1420
  75. package/core/apps/docs/public/docs/v1.2.4/main.json +0 -14981
  76. package/core/apps/docs/public/docs/versions.json +0 -24
  77. package/core/apps/docs/public/flux.png +0 -0
  78. package/core/apps/docs/public/locales/en.json +0 -50
  79. package/core/apps/docs/public/locales/guides-en.json +0 -512
  80. package/core/apps/docs/public/robots.txt +0 -4
  81. package/core/apps/docs/public/sitemap.xml +0 -33
  82. package/core/apps/docs/src/App.vue +0 -538
  83. package/core/apps/docs/src/components/ApiCategorySection.vue +0 -42
  84. package/core/apps/docs/src/components/ApiDiscordCompat.vue +0 -65
  85. package/core/apps/docs/src/components/ApiEndpointCard.vue +0 -313
  86. package/core/apps/docs/src/components/ApiSchemaBlock.vue +0 -131
  87. package/core/apps/docs/src/components/CodeBlock.vue +0 -177
  88. package/core/apps/docs/src/components/CommunityCallout.vue +0 -90
  89. package/core/apps/docs/src/components/ConstructorSection.vue +0 -82
  90. package/core/apps/docs/src/components/DocDescription.vue +0 -40
  91. package/core/apps/docs/src/components/FluxerLogo.vue +0 -3
  92. package/core/apps/docs/src/components/Footer.vue +0 -106
  93. package/core/apps/docs/src/components/GuideCodeBlock.vue +0 -102
  94. package/core/apps/docs/src/components/GuideDiscordCompat.vue +0 -77
  95. package/core/apps/docs/src/components/GuideDiscordCompatCallout.vue +0 -83
  96. package/core/apps/docs/src/components/GuideTable.vue +0 -77
  97. package/core/apps/docs/src/components/GuideTip.vue +0 -38
  98. package/core/apps/docs/src/components/MethodsSection.vue +0 -195
  99. package/core/apps/docs/src/components/ParamsTable.vue +0 -70
  100. package/core/apps/docs/src/components/PropertiesSection.vue +0 -143
  101. package/core/apps/docs/src/components/SearchBar.vue +0 -76
  102. package/core/apps/docs/src/components/SearchModal.vue +0 -361
  103. package/core/apps/docs/src/components/SidebarNav.vue +0 -225
  104. package/core/apps/docs/src/components/SponsorBanner.vue +0 -153
  105. package/core/apps/docs/src/components/TypeSignature.vue +0 -187
  106. package/core/apps/docs/src/components/VersionPicker.vue +0 -191
  107. package/core/apps/docs/src/composables/useSearchIndex.ts +0 -144
  108. package/core/apps/docs/src/composables/useVersionedPath.ts +0 -20
  109. package/core/apps/docs/src/data/apiEndpoints.ts +0 -1073
  110. package/core/apps/docs/src/data/changelog.ts +0 -717
  111. package/core/apps/docs/src/data/guides.ts +0 -2362
  112. package/core/apps/docs/src/env.d.ts +0 -7
  113. package/core/apps/docs/src/locales/guides-en.json +0 -512
  114. package/core/apps/docs/src/main.ts +0 -27
  115. package/core/apps/docs/src/pages/ApiReferenceLayout.vue +0 -175
  116. package/core/apps/docs/src/pages/ApiReferencePage.vue +0 -128
  117. package/core/apps/docs/src/pages/Changelog.vue +0 -288
  118. package/core/apps/docs/src/pages/ClassPage.vue +0 -319
  119. package/core/apps/docs/src/pages/ClassesList.vue +0 -100
  120. package/core/apps/docs/src/pages/DocsLayout.vue +0 -127
  121. package/core/apps/docs/src/pages/GuidePage.vue +0 -279
  122. package/core/apps/docs/src/pages/GuidesIndex.vue +0 -166
  123. package/core/apps/docs/src/pages/GuidesLayout.vue +0 -245
  124. package/core/apps/docs/src/pages/Home.vue +0 -125
  125. package/core/apps/docs/src/pages/NotFound.vue +0 -57
  126. package/core/apps/docs/src/pages/TypedefPage.vue +0 -230
  127. package/core/apps/docs/src/pages/TypedefsList.vue +0 -168
  128. package/core/apps/docs/src/pages/VersionLayout.vue +0 -15
  129. package/core/apps/docs/src/router.ts +0 -73
  130. package/core/apps/docs/src/stores/docs.ts +0 -54
  131. package/core/apps/docs/src/stores/guides.ts +0 -53
  132. package/core/apps/docs/src/stores/version.ts +0 -67
  133. package/core/apps/docs/src/styles/main.css +0 -278
  134. package/core/apps/docs/src/styles/prism.css +0 -95
  135. package/core/apps/docs/src/types/doc-schema.ts +0 -112
  136. package/core/apps/docs/tsconfig.json +0 -17
  137. package/core/apps/docs/tsconfig.node.json +0 -10
  138. package/core/apps/docs/vite.config.d.ts +0 -2
  139. package/core/apps/docs/vite.config.js +0 -26
  140. package/core/apps/docs/vite.config.ts +0 -28
  141. package/core/apps/docs-vitepress/.vitepress/config.ts +0 -141
  142. package/core/apps/docs-vitepress/api-data/latest/main.json +0 -15035
  143. package/core/apps/docs-vitepress/api-data/v1.2.4/main.json +0 -15035
  144. package/core/apps/docs-vitepress/api-data/versions.json +0 -6
  145. package/core/apps/docs-vitepress/index.md +0 -15
  146. package/core/apps/docs-vitepress/package-lock.json +0 -2924
  147. package/core/apps/docs-vitepress/package.json +0 -20
  148. package/core/apps/docs-vitepress/public/CNAME +0 -1
  149. package/core/apps/docs-vitepress/scripts/generate-api.ts +0 -243
  150. package/core/apps/docs-vitepress/scripts/migrate-guides.ts +0 -129
  151. package/core/apps/docs-vitepress/tsconfig.json +0 -11
  152. package/core/apps/docs-vitepress/v/latest/guides/attachments-by-url.md +0 -57
  153. package/core/apps/docs-vitepress/v/latest/guides/attachments.md +0 -62
  154. package/core/apps/docs-vitepress/v/latest/guides/basic-bot.md +0 -49
  155. package/core/apps/docs-vitepress/v/latest/guides/channels.md +0 -180
  156. package/core/apps/docs-vitepress/v/latest/guides/deprecated-apis.md +0 -58
  157. package/core/apps/docs-vitepress/v/latest/guides/discord-js-compatibility.md +0 -42
  158. package/core/apps/docs-vitepress/v/latest/guides/editing-embeds.md +0 -65
  159. package/core/apps/docs-vitepress/v/latest/guides/embed-media.md +0 -87
  160. package/core/apps/docs-vitepress/v/latest/guides/embeds.md +0 -166
  161. package/core/apps/docs-vitepress/v/latest/guides/emojis.md +0 -77
  162. package/core/apps/docs-vitepress/v/latest/guides/events.md +0 -202
  163. package/core/apps/docs-vitepress/v/latest/guides/gifs.md +0 -47
  164. package/core/apps/docs-vitepress/v/latest/guides/installation.md +0 -10
  165. package/core/apps/docs-vitepress/v/latest/guides/moderation.md +0 -89
  166. package/core/apps/docs-vitepress/v/latest/guides/permissions.md +0 -130
  167. package/core/apps/docs-vitepress/v/latest/guides/prefix-commands.md +0 -41
  168. package/core/apps/docs-vitepress/v/latest/guides/profile-urls.md +0 -58
  169. package/core/apps/docs-vitepress/v/latest/guides/reactions.md +0 -69
  170. package/core/apps/docs-vitepress/v/latest/guides/roles.md +0 -130
  171. package/core/apps/docs-vitepress/v/latest/guides/sending-without-reply.md +0 -172
  172. package/core/apps/docs-vitepress/v/latest/guides/voice.md +0 -109
  173. package/core/apps/docs-vitepress/v/latest/guides/wait-for-guilds.md +0 -37
  174. package/core/apps/docs-vitepress/v/latest/guides/webhook-attachments-embeds.md +0 -73
  175. package/core/apps/docs-vitepress/v/latest/guides/webhooks.md +0 -131
  176. package/core/eslint.config.js +0 -80
  177. package/core/examples/.env.example +0 -22
  178. package/core/examples/README.md +0 -68
  179. package/core/examples/first-steps-bot.js +0 -118
  180. package/core/examples/minimal-bot.js +0 -17
  181. package/core/examples/moderation-bot.js +0 -209
  182. package/core/examples/package.json +0 -14
  183. package/core/examples/ping-bot.js +0 -1146
  184. package/core/examples/reaction-bot.js +0 -70
  185. package/core/examples/reaction-roles-bot.js +0 -140
  186. package/core/examples/webhook-bot.js +0 -239
  187. package/core/flux.png +0 -0
  188. package/core/package.json +0 -78
  189. package/core/packages/builders/package.json +0 -51
  190. package/core/packages/builders/src/index.ts +0 -13
  191. package/core/packages/builders/src/messages/AttachmentBuilder.test.ts +0 -79
  192. package/core/packages/builders/src/messages/AttachmentBuilder.ts +0 -69
  193. package/core/packages/builders/src/messages/EmbedBuilder.test.ts +0 -266
  194. package/core/packages/builders/src/messages/EmbedBuilder.ts +0 -239
  195. package/core/packages/builders/src/messages/MessagePayload.test.ts +0 -118
  196. package/core/packages/builders/src/messages/MessagePayload.ts +0 -122
  197. package/core/packages/builders/tsconfig.json +0 -9
  198. package/core/packages/builders/tsup.config.ts +0 -9
  199. package/core/packages/builders/vitest.config.ts +0 -9
  200. package/core/packages/collection/package.json +0 -47
  201. package/core/packages/collection/src/Collection.test.ts +0 -232
  202. package/core/packages/collection/src/Collection.ts +0 -196
  203. package/core/packages/collection/src/index.ts +0 -1
  204. package/core/packages/collection/tsconfig.json +0 -9
  205. package/core/packages/collection/tsup.config.ts +0 -9
  206. package/core/packages/collection/vitest.config.ts +0 -9
  207. package/core/packages/docgen/package.json +0 -26
  208. package/core/packages/docgen/src/extract.ts +0 -262
  209. package/core/packages/docgen/src/formatType.ts +0 -24
  210. package/core/packages/docgen/src/index.ts +0 -103
  211. package/core/packages/docgen/src/schema.ts +0 -100
  212. package/core/packages/docgen/src/visitor.ts +0 -147
  213. package/core/packages/docgen/tsconfig.json +0 -9
  214. package/core/packages/docgen/tsup.config.ts +0 -9
  215. package/core/packages/fluxer-core/README.md +0 -26
  216. package/core/packages/fluxer-core/package.json +0 -60
  217. package/core/packages/fluxer-core/src/client/ChannelManager.ts +0 -143
  218. package/core/packages/fluxer-core/src/client/Client.gateway.test.ts +0 -84
  219. package/core/packages/fluxer-core/src/client/Client.resolveEmoji.test.ts +0 -45
  220. package/core/packages/fluxer-core/src/client/Client.ts +0 -558
  221. package/core/packages/fluxer-core/src/client/ClientUser.ts +0 -40
  222. package/core/packages/fluxer-core/src/client/EventHandlerRegistry.ts +0 -469
  223. package/core/packages/fluxer-core/src/client/GuildManager.ts +0 -79
  224. package/core/packages/fluxer-core/src/client/GuildMemberManager.ts +0 -91
  225. package/core/packages/fluxer-core/src/client/MessageManager.ts +0 -58
  226. package/core/packages/fluxer-core/src/client/UsersManager.ts +0 -122
  227. package/core/packages/fluxer-core/src/errors/ErrorCodes.test.ts +0 -19
  228. package/core/packages/fluxer-core/src/errors/ErrorCodes.ts +0 -12
  229. package/core/packages/fluxer-core/src/errors/FluxerError.test.ts +0 -32
  230. package/core/packages/fluxer-core/src/errors/FluxerError.ts +0 -15
  231. package/core/packages/fluxer-core/src/index.ts +0 -85
  232. package/core/packages/fluxer-core/src/structures/Base.ts +0 -7
  233. package/core/packages/fluxer-core/src/structures/Channel.ts +0 -508
  234. package/core/packages/fluxer-core/src/structures/Guild.test.ts +0 -189
  235. package/core/packages/fluxer-core/src/structures/Guild.ts +0 -734
  236. package/core/packages/fluxer-core/src/structures/GuildBan.ts +0 -35
  237. package/core/packages/fluxer-core/src/structures/GuildEmoji.ts +0 -57
  238. package/core/packages/fluxer-core/src/structures/GuildMember.test.ts +0 -203
  239. package/core/packages/fluxer-core/src/structures/GuildMember.ts +0 -213
  240. package/core/packages/fluxer-core/src/structures/GuildMemberRoleManager.ts +0 -121
  241. package/core/packages/fluxer-core/src/structures/GuildSticker.ts +0 -56
  242. package/core/packages/fluxer-core/src/structures/Invite.test.ts +0 -103
  243. package/core/packages/fluxer-core/src/structures/Invite.ts +0 -121
  244. package/core/packages/fluxer-core/src/structures/Message.test.ts +0 -109
  245. package/core/packages/fluxer-core/src/structures/Message.ts +0 -397
  246. package/core/packages/fluxer-core/src/structures/MessageReaction.ts +0 -72
  247. package/core/packages/fluxer-core/src/structures/PartialMessage.ts +0 -12
  248. package/core/packages/fluxer-core/src/structures/Role.test.ts +0 -77
  249. package/core/packages/fluxer-core/src/structures/Role.ts +0 -112
  250. package/core/packages/fluxer-core/src/structures/User.test.ts +0 -110
  251. package/core/packages/fluxer-core/src/structures/User.ts +0 -109
  252. package/core/packages/fluxer-core/src/structures/Webhook.test.ts +0 -109
  253. package/core/packages/fluxer-core/src/structures/Webhook.ts +0 -258
  254. package/core/packages/fluxer-core/src/util/Constants.test.ts +0 -16
  255. package/core/packages/fluxer-core/src/util/Constants.ts +0 -7
  256. package/core/packages/fluxer-core/src/util/Events.ts +0 -46
  257. package/core/packages/fluxer-core/src/util/MessageCollector.ts +0 -87
  258. package/core/packages/fluxer-core/src/util/Options.ts +0 -33
  259. package/core/packages/fluxer-core/src/util/ReactionCollector.ts +0 -116
  260. package/core/packages/fluxer-core/src/util/cdn.test.ts +0 -108
  261. package/core/packages/fluxer-core/src/util/cdn.ts +0 -130
  262. package/core/packages/fluxer-core/src/util/guildUtils.ts +0 -33
  263. package/core/packages/fluxer-core/src/util/messageUtils.test.ts +0 -74
  264. package/core/packages/fluxer-core/src/util/messageUtils.ts +0 -119
  265. package/core/packages/fluxer-core/src/util/permissions.test.ts +0 -95
  266. package/core/packages/fluxer-core/src/util/permissions.ts +0 -43
  267. package/core/packages/fluxer-core/tsconfig.json +0 -9
  268. package/core/packages/fluxer-core/tsup.config.ts +0 -9
  269. package/core/packages/fluxer-core/vitest.config.ts +0 -9
  270. package/core/packages/rest/package.json +0 -52
  271. package/core/packages/rest/src/REST.test.ts +0 -64
  272. package/core/packages/rest/src/REST.ts +0 -90
  273. package/core/packages/rest/src/RateLimitManager.test.ts +0 -71
  274. package/core/packages/rest/src/RateLimitManager.ts +0 -60
  275. package/core/packages/rest/src/RequestManager.test.ts +0 -87
  276. package/core/packages/rest/src/RequestManager.ts +0 -172
  277. package/core/packages/rest/src/errors/FluxerAPIError.test.ts +0 -57
  278. package/core/packages/rest/src/errors/FluxerAPIError.ts +0 -21
  279. package/core/packages/rest/src/errors/HTTPError.test.ts +0 -55
  280. package/core/packages/rest/src/errors/HTTPError.ts +0 -25
  281. package/core/packages/rest/src/errors/RateLimitError.test.ts +0 -41
  282. package/core/packages/rest/src/errors/RateLimitError.ts +0 -15
  283. package/core/packages/rest/src/errors/index.ts +0 -3
  284. package/core/packages/rest/src/index.ts +0 -6
  285. package/core/packages/rest/src/utils/constants.test.ts +0 -31
  286. package/core/packages/rest/src/utils/constants.ts +0 -5
  287. package/core/packages/rest/src/utils/files.test.ts +0 -37
  288. package/core/packages/rest/src/utils/files.ts +0 -75
  289. package/core/packages/rest/tsconfig.json +0 -9
  290. package/core/packages/rest/tsup.config.ts +0 -9
  291. package/core/packages/rest/vitest.config.ts +0 -9
  292. package/core/packages/types/package.json +0 -46
  293. package/core/packages/types/src/api/ban.ts +0 -8
  294. package/core/packages/types/src/api/channel.ts +0 -65
  295. package/core/packages/types/src/api/embed.ts +0 -82
  296. package/core/packages/types/src/api/emoji.ts +0 -12
  297. package/core/packages/types/src/api/errors.ts +0 -68
  298. package/core/packages/types/src/api/gateway.ts +0 -14
  299. package/core/packages/types/src/api/guild.ts +0 -123
  300. package/core/packages/types/src/api/index.ts +0 -15
  301. package/core/packages/types/src/api/instance.ts +0 -32
  302. package/core/packages/types/src/api/interaction.ts +0 -26
  303. package/core/packages/types/src/api/invite.ts +0 -28
  304. package/core/packages/types/src/api/message.ts +0 -140
  305. package/core/packages/types/src/api/role.ts +0 -41
  306. package/core/packages/types/src/api/sticker.ts +0 -14
  307. package/core/packages/types/src/api/user.ts +0 -79
  308. package/core/packages/types/src/api/webhook.ts +0 -41
  309. package/core/packages/types/src/common/index.ts +0 -1
  310. package/core/packages/types/src/common/snowflake.test.ts +0 -9
  311. package/core/packages/types/src/common/snowflake.ts +0 -8
  312. package/core/packages/types/src/gateway/events.ts +0 -189
  313. package/core/packages/types/src/gateway/index.ts +0 -3
  314. package/core/packages/types/src/gateway/opcodes.ts +0 -17
  315. package/core/packages/types/src/gateway/payloads.ts +0 -481
  316. package/core/packages/types/src/index.ts +0 -4
  317. package/core/packages/types/src/rest/index.ts +0 -1
  318. package/core/packages/types/src/rest/routes.test.ts +0 -169
  319. package/core/packages/types/src/rest/routes.ts +0 -109
  320. package/core/packages/types/tsconfig.json +0 -9
  321. package/core/packages/types/tsup.config.ts +0 -9
  322. package/core/packages/types/vitest.config.ts +0 -9
  323. package/core/packages/util/package.json +0 -51
  324. package/core/packages/util/src/BitField.test.ts +0 -96
  325. package/core/packages/util/src/BitField.ts +0 -105
  326. package/core/packages/util/src/MessageFlagsBitField.test.ts +0 -42
  327. package/core/packages/util/src/MessageFlagsBitField.ts +0 -20
  328. package/core/packages/util/src/PermissionsBitField.test.ts +0 -79
  329. package/core/packages/util/src/PermissionsBitField.ts +0 -97
  330. package/core/packages/util/src/SnowflakeUtil.test.ts +0 -69
  331. package/core/packages/util/src/SnowflakeUtil.ts +0 -65
  332. package/core/packages/util/src/UserFlagsBitField.test.ts +0 -39
  333. package/core/packages/util/src/UserFlagsBitField.ts +0 -48
  334. package/core/packages/util/src/deprecation.test.ts +0 -44
  335. package/core/packages/util/src/deprecation.ts +0 -28
  336. package/core/packages/util/src/emojiShortcodes.generated.ts +0 -5
  337. package/core/packages/util/src/emojiShortcodes.test.ts +0 -41
  338. package/core/packages/util/src/emojiShortcodes.ts +0 -22
  339. package/core/packages/util/src/formatters.test.ts +0 -65
  340. package/core/packages/util/src/formatters.ts +0 -35
  341. package/core/packages/util/src/index.ts +0 -34
  342. package/core/packages/util/src/resolvers.test.ts +0 -198
  343. package/core/packages/util/src/resolvers.ts +0 -127
  344. package/core/packages/util/src/tenorUtils.test.ts +0 -75
  345. package/core/packages/util/src/tenorUtils.ts +0 -86
  346. package/core/packages/util/tsconfig.json +0 -9
  347. package/core/packages/util/tsup.config.ts +0 -9
  348. package/core/packages/util/vitest.config.ts +0 -9
  349. package/core/packages/voice/README.md +0 -42
  350. package/core/packages/voice/package.json +0 -67
  351. package/core/packages/voice/src/LiveKitRtcConnection.receive.test.ts +0 -24
  352. package/core/packages/voice/src/LiveKitRtcConnection.ts +0 -1767
  353. package/core/packages/voice/src/VoiceConnection.ts +0 -413
  354. package/core/packages/voice/src/VoiceManager.receive.test.ts +0 -61
  355. package/core/packages/voice/src/VoiceManager.test.ts +0 -44
  356. package/core/packages/voice/src/VoiceManager.ts +0 -503
  357. package/core/packages/voice/src/exports.test.ts +0 -38
  358. package/core/packages/voice/src/index.ts +0 -51
  359. package/core/packages/voice/src/livekit.test.ts +0 -48
  360. package/core/packages/voice/src/livekit.ts +0 -33
  361. package/core/packages/voice/src/mp4box.d.ts +0 -32
  362. package/core/packages/voice/src/opusUtils.test.ts +0 -29
  363. package/core/packages/voice/src/opusUtils.ts +0 -86
  364. package/core/packages/voice/src/streamPreviewPlaceholder.test.ts +0 -16
  365. package/core/packages/voice/src/streamPreviewPlaceholder.ts +0 -8
  366. package/core/packages/voice/src/ws.d.ts +0 -1
  367. package/core/packages/voice/tsconfig.json +0 -5
  368. package/core/packages/voice/tsup.config.ts +0 -10
  369. package/core/packages/voice/vitest.config.ts +0 -9
  370. package/core/packages/ws/package.json +0 -52
  371. package/core/packages/ws/src/WebSocketManager.ts +0 -130
  372. package/core/packages/ws/src/WebSocketShard.ts +0 -296
  373. package/core/packages/ws/src/index.ts +0 -12
  374. package/core/packages/ws/src/utils/constants.test.ts +0 -46
  375. package/core/packages/ws/src/utils/constants.ts +0 -22
  376. package/core/packages/ws/src/utils/getWebSocket.ts +0 -55
  377. package/core/packages/ws/src/ws.d.ts +0 -10
  378. package/core/packages/ws/tsconfig.json +0 -9
  379. package/core/packages/ws/tsup.config.ts +0 -9
  380. package/core/pnpm-lock.yaml +0 -7033
  381. package/core/pnpm-workspace.yaml +0 -4
  382. package/core/scripts/generate-ai-rag.ts +0 -240
  383. package/core/scripts/generate-docs.ts +0 -143
  384. package/core/scripts/generate-emoji-shortcodes.ts +0 -58
  385. package/core/scripts/generate-types.ts +0 -6
  386. package/core/scripts/publish-ordered.js +0 -63
  387. package/core/scripts/test-cjs-require.mjs +0 -43
  388. package/core/scripts/test-esm-imports.mjs +0 -42
  389. package/core/scripts/test-package-exports.mjs +0 -98
  390. package/core/scripts/test-smoke.mjs +0 -103
  391. package/core/tsconfig.json +0 -18
  392. package/core/turbo.json +0 -30
  393. package/core/vitest.config.ts +0 -17
  394. package/core/wrangler.jsonc +0 -9
@@ -1,4 +0,0 @@
1
- packages:
2
- - 'packages/*'
3
- - 'examples'
4
- - 'apps/*'
@@ -1,240 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Generate RAG index for Fluxer AI bot.
4
- * Chunks main.json + guides.json, embeds via OpenRouter, writes rag-index.json.
5
- * Run after generate-docs. Requires OPENROUTER_API_KEY (in .env or environment).
6
- */
7
-
8
- import { config } from 'dotenv';
9
- import { resolve, dirname } from 'path';
10
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
11
- import { fileURLToPath } from 'url';
12
-
13
- const __dirname = dirname(fileURLToPath(import.meta.url));
14
- config({ path: resolve(__dirname, '../.env'), quiet: true });
15
- const root = resolve(__dirname, '..');
16
- const DOCS_DIR = resolve(root, 'apps/docs/public/docs/latest');
17
- const RAG_INDEX_PATH = resolve(DOCS_DIR, 'rag-index.json');
18
- const OR_EMBED_ENDPOINT = 'https://openrouter.ai/api/v1/embeddings';
19
- const EMBED_MODEL = 'openai/text-embedding-3-small';
20
- const BATCH_SIZE = 25;
21
- const BATCH_DELAY_MS = 500;
22
-
23
- interface RagChunk {
24
- id: string;
25
- type: string;
26
- source: string;
27
- text: string;
28
- meta: { slug?: string; url?: string };
29
- embedding?: number[];
30
- }
31
-
32
- function formatMethodSig(m: {
33
- name: string;
34
- params?: Array<{ name: string; type: string }>;
35
- returns?: string;
36
- }): string {
37
- const params = m.params?.map((p) => `${p.name}: ${p.type}`).join(', ') ?? '';
38
- const ret = m.returns ? ` -> ${m.returns}` : '';
39
- return `${m.name}(${params})${ret}`;
40
- }
41
-
42
- function chunkMainJson(main: {
43
- classes?: Array<{
44
- name: string;
45
- description?: string;
46
- properties?: Array<{ name: string; type: string }>;
47
- methods?: Array<{
48
- name: string;
49
- params?: Array<{ name: string; type: string }>;
50
- returns?: string;
51
- description?: string;
52
- }>;
53
- }>;
54
- interfaces?: Array<{
55
- name: string;
56
- description?: string;
57
- properties?: Array<{ name: string; type: string }>;
58
- }>;
59
- enums?: Array<{
60
- name: string;
61
- members?: Array<{ name: string; value?: string }>;
62
- }>;
63
- }): RagChunk[] {
64
- const chunks: RagChunk[] = [];
65
-
66
- for (const c of main.classes ?? []) {
67
- const parts: string[] = [];
68
- parts.push(`Class: ${c.name}`);
69
- if (c.description) parts.push(`Description: ${c.description}`);
70
- if (c.properties?.length) {
71
- parts.push(`Properties: ${c.properties.map((p) => `${p.name}: ${p.type}`).join(', ')}`);
72
- }
73
- if (c.methods?.length) {
74
- const methodStrs = c.methods.map((m) => {
75
- const sig = formatMethodSig(m);
76
- return m.description ? `${sig} — ${m.description}` : sig;
77
- });
78
- parts.push(`Methods: ${methodStrs.join('; ')}`);
79
- }
80
- chunks.push({
81
- id: `class-${c.name}`,
82
- type: 'class',
83
- source: 'main',
84
- text: parts.join('\n'),
85
- meta: { url: `/docs/classes/${c.name}` },
86
- });
87
- }
88
-
89
- for (const i of main.interfaces ?? []) {
90
- const parts: string[] = [];
91
- parts.push(`Interface: ${i.name}`);
92
- if (i.description) parts.push(`Description: ${i.description}`);
93
- if (i.properties?.length) {
94
- parts.push(`Properties: ${i.properties.map((p) => `${p.name}: ${p.type}`).join(', ')}`);
95
- }
96
- chunks.push({
97
- id: `interface-${i.name}`,
98
- type: 'interface',
99
- source: 'main',
100
- text: parts.join('\n'),
101
- meta: { url: `/docs/typedefs/${i.name}` },
102
- });
103
- }
104
-
105
- for (const e of main.enums ?? []) {
106
- const members =
107
- e.members?.map((m) => `${m.name}${m.value != null ? `=${m.value}` : ''}`).join(', ') ?? '';
108
- chunks.push({
109
- id: `enum-${e.name}`,
110
- type: 'enum',
111
- source: 'main',
112
- text: `Enum: ${e.name}\nMembers: ${members}`,
113
- meta: { url: `/docs/typedefs/${e.name}` },
114
- });
115
- }
116
-
117
- return chunks;
118
- }
119
-
120
- function chunkGuidesJson(
121
- guides: Array<{
122
- slug: string;
123
- title: string;
124
- description?: string;
125
- sections?: Array<{
126
- title?: string;
127
- description?: string;
128
- code?: string;
129
- language?: string;
130
- }>;
131
- }>,
132
- ): RagChunk[] {
133
- const chunks: RagChunk[] = [];
134
-
135
- for (const g of guides) {
136
- const sections = g.sections ?? [];
137
- for (let i = 0; i < sections.length; i++) {
138
- const s = sections[i];
139
- const parts: string[] = [];
140
- parts.push(`Guide: ${g.title} (${g.slug})`);
141
- if (s.title) parts.push(`Section: ${s.title}`);
142
- if (s.description) parts.push(s.description);
143
- if (s.code) parts.push(`\n\`\`\`${s.language ?? 'js'}\n${s.code}\n\`\`\``);
144
- const text = parts.join('\n');
145
- if (!text.trim()) continue;
146
- chunks.push({
147
- id: `guide-${g.slug}-${i}`,
148
- type: 'guide',
149
- source: 'guides',
150
- text,
151
- meta: { slug: g.slug, url: `/guides/${g.slug}` },
152
- });
153
- }
154
- }
155
-
156
- return chunks;
157
- }
158
-
159
- async function embedBatch(texts: string[], apiKey: string): Promise<number[][]> {
160
- const res = await fetch(OR_EMBED_ENDPOINT, {
161
- method: 'POST',
162
- headers: {
163
- 'Content-Type': 'application/json',
164
- Authorization: `Bearer ${apiKey}`,
165
- },
166
- body: JSON.stringify({
167
- model: EMBED_MODEL,
168
- input: texts,
169
- }),
170
- });
171
-
172
- if (!res.ok) {
173
- const err = await res.text();
174
- throw new Error(`Embeddings API ${res.status}: ${err.slice(0, 300)}`);
175
- }
176
-
177
- const data = (await res.json()) as { data: Array<{ embedding: number[] }> };
178
- return data.data.map((d) => d.embedding);
179
- }
180
-
181
- async function main(): Promise<void> {
182
- const apiKey = process.env.OPENROUTER_API_KEY;
183
- if (!apiKey) {
184
- console.error('[generate-ai-rag] OPENROUTER_API_KEY is required');
185
- process.exit(1);
186
- }
187
-
188
- const mainPath = resolve(DOCS_DIR, 'main.json');
189
- const guidesPath = resolve(DOCS_DIR, 'guides.json');
190
-
191
- if (!existsSync(mainPath)) {
192
- console.error('[generate-ai-rag] main.json not found. Run: pnpm run generate:docs');
193
- process.exit(1);
194
- }
195
- if (!existsSync(guidesPath)) {
196
- console.error('[generate-ai-rag] guides.json not found. Run: pnpm run generate:docs');
197
- process.exit(1);
198
- }
199
-
200
- const main = JSON.parse(readFileSync(mainPath, 'utf-8'));
201
- const guides = JSON.parse(readFileSync(guidesPath, 'utf-8'));
202
-
203
- const mainChunks = chunkMainJson(main);
204
- const guideChunks = chunkGuidesJson(guides);
205
- const allChunks = [...mainChunks, ...guideChunks];
206
-
207
- console.log(
208
- `[generate-ai-rag] Chunked ${mainChunks.length} from main.json, ${guideChunks.length} from guides.json`,
209
- );
210
-
211
- for (let i = 0; i < allChunks.length; i += BATCH_SIZE) {
212
- const batch = allChunks.slice(i, i + BATCH_SIZE);
213
- const texts = batch.map((c) => c.text);
214
- const embeddings = await embedBatch(texts, apiKey);
215
- for (let j = 0; j < batch.length; j++) {
216
- batch[j].embedding = embeddings[j];
217
- }
218
- console.log(
219
- `[generate-ai-rag] Embedded ${Math.min(i + BATCH_SIZE, allChunks.length)}/${allChunks.length}`,
220
- );
221
- if (i + BATCH_SIZE < allChunks.length) {
222
- await new Promise((r) => setTimeout(r, BATCH_DELAY_MS));
223
- }
224
- }
225
-
226
- mkdirSync(DOCS_DIR, { recursive: true });
227
- const output = {
228
- model: EMBED_MODEL,
229
- dimensions: allChunks[0]?.embedding?.length ?? 1536,
230
- generatedAt: Date.now(),
231
- chunks: allChunks,
232
- };
233
- writeFileSync(RAG_INDEX_PATH, JSON.stringify(output), 'utf-8');
234
- console.log(`[generate-ai-rag] Wrote ${RAG_INDEX_PATH}`);
235
- }
236
-
237
- main().catch((err) => {
238
- console.error(err);
239
- process.exit(1);
240
- });
@@ -1,143 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Generate combined API documentation JSON from all SDK packages.
4
- * Output: apps/docs/public/docs/main.json (single file)
5
- */
6
-
7
- import { resolve, dirname } from 'path';
8
- import { mkdirSync, writeFileSync, readFileSync, unlinkSync, readdirSync } from 'fs';
9
- import { fileURLToPath } from 'url';
10
- import { generateDocs } from '@erinjs/docgen';
11
- import { DocOutput } from '@erinjs/docgen';
12
-
13
- const __dirname = dirname(fileURLToPath(import.meta.url));
14
- const root = resolve(__dirname, '..');
15
-
16
- const PACKAGES: { id: string; name: string; pkgPath: string }[] = [
17
- { id: 'core', name: '@erinjs/core', pkgPath: 'packages/fluxer-core' },
18
- { id: 'builders', name: '@erinjs/builders', pkgPath: 'packages/builders' },
19
- { id: 'rest', name: '@erinjs/rest', pkgPath: 'packages/rest' },
20
- { id: 'ws', name: '@erinjs/ws', pkgPath: 'packages/ws' },
21
- { id: 'voice', name: '@erinjs/voice', pkgPath: 'packages/voice' },
22
- { id: 'util', name: '@erinjs/util', pkgPath: 'packages/util' },
23
- { id: 'collection', name: '@erinjs/collection', pkgPath: 'packages/collection' },
24
- { id: 'types', name: '@erinjs/types', pkgPath: 'packages/types' },
25
- ];
26
-
27
- const DOCS_DIR = resolve(root, 'apps/docs-vitepress/api-data');
28
-
29
- function getVersion(): string {
30
- try {
31
- const pkg = JSON.parse(readFileSync(resolve(root, 'package.json'), 'utf-8'));
32
- return pkg.version ?? '1.1.0';
33
- } catch {
34
- return '1.1.0';
35
- }
36
- }
37
-
38
- async function main(): Promise<void> {
39
- const allClasses: DocOutput['classes'] = [];
40
- const allInterfaces: DocOutput['interfaces'] = [];
41
- const allEnums: DocOutput['enums'] = [];
42
- const packages = new Set<string>();
43
-
44
- const seen = new Set<string>();
45
-
46
- for (const pkg of PACKAGES) {
47
- try {
48
- const pkgRoot = resolve(root, pkg.pkgPath);
49
- const tsconfigPath = resolve(pkgRoot, 'tsconfig.json');
50
- const outDir = resolve(root, 'apps/docs-vitepress/api-data');
51
- const tempFile = resolve(outDir, `_temp_${pkg.id}.json`);
52
-
53
- generateDocs({
54
- entryPoints: ['src/index.ts'],
55
- tsconfigPath,
56
- packageName: pkg.name,
57
- outFile: tempFile,
58
- repoRoot: root,
59
- });
60
-
61
- const data = JSON.parse(readFileSync(tempFile, 'utf-8')) as DocOutput;
62
- unlinkSync(tempFile);
63
-
64
- for (const c of data.classes ?? []) {
65
- if (!seen.has(`class:${c.name}`)) {
66
- seen.add(`class:${c.name}`);
67
- allClasses.push({ ...c, package: pkg.name });
68
- packages.add(pkg.name);
69
- }
70
- }
71
- for (const i of data.interfaces ?? []) {
72
- if (!seen.has(`interface:${i.name}`)) {
73
- seen.add(`interface:${i.name}`);
74
- allInterfaces.push({ ...i, package: pkg.name });
75
- packages.add(pkg.name);
76
- }
77
- }
78
- for (const e of data.enums ?? []) {
79
- if (!seen.has(`enum:${e.name}`)) {
80
- seen.add(`enum:${e.name}`);
81
- allEnums.push({ ...e, package: pkg.name });
82
- packages.add(pkg.name);
83
- }
84
- }
85
- console.log(`[generate-docs] ${pkg.name}`);
86
- } catch (err) {
87
- console.error(`[generate-docs] Failed for ${pkg.name}:`, err);
88
- throw err;
89
- }
90
- }
91
-
92
- allClasses.sort((a, b) => a.name.localeCompare(b.name));
93
- allInterfaces.sort((a, b) => a.name.localeCompare(b.name));
94
- allEnums.sort((a, b) => a.name.localeCompare(b.name));
95
-
96
- const version = getVersion();
97
- const combined: DocOutput = {
98
- meta: { generator: 'fluxer-docgen', version: '1', date: Date.now() },
99
- package: '@erinjs/core',
100
- version,
101
- packages: Array.from(packages).sort(),
102
- classes: allClasses,
103
- interfaces: allInterfaces,
104
- enums: allEnums,
105
- };
106
-
107
- const jsonStr = JSON.stringify(combined, null, 2);
108
-
109
- // Write to versioned path: docs/v1.0.6/main.json (separate file per version)
110
- const versionedDir = resolve(DOCS_DIR, `v${version}`);
111
- mkdirSync(versionedDir, { recursive: true });
112
- const versionedFile = resolve(versionedDir, 'main.json');
113
- writeFileSync(versionedFile, jsonStr, 'utf-8');
114
- console.log(`[generate-docs] Versioned -> ${versionedFile}`);
115
-
116
- // Also write to docs/latest/main.json for the "latest" alias (avoids extra redirect)
117
- const latestDir = resolve(DOCS_DIR, 'latest');
118
- mkdirSync(latestDir, { recursive: true });
119
- writeFileSync(resolve(latestDir, 'main.json'), jsonStr, 'utf-8');
120
- console.log(`[generate-docs] Latest -> ${latestDir}/main.json`);
121
-
122
- // versions.json — derive from actual v* folders so we never lose older versions
123
- const versionsPath = resolve(DOCS_DIR, 'versions.json');
124
- const dirEntries = readdirSync(DOCS_DIR, { withFileTypes: true });
125
- const versionDirs = dirEntries
126
- .filter((e) => e.isDirectory() && /^v\d+\.\d+\.\d+$/.test(e.name))
127
- .map((e) => e.name.slice(1)); // strip leading "v"
128
- const hasCurrent = versionDirs.includes(version);
129
- const allVersions = hasCurrent
130
- ? [...new Set([version, ...versionDirs])]
131
- : [version, ...versionDirs];
132
- allVersions.sort((a, b) => b.localeCompare(a, undefined, { numeric: true }));
133
- const versionsData = { versions: allVersions, latest: version };
134
- writeFileSync(versionsPath, JSON.stringify(versionsData, null, 2), 'utf-8');
135
- console.log(`[generate-docs] Versions -> ${versionsPath} (${allVersions.length} versions)`);
136
-
137
- console.log('[generate-docs] Done');
138
- }
139
-
140
- main().catch((err) => {
141
- console.error(err);
142
- process.exit(1);
143
- });
@@ -1,58 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Generate shortcode→unicode map from Discord's emoji data (anyascii/discord-emojis).
4
- * Fluxer is Discord-compatible, so we use Discord's official shortcodes.
5
- * Run: pnpm exec tsx scripts/generate-emoji-shortcodes.ts
6
- *
7
- * Source: https://github.com/anyascii/discord-emojis
8
- * Format: { "emojis": [ { "names": ["arrow_backward"], "surrogates": "⬅️" }, ... ] }
9
- */
10
- import { writeFileSync } from 'node:fs';
11
- import { basename, dirname, join } from 'node:path';
12
-
13
- const cwd = process.cwd();
14
- const repoRoot =
15
- basename(cwd) === 'util' && basename(dirname(cwd)) === 'packages' ? join(cwd, '../..') : cwd;
16
- const utilPath = join(repoRoot, 'packages/util');
17
-
18
- const DISCORD_EMOJIS_URL =
19
- 'https://raw.githubusercontent.com/anyascii/discord-emojis/master/discord-emojis.json';
20
-
21
- async function fetchDiscordEmojis(): Promise<{
22
- emojis: Array<{ names: string[]; surrogates: string }>;
23
- }> {
24
- const res = await fetch(DISCORD_EMOJIS_URL);
25
- if (!res.ok) throw new Error(`Failed to fetch discord-emojis: ${res.status}`);
26
- return res.json();
27
- }
28
-
29
- async function main() {
30
- const data = await fetchDiscordEmojis();
31
- const map: Record<string, string> = {};
32
-
33
- for (const entry of data.emojis) {
34
- const { names, surrogates } = entry;
35
- if (!Array.isArray(names) || !surrogates) continue;
36
- for (const name of names) {
37
- const normalized = String(name).replace(/\s+/g, '_').trim().toLowerCase();
38
- if (normalized.length < 2 || !/^[\w_]+$/.test(normalized)) continue;
39
- map[normalized] = surrogates;
40
- }
41
- }
42
-
43
- const output = `/**
44
- * Auto-generated from Discord's emoji data (anyascii/discord-emojis).
45
- * Run: pnpm exec tsx scripts/generate-emoji-shortcodes.ts
46
- */
47
- export const UNICODE_EMOJI_SHORTCODES: Record<string, string> = ${JSON.stringify(map, null, 0)};
48
- `;
49
-
50
- const outPath = join(utilPath, 'src/emojiShortcodes.generated.ts');
51
- writeFileSync(outPath, output, 'utf8');
52
- console.log(`Wrote ${outPath} (${Object.keys(map).length} shortcodes)`);
53
- }
54
-
55
- main().catch((err) => {
56
- console.error(err);
57
- process.exit(1);
58
- });
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Generate TypeScript types from OpenAPI spec.
4
- * Will be implemented in types-package phase.
5
- */
6
- console.log('Type generation - see packages/types');
@@ -1,63 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Publish erin.js community packages in dependency order with a delay between each
4
- * to avoid npm 409 (packument not fully processed).
5
- *
6
- * Run from repo root:
7
- * node scripts/publish-ordered.js
8
- * node scripts/publish-ordered.js --delay=15
9
- * node scripts/publish-ordered.js --otp=123456
10
- *
11
- * Prereqs: pnpm install, pnpm run build, and npm login (or token).
12
- */
13
-
14
- const { execSync } = require('child_process');
15
- const path = require('path');
16
-
17
- const ROOT = path.resolve(__dirname, '..');
18
-
19
- // Dependency order: no internal deps first, then dependents
20
- const PACKAGES = [
21
- '@erinjs/types',
22
- '@erinjs/util',
23
- '@erinjs/collection',
24
- '@erinjs/rest',
25
- '@erinjs/ws',
26
- '@erinjs/builders',
27
- '@erinjs/core',
28
- '@erinjs/voice',
29
- ];
30
-
31
- const args = process.argv.slice(2);
32
- const delaySec = parseInt(args.find((a) => a.startsWith('--delay='))?.split('=')[1] || '1', 10);
33
- const otp = args.find((a) => a.startsWith('--otp='));
34
- const otpArg = otp ? ` ${otp}` : '';
35
-
36
- function run(cmd, opts = {}) {
37
- execSync(cmd, { stdio: 'inherit', shell: true, cwd: ROOT, ...opts });
38
- }
39
-
40
- console.log('Installing (ensures workspace links are used)...');
41
- run('pnpm install');
42
- console.log('Building...');
43
- run('pnpm run build');
44
-
45
- console.log(`\nPublishing in order with ${delaySec}s delay between each.\n`);
46
-
47
- for (let i = 0; i < PACKAGES.length; i++) {
48
- const pkg = PACKAGES[i];
49
- console.log(`[${i + 1}/${PACKAGES.length}] ${pkg}`);
50
- try {
51
- run(`pnpm --filter "${pkg}" publish --no-git-checks${otpArg}`);
52
- } catch (e) {
53
- console.error(`Publish failed for ${pkg}`);
54
- process.exit(1);
55
- }
56
- if (i < PACKAGES.length - 1) {
57
- console.log(`Waiting ${delaySec}s...\n`);
58
- const deadline = Date.now() + delaySec * 1000;
59
- while (Date.now() < deadline) {}
60
- }
61
- }
62
-
63
- console.log('\nAll packages published.');
@@ -1,43 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Test that all published erin.js community packages can be required as CJS without throwing.
4
- * Catches issues when packages fail to load via require().
5
- *
6
- * Run from repo root after build:
7
- * node scripts/test-cjs-require.mjs
8
- */
9
-
10
- import { createRequire } from 'node:module';
11
-
12
- const require = createRequire(import.meta.url);
13
-
14
- const PACKAGES = [
15
- '@erinjs/types',
16
- '@erinjs/util',
17
- '@erinjs/collection',
18
- '@erinjs/rest',
19
- '@erinjs/ws',
20
- '@erinjs/builders',
21
- '@erinjs/core',
22
- '@erinjs/voice',
23
- ];
24
-
25
- function main() {
26
- const failed = [];
27
- for (const pkg of PACKAGES) {
28
- try {
29
- require(pkg);
30
- console.log(`✓ ${pkg}`);
31
- } catch (err) {
32
- console.error(`✗ ${pkg}:`, err.message);
33
- failed.push({ pkg, err });
34
- }
35
- }
36
- if (failed.length > 0) {
37
- console.error('\nCJS require test failed for:', failed.map((f) => f.pkg).join(', '));
38
- process.exit(1);
39
- }
40
- console.log(`\nAll ${PACKAGES.length} packages load as CJS successfully.`);
41
- }
42
-
43
- main();
@@ -1,42 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Test that all published erin.js community packages can be imported as ESM without throwing.
4
- * Catches issues like "Dynamic require of X is not supported" when bundled CJS
5
- * code gets loaded in ESM context.
6
- *
7
- * Run from repo root after build:
8
- * node scripts/test-esm-imports.mjs
9
- *
10
- * Must run as ESM (this file is .mjs).
11
- */
12
-
13
- const PACKAGES = [
14
- '@erinjs/types',
15
- '@erinjs/util',
16
- '@erinjs/collection',
17
- '@erinjs/rest',
18
- '@erinjs/ws',
19
- '@erinjs/builders',
20
- '@erinjs/core',
21
- '@erinjs/voice',
22
- ];
23
-
24
- async function main() {
25
- const failed = [];
26
- for (const pkg of PACKAGES) {
27
- try {
28
- await import(pkg);
29
- console.log(`✓ ${pkg}`);
30
- } catch (err) {
31
- console.error(`✗ ${pkg}:`, err.message);
32
- failed.push({ pkg, err });
33
- }
34
- }
35
- if (failed.length > 0) {
36
- console.error('\nESM import test failed for:', failed.map((f) => f.pkg).join(', '));
37
- process.exit(1);
38
- }
39
- console.log(`\nAll ${PACKAGES.length} packages load as ESM successfully.`);
40
- }
41
-
42
- main();