@tailor-platform/sdk 2.0.0-next.2 → 2.0.0-next.4
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 +511 -10
- package/README.md +9 -9
- package/agent-skills/{tailor-sdk → tailor}/SKILL.md +3 -1
- package/dist/aigateway-DR4Kwuik.mjs +9 -0
- package/dist/aigateway-DR4Kwuik.mjs.map +1 -0
- package/dist/application-BO4ZF8wP.mjs +3 -0
- package/dist/application-BX13RArL.mjs +6669 -0
- package/dist/application-BX13RArL.mjs.map +1 -0
- package/dist/authconnection-CZvi9ANm.mjs +9 -0
- package/dist/authconnection-CZvi9ANm.mjs.map +1 -0
- package/dist/brand-Eo4pLXPJ.mjs.map +1 -1
- package/dist/cli/cache/bundle-cache.d.mts +1 -0
- package/dist/cli/cache/store.d.mts +1 -0
- package/dist/cli/cache/types.d.mts +1 -0
- package/dist/cli/commands/api/api-call.d.mts +19 -0
- package/dist/cli/commands/api/index.d.mts +3 -0
- package/dist/cli/commands/deploy/aigateway.d.mts +1 -0
- package/dist/cli/commands/deploy/application.d.mts +1 -0
- package/dist/cli/commands/deploy/apply-phases.d.mts +1 -0
- package/dist/cli/commands/deploy/auth.d.mts +1 -0
- package/dist/cli/commands/deploy/deploy.d.mts +24 -0
- package/dist/cli/commands/deploy/executor.d.mts +1 -0
- package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
- package/dist/cli/commands/deploy/function-registry.d.mts +2 -0
- package/dist/cli/commands/deploy/idp.d.mts +1 -0
- package/dist/cli/commands/deploy/resolver.d.mts +1 -0
- package/dist/cli/commands/deploy/secret-manager.d.mts +1 -0
- package/dist/cli/commands/deploy/staticwebsite.d.mts +1 -0
- package/dist/cli/commands/deploy/tailordb/index.d.mts +1 -0
- package/dist/cli/commands/deploy/types.d.mts +1 -0
- package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +1 -0
- package/dist/cli/commands/deploy/workflow.d.mts +1 -0
- package/dist/cli/commands/executor/get.d.mts +29 -0
- package/dist/cli/commands/executor/jobs.d.mts +123 -0
- package/dist/cli/commands/executor/list.d.mts +19 -0
- package/dist/cli/commands/executor/transform.d.mts +41 -0
- package/dist/cli/commands/executor/trigger.d.mts +41 -0
- package/dist/cli/commands/executor/webhook.d.mts +22 -0
- package/dist/cli/commands/function/get.d.mts +18 -0
- package/dist/cli/commands/function/list.d.mts +22 -0
- package/dist/cli/commands/function/transform.d.mts +11 -0
- package/dist/cli/commands/generate/options.d.mts +7 -0
- package/dist/cli/commands/generate/seed/bundler.d.mts +26 -0
- package/dist/cli/commands/generate/service.d.mts +11 -0
- package/dist/cli/commands/machineuser/list.d.mts +27 -0
- package/dist/cli/commands/machineuser/token.d.mts +22 -0
- package/dist/cli/commands/oauth2client/get.d.mts +18 -0
- package/dist/cli/commands/oauth2client/list.d.mts +20 -0
- package/dist/cli/commands/oauth2client/transform.d.mts +20 -0
- package/dist/cli/commands/organization/folder/create.d.mts +18 -0
- package/dist/cli/commands/organization/folder/delete.d.mts +16 -0
- package/dist/cli/commands/organization/folder/get.d.mts +17 -0
- package/dist/cli/commands/organization/folder/list.d.mts +22 -0
- package/dist/cli/commands/organization/folder/update.d.mts +18 -0
- package/dist/cli/commands/organization/get.d.mts +16 -0
- package/dist/cli/commands/organization/list.d.mts +15 -0
- package/dist/cli/commands/organization/transform.d.mts +27 -0
- package/dist/cli/commands/organization/tree.d.mts +25 -0
- package/dist/cli/commands/organization/update.d.mts +17 -0
- package/dist/cli/commands/remove.d.mts +16 -0
- package/dist/cli/commands/show.d.mts +34 -0
- package/dist/cli/commands/tailordb/migrate/bundler.d.mts +28 -0
- package/dist/cli/commands/tailordb/migrate/config.d.mts +19 -0
- package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +223 -0
- package/dist/cli/commands/tailordb/migrate/generate.d.mts +17 -0
- package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +202 -0
- package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
- package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
- package/dist/cli/commands/tailordb/truncate.d.mts +19 -0
- package/dist/cli/commands/workflow/executions.d.mts +75 -0
- package/dist/cli/commands/workflow/get.d.mts +29 -0
- package/dist/cli/commands/workflow/list.d.mts +19 -0
- package/dist/cli/commands/workflow/resume.d.mts +23 -0
- package/dist/cli/commands/workflow/start.d.mts +61 -0
- package/dist/cli/commands/workflow/status.d.mts +5 -0
- package/dist/cli/commands/workflow/transform.d.mts +33 -0
- package/dist/cli/commands/workflow/wait.d.mts +16 -0
- package/dist/cli/commands/workflow/waiter.d.mts +23 -0
- package/dist/cli/commands/workspace/app/health.d.mts +18 -0
- package/dist/cli/commands/workspace/app/list.d.mts +22 -0
- package/dist/cli/commands/workspace/app/transform.d.mts +18 -0
- package/dist/cli/commands/workspace/create.d.mts +25 -0
- package/dist/cli/commands/workspace/delete.d.mts +15 -0
- package/dist/cli/commands/workspace/get.d.mts +17 -0
- package/dist/cli/commands/workspace/list.d.mts +17 -0
- package/dist/cli/commands/workspace/restore.d.mts +15 -0
- package/dist/cli/commands/workspace/transform.d.mts +16 -0
- package/dist/cli/commands/workspace/user/invite.d.mts +22 -0
- package/dist/cli/commands/workspace/user/list.d.mts +22 -0
- package/dist/cli/commands/workspace/user/remove.d.mts +17 -0
- package/dist/cli/commands/workspace/user/transform.d.mts +8 -0
- package/dist/cli/commands/workspace/user/update.d.mts +22 -0
- package/dist/cli/erd-viewer-assets/app.js +279 -36
- package/dist/cli/erd-viewer-assets/index.html +4 -0
- package/dist/cli/erd-viewer-assets/styles.css +252 -5
- package/dist/cli/index.d.mts +18 -3
- package/dist/cli/index.mjs +2237 -520
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/lib.d.mts +81 -21107
- package/dist/cli/lib.mjs +7 -10
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/cli/query/index.d.mts +39 -0
- package/dist/cli/services/application.d.mts +1 -0
- package/dist/cli/services/auth/service.d.mts +1 -0
- package/dist/cli/services/executor/service.d.mts +1 -0
- package/dist/cli/services/http-adapter/bundler.d.mts +1 -0
- package/dist/cli/services/http-adapter/service.d.mts +1 -0
- package/dist/cli/services/resolver/service.d.mts +1 -0
- package/dist/cli/services/tailordb/service.d.mts +1 -0
- package/dist/cli/services/workflow/bundler.d.mts +1 -0
- package/dist/cli/services/workflow/service.d.mts +1 -0
- package/dist/cli/shared/args.d.mts +13 -0
- package/dist/cli/shared/client.d.mts +1273 -0
- package/dist/cli/shared/config-loader.d.mts +26 -0
- package/dist/cli/shared/context.d.mts +28 -0
- package/dist/cli/shared/script-executor.d.mts +75 -0
- package/dist/cli/shared/seed-chunker.d.mts +46 -0
- package/dist/cli/shared/trigger-context.d.mts +1 -0
- package/dist/cli/shared/type-generator.d.mts +20 -0
- package/dist/cli/ts-hook.d.mts +4 -0
- package/dist/cli/ts-hook.mjs +333 -0
- package/dist/completion/zsh-worker.zsh +1531 -1131
- package/dist/configure/config/index.d.mts +21 -0
- package/dist/configure/config/types.d.mts +105 -0
- package/dist/configure/index.d.mts +124 -9
- package/dist/configure/index.mjs +136 -23
- package/dist/configure/index.mjs.map +1 -1
- package/dist/configure/services/aigateway/index.d.mts +17 -0
- package/dist/configure/services/aigateway/types.d.mts +11 -0
- package/dist/configure/services/auth/index.d.mts +34 -0
- package/dist/configure/services/auth/types.d.mts +172 -0
- package/dist/configure/services/executor/executor.d.mts +81 -0
- package/dist/configure/services/executor/index.d.mts +8 -0
- package/dist/configure/services/executor/operation.d.mts +45 -0
- package/dist/configure/services/executor/trigger/event.d.mts +272 -0
- package/dist/configure/services/executor/trigger/index.d.mts +8 -0
- package/dist/configure/services/executor/trigger/schedule.d.mts +25 -0
- package/dist/configure/services/executor/trigger/webhook.d.mts +44 -0
- package/dist/configure/services/executor/types.d.mts +2 -0
- package/dist/configure/services/http-adapter/http-adapter.d.mts +125 -0
- package/dist/configure/services/http-adapter/index.d.mts +2 -0
- package/dist/configure/services/idp/index.d.mts +64 -0
- package/dist/configure/services/idp/permission.d.mts +80 -0
- package/dist/configure/services/idp/types.d.mts +20 -0
- package/dist/configure/services/index.d.mts +34 -0
- package/dist/configure/services/resolver/index.d.mts +5 -0
- package/dist/configure/services/resolver/resolver.d.mts +75 -0
- package/dist/configure/services/resolver/types.d.mts +6 -0
- package/dist/configure/services/secrets/index.d.mts +38 -0
- package/dist/configure/services/secrets/types.d.mts +11 -0
- package/dist/configure/services/staticwebsite/index.d.mts +19 -0
- package/dist/configure/services/staticwebsite/types.d.mts +11 -0
- package/dist/configure/services/tailordb/index.d.mts +4 -0
- package/dist/configure/services/tailordb/permission.d.mts +119 -0
- package/dist/configure/services/tailordb/schema.d.mts +456 -0
- package/dist/configure/services/tailordb/types.d.mts +149 -0
- package/dist/configure/services/workflow/execution-policy.d.mts +71 -0
- package/dist/configure/services/workflow/execution-policy.types.d.mts +104 -0
- package/dist/configure/services/workflow/index.d.mts +8 -0
- package/dist/configure/services/workflow/job.d.mts +84 -0
- package/dist/configure/services/workflow/types.d.mts +2 -0
- package/dist/configure/services/workflow/wait-point.d.mts +73 -0
- package/dist/configure/services/workflow/workflow.d.mts +54 -0
- package/dist/configure/types/aigateway-name.d.mts +12 -0
- package/dist/configure/types/connection-name.d.mts +12 -0
- package/dist/configure/types/field-runtime.d.mts +17 -0
- package/dist/configure/types/field.d.mts +9 -0
- package/dist/configure/types/field.types.d.mts +109 -0
- package/dist/configure/types/idp-name.d.mts +12 -0
- package/dist/configure/types/index.d.mts +4 -0
- package/dist/configure/types/machine-user.d.mts +2 -0
- package/dist/configure/types/type.d.mts +82 -0
- package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
- package/dist/context-DYQVYWqZ.mjs.map +1 -0
- package/dist/{crashreport-DFq-vsU0.mjs → crashreport-Cg-pqRJV.mjs} +6 -6
- package/dist/{crashreport-DFq-vsU0.mjs.map → crashreport-Cg-pqRJV.mjs.map} +1 -1
- package/dist/{crashreport-BMWcxeSE.mjs → crashreport-D3RjuSYb.mjs} +1 -1
- package/dist/enum-constants-j9QBF0cB.mjs.map +1 -1
- package/dist/{errors-Dtf2WPaW.mjs → errors-118wUDRr.mjs} +2 -2
- package/dist/errors-118wUDRr.mjs.map +1 -0
- package/dist/field-runtime-CAnh_oow.mjs +183 -0
- package/dist/field-runtime-CAnh_oow.mjs.map +1 -0
- package/dist/{file-BbdFGdMV.mjs → file-BUcmVIH2.mjs} +12 -14
- package/dist/file-BUcmVIH2.mjs.map +1 -0
- package/dist/{file-utils-CYZnO1pX.mjs → file-utils-yEiIS4nJ.mjs} +2 -2
- package/dist/file-utils-yEiIS4nJ.mjs.map +1 -0
- package/dist/{globals-Cf0sxIt8.mjs → globals-BjhJJ2dN.mjs} +5 -47
- package/dist/globals-BjhJJ2dN.mjs.map +1 -0
- package/dist/iconv-QWaZh0TT.mjs +38 -0
- package/dist/iconv-QWaZh0TT.mjs.map +1 -0
- package/dist/{idp-BDbK5gjm.mjs → idp-RA_swu-h.mjs} +12 -5
- package/dist/idp-RA_swu-h.mjs.map +1 -0
- package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
- package/dist/interceptor-e33JtsC-.mjs.map +1 -0
- package/dist/kysely/index.d.mts +2 -3
- package/dist/{kysely-type-DR8uzZTA.mjs → kysely-type-D-zflMGf.mjs} +2 -2
- package/dist/{kysely-type-DR8uzZTA.mjs.map → kysely-type-D-zflMGf.mjs.map} +1 -1
- package/dist/{logger-CxF-Ex5d.mjs → logger-BEiZZ3qT.mjs} +3 -3
- package/dist/{logger-CxF-Ex5d.mjs.map → logger-BEiZZ3qT.mjs.map} +1 -1
- package/dist/parser/service/auth/index.d.mts +1 -0
- package/dist/parser/service/auth/schema.d.mts +1 -0
- package/dist/parser/service/http-adapter/index.d.mts +1 -0
- package/dist/parser/service/http-adapter/schema.d.mts +1 -0
- package/dist/parser/service/idp/types.d.mts +4 -0
- package/dist/parser/service/tailordb/types.d.mts +126 -0
- package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
- package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
- package/dist/plugin/builtin/enum-constants/index.d.mts +16 -1
- package/dist/plugin/builtin/file-utils/index.d.mts +16 -1
- package/dist/plugin/builtin/file-utils/index.mjs +1 -1
- package/dist/plugin/builtin/kysely-type/index.d.mts +16 -1
- package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
- package/dist/plugin/builtin/seed/index.d.mts +45 -1
- package/dist/plugin/builtin/seed/index.mjs +1 -1
- package/dist/plugin/get-generated-type.d.mts +17 -0
- package/dist/plugin/index.d.mts +3 -118
- package/dist/plugin/index.mjs +1 -1
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/plugin/manager.d.mts +1 -0
- package/dist/plugin/types.d.mts +243 -0
- package/dist/plugin/with-context.d.mts +102 -0
- package/dist/{runtime-CY4JvrDj.mjs → register-ts-hook-BM1caLT0.mjs} +4128 -2744
- package/dist/register-ts-hook-BM1caLT0.mjs.map +1 -0
- package/dist/{registry-DH4m7eYo.mjs → registry-BSbq6SPo.mjs} +4 -3
- package/dist/registry-BSbq6SPo.mjs.map +1 -0
- package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
- package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
- package/dist/resource_pb-BRv7AMXK.mjs +49 -0
- package/dist/resource_pb-BRv7AMXK.mjs.map +1 -0
- package/dist/runtime/aigateway.d.mts +26 -0
- package/dist/runtime/aigateway.mjs +3 -0
- package/dist/runtime/authconnection.d.mts +22 -2
- package/dist/runtime/authconnection.mjs +2 -2
- package/dist/runtime/context.d.mts +55 -2
- package/dist/runtime/context.mjs +2 -2
- package/dist/runtime/file.d.mts +170 -2
- package/dist/runtime/file.mjs +2 -2
- package/dist/runtime/globals.d.mts +31 -19
- package/dist/runtime/iconv.d.mts +73 -2
- package/dist/runtime/iconv.mjs +2 -2
- package/dist/runtime/idp.d.mts +129 -2
- package/dist/runtime/idp.mjs +2 -2
- package/dist/runtime/index.d.mts +47 -9
- package/dist/runtime/index.mjs +9 -8
- package/dist/runtime/secretmanager.d.mts +41 -2
- package/dist/runtime/secretmanager.mjs +2 -2
- package/dist/{types-BZ7QKVE8.d.mts → runtime/types.d.mts} +4 -5
- package/dist/runtime/workflow.d.mts +113 -2
- package/dist/runtime/workflow.mjs +2 -2
- package/dist/{schema-Dtw9Orye.mjs → schema-C4LYbXVG.mjs} +21 -186
- package/dist/schema-C4LYbXVG.mjs.map +1 -0
- package/dist/{secret-file-VSVGy1V0.mjs → secret-file-aoNXJmKa.mjs} +3 -3
- package/dist/secret-file-aoNXJmKa.mjs.map +1 -0
- package/dist/secretmanager-Bd45j7an.mjs +98 -0
- package/dist/secretmanager-Bd45j7an.mjs.map +1 -0
- package/dist/secretmanager-CYlpffsz.mjs +13 -0
- package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
- package/dist/seed/index.d.mts +1 -2
- package/dist/{seed-izIEyP3z.mjs → seed-CRSQJI_z.mjs} +14 -3
- package/dist/seed-CRSQJI_z.mjs.map +1 -0
- package/dist/service-CkIwEctX.mjs +3 -0
- package/dist/{service-DU1mVzri2.mjs → service-DeZeYa06.mjs} +3 -3
- package/dist/service-DeZeYa06.mjs.map +1 -0
- package/dist/{service-DjyqbCaJ.mjs → service-ufH7sS8o.mjs} +396 -58
- package/dist/service-ufH7sS8o.mjs.map +1 -0
- package/dist/service_pb-B2FF59sP.mjs +3 -0
- package/dist/service_pb-B5w9rjPY.mjs +955 -0
- package/dist/service_pb-B5w9rjPY.mjs.map +1 -0
- package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +204 -0
- package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +58 -0
- package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +316 -0
- package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +161 -0
- package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2070 -0
- package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +861 -0
- package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +112 -0
- package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +69 -0
- package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +439 -0
- package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +564 -0
- package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +145 -0
- package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +451 -0
- package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +192 -0
- package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +50 -0
- package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +407 -0
- package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +430 -0
- package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +73 -0
- package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +17 -0
- package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +309 -0
- package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +591 -0
- package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +330 -0
- package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +113 -0
- package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +346 -0
- package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +54 -0
- package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3576 -0
- package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +187 -0
- package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +29 -0
- package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +429 -0
- package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +90 -0
- package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +684 -0
- package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +797 -0
- package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +330 -0
- package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +183 -0
- package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +862 -0
- package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +310 -0
- package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2015 -0
- package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +483 -0
- package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
- package/dist/telemetry-BRVdwh14.mjs.map +1 -0
- package/dist/telemetry-CkbkeJxl.mjs +3 -0
- package/dist/types/aigateway.generated.d.mts +9 -0
- package/dist/types/app-config.generated.d.mts +4 -0
- package/dist/types/auth-connection.generated.d.mts +20 -0
- package/dist/types/auth.generated.d.mts +145 -0
- package/dist/types/executor.generated.d.mts +177 -0
- package/dist/types/helpers.d.mts +39 -0
- package/dist/types/http-adapter.generated.d.mts +17 -0
- package/dist/{workflow.generated-ClEjBYhm.d.mts → types/idp.generated.d.mts} +98 -185
- package/dist/types/resolver.generated.d.mts +39 -0
- package/dist/types/secrets.generated.d.mts +14 -0
- package/dist/types/staticwebsite.generated.d.mts +10 -0
- package/dist/{types-CdcQh4Z2.d.mts → types/tailordb.generated.d.mts} +2 -287
- package/dist/types/workflow.generated.d.mts +12 -0
- package/dist/types-C-lQ4se3.mjs +4 -0
- package/dist/types-CXF2OYdR.mjs +199 -0
- package/dist/types-CXF2OYdR.mjs.map +1 -0
- package/dist/utils/test/index.d.mts +5 -89
- package/dist/utils/test/index.mjs.map +1 -1
- package/dist/utils/test/mock.d.mts +87 -0
- package/dist/vitest/environment.d.mts +1 -2
- package/dist/vitest/environment.mjs +2 -2
- package/dist/vitest/environment.mjs.map +1 -1
- package/dist/vitest/index.d.mts +12 -428
- package/dist/vitest/index.mjs +740 -9
- package/dist/vitest/index.mjs.map +1 -1
- package/dist/vitest/mock-kysely.d.mts +62 -0
- package/dist/vitest/mock.d.mts +9 -0
- package/dist/vitest/mocks/aigateway.d.mts +30 -0
- package/dist/vitest/mocks/authconnection.d.mts +28 -0
- package/dist/vitest/mocks/file.d.mts +41 -0
- package/dist/vitest/mocks/iconv.d.mts +27 -0
- package/dist/vitest/mocks/idp.d.mts +44 -0
- package/dist/vitest/mocks/secretmanager.d.mts +33 -0
- package/dist/vitest/mocks/tailordb.d.mts +71 -0
- package/dist/vitest/mocks/workflow.d.mts +117 -0
- package/dist/vitest/setup.d.mts +1 -2
- package/dist/vitest/setup.mjs +2 -2
- package/dist/vitest/workflow-local.d.mts +40 -0
- package/dist/workflow-GNuSnsTx.mjs +22 -0
- package/dist/workflow-GNuSnsTx.mjs.map +1 -0
- package/docs/cli/application.md +98 -250
- package/docs/cli/auth.md +51 -295
- package/docs/cli/completion.md +1 -25
- package/docs/cli/crashreport.md +3 -61
- package/docs/cli/executor.md +23 -187
- package/docs/cli/function.md +14 -130
- package/docs/cli/organization.md +11 -221
- package/docs/cli/plugin.md +29 -0
- package/docs/cli/query.md +2 -22
- package/docs/cli/secret.md +71 -251
- package/docs/cli/setup.md +137 -41
- package/docs/cli/skills.md +50 -39
- package/docs/cli/staticwebsite.md +32 -180
- package/docs/cli/tailordb.md +97 -323
- package/docs/cli/upgrade.md +2 -22
- package/docs/cli/user.md +78 -247
- package/docs/cli/workflow.md +44 -203
- package/docs/cli/workspace.md +165 -538
- package/docs/cli-reference.md +167 -67
- package/docs/configuration.md +34 -4
- package/docs/github-actions.md +46 -19
- package/docs/migration/v2.md +397 -26
- package/docs/multi-environment.md +29 -7
- package/docs/plugin/custom.md +4 -4
- package/docs/plugin/index.md +8 -8
- package/docs/quickstart.md +8 -7
- package/docs/runtime.md +9 -3
- package/docs/services/aigateway.md +18 -2
- package/docs/services/auth.md +34 -42
- package/docs/services/http-adapter.md +16 -1
- package/docs/services/idp.md +55 -2
- package/docs/services/resolver.md +2 -2
- package/docs/services/secret.md +11 -11
- package/docs/services/staticwebsite.md +8 -2
- package/docs/services/tailordb-migration.md +25 -23
- package/docs/services/tailordb.md +55 -32
- package/docs/services/workflow.md +92 -14
- package/docs/testing.md +49 -3
- package/package.json +42 -31
- package/postinstall.mjs +4 -6
- package/dist/application-Dtqap5jM.mjs +0 -3
- package/dist/application-XuMWK4eq.mjs +0 -7257
- package/dist/application-XuMWK4eq.mjs.map +0 -1
- package/dist/authconnection-D2MhtTN5.mjs +0 -15
- package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
- package/dist/authconnection-DvUQAjQS.d.mts +0 -39
- package/dist/context-Bd266-ru.mjs.map +0 -1
- package/dist/context-C2lEi9uw.d.mts +0 -47
- package/dist/errors-Dtf2WPaW.mjs.map +0 -1
- package/dist/field-DOsJCPFa.mjs +0 -22
- package/dist/field-DOsJCPFa.mjs.map +0 -1
- package/dist/file-BbdFGdMV.mjs.map +0 -1
- package/dist/file-Dq3NIt_F.d.mts +0 -211
- package/dist/file-utils-CYZnO1pX.mjs.map +0 -1
- package/dist/globals-Cf0sxIt8.mjs.map +0 -1
- package/dist/http-adapter.generated-DFsXDdm5.d.mts +0 -581
- package/dist/iconv-Co-TOPuH.d.mts +0 -122
- package/dist/iconv-D2vi8G36.mjs +0 -63
- package/dist/iconv-D2vi8G36.mjs.map +0 -1
- package/dist/idp-BDbK5gjm.mjs.map +0 -1
- package/dist/idp-DrhVrLmV.d.mts +0 -160
- package/dist/index-BI-_j9Z3.d.mts +0 -1013
- package/dist/index-C4JirJH8.d.mts +0 -18
- package/dist/index-CZfWhr0a.d.mts +0 -18
- package/dist/index-Cg8VKAdN.d.mts +0 -46
- package/dist/index-DYRjoLXD.d.mts +0 -47
- package/dist/index-lFpcjHPU.d.mts +0 -201
- package/dist/index-nW7hE6oE.d.mts +0 -18
- package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
- package/dist/mock-FPxmnt-y.mjs +0 -759
- package/dist/mock-FPxmnt-y.mjs.map +0 -1
- package/dist/registry-DH4m7eYo.mjs.map +0 -1
- package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
- package/dist/runtime-CY4JvrDj.mjs.map +0 -1
- package/dist/schema-Dtw9Orye.mjs.map +0 -1
- package/dist/secret-file-VSVGy1V0.mjs.map +0 -1
- package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
- package/dist/secretmanager-BVxw3ih_.mjs +0 -24
- package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
- package/dist/seed-izIEyP3z.mjs.map +0 -1
- package/dist/service-DCqIWibD.mjs +0 -3
- package/dist/service-DU1mVzri2.mjs.map +0 -1
- package/dist/service-DjyqbCaJ.mjs.map +0 -1
- package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
- package/dist/telemetry-ClwW5ohF.mjs +0 -3
- package/dist/types-74etvaxy.mjs +0 -4
- package/dist/types-BDRml5C3.d.mts +0 -574
- package/dist/types-BQijbo4m.mjs +0 -371
- package/dist/types-BQijbo4m.mjs.map +0 -1
- package/dist/types-BX4q6Mo6.d.mts +0 -339
- package/dist/workflow-BOmaZwwG.mjs +0 -43
- package/dist/workflow-BOmaZwwG.mjs.map +0 -1
- package/dist/workflow-BVy4XWjS.d.mts +0 -101
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Plugin } from "../../plugin/types.mjs";
|
|
2
|
+
import { AppConfig } from "../../configure/config/types.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/cli/shared/config-loader.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Loaded configuration with resolved path
|
|
7
|
+
*/
|
|
8
|
+
type LoadedConfig = AppConfig & {
|
|
9
|
+
path: string;
|
|
10
|
+
};
|
|
11
|
+
interface LoadConfigOptions {
|
|
12
|
+
/** Import cache-busting value for watch-mode reloads. */
|
|
13
|
+
importNonce?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Load Tailor configuration file and associated plugins.
|
|
17
|
+
* @param configPath - Optional explicit config path
|
|
18
|
+
* @param options - Optional module import behavior.
|
|
19
|
+
* @returns Loaded config, plugins, and config path
|
|
20
|
+
*/
|
|
21
|
+
declare function loadConfig(configPath?: string, options?: LoadConfigOptions): Promise<{
|
|
22
|
+
config: LoadedConfig;
|
|
23
|
+
plugins: Plugin[];
|
|
24
|
+
}>;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { LoadConfigOptions, LoadedConfig, loadConfig };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/shared/context.d.ts
|
|
4
|
+
type LoadWorkspaceIdOptions = {
|
|
5
|
+
workspaceId?: string;
|
|
6
|
+
profile?: string;
|
|
7
|
+
};
|
|
8
|
+
type LoadAccessTokenOptions = {
|
|
9
|
+
profile?: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Load workspace ID from command options, environment variables, or platform config.
|
|
13
|
+
* In CLI context, env fallback is also handled by politty's arg env option.
|
|
14
|
+
* Priority: opts/workspaceId > env/workspaceId > opts/profile > error
|
|
15
|
+
* @param opts - Workspace and profile options
|
|
16
|
+
* @returns Resolved workspace ID
|
|
17
|
+
*/
|
|
18
|
+
declare function loadWorkspaceId(opts?: LoadWorkspaceIdOptions): Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Load access token from environment variables, command options, or platform config.
|
|
21
|
+
* In CLI context, profile env fallback is also handled by politty's arg env option.
|
|
22
|
+
* Priority: env/TAILOR_PLATFORM_TOKEN > env/TAILOR_TOKEN (deprecated) > opts/profile > env/profile > config/currentUser > error
|
|
23
|
+
* @param opts - Profile options
|
|
24
|
+
* @returns Resolved access token
|
|
25
|
+
*/
|
|
26
|
+
declare function loadAccessToken(opts?: LoadAccessTokenOptions): Promise<string>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { loadAccessToken, loadWorkspaceId };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { AuthInvoker } from "../../tailor-proto/src/tailor/v1/auth_resource_pb.mjs";
|
|
2
|
+
import { FunctionExecution_Status } from "../../tailor-proto/src/tailor/v1/function_resource_pb.mjs";
|
|
3
|
+
import { OperatorClient } from "./client.mjs";
|
|
4
|
+
import { Jsonifiable } from "type-fest";
|
|
5
|
+
|
|
6
|
+
//#region src/cli/shared/script-executor.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Options for script execution
|
|
9
|
+
*/
|
|
10
|
+
interface ScriptExecutionOptions<T extends Jsonifiable = Jsonifiable> {
|
|
11
|
+
/** Operator client instance */
|
|
12
|
+
client: OperatorClient;
|
|
13
|
+
/** Workspace ID */
|
|
14
|
+
workspaceId: string;
|
|
15
|
+
/** Script name (for identification) */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Bundled script code to execute */
|
|
18
|
+
code: string;
|
|
19
|
+
/** Optional JSON-serializable argument to pass to the script */
|
|
20
|
+
arg?: T;
|
|
21
|
+
/** Auth invoker for script execution */
|
|
22
|
+
invoker: AuthInvoker;
|
|
23
|
+
/** Polling interval in milliseconds (default: 1000ms) */
|
|
24
|
+
pollInterval?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Result of script execution
|
|
28
|
+
*/
|
|
29
|
+
interface ScriptExecutionResult {
|
|
30
|
+
/** Whether the script executed successfully */
|
|
31
|
+
success: boolean;
|
|
32
|
+
/** Logs output from the script execution */
|
|
33
|
+
logs: string;
|
|
34
|
+
/** Result value from the script execution */
|
|
35
|
+
result: string;
|
|
36
|
+
/** Error message if execution failed */
|
|
37
|
+
error?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Result from waiting for execution completion
|
|
41
|
+
*/
|
|
42
|
+
interface ExecutionWaitResult {
|
|
43
|
+
/** Execution status */
|
|
44
|
+
status: FunctionExecution_Status;
|
|
45
|
+
/** Logs output from the execution */
|
|
46
|
+
logs: string;
|
|
47
|
+
/** Result value from the execution */
|
|
48
|
+
result: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Wait for a function execution to complete
|
|
52
|
+
*
|
|
53
|
+
* Polls the getFunctionExecution API until the execution reaches a terminal state
|
|
54
|
+
* (SUCCESS or FAILED).
|
|
55
|
+
* @param {OperatorClient} client - Operator client instance
|
|
56
|
+
* @param {string} workspaceId - Workspace ID
|
|
57
|
+
* @param {string} executionId - Execution ID to wait for
|
|
58
|
+
* @param {number} [pollInterval] - Polling interval in milliseconds (default: 1000ms)
|
|
59
|
+
* @returns {Promise<ExecutionWaitResult>} Execution result
|
|
60
|
+
* @throws {Error} If execution is not found
|
|
61
|
+
*/
|
|
62
|
+
declare function waitForExecution(client: OperatorClient, workspaceId: string, executionId: string, pollInterval?: number): Promise<ExecutionWaitResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Execute a script via TestExecScript API and wait for completion
|
|
65
|
+
*
|
|
66
|
+
* This function:
|
|
67
|
+
* 1. Calls testExecScript API to start execution
|
|
68
|
+
* 2. Polls getFunctionExecution until completion
|
|
69
|
+
* 3. Returns structured result with success/failure status
|
|
70
|
+
* @param {ScriptExecutionOptions} options - Execution options
|
|
71
|
+
* @returns {Promise<ScriptExecutionResult>} Execution result
|
|
72
|
+
*/
|
|
73
|
+
declare function executeScript<T extends Jsonifiable = Jsonifiable>(options: ScriptExecutionOptions<T>): Promise<ScriptExecutionResult>;
|
|
74
|
+
//#endregion
|
|
75
|
+
export { ExecutionWaitResult, ScriptExecutionOptions, ScriptExecutionResult, executeScript, waitForExecution };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//#region src/cli/shared/seed-chunker.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Seed data chunker for splitting large seed data into manageable message sizes.
|
|
4
|
+
*
|
|
5
|
+
* When seed data exceeds the gRPC message size limit, this module splits the data
|
|
6
|
+
* into multiple chunks at type boundaries (or record boundaries for large types).
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Seed data keyed by type name, with an array of records per type.
|
|
10
|
+
*/
|
|
11
|
+
type SeedData = Record<string, Record<string, unknown>[]>;
|
|
12
|
+
/**
|
|
13
|
+
* A single chunk of seed data with metadata for ordered execution.
|
|
14
|
+
*/
|
|
15
|
+
type SeedChunk = {
|
|
16
|
+
data: SeedData;
|
|
17
|
+
order: string[];
|
|
18
|
+
index: number;
|
|
19
|
+
total: number;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Options for chunking seed data.
|
|
23
|
+
*/
|
|
24
|
+
type ChunkSeedDataOptions = {
|
|
25
|
+
/** Seed data keyed by type name */data: SeedData; /** Ordered list of type names (dependency order) */
|
|
26
|
+
order: string[]; /** Byte size of the bundled seed script code */
|
|
27
|
+
codeByteSize: number; /** Maximum gRPC message size in bytes (default: 3.5MB) */
|
|
28
|
+
maxMessageSize?: number;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Split seed data into chunks that fit within the gRPC message size limit.
|
|
32
|
+
*
|
|
33
|
+
* Algorithm:
|
|
34
|
+
* 1. Calculate the available budget for the arg field (maxMessageSize - codeByteSize - overhead)
|
|
35
|
+
* 2. If all data fits in one message, return a single chunk
|
|
36
|
+
* 3. Otherwise, iterate through types in dependency order:
|
|
37
|
+
* - If a type fits in the current chunk, add it
|
|
38
|
+
* - If adding a type would exceed the budget, finalize the current chunk and start a new one
|
|
39
|
+
* - If a single type exceeds the budget, split its records across multiple chunks
|
|
40
|
+
* - If a single record exceeds the budget, throw an error
|
|
41
|
+
* @param options - Chunking options
|
|
42
|
+
* @returns Array of seed chunks
|
|
43
|
+
*/
|
|
44
|
+
declare function chunkSeedData(options: ChunkSeedDataOptions): SeedChunk[];
|
|
45
|
+
//#endregion
|
|
46
|
+
export { ChunkSeedDataOptions, SeedChunk, SeedData, chunkSeedData };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AppConfig } from "../../configure/config/types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/shared/type-generator.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Options for generating user type definitions
|
|
6
|
+
*/
|
|
7
|
+
interface GenerateUserTypesOptions {
|
|
8
|
+
/** Application config */
|
|
9
|
+
config: AppConfig;
|
|
10
|
+
/** Path to Tailor config file */
|
|
11
|
+
configPath: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Generate user type definitions from the app config and write them to disk.
|
|
15
|
+
* @param options - Generation options
|
|
16
|
+
* @returns Promise that resolves when types are generated
|
|
17
|
+
*/
|
|
18
|
+
declare function generateUserTypes(options: GenerateUserTypesOptions): Promise<void>;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { generateUserTypes };
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { dirname, join, resolve as resolvePath } from "node:path";
|
|
4
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
5
|
+
// Node.js module hook: TypeScript resolver + type stripper via amaro.
|
|
6
|
+
// Registered programmatically so the CLI can import user .ts files without
|
|
7
|
+
// requiring --experimental-strip-types at process startup.
|
|
8
|
+
import { transformSync } from "amaro";
|
|
9
|
+
|
|
10
|
+
const TS_EXTENSIONS = [".ts", ".mts"];
|
|
11
|
+
const JS_TO_TS = new Map([
|
|
12
|
+
[".js", ".ts"],
|
|
13
|
+
[".mjs", ".mts"],
|
|
14
|
+
]);
|
|
15
|
+
const KNOWN_EXTENSIONS = [".ts", ".tsx", ".mts", ".js", ".mjs", ".json"];
|
|
16
|
+
|
|
17
|
+
// --- tsconfig paths resolution ---
|
|
18
|
+
|
|
19
|
+
const tsconfigPathsCache = new Map();
|
|
20
|
+
|
|
21
|
+
// Walks the `extends` chain and returns the nearest-defined `baseUrl` (which
|
|
22
|
+
// may come from a different config than the one defining `paths`), the
|
|
23
|
+
// nearest-defined `paths` object (TypeScript replaces, not merges, inherited
|
|
24
|
+
// `paths` once a config defines its own), and the directory of the config
|
|
25
|
+
// that defines that `paths` object (the TS 5.0+ fallback base when no
|
|
26
|
+
// `baseUrl` is defined anywhere in the chain).
|
|
27
|
+
function resolveEffectiveConfig(configFilePath, content, visited) {
|
|
28
|
+
if (visited.has(configFilePath)) return {};
|
|
29
|
+
visited.add(configFilePath);
|
|
30
|
+
|
|
31
|
+
const baseDir = dirname(configFilePath);
|
|
32
|
+
const opts = content.compilerOptions ?? {};
|
|
33
|
+
const ownBaseUrl =
|
|
34
|
+
typeof opts.baseUrl === "string" ? resolvePath(baseDir, opts.baseUrl) : undefined;
|
|
35
|
+
const ownRawPaths =
|
|
36
|
+
opts.paths && typeof opts.paths === "object" && !Array.isArray(opts.paths)
|
|
37
|
+
? opts.paths
|
|
38
|
+
: undefined;
|
|
39
|
+
|
|
40
|
+
let inherited = {};
|
|
41
|
+
const extendsField = content.extends;
|
|
42
|
+
if (typeof extendsField === "string") {
|
|
43
|
+
const base = resolvePath(baseDir, extendsField);
|
|
44
|
+
const extendsPath = base.endsWith(".json") ? base : base + ".json";
|
|
45
|
+
try {
|
|
46
|
+
const sub = JSON.parse(readFileSync(extendsPath, "utf-8"));
|
|
47
|
+
inherited = resolveEffectiveConfig(extendsPath, sub, visited);
|
|
48
|
+
} catch (e) {
|
|
49
|
+
if (e?.code !== "ENOENT" && !(e instanceof SyntaxError)) throw e;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
baseUrl: ownBaseUrl ?? inherited.baseUrl,
|
|
55
|
+
rawPaths: ownRawPaths ?? inherited.rawPaths,
|
|
56
|
+
pathsBaseDir: ownRawPaths ? baseDir : inherited.pathsBaseDir,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function collectPathsInto(out, configFilePath, content, visited) {
|
|
61
|
+
const { baseUrl, rawPaths, pathsBaseDir } = resolveEffectiveConfig(
|
|
62
|
+
configFilePath,
|
|
63
|
+
content,
|
|
64
|
+
visited,
|
|
65
|
+
);
|
|
66
|
+
if (!rawPaths) return;
|
|
67
|
+
|
|
68
|
+
const absBase = baseUrl ?? pathsBaseDir ?? dirname(configFilePath);
|
|
69
|
+
for (const [alias, targets] of Object.entries(rawPaths)) {
|
|
70
|
+
if (!Array.isArray(targets)) continue;
|
|
71
|
+
const normalized = targets
|
|
72
|
+
.filter((t) => typeof t === "string")
|
|
73
|
+
.map((t) => {
|
|
74
|
+
const isWildcard = t.endsWith("/*");
|
|
75
|
+
const resolved = resolvePath(absBase, isWildcard ? t.slice(0, -2) : t);
|
|
76
|
+
return pathToFileURL(resolved).href + (isWildcard ? "/*" : "");
|
|
77
|
+
});
|
|
78
|
+
if (normalized.length === 0) continue;
|
|
79
|
+
out[alias] = normalized;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function loadTsconfigPaths(startDir) {
|
|
84
|
+
if (tsconfigPathsCache.has(startDir)) return tsconfigPathsCache.get(startDir);
|
|
85
|
+
|
|
86
|
+
const paths = Object.create(null);
|
|
87
|
+
let dir = startDir;
|
|
88
|
+
let prev = "";
|
|
89
|
+
while (dir !== prev) {
|
|
90
|
+
try {
|
|
91
|
+
const configFilePath = join(dir, "tsconfig.json");
|
|
92
|
+
const content = JSON.parse(readFileSync(configFilePath, "utf-8"));
|
|
93
|
+
collectPathsInto(paths, configFilePath, content, new Set());
|
|
94
|
+
break;
|
|
95
|
+
} catch (e) {
|
|
96
|
+
if (e?.code !== "ENOENT" && !(e instanceof SyntaxError)) throw e;
|
|
97
|
+
if (e instanceof SyntaxError) break;
|
|
98
|
+
}
|
|
99
|
+
prev = dir;
|
|
100
|
+
dir = dirname(dir);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
tsconfigPathsCache.set(startDir, paths);
|
|
104
|
+
return paths;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function matchTsconfigPaths(specifier, paths) {
|
|
108
|
+
if (paths[specifier]?.length > 0) {
|
|
109
|
+
return paths[specifier];
|
|
110
|
+
}
|
|
111
|
+
const wildcardEntries = Object.entries(paths)
|
|
112
|
+
.filter(([alias]) => alias.endsWith("/*"))
|
|
113
|
+
.toSorted((a, b) => b[0].length - a[0].length);
|
|
114
|
+
for (const [alias, targets] of wildcardEntries) {
|
|
115
|
+
const prefix = alias.slice(0, -2);
|
|
116
|
+
if (specifier.startsWith(prefix + "/")) {
|
|
117
|
+
const rest = specifier.slice(prefix.length + 1);
|
|
118
|
+
return targets.map((t) => (t.endsWith("/*") ? t.slice(0, -2) + "/" + rest : t));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async function tryResolveWithExtensions(base, context, nextResolve) {
|
|
125
|
+
if (!TS_EXTENSIONS.some((ext) => base.endsWith(ext))) {
|
|
126
|
+
for (const ext of TS_EXTENSIONS) {
|
|
127
|
+
for (const suffix of ["", "/index"]) {
|
|
128
|
+
try {
|
|
129
|
+
return await nextResolve(base + suffix + ext, context);
|
|
130
|
+
} catch (e) {
|
|
131
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
return await nextResolve(base, context);
|
|
138
|
+
} catch (e) {
|
|
139
|
+
const code = e?.code;
|
|
140
|
+
if (code !== "ERR_MODULE_NOT_FOUND" && code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw e;
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function tryResolveWithExtensionsSync(base, context, nextResolve) {
|
|
146
|
+
if (!TS_EXTENSIONS.some((ext) => base.endsWith(ext))) {
|
|
147
|
+
for (const ext of TS_EXTENSIONS) {
|
|
148
|
+
for (const suffix of ["", "/index"]) {
|
|
149
|
+
try {
|
|
150
|
+
return nextResolve(base + suffix + ext, context);
|
|
151
|
+
} catch (e) {
|
|
152
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
return nextResolve(base, context);
|
|
159
|
+
} catch (e) {
|
|
160
|
+
const code = e?.code;
|
|
161
|
+
if (code !== "ERR_MODULE_NOT_FOUND" && code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw e;
|
|
162
|
+
}
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// --- module hooks ---
|
|
167
|
+
|
|
168
|
+
export async function resolve(specifier, context, nextResolve) {
|
|
169
|
+
try {
|
|
170
|
+
return await nextResolve(specifier, context);
|
|
171
|
+
} catch (err) {
|
|
172
|
+
if (err.code !== "ERR_MODULE_NOT_FOUND" && err.code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw err;
|
|
173
|
+
|
|
174
|
+
if (
|
|
175
|
+
err.code === "ERR_UNSUPPORTED_DIR_IMPORT" &&
|
|
176
|
+
(specifier.startsWith(".") || specifier.startsWith("/"))
|
|
177
|
+
) {
|
|
178
|
+
for (const ext of TS_EXTENSIONS) {
|
|
179
|
+
try {
|
|
180
|
+
return await nextResolve(specifier + "/index" + ext, context);
|
|
181
|
+
} catch (e) {
|
|
182
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
throw err;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (!specifier.startsWith(".") && !specifier.startsWith("/")) {
|
|
189
|
+
// Non-relative: try tsconfig path aliases
|
|
190
|
+
if (context.parentURL?.startsWith("file://")) {
|
|
191
|
+
const parentParsed = new URL(context.parentURL);
|
|
192
|
+
parentParsed.search = "";
|
|
193
|
+
parentParsed.hash = "";
|
|
194
|
+
const parentDir = dirname(fileURLToPath(parentParsed));
|
|
195
|
+
const tsconfigPaths = loadTsconfigPaths(parentDir);
|
|
196
|
+
const candidates = matchTsconfigPaths(specifier, tsconfigPaths);
|
|
197
|
+
if (candidates) {
|
|
198
|
+
for (const candidate of candidates) {
|
|
199
|
+
const result = await tryResolveWithExtensions(candidate, context, nextResolve);
|
|
200
|
+
if (result) return result;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
throw err;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const lastSegment = specifier.split("/").pop() ?? "";
|
|
208
|
+
if (!KNOWN_EXTENSIONS.some((ext) => lastSegment.endsWith(ext))) {
|
|
209
|
+
for (const ext of TS_EXTENSIONS) {
|
|
210
|
+
try {
|
|
211
|
+
return await nextResolve(specifier + ext, context);
|
|
212
|
+
} catch (e) {
|
|
213
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
for (const [jsExt, tsExt] of JS_TO_TS) {
|
|
219
|
+
if (specifier.endsWith(jsExt)) {
|
|
220
|
+
try {
|
|
221
|
+
return await nextResolve(specifier.slice(0, -jsExt.length) + tsExt, context);
|
|
222
|
+
} catch (e) {
|
|
223
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
throw err;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export async function load(url, context, nextLoad) {
|
|
233
|
+
if (url.startsWith("file:")) {
|
|
234
|
+
const parsedUrl = new URL(url);
|
|
235
|
+
if (
|
|
236
|
+
TS_EXTENSIONS.some((ext) => parsedUrl.pathname.endsWith(ext)) &&
|
|
237
|
+
!parsedUrl.pathname.endsWith(".d.ts") &&
|
|
238
|
+
!parsedUrl.pathname.endsWith(".d.mts")
|
|
239
|
+
) {
|
|
240
|
+
parsedUrl.search = "";
|
|
241
|
+
parsedUrl.hash = "";
|
|
242
|
+
const filePath = fileURLToPath(parsedUrl);
|
|
243
|
+
const source = await readFile(filePath, "utf-8");
|
|
244
|
+
const { code } = transformSync(source, { mode: "transform", filename: filePath });
|
|
245
|
+
return { format: "module", shortCircuit: true, source: `${code}\n//# sourceURL=${url}` };
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return nextLoad(url, context);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Sync hooks for module.registerHooks() (Node >= 22.15.0).
|
|
252
|
+
export function resolveSync(specifier, context, nextResolve) {
|
|
253
|
+
try {
|
|
254
|
+
return nextResolve(specifier, context);
|
|
255
|
+
} catch (err) {
|
|
256
|
+
if (err.code !== "ERR_MODULE_NOT_FOUND" && err.code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw err;
|
|
257
|
+
|
|
258
|
+
if (
|
|
259
|
+
err.code === "ERR_UNSUPPORTED_DIR_IMPORT" &&
|
|
260
|
+
(specifier.startsWith(".") || specifier.startsWith("/"))
|
|
261
|
+
) {
|
|
262
|
+
for (const ext of TS_EXTENSIONS) {
|
|
263
|
+
try {
|
|
264
|
+
return nextResolve(specifier + "/index" + ext, context);
|
|
265
|
+
} catch (e) {
|
|
266
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
throw err;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (!specifier.startsWith(".") && !specifier.startsWith("/")) {
|
|
273
|
+
// Non-relative: try tsconfig path aliases
|
|
274
|
+
if (context.parentURL?.startsWith("file://")) {
|
|
275
|
+
const parentParsed = new URL(context.parentURL);
|
|
276
|
+
parentParsed.search = "";
|
|
277
|
+
parentParsed.hash = "";
|
|
278
|
+
const parentDir = dirname(fileURLToPath(parentParsed));
|
|
279
|
+
const tsconfigPaths = loadTsconfigPaths(parentDir);
|
|
280
|
+
const candidates = matchTsconfigPaths(specifier, tsconfigPaths);
|
|
281
|
+
if (candidates) {
|
|
282
|
+
for (const candidate of candidates) {
|
|
283
|
+
const result = tryResolveWithExtensionsSync(candidate, context, nextResolve);
|
|
284
|
+
if (result) return result;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
throw err;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const lastSegment = specifier.split("/").pop() ?? "";
|
|
292
|
+
if (!KNOWN_EXTENSIONS.some((ext) => lastSegment.endsWith(ext))) {
|
|
293
|
+
for (const ext of TS_EXTENSIONS) {
|
|
294
|
+
try {
|
|
295
|
+
return nextResolve(specifier + ext, context);
|
|
296
|
+
} catch (e) {
|
|
297
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
for (const [jsExt, tsExt] of JS_TO_TS) {
|
|
303
|
+
if (specifier.endsWith(jsExt)) {
|
|
304
|
+
try {
|
|
305
|
+
return nextResolve(specifier.slice(0, -jsExt.length) + tsExt, context);
|
|
306
|
+
} catch (e) {
|
|
307
|
+
if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
throw err;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export function loadSync(url, context, nextLoad) {
|
|
317
|
+
if (url.startsWith("file:")) {
|
|
318
|
+
const parsedUrl = new URL(url);
|
|
319
|
+
if (
|
|
320
|
+
TS_EXTENSIONS.some((ext) => parsedUrl.pathname.endsWith(ext)) &&
|
|
321
|
+
!parsedUrl.pathname.endsWith(".d.ts") &&
|
|
322
|
+
!parsedUrl.pathname.endsWith(".d.mts")
|
|
323
|
+
) {
|
|
324
|
+
parsedUrl.search = "";
|
|
325
|
+
parsedUrl.hash = "";
|
|
326
|
+
const filePath = fileURLToPath(parsedUrl);
|
|
327
|
+
const source = readFileSync(filePath, "utf-8");
|
|
328
|
+
const { code } = transformSync(source, { mode: "transform", filename: filePath });
|
|
329
|
+
return { format: "module", shortCircuit: true, source: `${code}\n//# sourceURL=${url}` };
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return nextLoad(url, context);
|
|
333
|
+
}
|