@tailor-platform/sdk 2.0.0-next.4 → 2.0.0-next.6
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 +135 -0
- package/dist/{application-BX13RArL.mjs → application-BJXRpQj5.mjs} +602 -1842
- package/dist/application-BJXRpQj5.mjs.map +1 -0
- package/dist/application-BV-AXawv.mjs +3 -0
- package/dist/cli/cache/bundle-cache.d.mts +2 -1
- package/dist/cli/cache/store.d.mts +1 -1
- package/dist/cli/commands/api/index.d.mts +1 -0
- package/dist/cli/commands/deploy/aigateway.d.mts +5 -1
- package/dist/cli/commands/deploy/application.d.mts +7 -1
- package/dist/cli/commands/deploy/apply-phases.d.mts +14 -1
- package/dist/cli/commands/deploy/auth.d.mts +5 -1
- package/dist/cli/commands/deploy/deploy.d.mts +13 -3
- package/dist/cli/commands/deploy/executor.d.mts +7 -1
- package/dist/cli/commands/deploy/function-registry.d.mts +5 -0
- package/dist/cli/commands/deploy/idp.d.mts +5 -1
- package/dist/cli/commands/deploy/resolver.d.mts +5 -1
- package/dist/cli/commands/deploy/secret-manager.d.mts +5 -1
- package/dist/cli/commands/deploy/staticwebsite.d.mts +5 -1
- package/dist/cli/commands/deploy/tailordb/index.d.mts +8 -1
- package/dist/cli/commands/deploy/types.d.mts +3 -1
- package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +3 -1
- package/dist/cli/commands/deploy/workflow.d.mts +4 -1
- package/dist/cli/commands/executor/get.d.mts +0 -1
- package/dist/cli/commands/executor/jobs.d.mts +0 -1
- package/dist/cli/commands/executor/list.d.mts +0 -1
- package/dist/cli/commands/executor/transform.d.mts +1 -0
- package/dist/cli/commands/executor/trigger.d.mts +0 -1
- package/dist/cli/commands/executor/webhook.d.mts +0 -1
- package/dist/cli/commands/function/get.d.mts +0 -1
- package/dist/cli/commands/function/list.d.mts +0 -1
- package/dist/cli/commands/function/transform.d.mts +1 -0
- package/dist/cli/commands/generate/options.d.mts +0 -1
- package/dist/cli/commands/generate/service.d.mts +6 -2
- package/dist/cli/commands/machineuser/list.d.mts +0 -1
- package/dist/cli/commands/machineuser/token.d.mts +0 -1
- package/dist/cli/commands/oauth2client/get.d.mts +0 -1
- package/dist/cli/commands/oauth2client/list.d.mts +0 -1
- package/dist/cli/commands/oauth2client/transform.d.mts +1 -0
- package/dist/cli/commands/organization/folder/create.d.mts +0 -1
- package/dist/cli/commands/organization/folder/delete.d.mts +0 -1
- package/dist/cli/commands/organization/folder/get.d.mts +0 -1
- package/dist/cli/commands/organization/folder/list.d.mts +0 -1
- package/dist/cli/commands/organization/folder/update.d.mts +0 -1
- package/dist/cli/commands/organization/get.d.mts +0 -1
- package/dist/cli/commands/organization/list.d.mts +0 -1
- package/dist/cli/commands/organization/transform.d.mts +2 -0
- package/dist/cli/commands/organization/tree.d.mts +0 -1
- package/dist/cli/commands/organization/update.d.mts +0 -1
- package/dist/cli/commands/remove.d.mts +0 -1
- package/dist/cli/commands/show.d.mts +9 -4
- package/dist/cli/commands/staticwebsite/deploy.d.mts +19 -0
- package/dist/cli/commands/tailordb/migrate/config.d.mts +0 -1
- package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +16 -3
- package/dist/cli/commands/tailordb/migrate/generate.d.mts +0 -1
- package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +6 -0
- package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +1 -1
- package/dist/cli/commands/tailordb/truncate.d.mts +0 -1
- package/dist/cli/commands/workflow/executions.d.mts +0 -1
- package/dist/cli/commands/workflow/get.d.mts +2 -1
- package/dist/cli/commands/workflow/list.d.mts +0 -1
- package/dist/cli/commands/workflow/resume.d.mts +0 -1
- package/dist/cli/commands/workflow/start.d.mts +0 -1
- package/dist/cli/commands/workflow/status.d.mts +1 -0
- package/dist/cli/commands/workflow/transform.d.mts +1 -0
- package/dist/cli/commands/workflow/wait.d.mts +0 -1
- package/dist/cli/commands/workflow/waiter.d.mts +1 -1
- package/dist/cli/commands/workspace/app/health.d.mts +0 -1
- package/dist/cli/commands/workspace/app/list.d.mts +0 -1
- package/dist/cli/commands/workspace/app/transform.d.mts +2 -0
- package/dist/cli/commands/workspace/create.d.mts +3 -1
- package/dist/cli/commands/workspace/delete.d.mts +0 -1
- package/dist/cli/commands/workspace/get.d.mts +0 -1
- package/dist/cli/commands/workspace/list.d.mts +1 -1
- package/dist/cli/commands/workspace/restore.d.mts +0 -1
- package/dist/cli/commands/workspace/transform.d.mts +4 -0
- package/dist/cli/commands/workspace/user/invite.d.mts +0 -1
- package/dist/cli/commands/workspace/user/list.d.mts +0 -1
- package/dist/cli/commands/workspace/user/remove.d.mts +0 -1
- package/dist/cli/commands/workspace/user/transform.d.mts +1 -0
- package/dist/cli/commands/workspace/user/update.d.mts +0 -1
- package/dist/cli/index.d.mts +6 -3
- package/dist/cli/index.mjs +871 -1577
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/lib.d.mts +10 -4
- package/dist/cli/lib.mjs +50 -4
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/cli/query/index.d.mts +0 -1
- package/dist/cli/services/application.d.mts +12 -1
- package/dist/cli/services/auth/service.d.mts +2 -0
- package/dist/cli/services/executor/service.d.mts +1 -1
- package/dist/cli/services/http-adapter/bundler.d.mts +3 -1
- package/dist/cli/services/http-adapter/service.d.mts +2 -1
- package/dist/cli/services/resolver/service.d.mts +1 -1
- package/dist/cli/services/tailordb/service.d.mts +3 -1
- package/dist/cli/services/workflow/bundler.d.mts +2 -1
- package/dist/cli/services/workflow/service.d.mts +1 -1
- package/dist/cli/shared/args.d.mts +1 -1
- package/dist/cli/shared/client.d.mts +1 -1
- package/dist/cli/shared/config-loader.d.mts +1 -2
- package/dist/cli/shared/context.d.mts +2 -1
- package/dist/cli/shared/readonly-guard.d.mts +25 -0
- package/dist/cli/shared/script-executor.d.mts +0 -1
- package/dist/cli/shared/seed-chunker.d.mts +7 -3
- package/dist/cli/shared/tailordb-namespaces.d.mts +37 -0
- package/dist/cli/shared/type-generator.d.mts +0 -1
- package/dist/cli/shared/workspace-name.d.mts +1 -0
- package/dist/completion/zsh-worker.zsh +15 -303
- package/dist/configure/config/index.d.mts +0 -1
- package/dist/configure/config/types.d.mts +2 -2
- package/dist/configure/index.d.mts +14 -4
- package/dist/configure/index.mjs +201 -6
- package/dist/configure/index.mjs.map +1 -1
- package/dist/configure/services/aigateway/index.d.mts +0 -1
- package/dist/configure/services/aigateway/types.d.mts +0 -1
- package/dist/configure/services/auth/index.d.mts +0 -1
- package/dist/configure/services/auth/types.d.mts +15 -14
- package/dist/configure/services/executor/executor.d.mts +2 -13
- package/dist/configure/services/executor/index.d.mts +1 -0
- package/dist/configure/services/executor/operation.d.mts +9 -4
- package/dist/configure/services/executor/trigger/event.d.mts +0 -1
- package/dist/configure/services/executor/trigger/index.d.mts +0 -1
- package/dist/configure/services/executor/trigger/schedule.d.mts +0 -1
- package/dist/configure/services/executor/trigger/webhook.d.mts +0 -1
- package/dist/configure/services/http-adapter/http-adapter.d.mts +1 -2
- package/dist/configure/services/idp/index.d.mts +1 -5
- package/dist/configure/services/idp/permission.d.mts +4 -5
- package/dist/configure/services/idp/types.d.mts +0 -1
- package/dist/configure/services/index.d.mts +5 -0
- package/dist/configure/services/resolver/resolver.d.mts +1 -0
- package/dist/configure/services/resolver/types.d.mts +0 -1
- package/dist/configure/services/secrets/index.d.mts +0 -1
- package/dist/configure/services/secrets/types.d.mts +0 -1
- package/dist/configure/services/staticwebsite/index.d.mts +0 -1
- package/dist/configure/services/staticwebsite/types.d.mts +0 -1
- package/dist/configure/services/tailordb/permission.d.mts +4 -5
- package/dist/configure/services/tailordb/schema.d.mts +86 -56
- package/dist/configure/services/tailordb/types.d.mts +66 -17
- package/dist/configure/services/workflow/execution-policy.d.mts +2 -3
- package/dist/configure/services/workflow/execution-policy.types.d.mts +0 -1
- package/dist/configure/services/workflow/index.d.mts +1 -0
- package/dist/configure/services/workflow/job.d.mts +0 -1
- package/dist/configure/services/workflow/wait-point.d.mts +0 -1
- package/dist/configure/services/workflow/workflow.d.mts +1 -1
- package/dist/configure/types/field.d.mts +1 -2
- package/dist/configure/types/field.types.d.mts +6 -45
- package/dist/configure/types/index.d.mts +1 -0
- package/dist/configure/types/type.d.mts +2 -11
- package/dist/{crashreport-D3RjuSYb.mjs → crashreport-0ioNRZ4K.mjs} +1 -1
- package/dist/{crashreport-Cg-pqRJV.mjs → crashreport-CxHne11E.mjs} +4 -3
- package/dist/{crashreport-Cg-pqRJV.mjs.map → crashreport-CxHne11E.mjs.map} +1 -1
- package/dist/errors-DfnF4ibq.mjs +100 -0
- package/dist/errors-DfnF4ibq.mjs.map +1 -0
- package/dist/{globals-BjhJJ2dN.mjs → globals-D-YbJKW-.mjs} +16 -10
- package/dist/globals-D-YbJKW-.mjs.map +1 -0
- package/dist/kysely/index.d.mts +3 -4
- package/dist/{kysely-type-D-zflMGf.mjs → kysely-type-DqIRgDYR.mjs} +4 -3
- package/dist/kysely-type-DqIRgDYR.mjs.map +1 -0
- package/dist/{logger-BEiZZ3qT.mjs → logger-BwS4ppwO.mjs} +3 -3
- package/dist/logger-BwS4ppwO.mjs.map +1 -0
- package/dist/parser/service/auth/index.d.mts +1 -1
- package/dist/parser/service/auth/schema.d.mts +2 -0
- package/dist/parser/service/http-adapter/index.d.mts +1 -1
- package/dist/parser/service/idp/types.d.mts +1 -0
- package/dist/parser/service/tailordb/type-source.d.mts +10 -0
- package/dist/parser/service/tailordb/types.d.mts +6 -1
- package/dist/plugin/builtin/enum-constants/index.d.mts +0 -1
- package/dist/plugin/builtin/file-utils/index.d.mts +0 -1
- package/dist/plugin/builtin/kysely-type/index.d.mts +0 -1
- package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
- package/dist/plugin/builtin/seed/index.d.mts +0 -1
- package/dist/plugin/get-generated-type.d.mts +0 -1
- package/dist/plugin/manager.d.mts +2 -1
- package/dist/plugin/types.d.mts +0 -1
- package/dist/plugin/with-context.d.mts +0 -1
- package/dist/{register-ts-hook-BM1caLT0.mjs → register-ts-hook-DL31O2W9.mjs} +3076 -1744
- package/dist/register-ts-hook-DL31O2W9.mjs.map +1 -0
- package/dist/{registry-BSbq6SPo.mjs → registry-CC3CbQiF.mjs} +3 -3
- package/dist/registry-CC3CbQiF.mjs.map +1 -0
- package/dist/runtime/aigateway.d.mts +0 -1
- package/dist/runtime/authconnection.d.mts +0 -1
- package/dist/runtime/context.d.mts +0 -1
- package/dist/runtime/field-parse.d.mts +10 -0
- package/dist/runtime/globals.d.mts +5 -3
- package/dist/runtime/index.d.mts +0 -1
- package/dist/runtime/index.mjs +1 -1
- package/dist/runtime/types.d.mts +9 -4
- package/dist/runtime/workflow.d.mts +70 -10
- package/dist/runtime/workflow.mjs +1 -1
- package/dist/{schema-C4LYbXVG.mjs → schema--xYWRGfe.mjs} +272 -51
- package/dist/schema--xYWRGfe.mjs.map +1 -0
- package/dist/{secret-file-aoNXJmKa.mjs → secret-file-C3J4Gy8r.mjs} +2 -27
- package/dist/secret-file-C3J4Gy8r.mjs.map +1 -0
- package/dist/{secretmanager-Bd45j7an.mjs → secretmanager-IY4UvinW.mjs} +42 -9
- package/dist/secretmanager-IY4UvinW.mjs.map +1 -0
- package/dist/seed/index.d.mts +3 -2
- package/dist/{service-ufH7sS8o.mjs → service-CnHz9rwz.mjs} +47 -20
- package/dist/service-CnHz9rwz.mjs.map +1 -0
- package/dist/{service-DeZeYa06.mjs → service-DaeJlBoH.mjs} +3 -3
- package/dist/{service-DeZeYa06.mjs.map → service-DaeJlBoH.mjs.map} +1 -1
- package/dist/service-nU6ITOHL.mjs +3 -0
- package/dist/service_pb-BoLM0X4K.mjs +167 -0
- package/dist/service_pb-BoLM0X4K.mjs.map +1 -0
- package/dist/{service_pb-B2FF59sP.mjs → service_pb-r1T7kpJc.mjs} +1 -1
- package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +0 -1
- package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +0 -1
- package/dist/types/aigateway.generated.d.mts +5 -2
- package/dist/types/auth-connection.generated.d.mts +24 -11
- package/dist/types/auth.generated.d.mts +115 -84
- package/dist/types/executor.generated.d.mts +133 -123
- package/dist/types/helpers.d.mts +7 -6
- package/dist/types/http-adapter.generated.d.mts +11 -5
- package/dist/types/idp.generated.d.mts +536 -524
- package/dist/types/resolver.generated.d.mts +26 -11
- package/dist/types/staticwebsite.generated.d.mts +7 -3
- package/dist/types/tailordb.generated.d.mts +57 -29
- package/dist/types/workflow.generated.d.mts +9 -4
- package/dist/user-agent-Bgsszb5I.mjs +28 -0
- package/dist/user-agent-Bgsszb5I.mjs.map +1 -0
- package/dist/utils/test/index.d.mts +1 -2
- package/dist/utils/test/index.mjs +36 -10
- package/dist/utils/test/index.mjs.map +1 -1
- package/dist/utils/test/mock.d.mts +0 -1
- package/dist/vitest/environment.mjs +1 -1
- package/dist/vitest/index.d.mts +9 -9
- package/dist/vitest/index.mjs +591 -173
- package/dist/vitest/index.mjs.map +1 -1
- package/dist/vitest/mock-kysely.d.mts +0 -1
- package/dist/vitest/mock.d.mts +8 -8
- package/dist/vitest/mocks/aigateway.d.mts +16 -6
- package/dist/vitest/mocks/authconnection.d.mts +16 -6
- package/dist/vitest/mocks/file.d.mts +23 -6
- package/dist/vitest/mocks/iconv.d.mts +28 -4
- package/dist/vitest/mocks/idp.d.mts +26 -10
- package/dist/vitest/mocks/secretmanager.d.mts +16 -5
- package/dist/vitest/mocks/tailordb.d.mts +54 -10
- package/dist/vitest/mocks/workflow.d.mts +72 -21
- package/dist/vitest/setup.mjs +2 -2
- package/dist/vitest/workflow-local.d.mts +1 -0
- package/dist/workflow-9kHGKxF2.mjs +64 -0
- package/dist/workflow-9kHGKxF2.mjs.map +1 -0
- package/dist/{service_pb-B5w9rjPY.mjs → workspace_resource_pb-Db3fv68L.mjs} +57 -165
- package/dist/workspace_resource_pb-Db3fv68L.mjs.map +1 -0
- package/docs/cli/application.md +61 -15
- package/docs/cli/setup.md +1 -1
- package/docs/cli/tailordb.md +8 -140
- package/docs/cli/workspace.md +6 -4
- package/docs/cli-reference.md +18 -14
- package/docs/github-actions.md +8 -0
- package/docs/migration/v2.md +247 -0
- package/docs/runtime.md +5 -6
- package/docs/services/aigateway.md +2 -0
- package/docs/services/executor.md +5 -0
- package/docs/services/tailordb.md +144 -68
- package/docs/services/workflow.md +3 -3
- package/docs/testing.md +105 -89
- package/package.json +22 -25
- package/dist/application-BO4ZF8wP.mjs +0 -3
- package/dist/application-BX13RArL.mjs.map +0 -1
- package/dist/cli/erd-viewer-assets/app.js +0 -1424
- package/dist/cli/erd-viewer-assets/index.html +0 -77
- package/dist/cli/erd-viewer-assets/serve.json +0 -13
- package/dist/cli/erd-viewer-assets/styles.css +0 -1036
- package/dist/cli/shared/trigger-context.d.mts +0 -1
- package/dist/configure/types/field-runtime.d.mts +0 -17
- package/dist/errors-118wUDRr.mjs +0 -42
- package/dist/errors-118wUDRr.mjs.map +0 -1
- package/dist/field-runtime-CAnh_oow.mjs +0 -183
- package/dist/field-runtime-CAnh_oow.mjs.map +0 -1
- package/dist/globals-BjhJJ2dN.mjs.map +0 -1
- package/dist/kysely-type-D-zflMGf.mjs.map +0 -1
- package/dist/logger-BEiZZ3qT.mjs.map +0 -1
- package/dist/register-ts-hook-BM1caLT0.mjs.map +0 -1
- package/dist/registry-BSbq6SPo.mjs.map +0 -1
- package/dist/resource_pb-BRv7AMXK.mjs +0 -49
- package/dist/resource_pb-BRv7AMXK.mjs.map +0 -1
- package/dist/schema-C4LYbXVG.mjs.map +0 -1
- package/dist/secret-file-aoNXJmKa.mjs.map +0 -1
- package/dist/secretmanager-Bd45j7an.mjs.map +0 -1
- package/dist/service-CkIwEctX.mjs +0 -3
- package/dist/service-ufH7sS8o.mjs.map +0 -1
- package/dist/service_pb-B5w9rjPY.mjs.map +0 -1
- package/dist/types-C-lQ4se3.mjs +0 -4
- package/dist/types-CXF2OYdR.mjs +0 -199
- package/dist/types-CXF2OYdR.mjs.map +0 -1
- package/dist/workflow-GNuSnsTx.mjs +0 -22
- package/dist/workflow-GNuSnsTx.mjs.map +0 -1
|
@@ -1,32 +1,31 @@
|
|
|
1
|
+
import { FieldOptions, FieldOutput, FieldValidateInput, TailorFieldType, TailorToTs } from "../../types/field.types.mjs";
|
|
1
2
|
import { InferredAttributes, TailorPrincipal } from "../../../runtime/types.mjs";
|
|
2
3
|
import { InferFieldsOutput, TypeLevelError, output } from "../../../types/helpers.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeNestedDBFields, Hook, Hooks, IndexDef, RelationType, SerialConfig, TailorDBField as TailorDBField$1, TailorDBType as TailorDBType$1, TypeFeatures } from "./types.mjs";
|
|
4
|
+
import { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeDefaultedDBFields, ExcludeHookedDBFields, ExcludeNestedDBFields, Hook, IndexDef, RelationType, SerialConfig, TailorDBField as TailorDBField$1, TailorDBType as TailorDBType$1, TypeFeatures, TypeHook, TypeValidateFn } from "./types.mjs";
|
|
5
5
|
import { AllowedValues, AllowedValuesOutput } from "../../types/field.mjs";
|
|
6
|
-
import { FieldParseArgs
|
|
6
|
+
import { FieldParseArgs } from "../../../runtime/field-parse.mjs";
|
|
7
7
|
import { PluginConfigs } from "../../../plugin/types.mjs";
|
|
8
8
|
import { TailorTypeGqlPermission, TailorTypePermission } from "./permission.mjs";
|
|
9
9
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
|
-
|
|
11
10
|
//#region src/configure/services/tailordb/schema.d.ts
|
|
12
11
|
type AnyBuilderMethod = any;
|
|
13
12
|
type TailorAnyDBField = Omit<TailorDBField$1<AnyBuilderMethod, AnyBuilderMethod>, "fields"> & {
|
|
14
13
|
readonly fields: Record<string, AnyBuilderMethod>;
|
|
15
14
|
_metadata: DBFieldMetadata;
|
|
16
15
|
parse: AnyBuilderMethod;
|
|
17
|
-
_parseInternal: AnyBuilderMethod;
|
|
18
16
|
readonly typeName: TypeLevelError<string>;
|
|
19
17
|
description: AnyBuilderMethod;
|
|
20
18
|
relation: AnyBuilderMethod;
|
|
21
19
|
index: AnyBuilderMethod;
|
|
22
20
|
unique: AnyBuilderMethod;
|
|
23
21
|
vector: AnyBuilderMethod;
|
|
22
|
+
default: AnyBuilderMethod;
|
|
24
23
|
hooks: AnyBuilderMethod;
|
|
25
24
|
validate: AnyBuilderMethod;
|
|
26
25
|
serial: AnyBuilderMethod;
|
|
27
26
|
clone: AnyBuilderMethod;
|
|
28
27
|
};
|
|
29
|
-
type TailorAnyDBType = TailorDBType<any, any>;
|
|
28
|
+
type TailorAnyDBType = TailorDBType<any, any, any>;
|
|
30
29
|
type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
31
30
|
type DBFieldTypeNameMethod<Defined extends DefinedDBFieldMetadata> = IsAny<Defined> extends true ? TypeLevelError<string> : TypeLevelError<"typeName cannot be used on TailorDB fields">;
|
|
32
31
|
type WithDBFieldDescription<Defined> = Defined & {
|
|
@@ -67,6 +66,9 @@ type WithDBFieldHooks<Defined, H> = Defined & {
|
|
|
67
66
|
};
|
|
68
67
|
serial: false;
|
|
69
68
|
};
|
|
69
|
+
type WithDBFieldDefault<Defined> = Defined & {
|
|
70
|
+
default: true;
|
|
71
|
+
};
|
|
70
72
|
type WithDBFieldValidate<Defined> = Defined & {
|
|
71
73
|
validate: true;
|
|
72
74
|
};
|
|
@@ -96,6 +98,30 @@ type DBFieldCloneOutput<Output, NewOpt extends FieldOptions> = NewOpt extends {
|
|
|
96
98
|
} ? DBFieldCloneArrayOutput<Output, NewOpt> | null : NewOpt extends {
|
|
97
99
|
optional: false;
|
|
98
100
|
} ? DBFieldCloneArrayOutput<Output, NewOpt> : null extends Output ? DBFieldCloneArrayOutput<Output, NewOpt> | null : DBFieldCloneArrayOutput<Output, NewOpt>;
|
|
101
|
+
type DBFieldCloneOptions<Defined extends DefinedDBFieldMetadata> = Omit<FieldOptions, "array"> & {
|
|
102
|
+
array?: Defined extends {
|
|
103
|
+
validate: unknown;
|
|
104
|
+
} ? Defined["array"] : boolean;
|
|
105
|
+
};
|
|
106
|
+
type InvalidValidatedArrayCloneKeys<Fields extends Record<string, TailorAnyDBField>, K extends keyof Fields, Opt extends FieldOptions> = Opt extends {
|
|
107
|
+
array: infer ArrayOption;
|
|
108
|
+
} ? { [P in K]: Fields[P] extends TailorDBField<infer Defined, infer _Output> ? Defined extends {
|
|
109
|
+
validate: unknown;
|
|
110
|
+
} ? ArrayOption extends Defined["array"] ? never : P : never : never; }[K] : never;
|
|
111
|
+
type DBFieldsCloneOptionsGuard<Fields extends Record<string, TailorAnyDBField>, K extends keyof Fields, Opt extends FieldOptions> = [InvalidValidatedArrayCloneKeys<Fields, K, Opt>] extends [never] ? unknown : TypeLevelError<"array cannot be changed on fields with custom validation">;
|
|
112
|
+
type DefinedDBTypeMetadata = {
|
|
113
|
+
hooks?: true;
|
|
114
|
+
validate?: true;
|
|
115
|
+
features?: true;
|
|
116
|
+
indexes?: true;
|
|
117
|
+
files?: true;
|
|
118
|
+
permission?: true;
|
|
119
|
+
gqlPermission?: true;
|
|
120
|
+
description?: true;
|
|
121
|
+
};
|
|
122
|
+
type WithDBTypeMetadata<Defined extends DefinedDBTypeMetadata, Key extends keyof DefinedDBTypeMetadata> = Defined & Record<Key, true>;
|
|
123
|
+
type DBTypeDuplicateInputGuard<Defined extends DefinedDBTypeMetadata, Key extends keyof DefinedDBTypeMetadata, Input, Message extends string> = IsAny<Defined> extends true ? Input : Defined extends Record<Key, unknown> ? TypeLevelError<Message> : Input;
|
|
124
|
+
type DBTypeDuplicateRestGuard<Defined extends DefinedDBTypeMetadata, Key extends keyof DefinedDBTypeMetadata, Input extends unknown[], Message extends string> = IsAny<Defined> extends true ? Input : Defined extends Record<Key, unknown> ? [TypeLevelError<Message>, ...TypeLevelError<Message>[]] : Input;
|
|
99
125
|
type FileKeyConflictError<Fields extends Record<string, TailorAnyDBField>, User extends object> = Partial<Record<keyof output<TailorDBType<Fields, User>> & string, TypeLevelError<"file keys cannot use existing field names">>>;
|
|
100
126
|
type DBFieldDescriptionFn<Defined extends DefinedDBFieldMetadata, Output> = (description: string) => TailorDBField<WithDBFieldDescription<Defined>, Output>;
|
|
101
127
|
type DBFieldRelationFn<Defined extends DefinedDBFieldMetadata, Output> = {
|
|
@@ -105,7 +131,9 @@ type DBFieldRelationFn<Defined extends DefinedDBFieldMetadata, Output> = {
|
|
|
105
131
|
type DBFieldIndexFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldIndex<Defined>, Output>;
|
|
106
132
|
type DBFieldUniqueFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldUnique<Defined>, Output>;
|
|
107
133
|
type DBFieldVectorFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldVector<Defined>, Output>;
|
|
108
|
-
type DBFieldHooksFn<Defined extends DefinedDBFieldMetadata, Output> = <const H extends Hook<
|
|
134
|
+
type DBFieldHooksFn<Defined extends DefinedDBFieldMetadata, Output> = <const H extends Hook<Output, Defined extends {
|
|
135
|
+
default: true;
|
|
136
|
+
} ? Output | null | undefined : Output>>(hooks: H) => TailorDBField<WithDBFieldHooks<Defined, H>, Output>;
|
|
109
137
|
type DBFieldValidateFn<Defined extends DefinedDBFieldMetadata, Output> = (...validate: FieldValidateInput<Output>[]) => TailorDBField<WithDBFieldValidate<Defined>, Output>;
|
|
110
138
|
type DBFieldSerialFn<Defined extends DefinedDBFieldMetadata, Output> = (config: SerialConfig<Defined["type"] & ("integer" | "string")>) => TailorDBField<WithDBFieldSerial<Defined>, Output>;
|
|
111
139
|
type DBFieldDescriptionMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldDescriptionFn<Defined, Output> : Defined extends {
|
|
@@ -114,16 +142,13 @@ type DBFieldDescriptionMethod<Defined extends DefinedDBFieldMetadata, Output> =
|
|
|
114
142
|
type DBFieldRelationMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldRelationFn<Defined, Output> : Defined extends {
|
|
115
143
|
relation: unknown;
|
|
116
144
|
} ? TypeLevelError<".relation() has already been set"> : DBFieldRelationFn<Defined, Output>;
|
|
145
|
+
type DBFieldArrayCheck<A extends boolean, Ok, Msg extends string> = A extends true ? TypeLevelError<Msg> : Ok;
|
|
117
146
|
type DBFieldIndexMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldIndexFn<Defined, Output> : Defined extends {
|
|
118
147
|
index: unknown;
|
|
119
|
-
} ? TypeLevelError<".index() has already been set"> :
|
|
120
|
-
array: true;
|
|
121
|
-
} ? TypeLevelError<"index cannot be set on array fields"> : DBFieldIndexFn<Defined, Output>;
|
|
148
|
+
} ? TypeLevelError<".index() has already been set"> : DBFieldArrayCheck<Defined["array"], DBFieldIndexFn<Defined, Output>, "index cannot be set on array fields">;
|
|
122
149
|
type DBFieldUniqueMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldUniqueFn<Defined, Output> : Defined extends {
|
|
123
150
|
unique: unknown;
|
|
124
|
-
} ? TypeLevelError<".unique() has already been set"> :
|
|
125
|
-
array: true;
|
|
126
|
-
} ? TypeLevelError<"unique cannot be set on array fields"> : DBFieldUniqueFn<Defined, Output>;
|
|
151
|
+
} ? TypeLevelError<".unique() has already been set"> : DBFieldArrayCheck<Defined["array"], DBFieldUniqueFn<Defined, Output>, "unique cannot be set on array fields">;
|
|
127
152
|
type DBFieldVectorMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldVectorFn<Defined, Output> : Defined extends {
|
|
128
153
|
vector: unknown;
|
|
129
154
|
} ? TypeLevelError<".vector() has already been set"> : Defined extends {
|
|
@@ -155,6 +180,14 @@ type DBFieldSerialMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny
|
|
|
155
180
|
type: "integer" | "string";
|
|
156
181
|
array: false;
|
|
157
182
|
} ? DBFieldSerialFn<Defined, Output> : TypeLevelError<"serial can only be set on non-array integer or string fields">;
|
|
183
|
+
type DBFieldDefaultFn<Defined extends DefinedDBFieldMetadata, Output> = (value: Output extends null ? NonNullable<Output> : Output) => TailorDBField<WithDBFieldDefault<Defined>, Output>;
|
|
184
|
+
type DBFieldDefaultMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldDefaultFn<Defined, Output> : Defined extends {
|
|
185
|
+
default: unknown;
|
|
186
|
+
} ? TypeLevelError<".default() has already been set"> : Defined extends {
|
|
187
|
+
type: "nested";
|
|
188
|
+
} ? TypeLevelError<"default cannot be set on nested type fields"> : Defined extends {
|
|
189
|
+
serial: true;
|
|
190
|
+
} ? TypeLevelError<"default cannot be set on serial fields"> : null extends Output ? TypeLevelError<"default cannot be set on optional fields"> : DBFieldDefaultFn<Defined, Output>;
|
|
158
191
|
/**
|
|
159
192
|
* Full TailorDBField interface with builder methods.
|
|
160
193
|
* Extends the minimal structural interface from types/ with fluent API methods.
|
|
@@ -166,11 +199,6 @@ interface TailorDBField<Defined extends DefinedDBFieldMetadata = DefinedDBFieldM
|
|
|
166
199
|
* Parse and validate a value against this field's validation rules
|
|
167
200
|
*/
|
|
168
201
|
parse(args: FieldParseArgs): StandardSchemaV1.Result<Output>;
|
|
169
|
-
/**
|
|
170
|
-
* Internal parse method that tracks field path for nested validation
|
|
171
|
-
* @private
|
|
172
|
-
*/
|
|
173
|
-
_parseInternal(args: FieldParseInternalArgs): StandardSchemaV1.Result<Output>;
|
|
174
202
|
/**
|
|
175
203
|
* typeName is not available on TailorDB fields.
|
|
176
204
|
* Use typeName on pipeline fields (t.enum / t.object) instead.
|
|
@@ -196,12 +224,24 @@ interface TailorDBField<Defined extends DefinedDBFieldMetadata = DefinedDBFieldM
|
|
|
196
224
|
* Enable vector search on the field (string type only)
|
|
197
225
|
*/
|
|
198
226
|
vector: DBFieldVectorMethod<Defined, Output>;
|
|
227
|
+
/**
|
|
228
|
+
* Set a default value for the field on create. When the field is required,
|
|
229
|
+
* this makes it optional in the Create input — the default fills in when
|
|
230
|
+
* no value (or a nullish hook result) is provided.
|
|
231
|
+
*
|
|
232
|
+
* For datetime/date/time fields, pass `"now"` to use the operation timestamp.
|
|
233
|
+
*/
|
|
234
|
+
default: DBFieldDefaultMethod<Defined, Output>;
|
|
199
235
|
/**
|
|
200
236
|
* Add hooks for create/update operations on this field.
|
|
201
237
|
*/
|
|
202
238
|
hooks: DBFieldHooksMethod<Defined, Output>;
|
|
203
239
|
/**
|
|
204
240
|
* Add validation functions to the field.
|
|
241
|
+
*
|
|
242
|
+
* Validators receive `{ value, data, user }` and run after hooks and
|
|
243
|
+
* built-in type validation; they are skipped when built-in validation
|
|
244
|
+
* fails. For array fields, `value` is the complete array.
|
|
205
245
|
*/
|
|
206
246
|
validate: DBFieldValidateMethod<Defined, Output>;
|
|
207
247
|
/**
|
|
@@ -209,30 +249,31 @@ interface TailorDBField<Defined extends DefinedDBFieldMetadata = DefinedDBFieldM
|
|
|
209
249
|
*/
|
|
210
250
|
serial: DBFieldSerialMethod<Defined, Output>;
|
|
211
251
|
/**
|
|
212
|
-
* Clone the field with optional overrides for field options
|
|
252
|
+
* Clone the field with optional overrides for field options.
|
|
253
|
+
* The `array` option cannot change on fields with custom validation.
|
|
213
254
|
*/
|
|
214
|
-
clone<const NewOpt extends
|
|
255
|
+
clone<const NewOpt extends DBFieldCloneOptions<Defined>>(options?: NewOpt): TailorDBField<WithDBFieldCloneOptions<Defined, NewOpt>, DBFieldCloneOutput<Output, NewOpt>>;
|
|
215
256
|
}
|
|
216
257
|
/**
|
|
217
258
|
* Full TailorDBType interface with builder methods.
|
|
218
259
|
* Extends the minimal structural interface from types/ with fluent API methods.
|
|
219
260
|
*/
|
|
220
|
-
interface TailorDBType<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> extends TailorDBType$1<Fields, User> {
|
|
261
|
+
interface TailorDBType<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes, Defined extends DefinedDBTypeMetadata = any> extends TailorDBType$1<Fields, User> {
|
|
221
262
|
_description?: string;
|
|
222
|
-
hooks(
|
|
223
|
-
validate(
|
|
224
|
-
features(features: Omit<TypeFeatures, "pluralForm">): TailorDBType<Fields, User
|
|
225
|
-
indexes(...indexes: IndexDef<TailorDBType<Fields, User>>[]): TailorDBType<Fields, User
|
|
226
|
-
files<const F extends string>(files: Record<F, string> & FileKeyConflictError<Fields, User>): TailorDBType<Fields, User
|
|
227
|
-
permission<U extends object = User, P extends TailorTypePermission<U, output<TailorDBType<Fields, User>>> = TailorTypePermission<U, output<TailorDBType<Fields, User>>>>(permission: P): TailorDBType<Fields, U
|
|
228
|
-
gqlPermission<U extends object = User, P extends TailorTypeGqlPermission<U> = TailorTypeGqlPermission<U>>(permission: P): TailorDBType<Fields, U
|
|
229
|
-
description(description: string): TailorDBType<Fields, User
|
|
263
|
+
hooks(hook: DBTypeDuplicateInputGuard<Defined, "hooks", TypeHook<Fields>, ".hooks() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "hooks">>;
|
|
264
|
+
validate(fn: DBTypeDuplicateInputGuard<Defined, "validate", TypeValidateFn<Fields>, ".validate() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "validate">>;
|
|
265
|
+
features(features: DBTypeDuplicateInputGuard<Defined, "features", Omit<TypeFeatures, "pluralForm">, ".features() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "features">>;
|
|
266
|
+
indexes(...indexes: DBTypeDuplicateRestGuard<Defined, "indexes", IndexDef<TailorDBType<Fields, User, Defined>>[], ".indexes() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "indexes">>;
|
|
267
|
+
files<const F extends string>(files: DBTypeDuplicateInputGuard<Defined, "files", Record<F, string> & FileKeyConflictError<Fields, User>, ".files() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "files">>;
|
|
268
|
+
permission<U extends object = User, P extends TailorTypePermission<U, output<TailorDBType<Fields, User, Defined>>> = TailorTypePermission<U, output<TailorDBType<Fields, User, Defined>>>>(permission: DBTypeDuplicateInputGuard<Defined, "permission", P, ".permission() has already been set">): TailorDBType<Fields, U, WithDBTypeMetadata<Defined, "permission">>;
|
|
269
|
+
gqlPermission<U extends object = User, P extends TailorTypeGqlPermission<U> = TailorTypeGqlPermission<U>>(permission: DBTypeDuplicateInputGuard<Defined, "gqlPermission", P, ".gqlPermission() has already been set">): TailorDBType<Fields, U, WithDBTypeMetadata<Defined, "gqlPermission">>;
|
|
270
|
+
description(description: DBTypeDuplicateInputGuard<Defined, "description", string, ".description() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "description">>;
|
|
230
271
|
pickFields<K extends keyof Fields>(keys: K[]): Pick<Fields, K>;
|
|
231
|
-
pickFields<K extends keyof Fields, const Opt extends FieldOptions>(keys: K[], options: Opt): { [P in K]: Fields[P] extends TailorDBField<infer D, infer O> ? TailorDBField<WithDBFieldCloneOptions<D, Opt>, DBFieldCloneOutput<O, Opt>> : never };
|
|
272
|
+
pickFields<K extends keyof Fields, const Opt extends FieldOptions>(keys: K[], options: Opt & DBFieldsCloneOptionsGuard<Fields, K, Opt>): { [P in K]: Fields[P] extends TailorDBField<infer D, infer O> ? TailorDBField<WithDBFieldCloneOptions<D, Opt>, DBFieldCloneOutput<O, Opt>> : never; };
|
|
232
273
|
omitFields<K extends keyof Fields>(keys: K[]): Omit<Fields, K>;
|
|
233
|
-
plugin<P extends keyof PluginConfigs<keyof Fields & string>>(config: { [K in P]: PluginConfigs<keyof Fields & string>[K] }): TailorDBType<Fields, User>;
|
|
274
|
+
plugin<P extends keyof PluginConfigs<keyof Fields & string>>(config: { [K in P]: PluginConfigs<keyof Fields & string>[K]; }): TailorDBType<Fields, User, Defined>;
|
|
234
275
|
}
|
|
235
|
-
type TailorDBInstance<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> = TailorDBType<Fields, User>;
|
|
276
|
+
type TailorDBInstance<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes, Defined extends DefinedDBTypeMetadata = any> = TailorDBType<Fields, User, Defined>;
|
|
236
277
|
interface RelationConfig<S extends RelationType, T extends TailorDBType> {
|
|
237
278
|
type: S;
|
|
238
279
|
toward: {
|
|
@@ -358,7 +399,7 @@ declare function _enum<const V extends AllowedValues, const Opt extends FieldOpt
|
|
|
358
399
|
* @example db.object({ street: db.string(), city: db.string(), zip: db.string() })
|
|
359
400
|
* @example db.object({ name: db.string() }, { optional: true })
|
|
360
401
|
*/
|
|
361
|
-
declare function object<const F extends Record<string, TailorAnyDBField> & ExcludeNestedDBFields<F>, const Opt extends FieldOptions>(fields: F, options?: Opt): TailorDBField<{
|
|
402
|
+
declare function object<const F extends Record<string, TailorAnyDBField> & ExcludeNestedDBFields<F> & ExcludeHookedDBFields<F> & ExcludeDefaultedDBFields<F>, const Opt extends FieldOptions>(fields: F, options?: Opt): TailorDBField<{
|
|
362
403
|
type: "nested";
|
|
363
404
|
array: Opt extends {
|
|
364
405
|
array: true;
|
|
@@ -368,9 +409,9 @@ declare const idField: TailorDBFieldInstance<"uuid", FieldOptions, string>;
|
|
|
368
409
|
type idField = typeof idField;
|
|
369
410
|
type DBTable<F extends {
|
|
370
411
|
id?: never;
|
|
371
|
-
} & Record<string, TailorAnyDBField
|
|
412
|
+
} & Record<string, TailorAnyDBField>, Defined extends DefinedDBTypeMetadata = DefinedDBTypeMetadata> = TailorDBInstance<{
|
|
372
413
|
id: idField;
|
|
373
|
-
} & F>;
|
|
414
|
+
} & F, InferredAttributes, Defined>;
|
|
374
415
|
/**
|
|
375
416
|
* Creates a new database table with the specified fields.
|
|
376
417
|
* An `id` field (UUID) is automatically added to every table.
|
|
@@ -401,7 +442,7 @@ declare function dbTable<const F extends {
|
|
|
401
442
|
*/
|
|
402
443
|
declare function dbTable<const F extends {
|
|
403
444
|
id?: never;
|
|
404
|
-
} & Record<string, TailorAnyDBField>>(name: string | [string, string], description: string, fields: F): DBTable<F
|
|
445
|
+
} & Record<string, TailorAnyDBField>>(name: string | [string, string], description: string, fields: F): DBTable<F, WithDBTypeMetadata<DefinedDBTypeMetadata, "description">>;
|
|
405
446
|
/** TailorDB schema builder utilities for defining tables and fields. */
|
|
406
447
|
declare const db: {
|
|
407
448
|
table: typeof dbTable;
|
|
@@ -418,10 +459,9 @@ declare const db: {
|
|
|
418
459
|
object: typeof object;
|
|
419
460
|
fields: {
|
|
420
461
|
/**
|
|
421
|
-
* Creates standard timestamp fields (createdAt, updatedAt) with
|
|
422
|
-
*
|
|
423
|
-
* User-specified
|
|
424
|
-
* historical records); the current time is used only when the value is omitted.
|
|
462
|
+
* Creates standard timestamp fields (createdAt, updatedAt) with automatic defaults.
|
|
463
|
+
* Both fields default to the current time on create. updatedAt is also refreshed on update.
|
|
464
|
+
* User-specified values are respected when provided (e.g. seeding historical records).
|
|
425
465
|
* @returns An object with createdAt and updatedAt fields
|
|
426
466
|
* @example
|
|
427
467
|
* const model = db.table("Model", {
|
|
@@ -430,24 +470,14 @@ declare const db: {
|
|
|
430
470
|
* });
|
|
431
471
|
*/
|
|
432
472
|
timestamps: () => {
|
|
433
|
-
createdAt: TailorDBField<WithDBFieldDescription<
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
data: unknown;
|
|
439
|
-
invoker: TailorPrincipal | null;
|
|
440
|
-
}) => string | Date;
|
|
441
|
-
}>>, string | Date>;
|
|
442
|
-
updatedAt: TailorDBField<WithDBFieldDescription<WithDBFieldHooks<DBFieldDefined<"datetime", FieldOptions>, {
|
|
443
|
-
readonly create: ({
|
|
444
|
-
value
|
|
445
|
-
}: {
|
|
446
|
-
value: string | Date | null;
|
|
447
|
-
data: unknown;
|
|
473
|
+
createdAt: TailorDBField<WithDBFieldDescription<WithDBFieldDefault<DBFieldDefined<"datetime", FieldOptions>>>, string | Date>;
|
|
474
|
+
updatedAt: TailorDBField<WithDBFieldDescription<WithDBFieldHooks<WithDBFieldDefault<DBFieldDefined<"datetime", FieldOptions>>, {
|
|
475
|
+
readonly update: ({ input, now }: {
|
|
476
|
+
input: string | Date | null;
|
|
477
|
+
oldValue: string | Date;
|
|
448
478
|
invoker: TailorPrincipal | null;
|
|
479
|
+
now: Date;
|
|
449
480
|
}) => string | Date;
|
|
450
|
-
readonly update: () => Date;
|
|
451
481
|
}>>, string | Date>;
|
|
452
482
|
};
|
|
453
483
|
};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
+
import { DefinedFieldMetadata, FieldMetadata, TailorField, TailorFieldType } from "../../types/field.types.mjs";
|
|
1
2
|
import { InferredAttributes, TailorPrincipal } from "../../../runtime/types.mjs";
|
|
2
|
-
import { InferFieldsOutput, Prettify, output } from "../../../types/helpers.mjs";
|
|
3
|
-
import { DefinedFieldMetadata, FieldMetadata, TailorField } from "../../types/field.types.mjs";
|
|
3
|
+
import { DeepReadonly, InferFieldsOutput, Prettify, output } from "../../../types/helpers.mjs";
|
|
4
4
|
import { DBFieldMetadata as DBFieldMetadata$1, GqlOperationsInput, RawPermissions, TailorDBServiceConfigInput } from "../../../types/tailordb.generated.mjs";
|
|
5
|
-
import { NonEmptyObject } from "type-fest";
|
|
6
|
-
|
|
7
5
|
//#region src/configure/services/tailordb/types.d.ts
|
|
8
6
|
type SerialConfig<T extends "string" | "integer" = "string" | "integer"> = Prettify<{
|
|
9
7
|
start: number;
|
|
@@ -23,6 +21,7 @@ interface DBFieldMetadata extends FieldMetadata {
|
|
|
23
21
|
serial?: SerialConfig;
|
|
24
22
|
relation?: boolean;
|
|
25
23
|
scale?: number;
|
|
24
|
+
default?: unknown;
|
|
26
25
|
}
|
|
27
26
|
interface DefinedDBFieldMetadata extends DefinedFieldMetadata {
|
|
28
27
|
index?: boolean;
|
|
@@ -37,6 +36,7 @@ interface DefinedDBFieldMetadata extends DefinedFieldMetadata {
|
|
|
37
36
|
};
|
|
38
37
|
serial?: boolean;
|
|
39
38
|
relation?: boolean;
|
|
39
|
+
default?: boolean;
|
|
40
40
|
}
|
|
41
41
|
type GqlOperationsConfig = GqlOperationsInput;
|
|
42
42
|
interface RawRelationConfig {
|
|
@@ -64,6 +64,11 @@ interface TailorDBTypeMetadata {
|
|
|
64
64
|
fields: string[];
|
|
65
65
|
unique?: boolean;
|
|
66
66
|
}>;
|
|
67
|
+
typeHook?: {
|
|
68
|
+
create?: Function;
|
|
69
|
+
update?: Function;
|
|
70
|
+
};
|
|
71
|
+
typeValidate?: Function;
|
|
67
72
|
}
|
|
68
73
|
/**
|
|
69
74
|
* Minimal structural interface for TailorDBField.
|
|
@@ -91,24 +96,68 @@ interface TailorDBType<Fields extends Record<string, TailorAnyDBField> = any, Us
|
|
|
91
96
|
}
|
|
92
97
|
type TailorAnyDBType = TailorDBType<any, any>;
|
|
93
98
|
type TailorDBInstance<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> = TailorDBType<Fields, User>;
|
|
94
|
-
type
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
type HookArgs<TData> = TData extends Record<string, unknown> ? { readonly [K in keyof TData]?: DeepReadonly<TData[K]> | null | undefined; } : unknown;
|
|
100
|
+
type CreateHookFn<TValue, TReturn> = (args: {
|
|
101
|
+
input: TValue;
|
|
102
|
+
invoker: TailorPrincipal | null;
|
|
103
|
+
now: Date;
|
|
104
|
+
}) => TReturn;
|
|
105
|
+
type UpdateHookFn<TValue, TReturn> = (args: {
|
|
106
|
+
input: TValue;
|
|
107
|
+
oldValue: TReturn;
|
|
97
108
|
invoker: TailorPrincipal | null;
|
|
109
|
+
now: Date;
|
|
98
110
|
}) => TReturn;
|
|
99
|
-
type Hook<
|
|
100
|
-
create?:
|
|
101
|
-
update?:
|
|
111
|
+
type Hook<TReturn, TCreateReturn = TReturn> = {
|
|
112
|
+
create?: CreateHookFn<TReturn | null, TCreateReturn>;
|
|
113
|
+
update?: UpdateHookFn<TReturn | null, TReturn>;
|
|
114
|
+
};
|
|
115
|
+
type DotJoin<A extends string, B extends string> = A extends "" ? B : `${A}.${B}`;
|
|
116
|
+
type DottedPaths<T, Prefix extends string = ""> = string extends keyof T ? string : T extends readonly (infer E)[] ? E extends Record<string, unknown> ? { [K in keyof E & string]: `${Prefix}[${number}].${K}` | DottedPaths<NonNullable<E[K]>, `${Prefix}[${number}].${K}`>; }[keyof E & string] : never : T extends Record<string, unknown> ? { [K in keyof T & string]: DotJoin<Prefix, K> | DottedPaths<NonNullable<T[K]>, DotJoin<Prefix, K>>; }[keyof T & string] : never;
|
|
117
|
+
type TypeValidateFn<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]>; }> = (args: {
|
|
118
|
+
newRecord: DeepReadonly<TData>;
|
|
119
|
+
oldRecord: DeepReadonly<TData> | null;
|
|
120
|
+
invoker: TailorPrincipal | null;
|
|
121
|
+
}, issues: (field: DottedPaths<Omit<TData, "id">>, message: string) => void) => void;
|
|
122
|
+
type TypeCreateHookFn<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]>; }> = (args: {
|
|
123
|
+
input: DeepReadonly<TData>;
|
|
124
|
+
invoker: TailorPrincipal | null;
|
|
125
|
+
now: Date;
|
|
126
|
+
}) => { [K in Exclude<keyof TData & string, "id">]?: TData[K] | null; };
|
|
127
|
+
type TypeUpdateHookFn<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]>; }> = (args: {
|
|
128
|
+
input: HookArgs<TData>;
|
|
129
|
+
oldRecord: DeepReadonly<TData>;
|
|
130
|
+
invoker: TailorPrincipal | null;
|
|
131
|
+
now: Date;
|
|
132
|
+
}) => { [K in Exclude<keyof TData & string, "id">]?: TData[K] | null; };
|
|
133
|
+
type TypeHook<F extends Record<string, TailorAnyDBField>> = {
|
|
134
|
+
create?: TypeCreateHookFn<F>;
|
|
135
|
+
update?: TypeUpdateHookFn<F>;
|
|
102
136
|
};
|
|
103
|
-
type Hooks<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]> }> = NonEmptyObject<{ [K in Exclude<keyof F, "id"> as F[K]["_defined"] extends {
|
|
104
|
-
hooks: unknown;
|
|
105
|
-
} ? never : F[K]["_defined"] extends {
|
|
106
|
-
type: "nested";
|
|
107
|
-
} ? never : K]?: Hook<TData, output<F[K]>> }>;
|
|
108
137
|
type ExcludeNestedDBFields<T extends Record<string, TailorAnyDBField>> = { [K in keyof T]: T[K] extends TailorDBField<{
|
|
109
138
|
type: "nested";
|
|
110
139
|
array: boolean;
|
|
111
|
-
}, any> ? never : T[K] };
|
|
140
|
+
}, any> ? never : T[K]; };
|
|
141
|
+
type ExcludeHookedDBFields<T extends Record<string, TailorAnyDBField>> = { [K in keyof T]: T[K] extends TailorDBField<{
|
|
142
|
+
type: TailorFieldType;
|
|
143
|
+
array: boolean;
|
|
144
|
+
hooks: {
|
|
145
|
+
create: true;
|
|
146
|
+
update: boolean;
|
|
147
|
+
};
|
|
148
|
+
}, any> ? never : T[K] extends TailorDBField<{
|
|
149
|
+
type: TailorFieldType;
|
|
150
|
+
array: boolean;
|
|
151
|
+
hooks: {
|
|
152
|
+
create: boolean;
|
|
153
|
+
update: true;
|
|
154
|
+
};
|
|
155
|
+
}, any> ? never : T[K]; };
|
|
156
|
+
type ExcludeDefaultedDBFields<T extends Record<string, TailorAnyDBField>> = { [K in keyof T]: T[K] extends TailorDBField<{
|
|
157
|
+
type: TailorFieldType;
|
|
158
|
+
array: boolean;
|
|
159
|
+
default: true;
|
|
160
|
+
}, any> ? never : T[K]; };
|
|
112
161
|
interface TypeFeatures {
|
|
113
162
|
pluralForm?: string;
|
|
114
163
|
aggregation?: true;
|
|
@@ -146,4 +195,4 @@ type TailorDBServiceInput = {
|
|
|
146
195
|
[namespace: string]: TailorDBServiceConfigInput | TailorDBExternalConfig;
|
|
147
196
|
};
|
|
148
197
|
//#endregion
|
|
149
|
-
export { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeNestedDBFields, GqlOperationsConfig, Hook,
|
|
198
|
+
export { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeDefaultedDBFields, ExcludeHookedDBFields, ExcludeNestedDBFields, GqlOperationsConfig, Hook, IndexDef, PluginAttachment, RawRelationConfig, RelationType, SerialConfig, TailorAnyDBField, TailorAnyDBType, TailorDBExternalConfig, TailorDBField, TailorDBInstance, TailorDBServiceInput, TailorDBType, TailorDBTypeMetadata, TypeFeatures, TypeHook, TypeValidateFn };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ExecutionPolicyConcurrency, ExecutionPolicyDefInput, ExecutionPolicyExactInstance, ExecutionPolicyGroupOptions, ExecutionPolicyInstance, ExecutionPolicyWildcardInstance, ResolvedExecutionPolicyInstance } from "./execution-policy.types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region src/configure/services/workflow/execution-policy.d.ts
|
|
4
3
|
type ResolveKey<Def, Fallback extends string> = Def extends {
|
|
5
4
|
key: infer K extends string;
|
|
@@ -59,10 +58,10 @@ declare function defineWorkflowExecutionPolicy<const N extends string, const D e
|
|
|
59
58
|
* }));
|
|
60
59
|
*
|
|
61
60
|
* // In a workflow job function:
|
|
62
|
-
* await tailor.workflow.
|
|
61
|
+
* await tailor.workflow.startJobFunction("worker", args, {
|
|
63
62
|
* executionPolicyKey: executionPolicies.premium.key,
|
|
64
63
|
* });
|
|
65
|
-
* await tailor.workflow.
|
|
64
|
+
* await tailor.workflow.startJobFunction("worker", args, {
|
|
66
65
|
* executionPolicyKey: executionPolicies["tenant-api"].keyFor(input.tenantId),
|
|
67
66
|
* });
|
|
68
67
|
*/
|
|
@@ -5,4 +5,5 @@ import { WorkflowJob, WorkflowJobContext, createWorkflowJob } from "./job.mjs";
|
|
|
5
5
|
import { Workflow, WorkflowConfig, createWorkflow } from "./workflow.mjs";
|
|
6
6
|
import { defineWorkflowExecutionPolicies, defineWorkflowExecutionPolicy } from "./execution-policy.mjs";
|
|
7
7
|
import { WaitPointInstance, createWaitPoint, createWaitPoints } from "./wait-point.mjs";
|
|
8
|
+
import "./types.mjs";
|
|
8
9
|
export { type ConcurrencyPolicy, type ExecutionPolicyConcurrency, type ExecutionPolicyDefInput, type ExecutionPolicyExactInstance, type ExecutionPolicyGroupOptions, type ExecutionPolicyInstance, type ExecutionPolicyWildcardInstance, type ResolvedExecutionPolicyInstance, type RetryPolicy, WaitPointInstance, Workflow, WorkflowConfig, WorkflowJob, WorkflowJobContext, type WorkflowServiceConfig, type WorkflowServiceInput, createWaitPoint, createWaitPoints, createWorkflow, createWorkflowJob, defineWorkflowExecutionPolicies, defineWorkflowExecutionPolicy };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { TailorEnv, TailorPrincipal } from "../../../runtime/types.mjs";
|
|
2
2
|
import { JsonCompatible, TypeLevelError } from "../../../types/helpers.mjs";
|
|
3
3
|
import { TriggerJobFunctionOptions } from "../../../runtime/workflow.mjs";
|
|
4
|
-
|
|
5
4
|
//#region src/configure/services/workflow/job.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Context object passed as the second argument to workflow job body functions.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MachineUserName } from "../auth/types.mjs";
|
|
2
2
|
import { ConcurrencyPolicy, RetryPolicy } from "../../../types/workflow.generated.mjs";
|
|
3
|
+
import "../../types/machine-user.mjs";
|
|
3
4
|
import { WorkflowJob } from "./job.mjs";
|
|
4
|
-
|
|
5
5
|
//#region src/configure/services/workflow/workflow.d.ts
|
|
6
6
|
interface WorkflowConfig<Job extends WorkflowJob<any, any, any> = WorkflowJob<any, any, any>> {
|
|
7
7
|
name: string;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { EnumValue } from "./field.types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region src/configure/types/field.d.ts
|
|
4
3
|
type AllowedValues = readonly [string | EnumValue, ...(string | EnumValue)[]];
|
|
5
|
-
type AllowedValuesOutput<V extends AllowedValues> = V[number] extends infer T ? T extends string ? T : T extends {
|
|
4
|
+
type AllowedValuesOutput<V extends AllowedValues> = V[number] extends (infer T) ? T extends string ? T : T extends {
|
|
6
5
|
value: infer K;
|
|
7
6
|
} ? K : never : never;
|
|
8
7
|
//#endregion
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { TailorPrincipal } from "../../runtime/types.mjs";
|
|
2
|
-
import { InferFieldsOutput, output } from "../../types/helpers.mjs";
|
|
3
|
-
import { NonEmptyObject } from "type-fest";
|
|
4
|
-
|
|
5
1
|
//#region src/configure/types/field.types.d.ts
|
|
6
2
|
interface EnumValue {
|
|
7
3
|
value: string;
|
|
@@ -47,50 +43,15 @@ type ArrayFieldOutput<T, O extends FieldOptions> = [O] extends [{
|
|
|
47
43
|
array: true;
|
|
48
44
|
}] ? T[] : T;
|
|
49
45
|
/**
|
|
50
|
-
*
|
|
46
|
+
* Field validation function. Return an error message string to fail, or void/undefined to pass.
|
|
51
47
|
*/
|
|
52
|
-
type ValidateFn<O
|
|
48
|
+
type ValidateFn<O> = (args: {
|
|
53
49
|
value: O;
|
|
54
|
-
|
|
55
|
-
invoker: TailorPrincipal | null;
|
|
56
|
-
}) => boolean;
|
|
50
|
+
}) => string | void;
|
|
57
51
|
/**
|
|
58
|
-
*
|
|
52
|
+
* Input type for field validation
|
|
59
53
|
*/
|
|
60
|
-
type
|
|
61
|
-
/**
|
|
62
|
-
* Field-level validation function
|
|
63
|
-
*/
|
|
64
|
-
type FieldValidateFn<O> = ValidateFn<O>;
|
|
65
|
-
/**
|
|
66
|
-
* Field-level validation configuration
|
|
67
|
-
*/
|
|
68
|
-
type FieldValidateConfig<O> = ValidateConfig<O>;
|
|
69
|
-
/**
|
|
70
|
-
* Input type for field validation - can be either a function or a tuple of [function, errorMessage]
|
|
71
|
-
*/
|
|
72
|
-
type FieldValidateInput<O> = FieldValidateFn<O> | FieldValidateConfig<O>;
|
|
73
|
-
/**
|
|
74
|
-
* Base validators type for field collections
|
|
75
|
-
* @template F - Record of fields
|
|
76
|
-
* @template ExcludeKeys - Keys to exclude from validation (default: "id" for TailorDB)
|
|
77
|
-
*/
|
|
78
|
-
type ValidatorsBase<F extends Record<string, {
|
|
79
|
-
_defined: any;
|
|
80
|
-
_output: any;
|
|
81
|
-
[key: string]: any;
|
|
82
|
-
}>, ExcludeKeys extends string = "id"> = NonEmptyObject<{ [K in Exclude<keyof F, ExcludeKeys> as F[K]["_defined"] extends {
|
|
83
|
-
validate: unknown;
|
|
84
|
-
} ? never : K]?: ValidateFn<output<F[K]>, InferFieldsOutput<F>> | ValidateConfig<output<F[K]>, InferFieldsOutput<F>> | (ValidateFn<output<F[K]>, InferFieldsOutput<F>> | ValidateConfig<output<F[K]>, InferFieldsOutput<F>>)[] }>;
|
|
85
|
-
/**
|
|
86
|
-
* Validators type (by default excludes "id" field for TailorDB compatibility)
|
|
87
|
-
* Can be used with both TailorField and TailorDBField
|
|
88
|
-
*/
|
|
89
|
-
type Validators<F extends Record<string, {
|
|
90
|
-
_defined: any;
|
|
91
|
-
_output: any;
|
|
92
|
-
[key: string]: any;
|
|
93
|
-
}>> = ValidatorsBase<F, "id">;
|
|
54
|
+
type FieldValidateInput<O> = ValidateFn<O>;
|
|
94
55
|
/**
|
|
95
56
|
* Minimal structural interface for TailorField.
|
|
96
57
|
* Defines only the properties needed by parser, plugin, cli, and types layers.
|
|
@@ -106,4 +67,4 @@ interface TailorField<Defined extends DefinedFieldMetadata = DefinedFieldMetadat
|
|
|
106
67
|
}
|
|
107
68
|
type TailorAnyField = TailorField<any>;
|
|
108
69
|
//#endregion
|
|
109
|
-
export { ArrayFieldOutput, DefinedFieldMetadata, EnumValue, FieldMetadata, FieldOptions, FieldOutput, FieldValidateInput, TailorAnyField, TailorField, TailorFieldType, TailorToTs,
|
|
70
|
+
export { ArrayFieldOutput, DefinedFieldMetadata, EnumValue, FieldMetadata, FieldOptions, FieldOutput, FieldValidateInput, TailorAnyField, TailorField, TailorFieldType, TailorToTs, ValidateFn };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MachineUserName, MachineUserNameRegistry } from "../services/auth/types.mjs";
|
|
2
2
|
import { AllowedValues, AllowedValuesOutput } from "./field.mjs";
|
|
3
3
|
import { TailorAnyField, TailorField } from "./type.mjs";
|
|
4
|
+
import "./machine-user.mjs";
|
|
4
5
|
export { AllowedValues, AllowedValuesOutput, type MachineUserName, type MachineUserNameRegistry, TailorAnyField, TailorField };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { TypeLevelError } from "../../types/helpers.mjs";
|
|
2
1
|
import { DefinedFieldMetadata, FieldMetadata, FieldValidateInput, TailorField as TailorField$1, TailorFieldType } from "./field.types.mjs";
|
|
3
|
-
import {
|
|
2
|
+
import { TypeLevelError } from "../../types/helpers.mjs";
|
|
3
|
+
import { FieldParseArgs } from "../../runtime/field-parse.mjs";
|
|
4
4
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
5
|
-
|
|
6
5
|
//#region src/configure/types/type.d.ts
|
|
7
6
|
type AnyBuilderMethod = any;
|
|
8
7
|
type TailorAnyField = Omit<TailorField$1<AnyBuilderMethod, AnyBuilderMethod, FieldMetadata, TailorFieldType>, "fields"> & {
|
|
@@ -12,7 +11,6 @@ type TailorAnyField = Omit<TailorField$1<AnyBuilderMethod, AnyBuilderMethod, Fie
|
|
|
12
11
|
typeName: AnyBuilderMethod;
|
|
13
12
|
validate: AnyBuilderMethod;
|
|
14
13
|
parse: AnyBuilderMethod;
|
|
15
|
-
_parseInternal: AnyBuilderMethod;
|
|
16
14
|
};
|
|
17
15
|
type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
18
16
|
type WithFieldDescription<Defined> = Defined & {
|
|
@@ -70,13 +68,6 @@ interface TailorField<Defined extends DefinedFieldMetadata = DefinedFieldMetadat
|
|
|
70
68
|
* @returns Validation result
|
|
71
69
|
*/
|
|
72
70
|
parse(args: FieldParseArgs): StandardSchemaV1.Result<Output>;
|
|
73
|
-
/**
|
|
74
|
-
* Internal parse method that tracks field path for nested validation
|
|
75
|
-
* @private
|
|
76
|
-
* @param args - Parse arguments
|
|
77
|
-
* @returns Validation result
|
|
78
|
-
*/
|
|
79
|
-
_parseInternal(args: FieldParseInternalArgs): StandardSchemaV1.Result<Output>;
|
|
80
71
|
}
|
|
81
72
|
//#endregion
|
|
82
73
|
export { TailorAnyField, TailorField };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { n as logger } from "./logger-
|
|
1
|
+
import { n as logger } from "./logger-BwS4ppwO.mjs";
|
|
2
2
|
import { t as readPackageJson } from "./package-json-8b0O9TlX.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { n as userAgentFromVersion } from "./user-agent-Bgsszb5I.mjs";
|
|
4
|
+
import { r as writeSecretFile, t as ensureSecretDir } from "./secret-file-C3J4Gy8r.mjs";
|
|
4
5
|
import * as path from "pathe";
|
|
5
6
|
import * as fs from "node:fs";
|
|
6
7
|
import { parseYAML } from "confbox";
|
|
@@ -419,4 +420,4 @@ function initCrashReporting() {
|
|
|
419
420
|
|
|
420
421
|
//#endregion
|
|
421
422
|
export { JSON_FOOTER_MARKER as a, CRASH_LOG_EXTENSION as i, reportCrash as n, parseCrashReportConfig as o, sendCrashReport as r, initCrashReporting as t };
|
|
422
|
-
//# sourceMappingURL=crashreport-
|
|
423
|
+
//# sourceMappingURL=crashreport-CxHne11E.mjs.map
|