@weave-kit/engine 0.5.0 → 0.7.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/CHANGELOG.md +76 -0
- package/README.md +7 -7
- package/dist/adapters/auth/index.d.ts +4 -2
- package/dist/adapters/auth/index.d.ts.map +1 -1
- package/dist/adapters/auth/index.js +1 -0
- package/dist/adapters/auth/index.js.map +1 -1
- package/dist/adapters/auth/source.d.ts +4 -4
- package/dist/adapters/auth/source.d.ts.map +1 -1
- package/dist/adapters/auth/subject.d.ts +22 -0
- package/dist/adapters/auth/subject.d.ts.map +1 -0
- package/dist/adapters/auth/subject.js +42 -0
- package/dist/adapters/auth/subject.js.map +1 -0
- package/dist/adapters/auth/verify.d.ts +12 -0
- package/dist/adapters/auth/verify.d.ts.map +1 -0
- package/dist/adapters/auth/verify.js +2 -0
- package/dist/adapters/auth/verify.js.map +1 -0
- package/dist/adapters/events/index.d.ts +2 -1
- package/dist/adapters/events/index.d.ts.map +1 -1
- package/dist/adapters/events/index.js +2 -1
- package/dist/adapters/events/index.js.map +1 -1
- package/dist/adapters/mcp/generate.d.ts +3 -3
- package/dist/adapters/mcp/generate.d.ts.map +1 -1
- package/dist/adapters/mcp/generate.js +34 -11
- package/dist/adapters/mcp/generate.js.map +1 -1
- package/dist/adapters/mcp/guardrails.d.ts +1 -1
- package/dist/adapters/mcp/http.d.ts +3 -1
- package/dist/adapters/mcp/http.d.ts.map +1 -1
- package/dist/adapters/mcp/http.js +2 -2
- package/dist/adapters/mcp/http.js.map +1 -1
- package/dist/adapters/mcp/index.d.ts +13 -4
- package/dist/adapters/mcp/index.d.ts.map +1 -1
- package/dist/adapters/mcp/index.js +12 -8
- package/dist/adapters/mcp/index.js.map +1 -1
- package/dist/adapters/mcp/session.d.ts +5 -5
- package/dist/adapters/mcp/session.d.ts.map +1 -1
- package/dist/adapters/mcp/tools.d.ts +6 -0
- package/dist/adapters/mcp/tools.d.ts.map +1 -1
- package/dist/adapters/mcp/tools.js +38 -14
- package/dist/adapters/mcp/tools.js.map +1 -1
- package/dist/adapters/mcp/types.d.ts +3 -1
- package/dist/adapters/mcp/types.d.ts.map +1 -1
- package/dist/adapters/mcp/types.js +1 -1
- package/dist/adapters/mcp/types.js.map +1 -1
- package/dist/adapters/openapi/document.d.ts.map +1 -1
- package/dist/adapters/openapi/document.js +72 -2
- package/dist/adapters/openapi/document.js.map +1 -1
- package/dist/adapters/openapi/schema.d.ts.map +1 -1
- package/dist/adapters/openapi/schema.js +40 -4
- package/dist/adapters/openapi/schema.js.map +1 -1
- package/dist/adapters/openapi/types.d.ts +1 -0
- package/dist/adapters/openapi/types.d.ts.map +1 -1
- package/dist/adapters/openapi/types.js +2 -0
- package/dist/adapters/openapi/types.js.map +1 -1
- package/dist/adapters/rest/approvals.d.ts +2 -2
- package/dist/adapters/rest/approvals.js +2 -2
- package/dist/adapters/rest/audit.d.ts +2 -2
- package/dist/adapters/rest/audit.js +2 -2
- package/dist/adapters/rest/common.d.ts +3 -3
- package/dist/adapters/rest/common.d.ts.map +1 -1
- package/dist/adapters/rest/common.js +1 -1
- package/dist/adapters/rest/guardrails.d.ts +1 -1
- package/dist/adapters/rest/guardrails.js +1 -1
- package/dist/adapters/rest/identities.d.ts +4 -4
- package/dist/adapters/rest/identities.d.ts.map +1 -1
- package/dist/adapters/rest/identities.js +3 -3
- package/dist/adapters/rest/identities.js.map +1 -1
- package/dist/adapters/rest/identityAdmin.d.ts +18 -0
- package/dist/adapters/rest/identityAdmin.d.ts.map +1 -0
- package/dist/adapters/rest/identityAdmin.js +58 -0
- package/dist/adapters/rest/identityAdmin.js.map +1 -0
- package/dist/adapters/rest/index.d.ts +4 -0
- package/dist/adapters/rest/index.d.ts.map +1 -1
- package/dist/adapters/rest/index.js +3 -0
- package/dist/adapters/rest/index.js.map +1 -1
- package/dist/adapters/rest/metadata.d.ts +1 -1
- package/dist/adapters/rest/metadata.js +1 -1
- package/dist/adapters/rest/pages.d.ts +1 -1
- package/dist/adapters/rest/pages.d.ts.map +1 -1
- package/dist/adapters/rest/permissions.d.ts +1 -1
- package/dist/adapters/rest/permissions.js +1 -1
- package/dist/adapters/rest/plugin.d.ts +2 -2
- package/dist/adapters/rest/plugin.d.ts.map +1 -1
- package/dist/adapters/rest/schemas.d.ts +1 -1
- package/dist/adapters/rest/schemas.d.ts.map +1 -1
- package/dist/adapters/rest/workflow.d.ts +15 -0
- package/dist/adapters/rest/workflow.d.ts.map +1 -0
- package/dist/adapters/rest/workflow.js +89 -0
- package/dist/adapters/rest/workflow.js.map +1 -0
- package/dist/adapters/rest/workflowSource.d.ts +15 -0
- package/dist/adapters/rest/workflowSource.d.ts.map +1 -0
- package/dist/adapters/rest/workflowSource.js +63 -0
- package/dist/adapters/rest/workflowSource.js.map +1 -0
- package/dist/cli/commands/build.js +1 -1
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/connect.d.ts +1 -1
- package/dist/cli/commands/default-view.d.ts +2 -2
- package/dist/cli/commands/default-view.js +2 -2
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +18 -9
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/identity.d.ts +15 -0
- package/dist/cli/commands/identity.d.ts.map +1 -0
- package/dist/cli/commands/identity.js +115 -0
- package/dist/cli/commands/identity.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -1
- package/dist/cli/commands/introspect.js +23 -0
- package/dist/cli/commands/introspect.js.map +1 -1
- package/dist/cli/commands/mcp-config.js +1 -1
- package/dist/cli/commands/mcp-config.js.map +1 -1
- package/dist/cli/commands/migrate.js +2 -2
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/module.d.ts +2 -2
- package/dist/cli/commands/module.d.ts.map +1 -1
- package/dist/cli/commands/module.js +2 -2
- package/dist/cli/commands/module.js.map +1 -1
- package/dist/cli/commands/object-create.d.ts.map +1 -1
- package/dist/cli/commands/object-create.js +15 -15
- package/dist/cli/commands/object-create.js.map +1 -1
- package/dist/cli/commands/workflow-close.d.ts +9 -0
- package/dist/cli/commands/workflow-close.d.ts.map +1 -0
- package/dist/cli/commands/workflow-close.js +48 -0
- package/dist/cli/commands/workflow-close.js.map +1 -0
- package/dist/cli/commands/workflow-migrate.d.ts +11 -0
- package/dist/cli/commands/workflow-migrate.d.ts.map +1 -0
- package/dist/cli/commands/workflow-migrate.js +120 -0
- package/dist/cli/commands/workflow-migrate.js.map +1 -0
- package/dist/cli/commands/workflow-open.d.ts +10 -0
- package/dist/cli/commands/workflow-open.d.ts.map +1 -0
- package/dist/cli/commands/workflow-open.js +112 -0
- package/dist/cli/commands/workflow-open.js.map +1 -0
- package/dist/cli/commands/workflow-starter.d.ts +10 -0
- package/dist/cli/commands/workflow-starter.d.ts.map +1 -0
- package/dist/cli/commands/workflow-starter.js +29 -0
- package/dist/cli/commands/workflow-starter.js.map +1 -0
- package/dist/cli/commands/workflow-switch.d.ts +10 -0
- package/dist/cli/commands/workflow-switch.d.ts.map +1 -0
- package/dist/cli/commands/workflow-switch.js +60 -0
- package/dist/cli/commands/workflow-switch.js.map +1 -0
- package/dist/cli/commands/workflow-upgrade.d.ts +12 -0
- package/dist/cli/commands/workflow-upgrade.d.ts.map +1 -0
- package/dist/cli/commands/workflow-upgrade.js +116 -0
- package/dist/cli/commands/workflow-upgrade.js.map +1 -0
- package/dist/cli/index.js +72 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/project-types/manifest.d.ts +25 -0
- package/dist/cli/project-types/manifest.d.ts.map +1 -0
- package/dist/cli/project-types/manifest.js +40 -0
- package/dist/cli/project-types/manifest.js.map +1 -0
- package/dist/cli/ready-screen.js +1 -1
- package/dist/cli/ready-screen.js.map +1 -1
- package/dist/cli/scaffold.d.ts.map +1 -1
- package/dist/cli/scaffold.js +22 -34
- package/dist/cli/scaffold.js.map +1 -1
- package/dist/cli/types/commands.d.ts +46 -0
- package/dist/cli/types/commands.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +1 -1
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/types/values.d.ts +9 -0
- package/dist/cli/types/values.d.ts.map +1 -1
- package/dist/cli/types/values.js +9 -0
- package/dist/cli/types/values.js.map +1 -1
- package/dist/core/api/error.d.ts.map +1 -1
- package/dist/core/api/error.js +7 -4
- package/dist/core/api/error.js.map +1 -1
- package/dist/core/audit/types.d.ts +4 -2
- package/dist/core/audit/types.d.ts.map +1 -1
- package/dist/core/audit/types.js +2 -0
- package/dist/core/audit/types.js.map +1 -1
- package/dist/core/formula/validate.d.ts.map +1 -1
- package/dist/core/formula/validate.js +6 -0
- package/dist/core/formula/validate.js.map +1 -1
- package/dist/core/i18n/ar.d.ts.map +1 -1
- package/dist/core/i18n/ar.js +38 -4
- package/dist/core/i18n/ar.js.map +1 -1
- package/dist/core/i18n/de.d.ts.map +1 -1
- package/dist/core/i18n/de.js +38 -4
- package/dist/core/i18n/de.js.map +1 -1
- package/dist/core/i18n/en.d.ts +39 -5
- package/dist/core/i18n/en.d.ts.map +1 -1
- package/dist/core/i18n/en.js +39 -5
- package/dist/core/i18n/en.js.map +1 -1
- package/dist/core/i18n/es.d.ts.map +1 -1
- package/dist/core/i18n/es.js +38 -4
- package/dist/core/i18n/es.js.map +1 -1
- package/dist/core/i18n/fr.d.ts.map +1 -1
- package/dist/core/i18n/fr.js +38 -4
- package/dist/core/i18n/fr.js.map +1 -1
- package/dist/core/i18n/hi.d.ts.map +1 -1
- package/dist/core/i18n/hi.js +38 -4
- package/dist/core/i18n/hi.js.map +1 -1
- package/dist/core/i18n/id.d.ts.map +1 -1
- package/dist/core/i18n/id.js +38 -4
- package/dist/core/i18n/id.js.map +1 -1
- package/dist/core/i18n/ja.d.ts.map +1 -1
- package/dist/core/i18n/ja.js +38 -4
- package/dist/core/i18n/ja.js.map +1 -1
- package/dist/core/i18n/ko.d.ts.map +1 -1
- package/dist/core/i18n/ko.js +38 -4
- package/dist/core/i18n/ko.js.map +1 -1
- package/dist/core/i18n/pt.d.ts.map +1 -1
- package/dist/core/i18n/pt.js +38 -4
- package/dist/core/i18n/pt.js.map +1 -1
- package/dist/core/i18n/ru.d.ts.map +1 -1
- package/dist/core/i18n/ru.js +38 -4
- package/dist/core/i18n/ru.js.map +1 -1
- package/dist/core/i18n/vi.d.ts.map +1 -1
- package/dist/core/i18n/vi.js +38 -4
- package/dist/core/i18n/vi.js.map +1 -1
- package/dist/core/i18n/zh-hant.d.ts.map +1 -1
- package/dist/core/i18n/zh-hant.js +38 -4
- package/dist/core/i18n/zh-hant.js.map +1 -1
- package/dist/core/i18n/zh.d.ts.map +1 -1
- package/dist/core/i18n/zh.js +39 -5
- package/dist/core/i18n/zh.js.map +1 -1
- package/dist/core/object/describe.d.ts +34 -3
- package/dist/core/object/describe.d.ts.map +1 -1
- package/dist/core/object/describe.js +48 -8
- package/dist/core/object/describe.js.map +1 -1
- package/dist/core/object/gen-types.d.ts.map +1 -1
- package/dist/core/object/gen-types.js +12 -1
- package/dist/core/object/gen-types.js.map +1 -1
- package/dist/core/object/graph.d.ts.map +1 -1
- package/dist/core/object/graph.js +52 -22
- package/dist/core/object/graph.js.map +1 -1
- package/dist/core/object/index.d.ts +5 -1
- package/dist/core/object/index.d.ts.map +1 -1
- package/dist/core/object/index.js +5 -1
- package/dist/core/object/index.js.map +1 -1
- package/dist/core/object/migrations.d.ts.map +1 -1
- package/dist/core/object/migrations.js +39 -0
- package/dist/core/object/migrations.js.map +1 -1
- package/dist/core/object/parse.d.ts +7 -0
- package/dist/core/object/parse.d.ts.map +1 -1
- package/dist/core/object/parse.js +32 -1
- package/dist/core/object/parse.js.map +1 -1
- package/dist/core/object/record-key.d.ts +19 -0
- package/dist/core/object/record-key.d.ts.map +1 -0
- package/dist/core/object/record-key.js +100 -0
- package/dist/core/object/record-key.js.map +1 -0
- package/dist/core/object/schema-version.d.ts +1 -1
- package/dist/core/object/schema-version.js +1 -1
- package/dist/core/object/system-objects.d.ts +16 -0
- package/dist/core/object/system-objects.d.ts.map +1 -0
- package/dist/core/object/system-objects.js +72 -0
- package/dist/core/object/system-objects.js.map +1 -0
- package/dist/core/object/validate/field.d.ts.map +1 -1
- package/dist/core/object/validate/field.js +235 -35
- package/dist/core/object/validate/field.js.map +1 -1
- package/dist/core/object/validate/formulas.d.ts.map +1 -1
- package/dist/core/object/validate/formulas.js +6 -0
- package/dist/core/object/validate/formulas.js.map +1 -1
- package/dist/core/object/validate/object.d.ts +2 -0
- package/dist/core/object/validate/object.d.ts.map +1 -1
- package/dist/core/object/validate/object.js +51 -19
- package/dist/core/object/validate/object.js.map +1 -1
- package/dist/core/object/validate/permissions.d.ts.map +1 -1
- package/dist/core/object/validate/permissions.js +4 -0
- package/dist/core/object/validate/permissions.js.map +1 -1
- package/dist/core/object/validate/primitives.d.ts +0 -1
- package/dist/core/object/validate/primitives.d.ts.map +1 -1
- package/dist/core/object/validate/primitives.js +1 -2
- package/dist/core/object/validate/primitives.js.map +1 -1
- package/dist/core/object/validate/workflow.d.ts +10 -0
- package/dist/core/object/validate/workflow.d.ts.map +1 -0
- package/dist/core/object/validate/workflow.js +143 -0
- package/dist/core/object/validate/workflow.js.map +1 -0
- package/dist/core/object/workflow-hash.d.ts +10 -0
- package/dist/core/object/workflow-hash.d.ts.map +1 -0
- package/dist/core/object/workflow-hash.js +27 -0
- package/dist/core/object/workflow-hash.js.map +1 -0
- package/dist/core/object/workflow-migrations.d.ts +27 -0
- package/dist/core/object/workflow-migrations.d.ts.map +1 -0
- package/dist/core/object/workflow-migrations.js +125 -0
- package/dist/core/object/workflow-migrations.js.map +1 -0
- package/dist/core/provider/event/index.d.ts +1 -1
- package/dist/core/provider/event/index.d.ts.map +1 -1
- package/dist/core/provider/event/index.js.map +1 -1
- package/dist/core/provider/event/types.d.ts +17 -2
- package/dist/core/provider/event/types.d.ts.map +1 -1
- package/dist/core/provider/event/types.js +2 -1
- package/dist/core/provider/event/types.js.map +1 -1
- package/dist/core/provider/identity/directory.d.ts +90 -0
- package/dist/core/provider/identity/directory.d.ts.map +1 -0
- package/dist/core/provider/identity/directory.js +3 -0
- package/dist/core/provider/identity/directory.js.map +1 -0
- package/dist/core/provider/identity/index.d.ts +5 -1
- package/dist/core/provider/identity/index.d.ts.map +1 -1
- package/dist/core/provider/identity/index.js +2 -1
- package/dist/core/provider/identity/index.js.map +1 -1
- package/dist/core/provider/identity/source.d.ts +22 -0
- package/dist/core/provider/identity/source.d.ts.map +1 -0
- package/dist/core/provider/identity/source.js +3 -0
- package/dist/core/provider/identity/source.js.map +1 -0
- package/dist/core/provider/identity/types.d.ts +62 -7
- package/dist/core/provider/identity/types.d.ts.map +1 -1
- package/dist/core/provider/identity/types.js +13 -0
- package/dist/core/provider/identity/types.js.map +1 -1
- package/dist/core/proxy/types.d.ts +4 -4
- package/dist/core/proxy/types.d.ts.map +1 -1
- package/dist/core/rbac/authorize.d.ts +10 -9
- package/dist/core/rbac/authorize.d.ts.map +1 -1
- package/dist/core/rbac/authorize.js +23 -18
- package/dist/core/rbac/authorize.js.map +1 -1
- package/dist/core/rbac/details.d.ts +33 -0
- package/dist/core/rbac/details.d.ts.map +1 -0
- package/dist/core/rbac/details.js +74 -0
- package/dist/core/rbac/details.js.map +1 -0
- package/dist/core/rbac/fields.d.ts +2 -1
- package/dist/core/rbac/fields.d.ts.map +1 -1
- package/dist/core/rbac/fields.js +3 -2
- package/dist/core/rbac/fields.js.map +1 -1
- package/dist/core/rbac/index.d.ts +3 -2
- package/dist/core/rbac/index.d.ts.map +1 -1
- package/dist/core/rbac/index.js +2 -1
- package/dist/core/rbac/index.js.map +1 -1
- package/dist/core/rbac/resolve.d.ts +3 -1
- package/dist/core/rbac/resolve.d.ts.map +1 -1
- package/dist/core/rbac/resolve.js +17 -9
- package/dist/core/rbac/resolve.js.map +1 -1
- package/dist/core/rbac/rls.d.ts +6 -0
- package/dist/core/rbac/rls.d.ts.map +1 -1
- package/dist/core/rbac/rls.js +52 -7
- package/dist/core/rbac/rls.js.map +1 -1
- package/dist/core/rbac/rowScope.d.ts +13 -6
- package/dist/core/rbac/rowScope.d.ts.map +1 -1
- package/dist/core/rbac/rowScope.js +88 -16
- package/dist/core/rbac/rowScope.js.map +1 -1
- package/dist/core/rbac/types.d.ts +6 -7
- package/dist/core/rbac/types.d.ts.map +1 -1
- package/dist/core/script/types.d.ts +1 -1
- package/dist/core/script/types.d.ts.map +1 -1
- package/dist/core/storage/diff.d.ts +4 -2
- package/dist/core/storage/diff.d.ts.map +1 -1
- package/dist/core/storage/diff.js +20 -17
- package/dist/core/storage/diff.js.map +1 -1
- package/dist/core/storage/index.d.ts +7 -1
- package/dist/core/storage/index.d.ts.map +1 -1
- package/dist/core/storage/index.js +6 -1
- package/dist/core/storage/index.js.map +1 -1
- package/dist/core/storage/inspect.d.ts +12 -3
- package/dist/core/storage/inspect.d.ts.map +1 -1
- package/dist/core/storage/inspect.js +39 -22
- package/dist/core/storage/inspect.js.map +1 -1
- package/dist/core/storage/introspect.d.ts +9 -2
- package/dist/core/storage/introspect.d.ts.map +1 -1
- package/dist/core/storage/introspect.js +100 -43
- package/dist/core/storage/introspect.js.map +1 -1
- package/dist/core/storage/link-table.d.ts +47 -0
- package/dist/core/storage/link-table.d.ts.map +1 -0
- package/dist/core/storage/link-table.js +110 -0
- package/dist/core/storage/link-table.js.map +1 -0
- package/dist/core/storage/map.d.ts.map +1 -1
- package/dist/core/storage/map.js +135 -81
- package/dist/core/storage/map.js.map +1 -1
- package/dist/core/storage/meta.d.ts +6 -3
- package/dist/core/storage/meta.d.ts.map +1 -1
- package/dist/core/storage/meta.js +9 -5
- package/dist/core/storage/meta.js.map +1 -1
- package/dist/core/storage/migrate.d.ts.map +1 -1
- package/dist/core/storage/migrate.js +144 -11
- package/dist/core/storage/migrate.js.map +1 -1
- package/dist/core/storage/record-key-sql.d.ts +19 -0
- package/dist/core/storage/record-key-sql.d.ts.map +1 -0
- package/dist/core/storage/record-key-sql.js +43 -0
- package/dist/core/storage/record-key-sql.js.map +1 -0
- package/dist/core/storage/record-meta.d.ts +68 -0
- package/dist/core/storage/record-meta.d.ts.map +1 -0
- package/dist/core/storage/record-meta.js +108 -0
- package/dist/core/storage/record-meta.js.map +1 -0
- package/dist/core/storage/report.d.ts.map +1 -1
- package/dist/core/storage/report.js +17 -7
- package/dist/core/storage/report.js.map +1 -1
- package/dist/core/storage/sql-literals.d.ts +9 -0
- package/dist/core/storage/sql-literals.d.ts.map +1 -0
- package/dist/core/storage/sql-literals.js +13 -0
- package/dist/core/storage/sql-literals.js.map +1 -0
- package/dist/core/storage/system-tables.d.ts +44 -0
- package/dist/core/storage/system-tables.d.ts.map +1 -0
- package/dist/core/storage/system-tables.js +268 -0
- package/dist/core/storage/system-tables.js.map +1 -0
- package/dist/core/tools/policies.d.ts +2 -2
- package/dist/core/tools/policies.js +2 -2
- package/dist/core/tools/types.d.ts +6 -6
- package/dist/core/tools/types.d.ts.map +1 -1
- package/dist/core/tools/values.d.ts +5 -0
- package/dist/core/tools/values.d.ts.map +1 -1
- package/dist/core/tools/values.js +9 -1
- package/dist/core/tools/values.js.map +1 -1
- package/dist/core/types/currency.d.ts +9 -0
- package/dist/core/types/currency.d.ts.map +1 -0
- package/dist/core/types/currency.js +28 -0
- package/dist/core/types/currency.js.map +1 -0
- package/dist/core/types/field-type.d.ts +4 -1
- package/dist/core/types/field-type.d.ts.map +1 -1
- package/dist/core/types/fields.d.ts +105 -19
- package/dist/core/types/fields.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +8 -6
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +4 -3
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/object.d.ts +18 -1
- package/dist/core/types/object.d.ts.map +1 -1
- package/dist/core/types/permission.d.ts +5 -0
- package/dist/core/types/permission.d.ts.map +1 -1
- package/dist/core/types/primaryField.d.ts +6 -1
- package/dist/core/types/primaryField.d.ts.map +1 -1
- package/dist/core/types/primaryField.js +8 -1
- package/dist/core/types/primaryField.js.map +1 -1
- package/dist/core/types/registry.d.ts +6 -4
- package/dist/core/types/registry.d.ts.map +1 -1
- package/dist/core/types/registry.js +40 -30
- package/dist/core/types/registry.js.map +1 -1
- package/dist/core/types/values.d.ts +97 -27
- package/dist/core/types/values.d.ts.map +1 -1
- package/dist/core/types/values.js +64 -29
- package/dist/core/types/values.js.map +1 -1
- package/dist/core/types/workflow.d.ts +140 -0
- package/dist/core/types/workflow.d.ts.map +1 -0
- package/dist/core/types/workflow.js +49 -0
- package/dist/core/types/workflow.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/event/bus.d.ts.map +1 -1
- package/dist/infrastructure/event/bus.js +14 -0
- package/dist/infrastructure/event/bus.js.map +1 -1
- package/dist/infrastructure/identity.d.ts +2 -2
- package/dist/infrastructure/identity.d.ts.map +1 -1
- package/dist/infrastructure/identity.js.map +1 -1
- package/dist/layout-format.d.ts +6 -6
- package/dist/layout-format.js +4 -4
- package/dist/runtime/data-access/builder.d.ts +15 -5
- package/dist/runtime/data-access/builder.d.ts.map +1 -1
- package/dist/runtime/data-access/builder.js +222 -30
- package/dist/runtime/data-access/builder.js.map +1 -1
- package/dist/runtime/data-access/details.d.ts.map +1 -1
- package/dist/runtime/data-access/details.js +7 -2
- package/dist/runtime/data-access/details.js.map +1 -1
- package/dist/runtime/data-access/formula.d.ts +11 -3
- package/dist/runtime/data-access/formula.d.ts.map +1 -1
- package/dist/runtime/data-access/formula.js +82 -19
- package/dist/runtime/data-access/formula.js.map +1 -1
- package/dist/runtime/data-access/index.d.ts +1 -1
- package/dist/runtime/data-access/index.d.ts.map +1 -1
- package/dist/runtime/data-access/index.js +1 -1
- package/dist/runtime/data-access/index.js.map +1 -1
- package/dist/runtime/data-access/link.d.ts +7 -0
- package/dist/runtime/data-access/link.d.ts.map +1 -0
- package/dist/runtime/data-access/link.js +80 -0
- package/dist/runtime/data-access/link.js.map +1 -0
- package/dist/runtime/data-access/query.d.ts +48 -3
- package/dist/runtime/data-access/query.d.ts.map +1 -1
- package/dist/runtime/data-access/query.js +381 -45
- package/dist/runtime/data-access/query.js.map +1 -1
- package/dist/runtime/data-access/rbac.d.ts.map +1 -1
- package/dist/runtime/data-access/rbac.js +134 -16
- package/dist/runtime/data-access/rbac.js.map +1 -1
- package/dist/runtime/data-access/seqno.d.ts +0 -2
- package/dist/runtime/data-access/seqno.d.ts.map +1 -1
- package/dist/runtime/data-access/seqno.js +0 -9
- package/dist/runtime/data-access/seqno.js.map +1 -1
- package/dist/runtime/data-access/sql-executor.d.ts +13 -3
- package/dist/runtime/data-access/sql-executor.d.ts.map +1 -1
- package/dist/runtime/data-access/sql-executor.js +20 -14
- package/dist/runtime/data-access/sql-executor.js.map +1 -1
- package/dist/runtime/data-access/sql-gate.d.ts +4 -4
- package/dist/runtime/data-access/sql-gate.d.ts.map +1 -1
- package/dist/runtime/data-access/sql-gate.js +5 -5
- package/dist/runtime/data-access/sql-gate.js.map +1 -1
- package/dist/runtime/data-access/tx.d.ts +1 -1
- package/dist/runtime/data-access/tx.js +1 -1
- package/dist/runtime/data-access/types.d.ts +31 -3
- package/dist/runtime/data-access/types.d.ts.map +1 -1
- package/dist/runtime/data-access/validate.d.ts.map +1 -1
- package/dist/runtime/data-access/validate.js +79 -15
- package/dist/runtime/data-access/validate.js.map +1 -1
- package/dist/runtime/data-access/workflow.d.ts +146 -0
- package/dist/runtime/data-access/workflow.d.ts.map +1 -0
- package/dist/runtime/data-access/workflow.js +636 -0
- package/dist/runtime/data-access/workflow.js.map +1 -0
- package/dist/runtime/engine.d.ts +89 -14
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +123 -26
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/fieldtypes/loader.d.ts.map +1 -1
- package/dist/runtime/fieldtypes/loader.js +12 -1
- package/dist/runtime/fieldtypes/loader.js.map +1 -1
- package/dist/runtime/git/guardrailSource.d.ts +1 -1
- package/dist/runtime/git/index.d.ts +4 -2
- package/dist/runtime/git/index.d.ts.map +1 -1
- package/dist/runtime/git/index.js +2 -1
- package/dist/runtime/git/index.js.map +1 -1
- package/dist/runtime/git/layoutSource.d.ts +1 -1
- package/dist/runtime/git/loader.d.ts.map +1 -1
- package/dist/runtime/git/loader.js +18 -6
- package/dist/runtime/git/loader.js.map +1 -1
- package/dist/runtime/git/pageCatalog.d.ts +1 -1
- package/dist/runtime/git/schemaChange.d.ts +22 -0
- package/dist/runtime/git/schemaChange.d.ts.map +1 -1
- package/dist/runtime/git/schemaChange.js +28 -2
- package/dist/runtime/git/schemaChange.js.map +1 -1
- package/dist/runtime/git/schemaSource.d.ts +1 -1
- package/dist/runtime/git/sourceFile.d.ts +1 -1
- package/dist/runtime/git/sourceFile.js +1 -1
- package/dist/runtime/git/sourceTransaction.d.ts +1 -1
- package/dist/runtime/git/workflowSource.d.ts +40 -0
- package/dist/runtime/git/workflowSource.d.ts.map +1 -0
- package/dist/runtime/git/workflowSource.js +45 -0
- package/dist/runtime/git/workflowSource.js.map +1 -0
- package/dist/runtime/identity/admin.d.ts +18 -0
- package/dist/runtime/identity/admin.d.ts.map +1 -0
- package/dist/runtime/identity/admin.js +27 -0
- package/dist/runtime/identity/admin.js.map +1 -0
- package/dist/runtime/identity/directory.d.ts +12 -0
- package/dist/runtime/identity/directory.d.ts.map +1 -0
- package/dist/runtime/identity/directory.js +22 -0
- package/dist/runtime/identity/directory.js.map +1 -0
- package/dist/runtime/identity/index.d.ts +11 -0
- package/dist/runtime/identity/index.d.ts.map +1 -0
- package/dist/runtime/identity/index.js +8 -0
- package/dist/runtime/identity/index.js.map +1 -0
- package/dist/runtime/identity/resolve.d.ts +10 -0
- package/dist/runtime/identity/resolve.d.ts.map +1 -0
- package/dist/runtime/identity/resolve.js +16 -0
- package/dist/runtime/identity/resolve.js.map +1 -0
- package/dist/runtime/identity/sources/function.d.ts +10 -0
- package/dist/runtime/identity/sources/function.d.ts.map +1 -0
- package/dist/runtime/identity/sources/function.js +9 -0
- package/dist/runtime/identity/sources/function.js.map +1 -0
- package/dist/runtime/identity/sources/pg.d.ts +42 -0
- package/dist/runtime/identity/sources/pg.d.ts.map +1 -0
- package/dist/runtime/identity/sources/pg.js +121 -0
- package/dist/runtime/identity/sources/pg.js.map +1 -0
- package/dist/runtime/identity/store.d.ts +27 -0
- package/dist/runtime/identity/store.d.ts.map +1 -0
- package/dist/runtime/identity/store.js +139 -0
- package/dist/runtime/identity/store.js.map +1 -0
- package/dist/runtime/identity/sync.d.ts +34 -0
- package/dist/runtime/identity/sync.d.ts.map +1 -0
- package/dist/runtime/identity/sync.js +149 -0
- package/dist/runtime/identity/sync.js.map +1 -0
- package/dist/runtime/metadata/cache.d.ts +0 -2
- package/dist/runtime/metadata/cache.d.ts.map +1 -1
- package/dist/runtime/metadata/cache.js +0 -11
- package/dist/runtime/metadata/cache.js.map +1 -1
- package/dist/runtime/metadata/index.d.ts +1 -1
- package/dist/runtime/metadata/index.d.ts.map +1 -1
- package/dist/runtime/metadata/index.js +1 -1
- package/dist/runtime/metadata/index.js.map +1 -1
- package/dist/runtime/record-meta/index.d.ts +2 -0
- package/dist/runtime/record-meta/index.d.ts.map +1 -0
- package/dist/runtime/record-meta/index.js +2 -0
- package/dist/runtime/record-meta/index.js.map +1 -0
- package/dist/runtime/record-meta/store.d.ts +43 -0
- package/dist/runtime/record-meta/store.d.ts.map +1 -0
- package/dist/runtime/record-meta/store.js +88 -0
- package/dist/runtime/record-meta/store.js.map +1 -0
- package/dist/runtime/sql-analyzer/index.d.ts.map +1 -1
- package/dist/runtime/sql-analyzer/index.js +59 -0
- package/dist/runtime/sql-analyzer/index.js.map +1 -1
- package/dist/runtime/tools/executor.d.ts +11 -11
- package/dist/runtime/tools/executor.d.ts.map +1 -1
- package/dist/runtime/tools/executor.js +6 -6
- package/dist/runtime/tools/executor.js.map +1 -1
- package/dist/runtime/tools/index.d.ts +2 -0
- package/dist/runtime/tools/index.d.ts.map +1 -1
- package/dist/runtime/tools/index.js +1 -0
- package/dist/runtime/tools/index.js.map +1 -1
- package/dist/runtime/tools/policies.d.ts +22 -5
- package/dist/runtime/tools/policies.d.ts.map +1 -1
- package/dist/runtime/tools/policies.js +42 -12
- package/dist/runtime/tools/policies.js.map +1 -1
- package/dist/runtime/tunnel/connector.d.ts +1 -1
- package/dist/runtime/tunnel/forwarder.js +1 -1
- package/dist/runtime/tunnel/framing.d.ts +1 -1
- package/dist/runtime/tunnel/server.d.ts +1 -1
- package/dist/subsystems/approvals/index.d.ts +4 -4
- package/dist/subsystems/approvals/index.d.ts.map +1 -1
- package/dist/subsystems/approvals/index.js +5 -6
- package/dist/subsystems/approvals/index.js.map +1 -1
- package/dist/subsystems/approvals/store.d.ts +1 -3
- package/dist/subsystems/approvals/store.d.ts.map +1 -1
- package/dist/subsystems/approvals/store.js +1 -16
- package/dist/subsystems/approvals/store.js.map +1 -1
- package/dist/subsystems/audit/index.d.ts +1 -1
- package/dist/subsystems/audit/index.d.ts.map +1 -1
- package/dist/subsystems/audit/index.js +2 -3
- package/dist/subsystems/audit/index.js.map +1 -1
- package/dist/subsystems/audit/store.d.ts +0 -2
- package/dist/subsystems/audit/store.d.ts.map +1 -1
- package/dist/subsystems/audit/store.js +0 -21
- package/dist/subsystems/audit/store.js.map +1 -1
- package/dist/subsystems/quota/store.d.ts +9 -0
- package/dist/subsystems/quota/store.d.ts.map +1 -1
- package/dist/subsystems/quota/store.js +0 -8
- package/dist/subsystems/quota/store.js.map +1 -1
- package/dist/subsystems/script/backend/isolated-vm.js +4 -4
- package/dist/subsystems/script/backend/types.d.ts +2 -2
- package/dist/subsystems/script/backend/types.d.ts.map +1 -1
- package/dist/subsystems/script/bridge.d.ts +1 -1
- package/dist/subsystems/script/bridge.d.ts.map +1 -1
- package/dist/subsystems/script/bridge.js +6 -4
- package/dist/subsystems/script/bridge.js.map +1 -1
- package/dist/subsystems/script/dispatcher.d.ts.map +1 -1
- package/dist/subsystems/script/dispatcher.js +3 -1
- package/dist/subsystems/script/dispatcher.js.map +1 -1
- package/dist/subsystems/workflow/index.d.ts +4 -0
- package/dist/subsystems/workflow/index.d.ts.map +1 -0
- package/dist/subsystems/workflow/index.js +3 -0
- package/dist/subsystems/workflow/index.js.map +1 -0
- package/dist/subsystems/workflow/scheduler.d.ts +27 -0
- package/dist/subsystems/workflow/scheduler.d.ts.map +1 -0
- package/dist/subsystems/workflow/scheduler.js +109 -0
- package/dist/subsystems/workflow/scheduler.js.map +1 -0
- package/dist/subsystems/workflow/store.d.ts +10 -0
- package/dist/subsystems/workflow/store.d.ts.map +1 -0
- package/dist/subsystems/workflow/store.js +44 -0
- package/dist/subsystems/workflow/store.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../../src/core/storage/introspect.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExF,OAAO,KAAK,EAA8B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../../src/core/storage/introspect.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExF,OAAO,KAAK,EAA8B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,cAAc,CAAC;AAI9D,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpD;AAiOD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAE,oBAAyB,GAAG,gBAAgB,CAyFlH"}
|
|
@@ -2,6 +2,7 @@ import { DEFAULT_LOCALE } from '../i18n/index.js';
|
|
|
2
2
|
import { validateObject } from '../object/validate.js';
|
|
3
3
|
import { DEFAULT_FIELD_TYPE_REGISTRY } from '../types/index.js';
|
|
4
4
|
import { FIELD_TYPES, ON_DELETE_ACTIONS } from '../types/values.js';
|
|
5
|
+
import { isLinkTable } from './link-table.js';
|
|
5
6
|
import { pgTypeMatches } from './map.js';
|
|
6
7
|
/** collect `reverse` hints from the registry */
|
|
7
8
|
function buildReverseMatchers(registry) {
|
|
@@ -16,23 +17,27 @@ const SNAKE_CASE = /^[a-z][a-z0-9_]*$/;
|
|
|
16
17
|
/** PostgreSQL `information_schema.columns.data_type` → engine field type (primitives only) */
|
|
17
18
|
const PG_TO_FIELD = {
|
|
18
19
|
'character varying': FIELD_TYPES.STRING,
|
|
19
|
-
character: FIELD_TYPES.
|
|
20
|
-
bpchar: FIELD_TYPES.
|
|
20
|
+
character: FIELD_TYPES.CHAR,
|
|
21
|
+
bpchar: FIELD_TYPES.CHAR,
|
|
21
22
|
text: FIELD_TYPES.TEXT,
|
|
22
23
|
integer: FIELD_TYPES.INTEGER,
|
|
23
|
-
smallint: FIELD_TYPES.
|
|
24
|
-
bigint: FIELD_TYPES.
|
|
24
|
+
smallint: FIELD_TYPES.SMALLINT,
|
|
25
|
+
bigint: FIELD_TYPES.BIGINT,
|
|
25
26
|
numeric: FIELD_TYPES.NUMBER,
|
|
26
27
|
decimal: FIELD_TYPES.NUMBER,
|
|
27
|
-
real: FIELD_TYPES.
|
|
28
|
-
'double precision': FIELD_TYPES.
|
|
28
|
+
real: FIELD_TYPES.REAL,
|
|
29
|
+
'double precision': FIELD_TYPES.DOUBLE,
|
|
29
30
|
boolean: FIELD_TYPES.BOOLEAN,
|
|
30
|
-
'timestamp with time zone': FIELD_TYPES.
|
|
31
|
-
'timestamp without time zone': FIELD_TYPES.
|
|
31
|
+
'timestamp with time zone': FIELD_TYPES.TIMESTAMPTZ,
|
|
32
|
+
'timestamp without time zone': FIELD_TYPES.TIMESTAMP,
|
|
32
33
|
date: FIELD_TYPES.DATE,
|
|
34
|
+
time: FIELD_TYPES.TIME,
|
|
35
|
+
'time without time zone': FIELD_TYPES.TIME,
|
|
36
|
+
'time with time zone': FIELD_TYPES.TIMETZ,
|
|
37
|
+
interval: FIELD_TYPES.INTERVAL,
|
|
33
38
|
json: FIELD_TYPES.JSON,
|
|
34
|
-
jsonb: FIELD_TYPES.
|
|
35
|
-
uuid: FIELD_TYPES.
|
|
39
|
+
jsonb: FIELD_TYPES.JSONB,
|
|
40
|
+
uuid: FIELD_TYPES.UUID,
|
|
36
41
|
};
|
|
37
42
|
/** readable on-delete action (from `inspect.ts`) → engine `ON_DELETE_ACTIONS` (restrict is the default and omitted) */
|
|
38
43
|
const FK_ON_DELETE = {
|
|
@@ -43,7 +48,9 @@ const FK_ON_DELETE = {
|
|
|
43
48
|
function normalizeDefault(raw, type) {
|
|
44
49
|
const trimmed = raw.trim();
|
|
45
50
|
if (/^now\(\)$/i.test(trimmed) || /^current_timestamp$/i.test(trimmed)) {
|
|
46
|
-
return type === FIELD_TYPES.
|
|
51
|
+
return type === FIELD_TYPES.TIMESTAMPTZ || type === FIELD_TYPES.TIMESTAMP || type === FIELD_TYPES.DATE
|
|
52
|
+
? { value: 'now' }
|
|
53
|
+
: { unsupported: true };
|
|
47
54
|
}
|
|
48
55
|
// any other function call (nextval(...), gen_random_uuid(), ...) is not representable
|
|
49
56
|
if (/\(/.test(trimmed))
|
|
@@ -58,16 +65,25 @@ function normalizeDefault(raw, type) {
|
|
|
58
65
|
if (literal === 'false')
|
|
59
66
|
return { value: false };
|
|
60
67
|
return { unsupported: true };
|
|
68
|
+
case FIELD_TYPES.SMALLINT:
|
|
61
69
|
case FIELD_TYPES.INTEGER:
|
|
62
70
|
case FIELD_TYPES.NUMBER:
|
|
71
|
+
case FIELD_TYPES.REAL:
|
|
72
|
+
case FIELD_TYPES.DOUBLE:
|
|
63
73
|
case FIELD_TYPES.CURRENCY: {
|
|
64
74
|
const n = Number(literal);
|
|
65
75
|
return Number.isFinite(n) ? { value: n } : { unsupported: true };
|
|
66
76
|
}
|
|
67
|
-
case FIELD_TYPES.
|
|
77
|
+
case FIELD_TYPES.TIMESTAMPTZ:
|
|
78
|
+
case FIELD_TYPES.TIMESTAMP:
|
|
68
79
|
case FIELD_TYPES.DATE:
|
|
80
|
+
case FIELD_TYPES.TIME:
|
|
81
|
+
case FIELD_TYPES.TIMETZ:
|
|
82
|
+
case FIELD_TYPES.UUID:
|
|
83
|
+
case FIELD_TYPES.BIGINT:
|
|
69
84
|
case FIELD_TYPES.STRING:
|
|
70
85
|
case FIELD_TYPES.TEXT:
|
|
86
|
+
case FIELD_TYPES.CHAR:
|
|
71
87
|
case FIELD_TYPES.ENUM:
|
|
72
88
|
case FIELD_TYPES.FIRST_NAME:
|
|
73
89
|
case FIELD_TYPES.LAST_NAME:
|
|
@@ -80,13 +96,13 @@ function normalizeDefault(raw, type) {
|
|
|
80
96
|
}
|
|
81
97
|
}
|
|
82
98
|
/** map one PostgreSQL column to an engine field (undefined = unsupported; a warning is pushed) */
|
|
83
|
-
function mapColumn(col, table, warnings, matchers = []) {
|
|
99
|
+
function mapColumn(col, table, warnings, matchers = [], textArraySamples) {
|
|
84
100
|
const base = { name: col.name };
|
|
85
101
|
if (col.comment !== undefined)
|
|
86
102
|
base.labels = { [DEFAULT_LOCALE]: col.comment };
|
|
87
103
|
const required = col.isNullable ? undefined : true;
|
|
88
104
|
const unique = table.uniqueColumns?.includes(col.name) === true && !table.pk.includes(col.name);
|
|
89
|
-
const fk = table.fks.find((f) => f.
|
|
105
|
+
const fk = table.fks.find((f) => f.columns.length === 1 && f.columns[0] === col.name);
|
|
90
106
|
if (fk !== undefined) {
|
|
91
107
|
if (!SNAKE_CASE.test(fk.refTable)) {
|
|
92
108
|
warnings.push(`column "${table.name}.${col.name}": FK target table "${fk.refTable}" is not a valid object name — skipped`);
|
|
@@ -105,6 +121,8 @@ function mapColumn(col, table, warnings, matchers = []) {
|
|
|
105
121
|
// user-defined enum (labels come from the detail inspect)
|
|
106
122
|
if (col.enumLabels !== undefined && col.enumLabels.length > 0) {
|
|
107
123
|
const field = { ...base, type: FIELD_TYPES.ENUM, options: [...col.enumLabels] };
|
|
124
|
+
if (col.udtName !== undefined)
|
|
125
|
+
field.enumType = col.udtName;
|
|
108
126
|
if (required === true)
|
|
109
127
|
field.required = true;
|
|
110
128
|
if (unique)
|
|
@@ -119,7 +137,31 @@ function mapColumn(col, table, warnings, matchers = []) {
|
|
|
119
137
|
return field;
|
|
120
138
|
}
|
|
121
139
|
if (col.udtName?.startsWith('_') === true || col.dataType === 'ARRAY') {
|
|
122
|
-
|
|
140
|
+
// array of a native enum → static enum multiple (exact)
|
|
141
|
+
if (col.arrayEnum !== undefined) {
|
|
142
|
+
const field = {
|
|
143
|
+
...base,
|
|
144
|
+
type: FIELD_TYPES.ENUM,
|
|
145
|
+
multiple: true,
|
|
146
|
+
enumType: col.arrayEnum.type,
|
|
147
|
+
options: [...col.arrayEnum.labels],
|
|
148
|
+
};
|
|
149
|
+
if (required === true)
|
|
150
|
+
field.required = true;
|
|
151
|
+
return field;
|
|
152
|
+
}
|
|
153
|
+
// text-like array → enum multiple scaffolded from sampled values
|
|
154
|
+
const elem = col.udtName?.replace(/^_/, '');
|
|
155
|
+
const textLike = elem === 'text' || elem === 'varchar' || elem === 'bpchar';
|
|
156
|
+
const samples = textLike ? textArraySamples?.get(`${table.name}.${col.name}`) : undefined;
|
|
157
|
+
if (samples !== undefined && samples.length > 0) {
|
|
158
|
+
const field = { ...base, type: FIELD_TYPES.ENUM, multiple: true, options: [...samples] };
|
|
159
|
+
if (required === true)
|
|
160
|
+
field.required = true;
|
|
161
|
+
warnings.push(`column "${table.name}.${col.name}": text[] reverse-modeled as enum multiple from sampled values — review (may be multiRelation/image/plain array)`);
|
|
162
|
+
return field;
|
|
163
|
+
}
|
|
164
|
+
warnings.push(`column "${table.name}.${col.name}": array "${col.dataType}" not modelable — define by hand (enum multiple / multiRelation)`);
|
|
123
165
|
return undefined;
|
|
124
166
|
}
|
|
125
167
|
const fieldType = PG_TO_FIELD[col.dataType];
|
|
@@ -144,9 +186,7 @@ function mapColumn(col, table, warnings, matchers = []) {
|
|
|
144
186
|
.join(', ')}) — keeping "${fieldType}"`);
|
|
145
187
|
}
|
|
146
188
|
if (col.dataType === 'bigint')
|
|
147
|
-
warnings.push(`column "${table.name}.${col.name}": bigint
|
|
148
|
-
if (col.dataType === 'uuid')
|
|
149
|
-
warnings.push(`column "${table.name}.${col.name}": uuid mapped to string (no engine uuid type)`);
|
|
189
|
+
warnings.push(`column "${table.name}.${col.name}": bigint value is returned as a string`);
|
|
150
190
|
const field = { ...base, type: resolvedType };
|
|
151
191
|
if (required === true)
|
|
152
192
|
field.required = true;
|
|
@@ -154,6 +194,11 @@ function mapColumn(col, table, warnings, matchers = []) {
|
|
|
154
194
|
field.unique = true;
|
|
155
195
|
if (resolvedType === FIELD_TYPES.NUMBER && col.numericPrecision !== undefined && col.numericPrecision !== null) {
|
|
156
196
|
field.precision = col.numericPrecision;
|
|
197
|
+
if (col.numericScale !== undefined && col.numericScale !== null)
|
|
198
|
+
field.scale = col.numericScale;
|
|
199
|
+
}
|
|
200
|
+
if (resolvedType === FIELD_TYPES.CHAR && col.characterMaximumLength !== undefined && col.characterMaximumLength !== null) {
|
|
201
|
+
field.length = col.characterMaximumLength;
|
|
157
202
|
}
|
|
158
203
|
if (col.columnDefault !== null) {
|
|
159
204
|
const def = normalizeDefault(col.columnDefault, fieldType);
|
|
@@ -167,8 +212,9 @@ function mapColumn(col, table, warnings, matchers = []) {
|
|
|
167
212
|
/**
|
|
168
213
|
* Reverse-model live PostgreSQL tables into engine object drafts. Pure (no I/O):
|
|
169
214
|
* feed it an `inspectSchema(pool, { detail: true })` map. Objects that fail
|
|
170
|
-
* validation (
|
|
171
|
-
*
|
|
215
|
+
* validation (missing PK, non-snake_case names, unsupported PK type) are
|
|
216
|
+
* reported in `skipped`, never silently dropped. Composite primary keys are
|
|
217
|
+
* reverse-modeled as several `primary: true` fields, in live key order.
|
|
172
218
|
*/
|
|
173
219
|
export function mapToSchema(tables, options = {}) {
|
|
174
220
|
const include = options.include === undefined ? undefined : new Set(options.include);
|
|
@@ -184,6 +230,11 @@ export function mapToSchema(tables, options = {}) {
|
|
|
184
230
|
continue;
|
|
185
231
|
if (exclude?.has(name) === true)
|
|
186
232
|
continue;
|
|
233
|
+
// engine-owned multiRelation link tables are plumbing, never customer objects
|
|
234
|
+
if (isLinkTable(name)) {
|
|
235
|
+
skipped.push({ table: name, reason: 'engine-owned multiRelation link table' });
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
187
238
|
const table = tables.get(name);
|
|
188
239
|
if (table === undefined)
|
|
189
240
|
continue;
|
|
@@ -191,23 +242,12 @@ export function mapToSchema(tables, options = {}) {
|
|
|
191
242
|
skipped.push({ table: name, reason: 'table name is not snake_case (object name must match ^[a-z][a-z0-9_]*$)' });
|
|
192
243
|
continue;
|
|
193
244
|
}
|
|
194
|
-
if (table.pk.length
|
|
195
|
-
skipped.push({
|
|
196
|
-
table: name,
|
|
197
|
-
reason: table.pk.length === 0 ? 'missing primary key' : 'composite primary key not supported',
|
|
198
|
-
});
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
|
-
const pkName = table.pk[0];
|
|
202
|
-
const pkCol = table.columns.find((c) => c.name === pkName);
|
|
203
|
-
if (pkCol === undefined) {
|
|
204
|
-
skipped.push({ table: name, reason: `primary key column "${pkName}" not found` });
|
|
245
|
+
if (table.pk.length === 0) {
|
|
246
|
+
skipped.push({ table: name, reason: 'missing primary key' });
|
|
205
247
|
continue;
|
|
206
248
|
}
|
|
207
249
|
let badColumn;
|
|
208
250
|
for (const col of table.columns) {
|
|
209
|
-
if (col.name === pkName)
|
|
210
|
-
continue;
|
|
211
251
|
if (!SNAKE_CASE.test(col.name)) {
|
|
212
252
|
badColumn = col.name;
|
|
213
253
|
break;
|
|
@@ -217,17 +257,33 @@ export function mapToSchema(tables, options = {}) {
|
|
|
217
257
|
skipped.push({ table: name, reason: `column name "${badColumn}" is not snake_case` });
|
|
218
258
|
continue;
|
|
219
259
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
260
|
+
// primary fields first, in the live primary-key order (single or composite)
|
|
261
|
+
const pkFields = [];
|
|
262
|
+
let pkBad;
|
|
263
|
+
for (const pkName of table.pk) {
|
|
264
|
+
const pkCol = table.columns.find((c) => c.name === pkName);
|
|
265
|
+
if (pkCol === undefined) {
|
|
266
|
+
pkBad = `primary key column "${pkName}" not found`;
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
const mapped = mapColumn(pkCol, table, warnings, matchers, options.textArraySamples);
|
|
270
|
+
if (mapped === undefined) {
|
|
271
|
+
pkBad = `primary key column "${pkName}" type not supported`;
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
mapped.primary = true;
|
|
275
|
+
pkFields.push(mapped);
|
|
276
|
+
}
|
|
277
|
+
if (pkBad !== undefined) {
|
|
278
|
+
skipped.push({ table: name, reason: pkBad });
|
|
223
279
|
continue;
|
|
224
280
|
}
|
|
225
|
-
|
|
226
|
-
const fields = [
|
|
281
|
+
const pkSet = new Set(table.pk);
|
|
282
|
+
const fields = [...pkFields];
|
|
227
283
|
for (const col of table.columns) {
|
|
228
|
-
if (col.name
|
|
284
|
+
if (pkSet.has(col.name))
|
|
229
285
|
continue;
|
|
230
|
-
const mapped = mapColumn(col, table, warnings, matchers);
|
|
286
|
+
const mapped = mapColumn(col, table, warnings, matchers, options.textArraySamples);
|
|
231
287
|
if (mapped !== undefined)
|
|
232
288
|
fields.push(mapped);
|
|
233
289
|
}
|
|
@@ -238,10 +294,11 @@ export function mapToSchema(tables, options = {}) {
|
|
|
238
294
|
const validated = validateObject(schema, { nameHint: name, fieldTypes });
|
|
239
295
|
objects.push({ name, table: name, schema: validated });
|
|
240
296
|
for (const f of validated.fields) {
|
|
241
|
-
|
|
297
|
+
const marker = f;
|
|
298
|
+
if (f.name === 'owner_id' && marker.ownership !== true)
|
|
242
299
|
suggestions.push(`"${name}.owner_id": consider marking ownership: true`);
|
|
243
|
-
if (f.name === '
|
|
244
|
-
suggestions.push(`"${name}.
|
|
300
|
+
if (f.name === 'department_id' && marker.department !== true)
|
|
301
|
+
suggestions.push(`"${name}.department_id": consider marking department: true`);
|
|
245
302
|
}
|
|
246
303
|
}
|
|
247
304
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../../src/core/storage/introspect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../../src/core/storage/introspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { FIELD_TYPES, type FieldTypeRegistry, type ObjectDefinition } from '../types/index.js';
|
|
2
|
+
import type { ExpectedTable } from './diff.js';
|
|
3
|
+
/**
|
|
4
|
+
* Engine-owned many-to-many **link tables** backing `multiRelation` fields.
|
|
5
|
+
*
|
|
6
|
+
* A `multiRelation` field stores no column on its owner table; instead one link
|
|
7
|
+
* table holds the (owner, target) pairs and an order index. Columns mirror the
|
|
8
|
+
* two primary keys (so both sides get a **real composite foreign key** with
|
|
9
|
+
* `ON DELETE CASCADE`), which requires the multi-column FK support in
|
|
10
|
+
* `ExpectedFk`/`ActualFk`.
|
|
11
|
+
*
|
|
12
|
+
* Link tables are engine plumbing (like `weavekit_record__<object>`): created
|
|
13
|
+
* only by `weave migrate`, never declared in `objects/`, and not visible to the
|
|
14
|
+
* restricted-SQL/script surface. They live in the connection's `current_schema()`.
|
|
15
|
+
*/
|
|
16
|
+
/** reserved name prefix — `weavekit_m2m__<object>__<field>` */
|
|
17
|
+
export declare const LINK_TABLE_PREFIX = "weavekit_m2m__";
|
|
18
|
+
/** order column (preserves the array order of the declared value) */
|
|
19
|
+
export declare const LINK_IDX_COLUMN = "idx";
|
|
20
|
+
/** link-table name for one `(object, multiRelation field)` pair */
|
|
21
|
+
export declare function linkTableName(object: string, field: string): string;
|
|
22
|
+
/** true when a live table name is an engine multiRelation link table */
|
|
23
|
+
export declare function isLinkTable(name: string): boolean;
|
|
24
|
+
/** owner-side FK column name for one owner primary-key field */
|
|
25
|
+
export declare function linkOwnerColumn(pk: string): string;
|
|
26
|
+
/** target-side FK column name for one target primary-key field */
|
|
27
|
+
export declare function linkTargetColumn(pk: string): string;
|
|
28
|
+
/** a `multiRelation` field resolved against its target object definition */
|
|
29
|
+
export interface ResolvedMultiRelation {
|
|
30
|
+
field: Extract<ObjectDefinition['fields'][number], {
|
|
31
|
+
type: typeof FIELD_TYPES.MULTI_RELATION;
|
|
32
|
+
}>;
|
|
33
|
+
target: ObjectDefinition;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Every `multiRelation` field of `owner`, paired with its resolved target.
|
|
37
|
+
* Fields whose target is absent from `defs` are skipped (the loader's graph
|
|
38
|
+
* validation already rejects dangling targets).
|
|
39
|
+
*/
|
|
40
|
+
export declare function multiRelationsOf(owner: ObjectDefinition, defs: ReadonlyMap<string, ObjectDefinition>): ResolvedMultiRelation[];
|
|
41
|
+
/** the expected (DDL) shape of one multiRelation link table */
|
|
42
|
+
export declare function buildLinkTable(owner: ObjectDefinition, field: Extract<ObjectDefinition['fields'][number], {
|
|
43
|
+
type: typeof FIELD_TYPES.MULTI_RELATION;
|
|
44
|
+
}>, target: ObjectDefinition, registry?: FieldTypeRegistry): ExpectedTable;
|
|
45
|
+
/** every link table implied by the given object definitions, in stable order */
|
|
46
|
+
export declare function buildLinkTables(defs: ReadonlyMap<string, ObjectDefinition>, registry?: FieldTypeRegistry): ExpectedTable[];
|
|
47
|
+
//# sourceMappingURL=link-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-table.d.ts","sourceRoot":"","sources":["../../../src/core/storage/link-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAA6C,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1F;;;;;;;;;;;;GAYG;AAEH,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,qEAAqE;AACrE,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,WAAW,CAAC,cAAc,CAAA;KAAE,CAAC,CAAC;IAChG,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,qBAAqB,EAAE,CAQzB;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAC5B,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,OAAO,WAAW,CAAC,cAAc,CAAA;CAAE,CAAC,EAC/F,MAAM,EAAE,gBAAgB,EACxB,QAAQ,GAAE,iBAA+C,GACxD,aAAa,CAmDf;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,QAAQ,GAAE,iBAA+C,GACxD,aAAa,EAAE,CAQjB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { DEFAULT_FIELD_TYPE_REGISTRY, FIELD_TYPES, primaryFieldsOf, } from '../types/index.js';
|
|
2
|
+
import { pgType } from './map.js';
|
|
3
|
+
/**
|
|
4
|
+
* Engine-owned many-to-many **link tables** backing `multiRelation` fields.
|
|
5
|
+
*
|
|
6
|
+
* A `multiRelation` field stores no column on its owner table; instead one link
|
|
7
|
+
* table holds the (owner, target) pairs and an order index. Columns mirror the
|
|
8
|
+
* two primary keys (so both sides get a **real composite foreign key** with
|
|
9
|
+
* `ON DELETE CASCADE`), which requires the multi-column FK support in
|
|
10
|
+
* `ExpectedFk`/`ActualFk`.
|
|
11
|
+
*
|
|
12
|
+
* Link tables are engine plumbing (like `weavekit_record__<object>`): created
|
|
13
|
+
* only by `weave migrate`, never declared in `objects/`, and not visible to the
|
|
14
|
+
* restricted-SQL/script surface. They live in the connection's `current_schema()`.
|
|
15
|
+
*/
|
|
16
|
+
/** reserved name prefix — `weavekit_m2m__<object>__<field>` */
|
|
17
|
+
export const LINK_TABLE_PREFIX = 'weavekit_m2m__';
|
|
18
|
+
/** order column (preserves the array order of the declared value) */
|
|
19
|
+
export const LINK_IDX_COLUMN = 'idx';
|
|
20
|
+
/** link-table name for one `(object, multiRelation field)` pair */
|
|
21
|
+
export function linkTableName(object, field) {
|
|
22
|
+
return `${LINK_TABLE_PREFIX}${object}__${field}`;
|
|
23
|
+
}
|
|
24
|
+
/** true when a live table name is an engine multiRelation link table */
|
|
25
|
+
export function isLinkTable(name) {
|
|
26
|
+
return name.startsWith(LINK_TABLE_PREFIX);
|
|
27
|
+
}
|
|
28
|
+
/** owner-side FK column name for one owner primary-key field */
|
|
29
|
+
export function linkOwnerColumn(pk) {
|
|
30
|
+
return `owner_${pk}`;
|
|
31
|
+
}
|
|
32
|
+
/** target-side FK column name for one target primary-key field */
|
|
33
|
+
export function linkTargetColumn(pk) {
|
|
34
|
+
return `target_${pk}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Every `multiRelation` field of `owner`, paired with its resolved target.
|
|
38
|
+
* Fields whose target is absent from `defs` are skipped (the loader's graph
|
|
39
|
+
* validation already rejects dangling targets).
|
|
40
|
+
*/
|
|
41
|
+
export function multiRelationsOf(owner, defs) {
|
|
42
|
+
const out = [];
|
|
43
|
+
for (const field of owner.fields) {
|
|
44
|
+
if (field.type !== FIELD_TYPES.MULTI_RELATION)
|
|
45
|
+
continue;
|
|
46
|
+
const target = defs.get(field.target);
|
|
47
|
+
if (target !== undefined)
|
|
48
|
+
out.push({ field, target });
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
/** the expected (DDL) shape of one multiRelation link table */
|
|
53
|
+
export function buildLinkTable(owner, field, target, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
|
|
54
|
+
const name = linkTableName(owner.name, field.name);
|
|
55
|
+
const ownerPks = primaryFieldsOf(owner);
|
|
56
|
+
const targetPks = primaryFieldsOf(target);
|
|
57
|
+
const ownerCols = ownerPks.map((pk) => ({ pk, column: linkOwnerColumn(pk.name) }));
|
|
58
|
+
const targetCols = targetPks.map((pk) => ({ pk, column: linkTargetColumn(pk.name) }));
|
|
59
|
+
const columns = [
|
|
60
|
+
...ownerCols.map(({ pk, column }) => ({
|
|
61
|
+
name: column,
|
|
62
|
+
type: pgType(pk, undefined, registry),
|
|
63
|
+
notNull: true,
|
|
64
|
+
primary: true,
|
|
65
|
+
unique: false,
|
|
66
|
+
})),
|
|
67
|
+
...targetCols.map(({ pk, column }) => ({
|
|
68
|
+
name: column,
|
|
69
|
+
type: pgType(pk, undefined, registry),
|
|
70
|
+
notNull: true,
|
|
71
|
+
primary: true,
|
|
72
|
+
unique: false,
|
|
73
|
+
})),
|
|
74
|
+
{ name: LINK_IDX_COLUMN, type: 'INTEGER', notNull: true, primary: false, unique: false },
|
|
75
|
+
];
|
|
76
|
+
const fks = [];
|
|
77
|
+
if (ownerPks.length > 0) {
|
|
78
|
+
fks.push({
|
|
79
|
+
columns: ownerCols.map((c) => c.column),
|
|
80
|
+
refTable: owner.name,
|
|
81
|
+
refColumns: ownerPks.map((p) => p.name),
|
|
82
|
+
onDelete: 'cascade',
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (targetPks.length > 0) {
|
|
86
|
+
fks.push({
|
|
87
|
+
columns: targetCols.map((c) => c.column),
|
|
88
|
+
refTable: target.name,
|
|
89
|
+
refColumns: targetPks.map((p) => p.name),
|
|
90
|
+
onDelete: 'cascade',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// the composite PK (owner…, target…) already indexes the owner side; add a
|
|
94
|
+
// target-side index so the cascade/reverse lookup is not a seq scan
|
|
95
|
+
const indexes = [
|
|
96
|
+
{ name: `${name}_target_idx`, method: 'btree', columns: targetCols.map((c) => c.column) },
|
|
97
|
+
];
|
|
98
|
+
return { name, columns, fks, indexes, uniques: [] };
|
|
99
|
+
}
|
|
100
|
+
/** every link table implied by the given object definitions, in stable order */
|
|
101
|
+
export function buildLinkTables(defs, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
|
|
102
|
+
const tables = [];
|
|
103
|
+
for (const owner of defs.values()) {
|
|
104
|
+
for (const { field, target } of multiRelationsOf(owner, defs)) {
|
|
105
|
+
tables.push(buildLinkTable(owner, field, target, registry));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return tables;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=link-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-table.js","sourceRoot":"","sources":["../../../src/core/storage/link-table.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,WAAW,EACX,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;;;;GAYG;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,mEAAmE;AACnE,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,KAAa;IACzD,OAAO,GAAG,iBAAiB,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;AACnD,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,OAAO,SAAS,EAAE,EAAE,CAAC;AACvB,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,UAAU,EAAE,EAAE,CAAC;AACxB,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAuB,EACvB,IAA2C;IAE3C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,cAAc;YAAE,SAAS;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAC5B,KAAuB,EACvB,KAA+F,EAC/F,MAAwB,EACxB,WAA8B,2BAA2B;IAEzD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtF,MAAM,OAAO,GAAqB;QAChC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;KACzF,CAAC;IAEF,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACxC,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,oEAAoE;IACpE,MAAM,OAAO,GAAoB;QAC/B,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;KAC1F,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACtD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAC7B,IAA2C,EAC3C,WAA8B,2BAA2B;IAEzD,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/core/storage/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAA0C,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/core/storage/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAA0C,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAkDnG;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAInD;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,GAAE,iBAA+C,GACxD,MAAM,CA8FR;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,GAAE,iBAA+C,GACxD,MAAM,GAAG,SAAS,CAoCpB;AAcD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,OAAO,CAmFT;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUjE"}
|