@smthrs/control 0.0.0-stage → 1.0.0-rc.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.
- package/CHANGELOG.md +194 -0
- package/LICENSE +21 -0
- package/README.md +168 -2
- package/dist/cjs/ApprovalAuthority.d.ts +73 -0
- package/dist/cjs/ApprovalAuthority.d.ts.map +1 -0
- package/dist/cjs/ApprovalAuthority.js +62 -0
- package/dist/cjs/ApprovalAuthority.js.map +7 -0
- package/dist/cjs/Cancellation.d.ts +107 -0
- package/dist/cjs/Cancellation.d.ts.map +1 -0
- package/dist/cjs/Cancellation.js +72 -0
- package/dist/cjs/Cancellation.js.map +7 -0
- package/dist/cjs/Channels.d.ts +170 -0
- package/dist/cjs/Channels.d.ts.map +1 -0
- package/dist/cjs/Channels.js +278 -0
- package/dist/cjs/Channels.js.map +7 -0
- package/dist/cjs/Control.d.ts +202 -0
- package/dist/cjs/Control.d.ts.map +1 -0
- package/dist/cjs/Control.js +47 -0
- package/dist/cjs/Control.js.map +7 -0
- package/dist/cjs/ControlClient.d.ts +52 -0
- package/dist/cjs/ControlClient.d.ts.map +1 -0
- package/dist/cjs/ControlClient.js +191 -0
- package/dist/cjs/ControlClient.js.map +7 -0
- package/dist/cjs/ControlError.d.ts +318 -0
- package/dist/cjs/ControlError.d.ts.map +1 -0
- package/dist/cjs/ControlError.js +249 -0
- package/dist/cjs/ControlError.js.map +7 -0
- package/dist/cjs/ControlExecutor.d.ts +372 -0
- package/dist/cjs/ControlExecutor.d.ts.map +1 -0
- package/dist/cjs/ControlExecutor.js +123 -0
- package/dist/cjs/ControlExecutor.js.map +7 -0
- package/dist/cjs/ControlFacts.d.ts +454 -0
- package/dist/cjs/ControlFacts.d.ts.map +1 -0
- package/dist/cjs/ControlFacts.js +261 -0
- package/dist/cjs/ControlFacts.js.map +7 -0
- package/dist/cjs/ControlLive.d.ts +23 -0
- package/dist/cjs/ControlLive.d.ts.map +1 -0
- package/dist/cjs/ControlLive.js +1280 -0
- package/dist/cjs/ControlLive.js.map +7 -0
- package/dist/cjs/ControlRpcs.d.ts +1204 -0
- package/dist/cjs/ControlRpcs.d.ts.map +1 -0
- package/dist/cjs/ControlRpcs.js +247 -0
- package/dist/cjs/ControlRpcs.js.map +7 -0
- package/dist/cjs/ControlRuntime.d.ts +635 -0
- package/dist/cjs/ControlRuntime.d.ts.map +1 -0
- package/dist/cjs/ControlRuntime.js +740 -0
- package/dist/cjs/ControlRuntime.js.map +7 -0
- package/dist/cjs/ControlSchema.d.ts +2642 -0
- package/dist/cjs/ControlSchema.d.ts.map +1 -0
- package/dist/cjs/ControlSchema.js +634 -0
- package/dist/cjs/ControlSchema.js.map +7 -0
- package/dist/cjs/ControlServer.d.ts +51 -0
- package/dist/cjs/ControlServer.d.ts.map +1 -0
- package/dist/cjs/ControlServer.js +121 -0
- package/dist/cjs/ControlServer.js.map +7 -0
- package/dist/cjs/Credential.d.ts +136 -0
- package/dist/cjs/Credential.d.ts.map +1 -0
- package/dist/cjs/Credential.js +168 -0
- package/dist/cjs/Credential.js.map +7 -0
- package/dist/cjs/CredentialCipher.d.ts +90 -0
- package/dist/cjs/CredentialCipher.d.ts.map +1 -0
- package/dist/cjs/CredentialCipher.js +45 -0
- package/dist/cjs/CredentialCipher.js.map +7 -0
- package/dist/cjs/CredentialStore.d.ts +97 -0
- package/dist/cjs/CredentialStore.d.ts.map +1 -0
- package/dist/cjs/CredentialStore.js +81 -0
- package/dist/cjs/CredentialStore.js.map +7 -0
- package/dist/cjs/DispatchReader.d.ts +112 -0
- package/dist/cjs/DispatchReader.d.ts.map +1 -0
- package/dist/cjs/DispatchReader.js +45 -0
- package/dist/cjs/DispatchReader.js.map +7 -0
- package/dist/cjs/Health.d.ts +333 -0
- package/dist/cjs/Health.d.ts.map +1 -0
- package/dist/cjs/Health.js +311 -0
- package/dist/cjs/Health.js.map +7 -0
- package/dist/cjs/JevSessionChecker.d.ts +57 -0
- package/dist/cjs/JevSessionChecker.d.ts.map +1 -0
- package/dist/cjs/JevSessionChecker.js +113 -0
- package/dist/cjs/JevSessionChecker.js.map +7 -0
- package/dist/cjs/Lineage.d.ts +131 -0
- package/dist/cjs/Lineage.d.ts.map +1 -0
- package/dist/cjs/Lineage.js +81 -0
- package/dist/cjs/Lineage.js.map +7 -0
- package/dist/cjs/Migrations.d.ts +34 -0
- package/dist/cjs/Migrations.d.ts.map +1 -0
- package/dist/cjs/Migrations.js +60 -0
- package/dist/cjs/Migrations.js.map +7 -0
- package/dist/cjs/Monitor.d.ts +282 -0
- package/dist/cjs/Monitor.d.ts.map +1 -0
- package/dist/cjs/Monitor.js +283 -0
- package/dist/cjs/Monitor.js.map +7 -0
- package/dist/cjs/ScopedToken.d.ts +193 -0
- package/dist/cjs/ScopedToken.d.ts.map +1 -0
- package/dist/cjs/ScopedToken.js +135 -0
- package/dist/cjs/ScopedToken.js.map +7 -0
- package/dist/cjs/SqlControlRuntime.d.ts +161 -0
- package/dist/cjs/SqlControlRuntime.d.ts.map +1 -0
- package/dist/cjs/SqlControlRuntime.js +1521 -0
- package/dist/cjs/SqlControlRuntime.js.map +7 -0
- package/dist/cjs/SqlCredentialStore.d.ts +43 -0
- package/dist/cjs/SqlCredentialStore.d.ts.map +1 -0
- package/dist/cjs/SqlCredentialStore.js +113 -0
- package/dist/cjs/SqlCredentialStore.js.map +7 -0
- package/dist/cjs/Steering.d.ts +69 -0
- package/dist/cjs/Steering.d.ts.map +1 -0
- package/dist/cjs/Steering.js +49 -0
- package/dist/cjs/Steering.js.map +7 -0
- package/dist/cjs/SystemFlows.d.ts +223 -0
- package/dist/cjs/SystemFlows.d.ts.map +1 -0
- package/dist/cjs/SystemFlows.js +195 -0
- package/dist/cjs/SystemFlows.js.map +7 -0
- package/dist/cjs/WebCryptoCipher.d.ts +49 -0
- package/dist/cjs/WebCryptoCipher.d.ts.map +1 -0
- package/dist/cjs/WebCryptoCipher.js +129 -0
- package/dist/cjs/WebCryptoCipher.js.map +7 -0
- package/dist/cjs/WebhookChannel.d.ts +113 -0
- package/dist/cjs/WebhookChannel.d.ts.map +1 -0
- package/dist/cjs/WebhookChannel.js +98 -0
- package/dist/cjs/WebhookChannel.js.map +7 -0
- package/dist/cjs/index.d.ts +160 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +91 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/MutationBoundary.d.ts +27 -0
- package/dist/cjs/internal/MutationBoundary.d.ts.map +1 -0
- package/dist/cjs/internal/MutationBoundary.js +50 -0
- package/dist/cjs/internal/MutationBoundary.js.map +7 -0
- package/dist/cjs/internal/activeFibers.d.ts +12 -0
- package/dist/cjs/internal/activeFibers.d.ts.map +1 -0
- package/dist/cjs/internal/activeFibers.js +30 -0
- package/dist/cjs/internal/activeFibers.js.map +7 -0
- package/dist/cjs/internal/issues.d.ts +28 -0
- package/dist/cjs/internal/issues.d.ts.map +1 -0
- package/dist/cjs/internal/issues.js +34 -0
- package/dist/cjs/internal/issues.js.map +7 -0
- package/dist/cjs/internal/planning.d.ts +347 -0
- package/dist/cjs/internal/planning.d.ts.map +1 -0
- package/dist/cjs/internal/planning.js +137 -0
- package/dist/cjs/internal/planning.js.map +7 -0
- package/dist/cjs/internal/sqlSchemaErrors.d.ts +18 -0
- package/dist/cjs/internal/sqlSchemaErrors.d.ts.map +1 -0
- package/dist/cjs/internal/sqlSchemaErrors.js +40 -0
- package/dist/cjs/internal/sqlSchemaErrors.js.map +7 -0
- package/dist/cjs/migrations/0001_control_tables.d.ts +18 -0
- package/dist/cjs/migrations/0001_control_tables.d.ts.map +1 -0
- package/dist/cjs/migrations/0001_control_tables.js +115 -0
- package/dist/cjs/migrations/0001_control_tables.js.map +7 -0
- package/dist/cjs/migrations/0002_run_keys.d.ts +15 -0
- package/dist/cjs/migrations/0002_run_keys.d.ts.map +1 -0
- package/dist/cjs/migrations/0002_run_keys.js +44 -0
- package/dist/cjs/migrations/0002_run_keys.js.map +7 -0
- package/dist/cjs/migrations/0003_signal_commands.d.ts +13 -0
- package/dist/cjs/migrations/0003_signal_commands.d.ts.map +1 -0
- package/dist/cjs/migrations/0003_signal_commands.js +50 -0
- package/dist/cjs/migrations/0003_signal_commands.js.map +7 -0
- package/dist/cjs/migrations/0004_approval_decisions.d.ts +13 -0
- package/dist/cjs/migrations/0004_approval_decisions.d.ts.map +1 -0
- package/dist/cjs/migrations/0004_approval_decisions.js +45 -0
- package/dist/cjs/migrations/0004_approval_decisions.js.map +7 -0
- package/dist/cjs/migrations/0005_signal_principals.d.ts +18 -0
- package/dist/cjs/migrations/0005_signal_principals.d.ts.map +1 -0
- package/dist/cjs/migrations/0005_signal_principals.js +45 -0
- package/dist/cjs/migrations/0005_signal_principals.js.map +7 -0
- package/dist/cjs/migrations/0006_run_principals.d.ts +18 -0
- package/dist/cjs/migrations/0006_run_principals.d.ts.map +1 -0
- package/dist/cjs/migrations/0006_run_principals.js +49 -0
- package/dist/cjs/migrations/0006_run_principals.js.map +7 -0
- package/dist/cjs/migrations/0007_resume_consent.d.ts +18 -0
- package/dist/cjs/migrations/0007_resume_consent.d.ts.map +1 -0
- package/dist/cjs/migrations/0007_resume_consent.js +46 -0
- package/dist/cjs/migrations/0007_resume_consent.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/test/TestControl.d.ts +19 -0
- package/dist/cjs/test/TestControl.d.ts.map +1 -0
- package/dist/cjs/test/TestControl.js +62 -0
- package/dist/cjs/test/TestControl.js.map +7 -0
- package/dist/esm/ApprovalAuthority.d.ts +73 -0
- package/dist/esm/ApprovalAuthority.d.ts.map +1 -0
- package/dist/esm/ApprovalAuthority.js +72 -0
- package/dist/esm/ApprovalAuthority.js.map +1 -0
- package/dist/esm/Cancellation.d.ts +107 -0
- package/dist/esm/Cancellation.d.ts.map +1 -0
- package/dist/esm/Cancellation.js +116 -0
- package/dist/esm/Cancellation.js.map +1 -0
- package/dist/esm/Channels.d.ts +170 -0
- package/dist/esm/Channels.d.ts.map +1 -0
- package/dist/esm/Channels.js +312 -0
- package/dist/esm/Channels.js.map +1 -0
- package/dist/esm/Control.d.ts +202 -0
- package/dist/esm/Control.d.ts.map +1 -0
- package/dist/esm/Control.js +42 -0
- package/dist/esm/Control.js.map +1 -0
- package/dist/esm/ControlClient.d.ts +52 -0
- package/dist/esm/ControlClient.d.ts.map +1 -0
- package/dist/esm/ControlClient.js +217 -0
- package/dist/esm/ControlClient.js.map +1 -0
- package/dist/esm/ControlError.d.ts +318 -0
- package/dist/esm/ControlError.d.ts.map +1 -0
- package/dist/esm/ControlError.js +359 -0
- package/dist/esm/ControlError.js.map +1 -0
- package/dist/esm/ControlExecutor.d.ts +372 -0
- package/dist/esm/ControlExecutor.d.ts.map +1 -0
- package/dist/esm/ControlExecutor.js +212 -0
- package/dist/esm/ControlExecutor.js.map +1 -0
- package/dist/esm/ControlFacts.d.ts +454 -0
- package/dist/esm/ControlFacts.d.ts.map +1 -0
- package/dist/esm/ControlFacts.js +324 -0
- package/dist/esm/ControlFacts.js.map +1 -0
- package/dist/esm/ControlLive.d.ts +23 -0
- package/dist/esm/ControlLive.d.ts.map +1 -0
- package/dist/esm/ControlLive.js +1585 -0
- package/dist/esm/ControlLive.js.map +1 -0
- package/dist/esm/ControlRpcs.d.ts +1204 -0
- package/dist/esm/ControlRpcs.d.ts.map +1 -0
- package/dist/esm/ControlRpcs.js +299 -0
- package/dist/esm/ControlRpcs.js.map +1 -0
- package/dist/esm/ControlRuntime.d.ts +635 -0
- package/dist/esm/ControlRuntime.d.ts.map +1 -0
- package/dist/esm/ControlRuntime.js +807 -0
- package/dist/esm/ControlRuntime.js.map +1 -0
- package/dist/esm/ControlSchema.d.ts +2642 -0
- package/dist/esm/ControlSchema.d.ts.map +1 -0
- package/dist/esm/ControlSchema.js +1030 -0
- package/dist/esm/ControlSchema.js.map +1 -0
- package/dist/esm/ControlServer.d.ts +51 -0
- package/dist/esm/ControlServer.d.ts.map +1 -0
- package/dist/esm/ControlServer.js +145 -0
- package/dist/esm/ControlServer.js.map +1 -0
- package/dist/esm/Credential.d.ts +136 -0
- package/dist/esm/Credential.d.ts.map +1 -0
- package/dist/esm/Credential.js +190 -0
- package/dist/esm/Credential.js.map +1 -0
- package/dist/esm/CredentialCipher.d.ts +90 -0
- package/dist/esm/CredentialCipher.d.ts.map +1 -0
- package/dist/esm/CredentialCipher.js +56 -0
- package/dist/esm/CredentialCipher.js.map +1 -0
- package/dist/esm/CredentialStore.d.ts +97 -0
- package/dist/esm/CredentialStore.d.ts.map +1 -0
- package/dist/esm/CredentialStore.js +101 -0
- package/dist/esm/CredentialStore.js.map +1 -0
- package/dist/esm/DispatchReader.d.ts +112 -0
- package/dist/esm/DispatchReader.d.ts.map +1 -0
- package/dist/esm/DispatchReader.js +76 -0
- package/dist/esm/DispatchReader.js.map +1 -0
- package/dist/esm/Health.d.ts +333 -0
- package/dist/esm/Health.d.ts.map +1 -0
- package/dist/esm/Health.js +400 -0
- package/dist/esm/Health.js.map +1 -0
- package/dist/esm/JevSessionChecker.d.ts +57 -0
- package/dist/esm/JevSessionChecker.d.ts.map +1 -0
- package/dist/esm/JevSessionChecker.js +108 -0
- package/dist/esm/JevSessionChecker.js.map +1 -0
- package/dist/esm/Lineage.d.ts +131 -0
- package/dist/esm/Lineage.d.ts.map +1 -0
- package/dist/esm/Lineage.js +174 -0
- package/dist/esm/Lineage.js.map +1 -0
- package/dist/esm/Migrations.d.ts +34 -0
- package/dist/esm/Migrations.d.ts.map +1 -0
- package/dist/esm/Migrations.js +53 -0
- package/dist/esm/Migrations.js.map +1 -0
- package/dist/esm/Monitor.d.ts +282 -0
- package/dist/esm/Monitor.d.ts.map +1 -0
- package/dist/esm/Monitor.js +415 -0
- package/dist/esm/Monitor.js.map +1 -0
- package/dist/esm/ScopedToken.d.ts +193 -0
- package/dist/esm/ScopedToken.d.ts.map +1 -0
- package/dist/esm/ScopedToken.js +224 -0
- package/dist/esm/ScopedToken.js.map +1 -0
- package/dist/esm/SqlControlRuntime.d.ts +161 -0
- package/dist/esm/SqlControlRuntime.d.ts.map +1 -0
- package/dist/esm/SqlControlRuntime.js +1756 -0
- package/dist/esm/SqlControlRuntime.js.map +1 -0
- package/dist/esm/SqlCredentialStore.d.ts +43 -0
- package/dist/esm/SqlCredentialStore.d.ts.map +1 -0
- package/dist/esm/SqlCredentialStore.js +97 -0
- package/dist/esm/SqlCredentialStore.js.map +1 -0
- package/dist/esm/Steering.d.ts +69 -0
- package/dist/esm/Steering.d.ts.map +1 -0
- package/dist/esm/Steering.js +89 -0
- package/dist/esm/Steering.js.map +1 -0
- package/dist/esm/SystemFlows.d.ts +223 -0
- package/dist/esm/SystemFlows.d.ts.map +1 -0
- package/dist/esm/SystemFlows.js +198 -0
- package/dist/esm/SystemFlows.js.map +1 -0
- package/dist/esm/WebCryptoCipher.d.ts +49 -0
- package/dist/esm/WebCryptoCipher.d.ts.map +1 -0
- package/dist/esm/WebCryptoCipher.js +123 -0
- package/dist/esm/WebCryptoCipher.js.map +1 -0
- package/dist/esm/WebhookChannel.d.ts +113 -0
- package/dist/esm/WebhookChannel.d.ts.map +1 -0
- package/dist/esm/WebhookChannel.js +109 -0
- package/dist/esm/WebhookChannel.js.map +1 -0
- package/dist/esm/index.d.ts +160 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +160 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/MutationBoundary.d.ts +27 -0
- package/dist/esm/internal/MutationBoundary.d.ts.map +1 -0
- package/dist/esm/internal/MutationBoundary.js +40 -0
- package/dist/esm/internal/MutationBoundary.js.map +1 -0
- package/dist/esm/internal/activeFibers.d.ts +12 -0
- package/dist/esm/internal/activeFibers.d.ts.map +1 -0
- package/dist/esm/internal/activeFibers.js +17 -0
- package/dist/esm/internal/activeFibers.js.map +1 -0
- package/dist/esm/internal/issues.d.ts +28 -0
- package/dist/esm/internal/issues.d.ts.map +1 -0
- package/dist/esm/internal/issues.js +35 -0
- package/dist/esm/internal/issues.js.map +1 -0
- package/dist/esm/internal/planning.d.ts +347 -0
- package/dist/esm/internal/planning.d.ts.map +1 -0
- package/dist/esm/internal/planning.js +199 -0
- package/dist/esm/internal/planning.js.map +1 -0
- package/dist/esm/internal/sqlSchemaErrors.d.ts +18 -0
- package/dist/esm/internal/sqlSchemaErrors.d.ts.map +1 -0
- package/dist/esm/internal/sqlSchemaErrors.js +38 -0
- package/dist/esm/internal/sqlSchemaErrors.js.map +1 -0
- package/dist/esm/migrations/0001_control_tables.d.ts +18 -0
- package/dist/esm/migrations/0001_control_tables.d.ts.map +1 -0
- package/dist/esm/migrations/0001_control_tables.js +96 -0
- package/dist/esm/migrations/0001_control_tables.js.map +1 -0
- package/dist/esm/migrations/0002_run_keys.d.ts +15 -0
- package/dist/esm/migrations/0002_run_keys.d.ts.map +1 -0
- package/dist/esm/migrations/0002_run_keys.js +22 -0
- package/dist/esm/migrations/0002_run_keys.js.map +1 -0
- package/dist/esm/migrations/0003_signal_commands.d.ts +13 -0
- package/dist/esm/migrations/0003_signal_commands.d.ts.map +1 -0
- package/dist/esm/migrations/0003_signal_commands.js +26 -0
- package/dist/esm/migrations/0003_signal_commands.js.map +1 -0
- package/dist/esm/migrations/0004_approval_decisions.d.ts +13 -0
- package/dist/esm/migrations/0004_approval_decisions.d.ts.map +1 -0
- package/dist/esm/migrations/0004_approval_decisions.js +25 -0
- package/dist/esm/migrations/0004_approval_decisions.js.map +1 -0
- package/dist/esm/migrations/0005_signal_principals.d.ts +18 -0
- package/dist/esm/migrations/0005_signal_principals.d.ts.map +1 -0
- package/dist/esm/migrations/0005_signal_principals.js +27 -0
- package/dist/esm/migrations/0005_signal_principals.js.map +1 -0
- package/dist/esm/migrations/0006_run_principals.d.ts +18 -0
- package/dist/esm/migrations/0006_run_principals.d.ts.map +1 -0
- package/dist/esm/migrations/0006_run_principals.js +30 -0
- package/dist/esm/migrations/0006_run_principals.js.map +1 -0
- package/dist/esm/migrations/0007_resume_consent.d.ts +18 -0
- package/dist/esm/migrations/0007_resume_consent.d.ts.map +1 -0
- package/dist/esm/migrations/0007_resume_consent.js +27 -0
- package/dist/esm/migrations/0007_resume_consent.js.map +1 -0
- package/dist/esm/test/TestControl.d.ts +19 -0
- package/dist/esm/test/TestControl.d.ts.map +1 -0
- package/dist/esm/test/TestControl.js +30 -0
- package/dist/esm/test/TestControl.js.map +1 -0
- package/docs/README.md +189 -0
- package/docs/api.md +982 -0
- package/docs/concepts/authority.md +109 -0
- package/docs/concepts/cancellation.md +129 -0
- package/docs/concepts/lineage.md +132 -0
- package/docs/concepts/ownership.md +139 -0
- package/docs/concepts/projections.md +203 -0
- package/docs/concepts/receipts.md +128 -0
- package/docs/guides/approvals.md +284 -0
- package/docs/guides/cancel-and-resume.md +162 -0
- package/docs/guides/durable-storage.md +147 -0
- package/docs/guides/implement-an-executor.md +173 -0
- package/docs/guides/ingest-a-webhook.md +177 -0
- package/docs/guides/list-runs.md +160 -0
- package/docs/guides/monitor-runs.md +176 -0
- package/docs/guides/observe-health.md +147 -0
- package/docs/guides/postgres-tests.md +5 -0
- package/docs/guides/serve-over-rpc.md +220 -0
- package/docs/guides/signal-a-run.md +53 -0
- package/docs/guides/steer-a-run.md +138 -0
- package/docs/guides/store-credentials.md +164 -0
- package/docs/guides/testing.md +139 -0
- package/docs/guides/watch-a-run.md +154 -0
- package/docs/installation.md +106 -0
- package/docs/quickstart.md +163 -0
- package/docs/troubleshooting.md +208 -0
- package/package.json +405 -3
- package/src/ApprovalAuthority.ts +114 -0
- package/src/Cancellation.ts +172 -0
- package/src/Channels.ts +493 -0
- package/src/Control.ts +337 -0
- package/src/ControlClient.ts +319 -0
- package/src/ControlError.ts +378 -0
- package/src/ControlExecutor.ts +490 -0
- package/src/ControlFacts.ts +383 -0
- package/src/ControlLive.ts +2113 -0
- package/src/ControlRpcs.ts +443 -0
- package/src/ControlRuntime.ts +1597 -0
- package/src/ControlSchema.ts +1380 -0
- package/src/ControlServer.ts +182 -0
- package/src/Credential.ts +310 -0
- package/src/CredentialCipher.ts +110 -0
- package/src/CredentialStore.ts +152 -0
- package/src/DispatchReader.ts +122 -0
- package/src/Health.ts +591 -0
- package/src/JevSessionChecker.ts +127 -0
- package/src/Lineage.ts +203 -0
- package/src/Migrations.ts +56 -0
- package/src/Monitor.ts +600 -0
- package/src/ScopedToken.ts +306 -0
- package/src/SqlControlRuntime.ts +2476 -0
- package/src/SqlCredentialStore.ts +148 -0
- package/src/Steering.ts +96 -0
- package/src/SystemFlows.ts +225 -0
- package/src/WebCryptoCipher.ts +169 -0
- package/src/WebhookChannel.ts +166 -0
- package/src/index.ts +188 -0
- package/src/internal/MutationBoundary.ts +46 -0
- package/src/internal/activeFibers.ts +22 -0
- package/src/internal/issues.ts +40 -0
- package/src/internal/planning.ts +262 -0
- package/src/internal/sqlSchemaErrors.ts +37 -0
- package/src/migrations/0001_control_tables.ts +99 -0
- package/src/migrations/0002_run_keys.ts +23 -0
- package/src/migrations/0003_signal_commands.ts +27 -0
- package/src/migrations/0004_approval_decisions.ts +25 -0
- package/src/migrations/0005_signal_principals.ts +27 -0
- package/src/migrations/0006_run_principals.ts +31 -0
- package/src/migrations/0007_resume_consent.ts +28 -0
- package/src/test/TestControl.ts +47 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Control-plane contracts and projections for the Smithers harness.
|
|
3
|
+
*
|
|
4
|
+
* This is the public surface of the control plane: the transport-independent
|
|
5
|
+
* `Control` service, the `ControlRuntime` port it writes through, the
|
|
6
|
+
* projections it reads back, and the durable adapter that binds both to a real
|
|
7
|
+
* database.
|
|
8
|
+
*
|
|
9
|
+
* `Control` is authority, not execution. Every mutation it accepts is
|
|
10
|
+
* idempotent, principal-stamped, and recorded in the journal beside the state
|
|
11
|
+
* change it caused, so "who asked for this, and when did it take effect?" is
|
|
12
|
+
* answered from persisted evidence rather than from a log line.
|
|
13
|
+
*
|
|
14
|
+
* @since 0.1.0
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @category services
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
export * as Control from "./Control.js";
|
|
21
|
+
/**
|
|
22
|
+
* @category services
|
|
23
|
+
* @since 1.0.0
|
|
24
|
+
*/
|
|
25
|
+
export * as ApprovalAuthority from "./ApprovalAuthority.js";
|
|
26
|
+
/**
|
|
27
|
+
* @category errors
|
|
28
|
+
* @since 0.1.0
|
|
29
|
+
*/
|
|
30
|
+
export * as ControlError from "./ControlError.js";
|
|
31
|
+
/**
|
|
32
|
+
* @category models
|
|
33
|
+
* @since 0.1.0
|
|
34
|
+
*/
|
|
35
|
+
export * as ControlSchema from "./ControlSchema.js";
|
|
36
|
+
/**
|
|
37
|
+
* @category projections
|
|
38
|
+
* @since 0.1.0
|
|
39
|
+
*/
|
|
40
|
+
export * as Cancellation from "./Cancellation.js";
|
|
41
|
+
/**
|
|
42
|
+
* @category projections
|
|
43
|
+
* @since 0.1.0
|
|
44
|
+
*/
|
|
45
|
+
export * as Lineage from "./Lineage.js";
|
|
46
|
+
/**
|
|
47
|
+
* @category projections
|
|
48
|
+
* @since 0.1.0
|
|
49
|
+
*/
|
|
50
|
+
export * as Monitor from "./Monitor.js";
|
|
51
|
+
/**
|
|
52
|
+
* @category projections
|
|
53
|
+
* @since 0.1.0
|
|
54
|
+
*/
|
|
55
|
+
export * as Steering from "./Steering.js";
|
|
56
|
+
/**
|
|
57
|
+
* @category services
|
|
58
|
+
* @since 0.1.0
|
|
59
|
+
*/
|
|
60
|
+
export * as ControlRuntime from "./ControlRuntime.js";
|
|
61
|
+
/**
|
|
62
|
+
* @category services
|
|
63
|
+
* @since 0.1.0
|
|
64
|
+
*/
|
|
65
|
+
export * as ControlExecutor from "./ControlExecutor.js";
|
|
66
|
+
/**
|
|
67
|
+
* @category services
|
|
68
|
+
* @since 1.0.0
|
|
69
|
+
*/
|
|
70
|
+
export * as DispatchReader from "./DispatchReader.js";
|
|
71
|
+
/**
|
|
72
|
+
* @category layers
|
|
73
|
+
* @since 0.1.0
|
|
74
|
+
*/
|
|
75
|
+
export * as ControlLive from "./ControlLive.js";
|
|
76
|
+
/**
|
|
77
|
+
* @category models
|
|
78
|
+
* @since 0.1.0
|
|
79
|
+
*/
|
|
80
|
+
export * as SystemFlows from "./SystemFlows.js";
|
|
81
|
+
/**
|
|
82
|
+
* @category rpc
|
|
83
|
+
* @since 0.1.0
|
|
84
|
+
*/
|
|
85
|
+
export * as ControlRpcs from "./ControlRpcs.js";
|
|
86
|
+
/**
|
|
87
|
+
* @category layers
|
|
88
|
+
* @since 0.1.0
|
|
89
|
+
*/
|
|
90
|
+
export * as ControlServer from "./ControlServer.js";
|
|
91
|
+
/**
|
|
92
|
+
* @category layers
|
|
93
|
+
* @since 0.1.0
|
|
94
|
+
*/
|
|
95
|
+
export * as ControlClient from "./ControlClient.js";
|
|
96
|
+
/**
|
|
97
|
+
* @category services
|
|
98
|
+
* @since 0.1.0
|
|
99
|
+
*/
|
|
100
|
+
export * as Channels from "./Channels.js";
|
|
101
|
+
/**
|
|
102
|
+
* @category channels
|
|
103
|
+
* @since 0.1.0
|
|
104
|
+
*/
|
|
105
|
+
export * as WebhookChannel from "./WebhookChannel.js";
|
|
106
|
+
/**
|
|
107
|
+
* @category services
|
|
108
|
+
* @since 0.1.0
|
|
109
|
+
*/
|
|
110
|
+
export * as Credential from "./Credential.js";
|
|
111
|
+
/**
|
|
112
|
+
* @category services
|
|
113
|
+
* @since 0.1.0
|
|
114
|
+
*/
|
|
115
|
+
export * as CredentialCipher from "./CredentialCipher.js";
|
|
116
|
+
/**
|
|
117
|
+
* @category services
|
|
118
|
+
* @since 0.1.0
|
|
119
|
+
*/
|
|
120
|
+
export * as CredentialStore from "./CredentialStore.js";
|
|
121
|
+
/**
|
|
122
|
+
* @category layers
|
|
123
|
+
* @since 0.1.0
|
|
124
|
+
*/
|
|
125
|
+
export * as SqlCredentialStore from "./SqlCredentialStore.js";
|
|
126
|
+
/**
|
|
127
|
+
* @category layers
|
|
128
|
+
* @since 0.1.0
|
|
129
|
+
*/
|
|
130
|
+
export * as WebCryptoCipher from "./WebCryptoCipher.js";
|
|
131
|
+
/**
|
|
132
|
+
* @category layers
|
|
133
|
+
* @since 0.1.0
|
|
134
|
+
*/
|
|
135
|
+
export * as SqlControlRuntime from "./SqlControlRuntime.js";
|
|
136
|
+
/**
|
|
137
|
+
* @category authentication
|
|
138
|
+
* @since 1.0.0
|
|
139
|
+
*/
|
|
140
|
+
export * as ScopedToken from "./ScopedToken.js";
|
|
141
|
+
/**
|
|
142
|
+
* @category migrations
|
|
143
|
+
* @since 0.1.0
|
|
144
|
+
*/
|
|
145
|
+
export * as Migrations from "./Migrations.js";
|
|
146
|
+
/**
|
|
147
|
+
* Observational health contracts.
|
|
148
|
+
* @category health
|
|
149
|
+
* @since 1.0.0
|
|
150
|
+
*/
|
|
151
|
+
export * as Health from "./Health.js";
|
|
152
|
+
/**
|
|
153
|
+
* The Jev-decided session checker a host binds as `jev.session`.
|
|
154
|
+
* @category health
|
|
155
|
+
* @since 1.0.0
|
|
156
|
+
*/
|
|
157
|
+
export * as JevSessionChecker from "./JevSessionChecker.js";
|
|
158
|
+
/** Versioned control lifecycle producer and projection contract. */
|
|
159
|
+
export * as ControlFacts from "./ControlFacts.js";
|
|
160
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;GAGG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;;GAGG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;GAGG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;;GAGG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;GAGG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;GAGG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;;GAGG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;GAGG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;;GAGG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;GAGG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;GAGG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;;GAGG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;;GAGG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;;GAGG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;;GAGG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;;GAGG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;;GAGG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;GAIG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D,oEAAoE;AACpE,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA","sourcesContent":["/**\n * Control-plane contracts and projections for the Smithers harness.\n *\n * This is the public surface of the control plane: the transport-independent\n * `Control` service, the `ControlRuntime` port it writes through, the\n * projections it reads back, and the durable adapter that binds both to a real\n * database.\n *\n * `Control` is authority, not execution. Every mutation it accepts is\n * idempotent, principal-stamped, and recorded in the journal beside the state\n * change it caused, so \"who asked for this, and when did it take effect?\" is\n * answered from persisted evidence rather than from a log line.\n *\n * @since 0.1.0\n */\n\n/**\n * @category services\n * @since 0.1.0\n */\nexport * as Control from \"./Control.ts\"\n\n/**\n * @category services\n * @since 1.0.0\n */\nexport * as ApprovalAuthority from \"./ApprovalAuthority.ts\"\n\n/**\n * @category errors\n * @since 0.1.0\n */\nexport * as ControlError from \"./ControlError.ts\"\n\n/**\n * @category models\n * @since 0.1.0\n */\nexport * as ControlSchema from \"./ControlSchema.ts\"\n\n/**\n * @category projections\n * @since 0.1.0\n */\nexport * as Cancellation from \"./Cancellation.ts\"\n\n/**\n * @category projections\n * @since 0.1.0\n */\nexport * as Lineage from \"./Lineage.ts\"\n\n/**\n * @category projections\n * @since 0.1.0\n */\nexport * as Monitor from \"./Monitor.ts\"\n\n/**\n * @category projections\n * @since 0.1.0\n */\nexport * as Steering from \"./Steering.ts\"\n\n/**\n * @category services\n * @since 0.1.0\n */\nexport * as ControlRuntime from \"./ControlRuntime.ts\"\n\n/**\n * @category services\n * @since 0.1.0\n */\nexport * as ControlExecutor from \"./ControlExecutor.ts\"\n\n/**\n * @category services\n * @since 1.0.0\n */\nexport * as DispatchReader from \"./DispatchReader.ts\"\n\n/**\n * @category layers\n * @since 0.1.0\n */\nexport * as ControlLive from \"./ControlLive.ts\"\n\n/**\n * @category models\n * @since 0.1.0\n */\nexport * as SystemFlows from \"./SystemFlows.ts\"\n\n/**\n * @category rpc\n * @since 0.1.0\n */\nexport * as ControlRpcs from \"./ControlRpcs.ts\"\n\n/**\n * @category layers\n * @since 0.1.0\n */\nexport * as ControlServer from \"./ControlServer.ts\"\n\n/**\n * @category layers\n * @since 0.1.0\n */\nexport * as ControlClient from \"./ControlClient.ts\"\n\n/**\n * @category services\n * @since 0.1.0\n */\nexport * as Channels from \"./Channels.ts\"\n\n/**\n * @category channels\n * @since 0.1.0\n */\nexport * as WebhookChannel from \"./WebhookChannel.ts\"\n\n/**\n * @category services\n * @since 0.1.0\n */\nexport * as Credential from \"./Credential.ts\"\n\n/**\n * @category services\n * @since 0.1.0\n */\nexport * as CredentialCipher from \"./CredentialCipher.ts\"\n\n/**\n * @category services\n * @since 0.1.0\n */\nexport * as CredentialStore from \"./CredentialStore.ts\"\n\n/**\n * @category layers\n * @since 0.1.0\n */\nexport * as SqlCredentialStore from \"./SqlCredentialStore.ts\"\n\n/**\n * @category layers\n * @since 0.1.0\n */\nexport * as WebCryptoCipher from \"./WebCryptoCipher.ts\"\n\n/**\n * @category layers\n * @since 0.1.0\n */\nexport * as SqlControlRuntime from \"./SqlControlRuntime.ts\"\n\n/**\n * @category authentication\n * @since 1.0.0\n */\nexport * as ScopedToken from \"./ScopedToken.ts\"\n\n/**\n * @category migrations\n * @since 0.1.0\n */\nexport * as Migrations from \"./Migrations.ts\"\n\n/**\n * Observational health contracts.\n * @category health\n * @since 1.0.0\n */\nexport * as Health from \"./Health.ts\"\n\n/**\n * The Jev-decided session checker a host binds as `jev.session`.\n * @category health\n * @since 1.0.0\n */\nexport * as JevSessionChecker from \"./JevSessionChecker.ts\"\n\n/** Versioned control lifecycle producer and projection contract. */\nexport * as ControlFacts from \"./ControlFacts.ts\"\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded inert JSON admission for control mutations.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0-rc.0
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
import * as BoundedJson from "@smthrs/canonical/BoundedJson";
|
|
8
|
+
/** Result of admitting an unknown mutation value. */
|
|
9
|
+
type Result = {
|
|
10
|
+
readonly ok: true;
|
|
11
|
+
readonly value: BoundedJson.Json;
|
|
12
|
+
} | {
|
|
13
|
+
readonly ok: false;
|
|
14
|
+
readonly complaint: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Copies one mutation without invoking getters or `toJSON`.
|
|
18
|
+
*
|
|
19
|
+
* `bounds` defaults to the control mutation limits. Tests pass smaller ones to
|
|
20
|
+
* reach a byte-exact boundary without building multi-megabyte values.
|
|
21
|
+
*
|
|
22
|
+
* @since 1.0.0-rc.0
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
export declare const admit: (input: unknown, bounds?: BoundedJson.Limits) => Result;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=MutationBoundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MutationBoundary.d.ts","sourceRoot":"","sources":["../../../src/internal/MutationBoundary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAa5D,qDAAqD;AACrD,KAAK,MAAM,GACP;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,OAAO,EAAE,SAAQ,WAAW,CAAC,MAAe,KAAG,MAW3E,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded inert JSON admission for control mutations.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0-rc.0
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
import * as BoundedJson from "@smthrs/canonical/BoundedJson";
|
|
8
|
+
/** Limits and diagnostic precedence of the control mutation boundary. */
|
|
9
|
+
const limits = {
|
|
10
|
+
maxBytes: 4 * 1024 * 1024,
|
|
11
|
+
maxStringBytes: 4 * 1024 * 1024,
|
|
12
|
+
maxKeyBytes: 4 * 1024 * 1024,
|
|
13
|
+
maxDepth: 128,
|
|
14
|
+
maxNodes: 100_000,
|
|
15
|
+
maxMembers: 100_000,
|
|
16
|
+
maxTotalMembers: 100_000
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Copies one mutation without invoking getters or `toJSON`.
|
|
20
|
+
*
|
|
21
|
+
* `bounds` defaults to the control mutation limits. Tests pass smaller ones to
|
|
22
|
+
* reach a byte-exact boundary without building multi-megabyte values.
|
|
23
|
+
*
|
|
24
|
+
* @since 1.0.0-rc.0
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
export const admit = (input, bounds = limits) => {
|
|
28
|
+
const result = BoundedJson.admit(input, bounds, { preflightObjects: false });
|
|
29
|
+
if (result.ok)
|
|
30
|
+
return { ok: true, value: result.value };
|
|
31
|
+
const complaint = result.code === "members"
|
|
32
|
+
? `contains more than ${bounds.maxTotalMembers} JSON members`
|
|
33
|
+
: result.code === "string"
|
|
34
|
+
? "contains oversized or ill-formed text"
|
|
35
|
+
: result.code === "key"
|
|
36
|
+
? "contains an oversized or ill-formed object key"
|
|
37
|
+
: result.complaint;
|
|
38
|
+
return { ok: false, complaint };
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=MutationBoundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MutationBoundary.js","sourceRoot":"","sources":["../../../src/internal/MutationBoundary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAE5D,yEAAyE;AACzE,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IACzB,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC/B,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC5B,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,OAAO;IACnB,eAAe,EAAE,OAAO;CACI,CAAA;AAO9B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,SAA6B,MAAM,EAAU,EAAE;IACnF,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5E,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS;QACzC,CAAC,CAAC,sBAAsB,MAAM,CAAC,eAAe,eAAe;QAC7D,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC1B,CAAC,CAAC,uCAAuC;YACzC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK;gBACvB,CAAC,CAAC,gDAAgD;gBAClD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAA;IACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AACjC,CAAC,CAAA","sourcesContent":["/**\n * Bounded inert JSON admission for control mutations.\n *\n * @since 1.0.0-rc.0\n * @private\n */\n\nimport * as BoundedJson from \"@smthrs/canonical/BoundedJson\"\n\n/** Limits and diagnostic precedence of the control mutation boundary. */\nconst limits = {\n maxBytes: 4 * 1024 * 1024,\n maxStringBytes: 4 * 1024 * 1024,\n maxKeyBytes: 4 * 1024 * 1024,\n maxDepth: 128,\n maxNodes: 100_000,\n maxMembers: 100_000,\n maxTotalMembers: 100_000\n} satisfies BoundedJson.Limits\n\n/** Result of admitting an unknown mutation value. */\ntype Result =\n | { readonly ok: true; readonly value: BoundedJson.Json }\n | { readonly ok: false; readonly complaint: string }\n\n/**\n * Copies one mutation without invoking getters or `toJSON`.\n *\n * `bounds` defaults to the control mutation limits. Tests pass smaller ones to\n * reach a byte-exact boundary without building multi-megabyte values.\n *\n * @since 1.0.0-rc.0\n * @private\n */\nexport const admit = (input: unknown, bounds: BoundedJson.Limits = limits): Result => {\n const result = BoundedJson.admit(input, bounds, { preflightObjects: false })\n if (result.ok) return { ok: true, value: result.value }\n const complaint = result.code === \"members\"\n ? `contains more than ${bounds.maxTotalMembers} JSON members`\n : result.code === \"string\"\n ? \"contains oversized or ill-formed text\"\n : result.code === \"key\"\n ? \"contains an oversized or ill-formed object key\"\n : result.complaint\n return { ok: false, complaint }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Completion-aware, replacement-safe ownership of live fibers.
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import type * as Fiber from "effect/Fiber";
|
|
6
|
+
/**
|
|
7
|
+
* A completed predecessor must never unregister its replacement.
|
|
8
|
+
* @category registration
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
export declare const register: <K>(fibers: Map<K, Fiber.Fiber<unknown, unknown>>, key: K, fiber: Fiber.Fiber<unknown, unknown>) => void;
|
|
12
|
+
//# sourceMappingURL=activeFibers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeFibers.d.ts","sourceRoot":"","sources":["../../../src/internal/activeFibers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EACxB,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAC7C,KAAK,CAAC,EACN,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KACnC,IAKF,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Completion-aware, replacement-safe ownership of live fibers.
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* A completed predecessor must never unregister its replacement.
|
|
7
|
+
* @category registration
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
export const register = (fibers, key, fiber) => {
|
|
11
|
+
fibers.set(key, fiber);
|
|
12
|
+
fiber.addObserver(() => {
|
|
13
|
+
if (fibers.get(key) === fiber)
|
|
14
|
+
fibers.delete(key);
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=activeFibers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeFibers.js","sourceRoot":"","sources":["../../../src/internal/activeFibers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAA6C,EAC7C,GAAM,EACN,KAAoC,EAC9B,EAAE;IACR,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACtB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["/**\n * Completion-aware, replacement-safe ownership of live fibers.\n * @since 1.0.0\n */\n\nimport type * as Fiber from \"effect/Fiber\"\n\n/**\n * A completed predecessor must never unregister its replacement.\n * @category registration\n * @since 1.0.0\n */\nexport const register = <K>(\n fibers: Map<K, Fiber.Fiber<unknown, unknown>>,\n key: K,\n fiber: Fiber.Fiber<unknown, unknown>\n): void => {\n fibers.set(key, fiber)\n fiber.addObserver(() => {\n if (fibers.get(key) === fiber) fibers.delete(key)\n })\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded diagnostics for failures that cross the control wire boundary.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Joins a stable location and reason without allowing an RPC error to grow
|
|
8
|
+
* without bound.
|
|
9
|
+
*
|
|
10
|
+
* @private
|
|
11
|
+
* @since 0.1.0
|
|
12
|
+
*/
|
|
13
|
+
export declare const cappedIssue: (path: string, reason: string) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Renders canonical's stable located failure without copying its rejected
|
|
16
|
+
* value or a nested cause message into an RPC error.
|
|
17
|
+
*
|
|
18
|
+
* @private
|
|
19
|
+
* @since 0.1.0
|
|
20
|
+
*/
|
|
21
|
+
export declare const canonicalIssue: (cause: unknown) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Finds the first rejected field without rendering its value.
|
|
24
|
+
* @private
|
|
25
|
+
* @since 0.1.0
|
|
26
|
+
*/
|
|
27
|
+
export { firstPath as schemaIssuePath } from "@smthrs/canonical/IssuePath";
|
|
28
|
+
//# sourceMappingURL=issues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../../src/internal/issues.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAG1D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,MAGC,CAAA;AAEjD;;;;GAIG;AACH,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded diagnostics for failures that cross the control wire boundary.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import { CanonicalError } from "@smthrs/canonical";
|
|
7
|
+
const maximumIssueLength = 512;
|
|
8
|
+
/**
|
|
9
|
+
* Joins a stable location and reason without allowing an RPC error to grow
|
|
10
|
+
* without bound.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @since 0.1.0
|
|
14
|
+
*/
|
|
15
|
+
export const cappedIssue = (path, reason) => {
|
|
16
|
+
const issue = `${path}: ${reason}`;
|
|
17
|
+
return issue.length <= maximumIssueLength ? issue : `${issue.slice(0, maximumIssueLength - 3)}...`;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Renders canonical's stable located failure without copying its rejected
|
|
21
|
+
* value or a nested cause message into an RPC error.
|
|
22
|
+
*
|
|
23
|
+
* @private
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
export const canonicalIssue = (cause) => cause instanceof CanonicalError
|
|
27
|
+
? cappedIssue(cause.path, cause.code)
|
|
28
|
+
: cappedIssue("$", "canonicalization failed");
|
|
29
|
+
/**
|
|
30
|
+
* Finds the first rejected field without rendering its value.
|
|
31
|
+
* @private
|
|
32
|
+
* @since 0.1.0
|
|
33
|
+
*/
|
|
34
|
+
export { firstPath as schemaIssuePath } from "@smthrs/canonical/IssuePath";
|
|
35
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../../src/internal/issues.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,MAAc,EAAU,EAAE;IAClE,MAAM,KAAK,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAAA;IAClC,OAAO,KAAK,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAA;AACpG,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAU,EAAE,CACvD,KAAK,YAAY,cAAc;IAC7B,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IACrC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAA;AAEjD;;;;GAIG;AACH,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAA","sourcesContent":["/**\n * Bounded diagnostics for failures that cross the control wire boundary.\n *\n * @since 0.1.0\n */\n\nimport { CanonicalError } from \"@smthrs/canonical\"\n\nconst maximumIssueLength = 512\n\n/**\n * Joins a stable location and reason without allowing an RPC error to grow\n * without bound.\n *\n * @private\n * @since 0.1.0\n */\nexport const cappedIssue = (path: string, reason: string): string => {\n const issue = `${path}: ${reason}`\n return issue.length <= maximumIssueLength ? issue : `${issue.slice(0, maximumIssueLength - 3)}...`\n}\n\n/**\n * Renders canonical's stable located failure without copying its rejected\n * value or a nested cause message into an RPC error.\n *\n * @private\n * @since 0.1.0\n */\nexport const canonicalIssue = (cause: unknown): string =>\n cause instanceof CanonicalError\n ? cappedIssue(cause.path, cause.code)\n : cappedIssue(\"$\", \"canonicalization failed\")\n\n/**\n * Finds the first rejected field without rendering its value.\n * @private\n * @since 0.1.0\n */\nexport { firstPath as schemaIssuePath } from \"@smthrs/canonical/IssuePath\"\n"]}
|