@skillcap/gdh 3.2.1 → 3.2.3

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 (639) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +134 -0
  3. package/node_modules/@clack/core/CHANGELOG.md +8 -0
  4. package/node_modules/@clack/core/dist/index.d.mts +18 -4
  5. package/node_modules/@clack/core/dist/index.mjs +16 -10
  6. package/node_modules/@clack/core/dist/index.mjs.map +1 -1
  7. package/node_modules/@clack/core/package.json +5 -2
  8. package/node_modules/@clack/prompts/CHANGELOG.md +15 -0
  9. package/node_modules/@clack/prompts/README.md +107 -2
  10. package/node_modules/@clack/prompts/dist/index.d.mts +16 -11
  11. package/node_modules/@clack/prompts/dist/index.mjs +114 -107
  12. package/node_modules/@clack/prompts/dist/index.mjs.map +1 -1
  13. package/node_modules/@clack/prompts/package.json +7 -4
  14. package/node_modules/@gdh/adapters/dist/authoring-hook-render.d.ts.map +1 -1
  15. package/node_modules/@gdh/adapters/dist/authoring-hook-render.js +1 -1
  16. package/node_modules/@gdh/adapters/dist/authoring-hook-render.js.map +1 -1
  17. package/node_modules/@gdh/adapters/dist/claude-settings-patch.d.ts.map +1 -1
  18. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js +4 -2
  19. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js.map +1 -1
  20. package/node_modules/@gdh/adapters/dist/claude-statusline-render.d.ts.map +1 -1
  21. package/node_modules/@gdh/adapters/dist/claude-statusline-render.js +1 -1
  22. package/node_modules/@gdh/adapters/dist/claude-statusline-render.js.map +1 -1
  23. package/node_modules/@gdh/adapters/dist/claude-update-hook-render.d.ts.map +1 -1
  24. package/node_modules/@gdh/adapters/dist/claude-update-hook-render.js +1 -1
  25. package/node_modules/@gdh/adapters/dist/claude-update-hook-render.js.map +1 -1
  26. package/node_modules/@gdh/adapters/dist/claude-update-worker-render.d.ts.map +1 -1
  27. package/node_modules/@gdh/adapters/dist/claude-update-worker-render.js +1 -1
  28. package/node_modules/@gdh/adapters/dist/claude-update-worker-render.js.map +1 -1
  29. package/node_modules/@gdh/adapters/dist/deferred-actions-advisory.d.ts.map +1 -1
  30. package/node_modules/@gdh/adapters/dist/deferred-actions-advisory.js +1 -1
  31. package/node_modules/@gdh/adapters/dist/deferred-actions-advisory.js.map +1 -1
  32. package/node_modules/@gdh/adapters/dist/durable-backup.d.ts.map +1 -1
  33. package/node_modules/@gdh/adapters/dist/durable-backup.js +3 -5
  34. package/node_modules/@gdh/adapters/dist/durable-backup.js.map +1 -1
  35. package/node_modules/@gdh/adapters/dist/index.d.ts +11 -37
  36. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  37. package/node_modules/@gdh/adapters/dist/index.js +18 -90
  38. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  39. package/node_modules/@gdh/adapters/dist/inventory-sweep.d.ts.map +1 -1
  40. package/node_modules/@gdh/adapters/dist/inventory-sweep.js +1 -3
  41. package/node_modules/@gdh/adapters/dist/inventory-sweep.js.map +1 -1
  42. package/node_modules/@gdh/adapters/dist/managed-surfaces.d.ts +32 -0
  43. package/node_modules/@gdh/adapters/dist/managed-surfaces.d.ts.map +1 -0
  44. package/node_modules/@gdh/adapters/dist/managed-surfaces.js +66 -0
  45. package/node_modules/@gdh/adapters/dist/managed-surfaces.js.map +1 -0
  46. package/node_modules/@gdh/adapters/dist/process-orchestration.d.ts +1 -1
  47. package/node_modules/@gdh/adapters/dist/process-orchestration.d.ts.map +1 -1
  48. package/node_modules/@gdh/adapters/dist/process-orchestration.js +3 -2
  49. package/node_modules/@gdh/adapters/dist/process-orchestration.js.map +1 -1
  50. package/node_modules/@gdh/adapters/dist/self-update-mechanics.d.ts.map +1 -1
  51. package/node_modules/@gdh/adapters/dist/self-update-mechanics.js +11 -23
  52. package/node_modules/@gdh/adapters/dist/self-update-mechanics.js.map +1 -1
  53. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
  54. package/node_modules/@gdh/adapters/dist/skill-rendering.js +2 -8
  55. package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
  56. package/node_modules/@gdh/adapters/dist/template-assets.js.map +1 -1
  57. package/node_modules/@gdh/adapters/package.json +7 -8
  58. package/node_modules/@gdh/authoring/dist/authoring-state-store.d.ts.map +1 -1
  59. package/node_modules/@gdh/authoring/dist/authoring-state-store.js.map +1 -1
  60. package/node_modules/@gdh/authoring/dist/cache.d.ts.map +1 -1
  61. package/node_modules/@gdh/authoring/dist/cache.js.map +1 -1
  62. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts +2 -2
  63. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts.map +1 -1
  64. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js +2 -2
  65. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js.map +1 -1
  66. package/node_modules/@gdh/authoring/dist/diagnostics-broker.d.ts.map +1 -1
  67. package/node_modules/@gdh/authoring/dist/diagnostics-broker.js +15 -12
  68. package/node_modules/@gdh/authoring/dist/diagnostics-broker.js.map +1 -1
  69. package/node_modules/@gdh/authoring/dist/lsp-broker-snapshot.d.ts.map +1 -1
  70. package/node_modules/@gdh/authoring/dist/lsp-broker-snapshot.js.map +1 -1
  71. package/node_modules/@gdh/authoring/dist/lsp-client.d.ts.map +1 -1
  72. package/node_modules/@gdh/authoring/dist/lsp-client.js.map +1 -1
  73. package/node_modules/@gdh/authoring/dist/lsp-constants.d.ts +17 -0
  74. package/node_modules/@gdh/authoring/dist/lsp-constants.d.ts.map +1 -0
  75. package/node_modules/@gdh/authoring/dist/lsp-constants.js +17 -0
  76. package/node_modules/@gdh/authoring/dist/lsp-constants.js.map +1 -0
  77. package/node_modules/@gdh/authoring/dist/lsp-warmup.d.ts.map +1 -1
  78. package/node_modules/@gdh/authoring/dist/lsp-warmup.js +2 -4
  79. package/node_modules/@gdh/authoring/dist/lsp-warmup.js.map +1 -1
  80. package/node_modules/@gdh/authoring/dist/lsp.d.ts.map +1 -1
  81. package/node_modules/@gdh/authoring/dist/lsp.js +30 -64
  82. package/node_modules/@gdh/authoring/dist/lsp.js.map +1 -1
  83. package/node_modules/@gdh/authoring/dist/prepare.d.ts.map +1 -1
  84. package/node_modules/@gdh/authoring/dist/prepare.js +1 -3
  85. package/node_modules/@gdh/authoring/dist/prepare.js.map +1 -1
  86. package/node_modules/@gdh/authoring/dist/project.d.ts.map +1 -1
  87. package/node_modules/@gdh/authoring/dist/project.js +4 -13
  88. package/node_modules/@gdh/authoring/dist/project.js.map +1 -1
  89. package/node_modules/@gdh/authoring/dist/report.d.ts.map +1 -1
  90. package/node_modules/@gdh/authoring/dist/report.js +2 -11
  91. package/node_modules/@gdh/authoring/dist/report.js.map +1 -1
  92. package/node_modules/@gdh/authoring/dist/scene-resource.d.ts.map +1 -1
  93. package/node_modules/@gdh/authoring/dist/scene-resource.js.map +1 -1
  94. package/node_modules/@gdh/authoring/dist/tcp-port.d.ts +2 -0
  95. package/node_modules/@gdh/authoring/dist/tcp-port.d.ts.map +1 -0
  96. package/node_modules/@gdh/authoring/dist/tcp-port.js +23 -0
  97. package/node_modules/@gdh/authoring/dist/tcp-port.js.map +1 -0
  98. package/node_modules/@gdh/authoring/dist/warmup.d.ts.map +1 -1
  99. package/node_modules/@gdh/authoring/dist/warmup.js.map +1 -1
  100. package/node_modules/@gdh/authoring/package.json +2 -2
  101. package/node_modules/@gdh/cli/dist/args.d.ts +44 -0
  102. package/node_modules/@gdh/cli/dist/args.d.ts.map +1 -0
  103. package/node_modules/@gdh/cli/dist/args.js +124 -0
  104. package/node_modules/@gdh/cli/dist/args.js.map +1 -0
  105. package/node_modules/@gdh/cli/dist/bridge-session.d.ts +1 -1
  106. package/node_modules/@gdh/cli/dist/bridge-session.d.ts.map +1 -1
  107. package/node_modules/@gdh/cli/dist/bridge-session.js +9 -8
  108. package/node_modules/@gdh/cli/dist/bridge-session.js.map +1 -1
  109. package/node_modules/@gdh/cli/dist/index.d.ts +4 -52
  110. package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
  111. package/node_modules/@gdh/cli/dist/index.js +8 -197
  112. package/node_modules/@gdh/cli/dist/index.js.map +1 -1
  113. package/node_modules/@gdh/cli/dist/io.d.ts +10 -0
  114. package/node_modules/@gdh/cli/dist/io.d.ts.map +1 -0
  115. package/node_modules/@gdh/cli/dist/io.js +26 -0
  116. package/node_modules/@gdh/cli/dist/io.js.map +1 -0
  117. package/node_modules/@gdh/cli/dist/mcp-cleanup.d.ts +3 -0
  118. package/node_modules/@gdh/cli/dist/mcp-cleanup.d.ts.map +1 -1
  119. package/node_modules/@gdh/cli/dist/mcp-cleanup.js +47 -0
  120. package/node_modules/@gdh/cli/dist/mcp-cleanup.js.map +1 -1
  121. package/node_modules/@gdh/cli/dist/migrate.d.ts +1 -1
  122. package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
  123. package/node_modules/@gdh/cli/dist/migrate.js +23 -30
  124. package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
  125. package/node_modules/@gdh/cli/dist/self-update.d.ts.map +1 -1
  126. package/node_modules/@gdh/cli/dist/self-update.js +13 -20
  127. package/node_modules/@gdh/cli/dist/self-update.js.map +1 -1
  128. package/node_modules/@gdh/cli/dist/setup.d.ts.map +1 -1
  129. package/node_modules/@gdh/cli/dist/setup.js.map +1 -1
  130. package/node_modules/@gdh/cli/dist/status-command.d.ts +3 -0
  131. package/node_modules/@gdh/cli/dist/status-command.d.ts.map +1 -0
  132. package/node_modules/@gdh/cli/dist/status-command.js +44 -0
  133. package/node_modules/@gdh/cli/dist/status-command.js.map +1 -0
  134. package/node_modules/@gdh/cli/dist/update-banner.d.ts.map +1 -1
  135. package/node_modules/@gdh/cli/dist/update-banner.js +1 -1
  136. package/node_modules/@gdh/cli/dist/update-banner.js.map +1 -1
  137. package/node_modules/@gdh/cli/package.json +11 -11
  138. package/node_modules/@gdh/core/dist/dev-mode.d.ts.map +1 -1
  139. package/node_modules/@gdh/core/dist/dev-mode.js.map +1 -1
  140. package/node_modules/@gdh/core/dist/editor-operation-runner.d.ts +3 -0
  141. package/node_modules/@gdh/core/dist/editor-operation-runner.d.ts.map +1 -0
  142. package/node_modules/@gdh/core/dist/editor-operation-runner.js +682 -0
  143. package/node_modules/@gdh/core/dist/editor-operation-runner.js.map +1 -0
  144. package/node_modules/@gdh/core/dist/git-root.d.ts.map +1 -1
  145. package/node_modules/@gdh/core/dist/git-root.js +4 -1
  146. package/node_modules/@gdh/core/dist/git-root.js.map +1 -1
  147. package/node_modules/@gdh/core/dist/godot-docs-version.d.ts.map +1 -1
  148. package/node_modules/@gdh/core/dist/godot-docs-version.js.map +1 -1
  149. package/node_modules/@gdh/core/dist/godot-stderr-fatality.d.ts.map +1 -1
  150. package/node_modules/@gdh/core/dist/godot-stderr-fatality.js +1 -2
  151. package/node_modules/@gdh/core/dist/godot-stderr-fatality.js.map +1 -1
  152. package/node_modules/@gdh/core/dist/index.d.ts +10 -5
  153. package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
  154. package/node_modules/@gdh/core/dist/index.js +15 -5
  155. package/node_modules/@gdh/core/dist/index.js.map +1 -1
  156. package/node_modules/@gdh/core/dist/managed-gitignore.d.ts.map +1 -1
  157. package/node_modules/@gdh/core/dist/managed-gitignore.js +4 -14
  158. package/node_modules/@gdh/core/dist/managed-gitignore.js.map +1 -1
  159. package/node_modules/@gdh/core/dist/migrations/entries/s2c2_to_s2c3_rules_schema_v2_to_v3.d.ts.map +1 -1
  160. package/node_modules/@gdh/core/dist/migrations/entries/s2c2_to_s2c3_rules_schema_v2_to_v3.js +2 -2
  161. package/node_modules/@gdh/core/dist/migrations/entries/s2c2_to_s2c3_rules_schema_v2_to_v3.js.map +1 -1
  162. package/node_modules/@gdh/core/dist/migrations/entries/s3c21_to_s3c22_canonical_hook_paths.d.ts.map +1 -1
  163. package/node_modules/@gdh/core/dist/migrations/entries/s3c21_to_s3c22_canonical_hook_paths.js +6 -14
  164. package/node_modules/@gdh/core/dist/migrations/entries/s3c21_to_s3c22_canonical_hook_paths.js.map +1 -1
  165. package/node_modules/@gdh/core/dist/migrations/entries/s3c8_to_s3c9_register_runtime_bridge_autoload.d.ts.map +1 -1
  166. package/node_modules/@gdh/core/dist/migrations/entries/s3c8_to_s3c9_register_runtime_bridge_autoload.js +7 -23
  167. package/node_modules/@gdh/core/dist/migrations/entries/s3c8_to_s3c9_register_runtime_bridge_autoload.js.map +1 -1
  168. package/node_modules/@gdh/core/dist/migrations/envelopes/envelope-output-validator.d.ts.map +1 -1
  169. package/node_modules/@gdh/core/dist/migrations/envelopes/envelope-output-validator.js.map +1 -1
  170. package/node_modules/@gdh/core/dist/migrations/envelopes/index.d.ts.map +1 -1
  171. package/node_modules/@gdh/core/dist/migrations/envelopes/index.js +1 -2
  172. package/node_modules/@gdh/core/dist/migrations/envelopes/index.js.map +1 -1
  173. package/node_modules/@gdh/core/dist/migrations/envelopes/types.d.ts.map +1 -1
  174. package/node_modules/@gdh/core/dist/migrations/golden-harness.d.ts.map +1 -1
  175. package/node_modules/@gdh/core/dist/migrations/golden-harness.js.map +1 -1
  176. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts.map +1 -1
  177. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js.map +1 -1
  178. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts.map +1 -1
  179. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js.map +1 -1
  180. package/node_modules/@gdh/core/dist/migrations/probes.d.ts.map +1 -1
  181. package/node_modules/@gdh/core/dist/migrations/probes.js.map +1 -1
  182. package/node_modules/@gdh/core/dist/migrations/registry.d.ts +1 -1
  183. package/node_modules/@gdh/core/dist/migrations/registry.d.ts.map +1 -1
  184. package/node_modules/@gdh/core/dist/migrations/registry.js +3 -6
  185. package/node_modules/@gdh/core/dist/migrations/registry.js.map +1 -1
  186. package/node_modules/@gdh/core/dist/official-docs.d.ts.map +1 -1
  187. package/node_modules/@gdh/core/dist/process-termination.d.ts +29 -0
  188. package/node_modules/@gdh/core/dist/process-termination.d.ts.map +1 -0
  189. package/node_modules/@gdh/core/dist/process-termination.js +125 -0
  190. package/node_modules/@gdh/core/dist/process-termination.js.map +1 -0
  191. package/node_modules/@gdh/core/dist/release-span-preview.d.ts.map +1 -1
  192. package/node_modules/@gdh/core/dist/release-span-preview.js +1 -1
  193. package/node_modules/@gdh/core/dist/release-span-preview.js.map +1 -1
  194. package/node_modules/@gdh/core/dist/release-span-update-contract.d.ts.map +1 -1
  195. package/node_modules/@gdh/core/dist/release-span-update-contract.js +5 -10
  196. package/node_modules/@gdh/core/dist/release-span-update-contract.js.map +1 -1
  197. package/node_modules/@gdh/core/dist/state/codex-retrust-reminder.d.ts.map +1 -1
  198. package/node_modules/@gdh/core/dist/state/codex-retrust-reminder.js.map +1 -1
  199. package/node_modules/@gdh/core/dist/state/migration-state.d.ts.map +1 -1
  200. package/node_modules/@gdh/core/dist/state/migration-state.js +3 -8
  201. package/node_modules/@gdh/core/dist/state/migration-state.js.map +1 -1
  202. package/node_modules/@gdh/core/dist/state/migration-trace.d.ts.map +1 -1
  203. package/node_modules/@gdh/core/dist/state/migration-trace.js +3 -8
  204. package/node_modules/@gdh/core/dist/state/migration-trace.js.map +1 -1
  205. package/node_modules/@gdh/core/dist/state/render-inventory.d.ts.map +1 -1
  206. package/node_modules/@gdh/core/dist/state/render-inventory.js.map +1 -1
  207. package/node_modules/@gdh/core/dist/update-cache.d.ts.map +1 -1
  208. package/node_modules/@gdh/core/dist/update-cache.js.map +1 -1
  209. package/node_modules/@gdh/core/dist/update-probe.d.ts.map +1 -1
  210. package/node_modules/@gdh/core/dist/update-probe.js +1 -3
  211. package/node_modules/@gdh/core/dist/update-probe.js.map +1 -1
  212. package/node_modules/@gdh/core/package.json +1 -1
  213. package/node_modules/@gdh/docs/dist/agent-contract.d.ts.map +1 -1
  214. package/node_modules/@gdh/docs/dist/agent-contract.js +2 -4
  215. package/node_modules/@gdh/docs/dist/agent-contract.js.map +1 -1
  216. package/node_modules/@gdh/docs/dist/files.d.ts +1 -1
  217. package/node_modules/@gdh/docs/dist/files.d.ts.map +1 -1
  218. package/node_modules/@gdh/docs/dist/guidance.js +1 -1
  219. package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
  220. package/node_modules/@gdh/docs/dist/index.d.ts +4 -4
  221. package/node_modules/@gdh/docs/dist/index.d.ts.map +1 -1
  222. package/node_modules/@gdh/docs/dist/index.js +3 -3
  223. package/node_modules/@gdh/docs/dist/index.js.map +1 -1
  224. package/node_modules/@gdh/docs/dist/official-docs.d.ts.map +1 -1
  225. package/node_modules/@gdh/docs/dist/official-docs.js +16 -5
  226. package/node_modules/@gdh/docs/dist/official-docs.js.map +1 -1
  227. package/node_modules/@gdh/docs/dist/query.d.ts.map +1 -1
  228. package/node_modules/@gdh/docs/dist/query.js +8 -3
  229. package/node_modules/@gdh/docs/dist/query.js.map +1 -1
  230. package/node_modules/@gdh/docs/dist/recovery-hints.d.ts.map +1 -1
  231. package/node_modules/@gdh/docs/dist/recovery-hints.js +0 -1
  232. package/node_modules/@gdh/docs/dist/recovery-hints.js.map +1 -1
  233. package/node_modules/@gdh/docs/dist/template-assets.js.map +1 -1
  234. package/node_modules/@gdh/docs/package.json +2 -2
  235. package/node_modules/@gdh/editor/dist/index.d.ts +1 -3
  236. package/node_modules/@gdh/editor/dist/index.d.ts.map +1 -1
  237. package/node_modules/@gdh/editor/dist/index.js +46 -683
  238. package/node_modules/@gdh/editor/dist/index.js.map +1 -1
  239. package/node_modules/@gdh/editor/package.json +2 -2
  240. package/node_modules/@gdh/mcp/dist/bridge-tools.d.ts +8 -1
  241. package/node_modules/@gdh/mcp/dist/bridge-tools.d.ts.map +1 -1
  242. package/node_modules/@gdh/mcp/dist/bridge-tools.js +81 -2
  243. package/node_modules/@gdh/mcp/dist/bridge-tools.js.map +1 -1
  244. package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
  245. package/node_modules/@gdh/mcp/dist/index.js +10 -77
  246. package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
  247. package/node_modules/@gdh/mcp/package.json +8 -10
  248. package/node_modules/@gdh/observability/dist/guidance-audit.d.ts.map +1 -1
  249. package/node_modules/@gdh/observability/dist/guidance-audit.js +11 -21
  250. package/node_modules/@gdh/observability/dist/guidance-audit.js.map +1 -1
  251. package/node_modules/@gdh/observability/dist/index.d.ts +2 -2
  252. package/node_modules/@gdh/observability/dist/index.d.ts.map +1 -1
  253. package/node_modules/@gdh/observability/dist/index.js +1 -1
  254. package/node_modules/@gdh/observability/dist/index.js.map +1 -1
  255. package/node_modules/@gdh/observability/dist/runtime-bundles.d.ts.map +1 -1
  256. package/node_modules/@gdh/observability/dist/runtime-bundles.js +3 -10
  257. package/node_modules/@gdh/observability/dist/runtime-bundles.js.map +1 -1
  258. package/node_modules/@gdh/observability/dist/runtime-corpus.d.ts.map +1 -1
  259. package/node_modules/@gdh/observability/dist/runtime-corpus.js +1 -1
  260. package/node_modules/@gdh/observability/dist/runtime-corpus.js.map +1 -1
  261. package/node_modules/@gdh/observability/package.json +3 -2
  262. package/node_modules/@gdh/runtime/dist/bridge-broker-client.d.ts +2 -1
  263. package/node_modules/@gdh/runtime/dist/bridge-broker-client.d.ts.map +1 -1
  264. package/node_modules/@gdh/runtime/dist/bridge-broker-client.js +8 -1
  265. package/node_modules/@gdh/runtime/dist/bridge-broker-client.js.map +1 -1
  266. package/node_modules/@gdh/runtime/dist/bridge-broker.d.ts +2 -1
  267. package/node_modules/@gdh/runtime/dist/bridge-broker.d.ts.map +1 -1
  268. package/node_modules/@gdh/runtime/dist/bridge-broker.js +71 -21
  269. package/node_modules/@gdh/runtime/dist/bridge-broker.js.map +1 -1
  270. package/node_modules/@gdh/runtime/dist/bridge-surface.d.ts +1 -1
  271. package/node_modules/@gdh/runtime/dist/bridge-surface.d.ts.map +1 -1
  272. package/node_modules/@gdh/runtime/dist/bridge-surface.js +2 -2
  273. package/node_modules/@gdh/runtime/dist/bridge-surface.js.map +1 -1
  274. package/node_modules/@gdh/runtime/dist/docker-provider.d.ts +1 -1
  275. package/node_modules/@gdh/runtime/dist/docker-provider.d.ts.map +1 -1
  276. package/node_modules/@gdh/runtime/dist/docker-provider.js +5 -16
  277. package/node_modules/@gdh/runtime/dist/docker-provider.js.map +1 -1
  278. package/node_modules/@gdh/runtime/dist/index.d.ts +1 -1
  279. package/node_modules/@gdh/runtime/dist/index.d.ts.map +1 -1
  280. package/node_modules/@gdh/runtime/dist/index.js +65 -18
  281. package/node_modules/@gdh/runtime/dist/index.js.map +1 -1
  282. package/node_modules/@gdh/runtime/dist/knowledge-surface.d.ts.map +1 -1
  283. package/node_modules/@gdh/runtime/dist/knowledge-surface.js +21 -10
  284. package/node_modules/@gdh/runtime/dist/knowledge-surface.js.map +1 -1
  285. package/node_modules/@gdh/runtime/package.json +2 -3
  286. package/node_modules/@gdh/scan/dist/detect-existing-onboarding.d.ts.map +1 -1
  287. package/node_modules/@gdh/scan/dist/detect-existing-onboarding.js +1 -5
  288. package/node_modules/@gdh/scan/dist/detect-existing-onboarding.js.map +1 -1
  289. package/node_modules/@gdh/scan/dist/index.d.ts +3 -3
  290. package/node_modules/@gdh/scan/dist/index.d.ts.map +1 -1
  291. package/node_modules/@gdh/scan/dist/index.js +3 -3
  292. package/node_modules/@gdh/scan/dist/index.js.map +1 -1
  293. package/node_modules/@gdh/scan/dist/inventory-cache.js +1 -1
  294. package/node_modules/@gdh/scan/dist/inventory-cache.js.map +1 -1
  295. package/node_modules/@gdh/scan/dist/onboard.d.ts +1 -2
  296. package/node_modules/@gdh/scan/dist/onboard.d.ts.map +1 -1
  297. package/node_modules/@gdh/scan/dist/onboard.js +4 -5
  298. package/node_modules/@gdh/scan/dist/onboard.js.map +1 -1
  299. package/node_modules/@gdh/scan/dist/scan.d.ts.map +1 -1
  300. package/node_modules/@gdh/scan/dist/scan.js +4 -2
  301. package/node_modules/@gdh/scan/dist/scan.js.map +1 -1
  302. package/node_modules/@gdh/scan/package.json +3 -3
  303. package/node_modules/@gdh/verify/dist/corpus.d.ts.map +1 -1
  304. package/node_modules/@gdh/verify/dist/corpus.js +7 -6
  305. package/node_modules/@gdh/verify/dist/corpus.js.map +1 -1
  306. package/node_modules/@gdh/verify/dist/index.d.ts.map +1 -1
  307. package/node_modules/@gdh/verify/dist/index.js +0 -1
  308. package/node_modules/@gdh/verify/dist/index.js.map +1 -1
  309. package/node_modules/@gdh/verify/dist/readiness.d.ts.map +1 -1
  310. package/node_modules/@gdh/verify/dist/readiness.js.map +1 -1
  311. package/node_modules/@gdh/verify/dist/scenarios.d.ts +1 -1
  312. package/node_modules/@gdh/verify/dist/scenarios.d.ts.map +1 -1
  313. package/node_modules/@gdh/verify/dist/scenarios.js +14 -11
  314. package/node_modules/@gdh/verify/dist/scenarios.js.map +1 -1
  315. package/node_modules/@gdh/verify/package.json +6 -7
  316. package/node_modules/@hono/node-server/dist/index.js +22 -0
  317. package/node_modules/@hono/node-server/dist/index.mjs +22 -0
  318. package/node_modules/@hono/node-server/dist/listener.js +22 -0
  319. package/node_modules/@hono/node-server/dist/listener.mjs +22 -0
  320. package/node_modules/@hono/node-server/dist/request.js +11 -0
  321. package/node_modules/@hono/node-server/dist/request.mjs +11 -0
  322. package/node_modules/@hono/node-server/dist/response.js +11 -0
  323. package/node_modules/@hono/node-server/dist/response.mjs +11 -0
  324. package/node_modules/@hono/node-server/dist/server.js +22 -0
  325. package/node_modules/@hono/node-server/dist/server.mjs +22 -0
  326. package/node_modules/@hono/node-server/dist/utils.d.mts +2 -2
  327. package/node_modules/@hono/node-server/dist/utils.d.ts +2 -2
  328. package/node_modules/@hono/node-server/dist/vercel.js +22 -0
  329. package/node_modules/@hono/node-server/dist/vercel.mjs +22 -0
  330. package/node_modules/@hono/node-server/package.json +1 -1
  331. package/node_modules/ajv/README.md +1 -1
  332. package/node_modules/ajv/dist/core.js +1 -1
  333. package/node_modules/ajv/dist/core.js.map +1 -1
  334. package/node_modules/ajv/lib/core.ts +1 -1
  335. package/node_modules/ajv/package.json +2 -3
  336. package/node_modules/eventsource-parser/LICENSE +1 -1
  337. package/node_modules/eventsource-parser/dist/index.cjs +104 -44
  338. package/node_modules/eventsource-parser/dist/index.cjs.map +1 -1
  339. package/node_modules/eventsource-parser/dist/index.d.cts +23 -21
  340. package/node_modules/eventsource-parser/dist/index.d.ts +23 -21
  341. package/node_modules/eventsource-parser/dist/index.js +104 -44
  342. package/node_modules/eventsource-parser/dist/index.js.map +1 -1
  343. package/node_modules/eventsource-parser/dist/stream.d.cts +22 -19
  344. package/node_modules/eventsource-parser/dist/stream.d.ts +22 -19
  345. package/node_modules/eventsource-parser/package.json +54 -77
  346. package/node_modules/eventsource-parser/src/parse.ts +270 -107
  347. package/node_modules/express-rate-limit/dist/index.cjs +51 -10
  348. package/node_modules/express-rate-limit/dist/index.d.cts +31 -1
  349. package/node_modules/express-rate-limit/dist/index.d.mts +31 -1
  350. package/node_modules/express-rate-limit/dist/index.d.ts +31 -1
  351. package/node_modules/express-rate-limit/dist/index.mjs +51 -10
  352. package/node_modules/express-rate-limit/package.json +3 -2
  353. package/node_modules/express-rate-limit/readme.md +3 -0
  354. package/node_modules/fast-string-truncated-width/dist/index.js +36 -96
  355. package/node_modules/fast-string-truncated-width/dist/types.d.ts +0 -3
  356. package/node_modules/fast-string-truncated-width/dist/utils.d.ts +3 -3
  357. package/node_modules/fast-string-truncated-width/dist/utils.js +14 -9
  358. package/node_modules/fast-string-truncated-width/package.json +1 -1
  359. package/node_modules/fast-string-truncated-width/readme.md +2 -3
  360. package/node_modules/fast-string-width/package.json +2 -2
  361. package/node_modules/fast-string-width/readme.md +0 -3
  362. package/node_modules/fast-uri/.github/workflows/ci.yml +12 -7
  363. package/node_modules/fast-uri/.github/workflows/lock-threads.yml +19 -0
  364. package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +1 -1
  365. package/node_modules/fast-uri/LICENSE +1 -3
  366. package/node_modules/fast-uri/README.md +13 -4
  367. package/node_modules/fast-uri/index.js +90 -24
  368. package/node_modules/fast-uri/lib/utils.js +129 -22
  369. package/node_modules/fast-uri/package.json +3 -4
  370. package/node_modules/fast-wrap-ansi/lib/main.js +4 -1
  371. package/node_modules/fast-wrap-ansi/lib/main.js.map +1 -1
  372. package/node_modules/fast-wrap-ansi/package.json +2 -2
  373. package/node_modules/get-intrinsic/CHANGELOG.md +0 -7
  374. package/node_modules/get-intrinsic/index.js +13 -8
  375. package/node_modules/get-intrinsic/package.json +4 -7
  376. package/node_modules/hasown/CHANGELOG.md +11 -0
  377. package/node_modules/hasown/eslint.config.mjs +6 -0
  378. package/node_modules/hasown/index.d.ts +1 -0
  379. package/node_modules/hasown/package.json +14 -14
  380. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +9 -2
  381. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +9 -2
  382. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +2 -0
  383. package/node_modules/hono/dist/cjs/jsx/base.js +7 -1
  384. package/node_modules/hono/dist/cjs/jsx/dom/render.js +22 -9
  385. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +3 -0
  386. package/node_modules/hono/dist/cjs/jsx/utils.js +155 -5
  387. package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +21 -30
  388. package/node_modules/hono/dist/cjs/middleware/cache/index.js +11 -3
  389. package/node_modules/hono/dist/cjs/middleware/cors/index.js +2 -5
  390. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +1 -1
  391. package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +2 -2
  392. package/node_modules/hono/dist/cjs/utils/jwt/jws.js +1 -1
  393. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +12 -6
  394. package/node_modules/hono/dist/helper/ssg/ssg.js +2 -0
  395. package/node_modules/hono/dist/jsx/base.js +13 -2
  396. package/node_modules/hono/dist/jsx/dom/render.js +22 -9
  397. package/node_modules/hono/dist/jsx/jsx-runtime.js +4 -1
  398. package/node_modules/hono/dist/jsx/utils.js +153 -5
  399. package/node_modules/hono/dist/middleware/body-limit/index.js +21 -30
  400. package/node_modules/hono/dist/middleware/cache/index.js +11 -3
  401. package/node_modules/hono/dist/middleware/cors/index.js +2 -5
  402. package/node_modules/hono/dist/middleware/method-override/index.js +1 -1
  403. package/node_modules/hono/dist/middleware/trailing-slash/index.js +2 -2
  404. package/node_modules/hono/dist/tsconfig.build.tsbuildinfo +1 -1
  405. package/node_modules/hono/dist/types/jsx/utils.d.ts +3 -1
  406. package/node_modules/hono/dist/types/middleware/cache/index.d.ts +2 -0
  407. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +1 -1
  408. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +16 -0
  409. package/node_modules/hono/dist/types/types.d.ts +116 -116
  410. package/node_modules/hono/dist/utils/jwt/jws.js +1 -1
  411. package/node_modules/hono/dist/utils/jwt/jwt.js +12 -6
  412. package/node_modules/hono/package.json +1 -1
  413. package/node_modules/ip-address/README.md +249 -76
  414. package/node_modules/ip-address/dist/address-error.d.ts +0 -1
  415. package/node_modules/ip-address/dist/address-error.js.map +1 -1
  416. package/node_modules/ip-address/dist/common.d.ts +6 -1
  417. package/node_modules/ip-address/dist/common.js +21 -0
  418. package/node_modules/ip-address/dist/common.js.map +1 -1
  419. package/node_modules/ip-address/dist/ip-address.d.ts +0 -1
  420. package/node_modules/ip-address/dist/ip-address.js.map +1 -1
  421. package/node_modules/ip-address/dist/ipv4.d.ts +115 -57
  422. package/node_modules/ip-address/dist/ipv4.js +193 -68
  423. package/node_modules/ip-address/dist/ipv4.js.map +1 -1
  424. package/node_modules/ip-address/dist/ipv6.d.ts +172 -111
  425. package/node_modules/ip-address/dist/ipv6.js +345 -131
  426. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  427. package/node_modules/ip-address/dist/v4/constants.d.ts +0 -1
  428. package/node_modules/ip-address/dist/v4/constants.js.map +1 -1
  429. package/node_modules/ip-address/dist/v6/constants.d.ts +0 -1
  430. package/node_modules/ip-address/dist/v6/constants.js +5 -0
  431. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  432. package/node_modules/ip-address/dist/v6/helpers.d.ts +1 -1
  433. package/node_modules/ip-address/dist/v6/helpers.js +12 -3
  434. package/node_modules/ip-address/dist/v6/helpers.js.map +1 -1
  435. package/node_modules/ip-address/dist/v6/regular-expressions.d.ts +0 -1
  436. package/node_modules/ip-address/dist/v6/regular-expressions.js.map +1 -1
  437. package/node_modules/ip-address/package.json +45 -35
  438. package/node_modules/jose/dist/webapi/jwks/remote.js +1 -1
  439. package/node_modules/jose/dist/webapi/lib/pbes2kw.js +3 -0
  440. package/node_modules/jose/package.json +1 -1
  441. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +5 -3
  442. package/node_modules/yaml/browser/dist/nodes/Alias.js +2 -0
  443. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +11 -8
  444. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +2 -1
  445. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +5 -3
  446. package/node_modules/yaml/dist/nodes/Alias.js +2 -0
  447. package/node_modules/yaml/dist/nodes/Scalar.d.ts +5 -1
  448. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +10 -7
  449. package/node_modules/yaml/dist/stringify/stringifyNumber.js +2 -1
  450. package/node_modules/yaml/package.json +1 -1
  451. package/node_modules/zod/README.md +1 -18
  452. package/node_modules/zod/locales/package.json +2 -1
  453. package/node_modules/zod/mini/package.json +2 -1
  454. package/node_modules/zod/package.json +1 -1
  455. package/node_modules/zod/src/v4/classic/errors.ts +2 -2
  456. package/node_modules/zod/src/v4/classic/external.ts +1 -0
  457. package/node_modules/zod/src/v4/classic/from-json-schema.ts +39 -23
  458. package/node_modules/zod/src/v4/classic/parse.ts +6 -6
  459. package/node_modules/zod/src/v4/classic/schemas.ts +414 -151
  460. package/node_modules/zod/src/v4/core/api.ts +31 -6
  461. package/node_modules/zod/src/v4/core/checks.ts +1 -1
  462. package/node_modules/zod/src/v4/core/core.ts +17 -2
  463. package/node_modules/zod/src/v4/core/errors.ts +31 -24
  464. package/node_modules/zod/src/v4/core/json-schema-processors.ts +17 -18
  465. package/node_modules/zod/src/v4/core/parse.ts +7 -7
  466. package/node_modules/zod/src/v4/core/regexes.ts +8 -1
  467. package/node_modules/zod/src/v4/core/schemas.ts +263 -71
  468. package/node_modules/zod/src/v4/core/to-json-schema.ts +10 -1
  469. package/node_modules/zod/src/v4/core/util.ts +52 -35
  470. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  471. package/node_modules/zod/src/v4/locales/el.ts +121 -0
  472. package/node_modules/zod/src/v4/locales/en.ts +4 -0
  473. package/node_modules/zod/src/v4/locales/fr.ts +24 -8
  474. package/node_modules/zod/src/v4/locales/hr.ts +131 -0
  475. package/node_modules/zod/src/v4/locales/index.ts +3 -0
  476. package/node_modules/zod/src/v4/locales/it.ts +1 -1
  477. package/node_modules/zod/src/v4/locales/ka.ts +8 -8
  478. package/node_modules/zod/src/v4/locales/ro.ts +129 -0
  479. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  480. package/node_modules/zod/src/v4/mini/external.ts +1 -0
  481. package/node_modules/zod/src/v4/mini/schemas.ts +56 -25
  482. package/node_modules/zod/v3/package.json +2 -1
  483. package/node_modules/zod/v4/classic/errors.js +2 -2
  484. package/node_modules/zod/v4/classic/external.d.cts +1 -0
  485. package/node_modules/zod/v4/classic/external.d.ts +1 -0
  486. package/node_modules/zod/v4/classic/from-json-schema.cjs +31 -16
  487. package/node_modules/zod/v4/classic/from-json-schema.js +31 -16
  488. package/node_modules/zod/v4/classic/package.json +2 -1
  489. package/node_modules/zod/v4/classic/schemas.cjs +358 -119
  490. package/node_modules/zod/v4/classic/schemas.d.cts +42 -14
  491. package/node_modules/zod/v4/classic/schemas.d.ts +42 -14
  492. package/node_modules/zod/v4/classic/schemas.js +356 -118
  493. package/node_modules/zod/v4/core/api.cjs +7 -2
  494. package/node_modules/zod/v4/core/api.d.cts +26 -5
  495. package/node_modules/zod/v4/core/api.d.ts +26 -5
  496. package/node_modules/zod/v4/core/api.js +7 -2
  497. package/node_modules/zod/v4/core/checks.d.cts +1 -1
  498. package/node_modules/zod/v4/core/checks.d.ts +1 -1
  499. package/node_modules/zod/v4/core/core.cjs +3 -1
  500. package/node_modules/zod/v4/core/core.js +4 -2
  501. package/node_modules/zod/v4/core/errors.cjs +26 -23
  502. package/node_modules/zod/v4/core/errors.d.cts +1 -0
  503. package/node_modules/zod/v4/core/errors.d.ts +1 -0
  504. package/node_modules/zod/v4/core/errors.js +26 -23
  505. package/node_modules/zod/v4/core/json-schema-processors.cjs +16 -20
  506. package/node_modules/zod/v4/core/json-schema-processors.js +16 -20
  507. package/node_modules/zod/v4/core/package.json +2 -1
  508. package/node_modules/zod/v4/core/parse.cjs +7 -7
  509. package/node_modules/zod/v4/core/parse.js +7 -7
  510. package/node_modules/zod/v4/core/regexes.cjs +9 -3
  511. package/node_modules/zod/v4/core/regexes.d.cts +6 -0
  512. package/node_modules/zod/v4/core/regexes.d.ts +6 -0
  513. package/node_modules/zod/v4/core/regexes.js +7 -1
  514. package/node_modules/zod/v4/core/schemas.cjs +211 -65
  515. package/node_modules/zod/v4/core/schemas.d.cts +39 -1
  516. package/node_modules/zod/v4/core/schemas.d.ts +39 -1
  517. package/node_modules/zod/v4/core/schemas.js +210 -64
  518. package/node_modules/zod/v4/core/to-json-schema.cjs +12 -1
  519. package/node_modules/zod/v4/core/to-json-schema.js +12 -1
  520. package/node_modules/zod/v4/core/util.cjs +54 -30
  521. package/node_modules/zod/v4/core/util.d.cts +1 -0
  522. package/node_modules/zod/v4/core/util.d.ts +1 -0
  523. package/node_modules/zod/v4/core/util.js +55 -32
  524. package/node_modules/zod/v4/core/versions.cjs +2 -2
  525. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  526. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  527. package/node_modules/zod/v4/core/versions.js +2 -2
  528. package/node_modules/zod/v4/locales/el.cjs +136 -0
  529. package/node_modules/zod/v4/locales/el.d.cts +5 -0
  530. package/node_modules/zod/v4/locales/el.d.ts +4 -0
  531. package/node_modules/zod/v4/locales/el.js +109 -0
  532. package/node_modules/zod/v4/locales/en.cjs +4 -0
  533. package/node_modules/zod/v4/locales/en.js +4 -0
  534. package/node_modules/zod/v4/locales/fr.cjs +24 -7
  535. package/node_modules/zod/v4/locales/fr.js +24 -7
  536. package/node_modules/zod/v4/locales/hr.cjs +149 -0
  537. package/node_modules/zod/v4/locales/hr.d.cts +5 -0
  538. package/node_modules/zod/v4/locales/hr.d.ts +4 -0
  539. package/node_modules/zod/v4/locales/hr.js +122 -0
  540. package/node_modules/zod/v4/locales/index.cjs +8 -1
  541. package/node_modules/zod/v4/locales/index.d.cts +3 -0
  542. package/node_modules/zod/v4/locales/index.d.ts +3 -0
  543. package/node_modules/zod/v4/locales/index.js +3 -0
  544. package/node_modules/zod/v4/locales/it.cjs +1 -1
  545. package/node_modules/zod/v4/locales/it.js +1 -1
  546. package/node_modules/zod/v4/locales/ka.cjs +8 -8
  547. package/node_modules/zod/v4/locales/ka.js +8 -8
  548. package/node_modules/zod/v4/locales/package.json +2 -1
  549. package/node_modules/zod/v4/locales/ro.cjs +146 -0
  550. package/node_modules/zod/v4/locales/ro.d.cts +5 -0
  551. package/node_modules/zod/v4/locales/ro.d.ts +4 -0
  552. package/node_modules/zod/v4/locales/ro.js +119 -0
  553. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  554. package/node_modules/zod/v4/locales/uz.js +1 -0
  555. package/node_modules/zod/v4/mini/external.d.cts +1 -0
  556. package/node_modules/zod/v4/mini/external.d.ts +1 -0
  557. package/node_modules/zod/v4/mini/package.json +2 -1
  558. package/node_modules/zod/v4/mini/schemas.cjs +41 -4
  559. package/node_modules/zod/v4/mini/schemas.d.cts +28 -10
  560. package/node_modules/zod/v4/mini/schemas.d.ts +28 -10
  561. package/node_modules/zod/v4/mini/schemas.js +40 -4
  562. package/node_modules/zod/v4/package.json +2 -1
  563. package/node_modules/zod/v4-mini/package.json +2 -1
  564. package/package.json +12 -12
  565. package/node_modules/async-function/.eslintrc +0 -16
  566. package/node_modules/async-function/.github/FUNDING.yml +0 -12
  567. package/node_modules/async-function/.nycrc +0 -9
  568. package/node_modules/async-function/CHANGELOG.md +0 -16
  569. package/node_modules/async-function/LICENSE +0 -21
  570. package/node_modules/async-function/README.md +0 -51
  571. package/node_modules/async-function/index.d.mts +0 -3
  572. package/node_modules/async-function/index.d.ts +0 -13
  573. package/node_modules/async-function/index.js +0 -8
  574. package/node_modules/async-function/index.mjs +0 -4
  575. package/node_modules/async-function/legacy.js +0 -18
  576. package/node_modules/async-function/package.json +0 -86
  577. package/node_modules/async-function/require.mjs +0 -5
  578. package/node_modules/async-function/tsconfig.json +0 -9
  579. package/node_modules/async-generator-function/.eslintrc +0 -26
  580. package/node_modules/async-generator-function/.github/FUNDING.yml +0 -12
  581. package/node_modules/async-generator-function/.nycrc +0 -9
  582. package/node_modules/async-generator-function/CHANGELOG.md +0 -15
  583. package/node_modules/async-generator-function/LICENSE +0 -21
  584. package/node_modules/async-generator-function/README.md +0 -52
  585. package/node_modules/async-generator-function/index.d.mts +0 -3
  586. package/node_modules/async-generator-function/index.d.ts +0 -22
  587. package/node_modules/async-generator-function/index.js +0 -8
  588. package/node_modules/async-generator-function/index.mjs +0 -4
  589. package/node_modules/async-generator-function/legacy.js +0 -18
  590. package/node_modules/async-generator-function/package.json +0 -87
  591. package/node_modules/async-generator-function/require.mjs +0 -5
  592. package/node_modules/async-generator-function/tsconfig.json +0 -9
  593. package/node_modules/fast-uri/.github/.stale.yml +0 -21
  594. package/node_modules/fast-uri/.github/tests_checker.yml +0 -8
  595. package/node_modules/generator-function/.eslintrc +0 -16
  596. package/node_modules/generator-function/.github/FUNDING.yml +0 -12
  597. package/node_modules/generator-function/.nycrc +0 -9
  598. package/node_modules/generator-function/CHANGELOG.md +0 -27
  599. package/node_modules/generator-function/LICENSE.md +0 -7
  600. package/node_modules/generator-function/README.md +0 -51
  601. package/node_modules/generator-function/index.d.mts +0 -3
  602. package/node_modules/generator-function/index.d.ts +0 -3
  603. package/node_modules/generator-function/index.js +0 -8
  604. package/node_modules/generator-function/index.mjs +0 -4
  605. package/node_modules/generator-function/legacy.js +0 -18
  606. package/node_modules/generator-function/package.json +0 -88
  607. package/node_modules/generator-function/require.mjs +0 -5
  608. package/node_modules/generator-function/tsconfig.json +0 -9
  609. package/node_modules/hasown/.eslintrc +0 -5
  610. package/node_modules/ip-address/dist/address-error.d.ts.map +0 -1
  611. package/node_modules/ip-address/dist/common.d.ts.map +0 -1
  612. package/node_modules/ip-address/dist/ip-address.d.ts.map +0 -1
  613. package/node_modules/ip-address/dist/ipv4.d.ts.map +0 -1
  614. package/node_modules/ip-address/dist/ipv6.d.ts.map +0 -1
  615. package/node_modules/ip-address/dist/v4/constants.d.ts.map +0 -1
  616. package/node_modules/ip-address/dist/v6/constants.d.ts.map +0 -1
  617. package/node_modules/ip-address/dist/v6/helpers.d.ts.map +0 -1
  618. package/node_modules/ip-address/dist/v6/regular-expressions.d.ts.map +0 -1
  619. package/node_modules/ip-address/src/address-error.ts +0 -11
  620. package/node_modules/ip-address/src/common.ts +0 -55
  621. package/node_modules/ip-address/src/ip-address.ts +0 -7
  622. package/node_modules/ip-address/src/ipv4.ts +0 -394
  623. package/node_modules/ip-address/src/ipv6.ts +0 -1212
  624. package/node_modules/ip-address/src/v4/constants.ts +0 -7
  625. package/node_modules/ip-address/src/v6/constants.ts +0 -79
  626. package/node_modules/ip-address/src/v6/helpers.ts +0 -48
  627. package/node_modules/ip-address/src/v6/regular-expressions.ts +0 -94
  628. /package/node_modules/{cross-spawn/node_modules/isexe → isexe}/.npmignore +0 -0
  629. /package/node_modules/{cross-spawn/node_modules/isexe → isexe}/LICENSE +0 -0
  630. /package/node_modules/{cross-spawn/node_modules/isexe → isexe}/README.md +0 -0
  631. /package/node_modules/{cross-spawn/node_modules/isexe → isexe}/index.js +0 -0
  632. /package/node_modules/{cross-spawn/node_modules/isexe → isexe}/mode.js +0 -0
  633. /package/node_modules/{cross-spawn/node_modules/isexe → isexe}/package.json +0 -0
  634. /package/node_modules/{cross-spawn/node_modules/isexe → isexe}/windows.js +0 -0
  635. /package/node_modules/{cross-spawn/node_modules/which → which}/LICENSE +0 -0
  636. /package/node_modules/{cross-spawn/node_modules/which → which}/README.md +0 -0
  637. /package/node_modules/{cross-spawn/node_modules/which → which}/bin/node-which +0 -0
  638. /package/node_modules/{cross-spawn/node_modules/which → which}/package.json +0 -0
  639. /package/node_modules/{cross-spawn/node_modules/which → which}/which.js +0 -0
@@ -1,12 +1,34 @@
1
1
  {
2
2
  "name": "eventsource-parser",
3
- "version": "3.0.6",
3
+ "version": "3.0.8",
4
4
  "description": "Streaming, source-agnostic EventSource/Server-Sent Events parser",
5
- "sideEffects": false,
5
+ "keywords": [
6
+ "eventsource",
7
+ "server-sent-events",
8
+ "sse"
9
+ ],
10
+ "homepage": "https://github.com/rexxars/eventsource-parser#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/rexxars/eventsource-parser/issues"
13
+ },
14
+ "license": "MIT",
15
+ "author": "Espen Hovlandsdal <espen@hovlandsdal.com>",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+ssh://git@github.com/rexxars/eventsource-parser.git"
19
+ },
20
+ "files": [
21
+ "dist",
22
+ "!dist/stats.html",
23
+ "!dist/index.min.js",
24
+ "src",
25
+ "stream.js"
26
+ ],
6
27
  "type": "module",
7
- "types": "./dist/index.d.ts",
8
- "module": "./dist/index.js",
28
+ "sideEffects": false,
9
29
  "main": "./dist/index.cjs",
30
+ "module": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
10
32
  "exports": {
11
33
  ".": {
12
34
  "source": "./src/index.ts",
@@ -22,33 +44,16 @@
22
44
  },
23
45
  "./package.json": "./package.json"
24
46
  },
25
- "typesVersions": {
26
- "*": {
27
- "stream": [
28
- "./dist/stream.d.ts"
29
- ]
30
- }
31
- },
32
- "engines": {
33
- "node": ">=18.0.0"
34
- },
35
- "browserslist": [
36
- "node >= 20",
37
- "chrome >= 71",
38
- "safari >= 14.1",
39
- "firefox >= 105",
40
- "edge >= 79"
41
- ],
42
- "files": [
43
- "dist",
44
- "!dist/stats.html",
45
- "src",
46
- "stream.js"
47
- ],
48
47
  "scripts": {
49
48
  "build": "pkg-utils build && pkg-utils --strict",
50
49
  "clean": "rimraf dist coverage",
51
- "lint": "eslint . && tsc --noEmit",
50
+ "check": "npm run clean && npm run format && npm run lint && npm run build && vitest run",
51
+ "format": "oxfmt",
52
+ "format:check": "oxfmt --check",
53
+ "bench": "node --expose-gc --experimental-strip-types --no-warnings=ExperimentalWarning bench/parse.bench.ts",
54
+ "bundle-size": "node --experimental-strip-types --no-warnings=ExperimentalWarning scripts/bundle-size.ts",
55
+ "knip": "knip",
56
+ "lint": "oxlint && tsc --noEmit",
52
57
  "posttest": "npm run lint",
53
58
  "prebuild": "npm run clean",
54
59
  "prepublishOnly": "npm run build",
@@ -57,59 +62,31 @@
57
62
  "test:deno": "deno run --allow-write --allow-net --allow-run --allow-sys --allow-ffi --allow-env --allow-read npm:vitest",
58
63
  "test:node": "vitest --reporter=verbose"
59
64
  },
60
- "author": "Espen Hovlandsdal <espen@hovlandsdal.com>",
61
- "keywords": [
62
- "sse",
63
- "eventsource",
64
- "server-sent-events"
65
- ],
66
65
  "devDependencies": {
67
- "@sanity/pkg-utils": "^8.0.0",
68
- "@sanity/semantic-release-preset": "^5.0.0",
66
+ "@sanity/pkg-utils": "^10.4.15",
67
+ "@sanity/semantic-release-preset": "^6.0.0",
68
+ "@sanity/tsconfig": "^2.1.0",
69
69
  "@types/node": "^20.19.0",
70
- "@typescript-eslint/eslint-plugin": "^7.0.0",
71
- "@typescript-eslint/parser": "^7.0.0",
72
- "eslint": "^8.51.0",
73
- "eslint-config-prettier": "^9.1.0",
74
- "eslint-config-sanity": "^7.1.2",
75
70
  "eventsource-encoder": "^1.0.1",
76
- "prettier": "^3.5.3",
77
- "rimraf": "^6.0.1",
71
+ "knip": "^6.4.1",
72
+ "mitata": "^1.0.34",
73
+ "oxfmt": "^0.45.0",
74
+ "oxlint": "^1.60.0",
75
+ "rimraf": "^6.1.3",
78
76
  "rollup-plugin-visualizer": "^6.0.3",
79
- "semantic-release": "^24.2.3",
80
- "typescript": "^5.8.3",
81
- "vitest": "^3.1.3"
82
- },
83
- "homepage": "https://github.com/rexxars/eventsource-parser#readme",
84
- "bugs": {
85
- "url": "https://github.com/rexxars/eventsource-parser/issues"
86
- },
87
- "repository": {
88
- "type": "git",
89
- "url": "git+ssh://git@github.com/rexxars/eventsource-parser.git"
90
- },
91
- "license": "MIT",
92
- "prettier": {
93
- "bracketSpacing": false,
94
- "printWidth": 100,
95
- "semi": false,
96
- "singleQuote": true
77
+ "semantic-release": "^25.0.3",
78
+ "terser": "^5.46.1",
79
+ "typescript": "^5.9.3",
80
+ "vitest": "^4.1.4"
97
81
  },
98
- "eslintConfig": {
99
- "parserOptions": {
100
- "ecmaFeatures": {
101
- "modules": true
102
- },
103
- "ecmaVersion": 9,
104
- "sourceType": "module"
105
- },
106
- "extends": [
107
- "sanity",
108
- "sanity/typescript",
109
- "prettier"
110
- ],
111
- "ignorePatterns": [
112
- "lib/**/"
113
- ]
82
+ "browserslist": [
83
+ "node >= 18",
84
+ "chrome >= 71",
85
+ "safari >= 14.1",
86
+ "firefox >= 105",
87
+ "edge >= 79"
88
+ ],
89
+ "engines": {
90
+ "node": ">=18.0.0"
114
91
  }
115
92
  }
@@ -5,7 +5,12 @@
5
5
  import {ParseError} from './errors.ts'
6
6
  import type {EventSourceParser, ParserCallbacks} from './types.ts'
7
7
 
8
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
+ // ASCII codes used in the hot parsing paths.
9
+ const LF = 10
10
+ const CR = 13
11
+ const SPACE = 32
12
+
13
+ // oxlint-disable-next-line no-unused-vars
9
14
  function noop(_arg: unknown) {
10
15
  // intentional noop
11
16
  }
@@ -31,66 +36,247 @@ export function createParser(callbacks: ParserCallbacks): EventSourceParser {
31
36
 
32
37
  const {onEvent = noop, onError = noop, onRetry = noop, onComment} = callbacks
33
38
 
34
- let incompleteLine = ''
39
+ // Trailing bytes from prior `feed()` calls that did not yet form a complete line.
40
+ // Stored as an array of fragments and only joined when a line terminator arrives.
41
+ // Concatenating per-feed (`prefix + chunk`) is O(N²) when a single SSE line spans
42
+ // many chunks (e.g. a large `data:` payload streamed in tiny slices, or an MCP-style
43
+ // server that emits one giant content block). Buffering as fragments + joining once
44
+ // makes the same workload linear.
45
+ const pendingFragments: string[] = []
35
46
 
36
47
  let isFirstChunk = true
37
48
  let id: string | undefined
38
49
  let data = ''
39
- let eventType = ''
50
+ let dataLines = 0
51
+ let eventType: string | undefined
40
52
 
41
- function feed(newChunk: string) {
42
- // Strip any UTF8 byte order mark (BOM) at the start of the stream
43
- const chunk = isFirstChunk ? newChunk.replace(/^\xEF\xBB\xBF/, '') : newChunk
53
+ /**
54
+ * Feeds a chunk of the SSE stream to the parser. Any trailing bytes that do
55
+ * not yet form a complete line are held back and prepended to the next chunk,
56
+ * so callers can pass arbitrary slices of the stream without worrying about
57
+ * line boundaries.
58
+ *
59
+ * Per the SSE spec, a UTF-8 BOM (0xEF 0xBB 0xBF) at the start of the very
60
+ * first chunk is stripped before parsing.
61
+ *
62
+ * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
63
+ */
64
+ function feed(chunk: string) {
65
+ if (isFirstChunk) {
66
+ isFirstChunk = false
67
+ // Match and strip UTF-8 BOM from the start of the stream, if present.
68
+ // (Per the spec, this is only valid at the very start of the stream)
69
+ if (
70
+ chunk.charCodeAt(0) === 0xef &&
71
+ chunk.charCodeAt(1) === 0xbb &&
72
+ chunk.charCodeAt(2) === 0xbf
73
+ ) {
74
+ chunk = chunk.slice(3)
75
+ }
76
+ }
44
77
 
45
- // If there was a previous incomplete line, append it to the new chunk,
46
- // so we may process it together as a new (hopefully complete) chunk.
47
- const [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`)
78
+ // Hot path: no buffered prefix from a prior partial line. Hand the chunk
79
+ // straight to `processLines`, exactly like the original implementation.
80
+ // Zero new work in the common case (every chunk ends with `\n\n`).
81
+ if (pendingFragments.length === 0) {
82
+ const trailing = processLines(chunk)
83
+ if (trailing !== '') pendingFragments.push(trailing)
84
+ return
85
+ }
48
86
 
49
- for (const line of complete) {
50
- parseLine(line)
87
+ // We have a buffered prefix. If this chunk also has no terminator, append
88
+ // to the buffer without concatenating — that's the O() trap we're
89
+ // avoiding (large single `data:` payload split across many tiny chunks).
90
+ if (chunk.indexOf('\n') === -1 && chunk.indexOf('\r') === -1) {
91
+ pendingFragments.push(chunk)
92
+ return
51
93
  }
52
94
 
53
- incompleteLine = incomplete
54
- isFirstChunk = false
95
+ // Terminator arrived. Join the accumulated fragments + this chunk once,
96
+ // process, and buffer any new trailing partial line.
97
+ pendingFragments.push(chunk)
98
+ const input = pendingFragments.join('')
99
+ pendingFragments.length = 0
100
+ const trailing = processLines(input)
101
+ if (trailing !== '') pendingFragments.push(trailing)
55
102
  }
56
103
 
57
- function parseLine(line: string) {
58
- // If the line is empty (a blank line), dispatch the event
59
- if (line === '') {
104
+ /**
105
+ * Splits `chunk` into SSE lines and dispatches each to the appropriate handler.
106
+ * Returns any trailing bytes that did not terminate with a line break, so the
107
+ * caller can prepend them to the next chunk.
108
+ *
109
+ * The SSE spec permits three line terminators: `\n`, `\r`, and `\r\n`. Real-world
110
+ * streams almost always use plain `\n`, so we take a fast path when no `\r` is
111
+ * present in the chunk. The slow path is spec-correct but does more work per line.
112
+ */
113
+ function processLines(chunk: string): string {
114
+ let searchIndex = 0
115
+
116
+ // Fast path: LF-only chunk (the common case for typical SSE servers).
117
+ // We can scan forward with a single `indexOf('\n')` per line and inline
118
+ // the hot-path branches for `data:` and `event:` without the CR bookkeeping
119
+ // the slow path needs.
120
+ if (chunk.indexOf('\r') === -1) {
121
+ let lfIndex = chunk.indexOf('\n', searchIndex)
122
+ while (lfIndex !== -1) {
123
+ // Blank line: end-of-event marker. Dispatch the accumulated event (if any)
124
+ // and reset the buffered fields. This is hoisted out of `parseLine` because
125
+ // it's the single most common line shape after `data:` lines.
126
+ if (searchIndex === lfIndex) {
127
+ if (dataLines > 0) {
128
+ onEvent({id, event: eventType, data})
129
+ }
130
+ id = undefined
131
+ data = ''
132
+ dataLines = 0
133
+ eventType = undefined
134
+ searchIndex = lfIndex + 1
135
+ lfIndex = chunk.indexOf('\n', searchIndex)
136
+ continue
137
+ }
138
+ const firstCharCode = chunk.charCodeAt(searchIndex)
139
+ if (isDataPrefix(chunk, searchIndex, firstCharCode)) {
140
+ // `data:` line — append the value to the event's data buffer.
141
+ // 'data:'.length === 5, 'data: '.length === 6
142
+ const valueStart =
143
+ chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5
144
+ const value = chunk.slice(valueStart, lfIndex)
145
+ // Fast path within a fast path: if this is the first data line AND the
146
+ // next char is another LF (i.e. `data:foo\n\n`), dispatch immediately
147
+ // without ever writing to the `data` buffer. This is the shape of a
148
+ // typical single-line SSE event (ChatGPT-style streams, etc.) and is
149
+ // hot enough to be worth the duplication.
150
+ if (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) {
151
+ onEvent({id, event: eventType, data: value})
152
+ id = undefined
153
+ data = ''
154
+ eventType = undefined
155
+ searchIndex = lfIndex + 2
156
+ lfIndex = chunk.indexOf('\n', searchIndex)
157
+ continue
158
+ }
159
+ // Multi-line data: concatenate with newline separator per spec.
160
+ data = dataLines === 0 ? value : `${data}\n${value}`
161
+ dataLines++
162
+ } else if (isEventPrefix(chunk, searchIndex, firstCharCode)) {
163
+ // `event:` line — set the event type for the next dispatch. Per spec,
164
+ // an empty value resets `event type` to its default (undefined here).
165
+ // 'event:'.length === 6, 'event: '.length === 7
166
+ eventType =
167
+ chunk.slice(
168
+ chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6,
169
+ lfIndex,
170
+ ) || undefined
171
+ } else {
172
+ // Everything else: `id:`, `retry:`, comment lines (`:` prefix), unknown
173
+ // fields, or malformed lines. These are rarer and go through the full
174
+ // per-line parser, which handles the SSE field grammar in detail.
175
+ parseLine(chunk, searchIndex, lfIndex)
176
+ }
177
+ searchIndex = lfIndex + 1
178
+ lfIndex = chunk.indexOf('\n', searchIndex)
179
+ }
180
+ return chunk.slice(searchIndex)
181
+ }
182
+
183
+ // Slow path: the chunk contains at least one `\r`, so lines may be terminated
184
+ // by `\r`, `\n`, or `\r\n`. We locate the next terminator by looking at both
185
+ // the nearest `\r` and `\n` and picking whichever comes first.
186
+ while (searchIndex < chunk.length) {
187
+ const crIndex = chunk.indexOf('\r', searchIndex)
188
+ const lfIndex = chunk.indexOf('\n', searchIndex)
189
+
190
+ let lineEnd = -1
191
+ if (crIndex !== -1 && lfIndex !== -1) {
192
+ lineEnd = crIndex < lfIndex ? crIndex : lfIndex
193
+ } else if (crIndex !== -1) {
194
+ // A trailing `\r` at the very end of the chunk is ambiguous: it could be
195
+ // a bare-CR terminator, or the first half of a `\r\n` whose `\n` arrives
196
+ // in the next chunk. Defer until we see more input.
197
+ if (crIndex === chunk.length - 1) {
198
+ lineEnd = -1
199
+ } else {
200
+ lineEnd = crIndex
201
+ }
202
+ } else if (lfIndex !== -1) {
203
+ lineEnd = lfIndex
204
+ }
205
+
206
+ if (lineEnd === -1) {
207
+ break
208
+ }
209
+
210
+ parseLine(chunk, searchIndex, lineEnd)
211
+ searchIndex = lineEnd + 1
212
+ // If we just consumed a `\r` and the next char is `\n`, skip it so the
213
+ // pair is treated as a single terminator rather than an empty line.
214
+ if (chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF) {
215
+ searchIndex++
216
+ }
217
+ }
218
+
219
+ return chunk.slice(searchIndex)
220
+ }
221
+
222
+ function parseLine(chunk: string, start: number, end: number) {
223
+ if (start === end) {
60
224
  dispatchEvent()
61
225
  return
62
226
  }
63
227
 
64
- // If the line starts with a U+003A COLON character (:), ignore the line.
65
- if (line.startsWith(':')) {
228
+ const firstCharCode = chunk.charCodeAt(start)
229
+
230
+ if (isDataPrefix(chunk, start, firstCharCode)) {
231
+ // 'data:'.length === 5, 'data: '.length === 6
232
+ const valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5
233
+ const value = chunk.slice(valueStart, end)
234
+ data = dataLines === 0 ? value : `${data}\n${value}`
235
+ dataLines++
236
+ return
237
+ }
238
+
239
+ if (isEventPrefix(chunk, start, firstCharCode)) {
240
+ // 'event:'.length === 6, 'event: '.length === 7
241
+ eventType =
242
+ chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || undefined
243
+ return
244
+ }
245
+
246
+ // Fast path for "id:" — 'i' = 105, 'd' = 100, ':' = 58
247
+ if (
248
+ firstCharCode === 105 &&
249
+ chunk.charCodeAt(start + 1) === 100 &&
250
+ chunk.charCodeAt(start + 2) === 58
251
+ ) {
252
+ // 'id:'.length === 3, 'id: '.length === 4
253
+ const value = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end)
254
+ id = value.includes('\0') ? undefined : value
255
+ return
256
+ }
257
+
258
+ // Comment line — ':' = 58
259
+ if (firstCharCode === 58) {
66
260
  if (onComment) {
67
- onComment(line.slice(line.startsWith(': ') ? 2 : 1))
261
+ const line = chunk.slice(start, end)
262
+ // skip ':' (+1), or ': ' (+2) when a space follows
263
+ onComment(line.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1))
68
264
  }
69
265
  return
70
266
  }
71
267
 
72
- // If the line contains a U+003A COLON character (:)
268
+ const line = chunk.slice(start, end)
73
269
  const fieldSeparatorIndex = line.indexOf(':')
74
- if (fieldSeparatorIndex !== -1) {
75
- // Collect the characters on the line before the first U+003A COLON character (:),
76
- // and let `field` be that string.
77
- const field = line.slice(0, fieldSeparatorIndex)
78
-
79
- // Collect the characters on the line after the first U+003A COLON character (:),
80
- // and let `value` be that string. If value starts with a U+0020 SPACE character,
81
- // remove it from value.
82
- const offset = line[fieldSeparatorIndex + 1] === ' ' ? 2 : 1
83
- const value = line.slice(fieldSeparatorIndex + offset)
84
-
85
- processField(field, value, line)
270
+ if (fieldSeparatorIndex === -1) {
271
+ processField(line, '', line)
86
272
  return
87
273
  }
88
274
 
89
- // Otherwise, the string is not empty but does not contain a U+003A COLON character (:)
90
- // Process the field using the whole line as the field name, and an empty string as the field value.
91
- // 👆 This is according to spec. That means that a line that has the value `data` will result in
92
- // a newline being added to the current `data` buffer, for instance.
93
- processField(line, '', line)
275
+ const field = line.slice(0, fieldSeparatorIndex)
276
+ // skip ':' (+1), or ': ' (+2) when a space follows
277
+ const offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1
278
+ const value = line.slice(fieldSeparatorIndex + offset)
279
+ processField(field, value, line)
94
280
  }
95
281
 
96
282
  function processField(field: string, value: string, line: string) {
@@ -98,12 +284,11 @@ export function createParser(callbacks: ParserCallbacks): EventSourceParser {
98
284
  switch (field) {
99
285
  case 'event':
100
286
  // Set the `event type` buffer to field value
101
- eventType = value
287
+ eventType = value || undefined
102
288
  break
103
289
  case 'data':
104
- // Append the field value to the `data` buffer, then append a single U+000A LINE FEED(LF)
105
- // character to the `data` buffer.
106
- data = `${data}${value}\n`
290
+ data = dataLines === 0 ? value : `${data}\n${value}`
291
+ dataLines++
107
292
  break
108
293
  case 'id':
109
294
  // If the field value does not contain U+0000 NULL, then set the `ID` buffer to
@@ -139,94 +324,72 @@ export function createParser(callbacks: ParserCallbacks): EventSourceParser {
139
324
  }
140
325
 
141
326
  function dispatchEvent() {
142
- const shouldDispatch = data.length > 0
143
- if (shouldDispatch) {
327
+ if (dataLines > 0) {
144
328
  onEvent({
145
329
  id,
146
- event: eventType || undefined,
147
- // If the data buffer's last character is a U+000A LINE FEED (LF) character,
148
- // then remove the last character from the data buffer.
149
- data: data.endsWith('\n') ? data.slice(0, -1) : data,
330
+ event: eventType,
331
+ data,
150
332
  })
151
333
  }
152
334
 
153
- // Reset for the next event
154
335
  id = undefined
155
336
  data = ''
156
- eventType = ''
337
+ dataLines = 0
338
+ eventType = undefined
157
339
  }
158
340
 
159
341
  function reset(options: {consume?: boolean} = {}) {
160
- if (incompleteLine && options.consume) {
161
- parseLine(incompleteLine)
342
+ if (options.consume && pendingFragments.length > 0) {
343
+ const incompleteLine = pendingFragments.join('')
344
+ parseLine(incompleteLine, 0, incompleteLine.length)
162
345
  }
163
346
 
164
347
  isFirstChunk = true
165
348
  id = undefined
166
349
  data = ''
167
- eventType = ''
168
- incompleteLine = ''
350
+ dataLines = 0
351
+ eventType = undefined
352
+ pendingFragments.length = 0
169
353
  }
170
354
 
171
355
  return {feed, reset}
172
356
  }
173
357
 
174
358
  /**
175
- * For the given `chunk`, split it into lines according to spec, and return any remaining incomplete line.
359
+ * Checks if `chunk` starts with the literal `data:` at index `i`.
176
360
  *
177
- * @param chunk - The chunk to split into lines
178
- * @returns A tuple containing an array of complete lines, and any remaining incomplete line
179
- * @internal
361
+ * Equivalent to `chunk.startsWith('data:', i)`, but benchmarks show this
362
+ * hand-unrolled char-code comparison is ~20% faster on common event types.
363
+ * The caller passes `firstCharCode` (the code at `i`) so it can be reused
364
+ * across prefix checks.
365
+ *
366
+ * ASCII: 'd' = 100, 'a' = 97, 't' = 116, 'a' = 97, ':' = 58
180
367
  */
181
- function splitLines(chunk: string): [complete: Array<string>, incomplete: string] {
182
- /**
183
- * According to the spec, a line is terminated by either:
184
- * - U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF) character pair
185
- * - a single U+000A LINE FEED(LF) character not preceded by a U+000D CARRIAGE RETURN(CR) character
186
- * - a single U+000D CARRIAGE RETURN(CR) character not followed by a U+000A LINE FEED(LF) character
187
- */
188
- const lines: Array<string> = []
189
- let incompleteLine = ''
190
- let searchIndex = 0
191
-
192
- while (searchIndex < chunk.length) {
193
- // Find next line terminator
194
- const crIndex = chunk.indexOf('\r', searchIndex)
195
- const lfIndex = chunk.indexOf('\n', searchIndex)
196
-
197
- // Determine line end
198
- let lineEnd = -1
199
- if (crIndex !== -1 && lfIndex !== -1) {
200
- // CRLF case
201
- lineEnd = Math.min(crIndex, lfIndex)
202
- } else if (crIndex !== -1) {
203
- // CR at the end of a chunk might be part of a CRLF sequence that spans chunks,
204
- // so we shouldn't treat it as a line terminator (yet)
205
- if (crIndex === chunk.length - 1) {
206
- lineEnd = -1
207
- } else {
208
- lineEnd = crIndex
209
- }
210
- } else if (lfIndex !== -1) {
211
- lineEnd = lfIndex
212
- }
213
-
214
- // Extract line if terminator found
215
- if (lineEnd === -1) {
216
- // No terminator found, rest is incomplete
217
- incompleteLine = chunk.slice(searchIndex)
218
- break
219
- } else {
220
- const line = chunk.slice(searchIndex, lineEnd)
221
- lines.push(line)
222
-
223
- // Move past line terminator
224
- searchIndex = lineEnd + 1
225
- if (chunk[searchIndex - 1] === '\r' && chunk[searchIndex] === '\n') {
226
- searchIndex++
227
- }
228
- }
229
- }
368
+ function isDataPrefix(chunk: string, i: number, firstCharCode: number): boolean {
369
+ return (
370
+ firstCharCode === 100 &&
371
+ chunk.charCodeAt(i + 1) === 97 &&
372
+ chunk.charCodeAt(i + 2) === 116 &&
373
+ chunk.charCodeAt(i + 3) === 97 &&
374
+ chunk.charCodeAt(i + 4) === 58
375
+ )
376
+ }
230
377
 
231
- return [lines, incompleteLine]
378
+ /**
379
+ * Checks if `chunk` starts with the literal `event:` at index `i`.
380
+ *
381
+ * See {@link isDataPrefix} for why this is hand-unrolled rather than using
382
+ * `String.prototype.startsWith`.
383
+ *
384
+ * ASCII: 'e' = 101, 'v' = 118, 'e' = 101, 'n' = 110, 't' = 116, ':' = 58
385
+ */
386
+ function isEventPrefix(chunk: string, i: number, firstCharCode: number): boolean {
387
+ return (
388
+ firstCharCode === 101 &&
389
+ chunk.charCodeAt(i + 1) === 118 &&
390
+ chunk.charCodeAt(i + 2) === 101 &&
391
+ chunk.charCodeAt(i + 3) === 110 &&
392
+ chunk.charCodeAt(i + 4) === 116 &&
393
+ chunk.charCodeAt(i + 5) === 58
394
+ )
232
395
  }