@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 @@
|
|
|
1
|
+
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/runtime/data-access/rbac.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SeqNoField } from '../../core/index.js';
|
|
2
|
+
import type { Queryable } from './types.js';
|
|
3
|
+
/** create the seq counter table if it does not exist (once per write transaction) */
|
|
4
|
+
export declare function ensureSeqTable(db: Queryable): Promise<void>;
|
|
5
|
+
/** counter bucket: format literal prefix; for cycle=year the year is baked in */
|
|
6
|
+
export declare function seqBucket(field: SeqNoField, format: string, now: Date): string;
|
|
7
|
+
/** render a sequence value through the format template ({seq}, {seq:N}, {year}/{month}/{day}) */
|
|
8
|
+
export declare function renderSeq(format: string, lastValue: number, now: Date): string;
|
|
9
|
+
/** atomically allocate the next sequence value for (object, field) and render it */
|
|
10
|
+
export declare function generateSeqNo(db: Queryable, object: string, field: SeqNoField, now: Date): Promise<string>;
|
|
11
|
+
//# sourceMappingURL=seqno.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seqno.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/seqno.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,qFAAqF;AACrF,wBAAsB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CASjE;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAI9E;AAED,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAS9E;AAED,oFAAoF;AACpF,wBAAsB,aAAa,CACjC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,MAAM,CAAC,CAUjB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const SEQ_TABLE = 'weavekit_seq';
|
|
2
|
+
/** create the seq counter table if it does not exist (once per write transaction) */
|
|
3
|
+
export async function ensureSeqTable(db) {
|
|
4
|
+
await db.query(`CREATE TABLE IF NOT EXISTS ${SEQ_TABLE} (
|
|
5
|
+
object_name text NOT NULL,
|
|
6
|
+
bucket text NOT NULL,
|
|
7
|
+
last_value bigint NOT NULL,
|
|
8
|
+
PRIMARY KEY (object_name, bucket)
|
|
9
|
+
)`);
|
|
10
|
+
}
|
|
11
|
+
/** counter bucket: format literal prefix; for cycle=year the year is baked in */
|
|
12
|
+
export function seqBucket(field, format, now) {
|
|
13
|
+
const idx = format.indexOf('{seq');
|
|
14
|
+
const prefix = idx === -1 ? format : format.slice(0, idx);
|
|
15
|
+
return field.cycle === 'year' ? prefix.replace(/\{year\}/g, String(now.getFullYear())) : prefix;
|
|
16
|
+
}
|
|
17
|
+
/** render a sequence value through the format template ({seq}, {seq:N}, {year}/{month}/{day}) */
|
|
18
|
+
export function renderSeq(format, lastValue, now) {
|
|
19
|
+
return format
|
|
20
|
+
.replace(/\{seq(?::(\d+))?\}/g, (_m, pad) => {
|
|
21
|
+
const s = String(lastValue);
|
|
22
|
+
return pad !== undefined && s.length < Number(pad) ? s.padStart(Number(pad), '0') : s;
|
|
23
|
+
})
|
|
24
|
+
.replace(/\{year\}/g, String(now.getFullYear()))
|
|
25
|
+
.replace(/\{month\}/g, String(now.getMonth() + 1))
|
|
26
|
+
.replace(/\{day\}/g, String(now.getDate()));
|
|
27
|
+
}
|
|
28
|
+
/** atomically allocate the next sequence value for (object, field) and render it */
|
|
29
|
+
export async function generateSeqNo(db, object, field, now) {
|
|
30
|
+
const format = field.format ?? '{seq}';
|
|
31
|
+
const bucket = seqBucket(field, format, now);
|
|
32
|
+
const res = await db.query(`INSERT INTO ${SEQ_TABLE} (object_name, bucket, last_value) VALUES ($1, $2, 1)
|
|
33
|
+
ON CONFLICT (object_name, bucket) DO UPDATE SET last_value = ${SEQ_TABLE}.last_value + 1
|
|
34
|
+
RETURNING last_value`, [object, bucket]);
|
|
35
|
+
return renderSeq(format, res.rows[0].last_value, now);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=seqno.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seqno.js","sourceRoot":"","sources":["../../../src/runtime/data-access/seqno.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG,cAAc,CAAC;AAEjC,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAa;IAChD,MAAM,EAAE,CAAC,KAAK,CACZ,8BAA8B,SAAS;;;;;OAKpC,CACJ,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,MAAc,EAAE,GAAS;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClG,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,SAAiB,EAAE,GAAS;IACpE,OAAO,MAAM;SACV,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAAE,EAAE,GAAuB,EAAE,EAAE;QAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC;SACD,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/C,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SACjD,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAa,EACb,MAAc,EACd,KAAiB,EACjB,GAAS;IAET,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CACxB,eAAe,SAAS;oEACwC,SAAS;0BACnD,EACtB,CAAC,MAAM,EAAE,MAAM,CAAC,CACjB,CAAC;IACF,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
export interface RestrictedSqlSubject {
|
|
3
|
+
id: string;
|
|
4
|
+
roles: string[];
|
|
5
|
+
teamId?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RestrictedSqlRls {
|
|
8
|
+
/** non-owner role to switch to via `SET LOCAL ROLE` so PostgreSQL RLS applies */
|
|
9
|
+
role: string;
|
|
10
|
+
/** the script author; carried to RLS policies via `weavekit.*` session GUCs */
|
|
11
|
+
subject: RestrictedSqlSubject;
|
|
12
|
+
}
|
|
13
|
+
export interface RestrictedSqlOptions {
|
|
14
|
+
/** maximum rows returned; defaults to 1000 */
|
|
15
|
+
maxRows?: number;
|
|
16
|
+
/** server-side statement timeout in ms; defaults to 2000 */
|
|
17
|
+
timeoutMs?: number;
|
|
18
|
+
/**
|
|
19
|
+
* row-level security wrapper: runs the query in a transaction under
|
|
20
|
+
* `SET LOCAL ROLE <role>` with `weavekit.actor_id/roles/team_id` GUCs so the
|
|
21
|
+
* table's RLS policies scope the result rows. Unset GUCs make policies deny
|
|
22
|
+
* (0 rows) — fail-closed.
|
|
23
|
+
*/
|
|
24
|
+
rls?: RestrictedSqlRls;
|
|
25
|
+
}
|
|
26
|
+
export interface RestrictedSqlResult {
|
|
27
|
+
rows: unknown[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Controlled SQL execution for sandbox scripts (`this.db.query`).
|
|
31
|
+
*
|
|
32
|
+
* Gates:
|
|
33
|
+
* - SELECT-only — any other statement is rejected before touching the pool
|
|
34
|
+
* - single statement — a `;` anywhere (after stripping one trailing) is rejected
|
|
35
|
+
* - row cap — the query is wrapped in a subquery and the outer LIMIT is
|
|
36
|
+
* clamped to `maxRows`, so a runaway result can never flood the response
|
|
37
|
+
* - server-side timeout — runs on a dedicated pooled client with
|
|
38
|
+
* `statement_timeout`, so a slow query is cancelled by PostgreSQL itself
|
|
39
|
+
* - row-level security — with `rls`, the query runs in a transaction under
|
|
40
|
+
* `SET LOCAL ROLE <role>` + `weavekit.*` GUCs, so RLS policies scope the rows
|
|
41
|
+
* (column-level `exclude` is enforced by the application-layer SQL gate before
|
|
42
|
+
* this function runs)
|
|
43
|
+
*/
|
|
44
|
+
export declare function executeRestrictedSql(pool: Pool, sql: string, params: unknown[], options?: RestrictedSqlOptions): Promise<RestrictedSqlResult>;
|
|
45
|
+
//# sourceMappingURL=sql-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-executor.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/sql-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG/B,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAUD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAqD9B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { SchemaError } from '../../core/index.js';
|
|
2
|
+
const MAX_ROWS_DEFAULT = 1000;
|
|
3
|
+
const TIMEOUT_DEFAULT = 2000;
|
|
4
|
+
const RLS_ROLE_RE = /^[a-z_][a-z0-9_]*$/;
|
|
5
|
+
function gucLiteral(value) {
|
|
6
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Controlled SQL execution for sandbox scripts (`this.db.query`).
|
|
10
|
+
*
|
|
11
|
+
* Gates:
|
|
12
|
+
* - SELECT-only — any other statement is rejected before touching the pool
|
|
13
|
+
* - single statement — a `;` anywhere (after stripping one trailing) is rejected
|
|
14
|
+
* - row cap — the query is wrapped in a subquery and the outer LIMIT is
|
|
15
|
+
* clamped to `maxRows`, so a runaway result can never flood the response
|
|
16
|
+
* - server-side timeout — runs on a dedicated pooled client with
|
|
17
|
+
* `statement_timeout`, so a slow query is cancelled by PostgreSQL itself
|
|
18
|
+
* - row-level security — with `rls`, the query runs in a transaction under
|
|
19
|
+
* `SET LOCAL ROLE <role>` + `weavekit.*` GUCs, so RLS policies scope the rows
|
|
20
|
+
* (column-level `exclude` is enforced by the application-layer SQL gate before
|
|
21
|
+
* this function runs)
|
|
22
|
+
*/
|
|
23
|
+
export async function executeRestrictedSql(pool, sql, params, options = {}) {
|
|
24
|
+
const maxRows = options.maxRows ?? MAX_ROWS_DEFAULT;
|
|
25
|
+
const timeoutMs = options.timeoutMs ?? TIMEOUT_DEFAULT;
|
|
26
|
+
if (typeof sql !== 'string') {
|
|
27
|
+
throw new SchemaError('script.query.invalid', { detail: 'sql must be a string' });
|
|
28
|
+
}
|
|
29
|
+
let trimmed = sql.trim();
|
|
30
|
+
if (trimmed.endsWith(';'))
|
|
31
|
+
trimmed = trimmed.slice(0, -1);
|
|
32
|
+
if (!/^SELECT\s/i.test(trimmed)) {
|
|
33
|
+
throw new SchemaError('script.query.invalid', { detail: 'only SELECT statements are allowed' });
|
|
34
|
+
}
|
|
35
|
+
if (trimmed.includes(';')) {
|
|
36
|
+
throw new SchemaError('script.query.invalid', { detail: 'multiple statements are not allowed' });
|
|
37
|
+
}
|
|
38
|
+
if (options.rls !== undefined && !RLS_ROLE_RE.test(options.rls.role)) {
|
|
39
|
+
throw new SchemaError('script.query.invalid', { detail: `invalid RLS role "${options.rls.role}"` });
|
|
40
|
+
}
|
|
41
|
+
const client = await pool.connect();
|
|
42
|
+
let inTransaction = false;
|
|
43
|
+
try {
|
|
44
|
+
await client.query('BEGIN');
|
|
45
|
+
inTransaction = true;
|
|
46
|
+
await client.query(`SET LOCAL statement_timeout = ${Math.max(1, Math.floor(timeoutMs))}`);
|
|
47
|
+
if (options.rls !== undefined) {
|
|
48
|
+
const { role, subject } = options.rls;
|
|
49
|
+
await client.query(`SET LOCAL ROLE ${role}`);
|
|
50
|
+
await client.query(`SET LOCAL weavekit.actor_id = ${gucLiteral(subject.id)}`);
|
|
51
|
+
await client.query(`SET LOCAL weavekit.roles = ${gucLiteral(subject.roles.join(','))}`);
|
|
52
|
+
if (subject.teamId !== undefined) {
|
|
53
|
+
await client.query(`SET LOCAL weavekit.team_id = ${gucLiteral(subject.teamId)}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const result = await client.query(`SELECT * FROM (${trimmed}) AS __restricted__ LIMIT $${params.length + 1}`, [...params, maxRows]);
|
|
57
|
+
await client.query('COMMIT');
|
|
58
|
+
inTransaction = false;
|
|
59
|
+
return { rows: result.rows };
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
if (inTransaction) {
|
|
63
|
+
try {
|
|
64
|
+
await client.query('ROLLBACK');
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// the client may be broken after a timeout — release and move on
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
client.release();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=sql-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-executor.js","sourceRoot":"","sources":["../../../src/runtime/data-access/sql-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Locale, ObjectRegistry } from '../../core/index.js';
|
|
2
|
+
import type { SqlAnalysis } from '../sql-analyzer/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* RBAC gates for restricted SQL (`this.db.query`), run before execution.
|
|
5
|
+
*
|
|
6
|
+
* Layered on top of the SQL analyzer's authoritative table/column references
|
|
7
|
+
* and the core RBAC decision layer (`resolvePermission` / `buildRowScope`):
|
|
8
|
+
*
|
|
9
|
+
* 1. **read permission** — the subject must have a read permission on every
|
|
10
|
+
* referenced object table (deterministic error instead of a silent 0 rows).
|
|
11
|
+
* 2. **team scope** — a `team`-read object requires `subject.teamId`.
|
|
12
|
+
* 3. **field `exclude`** (fine-grained, column-level) — a query that references
|
|
13
|
+
* an excluded column of a field-restricted object is rejected:
|
|
14
|
+
* - a star (`*` / `t.*`) over a field-restricted object
|
|
15
|
+
* - a qualified column reference (`t.excluded`) to an excluded field
|
|
16
|
+
* - a bare column that matches an excluded field of any referenced
|
|
17
|
+
* field-restricted object (conservative — we cannot resolve bare columns
|
|
18
|
+
* to a table without schema knowledge, so we over-block rather than leak)
|
|
19
|
+
*
|
|
20
|
+
* Row-level scoping is handled separately by PostgreSQL RLS (see the C2 design);
|
|
21
|
+
* this module is the permission + column boundary in the application layer.
|
|
22
|
+
* All failures are `script.query.denied` (403) except missing `teamId`, which is
|
|
23
|
+
* the existing `rbac.teamId.missing`.
|
|
24
|
+
*/
|
|
25
|
+
export interface SqlGateOptions {
|
|
26
|
+
analysis: SqlAnalysis;
|
|
27
|
+
registry: ObjectRegistry;
|
|
28
|
+
/** subject role names (resolved permission derives the read scope + exclusions) */
|
|
29
|
+
roles: readonly string[];
|
|
30
|
+
/** subject team id, required when a referenced object's read scope is `team` */
|
|
31
|
+
teamId?: string;
|
|
32
|
+
locale?: Locale;
|
|
33
|
+
}
|
|
34
|
+
export declare function enforceSqlGates(options: SqlGateOptions): void;
|
|
35
|
+
//# sourceMappingURL=sql-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-gate.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/sql-gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAoB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,mFAAmF;IACnF,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAiE7D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { SchemaError, resolvePermission } from '../../core/index.js';
|
|
2
|
+
import { READ_SCOPES } from '../../core/index.js';
|
|
3
|
+
function denied(object, detail, locale) {
|
|
4
|
+
throw new SchemaError('script.query.denied', { object, detail }, locale);
|
|
5
|
+
}
|
|
6
|
+
export function enforceSqlGates(options) {
|
|
7
|
+
const { analysis, registry, roles, teamId, locale } = options;
|
|
8
|
+
// fail-closed: every referenced table must be an engine-managed object.
|
|
9
|
+
// A table outside the registry has no RBAC policy and no RLS strategy, so
|
|
10
|
+
// letting the query through would bypass the permission model entirely
|
|
11
|
+
// (e.g. system tables, other schemas, or the customer's own ad-hoc tables).
|
|
12
|
+
for (const table of analysis.tables) {
|
|
13
|
+
if (registry.get(table) === undefined) {
|
|
14
|
+
denied(table, 'table is not a managed object', locale);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
// referenced object tables (registry-known) → resolved permission
|
|
18
|
+
const objects = new Map();
|
|
19
|
+
for (const table of analysis.tables) {
|
|
20
|
+
const def = registry.get(table);
|
|
21
|
+
if (def !== undefined)
|
|
22
|
+
objects.set(table, def);
|
|
23
|
+
}
|
|
24
|
+
// excluded fields per referenced object (empty set = not field-restricted)
|
|
25
|
+
const excludedByTable = new Map();
|
|
26
|
+
for (const [name, def] of objects) {
|
|
27
|
+
const p = resolvePermission(def, roles);
|
|
28
|
+
if (p === undefined || p.read === undefined) {
|
|
29
|
+
denied(name, 'role has no read permission on this object', locale);
|
|
30
|
+
}
|
|
31
|
+
if (p.read === READ_SCOPES.TEAM && teamId === undefined) {
|
|
32
|
+
throw new SchemaError('rbac.teamId.missing', { object: name }, locale);
|
|
33
|
+
}
|
|
34
|
+
if (p.exclude !== undefined && p.exclude.length > 0) {
|
|
35
|
+
excludedByTable.set(name, new Set(p.exclude));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (excludedByTable.size === 0)
|
|
39
|
+
return;
|
|
40
|
+
for (const ref of analysis.columnRefs) {
|
|
41
|
+
if (ref.star) {
|
|
42
|
+
// star: qualified star resolves to one table; bare star covers all FROM tables
|
|
43
|
+
const tables = ref.qualifier !== undefined ? [analysis.resolvers[ref.qualifier]] : analysis.tables;
|
|
44
|
+
for (const table of tables) {
|
|
45
|
+
if (table !== undefined && excludedByTable.has(table)) {
|
|
46
|
+
denied(table, 'field-restricted object cannot be selected with *', locale);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (ref.qualifier !== undefined) {
|
|
51
|
+
const table = analysis.resolvers[ref.qualifier];
|
|
52
|
+
if (table !== undefined) {
|
|
53
|
+
const excluded = excludedByTable.get(table);
|
|
54
|
+
if (excluded !== undefined && excluded.has(ref.column)) {
|
|
55
|
+
denied(table, `field "${ref.column}" is restricted for this role`, locale);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// bare column — conservative: if it matches an excluded field of any
|
|
61
|
+
// referenced field-restricted object, reject (it may be that object's column)
|
|
62
|
+
for (const [table, excluded] of excludedByTable) {
|
|
63
|
+
if (excluded.has(ref.column)) {
|
|
64
|
+
denied(table, `field "${ref.column}" is restricted for this role`, locale);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=sql-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-gate.js","sourceRoot":"","sources":["../../../src/runtime/data-access/sql-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DataAccessContext } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* `withTx` — cross-operation atomic execution (D1). Leases a pooled client,
|
|
4
|
+
* opens a transaction and re-enters the callback with a context that carries
|
|
5
|
+
* that connection as `client`, so nested data-access calls reuse the
|
|
6
|
+
* transaction instead of opening their own (see `DefaultObjectDataAccess`
|
|
7
|
+
* owned-connection handling). Commits on success, rolls back on throw,
|
|
8
|
+
* releases in `finally`. Nested calls are safe: when the context already
|
|
9
|
+
* carries a `client`, the callback runs directly inside the outer transaction.
|
|
10
|
+
*/
|
|
11
|
+
export declare function withTx<T>(ctx: DataAccessContext, fn: (txCtx: DataAccessContext) => Promise<T>): Promise<T>;
|
|
12
|
+
//# sourceMappingURL=tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/tx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAC5B,GAAG,EAAE,iBAAiB,EACtB,EAAE,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,CAAC,CAiBZ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `withTx` — cross-operation atomic execution (D1). Leases a pooled client,
|
|
3
|
+
* opens a transaction and re-enters the callback with a context that carries
|
|
4
|
+
* that connection as `client`, so nested data-access calls reuse the
|
|
5
|
+
* transaction instead of opening their own (see `DefaultObjectDataAccess`
|
|
6
|
+
* owned-connection handling). Commits on success, rolls back on throw,
|
|
7
|
+
* releases in `finally`. Nested calls are safe: when the context already
|
|
8
|
+
* carries a `client`, the callback runs directly inside the outer transaction.
|
|
9
|
+
*/
|
|
10
|
+
export async function withTx(ctx, fn) {
|
|
11
|
+
if (ctx.client !== undefined) {
|
|
12
|
+
return fn(ctx);
|
|
13
|
+
}
|
|
14
|
+
const client = await ctx.pool.connect();
|
|
15
|
+
const txCtx = { ...ctx, client };
|
|
16
|
+
try {
|
|
17
|
+
await client.query('BEGIN');
|
|
18
|
+
const result = await fn(txCtx);
|
|
19
|
+
await client.query('COMMIT');
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
await client.query('ROLLBACK');
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
client.release();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=tx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/runtime/data-access/tx.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,GAAsB,EACtB,EAA4C;IAE5C,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAsB,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Pool, PoolClient } from "pg";
|
|
2
|
+
import type { Locale } from "../../core/index.js";
|
|
3
|
+
import type { ObjectRegistry } from "../../core/index.js";
|
|
4
|
+
import type { RbacSubject } from "../../core/index.js";
|
|
5
|
+
import type { FilterOp, SortDir } from "./values.js";
|
|
6
|
+
/** pool or pooled client — anything that can run parameterized queries */
|
|
7
|
+
export type Queryable = Pool | PoolClient;
|
|
8
|
+
export type FilterValue = {
|
|
9
|
+
[op in FilterOp]?: unknown;
|
|
10
|
+
};
|
|
11
|
+
/** a single equality/operator object filter — conditions across fields are AND'd */
|
|
12
|
+
export type FilterGroup = {
|
|
13
|
+
[field: string]: unknown | FilterValue;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Filter contract (M5 REST `filter` JSON):
|
|
17
|
+
* - plain object form (AND across fields), e.g. `{ status: 'open', amount: { gte: 100 } }`
|
|
18
|
+
* - OR across groups via the reserved top-level `$or` key:
|
|
19
|
+
* `{ $or: [ { status: 'open' }, { amount: { gte: 100 } } ] }` → `(status = 'open' OR amount >= 100)`
|
|
20
|
+
* `$or` groups AND with any top-level field conditions and with the RBAC row scope.
|
|
21
|
+
*/
|
|
22
|
+
export type Filter = FilterGroup & {
|
|
23
|
+
$or?: FilterGroup[];
|
|
24
|
+
};
|
|
25
|
+
export interface Sort {
|
|
26
|
+
field: string;
|
|
27
|
+
dir: SortDir;
|
|
28
|
+
}
|
|
29
|
+
export interface FindOptions {
|
|
30
|
+
filter?: Filter;
|
|
31
|
+
sort?: Sort[];
|
|
32
|
+
/** rows per page; defaults to PAGINATION.DEFAULT_LIMIT, capped at PAGINATION.MAX_LIMIT */
|
|
33
|
+
limit?: number;
|
|
34
|
+
/** rows to skip; defaults to PAGINATION.DEFAULT_OFFSET */
|
|
35
|
+
offset?: number;
|
|
36
|
+
/** column projection whitelist */
|
|
37
|
+
fields?: string[];
|
|
38
|
+
/** columns always excluded from the projection (RBAC fields.exclude) */
|
|
39
|
+
exclude?: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface FindResult<T = Record<string, unknown>> {
|
|
42
|
+
rows: T[];
|
|
43
|
+
total: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Execution context for data-access operations. `rowScope` is the RBAC
|
|
47
|
+
* row-level filter (own/all) injected by the RBAC layer; consumers may
|
|
48
|
+
* leave it unset to access all rows. `subject` is the authenticated identity
|
|
49
|
+
* the RBAC layer decides for; absent = unrestricted. `client` threads an
|
|
50
|
+
* outer transaction: when set, write operations reuse the connection and the
|
|
51
|
+
* surrounding transaction instead of BEGIN/COMMIT/ROLLBACK themselves
|
|
52
|
+
* (see `runtime/data-access/tx.ts`).
|
|
53
|
+
*/
|
|
54
|
+
export interface DataAccessContext {
|
|
55
|
+
pool: Pool;
|
|
56
|
+
registry: ObjectRegistry;
|
|
57
|
+
/** extra WHERE fragment (AND'd), injected by the RBAC layer for own/team/all scope */
|
|
58
|
+
rowScope?: {
|
|
59
|
+
sql: string;
|
|
60
|
+
params: unknown[];
|
|
61
|
+
};
|
|
62
|
+
/** authenticated identity for RBAC decisions; absent = no enforcement */
|
|
63
|
+
subject?: RbacSubject;
|
|
64
|
+
locale?: Locale;
|
|
65
|
+
/** outer transaction connection; present inside `withTx` (skips nested BEGIN/COMMIT/release) */
|
|
66
|
+
client?: PoolClient;
|
|
67
|
+
/**
|
|
68
|
+
* channel for non-fatal write warnings — afterUpdate/afterDelete script hooks
|
|
69
|
+
* fail after the write is committed; the messages are delivered here so the
|
|
70
|
+
* API layer can surface them (e.g. a `warnings` array on the response)
|
|
71
|
+
*/
|
|
72
|
+
onWarnings?: (warnings: string[]) => void;
|
|
73
|
+
}
|
|
74
|
+
/** contract for the controlled object data-access layer */
|
|
75
|
+
export interface ObjectDataAccess {
|
|
76
|
+
find<T = Record<string, unknown>>(objectName: string, opts: FindOptions, ctx: DataAccessContext): Promise<FindResult<T>>;
|
|
77
|
+
findOne<T = Record<string, unknown>>(objectName: string, id: string, ctx: DataAccessContext): Promise<T | null>;
|
|
78
|
+
create<T = Record<string, unknown>>(objectName: string, data: Record<string, unknown>, ctx: DataAccessContext): Promise<T>;
|
|
79
|
+
update<T = Record<string, unknown>>(objectName: string, id: string, changes: Record<string, unknown>, ctx: DataAccessContext): Promise<T>;
|
|
80
|
+
delete(objectName: string, id: string, ctx: DataAccessContext): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/data-access/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Locale, ObjectDefinition, ObjectRegistry } from '../../core/index.js';
|
|
2
|
+
import type { Queryable } from './types.js';
|
|
3
|
+
import { type WriteMode } from './values.js';
|
|
4
|
+
export interface ValidateRecordOptions {
|
|
5
|
+
pool: Queryable;
|
|
6
|
+
registry: ObjectRegistry;
|
|
7
|
+
locale?: Locale;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Validate a record before write:
|
|
11
|
+
* - rejects unknown fields and writes to read-only (system/formula/seq_no) fields
|
|
12
|
+
* - enforces required (create), field type, enum/min/max/length/regex
|
|
13
|
+
* - verifies relation / multiRelation targets exist
|
|
14
|
+
* - rejects nested details on update (child rows are managed via the child object CRUD)
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateRecord(object: ObjectDefinition, data: Record<string, unknown>, mode: WriteMode, options: ValidateRecordOptions): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIhG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ1D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA0HD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
|