p-spore 0.1.4 → 0.1.42
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.
- package/README.md +110 -15
- package/dist/agents/agent-manager.d.ts +3 -3
- package/dist/agents/agent-manager.d.ts.map +1 -1
- package/dist/agents/agent-manager.js +3 -2
- package/dist/agents/agent-manager.js.map +1 -1
- package/dist/application/agent-application.d.ts +29 -5
- package/dist/application/agent-application.d.ts.map +1 -1
- package/dist/application/agent-application.js +444 -14
- package/dist/application/agent-application.js.map +1 -1
- package/dist/articles/diff.d.ts +70 -0
- package/dist/articles/diff.d.ts.map +1 -0
- package/dist/articles/diff.js +330 -0
- package/dist/articles/diff.js.map +1 -0
- package/dist/articles/docx.d.ts +10 -0
- package/dist/articles/docx.d.ts.map +1 -0
- package/dist/articles/docx.js +219 -0
- package/dist/articles/docx.js.map +1 -0
- package/dist/articles/draft.d.ts +18 -0
- package/dist/articles/draft.d.ts.map +1 -0
- package/dist/articles/draft.js +88 -0
- package/dist/articles/draft.js.map +1 -0
- package/dist/articles/edits.d.ts +24 -0
- package/dist/articles/edits.d.ts.map +1 -0
- package/dist/articles/edits.js +54 -0
- package/dist/articles/edits.js.map +1 -0
- package/dist/articles/html.d.ts +10 -0
- package/dist/articles/html.d.ts.map +1 -0
- package/dist/articles/html.js +122 -0
- package/dist/articles/html.js.map +1 -0
- package/dist/articles/plain.d.ts +8 -0
- package/dist/articles/plain.d.ts.map +1 -0
- package/dist/articles/plain.js +69 -0
- package/dist/articles/plain.js.map +1 -0
- package/dist/articles/preview.d.ts +43 -0
- package/dist/articles/preview.d.ts.map +1 -0
- package/dist/articles/preview.js +90 -0
- package/dist/articles/preview.js.map +1 -0
- package/dist/articles/publish.d.ts +10 -0
- package/dist/articles/publish.d.ts.map +1 -0
- package/dist/articles/publish.js +54 -0
- package/dist/articles/publish.js.map +1 -0
- package/dist/articles/receipt.d.ts +16 -0
- package/dist/articles/receipt.d.ts.map +1 -0
- package/dist/articles/receipt.js +27 -0
- package/dist/articles/receipt.js.map +1 -0
- package/dist/articles/store.d.ts +78 -0
- package/dist/articles/store.d.ts.map +1 -0
- package/dist/articles/store.js +308 -0
- package/dist/articles/store.js.map +1 -0
- package/dist/articles/tool.d.ts +14 -0
- package/dist/articles/tool.d.ts.map +1 -0
- package/dist/articles/tool.js +175 -0
- package/dist/articles/tool.js.map +1 -0
- package/dist/articles/writer-context.d.ts +5 -0
- package/dist/articles/writer-context.d.ts.map +1 -0
- package/dist/articles/writer-context.js +56 -0
- package/dist/articles/writer-context.js.map +1 -0
- package/dist/articles/writer.d.ts +18 -0
- package/dist/articles/writer.d.ts.map +1 -0
- package/dist/articles/writer.js +79 -0
- package/dist/articles/writer.js.map +1 -0
- package/dist/articles/zip-write.d.ts +11 -0
- package/dist/articles/zip-write.d.ts.map +1 -0
- package/dist/articles/zip-write.js +63 -0
- package/dist/articles/zip-write.js.map +1 -0
- package/dist/bundled-skills/README.md +17 -0
- package/dist/bundled-skills/aegis-search/SKILL.md +59 -0
- package/dist/bundled-skills/aegis-search/bin/.gitkeep +0 -0
- package/dist/bundled-skills/article-canvas/SKILL.md +28 -0
- package/dist/bundled-skills/binaries.json +23 -0
- package/dist/bundled-skills/doc-extract/SKILL.md +56 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +407 -54
- package/dist/cli/main.js.map +1 -1
- package/dist/config/config.d.ts +43 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +150 -6
- package/dist/config/config.js.map +1 -1
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +80 -11
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/desktop/application.d.ts +4 -0
- package/dist/desktop/application.d.ts.map +1 -0
- package/dist/desktop/application.js +1688 -0
- package/dist/desktop/application.js.map +1 -0
- package/dist/desktop/article-export.d.ts +12 -0
- package/dist/desktop/article-export.d.ts.map +1 -0
- package/dist/desktop/article-export.js +87 -0
- package/dist/desktop/article-export.js.map +1 -0
- package/dist/desktop/assets/pspore.png +0 -0
- package/dist/desktop/assets/pspore.svg +24 -0
- package/dist/desktop/conversation-smoke.d.ts +5 -0
- package/dist/desktop/conversation-smoke.d.ts.map +1 -0
- package/dist/desktop/conversation-smoke.js +93 -0
- package/dist/desktop/conversation-smoke.js.map +1 -0
- package/dist/desktop/daemon-bridge.d.ts.map +1 -1
- package/dist/desktop/daemon-bridge.js +62 -17
- package/dist/desktop/daemon-bridge.js.map +1 -1
- package/dist/desktop/ipc-contract.d.ts +124 -0
- package/dist/desktop/ipc-contract.d.ts.map +1 -1
- package/dist/desktop/ipc-contract.js +191 -12
- package/dist/desktop/ipc-contract.js.map +1 -1
- package/dist/desktop/local-path.d.ts +15 -0
- package/dist/desktop/local-path.d.ts.map +1 -0
- package/dist/desktop/local-path.js +59 -0
- package/dist/desktop/local-path.js.map +1 -0
- package/dist/desktop/main.d.ts +10 -1
- package/dist/desktop/main.d.ts.map +1 -1
- package/dist/desktop/main.js +122 -530
- package/dist/desktop/main.js.map +1 -1
- package/dist/desktop/native-startup.d.ts +4 -0
- package/dist/desktop/native-startup.d.ts.map +1 -0
- package/dist/desktop/native-startup.js +57 -0
- package/dist/desktop/native-startup.js.map +1 -0
- package/dist/desktop/preload.cjs +28 -1
- package/dist/desktop/renderer/article-panel.d.ts +45 -0
- package/dist/desktop/renderer/article-panel.d.ts.map +1 -0
- package/dist/desktop/renderer/article-panel.js +1126 -0
- package/dist/desktop/renderer/article-panel.js.map +1 -0
- package/dist/desktop/renderer/article-split.d.ts +32 -0
- package/dist/desktop/renderer/article-split.d.ts.map +1 -0
- package/dist/desktop/renderer/article-split.js +48 -0
- package/dist/desktop/renderer/article-split.js.map +1 -0
- package/dist/desktop/renderer/composer-file-references.d.ts +23 -0
- package/dist/desktop/renderer/composer-file-references.d.ts.map +1 -0
- package/dist/desktop/renderer/composer-file-references.js +51 -0
- package/dist/desktop/renderer/composer-file-references.js.map +1 -0
- package/dist/desktop/renderer/conversation.d.ts +23 -0
- package/dist/desktop/renderer/conversation.d.ts.map +1 -0
- package/dist/desktop/renderer/conversation.js +66 -0
- package/dist/desktop/renderer/conversation.js.map +1 -0
- package/dist/desktop/renderer/dom-reconcile.d.ts +15 -0
- package/dist/desktop/renderer/dom-reconcile.d.ts.map +1 -0
- package/dist/desktop/renderer/dom-reconcile.js +33 -0
- package/dist/desktop/renderer/dom-reconcile.js.map +1 -0
- package/dist/desktop/renderer/index.html +211 -34
- package/dist/desktop/renderer/indexing-view.d.ts +22 -0
- package/dist/desktop/renderer/indexing-view.d.ts.map +1 -0
- package/dist/desktop/renderer/indexing-view.js +115 -0
- package/dist/desktop/renderer/indexing-view.js.map +1 -0
- package/dist/desktop/renderer/markdown-view.d.ts +23 -0
- package/dist/desktop/renderer/markdown-view.d.ts.map +1 -0
- package/dist/desktop/renderer/markdown-view.js +436 -0
- package/dist/desktop/renderer/markdown-view.js.map +1 -0
- package/dist/desktop/renderer/motion.d.ts +67 -0
- package/dist/desktop/renderer/motion.d.ts.map +1 -0
- package/dist/desktop/renderer/motion.js +296 -0
- package/dist/desktop/renderer/motion.js.map +1 -0
- package/dist/desktop/renderer/renderer.js +1788 -151
- package/dist/desktop/renderer/renderer.js.map +1 -1
- package/dist/desktop/renderer/session-find.d.ts +18 -0
- package/dist/desktop/renderer/session-find.d.ts.map +1 -0
- package/dist/desktop/renderer/session-find.js +29 -0
- package/dist/desktop/renderer/session-find.js.map +1 -0
- package/dist/desktop/renderer/session-search.d.ts +30 -0
- package/dist/desktop/renderer/session-search.d.ts.map +1 -0
- package/dist/desktop/renderer/session-search.js +296 -0
- package/dist/desktop/renderer/session-search.js.map +1 -0
- package/dist/desktop/renderer/store.d.ts +33 -0
- package/dist/desktop/renderer/store.d.ts.map +1 -1
- package/dist/desktop/renderer/store.js +92 -19
- package/dist/desktop/renderer/store.js.map +1 -1
- package/dist/desktop/renderer/styles.css +910 -268
- package/dist/desktop/renderer/vendor/gsap.min.js +11 -0
- package/dist/desktop/renderer-diagnostics.d.ts +5 -0
- package/dist/desktop/renderer-diagnostics.d.ts.map +1 -0
- package/dist/desktop/renderer-diagnostics.js +47 -0
- package/dist/desktop/renderer-diagnostics.js.map +1 -0
- package/dist/desktop/security.d.ts +26 -1
- package/dist/desktop/security.d.ts.map +1 -1
- package/dist/desktop/security.js +26 -6
- package/dist/desktop/security.js.map +1 -1
- package/dist/desktop/smoke-fixture.d.ts.map +1 -1
- package/dist/desktop/smoke-fixture.js +77 -3
- package/dist/desktop/smoke-fixture.js.map +1 -1
- package/dist/desktop/splash/index.html +25 -0
- package/dist/desktop/splash/splash.d.ts +2 -0
- package/dist/desktop/splash/splash.d.ts.map +1 -0
- package/dist/desktop/splash/splash.js +8 -0
- package/dist/desktop/splash/splash.js.map +1 -0
- package/dist/desktop/splash/styles.css +24 -0
- package/dist/desktop/system-open.d.ts +16 -0
- package/dist/desktop/system-open.d.ts.map +1 -0
- package/dist/desktop/system-open.js +90 -0
- package/dist/desktop/system-open.js.map +1 -0
- package/dist/desktop/validation.d.ts.map +1 -1
- package/dist/desktop/validation.js +99 -21
- package/dist/desktop/validation.js.map +1 -1
- package/dist/desktop/window-security.d.ts +4 -0
- package/dist/desktop/window-security.d.ts.map +1 -0
- package/dist/desktop/window-security.js +26 -0
- package/dist/desktop/window-security.js.map +1 -0
- package/dist/documents/errors.d.ts +12 -0
- package/dist/documents/errors.d.ts.map +1 -0
- package/dist/documents/errors.js +12 -0
- package/dist/documents/errors.js.map +1 -0
- package/dist/documents/extract.d.ts +37 -0
- package/dist/documents/extract.d.ts.map +1 -0
- package/dist/documents/extract.js +90 -0
- package/dist/documents/extract.js.map +1 -0
- package/dist/documents/legacy-office.d.ts +23 -0
- package/dist/documents/legacy-office.d.ts.map +1 -0
- package/dist/documents/legacy-office.js +439 -0
- package/dist/documents/legacy-office.js.map +1 -0
- package/dist/documents/ole.d.ts +20 -0
- package/dist/documents/ole.d.ts.map +1 -0
- package/dist/documents/ole.js +189 -0
- package/dist/documents/ole.js.map +1 -0
- package/dist/documents/ooxml.d.ts +23 -0
- package/dist/documents/ooxml.d.ts.map +1 -0
- package/dist/documents/ooxml.js +197 -0
- package/dist/documents/ooxml.js.map +1 -0
- package/dist/documents/pdf.d.ts +20 -0
- package/dist/documents/pdf.d.ts.map +1 -0
- package/dist/documents/pdf.js +95 -0
- package/dist/documents/pdf.js.map +1 -0
- package/dist/documents/plain-text.d.ts +22 -0
- package/dist/documents/plain-text.d.ts.map +1 -0
- package/dist/documents/plain-text.js +57 -0
- package/dist/documents/plain-text.js.map +1 -0
- package/dist/documents/zip.d.ts +15 -0
- package/dist/documents/zip.d.ts.map +1 -0
- package/dist/documents/zip.js +137 -0
- package/dist/documents/zip.js.map +1 -0
- package/dist/domain/indexing.d.ts +60 -0
- package/dist/domain/indexing.d.ts.map +1 -0
- package/dist/domain/indexing.js +13 -0
- package/dist/domain/indexing.js.map +1 -0
- package/dist/domain/runtime.d.ts +133 -5
- package/dist/domain/runtime.d.ts.map +1 -1
- package/dist/gateway/local-gateway.d.ts +8 -0
- package/dist/gateway/local-gateway.d.ts.map +1 -1
- package/dist/gateway/local-gateway.js +105 -21
- package/dist/gateway/local-gateway.js.map +1 -1
- package/dist/indexing/index-service.d.ts +56 -0
- package/dist/indexing/index-service.d.ts.map +1 -0
- package/dist/indexing/index-service.js +262 -0
- package/dist/indexing/index-service.js.map +1 -0
- package/dist/kernel/loop.d.ts +10 -0
- package/dist/kernel/loop.d.ts.map +1 -1
- package/dist/kernel/loop.js +6 -2
- package/dist/kernel/loop.js.map +1 -1
- package/dist/kernel/reducer.d.ts.map +1 -1
- package/dist/kernel/reducer.js +17 -1
- package/dist/kernel/reducer.js.map +1 -1
- package/dist/kernel/state.d.ts +17 -4
- package/dist/kernel/state.d.ts.map +1 -1
- package/dist/kernel/state.js +2 -0
- package/dist/kernel/state.js.map +1 -1
- package/dist/pi/context-budget.d.ts +8 -0
- package/dist/pi/context-budget.d.ts.map +1 -0
- package/dist/pi/context-budget.js +62 -0
- package/dist/pi/context-budget.js.map +1 -0
- package/dist/pi/pi-runtime-adapter.d.ts +38 -3
- package/dist/pi/pi-runtime-adapter.d.ts.map +1 -1
- package/dist/pi/pi-runtime-adapter.js +551 -56
- package/dist/pi/pi-runtime-adapter.js.map +1 -1
- package/dist/plugins/bundled-skills.d.ts +56 -0
- package/dist/plugins/bundled-skills.d.ts.map +1 -0
- package/dist/plugins/bundled-skills.js +243 -0
- package/dist/plugins/bundled-skills.js.map +1 -0
- package/dist/plugins/extension-manager.d.ts +23 -1
- package/dist/plugins/extension-manager.d.ts.map +1 -1
- package/dist/plugins/extension-manager.js +117 -0
- package/dist/plugins/extension-manager.js.map +1 -1
- package/dist/plugins/types.d.ts +29 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/plugins/workspace-skills.d.ts +36 -0
- package/dist/plugins/workspace-skills.d.ts.map +1 -0
- package/dist/plugins/workspace-skills.js +309 -0
- package/dist/plugins/workspace-skills.js.map +1 -0
- package/dist/policy/policy.d.ts.map +1 -1
- package/dist/policy/policy.js +22 -3
- package/dist/policy/policy.js.map +1 -1
- package/dist/protocol/client.d.ts +1 -0
- package/dist/protocol/client.d.ts.map +1 -1
- package/dist/protocol/client.js +49 -24
- package/dist/protocol/client.js.map +1 -1
- package/dist/protocol/limits.d.ts +69 -0
- package/dist/protocol/limits.d.ts.map +1 -0
- package/dist/protocol/limits.js +166 -0
- package/dist/protocol/limits.js.map +1 -0
- package/dist/protocol/schema.d.ts +6 -0
- package/dist/protocol/schema.d.ts.map +1 -1
- package/dist/protocol/schema.js.map +1 -1
- package/dist/protocol/server-frame-codec.d.ts +18 -0
- package/dist/protocol/server-frame-codec.d.ts.map +1 -0
- package/dist/protocol/server-frame-codec.js +211 -0
- package/dist/protocol/server-frame-codec.js.map +1 -0
- package/dist/service/legacy-daemon.d.ts +6 -0
- package/dist/service/legacy-daemon.d.ts.map +1 -0
- package/dist/service/legacy-daemon.js +42 -0
- package/dist/service/legacy-daemon.js.map +1 -0
- package/dist/service/service-launch.d.ts +10 -0
- package/dist/service/service-launch.d.ts.map +1 -0
- package/dist/service/service-launch.js +56 -0
- package/dist/service/service-launch.js.map +1 -0
- package/dist/service/system-service.d.ts +57 -0
- package/dist/service/system-service.d.ts.map +1 -0
- package/dist/service/system-service.js +263 -0
- package/dist/service/system-service.js.map +1 -0
- package/dist/sessions/session-catalog.d.ts +45 -0
- package/dist/sessions/session-catalog.d.ts.map +1 -0
- package/dist/sessions/session-catalog.js +270 -0
- package/dist/sessions/session-catalog.js.map +1 -0
- package/dist/sessions/session-file.d.ts +12 -0
- package/dist/sessions/session-file.d.ts.map +1 -0
- package/dist/sessions/session-file.js +47 -0
- package/dist/sessions/session-file.js.map +1 -0
- package/dist/settings/compaction-settings.d.ts +10 -0
- package/dist/settings/compaction-settings.d.ts.map +1 -0
- package/dist/settings/compaction-settings.js +8 -0
- package/dist/settings/compaction-settings.js.map +1 -0
- package/dist/settings/indexing-settings-service.d.ts +16 -0
- package/dist/settings/indexing-settings-service.d.ts.map +1 -0
- package/dist/settings/indexing-settings-service.js +57 -0
- package/dist/settings/indexing-settings-service.js.map +1 -0
- package/dist/settings/indexing-settings.d.ts +30 -0
- package/dist/settings/indexing-settings.d.ts.map +1 -0
- package/dist/settings/indexing-settings.js +58 -0
- package/dist/settings/indexing-settings.js.map +1 -0
- package/dist/settings/llm-settings-service.d.ts +6 -0
- package/dist/settings/llm-settings-service.d.ts.map +1 -1
- package/dist/settings/llm-settings-service.js +137 -12
- package/dist/settings/llm-settings-service.js.map +1 -1
- package/dist/settings/llm-settings.d.ts +68 -2
- package/dist/settings/llm-settings.d.ts.map +1 -1
- package/dist/settings/llm-settings.js +119 -17
- package/dist/settings/llm-settings.js.map +1 -1
- package/dist/settings/model-api.d.ts +10 -0
- package/dist/settings/model-api.d.ts.map +1 -0
- package/dist/settings/model-api.js +10 -0
- package/dist/settings/model-api.js.map +1 -0
- package/dist/storage/home.d.ts +1 -0
- package/dist/storage/home.d.ts.map +1 -1
- package/dist/storage/home.js +37 -2
- package/dist/storage/home.js.map +1 -1
- package/dist/tools/core-tools.d.ts +2 -0
- package/dist/tools/core-tools.d.ts.map +1 -1
- package/dist/tools/core-tools.js +91 -1
- package/dist/tools/core-tools.js.map +1 -1
- package/dist/ui/shared/activity.d.ts +2 -0
- package/dist/ui/shared/activity.d.ts.map +1 -1
- package/dist/ui/shared/activity.js +18 -4
- package/dist/ui/shared/activity.js.map +1 -1
- package/dist/ui/shared/full-message.d.ts +22 -0
- package/dist/ui/shared/full-message.d.ts.map +1 -0
- package/dist/ui/shared/full-message.js +40 -0
- package/dist/ui/shared/full-message.js.map +1 -0
- package/dist/ui/shared/local-links.d.ts +7 -0
- package/dist/ui/shared/local-links.d.ts.map +1 -0
- package/dist/ui/shared/local-links.js +24 -0
- package/dist/ui/shared/local-links.js.map +1 -0
- package/dist/ui/shared/markdown-stream.d.ts +25 -0
- package/dist/ui/shared/markdown-stream.d.ts.map +1 -0
- package/dist/ui/shared/markdown-stream.js +35 -0
- package/dist/ui/shared/markdown-stream.js.map +1 -0
- package/dist/ui/shared/markdown.d.ts +70 -0
- package/dist/ui/shared/markdown.d.ts.map +1 -0
- package/dist/ui/shared/markdown.js +434 -0
- package/dist/ui/shared/markdown.js.map +1 -0
- package/dist/ui/shared/presentation.d.ts +10 -2
- package/dist/ui/shared/presentation.d.ts.map +1 -1
- package/dist/ui/shared/presentation.js +83 -22
- package/dist/ui/shared/presentation.js.map +1 -1
- package/dist/ui/shared/protocol-state.d.ts +19 -0
- package/dist/ui/shared/protocol-state.d.ts.map +1 -1
- package/dist/ui/shared/protocol-state.js +188 -26
- package/dist/ui/shared/protocol-state.js.map +1 -1
- package/dist/ui/shared/virtual-list.d.ts +34 -0
- package/dist/ui/shared/virtual-list.d.ts.map +1 -0
- package/dist/ui/shared/virtual-list.js +143 -0
- package/dist/ui/shared/virtual-list.js.map +1 -0
- package/dist/ui/tui/commands.d.ts +1 -1
- package/dist/ui/tui/commands.d.ts.map +1 -1
- package/dist/ui/tui/commands.js +8 -3
- package/dist/ui/tui/commands.js.map +1 -1
- package/dist/ui/tui/store.d.ts +22 -1
- package/dist/ui/tui/store.d.ts.map +1 -1
- package/dist/ui/tui/store.js +50 -3
- package/dist/ui/tui/store.js.map +1 -1
- package/dist/ui/tui/tui-app.d.ts.map +1 -1
- package/dist/ui/tui/tui-app.js +231 -31
- package/dist/ui/tui/tui-app.js.map +1 -1
- package/dist/ui/tui/view.d.ts +7 -0
- package/dist/ui/tui/view.d.ts.map +1 -1
- package/dist/ui/tui/view.js +161 -57
- package/dist/ui/tui/view.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +13 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/protocol/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAe,MAAM,UAAU,CAAC;AAEzD,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,gBAAgB,GAOjB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/protocol/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared ceilings for everything the daemon puts on the wire.
|
|
3
|
+
*
|
|
4
|
+
* Clients validate incoming frames strictly and drop the connection when a
|
|
5
|
+
* frame violates a limit. A daemon that publishes an oversized-but-honest
|
|
6
|
+
* payload therefore locks the client out permanently: the offending value is
|
|
7
|
+
* part of the authoritative snapshot, so every reconnect replays the same
|
|
8
|
+
* rejection. The daemon bounds its own output well below the client ceilings
|
|
9
|
+
* so that can never happen, and clients keep the ceilings as a guard against a
|
|
10
|
+
* genuinely broken peer.
|
|
11
|
+
*/
|
|
12
|
+
/** Client-side ceiling for a single string in a protocol value. */
|
|
13
|
+
export declare const MAX_PROTOCOL_STRING_CHARS = 262144;
|
|
14
|
+
/** Client-side ceiling for the entry count of a single array or object. */
|
|
15
|
+
export declare const MAX_PROTOCOL_COLLECTION_ENTRIES = 10000;
|
|
16
|
+
/** Client-side ceiling for JSON nesting depth. */
|
|
17
|
+
export declare const MAX_PROTOCOL_DEPTH = 32;
|
|
18
|
+
/** Client-side ceiling for the total node count of one protocol value. */
|
|
19
|
+
export declare const MAX_PROTOCOL_NODES = 2000000;
|
|
20
|
+
/** Daemon-side ceiling for a single published string. */
|
|
21
|
+
export declare const MAX_PUBLISHED_STRING_CHARS = 65536;
|
|
22
|
+
/** Daemon-side ceiling for a published array or object entry count. */
|
|
23
|
+
export declare const MAX_PUBLISHED_COLLECTION_ENTRIES = 2000;
|
|
24
|
+
/** Daemon-side ceiling for published JSON nesting depth. */
|
|
25
|
+
export declare const MAX_PUBLISHED_DEPTH = 24;
|
|
26
|
+
/**
|
|
27
|
+
* Daemon-side ceiling for one whole published value. Per-string and per-array
|
|
28
|
+
* limits alone still multiply out past what a frame can carry once a home holds
|
|
29
|
+
* many long sessions, and the snapshot that cannot be encoded is the snapshot
|
|
30
|
+
* every reconnect asks for again.
|
|
31
|
+
*/
|
|
32
|
+
export declare const MAX_PUBLISHED_VALUE_CHARS = 8388608;
|
|
33
|
+
export interface PublishedValueBounds {
|
|
34
|
+
maxStringChars: number;
|
|
35
|
+
maxCollectionEntries: number;
|
|
36
|
+
maxDepth: number;
|
|
37
|
+
maxTotalChars: number;
|
|
38
|
+
}
|
|
39
|
+
export declare const PUBLISHED_VALUE_BOUNDS: PublishedValueBounds;
|
|
40
|
+
/**
|
|
41
|
+
* Returns `value` bounded to `bounds`, sharing structure with the input when
|
|
42
|
+
* nothing had to be trimmed. Oversized strings keep their head and announce the
|
|
43
|
+
* cut; arrays keep their newest entries and spend the shared budget on those
|
|
44
|
+
* first, because every unbounded collection on this protocol is an append-only
|
|
45
|
+
* transcript whose tail is the part a client is looking at.
|
|
46
|
+
*/
|
|
47
|
+
export declare function boundPublishedValue<T>(value: T, bounds?: PublishedValueBounds): T;
|
|
48
|
+
/**
|
|
49
|
+
* Bounds `value` and reports roughly how many characters it will occupy on the
|
|
50
|
+
* wire, so callers that retain published frames can budget their own memory
|
|
51
|
+
* without re-serialising every one of them.
|
|
52
|
+
*/
|
|
53
|
+
export declare function measurePublishedValue<T>(value: T, bounds?: PublishedValueBounds): {
|
|
54
|
+
value: T;
|
|
55
|
+
cost: number;
|
|
56
|
+
};
|
|
57
|
+
/** Bounds a single string the same way `boundPublishedValue` bounds nested ones. */
|
|
58
|
+
export declare function boundPublishedText(value: string, maxChars?: number): string;
|
|
59
|
+
/**
|
|
60
|
+
* Reads the marker `boundPublishedText` leaves behind, so a client can tell a
|
|
61
|
+
* message it received in full from one the daemon had to cut and offer to fetch
|
|
62
|
+
* the rest. The marker is generated here, so this is the only place that needs
|
|
63
|
+
* to know its shape.
|
|
64
|
+
*/
|
|
65
|
+
export declare function publishedTextTruncation(value: string): {
|
|
66
|
+
kept: number;
|
|
67
|
+
total: number;
|
|
68
|
+
} | undefined;
|
|
69
|
+
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/protocol/limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,SAAU,CAAC;AACjD,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAE5C,yDAAyD;AACzD,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,uEAAuE;AACvE,eAAO,MAAM,gCAAgC,OAAQ,CAAC;AACtD,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAAY,CAAC;AAQnD,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,sBAAsB,EAAE,oBAKpC,CAAC;AAOF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAE,oBAA6C,GAAG,CAAC,CAEzG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EACR,MAAM,GAAE,oBAA6C,GACpD;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAG5B;AAaD,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAA6B,GAAG,MAAM,CAS/F;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAOlG"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared ceilings for everything the daemon puts on the wire.
|
|
3
|
+
*
|
|
4
|
+
* Clients validate incoming frames strictly and drop the connection when a
|
|
5
|
+
* frame violates a limit. A daemon that publishes an oversized-but-honest
|
|
6
|
+
* payload therefore locks the client out permanently: the offending value is
|
|
7
|
+
* part of the authoritative snapshot, so every reconnect replays the same
|
|
8
|
+
* rejection. The daemon bounds its own output well below the client ceilings
|
|
9
|
+
* so that can never happen, and clients keep the ceilings as a guard against a
|
|
10
|
+
* genuinely broken peer.
|
|
11
|
+
*/
|
|
12
|
+
/** Client-side ceiling for a single string in a protocol value. */
|
|
13
|
+
export const MAX_PROTOCOL_STRING_CHARS = 262_144;
|
|
14
|
+
/** Client-side ceiling for the entry count of a single array or object. */
|
|
15
|
+
export const MAX_PROTOCOL_COLLECTION_ENTRIES = 10_000;
|
|
16
|
+
/** Client-side ceiling for JSON nesting depth. */
|
|
17
|
+
export const MAX_PROTOCOL_DEPTH = 32;
|
|
18
|
+
/** Client-side ceiling for the total node count of one protocol value. */
|
|
19
|
+
export const MAX_PROTOCOL_NODES = 2_000_000;
|
|
20
|
+
/** Daemon-side ceiling for a single published string. */
|
|
21
|
+
export const MAX_PUBLISHED_STRING_CHARS = 65_536;
|
|
22
|
+
/** Daemon-side ceiling for a published array or object entry count. */
|
|
23
|
+
export const MAX_PUBLISHED_COLLECTION_ENTRIES = 2_000;
|
|
24
|
+
/** Daemon-side ceiling for published JSON nesting depth. */
|
|
25
|
+
export const MAX_PUBLISHED_DEPTH = 24;
|
|
26
|
+
/**
|
|
27
|
+
* Daemon-side ceiling for one whole published value. Per-string and per-array
|
|
28
|
+
* limits alone still multiply out past what a frame can carry once a home holds
|
|
29
|
+
* many long sessions, and the snapshot that cannot be encoded is the snapshot
|
|
30
|
+
* every reconnect asks for again.
|
|
31
|
+
*/
|
|
32
|
+
export const MAX_PUBLISHED_VALUE_CHARS = 8_388_608;
|
|
33
|
+
const NESTED_PLACEHOLDER = "[truncated: value nested too deeply]";
|
|
34
|
+
/** Rough per-entry overhead of JSON delimiters, so the budget tracks the wire. */
|
|
35
|
+
const ENTRY_OVERHEAD = 2;
|
|
36
|
+
/** Rough cost of a scalar that carries no length of its own. */
|
|
37
|
+
const SCALAR_COST = 8;
|
|
38
|
+
export const PUBLISHED_VALUE_BOUNDS = {
|
|
39
|
+
maxStringChars: MAX_PUBLISHED_STRING_CHARS,
|
|
40
|
+
maxCollectionEntries: MAX_PUBLISHED_COLLECTION_ENTRIES,
|
|
41
|
+
maxDepth: MAX_PUBLISHED_DEPTH,
|
|
42
|
+
maxTotalChars: MAX_PUBLISHED_VALUE_CHARS,
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Returns `value` bounded to `bounds`, sharing structure with the input when
|
|
46
|
+
* nothing had to be trimmed. Oversized strings keep their head and announce the
|
|
47
|
+
* cut; arrays keep their newest entries and spend the shared budget on those
|
|
48
|
+
* first, because every unbounded collection on this protocol is an append-only
|
|
49
|
+
* transcript whose tail is the part a client is looking at.
|
|
50
|
+
*/
|
|
51
|
+
export function boundPublishedValue(value, bounds = PUBLISHED_VALUE_BOUNDS) {
|
|
52
|
+
return measurePublishedValue(value, bounds).value;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Bounds `value` and reports roughly how many characters it will occupy on the
|
|
56
|
+
* wire, so callers that retain published frames can budget their own memory
|
|
57
|
+
* without re-serialising every one of them.
|
|
58
|
+
*/
|
|
59
|
+
export function measurePublishedValue(value, bounds = PUBLISHED_VALUE_BOUNDS) {
|
|
60
|
+
const bounded = bound(value, bounds, 0, { remaining: bounds.maxTotalChars });
|
|
61
|
+
return { value: bounded.value, cost: bounded.cost };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The one character clients refuse outright. It reaches a transcript whenever a
|
|
65
|
+
* tool hands back bytes that were never UTF-8 text — reading a `.docx`, which is
|
|
66
|
+
* a ZIP, is enough — and a single one of them inside the authoritative snapshot
|
|
67
|
+
* fails validation on every reconnect, which locks a client out for good. It is
|
|
68
|
+
* replaced rather than dropped so the reader can see something was there.
|
|
69
|
+
*/
|
|
70
|
+
const NUL = "\u0000";
|
|
71
|
+
const NUL_PATTERN = /\u0000/g;
|
|
72
|
+
const NUL_REPLACEMENT = "\uFFFD";
|
|
73
|
+
/** Bounds a single string the same way `boundPublishedValue` bounds nested ones. */
|
|
74
|
+
export function boundPublishedText(value, maxChars = MAX_PUBLISHED_STRING_CHARS) {
|
|
75
|
+
// Same length either way, so this cannot push a string back over the ceiling,
|
|
76
|
+
// and an untouched string keeps its identity for the structure sharing above.
|
|
77
|
+
const safe = value.includes(NUL) ? value.replace(NUL_PATTERN, NUL_REPLACEMENT) : value;
|
|
78
|
+
if (safe.length <= maxChars)
|
|
79
|
+
return safe;
|
|
80
|
+
// The marker is part of the budget, and its own length depends only on values
|
|
81
|
+
// the caller already knows, so the result is exactly `maxChars` characters.
|
|
82
|
+
const marker = truncationMarker(maxChars, safe.length);
|
|
83
|
+
return `${safe.slice(0, Math.max(0, maxChars - marker.length))}${marker}`;
|
|
84
|
+
}
|
|
85
|
+
function truncationMarker(kept, total) {
|
|
86
|
+
return `…[truncated to ${kept} of ${total} characters]`;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Reads the marker `boundPublishedText` leaves behind, so a client can tell a
|
|
90
|
+
* message it received in full from one the daemon had to cut and offer to fetch
|
|
91
|
+
* the rest. The marker is generated here, so this is the only place that needs
|
|
92
|
+
* to know its shape.
|
|
93
|
+
*/
|
|
94
|
+
export function publishedTextTruncation(value) {
|
|
95
|
+
const match = /…\[truncated to (\d+) of (\d+) characters]$/.exec(value);
|
|
96
|
+
if (!match)
|
|
97
|
+
return undefined;
|
|
98
|
+
const kept = Number(match[1]);
|
|
99
|
+
const total = Number(match[2]);
|
|
100
|
+
if (!Number.isSafeInteger(kept) || !Number.isSafeInteger(total) || total <= kept)
|
|
101
|
+
return undefined;
|
|
102
|
+
return { kept, total };
|
|
103
|
+
}
|
|
104
|
+
function bound(value, bounds, depth, budget) {
|
|
105
|
+
if (typeof value === "string") {
|
|
106
|
+
const bounded = boundPublishedText(value, bounds.maxStringChars);
|
|
107
|
+
budget.remaining -= bounded.length;
|
|
108
|
+
return { value: bounded, cost: bounded.length };
|
|
109
|
+
}
|
|
110
|
+
if (value === null || typeof value !== "object") {
|
|
111
|
+
budget.remaining -= SCALAR_COST;
|
|
112
|
+
return { value, cost: SCALAR_COST };
|
|
113
|
+
}
|
|
114
|
+
if (depth >= bounds.maxDepth) {
|
|
115
|
+
budget.remaining -= NESTED_PLACEHOLDER.length;
|
|
116
|
+
return { value: NESTED_PLACEHOLDER, cost: NESTED_PLACEHOLDER.length };
|
|
117
|
+
}
|
|
118
|
+
if (Array.isArray(value))
|
|
119
|
+
return boundArray(value, bounds, depth, budget);
|
|
120
|
+
return boundObject(value, bounds, depth, budget);
|
|
121
|
+
}
|
|
122
|
+
function boundArray(value, bounds, depth, budget) {
|
|
123
|
+
const start = Math.max(0, value.length - bounds.maxCollectionEntries);
|
|
124
|
+
let changed = start > 0;
|
|
125
|
+
let cost = ENTRY_OVERHEAD;
|
|
126
|
+
// Newest first: an exhausted budget drops the oldest entries rather than
|
|
127
|
+
// starving the tail a client actually renders.
|
|
128
|
+
const reversed = [];
|
|
129
|
+
for (let index = value.length - 1; index >= start; index -= 1) {
|
|
130
|
+
if (budget.remaining <= 0) {
|
|
131
|
+
changed = true;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
const item = value[index];
|
|
135
|
+
const bounded = bound(item, bounds, depth + 1, budget);
|
|
136
|
+
if (bounded.value !== item)
|
|
137
|
+
changed = true;
|
|
138
|
+
budget.remaining -= ENTRY_OVERHEAD;
|
|
139
|
+
cost += bounded.cost + ENTRY_OVERHEAD;
|
|
140
|
+
reversed.push(bounded.value);
|
|
141
|
+
}
|
|
142
|
+
if (!changed)
|
|
143
|
+
return { value, cost };
|
|
144
|
+
return { value: reversed.reverse(), cost };
|
|
145
|
+
}
|
|
146
|
+
function boundObject(value, bounds, depth, budget) {
|
|
147
|
+
const entries = Object.entries(value);
|
|
148
|
+
const trimmed = entries.length > bounds.maxCollectionEntries
|
|
149
|
+
? entries.slice(-bounds.maxCollectionEntries)
|
|
150
|
+
: entries;
|
|
151
|
+
let changed = trimmed.length !== entries.length;
|
|
152
|
+
let cost = ENTRY_OVERHEAD;
|
|
153
|
+
const next = {};
|
|
154
|
+
for (const [key, item] of trimmed) {
|
|
155
|
+
// Object keys are structure, not payload: dropping them would break the
|
|
156
|
+
// shape a client validates against, so they are always kept.
|
|
157
|
+
const bounded = bound(item, bounds, depth + 1, budget);
|
|
158
|
+
if (bounded.value !== item)
|
|
159
|
+
changed = true;
|
|
160
|
+
budget.remaining -= key.length + ENTRY_OVERHEAD;
|
|
161
|
+
cost += bounded.cost + key.length + ENTRY_OVERHEAD;
|
|
162
|
+
next[key] = bounded.value;
|
|
163
|
+
}
|
|
164
|
+
return changed ? { value: next, cost } : { value, cost };
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/protocol/limits.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,12 @@ export interface EventEnvelope<T = unknown> {
|
|
|
56
56
|
correlationId?: string;
|
|
57
57
|
causationId?: string;
|
|
58
58
|
durable: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Transient events the server intentionally shed for this connection between
|
|
61
|
+
* the previous event and this one. Clients advance their cursor by this many
|
|
62
|
+
* sequence numbers, so backpressure never reads as a lost-event gap.
|
|
63
|
+
*/
|
|
64
|
+
skipped?: number;
|
|
59
65
|
type: string;
|
|
60
66
|
payload: T;
|
|
61
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/protocol/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/protocol/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/protocol/schema.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/protocol/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ServerFrame } from "./schema.js";
|
|
2
|
+
export declare const SERVER_FRAME_CHUNKS_CAPABILITY = "server-frame-chunks.v1";
|
|
3
|
+
export declare const DEFAULT_MAX_SERVER_MESSAGE_BYTES = 67108864;
|
|
4
|
+
export declare function encodeServerFrame(frame: ServerFrame, options: {
|
|
5
|
+
maxFrameBytes: number;
|
|
6
|
+
maxMessageBytes?: number;
|
|
7
|
+
idFactory: () => string;
|
|
8
|
+
}): readonly string[];
|
|
9
|
+
export declare class ServerFrameDecoder {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(options: {
|
|
12
|
+
maxFrameBytes: number;
|
|
13
|
+
maxMessageBytes?: number;
|
|
14
|
+
});
|
|
15
|
+
reset(): void;
|
|
16
|
+
decode(line: Uint8Array): ServerFrame | undefined;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=server-frame-codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-frame-codec.d.ts","sourceRoot":"","sources":["../../src/protocol/server-frame-codec.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,8BAA8B,2BAA2B,CAAC;AACvE,eAAO,MAAM,gCAAgC,WAAa,CAAC;AA4B3D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE;IACP,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,MAAM,CAAC;CACzB,GACA,SAAS,MAAM,EAAE,CAenB;AAED,qBAAa,kBAAkB;;gBAKjB,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE;IAKxE,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS;CAsGlD"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { constants as zlibConstants, gunzipSync, gzipSync } from "node:zlib";
|
|
2
|
+
import { encodeFrame, PROTOCOL_VERSION, } from "./schema.js";
|
|
3
|
+
export const SERVER_FRAME_CHUNKS_CAPABILITY = "server-frame-chunks.v1";
|
|
4
|
+
export const DEFAULT_MAX_SERVER_MESSAGE_BYTES = 67_108_864;
|
|
5
|
+
const MAX_SERVER_FRAME_CHUNKS = 65_536;
|
|
6
|
+
export function encodeServerFrame(frame, options) {
|
|
7
|
+
const ordinary = encodeFrame(frame);
|
|
8
|
+
if (Buffer.byteLength(ordinary, "utf8") <= options.maxFrameBytes)
|
|
9
|
+
return [ordinary];
|
|
10
|
+
if (options.maxFrameBytes < 512)
|
|
11
|
+
throw new Error("Protocol frame limit is too small for chunk envelopes");
|
|
12
|
+
const decoded = Buffer.from(JSON.stringify(frame), "utf8");
|
|
13
|
+
const maxMessageBytes = options.maxMessageBytes ?? DEFAULT_MAX_SERVER_MESSAGE_BYTES;
|
|
14
|
+
if (decoded.byteLength > maxMessageBytes) {
|
|
15
|
+
throw new Error(`Server protocol message exceeds ${maxMessageBytes} bytes`);
|
|
16
|
+
}
|
|
17
|
+
const compressed = gzipSync(decoded, { level: zlibConstants.Z_BEST_SPEED });
|
|
18
|
+
const useCompression = compressed.byteLength < decoded.byteLength;
|
|
19
|
+
const payload = useCompression ? compressed : decoded;
|
|
20
|
+
const encoding = useCompression ? "gzip-base64" : "base64";
|
|
21
|
+
return chunkPayload(payload, decoded.byteLength, encoding, options.maxFrameBytes, options.idFactory());
|
|
22
|
+
}
|
|
23
|
+
export class ServerFrameDecoder {
|
|
24
|
+
#maxFrameBytes;
|
|
25
|
+
#maxMessageBytes;
|
|
26
|
+
#assembly;
|
|
27
|
+
constructor(options) {
|
|
28
|
+
this.#maxFrameBytes = options.maxFrameBytes;
|
|
29
|
+
this.#maxMessageBytes = options.maxMessageBytes ?? DEFAULT_MAX_SERVER_MESSAGE_BYTES;
|
|
30
|
+
}
|
|
31
|
+
reset() {
|
|
32
|
+
this.#assembly = undefined;
|
|
33
|
+
}
|
|
34
|
+
decode(line) {
|
|
35
|
+
if (line.byteLength === 0)
|
|
36
|
+
throw new Error("Server sent an empty protocol frame");
|
|
37
|
+
if (line.byteLength > this.#maxFrameBytes)
|
|
38
|
+
throw new Error("Server frame exceeded protocol limit");
|
|
39
|
+
const value = parseJson(line);
|
|
40
|
+
const record = asRecord(value, "server frame");
|
|
41
|
+
if (record["v"] !== PROTOCOL_VERSION)
|
|
42
|
+
throw new Error("Server protocol version is unsupported");
|
|
43
|
+
if (record["kind"] !== "chunk") {
|
|
44
|
+
if (this.#assembly)
|
|
45
|
+
throw new Error("Server interrupted a chunked protocol message");
|
|
46
|
+
return serverFrame(record);
|
|
47
|
+
}
|
|
48
|
+
return this.#decodeChunk(record);
|
|
49
|
+
}
|
|
50
|
+
#decodeChunk(record) {
|
|
51
|
+
exactKeys(record, ["v", "kind", "id", "encoding", "index", "count", "payloadBytes", "decodedBytes", "data"], "server chunk");
|
|
52
|
+
const chunk = {
|
|
53
|
+
v: PROTOCOL_VERSION,
|
|
54
|
+
kind: "chunk",
|
|
55
|
+
id: identifier(record["id"], "server chunk.id"),
|
|
56
|
+
encoding: enumeration(record["encoding"], ["base64", "gzip-base64"], "server chunk.encoding"),
|
|
57
|
+
index: boundedInteger(record["index"], "server chunk.index", 0, this.#maxMessageBytes),
|
|
58
|
+
count: boundedInteger(record["count"], "server chunk.count", 1, MAX_SERVER_FRAME_CHUNKS),
|
|
59
|
+
payloadBytes: boundedInteger(record["payloadBytes"], "server chunk.payloadBytes", 1, this.#maxMessageBytes),
|
|
60
|
+
decodedBytes: boundedInteger(record["decodedBytes"], "server chunk.decodedBytes", 1, this.#maxMessageBytes),
|
|
61
|
+
data: stringValue(record["data"], "server chunk.data"),
|
|
62
|
+
};
|
|
63
|
+
if (chunk.index >= chunk.count)
|
|
64
|
+
throw new Error("Server chunk index is out of range");
|
|
65
|
+
const part = Buffer.from(chunk.data, "base64");
|
|
66
|
+
if (part.byteLength === 0 || part.toString("base64") !== chunk.data) {
|
|
67
|
+
throw new Error("Server chunk data is not canonical base64");
|
|
68
|
+
}
|
|
69
|
+
let assembly = this.#assembly;
|
|
70
|
+
if (!assembly) {
|
|
71
|
+
if (chunk.index !== 0)
|
|
72
|
+
throw new Error("Server chunk sequence did not start at index 0");
|
|
73
|
+
assembly = {
|
|
74
|
+
id: chunk.id,
|
|
75
|
+
encoding: chunk.encoding,
|
|
76
|
+
count: chunk.count,
|
|
77
|
+
payloadBytes: chunk.payloadBytes,
|
|
78
|
+
decodedBytes: chunk.decodedBytes,
|
|
79
|
+
nextIndex: 0,
|
|
80
|
+
receivedBytes: 0,
|
|
81
|
+
parts: [],
|
|
82
|
+
};
|
|
83
|
+
this.#assembly = assembly;
|
|
84
|
+
}
|
|
85
|
+
if (chunk.id !== assembly.id
|
|
86
|
+
|| chunk.encoding !== assembly.encoding
|
|
87
|
+
|| chunk.count !== assembly.count
|
|
88
|
+
|| chunk.payloadBytes !== assembly.payloadBytes
|
|
89
|
+
|| chunk.decodedBytes !== assembly.decodedBytes
|
|
90
|
+
|| chunk.index !== assembly.nextIndex) {
|
|
91
|
+
throw new Error("Server chunk sequence is inconsistent");
|
|
92
|
+
}
|
|
93
|
+
if (assembly.receivedBytes + part.byteLength > assembly.payloadBytes) {
|
|
94
|
+
throw new Error("Server chunk payload exceeds its declared length");
|
|
95
|
+
}
|
|
96
|
+
assembly.parts.push(part);
|
|
97
|
+
assembly.receivedBytes += part.byteLength;
|
|
98
|
+
assembly.nextIndex += 1;
|
|
99
|
+
if (assembly.nextIndex < assembly.count)
|
|
100
|
+
return undefined;
|
|
101
|
+
this.#assembly = undefined;
|
|
102
|
+
if (assembly.receivedBytes !== assembly.payloadBytes) {
|
|
103
|
+
throw new Error("Server chunk payload length does not match its declaration");
|
|
104
|
+
}
|
|
105
|
+
const payload = Buffer.concat(assembly.parts, assembly.payloadBytes);
|
|
106
|
+
let decoded;
|
|
107
|
+
try {
|
|
108
|
+
decoded = assembly.encoding === "gzip-base64"
|
|
109
|
+
? gunzipSync(payload, { maxOutputLength: assembly.decodedBytes })
|
|
110
|
+
: payload;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
throw new Error("Server chunk payload could not be decompressed safely");
|
|
114
|
+
}
|
|
115
|
+
if (decoded.byteLength !== assembly.decodedBytes) {
|
|
116
|
+
throw new Error("Server chunk decoded length does not match its declaration");
|
|
117
|
+
}
|
|
118
|
+
const value = parseJson(decoded);
|
|
119
|
+
const frame = asRecord(value, "chunked server frame");
|
|
120
|
+
if (frame["v"] !== PROTOCOL_VERSION || frame["kind"] === "chunk") {
|
|
121
|
+
throw new Error("Chunked server frame has an unsupported version or kind");
|
|
122
|
+
}
|
|
123
|
+
return serverFrame(frame);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function chunkPayload(payload, decodedBytes, encoding, maxFrameBytes, id) {
|
|
127
|
+
let partBytes = Math.max(1, Math.floor((maxFrameBytes - 384) * 0.75));
|
|
128
|
+
for (let attempt = 0; attempt < 16; attempt += 1) {
|
|
129
|
+
const count = Math.ceil(payload.byteLength / partBytes);
|
|
130
|
+
if (count > MAX_SERVER_FRAME_CHUNKS) {
|
|
131
|
+
throw new Error(`Server protocol message requires more than ${MAX_SERVER_FRAME_CHUNKS} chunks`);
|
|
132
|
+
}
|
|
133
|
+
const frames = [];
|
|
134
|
+
let fits = true;
|
|
135
|
+
for (let index = 0; index < count; index += 1) {
|
|
136
|
+
const data = payload.subarray(index * partBytes, Math.min(payload.byteLength, (index + 1) * partBytes));
|
|
137
|
+
const frame = {
|
|
138
|
+
v: PROTOCOL_VERSION,
|
|
139
|
+
kind: "chunk",
|
|
140
|
+
id,
|
|
141
|
+
encoding,
|
|
142
|
+
index,
|
|
143
|
+
count,
|
|
144
|
+
payloadBytes: payload.byteLength,
|
|
145
|
+
decodedBytes,
|
|
146
|
+
data: data.toString("base64"),
|
|
147
|
+
};
|
|
148
|
+
const encoded = `${JSON.stringify(frame)}\n`;
|
|
149
|
+
if (Buffer.byteLength(encoded, "utf8") > maxFrameBytes) {
|
|
150
|
+
fits = false;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
frames.push(encoded);
|
|
154
|
+
}
|
|
155
|
+
if (fits)
|
|
156
|
+
return frames;
|
|
157
|
+
partBytes = Math.floor(partBytes * 0.8);
|
|
158
|
+
if (partBytes < 1)
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
throw new Error("Protocol frame limit cannot fit a chunk envelope");
|
|
162
|
+
}
|
|
163
|
+
function parseJson(value) {
|
|
164
|
+
try {
|
|
165
|
+
return JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(value));
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
throw new Error("Server sent invalid protocol JSON");
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function serverFrame(record) {
|
|
172
|
+
if (record["kind"] !== "hello_ack" && record["kind"] !== "event" && record["kind"] !== "response") {
|
|
173
|
+
throw new Error("Server sent an unsupported protocol frame kind");
|
|
174
|
+
}
|
|
175
|
+
return record;
|
|
176
|
+
}
|
|
177
|
+
function asRecord(value, path) {
|
|
178
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
179
|
+
throw new Error(`${path} must be an object`);
|
|
180
|
+
return value;
|
|
181
|
+
}
|
|
182
|
+
function exactKeys(record, allowed, path) {
|
|
183
|
+
const accepted = new Set(allowed);
|
|
184
|
+
const unknown = Object.keys(record).filter((key) => !accepted.has(key));
|
|
185
|
+
if (unknown.length > 0)
|
|
186
|
+
throw new Error(`${path} contains unknown fields: ${unknown.join(", ")}`);
|
|
187
|
+
}
|
|
188
|
+
function identifier(value, path) {
|
|
189
|
+
if (typeof value !== "string" || value.length === 0 || value.length > 128 || /[\u0000-\u001f]/.test(value)) {
|
|
190
|
+
throw new Error(`${path} must be a non-empty identifier of at most 128 characters`);
|
|
191
|
+
}
|
|
192
|
+
return value;
|
|
193
|
+
}
|
|
194
|
+
function stringValue(value, path) {
|
|
195
|
+
if (typeof value !== "string")
|
|
196
|
+
throw new Error(`${path} must be a string`);
|
|
197
|
+
return value;
|
|
198
|
+
}
|
|
199
|
+
function boundedInteger(value, path, minimum, maximum) {
|
|
200
|
+
if (!Number.isSafeInteger(value) || Number(value) < minimum || Number(value) > maximum) {
|
|
201
|
+
throw new Error(`${path} must be an integer from ${minimum} to ${maximum}`);
|
|
202
|
+
}
|
|
203
|
+
return Number(value);
|
|
204
|
+
}
|
|
205
|
+
function enumeration(value, choices, path) {
|
|
206
|
+
if (typeof value !== "string" || !choices.includes(value)) {
|
|
207
|
+
throw new Error(`${path} must be one of: ${choices.join(", ")}`);
|
|
208
|
+
}
|
|
209
|
+
return value;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=server-frame-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-frame-codec.js","sourceRoot":"","sources":["../../src/protocol/server-frame-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE7E,OAAO,EACL,WAAW,EACX,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,8BAA8B,GAAG,wBAAwB,CAAC;AACvE,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAU,CAAC;AAC3D,MAAM,uBAAuB,GAAG,MAAM,CAAC;AA2BvC,MAAM,UAAU,iBAAiB,CAC/B,KAAkB,EAClB,OAIC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,aAAa,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAE1G,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,gCAAgC,CAAC;IACpF,IAAI,OAAO,CAAC,UAAU,GAAG,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,eAAe,QAAQ,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAClE,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,MAAM,QAAQ,GAAkB,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1E,OAAO,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AACzG,CAAC;AAED,MAAM,OAAO,kBAAkB;IACpB,cAAc,CAAS;IACvB,gBAAgB,CAAS;IAClC,SAAS,CAA4B;IAErC,YAAY,OAA4D;QACtE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,IAAI,gCAAgC,CAAC;IACtF,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,IAAgB;QACrB,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAChG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACrF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,MAA+B;QAC1C,SAAS,CACP,MAAM,EACN,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,EACzF,cAAc,CACf,CAAC;QACF,MAAM,KAAK,GAAqB;YAC9B,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;YAC/C,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,uBAAuB,CAAC;YAC7F,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;YACtF,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,uBAAuB,CAAC;YACxF,YAAY,EAAE,cAAc,CAC1B,MAAM,CAAC,cAAc,CAAC,EACtB,2BAA2B,EAC3B,CAAC,EACD,IAAI,CAAC,gBAAgB,CACtB;YACD,YAAY,EAAE,cAAc,CAC1B,MAAM,CAAC,cAAc,CAAC,EACtB,2BAA2B,EAC3B,CAAC,EACD,IAAI,CAAC,gBAAgB,CACtB;YACD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;SACvD,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACzF,QAAQ,GAAG;gBACT,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,EAAE;aACV,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC5B,CAAC;QACD,IACE,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE;eACrB,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;eACpC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;eAC9B,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY;eAC5C,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY;eAC5C,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,SAAS,EACrC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC;QAC1C,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;QACxB,IAAI,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,QAAQ,CAAC,QAAQ,KAAK,aAAa;gBAC3C,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;gBACjE,CAAC,CAAC,OAAO,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,SAAS,YAAY,CACnB,OAAe,EACf,YAAoB,EACpB,QAAuB,EACvB,aAAqB,EACrB,EAAU;IAEV,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QACxD,IAAI,KAAK,GAAG,uBAAuB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,8CAA8C,uBAAuB,SAAS,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACxG,MAAM,KAAK,GAAqB;gBAC9B,CAAC,EAAE,gBAAgB;gBACnB,IAAI,EAAE,OAAO;gBACb,EAAE;gBACF,QAAQ;gBACR,KAAK;gBACL,KAAK;gBACL,YAAY,EAAE,OAAO,CAAC,UAAU;gBAChC,YAAY;gBACZ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC9B,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;gBACvD,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC;QACxB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,GAAG,CAAC;YAAE,MAAM;IAC3B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,KAAiB;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B;IAClD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;QAClG,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAY;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IACtH,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,MAA+B,EAAE,OAA0B,EAAE,IAAY;IAC1F,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,IAAY;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,2DAA2D,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAY;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY,EAAE,OAAe,EAAE,OAAe;IACpF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAyB,KAAc,EAAE,OAAqB,EAAE,IAAY;IAC9F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,KAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-time migration helper: an old GUI-owned daemon cannot be adopted by
|
|
3
|
+
* systemd, so ask it to exit cleanly before the new service starts.
|
|
4
|
+
*/
|
|
5
|
+
export declare function stopLegacyDaemon(home: string): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=legacy-daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-daemon.d.ts","sourceRoot":"","sources":["../../src/service/legacy-daemon.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BlE"}
|