@weave-kit/engine 0.1.0
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/LICENSE +21 -0
- package/README.md +108 -0
- package/dist/adapters/auth/index.d.ts +14 -0
- package/dist/adapters/auth/index.d.ts.map +1 -0
- package/dist/adapters/auth/index.js +21 -0
- package/dist/adapters/auth/index.js.map +1 -0
- package/dist/adapters/auth/source.d.ts +24 -0
- package/dist/adapters/auth/source.d.ts.map +1 -0
- package/dist/adapters/auth/source.js +19 -0
- package/dist/adapters/auth/source.js.map +1 -0
- package/dist/adapters/events/index.d.ts +41 -0
- package/dist/adapters/events/index.d.ts.map +1 -0
- package/dist/adapters/events/index.js +70 -0
- package/dist/adapters/events/index.js.map +1 -0
- package/dist/adapters/events/stream.d.ts +29 -0
- package/dist/adapters/events/stream.d.ts.map +1 -0
- package/dist/adapters/events/stream.js +67 -0
- package/dist/adapters/events/stream.js.map +1 -0
- package/dist/adapters/mcp/generate.d.ts +21 -0
- package/dist/adapters/mcp/generate.d.ts.map +1 -0
- package/dist/adapters/mcp/generate.js +287 -0
- package/dist/adapters/mcp/generate.js.map +1 -0
- package/dist/adapters/mcp/guardrails.d.ts +39 -0
- package/dist/adapters/mcp/guardrails.d.ts.map +1 -0
- package/dist/adapters/mcp/guardrails.js +45 -0
- package/dist/adapters/mcp/guardrails.js.map +1 -0
- package/dist/adapters/mcp/http.d.ts +32 -0
- package/dist/adapters/mcp/http.d.ts.map +1 -0
- package/dist/adapters/mcp/http.js +206 -0
- package/dist/adapters/mcp/http.js.map +1 -0
- package/dist/adapters/mcp/index.d.ts +78 -0
- package/dist/adapters/mcp/index.d.ts.map +1 -0
- package/dist/adapters/mcp/index.js +46 -0
- package/dist/adapters/mcp/index.js.map +1 -0
- package/dist/adapters/mcp/introspection.d.ts +4 -0
- package/dist/adapters/mcp/introspection.d.ts.map +1 -0
- package/dist/adapters/mcp/introspection.js +20 -0
- package/dist/adapters/mcp/introspection.js.map +1 -0
- package/dist/adapters/mcp/session.d.ts +46 -0
- package/dist/adapters/mcp/session.d.ts.map +1 -0
- package/dist/adapters/mcp/session.js +43 -0
- package/dist/adapters/mcp/session.js.map +1 -0
- package/dist/adapters/mcp/tools.d.ts +8 -0
- package/dist/adapters/mcp/tools.d.ts.map +1 -0
- package/dist/adapters/mcp/tools.js +149 -0
- package/dist/adapters/mcp/tools.js.map +1 -0
- package/dist/adapters/mcp/types.d.ts +46 -0
- package/dist/adapters/mcp/types.d.ts.map +1 -0
- package/dist/adapters/mcp/types.js +3 -0
- package/dist/adapters/mcp/types.js.map +1 -0
- package/dist/adapters/ops/index.d.ts +20 -0
- package/dist/adapters/ops/index.d.ts.map +1 -0
- package/dist/adapters/ops/index.js +20 -0
- package/dist/adapters/ops/index.js.map +1 -0
- package/dist/adapters/rest/approvals.d.ts +15 -0
- package/dist/adapters/rest/approvals.d.ts.map +1 -0
- package/dist/adapters/rest/approvals.js +83 -0
- package/dist/adapters/rest/approvals.js.map +1 -0
- package/dist/adapters/rest/audit.d.ts +15 -0
- package/dist/adapters/rest/audit.d.ts.map +1 -0
- package/dist/adapters/rest/audit.js +81 -0
- package/dist/adapters/rest/audit.js.map +1 -0
- package/dist/adapters/rest/common.d.ts +30 -0
- package/dist/adapters/rest/common.d.ts.map +1 -0
- package/dist/adapters/rest/common.js +62 -0
- package/dist/adapters/rest/common.js.map +1 -0
- package/dist/adapters/rest/errorHandler.d.ts +9 -0
- package/dist/adapters/rest/errorHandler.d.ts.map +1 -0
- package/dist/adapters/rest/errorHandler.js +18 -0
- package/dist/adapters/rest/errorHandler.js.map +1 -0
- package/dist/adapters/rest/guardrails.d.ts +22 -0
- package/dist/adapters/rest/guardrails.d.ts.map +1 -0
- package/dist/adapters/rest/guardrails.js +77 -0
- package/dist/adapters/rest/guardrails.js.map +1 -0
- package/dist/adapters/rest/identities.d.ts +20 -0
- package/dist/adapters/rest/identities.d.ts.map +1 -0
- package/dist/adapters/rest/identities.js +27 -0
- package/dist/adapters/rest/identities.js.map +1 -0
- package/dist/adapters/rest/index.d.ts +17 -0
- package/dist/adapters/rest/index.d.ts.map +1 -0
- package/dist/adapters/rest/index.js +14 -0
- package/dist/adapters/rest/index.js.map +1 -0
- package/dist/adapters/rest/ingress.d.ts +13 -0
- package/dist/adapters/rest/ingress.d.ts.map +1 -0
- package/dist/adapters/rest/ingress.js +49 -0
- package/dist/adapters/rest/ingress.js.map +1 -0
- package/dist/adapters/rest/metadata.d.ts +11 -0
- package/dist/adapters/rest/metadata.d.ts.map +1 -0
- package/dist/adapters/rest/metadata.js +32 -0
- package/dist/adapters/rest/metadata.js.map +1 -0
- package/dist/adapters/rest/pages.d.ts +15 -0
- package/dist/adapters/rest/pages.d.ts.map +1 -0
- package/dist/adapters/rest/pages.js +241 -0
- package/dist/adapters/rest/pages.js.map +1 -0
- package/dist/adapters/rest/permissions.d.ts +11 -0
- package/dist/adapters/rest/permissions.d.ts.map +1 -0
- package/dist/adapters/rest/permissions.js +20 -0
- package/dist/adapters/rest/permissions.js.map +1 -0
- package/dist/adapters/rest/plugin.d.ts +42 -0
- package/dist/adapters/rest/plugin.d.ts.map +1 -0
- package/dist/adapters/rest/plugin.js +199 -0
- package/dist/adapters/rest/plugin.js.map +1 -0
- package/dist/adapters/rest/proxy.d.ts +27 -0
- package/dist/adapters/rest/proxy.d.ts.map +1 -0
- package/dist/adapters/rest/proxy.js +149 -0
- package/dist/adapters/rest/proxy.js.map +1 -0
- package/dist/adapters/rest/schemas.d.ts +15 -0
- package/dist/adapters/rest/schemas.d.ts.map +1 -0
- package/dist/adapters/rest/schemas.js +59 -0
- package/dist/adapters/rest/schemas.js.map +1 -0
- package/dist/adapters/rest/scripts.d.ts +14 -0
- package/dist/adapters/rest/scripts.d.ts.map +1 -0
- package/dist/adapters/rest/scripts.js +65 -0
- package/dist/adapters/rest/scripts.js.map +1 -0
- package/dist/cli/commands/build.d.ts +4 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +56 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/connect.d.ts +22 -0
- package/dist/cli/commands/connect.d.ts.map +1 -0
- package/dist/cli/commands/connect.js +37 -0
- package/dist/cli/commands/connect.js.map +1 -0
- package/dist/cli/commands/default-view.d.ts +41 -0
- package/dist/cli/commands/default-view.d.ts.map +1 -0
- package/dist/cli/commands/default-view.js +114 -0
- package/dist/cli/commands/default-view.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +4 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +251 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/field-add.d.ts +8 -0
- package/dist/cli/commands/field-add.d.ts.map +1 -0
- package/dist/cli/commands/field-add.js +117 -0
- package/dist/cli/commands/field-add.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts +8 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -0
- package/dist/cli/commands/introspect.js +102 -0
- package/dist/cli/commands/introspect.js.map +1 -0
- package/dist/cli/commands/mcp-config.d.ts +9 -0
- package/dist/cli/commands/mcp-config.d.ts.map +1 -0
- package/dist/cli/commands/mcp-config.js +45 -0
- package/dist/cli/commands/mcp-config.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +4 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +75 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/module.d.ts +12 -0
- package/dist/cli/commands/module.d.ts.map +1 -0
- package/dist/cli/commands/module.js +93 -0
- package/dist/cli/commands/module.js.map +1 -0
- package/dist/cli/commands/object-create.d.ts +11 -0
- package/dist/cli/commands/object-create.d.ts.map +1 -0
- package/dist/cli/commands/object-create.js +214 -0
- package/dist/cli/commands/object-create.js.map +1 -0
- package/dist/cli/commands/pages-migrate.d.ts +13 -0
- package/dist/cli/commands/pages-migrate.d.ts.map +1 -0
- package/dist/cli/commands/pages-migrate.js +132 -0
- package/dist/cli/commands/pages-migrate.js.map +1 -0
- package/dist/cli/commands/schema-map.d.ts +8 -0
- package/dist/cli/commands/schema-map.d.ts.map +1 -0
- package/dist/cli/commands/schema-map.js +133 -0
- package/dist/cli/commands/schema-map.js.map +1 -0
- package/dist/cli/commands/schema-upgrade.d.ts +10 -0
- package/dist/cli/commands/schema-upgrade.d.ts.map +1 -0
- package/dist/cli/commands/schema-upgrade.js +101 -0
- package/dist/cli/commands/schema-upgrade.js.map +1 -0
- package/dist/cli/commands/test.d.ts +4 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +17 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/commands/types.d.ts +4 -0
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/commands/types.js +21 -0
- package/dist/cli/commands/types.js.map +1 -0
- package/dist/cli/env.d.ts +8 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +31 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/exec.d.ts +8 -0
- package/dist/cli/exec.d.ts.map +1 -0
- package/dist/cli/exec.js +14 -0
- package/dist/cli/exec.js.map +1 -0
- package/dist/cli/facts.d.ts +7 -0
- package/dist/cli/facts.d.ts.map +1 -0
- package/dist/cli/facts.js +12 -0
- package/dist/cli/facts.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +198 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/load-config.d.ts +12 -0
- package/dist/cli/load-config.d.ts.map +1 -0
- package/dist/cli/load-config.js +40 -0
- package/dist/cli/load-config.js.map +1 -0
- package/dist/cli/mcp-config-snippets.d.ts +33 -0
- package/dist/cli/mcp-config-snippets.d.ts.map +1 -0
- package/dist/cli/mcp-config-snippets.js +54 -0
- package/dist/cli/mcp-config-snippets.js.map +1 -0
- package/dist/cli/ready-screen.d.ts +47 -0
- package/dist/cli/ready-screen.d.ts.map +1 -0
- package/dist/cli/ready-screen.js +71 -0
- package/dist/cli/ready-screen.js.map +1 -0
- package/dist/cli/render.d.ts +27 -0
- package/dist/cli/render.d.ts.map +1 -0
- package/dist/cli/render.js +54 -0
- package/dist/cli/render.js.map +1 -0
- package/dist/cli/scaffold.d.ts +20 -0
- package/dist/cli/scaffold.d.ts.map +1 -0
- package/dist/cli/scaffold.js +204 -0
- package/dist/cli/scaffold.js.map +1 -0
- package/dist/cli/types/commands.d.ts +102 -0
- package/dist/cli/types/commands.d.ts.map +1 -0
- package/dist/cli/types/commands.js +2 -0
- package/dist/cli/types/commands.js.map +1 -0
- package/dist/cli/types/index.d.ts +4 -0
- package/dist/cli/types/index.d.ts.map +1 -0
- package/dist/cli/types/index.js +2 -0
- package/dist/cli/types/index.js.map +1 -0
- package/dist/cli/types/values.d.ts +33 -0
- package/dist/cli/types/values.d.ts.map +1 -0
- package/dist/cli/types/values.js +31 -0
- package/dist/cli/types/values.js.map +1 -0
- package/dist/core/api/error.d.ts +10 -0
- package/dist/core/api/error.d.ts.map +1 -0
- package/dist/core/api/error.js +74 -0
- package/dist/core/api/error.js.map +1 -0
- package/dist/core/api/index.d.ts +4 -0
- package/dist/core/api/index.d.ts.map +1 -0
- package/dist/core/api/index.js +3 -0
- package/dist/core/api/index.js.map +1 -0
- package/dist/core/api/params.d.ts +10 -0
- package/dist/core/api/params.d.ts.map +1 -0
- package/dist/core/api/params.js +84 -0
- package/dist/core/api/params.js.map +1 -0
- package/dist/core/api/types.d.ts +40 -0
- package/dist/core/api/types.d.ts.map +1 -0
- package/dist/core/api/types.js +7 -0
- package/dist/core/api/types.js.map +1 -0
- package/dist/core/audit/index.d.ts +3 -0
- package/dist/core/audit/index.d.ts.map +1 -0
- package/dist/core/audit/index.js +2 -0
- package/dist/core/audit/index.js.map +1 -0
- package/dist/core/audit/types.d.ts +109 -0
- package/dist/core/audit/types.d.ts.map +1 -0
- package/dist/core/audit/types.js +39 -0
- package/dist/core/audit/types.js.map +1 -0
- package/dist/core/formula/ast.d.ts +54 -0
- package/dist/core/formula/ast.d.ts.map +1 -0
- package/dist/core/formula/ast.js +2 -0
- package/dist/core/formula/ast.js.map +1 -0
- package/dist/core/formula/errors.d.ts +12 -0
- package/dist/core/formula/errors.d.ts.map +1 -0
- package/dist/core/formula/errors.js +21 -0
- package/dist/core/formula/errors.js.map +1 -0
- package/dist/core/formula/evaluate.d.ts +21 -0
- package/dist/core/formula/evaluate.d.ts.map +1 -0
- package/dist/core/formula/evaluate.js +160 -0
- package/dist/core/formula/evaluate.js.map +1 -0
- package/dist/core/formula/index.d.ts +12 -0
- package/dist/core/formula/index.d.ts.map +1 -0
- package/dist/core/formula/index.js +7 -0
- package/dist/core/formula/index.js.map +1 -0
- package/dist/core/formula/lexer.d.ts +10 -0
- package/dist/core/formula/lexer.d.ts.map +1 -0
- package/dist/core/formula/lexer.js +97 -0
- package/dist/core/formula/lexer.js.map +1 -0
- package/dist/core/formula/parser.d.ts +24 -0
- package/dist/core/formula/parser.d.ts.map +1 -0
- package/dist/core/formula/parser.js +205 -0
- package/dist/core/formula/parser.js.map +1 -0
- package/dist/core/formula/validate.d.ts +29 -0
- package/dist/core/formula/validate.d.ts.map +1 -0
- package/dist/core/formula/validate.js +250 -0
- package/dist/core/formula/validate.js.map +1 -0
- package/dist/core/formula/values.d.ts +103 -0
- package/dist/core/formula/values.d.ts.map +1 -0
- package/dist/core/formula/values.js +94 -0
- package/dist/core/formula/values.js.map +1 -0
- package/dist/core/i18n/ar.d.ts +4 -0
- package/dist/core/i18n/ar.d.ts.map +1 -0
- package/dist/core/i18n/ar.js +194 -0
- package/dist/core/i18n/ar.js.map +1 -0
- package/dist/core/i18n/de.d.ts +4 -0
- package/dist/core/i18n/de.d.ts.map +1 -0
- package/dist/core/i18n/de.js +194 -0
- package/dist/core/i18n/de.js.map +1 -0
- package/dist/core/i18n/en.d.ts +194 -0
- package/dist/core/i18n/en.d.ts.map +1 -0
- package/dist/core/i18n/en.js +193 -0
- package/dist/core/i18n/en.js.map +1 -0
- package/dist/core/i18n/es.d.ts +4 -0
- package/dist/core/i18n/es.d.ts.map +1 -0
- package/dist/core/i18n/es.js +194 -0
- package/dist/core/i18n/es.js.map +1 -0
- package/dist/core/i18n/fr.d.ts +4 -0
- package/dist/core/i18n/fr.d.ts.map +1 -0
- package/dist/core/i18n/fr.js +194 -0
- package/dist/core/i18n/fr.js.map +1 -0
- package/dist/core/i18n/hi.d.ts +4 -0
- package/dist/core/i18n/hi.d.ts.map +1 -0
- package/dist/core/i18n/hi.js +194 -0
- package/dist/core/i18n/hi.js.map +1 -0
- package/dist/core/i18n/id.d.ts +4 -0
- package/dist/core/i18n/id.d.ts.map +1 -0
- package/dist/core/i18n/id.js +194 -0
- package/dist/core/i18n/id.js.map +1 -0
- package/dist/core/i18n/index.d.ts +50 -0
- package/dist/core/i18n/index.d.ts.map +1 -0
- package/dist/core/i18n/index.js +84 -0
- package/dist/core/i18n/index.js.map +1 -0
- package/dist/core/i18n/ja.d.ts +4 -0
- package/dist/core/i18n/ja.d.ts.map +1 -0
- package/dist/core/i18n/ja.js +194 -0
- package/dist/core/i18n/ja.js.map +1 -0
- package/dist/core/i18n/ko.d.ts +4 -0
- package/dist/core/i18n/ko.d.ts.map +1 -0
- package/dist/core/i18n/ko.js +194 -0
- package/dist/core/i18n/ko.js.map +1 -0
- package/dist/core/i18n/pt.d.ts +4 -0
- package/dist/core/i18n/pt.d.ts.map +1 -0
- package/dist/core/i18n/pt.js +194 -0
- package/dist/core/i18n/pt.js.map +1 -0
- package/dist/core/i18n/ru.d.ts +4 -0
- package/dist/core/i18n/ru.d.ts.map +1 -0
- package/dist/core/i18n/ru.js +194 -0
- package/dist/core/i18n/ru.js.map +1 -0
- package/dist/core/i18n/vi.d.ts +4 -0
- package/dist/core/i18n/vi.d.ts.map +1 -0
- package/dist/core/i18n/vi.js +194 -0
- package/dist/core/i18n/vi.js.map +1 -0
- package/dist/core/i18n/zh-hant.d.ts +4 -0
- package/dist/core/i18n/zh-hant.d.ts.map +1 -0
- package/dist/core/i18n/zh-hant.js +194 -0
- package/dist/core/i18n/zh-hant.js.map +1 -0
- package/dist/core/i18n/zh.d.ts +3 -0
- package/dist/core/i18n/zh.d.ts.map +1 -0
- package/dist/core/i18n/zh.js +193 -0
- package/dist/core/i18n/zh.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/limiter/counter.d.ts +39 -0
- package/dist/core/limiter/counter.d.ts.map +1 -0
- package/dist/core/limiter/counter.js +16 -0
- package/dist/core/limiter/counter.js.map +1 -0
- package/dist/core/limiter/index.d.ts +7 -0
- package/dist/core/limiter/index.d.ts.map +1 -0
- package/dist/core/limiter/index.js +4 -0
- package/dist/core/limiter/index.js.map +1 -0
- package/dist/core/limiter/quota.d.ts +45 -0
- package/dist/core/limiter/quota.d.ts.map +1 -0
- package/dist/core/limiter/quota.js +41 -0
- package/dist/core/limiter/quota.js.map +1 -0
- package/dist/core/limiter/sliding-window.d.ts +20 -0
- package/dist/core/limiter/sliding-window.d.ts.map +1 -0
- package/dist/core/limiter/sliding-window.js +29 -0
- package/dist/core/limiter/sliding-window.js.map +1 -0
- package/dist/core/object/describe.d.ts +76 -0
- package/dist/core/object/describe.d.ts.map +1 -0
- package/dist/core/object/describe.js +97 -0
- package/dist/core/object/describe.js.map +1 -0
- package/dist/core/object/gen-types.d.ts +4 -0
- package/dist/core/object/gen-types.d.ts.map +1 -0
- package/dist/core/object/gen-types.js +88 -0
- package/dist/core/object/gen-types.js.map +1 -0
- package/dist/core/object/graph.d.ts +35 -0
- package/dist/core/object/graph.d.ts.map +1 -0
- package/dist/core/object/graph.js +256 -0
- package/dist/core/object/graph.js.map +1 -0
- package/dist/core/object/index.d.ts +9 -0
- package/dist/core/object/index.d.ts.map +1 -0
- package/dist/core/object/index.js +9 -0
- package/dist/core/object/index.js.map +1 -0
- package/dist/core/object/migrations.d.ts +24 -0
- package/dist/core/object/migrations.d.ts.map +1 -0
- package/dist/core/object/migrations.js +48 -0
- package/dist/core/object/migrations.js.map +1 -0
- package/dist/core/object/parse.d.ts +10 -0
- package/dist/core/object/parse.d.ts.map +1 -0
- package/dist/core/object/parse.js +23 -0
- package/dist/core/object/parse.js.map +1 -0
- package/dist/core/object/registry.d.ts +24 -0
- package/dist/core/object/registry.d.ts.map +1 -0
- package/dist/core/object/registry.js +39 -0
- package/dist/core/object/registry.js.map +1 -0
- package/dist/core/object/schema-version.d.ts +14 -0
- package/dist/core/object/schema-version.d.ts.map +1 -0
- package/dist/core/object/schema-version.js +13 -0
- package/dist/core/object/schema-version.js.map +1 -0
- package/dist/core/object/validate.d.ts +21 -0
- package/dist/core/object/validate.d.ts.map +1 -0
- package/dist/core/object/validate.js +818 -0
- package/dist/core/object/validate.js.map +1 -0
- package/dist/core/provider/alerts/index.d.ts +3 -0
- package/dist/core/provider/alerts/index.d.ts.map +1 -0
- package/dist/core/provider/alerts/index.js +2 -0
- package/dist/core/provider/alerts/index.js.map +1 -0
- package/dist/core/provider/alerts/types.d.ts +27 -0
- package/dist/core/provider/alerts/types.d.ts.map +1 -0
- package/dist/core/provider/alerts/types.js +12 -0
- package/dist/core/provider/alerts/types.js.map +1 -0
- package/dist/core/provider/event/index.d.ts +3 -0
- package/dist/core/provider/event/index.d.ts.map +1 -0
- package/dist/core/provider/event/index.js +2 -0
- package/dist/core/provider/event/index.js.map +1 -0
- package/dist/core/provider/event/ingress.d.ts +61 -0
- package/dist/core/provider/event/ingress.d.ts.map +1 -0
- package/dist/core/provider/event/ingress.js +2 -0
- package/dist/core/provider/event/ingress.js.map +1 -0
- package/dist/core/provider/event/types.d.ts +96 -0
- package/dist/core/provider/event/types.d.ts.map +1 -0
- package/dist/core/provider/event/types.js +21 -0
- package/dist/core/provider/event/types.js.map +1 -0
- package/dist/core/provider/identity/index.d.ts +2 -0
- package/dist/core/provider/identity/index.d.ts.map +1 -0
- package/dist/core/provider/identity/index.js +2 -0
- package/dist/core/provider/identity/index.js.map +1 -0
- package/dist/core/provider/identity/types.d.ts +11 -0
- package/dist/core/provider/identity/types.d.ts.map +1 -0
- package/dist/core/provider/identity/types.js +2 -0
- package/dist/core/provider/identity/types.js.map +1 -0
- package/dist/core/provider/index.d.ts +4 -0
- package/dist/core/provider/index.d.ts.map +1 -0
- package/dist/core/provider/index.js +4 -0
- package/dist/core/provider/index.js.map +1 -0
- package/dist/core/proxy/index.d.ts +3 -0
- package/dist/core/proxy/index.d.ts.map +1 -0
- package/dist/core/proxy/index.js +2 -0
- package/dist/core/proxy/index.js.map +1 -0
- package/dist/core/proxy/types.d.ts +100 -0
- package/dist/core/proxy/types.d.ts.map +1 -0
- package/dist/core/proxy/types.js +72 -0
- package/dist/core/proxy/types.js.map +1 -0
- package/dist/core/rbac/authorize.d.ts +13 -0
- package/dist/core/rbac/authorize.d.ts.map +1 -0
- package/dist/core/rbac/authorize.js +45 -0
- package/dist/core/rbac/authorize.js.map +1 -0
- package/dist/core/rbac/fields.d.ts +4 -0
- package/dist/core/rbac/fields.d.ts.map +1 -0
- package/dist/core/rbac/fields.js +6 -0
- package/dist/core/rbac/fields.js.map +1 -0
- package/dist/core/rbac/index.d.ts +9 -0
- package/dist/core/rbac/index.d.ts.map +1 -0
- package/dist/core/rbac/index.js +6 -0
- package/dist/core/rbac/index.js.map +1 -0
- package/dist/core/rbac/resolve.d.ts +22 -0
- package/dist/core/rbac/resolve.d.ts.map +1 -0
- package/dist/core/rbac/resolve.js +55 -0
- package/dist/core/rbac/resolve.js.map +1 -0
- package/dist/core/rbac/rls.d.ts +12 -0
- package/dist/core/rbac/rls.d.ts.map +1 -0
- package/dist/core/rbac/rls.js +77 -0
- package/dist/core/rbac/rls.js.map +1 -0
- package/dist/core/rbac/rowScope.d.ts +15 -0
- package/dist/core/rbac/rowScope.d.ts.map +1 -0
- package/dist/core/rbac/rowScope.js +28 -0
- package/dist/core/rbac/rowScope.js.map +1 -0
- package/dist/core/rbac/types.d.ts +8 -0
- package/dist/core/rbac/types.d.ts.map +1 -0
- package/dist/core/rbac/types.js +2 -0
- package/dist/core/rbac/types.js.map +1 -0
- package/dist/core/script/index.d.ts +6 -0
- package/dist/core/script/index.d.ts.map +1 -0
- package/dist/core/script/index.js +4 -0
- package/dist/core/script/index.js.map +1 -0
- package/dist/core/script/source.d.ts +6 -0
- package/dist/core/script/source.d.ts.map +1 -0
- package/dist/core/script/source.js +31 -0
- package/dist/core/script/source.js.map +1 -0
- package/dist/core/script/types.d.ts +189 -0
- package/dist/core/script/types.d.ts.map +1 -0
- package/dist/core/script/types.js +29 -0
- package/dist/core/script/types.js.map +1 -0
- package/dist/core/script/values.d.ts +8 -0
- package/dist/core/script/values.d.ts.map +1 -0
- package/dist/core/script/values.js +7 -0
- package/dist/core/script/values.js.map +1 -0
- package/dist/core/storage/apply.d.ts +4 -0
- package/dist/core/storage/apply.d.ts.map +1 -0
- package/dist/core/storage/apply.js +20 -0
- package/dist/core/storage/apply.js.map +1 -0
- package/dist/core/storage/diff.d.ts +45 -0
- package/dist/core/storage/diff.d.ts.map +1 -0
- package/dist/core/storage/diff.js +208 -0
- package/dist/core/storage/diff.js.map +1 -0
- package/dist/core/storage/index.d.ts +15 -0
- package/dist/core/storage/index.d.ts.map +1 -0
- package/dist/core/storage/index.js +10 -0
- package/dist/core/storage/index.js.map +1 -0
- package/dist/core/storage/inspect.d.ts +55 -0
- package/dist/core/storage/inspect.d.ts.map +1 -0
- package/dist/core/storage/inspect.js +163 -0
- package/dist/core/storage/inspect.js.map +1 -0
- package/dist/core/storage/introspect.d.ts +36 -0
- package/dist/core/storage/introspect.d.ts.map +1 -0
- package/dist/core/storage/introspect.js +223 -0
- package/dist/core/storage/introspect.js.map +1 -0
- package/dist/core/storage/map.d.ts +30 -0
- package/dist/core/storage/map.d.ts.map +1 -0
- package/dist/core/storage/map.js +157 -0
- package/dist/core/storage/map.js.map +1 -0
- package/dist/core/storage/meta.d.ts +6 -0
- package/dist/core/storage/meta.d.ts.map +1 -0
- package/dist/core/storage/meta.js +11 -0
- package/dist/core/storage/meta.js.map +1 -0
- package/dist/core/storage/migrate.d.ts +42 -0
- package/dist/core/storage/migrate.d.ts.map +1 -0
- package/dist/core/storage/migrate.js +133 -0
- package/dist/core/storage/migrate.js.map +1 -0
- package/dist/core/storage/pool.d.ts +4 -0
- package/dist/core/storage/pool.d.ts.map +1 -0
- package/dist/core/storage/pool.js +6 -0
- package/dist/core/storage/pool.js.map +1 -0
- package/dist/core/storage/report.d.ts +111 -0
- package/dist/core/storage/report.d.ts.map +1 -0
- package/dist/core/storage/report.js +189 -0
- package/dist/core/storage/report.js.map +1 -0
- package/dist/core/tools/approvals-backend.d.ts +9 -0
- package/dist/core/tools/approvals-backend.d.ts.map +1 -0
- package/dist/core/tools/approvals-backend.js +58 -0
- package/dist/core/tools/approvals-backend.js.map +1 -0
- package/dist/core/tools/index.d.ts +5 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +5 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/policies.d.ts +10 -0
- package/dist/core/tools/policies.d.ts.map +1 -0
- package/dist/core/tools/policies.js +33 -0
- package/dist/core/tools/policies.js.map +1 -0
- package/dist/core/tools/types.d.ts +181 -0
- package/dist/core/tools/types.d.ts.map +1 -0
- package/dist/core/tools/types.js +2 -0
- package/dist/core/tools/types.js.map +1 -0
- package/dist/core/tools/values.d.ts +34 -0
- package/dist/core/tools/values.d.ts.map +1 -0
- package/dist/core/tools/values.js +36 -0
- package/dist/core/tools/values.js.map +1 -0
- package/dist/core/types/errors.d.ts +21 -0
- package/dist/core/types/errors.d.ts.map +1 -0
- package/dist/core/types/errors.js +29 -0
- package/dist/core/types/errors.js.map +1 -0
- package/dist/core/types/fields.d.ts +182 -0
- package/dist/core/types/fields.d.ts.map +1 -0
- package/dist/core/types/fields.js +2 -0
- package/dist/core/types/fields.js.map +1 -0
- package/dist/core/types/index.d.ts +12 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +5 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/object.d.ts +36 -0
- package/dist/core/types/object.d.ts.map +1 -0
- package/dist/core/types/object.js +2 -0
- package/dist/core/types/object.js.map +1 -0
- package/dist/core/types/permission.d.ts +22 -0
- package/dist/core/types/permission.d.ts.map +1 -0
- package/dist/core/types/permission.js +2 -0
- package/dist/core/types/permission.js.map +1 -0
- package/dist/core/types/primaryField.d.ts +15 -0
- package/dist/core/types/primaryField.d.ts.map +1 -0
- package/dist/core/types/primaryField.js +17 -0
- package/dist/core/types/primaryField.js.map +1 -0
- package/dist/core/types/registry.d.ts +39 -0
- package/dist/core/types/registry.d.ts.map +1 -0
- package/dist/core/types/registry.js +78 -0
- package/dist/core/types/registry.js.map +1 -0
- package/dist/core/types/relation.d.ts +41 -0
- package/dist/core/types/relation.d.ts.map +1 -0
- package/dist/core/types/relation.js +2 -0
- package/dist/core/types/relation.js.map +1 -0
- package/dist/core/types/values.d.ts +107 -0
- package/dist/core/types/values.d.ts.map +1 -0
- package/dist/core/types/values.js +100 -0
- package/dist/core/types/values.js.map +1 -0
- package/dist/experimental.d.ts +14 -0
- package/dist/experimental.d.ts.map +1 -0
- package/dist/experimental.js +14 -0
- package/dist/experimental.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/alerts/console.d.ts +4 -0
- package/dist/infrastructure/alerts/console.d.ts.map +1 -0
- package/dist/infrastructure/alerts/console.js +15 -0
- package/dist/infrastructure/alerts/console.js.map +1 -0
- package/dist/infrastructure/alerts/index.d.ts +34 -0
- package/dist/infrastructure/alerts/index.d.ts.map +1 -0
- package/dist/infrastructure/alerts/index.js +34 -0
- package/dist/infrastructure/alerts/index.js.map +1 -0
- package/dist/infrastructure/alerts/slack.d.ts +20 -0
- package/dist/infrastructure/alerts/slack.d.ts.map +1 -0
- package/dist/infrastructure/alerts/slack.js +30 -0
- package/dist/infrastructure/alerts/slack.js.map +1 -0
- package/dist/infrastructure/alerts/webhook.d.ts +18 -0
- package/dist/infrastructure/alerts/webhook.d.ts.map +1 -0
- package/dist/infrastructure/alerts/webhook.js +24 -0
- package/dist/infrastructure/alerts/webhook.js.map +1 -0
- package/dist/infrastructure/event/bus.d.ts +18 -0
- package/dist/infrastructure/event/bus.d.ts.map +1 -0
- package/dist/infrastructure/event/bus.js +86 -0
- package/dist/infrastructure/event/bus.js.map +1 -0
- package/dist/infrastructure/event/index.d.ts +3 -0
- package/dist/infrastructure/event/index.d.ts.map +1 -0
- package/dist/infrastructure/event/index.js +2 -0
- package/dist/infrastructure/event/index.js.map +1 -0
- package/dist/infrastructure/identity.d.ts +10 -0
- package/dist/infrastructure/identity.d.ts.map +1 -0
- package/dist/infrastructure/identity.js +10 -0
- package/dist/infrastructure/identity.js.map +1 -0
- package/dist/infrastructure/index.d.ts +8 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +5 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/layout-format.d.ts +283 -0
- package/dist/layout-format.d.ts.map +1 -0
- package/dist/layout-format.js +435 -0
- package/dist/layout-format.js.map +1 -0
- package/dist/runtime/data-access/builder.d.ts +40 -0
- package/dist/runtime/data-access/builder.d.ts.map +1 -0
- package/dist/runtime/data-access/builder.js +203 -0
- package/dist/runtime/data-access/builder.js.map +1 -0
- package/dist/runtime/data-access/details.d.ts +10 -0
- package/dist/runtime/data-access/details.d.ts.map +1 -0
- package/dist/runtime/data-access/details.js +56 -0
- package/dist/runtime/data-access/details.js.map +1 -0
- package/dist/runtime/data-access/formula.d.ts +8 -0
- package/dist/runtime/data-access/formula.d.ts.map +1 -0
- package/dist/runtime/data-access/formula.js +101 -0
- package/dist/runtime/data-access/formula.js.map +1 -0
- package/dist/runtime/data-access/index.d.ts +18 -0
- package/dist/runtime/data-access/index.d.ts.map +1 -0
- package/dist/runtime/data-access/index.js +12 -0
- package/dist/runtime/data-access/index.js.map +1 -0
- package/dist/runtime/data-access/query.d.ts +53 -0
- package/dist/runtime/data-access/query.d.ts.map +1 -0
- package/dist/runtime/data-access/query.js +435 -0
- package/dist/runtime/data-access/query.js.map +1 -0
- package/dist/runtime/data-access/rbac.d.ts +15 -0
- package/dist/runtime/data-access/rbac.d.ts.map +1 -0
- package/dist/runtime/data-access/rbac.js +172 -0
- package/dist/runtime/data-access/rbac.js.map +1 -0
- package/dist/runtime/data-access/seqno.d.ts +11 -0
- package/dist/runtime/data-access/seqno.d.ts.map +1 -0
- package/dist/runtime/data-access/seqno.js +37 -0
- package/dist/runtime/data-access/seqno.js.map +1 -0
- package/dist/runtime/data-access/sql-executor.d.ts +45 -0
- package/dist/runtime/data-access/sql-executor.d.ts.map +1 -0
- package/dist/runtime/data-access/sql-executor.js +76 -0
- package/dist/runtime/data-access/sql-executor.js.map +1 -0
- package/dist/runtime/data-access/sql-gate.d.ts +35 -0
- package/dist/runtime/data-access/sql-gate.d.ts.map +1 -0
- package/dist/runtime/data-access/sql-gate.js +70 -0
- package/dist/runtime/data-access/sql-gate.js.map +1 -0
- package/dist/runtime/data-access/tx.d.ts +12 -0
- package/dist/runtime/data-access/tx.d.ts.map +1 -0
- package/dist/runtime/data-access/tx.js +30 -0
- package/dist/runtime/data-access/tx.js.map +1 -0
- package/dist/runtime/data-access/types.d.ts +82 -0
- package/dist/runtime/data-access/types.d.ts.map +1 -0
- package/dist/runtime/data-access/types.js +2 -0
- package/dist/runtime/data-access/types.js.map +1 -0
- package/dist/runtime/data-access/validate.d.ts +17 -0
- package/dist/runtime/data-access/validate.d.ts.map +1 -0
- package/dist/runtime/data-access/validate.js +180 -0
- package/dist/runtime/data-access/validate.js.map +1 -0
- package/dist/runtime/data-access/values.d.ts +39 -0
- package/dist/runtime/data-access/values.d.ts.map +1 -0
- package/dist/runtime/data-access/values.js +36 -0
- package/dist/runtime/data-access/values.js.map +1 -0
- package/dist/runtime/engine.d.ts +253 -0
- package/dist/runtime/engine.d.ts.map +1 -0
- package/dist/runtime/engine.js +368 -0
- package/dist/runtime/engine.js.map +1 -0
- package/dist/runtime/git/autoCommit.d.ts +43 -0
- package/dist/runtime/git/autoCommit.d.ts.map +1 -0
- package/dist/runtime/git/autoCommit.js +100 -0
- package/dist/runtime/git/autoCommit.js.map +1 -0
- package/dist/runtime/git/guardrailSource.d.ts +55 -0
- package/dist/runtime/git/guardrailSource.d.ts.map +1 -0
- package/dist/runtime/git/guardrailSource.js +140 -0
- package/dist/runtime/git/guardrailSource.js.map +1 -0
- package/dist/runtime/git/index.d.ts +22 -0
- package/dist/runtime/git/index.d.ts.map +1 -0
- package/dist/runtime/git/index.js +12 -0
- package/dist/runtime/git/index.js.map +1 -0
- package/dist/runtime/git/layoutSource.d.ts +41 -0
- package/dist/runtime/git/layoutSource.d.ts.map +1 -0
- package/dist/runtime/git/layoutSource.js +67 -0
- package/dist/runtime/git/layoutSource.js.map +1 -0
- package/dist/runtime/git/loader.d.ts +22 -0
- package/dist/runtime/git/loader.d.ts.map +1 -0
- package/dist/runtime/git/loader.js +57 -0
- package/dist/runtime/git/loader.js.map +1 -0
- package/dist/runtime/git/pageCatalog.d.ts +66 -0
- package/dist/runtime/git/pageCatalog.d.ts.map +1 -0
- package/dist/runtime/git/pageCatalog.js +183 -0
- package/dist/runtime/git/pageCatalog.js.map +1 -0
- package/dist/runtime/git/pageScripts.d.ts +43 -0
- package/dist/runtime/git/pageScripts.d.ts.map +1 -0
- package/dist/runtime/git/pageScripts.js +89 -0
- package/dist/runtime/git/pageScripts.js.map +1 -0
- package/dist/runtime/git/runner.d.ts +25 -0
- package/dist/runtime/git/runner.d.ts.map +1 -0
- package/dist/runtime/git/runner.js +26 -0
- package/dist/runtime/git/runner.js.map +1 -0
- package/dist/runtime/git/schemaChange.d.ts +70 -0
- package/dist/runtime/git/schemaChange.d.ts.map +1 -0
- package/dist/runtime/git/schemaChange.js +241 -0
- package/dist/runtime/git/schemaChange.js.map +1 -0
- package/dist/runtime/git/schemaSource.d.ts +38 -0
- package/dist/runtime/git/schemaSource.d.ts.map +1 -0
- package/dist/runtime/git/schemaSource.js +38 -0
- package/dist/runtime/git/schemaSource.js.map +1 -0
- package/dist/runtime/git/scriptSource.d.ts +24 -0
- package/dist/runtime/git/scriptSource.d.ts.map +1 -0
- package/dist/runtime/git/scriptSource.js +80 -0
- package/dist/runtime/git/scriptSource.js.map +1 -0
- package/dist/runtime/git/sourceFile.d.ts +15 -0
- package/dist/runtime/git/sourceFile.d.ts.map +1 -0
- package/dist/runtime/git/sourceFile.js +41 -0
- package/dist/runtime/git/sourceFile.js.map +1 -0
- package/dist/runtime/git/sourceTransaction.d.ts +56 -0
- package/dist/runtime/git/sourceTransaction.d.ts.map +1 -0
- package/dist/runtime/git/sourceTransaction.js +176 -0
- package/dist/runtime/git/sourceTransaction.js.map +1 -0
- package/dist/runtime/git/sync.d.ts +33 -0
- package/dist/runtime/git/sync.d.ts.map +1 -0
- package/dist/runtime/git/sync.js +42 -0
- package/dist/runtime/git/sync.js.map +1 -0
- package/dist/runtime/metadata/cache.d.ts +29 -0
- package/dist/runtime/metadata/cache.d.ts.map +1 -0
- package/dist/runtime/metadata/cache.js +70 -0
- package/dist/runtime/metadata/cache.js.map +1 -0
- package/dist/runtime/metadata/index.d.ts +3 -0
- package/dist/runtime/metadata/index.d.ts.map +1 -0
- package/dist/runtime/metadata/index.js +2 -0
- package/dist/runtime/metadata/index.js.map +1 -0
- package/dist/runtime/proxy/fetch.d.ts +36 -0
- package/dist/runtime/proxy/fetch.d.ts.map +1 -0
- package/dist/runtime/proxy/fetch.js +136 -0
- package/dist/runtime/proxy/fetch.js.map +1 -0
- package/dist/runtime/proxy/index.d.ts +3 -0
- package/dist/runtime/proxy/index.d.ts.map +1 -0
- package/dist/runtime/proxy/index.js +2 -0
- package/dist/runtime/proxy/index.js.map +1 -0
- package/dist/runtime/sql-analyzer/index.d.ts +47 -0
- package/dist/runtime/sql-analyzer/index.d.ts.map +1 -0
- package/dist/runtime/sql-analyzer/index.js +58 -0
- package/dist/runtime/sql-analyzer/index.js.map +1 -0
- package/dist/runtime/tools/executor.d.ts +69 -0
- package/dist/runtime/tools/executor.d.ts.map +1 -0
- package/dist/runtime/tools/executor.js +204 -0
- package/dist/runtime/tools/executor.js.map +1 -0
- package/dist/runtime/tools/index.d.ts +5 -0
- package/dist/runtime/tools/index.d.ts.map +1 -0
- package/dist/runtime/tools/index.js +3 -0
- package/dist/runtime/tools/index.js.map +1 -0
- package/dist/runtime/tools/loader.d.ts +14 -0
- package/dist/runtime/tools/loader.d.ts.map +1 -0
- package/dist/runtime/tools/loader.js +98 -0
- package/dist/runtime/tools/loader.js.map +1 -0
- package/dist/runtime/tools/policies.d.ts +46 -0
- package/dist/runtime/tools/policies.d.ts.map +1 -0
- package/dist/runtime/tools/policies.js +107 -0
- package/dist/runtime/tools/policies.js.map +1 -0
- package/dist/runtime/tunnel/connector.d.ts +31 -0
- package/dist/runtime/tunnel/connector.d.ts.map +1 -0
- package/dist/runtime/tunnel/connector.js +114 -0
- package/dist/runtime/tunnel/connector.js.map +1 -0
- package/dist/runtime/tunnel/forwarder.d.ts +12 -0
- package/dist/runtime/tunnel/forwarder.d.ts.map +1 -0
- package/dist/runtime/tunnel/forwarder.js +64 -0
- package/dist/runtime/tunnel/forwarder.js.map +1 -0
- package/dist/runtime/tunnel/framing.d.ts +63 -0
- package/dist/runtime/tunnel/framing.d.ts.map +1 -0
- package/dist/runtime/tunnel/framing.js +86 -0
- package/dist/runtime/tunnel/framing.js.map +1 -0
- package/dist/runtime/tunnel/index.d.ts +11 -0
- package/dist/runtime/tunnel/index.d.ts.map +1 -0
- package/dist/runtime/tunnel/index.js +6 -0
- package/dist/runtime/tunnel/index.js.map +1 -0
- package/dist/runtime/tunnel/registry.d.ts +36 -0
- package/dist/runtime/tunnel/registry.d.ts.map +1 -0
- package/dist/runtime/tunnel/registry.js +167 -0
- package/dist/runtime/tunnel/registry.js.map +1 -0
- package/dist/runtime/tunnel/server.d.ts +24 -0
- package/dist/runtime/tunnel/server.d.ts.map +1 -0
- package/dist/runtime/tunnel/server.js +70 -0
- package/dist/runtime/tunnel/server.js.map +1 -0
- package/dist/subsystems/approvals/index.d.ts +11 -0
- package/dist/subsystems/approvals/index.d.ts.map +1 -0
- package/dist/subsystems/approvals/index.js +12 -0
- package/dist/subsystems/approvals/index.js.map +1 -0
- package/dist/subsystems/approvals/store.d.ts +12 -0
- package/dist/subsystems/approvals/store.d.ts.map +1 -0
- package/dist/subsystems/approvals/store.js +108 -0
- package/dist/subsystems/approvals/store.js.map +1 -0
- package/dist/subsystems/audit/index.d.ts +37 -0
- package/dist/subsystems/audit/index.d.ts.map +1 -0
- package/dist/subsystems/audit/index.js +125 -0
- package/dist/subsystems/audit/index.js.map +1 -0
- package/dist/subsystems/audit/store.d.ts +12 -0
- package/dist/subsystems/audit/store.d.ts.map +1 -0
- package/dist/subsystems/audit/store.js +215 -0
- package/dist/subsystems/audit/store.js.map +1 -0
- package/dist/subsystems/quota/index.d.ts +2 -0
- package/dist/subsystems/quota/index.d.ts.map +1 -0
- package/dist/subsystems/quota/index.js +2 -0
- package/dist/subsystems/quota/index.js.map +1 -0
- package/dist/subsystems/quota/store.d.ts +4 -0
- package/dist/subsystems/quota/store.d.ts.map +1 -0
- package/dist/subsystems/quota/store.js +44 -0
- package/dist/subsystems/quota/store.js.map +1 -0
- package/dist/subsystems/script/backend/isolated-vm.d.ts +8 -0
- package/dist/subsystems/script/backend/isolated-vm.d.ts.map +1 -0
- package/dist/subsystems/script/backend/isolated-vm.js +380 -0
- package/dist/subsystems/script/backend/isolated-vm.js.map +1 -0
- package/dist/subsystems/script/backend/types.d.ts +61 -0
- package/dist/subsystems/script/backend/types.d.ts.map +1 -0
- package/dist/subsystems/script/backend/types.js +2 -0
- package/dist/subsystems/script/backend/types.js.map +1 -0
- package/dist/subsystems/script/bridge.d.ts +29 -0
- package/dist/subsystems/script/bridge.d.ts.map +1 -0
- package/dist/subsystems/script/bridge.js +106 -0
- package/dist/subsystems/script/bridge.js.map +1 -0
- package/dist/subsystems/script/dispatcher.d.ts +46 -0
- package/dist/subsystems/script/dispatcher.d.ts.map +1 -0
- package/dist/subsystems/script/dispatcher.js +143 -0
- package/dist/subsystems/script/dispatcher.js.map +1 -0
- package/dist/subsystems/script/index.d.ts +13 -0
- package/dist/subsystems/script/index.d.ts.map +1 -0
- package/dist/subsystems/script/index.js +7 -0
- package/dist/subsystems/script/index.js.map +1 -0
- package/dist/subsystems/script/loader.d.ts +18 -0
- package/dist/subsystems/script/loader.d.ts.map +1 -0
- package/dist/subsystems/script/loader.js +44 -0
- package/dist/subsystems/script/loader.js.map +1 -0
- package/dist/subsystems/script/services.d.ts +14 -0
- package/dist/subsystems/script/services.d.ts.map +1 -0
- package/dist/subsystems/script/services.js +48 -0
- package/dist/subsystems/script/services.js.map +1 -0
- package/dist/values.d.ts +18 -0
- package/dist/values.d.ts.map +1 -0
- package/dist/values.js +18 -0
- package/dist/values.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import { fromB64 } from './framing.js';
|
|
3
|
+
export class TunnelRegistry {
|
|
4
|
+
entries = new Map();
|
|
5
|
+
register(tunnelId, session) {
|
|
6
|
+
this.entries.get(tunnelId)?.session.close();
|
|
7
|
+
const entry = { session, waiters: new Map() };
|
|
8
|
+
this.entries.set(tunnelId, entry);
|
|
9
|
+
void this.readLoop(tunnelId, entry);
|
|
10
|
+
}
|
|
11
|
+
get(tunnelId) {
|
|
12
|
+
return this.entries.get(tunnelId)?.session;
|
|
13
|
+
}
|
|
14
|
+
has(tunnelId) {
|
|
15
|
+
return this.entries.has(tunnelId);
|
|
16
|
+
}
|
|
17
|
+
unregister(tunnelId, session) {
|
|
18
|
+
const entry = this.entries.get(tunnelId);
|
|
19
|
+
if (entry !== undefined && entry.session === session)
|
|
20
|
+
this.entries.delete(tunnelId);
|
|
21
|
+
}
|
|
22
|
+
/** Send one buffered request frame and resolve with the complete response. */
|
|
23
|
+
async request(tunnelId, frame) {
|
|
24
|
+
const entry = this.entries.get(tunnelId);
|
|
25
|
+
if (entry === undefined)
|
|
26
|
+
return { status: 503, headers: {}, body: JSON.stringify({ error: 'tunnel offline' }) };
|
|
27
|
+
return new Promise((resolve) => {
|
|
28
|
+
const chunks = [];
|
|
29
|
+
let status = 0;
|
|
30
|
+
let headers = {};
|
|
31
|
+
let settled = false;
|
|
32
|
+
const settle = (value) => {
|
|
33
|
+
if (settled)
|
|
34
|
+
return;
|
|
35
|
+
settled = true;
|
|
36
|
+
resolve(value);
|
|
37
|
+
};
|
|
38
|
+
entry.waiters.set(frame.id, {
|
|
39
|
+
onStart(s, h) {
|
|
40
|
+
status = s;
|
|
41
|
+
headers = h;
|
|
42
|
+
},
|
|
43
|
+
onData(chunk) {
|
|
44
|
+
chunks.push(chunk);
|
|
45
|
+
},
|
|
46
|
+
onEnd() {
|
|
47
|
+
settle({ status, headers, body: Buffer.concat(chunks).toString('utf8') });
|
|
48
|
+
},
|
|
49
|
+
onError(message) {
|
|
50
|
+
settle({ status: 502, headers: {}, body: JSON.stringify({ error: message }) });
|
|
51
|
+
},
|
|
52
|
+
onCancel() {
|
|
53
|
+
settle({ status: 499, headers: {}, body: JSON.stringify({ error: 'cancelled' }) });
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
entry.session.write(frame);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/** Open a streaming (SSE) request: resolve on response-start with `{ response, abort }`. */
|
|
60
|
+
openStream(tunnelId, frame) {
|
|
61
|
+
const entry = this.entries.get(tunnelId);
|
|
62
|
+
if (entry === undefined) {
|
|
63
|
+
return Promise.reject(new Error('tunnel offline'));
|
|
64
|
+
}
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
let cleared = false;
|
|
67
|
+
const chunks = [];
|
|
68
|
+
let pushed = false;
|
|
69
|
+
const readable = new Readable({
|
|
70
|
+
read() {
|
|
71
|
+
/* data pushed below */
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
const push = () => {
|
|
75
|
+
if (chunks.length > 0 && !cleared) {
|
|
76
|
+
readable.push(Buffer.concat(chunks));
|
|
77
|
+
chunks.length = 0;
|
|
78
|
+
if (!readable.readableFlowing)
|
|
79
|
+
readable.resume(); // keep the consumer flowing
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const fail = (err) => {
|
|
83
|
+
if (!pushed)
|
|
84
|
+
reject(err);
|
|
85
|
+
else
|
|
86
|
+
readable.destroy(err);
|
|
87
|
+
};
|
|
88
|
+
entry.waiters.set(frame.id, {
|
|
89
|
+
onStart(s, h) {
|
|
90
|
+
if (!pushed) {
|
|
91
|
+
pushed = true;
|
|
92
|
+
resolve({
|
|
93
|
+
response: new Response(Readable.toWeb(readable), { status: s, headers: h }),
|
|
94
|
+
abort: () => {
|
|
95
|
+
entry.session.write({ kind: 'cancel', id: frame.id });
|
|
96
|
+
readable.destroy();
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
push();
|
|
101
|
+
},
|
|
102
|
+
onData(chunk) {
|
|
103
|
+
chunks.push(chunk);
|
|
104
|
+
push();
|
|
105
|
+
},
|
|
106
|
+
onEnd() {
|
|
107
|
+
cleared = true;
|
|
108
|
+
readable.push(null);
|
|
109
|
+
},
|
|
110
|
+
onError(message) {
|
|
111
|
+
fail(new Error(message));
|
|
112
|
+
},
|
|
113
|
+
onCancel() {
|
|
114
|
+
cleared = true;
|
|
115
|
+
readable.push(null);
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
entry.session.write(frame);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
close(tunnelId) {
|
|
122
|
+
const entry = this.entries.get(tunnelId);
|
|
123
|
+
if (entry !== undefined) {
|
|
124
|
+
entry.session.close();
|
|
125
|
+
this.entries.delete(tunnelId);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
closeAll() {
|
|
129
|
+
for (const [id, entry] of this.entries) {
|
|
130
|
+
entry.session.close();
|
|
131
|
+
this.entries.delete(id);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async readLoop(tunnelId, entry) {
|
|
135
|
+
try {
|
|
136
|
+
for (;;) {
|
|
137
|
+
const frame = await entry.session.read();
|
|
138
|
+
if (frame === null)
|
|
139
|
+
break;
|
|
140
|
+
this.route(entry, frame);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
for (const waiter of entry.waiters.values())
|
|
145
|
+
waiter.onEnd();
|
|
146
|
+
this.unregister(tunnelId, entry.session);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
route(entry, frame) {
|
|
150
|
+
if (frame.kind === 'response-start' || frame.kind === 'data' || frame.kind === 'response-end' || frame.kind === 'error') {
|
|
151
|
+
const waiter = entry.waiters.get(frame.id);
|
|
152
|
+
if (waiter === undefined)
|
|
153
|
+
return;
|
|
154
|
+
if (frame.kind === 'response-start')
|
|
155
|
+
waiter.onStart(frame.status, frame.headers);
|
|
156
|
+
else if (frame.kind === 'data')
|
|
157
|
+
waiter.onData(fromB64(frame.data));
|
|
158
|
+
else if (frame.kind === 'error')
|
|
159
|
+
waiter.onError(frame.message);
|
|
160
|
+
else {
|
|
161
|
+
waiter.onEnd();
|
|
162
|
+
entry.waiters.delete(frame.id);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/runtime/tunnel/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { TunnelRegistry } from './registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Tunnel endpoint (P1, MIT): a node:http2 server the customer's `weave connect`
|
|
4
|
+
* agent dials OUT to. Each CONNECT stream authenticated by `(tunnel_id,
|
|
5
|
+
* pairing_token)` becomes a live {@link TunnelSession} registered in the
|
|
6
|
+
* {@link TunnelRegistry}, which the governance proxy forwarder then routes
|
|
7
|
+
* proxied requests over. The server accepts h2c (prior-knowledge) or TLS
|
|
8
|
+
* (`secure`), so it can live beside the governance engine or behind a TLS
|
|
9
|
+
* terminator.
|
|
10
|
+
*/
|
|
11
|
+
export interface TunnelServerDeps {
|
|
12
|
+
registry: TunnelRegistry;
|
|
13
|
+
/** validate a connector's `(tunnel_id, pairing_token)` before accepting. */
|
|
14
|
+
authenticate(tunnelId: string, token: string): Promise<boolean> | boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface TunnelServerHandle {
|
|
17
|
+
listen(port: number, host?: string): Promise<number>;
|
|
18
|
+
address(): {
|
|
19
|
+
port: number;
|
|
20
|
+
};
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export declare function createTunnelServer(deps: TunnelServerDeps): TunnelServerHandle;
|
|
24
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/runtime/tunnel/server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;GAQG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,4EAA4E;IAC5E,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC3E;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,IAAI;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAYD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CA0D7E"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { createServer } from 'node:http2';
|
|
2
|
+
import { TunnelSession } from './framing.js';
|
|
3
|
+
function bearerOf(authorization) {
|
|
4
|
+
const value = Array.isArray(authorization) ? authorization[0] : authorization;
|
|
5
|
+
if (value === undefined || !value.startsWith('Bearer '))
|
|
6
|
+
return undefined;
|
|
7
|
+
return value.slice('Bearer '.length);
|
|
8
|
+
}
|
|
9
|
+
function headerValue(header) {
|
|
10
|
+
return Array.isArray(header) ? header[0] : header;
|
|
11
|
+
}
|
|
12
|
+
export function createTunnelServer(deps) {
|
|
13
|
+
const server = createServer();
|
|
14
|
+
server.on('stream', (stream, headers) => {
|
|
15
|
+
void (async () => {
|
|
16
|
+
try {
|
|
17
|
+
if (headers[':method'] !== 'CONNECT') {
|
|
18
|
+
stream.respond({ ':status': 405 });
|
|
19
|
+
stream.end();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const tunnelId = headerValue(headers['x-weavekit-tunnel']);
|
|
23
|
+
const token = bearerOf(headers.authorization);
|
|
24
|
+
if (tunnelId === undefined || token === undefined) {
|
|
25
|
+
stream.respond({ ':status': 401 });
|
|
26
|
+
stream.end();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const ok = await deps.authenticate(tunnelId, token);
|
|
30
|
+
if (!ok) {
|
|
31
|
+
stream.respond({ ':status': 403 });
|
|
32
|
+
stream.end();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const session = new TunnelSession(stream);
|
|
36
|
+
deps.registry.register(tunnelId, session);
|
|
37
|
+
stream.respond({ ':status': 200 });
|
|
38
|
+
// the stream stays open; unregister the stale session when the peer drops
|
|
39
|
+
stream.on('close', () => deps.registry.unregister(tunnelId, session));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
try {
|
|
43
|
+
stream.respond({ ':status': 500 });
|
|
44
|
+
stream.end();
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
/* already gone */
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
})();
|
|
51
|
+
});
|
|
52
|
+
const portOf = () => {
|
|
53
|
+
const addr = server.address();
|
|
54
|
+
return typeof addr === 'object' && addr !== null ? addr.port : 0;
|
|
55
|
+
};
|
|
56
|
+
return {
|
|
57
|
+
listen(port, host = '127.0.0.1') {
|
|
58
|
+
return new Promise((resolve) => {
|
|
59
|
+
server.listen(port, host, () => resolve(portOf()));
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
address() {
|
|
63
|
+
return { port: portOf() };
|
|
64
|
+
},
|
|
65
|
+
close() {
|
|
66
|
+
return new Promise((resolve) => server.close(() => resolve()));
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/runtime/tunnel/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
import type { ApprovalsBackend } from '../../core/tools/index.js';
|
|
3
|
+
export { createApprovalsPgStore, ensureApprovalsTable } from './store.js';
|
|
4
|
+
export type { ApprovalListFilter, ApprovalStatus, ApprovalsBackend, PendingApproval } from '../../core/tools/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Create the PG-backed `ApprovalsBackend` (D1 release default) and ensure the
|
|
7
|
+
* `weavekit_approvals` table exists. Injected into the tool executor by the
|
|
8
|
+
* engine assembly layer (P3). No Redis backend is implemented.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createApprovalsBackend(pool: Pool): Promise<ApprovalsBackend>;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/subsystems/approvals/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEvH;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGlF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createApprovalsPgStore, ensureApprovalsTable } from './store.js';
|
|
2
|
+
export { createApprovalsPgStore, ensureApprovalsTable } from './store.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create the PG-backed `ApprovalsBackend` (D1 release default) and ensure the
|
|
5
|
+
* `weavekit_approvals` table exists. Injected into the tool executor by the
|
|
6
|
+
* engine assembly layer (P3). No Redis backend is implemented.
|
|
7
|
+
*/
|
|
8
|
+
export async function createApprovalsBackend(pool) {
|
|
9
|
+
await ensureApprovalsTable(pool);
|
|
10
|
+
return createApprovalsPgStore(pool);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/subsystems/approvals/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG1E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAU;IACrD,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
import type { ApprovalsBackend } from '../../core/tools/index.js';
|
|
3
|
+
/** idempotent table creation + indexes (append-query-friendly: status+created, actor) */
|
|
4
|
+
export declare function ensureApprovalsTable(pool: Pool): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Postgres `ApprovalsBackend` (D1 release default; the engine's mandated DB).
|
|
7
|
+
* Parameterized, whitelisted sort, idempotent upsert (deterministic key → a
|
|
8
|
+
* resolved decision is never resurrected by a re-pending). Mirrors
|
|
9
|
+
* `subsystems/audit` conventions (pool-injected, no adapters).
|
|
10
|
+
*/
|
|
11
|
+
export declare function createApprovalsPgStore(pool: Pool): ApprovalsBackend;
|
|
12
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/subsystems/approvals/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAsC,gBAAgB,EAAmB,MAAM,2BAA2B,CAAC;AAIvH,yFAAyF;AACzF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAepE;AAkED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,CA4CnE"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
const TABLE = 'weavekit_approvals';
|
|
2
|
+
/** idempotent table creation + indexes (append-query-friendly: status+created, actor) */
|
|
3
|
+
export async function ensureApprovalsTable(pool) {
|
|
4
|
+
await pool.query(`CREATE TABLE IF NOT EXISTS ${TABLE} (
|
|
5
|
+
approval_key text PRIMARY KEY,
|
|
6
|
+
action text NOT NULL,
|
|
7
|
+
args jsonb NOT NULL,
|
|
8
|
+
actor_key text NOT NULL,
|
|
9
|
+
status text NOT NULL,
|
|
10
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
11
|
+
approved_by text,
|
|
12
|
+
resolved_at timestamptz
|
|
13
|
+
)`);
|
|
14
|
+
await pool.query(`CREATE INDEX IF NOT EXISTS ${TABLE}_status_created_idx ON ${TABLE} (status, created_at DESC)`);
|
|
15
|
+
await pool.query(`CREATE INDEX IF NOT EXISTS ${TABLE}_actor_idx ON ${TABLE} (actor_key)`);
|
|
16
|
+
}
|
|
17
|
+
function toApproval(row) {
|
|
18
|
+
return {
|
|
19
|
+
approvalKey: row.approval_key,
|
|
20
|
+
action: row.action,
|
|
21
|
+
args: (row.args ?? {}),
|
|
22
|
+
status: row.status,
|
|
23
|
+
createdAt: new Date(row.created_at),
|
|
24
|
+
actorKey: row.actor_key,
|
|
25
|
+
approvedBy: row.approved_by ?? undefined,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** sort field whitelist (never interpolate raw input into SQL) */
|
|
29
|
+
const SORT_COLUMNS = {
|
|
30
|
+
createdAt: 'created_at',
|
|
31
|
+
action: 'action',
|
|
32
|
+
actorKey: 'actor_key',
|
|
33
|
+
status: 'status',
|
|
34
|
+
approvalKey: 'approval_key',
|
|
35
|
+
};
|
|
36
|
+
function buildColumns(read) {
|
|
37
|
+
return read === 'all'
|
|
38
|
+
? 'approval_key, action, args, actor_key, status, created_at, approved_by'
|
|
39
|
+
: 'approval_key, action, args, actor_key, status, created_at, approved_by';
|
|
40
|
+
}
|
|
41
|
+
function buildWhere(filter) {
|
|
42
|
+
const clauses = [];
|
|
43
|
+
const params = [];
|
|
44
|
+
const push = (clause, value) => {
|
|
45
|
+
params.push(value);
|
|
46
|
+
clauses.push(clause.replace('?', `$${params.length}`));
|
|
47
|
+
};
|
|
48
|
+
if (filter.status !== undefined)
|
|
49
|
+
push('status = ?', filter.status);
|
|
50
|
+
if (filter.action !== undefined)
|
|
51
|
+
push('action = ?', filter.action);
|
|
52
|
+
if (filter.actorKey !== undefined)
|
|
53
|
+
push('actor_key = ?', filter.actorKey);
|
|
54
|
+
if (filter.from !== undefined)
|
|
55
|
+
push('created_at >= ?', filter.from);
|
|
56
|
+
if (filter.to !== undefined)
|
|
57
|
+
push('created_at <= ?', filter.to);
|
|
58
|
+
return { sql: clauses.length === 0 ? '' : ` WHERE ${clauses.join(' AND ')}`, params };
|
|
59
|
+
}
|
|
60
|
+
function buildOrder(filter) {
|
|
61
|
+
const key = filter.sort?.field ?? 'createdAt';
|
|
62
|
+
const column = SORT_COLUMNS[key] ?? SORT_COLUMNS.createdAt;
|
|
63
|
+
const order = filter.sort?.order === 'ASC' ? 'ASC' : 'DESC';
|
|
64
|
+
return ` ORDER BY ${column} ${order}`;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Postgres `ApprovalsBackend` (D1 release default; the engine's mandated DB).
|
|
68
|
+
* Parameterized, whitelisted sort, idempotent upsert (deterministic key → a
|
|
69
|
+
* resolved decision is never resurrected by a re-pending). Mirrors
|
|
70
|
+
* `subsystems/audit` conventions (pool-injected, no adapters).
|
|
71
|
+
*/
|
|
72
|
+
export function createApprovalsPgStore(pool) {
|
|
73
|
+
return {
|
|
74
|
+
async list(filter = {}) {
|
|
75
|
+
const where = buildWhere(filter);
|
|
76
|
+
const offset = filter.offset ?? 0;
|
|
77
|
+
const limit = filter.limit ?? 100;
|
|
78
|
+
const result = await pool.query(`SELECT ${buildColumns('all')}
|
|
79
|
+
FROM ${TABLE}${where.sql}${buildOrder(filter)}
|
|
80
|
+
LIMIT $${where.params.length + 1} OFFSET $${where.params.length + 2}`, [...where.params, limit, offset]);
|
|
81
|
+
return result.rows.map((row) => toApproval(row));
|
|
82
|
+
},
|
|
83
|
+
async get(approvalKey) {
|
|
84
|
+
const result = await pool.query(`SELECT ${buildColumns('all')} FROM ${TABLE} WHERE approval_key = $1`, [
|
|
85
|
+
approvalKey,
|
|
86
|
+
]);
|
|
87
|
+
const row = result.rows[0];
|
|
88
|
+
return row === undefined ? undefined : toApproval(row);
|
|
89
|
+
},
|
|
90
|
+
async upsert(entry) {
|
|
91
|
+
await pool.query(`INSERT INTO ${TABLE} (approval_key, action, args, actor_key, status, created_at)
|
|
92
|
+
VALUES ($1, $2, $3, $4, $5, $6)
|
|
93
|
+
ON CONFLICT (approval_key) DO NOTHING`, [entry.approvalKey, entry.action, JSON.stringify(entry.args), entry.actorKey, entry.status, entry.createdAt]);
|
|
94
|
+
},
|
|
95
|
+
async resolve(approvalKey, by, status) {
|
|
96
|
+
const result = await pool.query(`UPDATE ${TABLE}
|
|
97
|
+
SET status = $2, approved_by = $3, resolved_at = now()
|
|
98
|
+
WHERE approval_key = $1 AND status = 'pending'`, [approvalKey, status, by]);
|
|
99
|
+
return (result.rowCount ?? 0) > 0;
|
|
100
|
+
},
|
|
101
|
+
async count(filter = {}) {
|
|
102
|
+
const where = buildWhere(filter);
|
|
103
|
+
const result = await pool.query(`SELECT count(*)::int AS n FROM ${TABLE}${where.sql}`, where.params);
|
|
104
|
+
return result.rows[0]?.n ?? 0;
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/subsystems/approvals/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
import type { AuditEvent, AuditSink } from '../../core/audit/index.js';
|
|
3
|
+
import type { AuditQuery, AuditQueryResult } from './store.js';
|
|
4
|
+
export { AUDIT_ACTOR_TYPES, DATA_ACTIONS, NOOP_AUDIT_SINK } from '../../core/audit/index.js';
|
|
5
|
+
export type { AuditActorType, AuditEvent, AuditFilter, AuditSink, DataAction } from '../../core/audit/index.js';
|
|
6
|
+
export type { AuditQuery, AuditQueryResult } from './store.js';
|
|
7
|
+
/** audit engine: storage (single/batch insert) + query + lifecycle */
|
|
8
|
+
export interface AuditEngine extends AuditSink {
|
|
9
|
+
record(event: AuditEvent): Promise<void>;
|
|
10
|
+
recordBatch(events: AuditEvent[]): Promise<void>;
|
|
11
|
+
query(filter?: AuditQuery): Promise<AuditQueryResult>;
|
|
12
|
+
/** flush any buffered events (no-op for the raw store) and release resources */
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
/** create the PG-backed audit engine (idempotent table creation) */
|
|
16
|
+
export declare function createAudit(pool: Pool): Promise<AuditEngine>;
|
|
17
|
+
export interface BufferedSinkOptions {
|
|
18
|
+
/** events per batch; defaults to 50 */
|
|
19
|
+
batchSize?: number;
|
|
20
|
+
/** max time between flushes; defaults to 100ms */
|
|
21
|
+
flushMs?: number;
|
|
22
|
+
/** batch-write failure callback (default console.error) — never throws into the caller */
|
|
23
|
+
onError?: (error: Error) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* L1 process-local buffered audit sink (fire-and-forget): `record()` queues
|
|
27
|
+
* and returns immediately — audit never blocks the business critical path.
|
|
28
|
+
* Events are flushed as a single multi-row INSERT when the batch fills or the
|
|
29
|
+
* flush window elapses. `flush()` drains the queue (used by engine.close()).
|
|
30
|
+
*
|
|
31
|
+
* Upgrade path: replace `inner` with a Redis producer / S3 writer later —
|
|
32
|
+
* callers of `record()` are unchanged.
|
|
33
|
+
*/
|
|
34
|
+
export declare function createBufferedAuditSink(inner: AuditSink, options?: BufferedSinkOptions): AuditSink & {
|
|
35
|
+
flush(): Promise<void>;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/subsystems/audit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC7F,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAChH,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/D,sEAAsE;AACtE,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtD,gFAAgF;IAChF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,oEAAoE;AACpE,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAgBlE;AAED,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAKD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,mBAAwB,GAChC,SAAS,GAAG;IAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CA8FxC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { ensureAuditTable, insertAudit, insertAuditBatch, queryAudit } from './store.js';
|
|
2
|
+
export { AUDIT_ACTOR_TYPES, DATA_ACTIONS, NOOP_AUDIT_SINK } from '../../core/audit/index.js';
|
|
3
|
+
/** create the PG-backed audit engine (idempotent table creation) */
|
|
4
|
+
export async function createAudit(pool) {
|
|
5
|
+
await ensureAuditTable(pool);
|
|
6
|
+
return {
|
|
7
|
+
async record(event) {
|
|
8
|
+
await insertAudit(pool, event);
|
|
9
|
+
},
|
|
10
|
+
async recordBatch(events) {
|
|
11
|
+
await insertAuditBatch(pool, events);
|
|
12
|
+
},
|
|
13
|
+
async query(filter) {
|
|
14
|
+
return queryAudit(pool, filter);
|
|
15
|
+
},
|
|
16
|
+
async close() {
|
|
17
|
+
// raw store has no buffer
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** hard cap on retained events when the sink is unreachable — above this the oldest are dropped + reported (prevents OOM) */
|
|
22
|
+
const MAX_BUFFERED_EVENTS = 10_000;
|
|
23
|
+
/**
|
|
24
|
+
* L1 process-local buffered audit sink (fire-and-forget): `record()` queues
|
|
25
|
+
* and returns immediately — audit never blocks the business critical path.
|
|
26
|
+
* Events are flushed as a single multi-row INSERT when the batch fills or the
|
|
27
|
+
* flush window elapses. `flush()` drains the queue (used by engine.close()).
|
|
28
|
+
*
|
|
29
|
+
* Upgrade path: replace `inner` with a Redis producer / S3 writer later —
|
|
30
|
+
* callers of `record()` are unchanged.
|
|
31
|
+
*/
|
|
32
|
+
export function createBufferedAuditSink(inner, options = {}) {
|
|
33
|
+
const batchSize = options.batchSize ?? 50;
|
|
34
|
+
const flushMs = options.flushMs ?? 100;
|
|
35
|
+
const onError = options.onError ?? ((error) => console.error('audit flush failed:', error.message));
|
|
36
|
+
let buffer = [];
|
|
37
|
+
let timer;
|
|
38
|
+
let flushing;
|
|
39
|
+
let closed = false;
|
|
40
|
+
async function flushNow() {
|
|
41
|
+
const events = buffer;
|
|
42
|
+
buffer = [];
|
|
43
|
+
if (events.length === 0)
|
|
44
|
+
return;
|
|
45
|
+
try {
|
|
46
|
+
if (inner.recordBatch !== undefined) {
|
|
47
|
+
await inner.recordBatch(events);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
for (const event of events)
|
|
51
|
+
await inner.record(event);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// requeue the batch and let the next flush window retry — audit is
|
|
56
|
+
// best-effort but must not be lossy on a transient DB/network failure.
|
|
57
|
+
// If the sink stays down the buffer grows; a hard cap prevents OOM and
|
|
58
|
+
// reports through onError instead of silently dropping events.
|
|
59
|
+
buffer.unshift(...events);
|
|
60
|
+
if (buffer.length > MAX_BUFFERED_EVENTS) {
|
|
61
|
+
const dropped = buffer.splice(MAX_BUFFERED_EVENTS);
|
|
62
|
+
onError(new Error(`audit buffer overflow: dropped ${dropped.length} events (sink unreachable — last: ${error instanceof Error ? error.message : String(error)})`));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
onError(error instanceof Error ? error : new Error(String(error)));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** serialized flush: wait for an in-flight flush, then drain the queue */
|
|
70
|
+
async function runFlush() {
|
|
71
|
+
if (flushing !== undefined) {
|
|
72
|
+
await flushing;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
flushing = flushNow().finally(() => {
|
|
76
|
+
flushing = undefined;
|
|
77
|
+
});
|
|
78
|
+
await flushing;
|
|
79
|
+
}
|
|
80
|
+
if (buffer.length > 0)
|
|
81
|
+
schedule();
|
|
82
|
+
}
|
|
83
|
+
function schedule() {
|
|
84
|
+
if (closed || timer !== undefined || flushing !== undefined)
|
|
85
|
+
return;
|
|
86
|
+
timer = setTimeout(() => {
|
|
87
|
+
timer = undefined;
|
|
88
|
+
void runFlush();
|
|
89
|
+
}, flushMs);
|
|
90
|
+
// a retry timer must never keep the process alive (audit is best-effort):
|
|
91
|
+
// if the sink stays down and the app is shutting down, the buffered events
|
|
92
|
+
// are dropped on process exit and reported through onError at the last flush
|
|
93
|
+
timer.unref?.();
|
|
94
|
+
}
|
|
95
|
+
function enqueue(events) {
|
|
96
|
+
if (closed)
|
|
97
|
+
return;
|
|
98
|
+
buffer.push(...events);
|
|
99
|
+
if (buffer.length >= batchSize) {
|
|
100
|
+
void runFlush();
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
schedule();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
async record(event) {
|
|
108
|
+
enqueue([event]);
|
|
109
|
+
},
|
|
110
|
+
async recordBatch(events) {
|
|
111
|
+
enqueue(events);
|
|
112
|
+
},
|
|
113
|
+
async flush() {
|
|
114
|
+
// stop accepting/rescheduling after the final drain — a late flush must
|
|
115
|
+
// never run against a pool that engine.close() has already ended
|
|
116
|
+
closed = true;
|
|
117
|
+
if (timer !== undefined) {
|
|
118
|
+
clearTimeout(timer);
|
|
119
|
+
timer = undefined;
|
|
120
|
+
}
|
|
121
|
+
await runFlush();
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/subsystems/audit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
import type { AuditEvent, AuditQuery, AuditQueryResult } from '../../core/audit/index.js';
|
|
3
|
+
export type { AuditQuery, AuditQueryResult } from '../../core/audit/index.js';
|
|
4
|
+
/** create the append-only audit table (idempotent); `before`/`after` columns are always present (M10 D7 — replay only decides whether they are filled, so toggling the switch needs no migration) */
|
|
5
|
+
export declare function ensureAuditTable(pool: Pool): Promise<void>;
|
|
6
|
+
/** single append-only insert (writes the event's own timestamp — the audit is time-anchored to the business moment) */
|
|
7
|
+
export declare function insertAudit(pool: Pool, event: AuditEvent): Promise<void>;
|
|
8
|
+
/** batch append-only insert (single multi-row statement, one transaction) */
|
|
9
|
+
export declare function insertAuditBatch(pool: Pool, events: AuditEvent[]): Promise<void>;
|
|
10
|
+
/** parameterized query over the audit trail */
|
|
11
|
+
export declare function queryAudit(pool: Pool, query?: AuditQuery): Promise<AuditQueryResult>;
|
|
12
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/subsystems/audit/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG1F,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAgB9E,qMAAqM;AACrM,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBhE;AAED,uHAAuH;AACvH,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9E;AAED,6EAA6E;AAC7E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtF;AA0GD,+CAA+C;AAC/C,wBAAsB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,UAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2C9F"}
|