@tailor-platform/sdk 2.15.0 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +109 -0
- package/dist/{application-BpoMu4Af.mjs → application-ChuNPwnl.mjs} +28 -28
- package/dist/application-ChuNPwnl.mjs.map +1 -0
- package/dist/application-Oh5dMmb5.mjs +1 -0
- package/dist/cli/commands/executor/jobs.d.mts +1 -0
- package/dist/cli/commands/generate/seed/bundler.d.mts +18 -0
- package/dist/cli/commands/tailordb/migrate/config.d.mts +1 -0
- package/dist/cli/commands/tailordb/migrate/snapshot-files.d.mts +5 -1
- package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +2 -2
- package/dist/cli/commands/workflow/waiter.d.mts +1 -0
- package/dist/cli/commands/workspace/create.d.mts +16 -1
- package/dist/cli/commands/workspace/expiry.d.mts +5 -0
- package/dist/cli/commands/workspace/get.d.mts +6 -1
- package/dist/cli/commands/workspace/list.d.mts +1 -0
- package/dist/cli/lib.d.mts +4 -3
- package/dist/cli/lib.mjs +1 -1
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/cli/main.mjs +57 -59
- package/dist/cli/main.mjs.map +1 -1
- package/dist/cli/shared/command.d.mts +1 -1
- package/dist/cli/shared/error-json.d.mts +21 -1
- package/dist/cli/shared/errors.d.mts +1 -0
- package/dist/cli/shared/github-actions.d.mts +13 -0
- package/dist/cli/shared/logger.d.mts +18 -0
- package/dist/completion/zsh-worker.zsh +92 -4
- package/dist/configure/index.mjs +1 -1
- package/dist/configure/index.mjs.map +1 -1
- package/dist/crashreport-CgymxQDu.mjs +1 -0
- package/dist/crashreport-Cyuz1qiu.mjs +42 -0
- package/dist/crashreport-Cyuz1qiu.mjs.map +1 -0
- package/dist/errors-BjJnpXkK.mjs +7 -0
- package/dist/errors-BjJnpXkK.mjs.map +1 -0
- package/dist/field-parse-CzlKC4b7.mjs +2 -0
- package/dist/field-parse-CzlKC4b7.mjs.map +1 -0
- package/dist/guards-ForsrxnH.mjs +2 -0
- package/dist/guards-ForsrxnH.mjs.map +1 -0
- package/dist/kysely-type-B_oA8D1k.mjs +43 -0
- package/dist/kysely-type-B_oA8D1k.mjs.map +1 -0
- package/dist/{logger-CCjs1DuH.mjs → logger-72hM4JWZ.mjs} +4 -4
- package/dist/logger-72hM4JWZ.mjs.map +1 -0
- package/dist/manager-C26Gi1bX.mjs +2 -0
- package/dist/manager-C26Gi1bX.mjs.map +1 -0
- package/dist/node-builtins-DYfhPBnz.mjs +2 -0
- package/dist/node-builtins-DYfhPBnz.mjs.map +1 -0
- package/dist/plugin/builtin/kysely-type/index.d.mts +2 -0
- package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
- package/dist/plugin/builtin/seed/index.mjs +1 -1
- package/dist/plugin/builtin/seed/seed-type-processor.d.mts +17 -0
- package/dist/plugin/get-generated-table.d.mts +13 -0
- package/dist/plugin/index.d.mts +2 -2
- package/dist/plugin/index.mjs +1 -1
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/register-ts-hook-Dn-XlVSD.mjs +917 -0
- package/dist/register-ts-hook-Dn-XlVSD.mjs.map +1 -0
- package/dist/schema-DRyQEabV.mjs +2 -0
- package/dist/schema-DRyQEabV.mjs.map +1 -0
- package/dist/{seed-CCc9Xk66.mjs → seed-C3P_T_Eh.mjs} +28 -9
- package/dist/seed-C3P_T_Eh.mjs.map +1 -0
- package/dist/service-B3OiWCYg.mjs +1 -0
- package/dist/service-B4Gh_bbL.mjs +2 -0
- package/dist/service-B4Gh_bbL.mjs.map +1 -0
- package/dist/service-eM7Fd8zS.mjs +7 -0
- package/dist/service-eM7Fd8zS.mjs.map +1 -0
- package/dist/tailordb-ddl-Fgm2cNvT.mjs +7 -0
- package/dist/tailordb-ddl-Fgm2cNvT.mjs.map +1 -0
- package/dist/utils/test/index.d.mts +7 -5
- package/dist/utils/test/index.mjs +1 -1
- package/dist/utils/test/index.mjs.map +1 -1
- package/dist/vitest/index.mjs +1 -1
- package/dist/vitest/index.mjs.map +1 -1
- package/dist/vitest/mocks/tailordb-pglite.d.mts +5 -4
- package/docs/cli/tailordb.md +9 -9
- package/docs/cli/workspace.md +133 -20
- package/docs/cli-reference.md +101 -28
- package/docs/plugin/custom.md +36 -4
- package/docs/services/tailordb-migration.md +31 -28
- package/docs/testing.md +23 -21
- package/package.json +11 -10
- package/dist/application-BpoMu4Af.mjs.map +0 -1
- package/dist/application-fIhVKX78.mjs +0 -1
- package/dist/crashreport-BN28xp5B.mjs +0 -42
- package/dist/crashreport-BN28xp5B.mjs.map +0 -1
- package/dist/crashreport-By23O2k-.mjs +0 -1
- package/dist/errors-BlX4gUw5.mjs +0 -4
- package/dist/errors-BlX4gUw5.mjs.map +0 -1
- package/dist/field-column-type-QMtF6lUp.mjs +0 -2
- package/dist/field-column-type-QMtF6lUp.mjs.map +0 -1
- package/dist/kysely-type-B-BOlXH7.mjs +0 -43
- package/dist/kysely-type-B-BOlXH7.mjs.map +0 -1
- package/dist/logger-CCjs1DuH.mjs.map +0 -1
- package/dist/node-builtins-TQHhwNzG.mjs +0 -2
- package/dist/node-builtins-TQHhwNzG.mjs.map +0 -1
- package/dist/register-ts-hook-CAUcxCt4.mjs +0 -711
- package/dist/register-ts-hook-CAUcxCt4.mjs.map +0 -1
- package/dist/schema-BTioi2dP.mjs +0 -2
- package/dist/schema-BTioi2dP.mjs.map +0 -1
- package/dist/seed-CCc9Xk66.mjs.map +0 -1
- package/dist/service-7SCy2bhm.mjs +0 -7
- package/dist/service-7SCy2bhm.mjs.map +0 -1
- package/dist/service-CWFQ8EVo.mjs +0 -1
- package/dist/service-CqbQXFDp.mjs +0 -2
- package/dist/service-CqbQXFDp.mjs.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Jsonifiable } from "type-fest";
|
|
1
2
|
//#region src/cli/shared/error-json.d.ts
|
|
2
3
|
export interface ErrorToJsonOptions {
|
|
3
4
|
/** Include the original stack trace in the error envelope. */
|
|
@@ -10,10 +11,29 @@ export interface ErrorToJsonOptions {
|
|
|
10
11
|
* @returns JSON-compatible error envelope
|
|
11
12
|
*/
|
|
12
13
|
export declare function errorToJson(error: unknown, options?: ErrorToJsonOptions): {
|
|
13
|
-
error: Readonly<Record<string,
|
|
14
|
+
error: Readonly<Record<string, Jsonifiable | undefined>>;
|
|
14
15
|
};
|
|
15
16
|
/**
|
|
16
17
|
* Serialize a CLI failure into the stable JSON error envelope.
|
|
18
|
+
*
|
|
19
|
+
* Redacts registered secrets from every string, number, boolean, and `null` *value* in the
|
|
20
|
+
* envelope, however deeply nested, before this function's own `JSON.stringify` call, rather
|
|
21
|
+
* than relying only on the redaction `logger.log()` does on the final string: an upstream
|
|
22
|
+
* error message (or `error.context`, an arbitrary record) can already embed a secret in
|
|
23
|
+
* JSON-escaped form (e.g. echoed back inside a JSON API error body), and stringifying the
|
|
24
|
+
* envelope would escape that a second time, no longer matching a registered secret's
|
|
25
|
+
* single-level-escaped form. Redacting non-string bare tokens here also matters because the
|
|
26
|
+
* later, structure-unaware `redactSecrets()` pass over the fully rendered JSON text cannot
|
|
27
|
+
* tell a bare token apart from a JSON string, so a secret whose value coincides with an
|
|
28
|
+
* unrelated number/boolean/`null` elsewhere in the envelope would otherwise become an
|
|
29
|
+
* unquoted `<redacted>` and break the output as JSON.
|
|
30
|
+
*
|
|
31
|
+
* Does not cover a secret used as an object *key* (e.g. `context: { [secret]: true }`) —
|
|
32
|
+
* `JSON.stringify`'s replacer can only transform values, never rename keys. No current
|
|
33
|
+
* caller does this (`context` keys are always fixed, SDK-chosen strings), and the CLI's own
|
|
34
|
+
* `logger.log(serializeError(...))` call site is still protected regardless, since that
|
|
35
|
+
* redaction pass re-scans the fully rendered JSON text and does not distinguish key
|
|
36
|
+
* position from value position.
|
|
17
37
|
* @param error - Failure to serialize
|
|
18
38
|
* @param options - JSON serialization options
|
|
19
39
|
* @returns Serialized JSON error envelope
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { Jsonifiable } from "type-fest";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/cli/shared/github-actions.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Annotate the failure that ended the command, when running in GitHub Actions.
|
|
4
|
+
* @param error - Failure that ended the command
|
|
5
|
+
* @param options - JSON mode state and the suggestion shown for a plain error
|
|
6
|
+
* @param options.jsonMode - Whether the CLI is producing a JSON document
|
|
7
|
+
* @param options.suggestion - Suggestion shown for a plain error
|
|
8
|
+
*/
|
|
9
|
+
export declare function annotateTerminalError(error: unknown, options: {
|
|
10
|
+
jsonMode: boolean;
|
|
11
|
+
suggestion?: string;
|
|
12
|
+
}): void;
|
|
13
|
+
//#endregion
|
|
@@ -58,6 +58,24 @@ export declare const logger: {
|
|
|
58
58
|
log(message: string): void;
|
|
59
59
|
newline(): void;
|
|
60
60
|
debug(message: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* Registers a value to be redacted from diagnostic log output (`info`/`success`/`warn`/
|
|
63
|
+
* `error`/`log`/`debug`). Any occurrence of `value` — or of its JSON-string-escaped form
|
|
64
|
+
* (so a value embedded in `JSON.stringify`d output, e.g. `--json` mode error envelopes, is
|
|
65
|
+
* also caught) or its `application/x-www-form-urlencoded` form (so a value that reached the
|
|
66
|
+
* process via a URL query string, e.g. an OAuth authorization code decoded from a callback
|
|
67
|
+
* URL via `URLSearchParams`, is still caught if that same URL — still encoded — is later
|
|
68
|
+
* echoed into a diagnostic message) — is replaced with `<redacted>` before it reaches
|
|
69
|
+
* stderr. Does not affect `out()`, since some commands intentionally print secret values as
|
|
70
|
+
* their primary result.
|
|
71
|
+
*
|
|
72
|
+
* Values shorter than 4 characters are ignored, since they are too likely to match
|
|
73
|
+
* unrelated text. A non-string value (e.g. `undefined` from an unvalidated external
|
|
74
|
+
* payload cast to a typed shape) is ignored the same way, rather than throwing, since a
|
|
75
|
+
* logging call must never be what crashes the process.
|
|
76
|
+
* @param value - The secret value to redact from future log output
|
|
77
|
+
*/
|
|
78
|
+
registerSecret(value: string): void;
|
|
61
79
|
out(data: string | object | object[], options?: OutOptions): void;
|
|
62
80
|
};
|
|
63
81
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# politty-completion-version: 1
|
|
2
|
-
# politty-bin-sig:
|
|
2
|
+
# politty-bin-sig: 1789518173
|
|
3
3
|
# politty-bin-path: /home/runner/work/sdk/sdk/node_modules/.bin/tailor
|
|
4
4
|
# program: tailor
|
|
5
5
|
# shell: zsh
|
|
@@ -823,6 +823,7 @@ __tailor_worker_opt_takes_value() {
|
|
|
823
823
|
workspace:create:--region|workspace:create:-r|workspace:create:--r) return 0 ;;
|
|
824
824
|
workspace:create:--organization-id|workspace:create:--organizationId|workspace:create:-o|workspace:create:--o) return 0 ;;
|
|
825
825
|
workspace:create:--folder-id|workspace:create:--folderId|workspace:create:-f|workspace:create:--f) return 0 ;;
|
|
826
|
+
workspace:create:--ttl) return 0 ;;
|
|
826
827
|
workspace:create:--profile-name|workspace:create:--profileName|workspace:create:-p|workspace:create:--p) return 0 ;;
|
|
827
828
|
workspace:create:--profile) return 0 ;;
|
|
828
829
|
workspace:create:--profile-user|workspace:create:--profileUser) return 0 ;;
|
|
@@ -833,7 +834,19 @@ __tailor_worker_opt_takes_value() {
|
|
|
833
834
|
workspace:list:--order) return 0 ;;
|
|
834
835
|
workspace:list:--limit|workspace:list:-l|workspace:list:--l) return 0 ;;
|
|
835
836
|
workspace:list:--profile) return 0 ;;
|
|
837
|
+
workspace:prune:--name) return 0 ;;
|
|
838
|
+
workspace:prune:--older-than|workspace:prune:--olderThan) return 0 ;;
|
|
839
|
+
workspace:prune:--organization-root|workspace:prune:--organizationRoot) return 0 ;;
|
|
840
|
+
workspace:prune:--folder-id|workspace:prune:--folderId) return 0 ;;
|
|
841
|
+
workspace:prune:--exclude) return 0 ;;
|
|
842
|
+
workspace:prune:--limit) return 0 ;;
|
|
843
|
+
workspace:prune:--profile) return 0 ;;
|
|
836
844
|
workspace:restore:--workspace-id|workspace:restore:--workspaceId|workspace:restore:-w|workspace:restore:--w) return 0 ;;
|
|
845
|
+
workspace:ttl:set:--workspace-id|workspace:ttl:set:--workspaceId|workspace:ttl:set:-w|workspace:ttl:set:--w) return 0 ;;
|
|
846
|
+
workspace:ttl:set:--profile|workspace:ttl:set:-p|workspace:ttl:set:--p) return 0 ;;
|
|
847
|
+
workspace:ttl:set:--ttl) return 0 ;;
|
|
848
|
+
workspace:ttl:clear:--workspace-id|workspace:ttl:clear:--workspaceId|workspace:ttl:clear:-w|workspace:ttl:clear:--w) return 0 ;;
|
|
849
|
+
workspace:ttl:clear:--profile|workspace:ttl:clear:-p|workspace:ttl:clear:--p) return 0 ;;
|
|
837
850
|
workspace:user:invite:--workspace-id|workspace:user:invite:--workspaceId|workspace:user:invite:-w|workspace:user:invite:--w) return 0 ;;
|
|
838
851
|
workspace:user:invite:--profile|workspace:user:invite:-p|workspace:user:invite:--p) return 0 ;;
|
|
839
852
|
workspace:user:invite:--email) return 0 ;;
|
|
@@ -991,7 +1004,11 @@ __tailor_worker_is_subcmd() {
|
|
|
991
1004
|
workspace:delete) return 0 ;;
|
|
992
1005
|
workspace:get) return 0 ;;
|
|
993
1006
|
workspace:list) return 0 ;;
|
|
1007
|
+
workspace:prune) return 0 ;;
|
|
994
1008
|
workspace:restore) return 0 ;;
|
|
1009
|
+
workspace:ttl:set) return 0 ;;
|
|
1010
|
+
workspace:ttl:clear) return 0 ;;
|
|
1011
|
+
workspace:ttl) return 0 ;;
|
|
995
1012
|
workspace:user:invite) return 0 ;;
|
|
996
1013
|
workspace:user:list) return 0 ;;
|
|
997
1014
|
workspace:user:remove) return 0 ;;
|
|
@@ -2972,7 +2989,7 @@ __tailor_worker_complete_tailordb_migration_generate() {
|
|
|
2972
2989
|
__tailor_worker_not_used "--namespace" && _opts+=("--namespace:Target TailorDB namespace for --data-only (required if multiple namespaces exist)")
|
|
2973
2990
|
_opts+=("--rename:Record a field, table, or nested member rename instead of remove + add (format\: \"Table.oldField\:newField\", \"OldTable\:NewTable\", or \"Table.field.oldMember\:newMember\"; repeatable). Renames require a migration script that copies the data.")
|
|
2974
2991
|
_opts+=("--drop:Confirm that a removed field, table, or nested member is a genuine removal, not a rename (format\: \"Table.field\", \"Table\", or \"Table.field.member\"; repeatable). Required in non-interactive runs for a removal with rename candidates.")
|
|
2975
|
-
_opts+=("--expand-contract:Convert a field type through a temporary field (format\: \"Table.field\"; repeatable). Generates two migrations.")
|
|
2992
|
+
_opts+=("--expand-contract:Convert a field type, or a single value into an array, through a temporary field (format\: \"Table.field\"; repeatable). Generates two migrations.")
|
|
2976
2993
|
__tailor_worker_not_used "--help" && _opts+=("--help:Show help")
|
|
2977
2994
|
__tailor_worker_cdescribe 'options' _opts
|
|
2978
2995
|
return 0
|
|
@@ -3068,7 +3085,7 @@ __tailor_worker_complete_tailordb_migration_script() {
|
|
|
3068
3085
|
__tailor_worker_not_used "--namespace" "-n" "--n" && _opts+=("--namespace:Target TailorDB namespace (required if multiple namespaces exist)")
|
|
3069
3086
|
__tailor_worker_not_used "--no-script" "--noScript" && _opts+=("--no-script:Record that this migration intentionally runs without a migration script (requires --reason)")
|
|
3070
3087
|
__tailor_worker_not_used "--reason" && _opts+=("--reason:Reason why no migration script is needed (used with --no-script)")
|
|
3071
|
-
__tailor_worker_not_used "--with-test" "--withTest" && _opts+=("--with-test:Also add
|
|
3088
|
+
__tailor_worker_not_used "--with-test" "--withTest" && _opts+=("--with-test:Also add the migrate.test.ts and migrate.pglite.test.ts scaffolds")
|
|
3072
3089
|
__tailor_worker_not_used "--help" && _opts+=("--help:Show help")
|
|
3073
3090
|
__tailor_worker_cdescribe 'options' _opts
|
|
3074
3091
|
return 0
|
|
@@ -3879,6 +3896,7 @@ __tailor_worker_complete_workspace_create() {
|
|
|
3879
3896
|
__tailor_worker_not_used "--delete-protection" "--deleteProtection" "-d" "--d" && _opts+=("--delete-protection:Enable delete protection")
|
|
3880
3897
|
__tailor_worker_not_used "--organization-id" "--organizationId" "-o" "--o" && _opts+=("--organization-id:Organization ID to workspace associate with")
|
|
3881
3898
|
__tailor_worker_not_used "--folder-id" "--folderId" "-f" "--f" && _opts+=("--folder-id:Folder ID to workspace associate with")
|
|
3899
|
+
__tailor_worker_not_used "--ttl" && _opts+=("--ttl:Record on the workspace itself when it becomes prunable, such as 30m, 24h, or 7d. \`workspace prune --expired\` deletes it once that has passed")
|
|
3882
3900
|
__tailor_worker_not_used "--profile-name" "--profileName" "-p" "--p" && _opts+=("--profile-name:Profile name to create")
|
|
3883
3901
|
__tailor_worker_not_used "--profile" && _opts+=("--profile:Workspace profile used for authentication and Platform selection")
|
|
3884
3902
|
__tailor_worker_not_used "--profile-user" "--profileUser" && _opts+=("--profile-user:User email address or machine user client ID for the profile (defaults to current user)")
|
|
@@ -3938,6 +3956,29 @@ __tailor_worker_complete_workspace_list() {
|
|
|
3938
3956
|
fi
|
|
3939
3957
|
}
|
|
3940
3958
|
|
|
3959
|
+
__tailor_worker_complete_workspace_prune() {
|
|
3960
|
+
local -a _vals=()
|
|
3961
|
+
if __tailor_worker_opt_takes_value "workspace:prune" "${words[CURRENT-1]}"; then return 0; fi
|
|
3962
|
+
if (( _after_dd )); then return 0; fi
|
|
3963
|
+
if [[ "${words[CURRENT]}" == -* ]]; then
|
|
3964
|
+
local -a _opts=()
|
|
3965
|
+
_opts+=("--name:Select workspaces whose whole name matches this regular expression (repeatable)")
|
|
3966
|
+
__tailor_worker_not_used "--older-than" "--olderThan" && _opts+=("--older-than:Minimum age since creation, such as 30m, 24h, or 7d. 0s disables the age check and requires a location. Required unless --expired is given")
|
|
3967
|
+
__tailor_worker_not_used "--expired" && _opts+=("--expired:Select workspaces whose own --ttl expiry has passed, instead of by name and age. Requires --organization-root, --folder-id, or --personal")
|
|
3968
|
+
_opts+=("--organization-root:Consider the workspaces directly under this organization, excluding those in its folders (repeatable)")
|
|
3969
|
+
_opts+=("--folder-id:Consider the workspaces in this folder (repeatable)")
|
|
3970
|
+
__tailor_worker_not_used "--personal" && _opts+=("--personal:Consider the workspaces belonging to no organization and no folder")
|
|
3971
|
+
_opts+=("--exclude:Keep a workspace with this exact name even when it matches (repeatable)")
|
|
3972
|
+
__tailor_worker_not_used "--limit" && _opts+=("--limit:Abort when more workspaces match than this, without deleting anything. 0 removes the cap")
|
|
3973
|
+
__tailor_worker_not_used "--dry-run" "--dryRun" && _opts+=("--dry-run:List the workspaces that would be deleted without deleting them")
|
|
3974
|
+
__tailor_worker_not_used "--profile" && _opts+=("--profile:Workspace profile used for authentication and Platform selection")
|
|
3975
|
+
__tailor_worker_not_used "--yes" "-y" "--y" && _opts+=("--yes:Skip confirmation prompts")
|
|
3976
|
+
__tailor_worker_not_used "--help" && _opts+=("--help:Show help")
|
|
3977
|
+
__tailor_worker_cdescribe 'options' _opts
|
|
3978
|
+
return 0
|
|
3979
|
+
fi
|
|
3980
|
+
}
|
|
3981
|
+
|
|
3941
3982
|
__tailor_worker_complete_workspace_restore() {
|
|
3942
3983
|
local -a _vals=()
|
|
3943
3984
|
if __tailor_worker_opt_takes_value "workspace:restore" "${words[CURRENT-1]}"; then return 0; fi
|
|
@@ -3952,6 +3993,49 @@ __tailor_worker_complete_workspace_restore() {
|
|
|
3952
3993
|
fi
|
|
3953
3994
|
}
|
|
3954
3995
|
|
|
3996
|
+
__tailor_worker_complete_workspace_ttl_set() {
|
|
3997
|
+
local -a _vals=()
|
|
3998
|
+
if __tailor_worker_opt_takes_value "workspace:ttl:set" "${words[CURRENT-1]}"; then return 0; fi
|
|
3999
|
+
if (( _after_dd )); then return 0; fi
|
|
4000
|
+
if [[ "${words[CURRENT]}" == -* ]]; then
|
|
4001
|
+
local -a _opts=()
|
|
4002
|
+
__tailor_worker_not_used "--workspace-id" "--workspaceId" "-w" "--w" && _opts+=("--workspace-id:Workspace ID")
|
|
4003
|
+
__tailor_worker_not_used "--profile" "-p" "--p" && _opts+=("--profile:Workspace profile")
|
|
4004
|
+
__tailor_worker_not_used "--ttl" && _opts+=("--ttl:Time from now until the workspace becomes prunable, such as 30m, 24h, or 7d")
|
|
4005
|
+
__tailor_worker_not_used "--help" && _opts+=("--help:Show help")
|
|
4006
|
+
__tailor_worker_cdescribe 'options' _opts
|
|
4007
|
+
return 0
|
|
4008
|
+
fi
|
|
4009
|
+
}
|
|
4010
|
+
|
|
4011
|
+
__tailor_worker_complete_workspace_ttl_clear() {
|
|
4012
|
+
local -a _vals=()
|
|
4013
|
+
if __tailor_worker_opt_takes_value "workspace:ttl:clear" "${words[CURRENT-1]}"; then return 0; fi
|
|
4014
|
+
if (( _after_dd )); then return 0; fi
|
|
4015
|
+
if [[ "${words[CURRENT]}" == -* ]]; then
|
|
4016
|
+
local -a _opts=()
|
|
4017
|
+
__tailor_worker_not_used "--workspace-id" "--workspaceId" "-w" "--w" && _opts+=("--workspace-id:Workspace ID")
|
|
4018
|
+
__tailor_worker_not_used "--profile" "-p" "--p" && _opts+=("--profile:Workspace profile")
|
|
4019
|
+
__tailor_worker_not_used "--help" && _opts+=("--help:Show help")
|
|
4020
|
+
__tailor_worker_cdescribe 'options' _opts
|
|
4021
|
+
return 0
|
|
4022
|
+
fi
|
|
4023
|
+
}
|
|
4024
|
+
|
|
4025
|
+
__tailor_worker_complete_workspace_ttl() {
|
|
4026
|
+
local -a _vals=()
|
|
4027
|
+
if __tailor_worker_opt_takes_value "workspace:ttl" "${words[CURRENT-1]}"; then return 0; fi
|
|
4028
|
+
if (( _after_dd )); then return 0; fi
|
|
4029
|
+
if [[ "${words[CURRENT]}" == -* ]]; then
|
|
4030
|
+
local -a _opts=()
|
|
4031
|
+
__tailor_worker_not_used "--help" && _opts+=("--help:Show help")
|
|
4032
|
+
__tailor_worker_cdescribe 'options' _opts
|
|
4033
|
+
return 0
|
|
4034
|
+
fi
|
|
4035
|
+
local -a _subs=("set:Record when a workspace becomes prunable, replacing any expiry it already records." "clear:Drop a workspace's recorded prune expiry.")
|
|
4036
|
+
__tailor_worker_cdescribe 'subcommands' _subs
|
|
4037
|
+
}
|
|
4038
|
+
|
|
3955
4039
|
__tailor_worker_complete_workspace_user_invite() {
|
|
3956
4040
|
local -a _vals=()
|
|
3957
4041
|
case "${words[CURRENT-1]}" in
|
|
@@ -4058,7 +4142,7 @@ __tailor_worker_complete_workspace() {
|
|
|
4058
4142
|
__tailor_worker_cdescribe 'options' _opts
|
|
4059
4143
|
return 0
|
|
4060
4144
|
fi
|
|
4061
|
-
local -a _subs=("app:Manage workspace applications" "create:Create a new Tailor Platform workspace." "delete:Delete a Tailor Platform workspace." "get:Show detailed information about a workspace" "list:List all Tailor Platform workspaces." "restore:Restore a deleted workspace" "user:Manage workspace users")
|
|
4145
|
+
local -a _subs=("app:Manage workspace applications" "create:Create a new Tailor Platform workspace." "delete:Delete a Tailor Platform workspace." "get:Show detailed information about a workspace" "list:List all Tailor Platform workspaces." "prune:Delete stale temporary workspaces, by name and age or by the expiry each recorded at creation." "restore:Restore a deleted workspace" "ttl:Manage when a workspace becomes prunable." "user:Manage workspace users")
|
|
4062
4146
|
__tailor_worker_cdescribe 'subcommands' _subs
|
|
4063
4147
|
}
|
|
4064
4148
|
|
|
@@ -4346,7 +4430,11 @@ _tailor_worker_completions() {
|
|
|
4346
4430
|
workspace:delete) __tailor_worker_complete_workspace_delete ;;
|
|
4347
4431
|
workspace:get) __tailor_worker_complete_workspace_get ;;
|
|
4348
4432
|
workspace:list) __tailor_worker_complete_workspace_list ;;
|
|
4433
|
+
workspace:prune) __tailor_worker_complete_workspace_prune ;;
|
|
4349
4434
|
workspace:restore) __tailor_worker_complete_workspace_restore ;;
|
|
4435
|
+
workspace:ttl:set) __tailor_worker_complete_workspace_ttl_set ;;
|
|
4436
|
+
workspace:ttl:clear) __tailor_worker_complete_workspace_ttl_clear ;;
|
|
4437
|
+
workspace:ttl) __tailor_worker_complete_workspace_ttl ;;
|
|
4350
4438
|
workspace:user:invite) __tailor_worker_complete_workspace_user_invite ;;
|
|
4351
4439
|
workspace:user:list) __tailor_worker_complete_workspace_user_list ;;
|
|
4352
4440
|
workspace:user:remove) __tailor_worker_complete_workspace_user_remove ;;
|
package/dist/configure/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e,n as t,t as n}from"../schema-BTioi2dP.mjs";import{t as r}from"../brand-C8nMKhJC.mjs";import{a as i,n as a,r as o}from"../registry-HlEaGvl5.mjs";import{l as s,n as c,r as l,t as u}from"../wait-point-invoker-eiP-IIux.mjs";import{a as d,i as f,o as p,r as m}from"../wait-point-registry-B-ESkTZX.mjs";function createTailorField(n,r,i,a,o){let s=o?{...o,...o.allowedValues&&{allowedValues:o.allowedValues.map(e=>({...e}))},...o.validate&&{validate:o.validate.map(e=>Array.isArray(e)?[...e]:e)}}:{required:!0};o||(r&&(r.optional===!0&&(s.required=!1),r.array===!0&&(s.array=!0)),a&&(s.allowedValues=t(a)));function parseInternal$1(t){return e({...t,field:c})}function cloneWith(e){let t=c.clone();return Object.assign(t._metadata,e),t}let c={type:n,fields:i??{},_defined:void 0,_output:void 0,_metadata:s,get metadata(){return{...this._metadata}},description(e){return cloneWith({description:e})},typeName(e){return cloneWith({typeName:e})},validate(...e){return cloneWith({validate:e})},parse(e){return parseInternal$1({value:e.value,data:e.data,invoker:e.invoker,pathArray:[]})},clone(){let e=i;if(i){let t={};for(let[e,n]of Object.entries(i))t[e]=n.clone();e=t}return createTailorField(n,r,e,a,this._metadata)}};return c}function uuid(e){return createTailorField(`uuid`,e)}function string(e){return createTailorField(`string`,e)}function bool(e){return createTailorField(`boolean`,e)}function int(e){return createTailorField(`integer`,e)}function float(e){return createTailorField(`float`,e)}function decimal(e){return createTailorField(`decimal`,e)}function date(e){let t=createTailorField(`date`,e);return e?.as===`date`&&(t._metadata.as=`date`),t}function datetime(e){return createTailorField(`datetime`,e)}function time(e){return createTailorField(`time`,e)}function _enum(e,t){return createTailorField(`enum`,t,void 0,e)}function object(e,t){return createTailorField(`nested`,t,e)}const h={uuid,string,bool,int,float,decimal,date,datetime,time,enum:_enum,object};function defineAuth(e,t){return{...t,name:e}}const g={create:[{conditions:[],permit:!0}],read:[{conditions:[],permit:!0}],update:[{conditions:[],permit:!0}],delete:[{conditions:[],permit:!0}]},_=[{conditions:[],actions:`all`,permit:!0}];function createResolver(e){let t=(e=>typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`)(e.output)?e.output:h.object(e.output);return r({...e,output:t},`resolver`)}function createExecutor(e){return r(e,`executor`)}const v={created:`tailordb.type_record.created`,updated:`tailordb.type_record.updated`,deleted:`tailordb.type_record.deleted`};function recordCreatedTrigger(e){let{type:t,condition:n}=e;return{kind:`tailordb`,events:[`tailordb.type_record.created`],tableName:t.name,condition:n,__args:{}}}function recordUpdatedTrigger(e){let{type:t,condition:n}=e;return{kind:`tailordb`,events:[`tailordb.type_record.updated`],tableName:t.name,condition:n,__args:{}}}function recordDeletedTrigger(e){let{type:t,condition:n}=e;return{kind:`tailordb`,events:[`tailordb.type_record.deleted`],tableName:t.name,condition:n,__args:{}}}function recordTrigger(e){let{type:t,events:n,condition:r}=e;return{kind:`tailordb`,events:n.map(e=>v[e]),tableName:t.name,condition:r,__args:{}}}function resolverExecutedTrigger(e){let{resolver:t,condition:n}=e;return{kind:`resolverExecuted`,resolverName:t.name,condition:n,__args:{}}}const y={created:`idp.user.created`,updated:`idp.user.updated`,deleted:`idp.user.deleted`};function idpUserCreatedTrigger(e){return{kind:`idpUser`,events:[`idp.user.created`],...e?.idp==null?{}:{idp:e.idp},__args:{}}}function idpUserUpdatedTrigger(e){return{kind:`idpUser`,events:[`idp.user.updated`],...e?.idp==null?{}:{idp:e.idp},__args:{}}}function idpUserDeletedTrigger(e){return{kind:`idpUser`,events:[`idp.user.deleted`],...e?.idp==null?{}:{idp:e.idp},__args:{}}}function idpUserTrigger(e){let{events:t,idp:n}=e;return{kind:`idpUser`,events:t.map(e=>y[e]),...n==null?{}:{idp:n},__args:{}}}const b={issued:`auth.access_token.issued`,refreshed:`auth.access_token.refreshed`,revoked:`auth.access_token.revoked`};function authAccessTokenIssuedTrigger(){return{kind:`authAccessToken`,events:[`auth.access_token.issued`],__args:{}}}function authAccessTokenRefreshedTrigger(){return{kind:`authAccessToken`,events:[`auth.access_token.refreshed`],__args:{}}}function authAccessTokenRevokedTrigger(){return{kind:`authAccessToken`,events:[`auth.access_token.revoked`],__args:{}}}function authAccessTokenTrigger(e){let{events:t}=e;return{kind:`authAccessToken`,events:t.map(e=>b[e]),__args:{}}}const x={started:`workflow.workflow_execution.started`,completed:`workflow.workflow_execution.completed`,retried:`workflow.workflow_execution.retried`,resumed:`workflow.workflow_execution.resumed`,wait_started:`workflow.workflow_execution.wait_started`,wait_resolved:`workflow.workflow_execution.wait_resolved`};function workflowExecutionTriggerConfig(e,t){return{kind:`workflowExecution`,events:e,workflowName:t.workflow.name,condition:t.condition,__args:{}}}function workflowExecutionStartedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.started`],e)}function workflowExecutionCompletedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.completed`],e)}function workflowExecutionRetriedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.retried`],e)}function workflowExecutionResumedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.resumed`],e)}function workflowExecutionWaitStartedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.wait_started`],e)}function workflowExecutionWaitResolvedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.wait_resolved`],e)}function workflowExecutionTrigger(e){let{events:t,workflow:n,condition:r}=e;return workflowExecutionTriggerConfig(t.map(e=>x[e]),{workflow:n,condition:r})}const S={started:`workflow.workflow_execution.job_execution.started`,completed:`workflow.workflow_execution.job_execution.completed`,wait_started:`workflow.workflow_execution.job_execution.wait_started`,wait_resolved:`workflow.workflow_execution.job_execution.wait_resolved`};function workflowJobExecutionTriggerConfig(e,t){return{kind:`workflowJobExecution`,events:e,workflowName:t.workflow.name,condition:t.condition,__args:{}}}function workflowJobExecutionStartedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.started`],e)}function workflowJobExecutionCompletedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.completed`],e)}function workflowJobExecutionWaitStartedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.wait_started`],e)}function workflowJobExecutionWaitResolvedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.wait_resolved`],e)}function workflowJobExecutionTrigger(e){let{events:t,workflow:n,condition:r}=e;return workflowJobExecutionTriggerConfig(t.map(e=>S[e]),{workflow:n,condition:r})}function scheduleTrigger(e){let{cron:t,timezone:n}=e;return{kind:`schedule`,cron:t,timezone:n,__args:{}}}function incomingWebhookTrigger(e){let t=typeof e?.response==`function`?{body:e.response}:e?.response;return{kind:`incomingWebhook`,...t?{response:t}:{},__args:{}}}const C=/^[a-z0-9][a-z0-9_:.-]{0,62}[a-z0-9]$/;function createExecutionPolicyInstance(e,t,n,i,a,o,s){let c=i===`prefix`,l={name:e,key:t,matchType:i,...n&&{concurrencyPolicy:n},...c&&{keyFor:e=>{let t=`${l.key}${a}${e}`;if(!C.test(t))throw Error(`Invalid execution policy key "${t}" built by keyFor("${e}"): must match [a-z0-9_:.-] (2-64 chars; must start and end with [a-z0-9]).`);return t}}};return{instance:r(l,`execution-policy`),setName:o?e=>{l.name=e}:void 0,setKey:s?e=>{l.key=e}:void 0}}function defineWorkflowExecutionPolicy(e,t){return createExecutionPolicyInstance(e,t?.key??e,t?.concurrencyPolicy,t?.matchType??`exact`,t?.separator??`.`,!1,!1).instance}function defineWorkflowExecutionPolicies(e,t){let n=t?.separator??`.`,r=new Map,i=new Map,a=e(e=>{let t=e?.name,a=e?.key,{instance:o,setName:s,setKey:c}=createExecutionPolicyInstance(t??`__pending__`,a??t??`__pending__`,e?.concurrencyPolicy,e?.matchType??`exact`,n,t===void 0,a===void 0&&t===void 0);return s&&r.set(o,s),c&&i.set(o,c),o});for(let e of Object.keys(a)){let t=a[e];r.get(t)?.(e),i.get(t)?.(e)}return a}function createWorkflowJob(e){let t=e.body,n=process.env.__TAILOR_PLATFORM_BUNDLE?t:(e,n)=>s(n.invoker,()=>t(e,n));process.env.__TAILOR_PLATFORM_BUNDLE||i(e.name,n);let o=process.env.__TAILOR_PLATFORM_BUNDLE?()=>{throw Error(`.start() on workflow job "${e.name}" is rewritten at build time and is unavailable in the bundle`)}:function(t,n){return arguments.length>=2?a(e.name,t,n):a(e.name,t)};return r({name:e.name,start:o,body:n,...e.publishEvents===void 0?{}:{publishEvents:e.publishEvents}},`workflow-job`)}const w=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;function parseKey(e){let t=e.split(`-`);return{segments:t,paramNames:t.filter(p).map(e=>e.slice(1))}}function composeKey(e,t,n){let r=t.segments.map(t=>{if(!p(t))return t;let r=t.slice(1),i=n[r];if(typeof i!=`string`)throw Error(`Wait point "${e}" needs a string for parameter "${r}" but received ${i===void 0?`undefined`:typeof i}.`);if(!w.test(i))throw Error(`Wait point "${e}" cannot use ${JSON.stringify(i)} for parameter "${r}": values may only contain [a-z0-9-] and cannot be empty or start or end with "-".`);return i}).join(`-`);if(r.length>63)throw Error(`Wait point key "${r}" built from "${e}" is ${r.length} characters; the limit is 63.`);if(!d.test(r))throw Error(`Wait point key "${r}" built from "${e}" must match ${f}.`);return r}function createBoundWaitPoint(e,t){return{wait(n){return Promise.resolve(e.wait(t(),n))},async resolve(n,r){await e.resolve(t(),n,r)}}}function createWaitPointInstance(e){let t=e,n=l(),i=r(createBoundWaitPoint(n,()=>t),`wait-point`);return u(i,n),{instance:i,setKey:e=>{t=e}}}function createParameterizedWaitPointInstance(e,t,n){let i=l(),unbound=()=>{throw Error(n===`define`?`Wait point key "${e}" has $params, so it identifies no single suspension on its own. Bind them first: waitPoint.with({ ... }).wait(...).`:`Wait point key "${e}" has $params, which createWaitPoint cannot type. Declare it through createWaitPoints instead: createWaitPoints((define) => ({ myWaitPoint: define.for("${e}")<Payload, Result>() })).`)},a=r({with(n){let r=composeKey(e,t,n);return c(createBoundWaitPoint(i,()=>r),r)},wait:unbound,resolve:unbound},`wait-point`);return u(a,i),a}function createKeyedWaitPoint(e,t){m({key:e,declaredBy:t});let n=parseKey(e);return n.paramNames.length>0?createParameterizedWaitPointInstance(e,n,t):createWaitPointInstance(e).instance}function createWaitPoint(e){return createKeyedWaitPoint(e,`createWaitPoint`)}function createWaitPoints(e){let t=new Map,n=e(Object.assign(()=>{let{instance:e,setKey:n}=createWaitPointInstance(`__pending__`);return t.set(e,n),e},{for:e=>{let t=createKeyedWaitPoint(e,`define`);return()=>t}}));for(let e of Object.keys(n)){let r=t.get(n[e]);r&&(m({key:e,declaredBy:`property`}),r(e))}return n}function createWorkflow(e){return r({...e,start:process.env.__TAILOR_PLATFORM_BUNDLE?async()=>{throw Error(`workflow.start() is rewritten at build time and unavailable in the bundle`)}:async function(t,n){return arguments.length>=2?await o(e.name,t,n):await o(e.name,t)}},`workflow`)}function defineStaticWebSite(e,t){return{...t,name:e,get url(){return`${e}:url`}}}function defineAIGateway(e,t){return{...t,name:e}}const T={create:[{conditions:[],permit:!0}],read:[{conditions:[],permit:!0}],update:[{conditions:[],permit:!0}],delete:[{conditions:[],permit:!0}],sendPasswordResetEmail:[{conditions:[],permit:!0}],unenrollMfa:[{conditions:[],permit:!0}]};function defineIdp(e,t){return{...t,name:e,provider(t,n){return{name:t,kind:`BuiltInIdP`,namespace:e,clientName:n}}}}function defineSecretManager(e,t){let n={vaults:e,options:{ignoreNullishValues:t?.ignoreNullishValues??!1}};return Object.defineProperty(n,"get",{value:async(e,t)=>tailor.secretmanager.getSecret(e,t),enumerable:!1}),Object.defineProperty(n,"getAll",{value:async(e,t)=>{let n=await tailor.secretmanager.getSecrets(e,t);return t.map(e=>n[e])},enumerable:!1}),n}function createHttpAdapter(e){return r({...e},`http-adapter`)}function defineConfig(e){return e}function definePlugins(...e){return e}const E=h;export{authAccessTokenIssuedTrigger,authAccessTokenRefreshedTrigger,authAccessTokenRevokedTrigger,authAccessTokenTrigger,createExecutor,createHttpAdapter,createResolver,createWaitPoint,createWaitPoints,createWorkflow,createWorkflowJob,n as db,defineAIGateway,defineAuth,defineConfig,defineIdp,definePlugins,defineSecretManager,defineStaticWebSite,defineWorkflowExecutionPolicies,defineWorkflowExecutionPolicy,idpUserCreatedTrigger,idpUserDeletedTrigger,idpUserTrigger,idpUserUpdatedTrigger,incomingWebhookTrigger,recordCreatedTrigger,recordDeletedTrigger,recordTrigger,recordUpdatedTrigger,resolverExecutedTrigger,scheduleTrigger,E as t,_ as unsafeAllowAllGqlPermission,T as unsafeAllowAllIdPPermission,g as unsafeAllowAllTypePermission,workflowExecutionCompletedTrigger,workflowExecutionResumedTrigger,workflowExecutionRetriedTrigger,workflowExecutionStartedTrigger,workflowExecutionTrigger,workflowExecutionWaitResolvedTrigger,workflowExecutionWaitStartedTrigger,workflowJobExecutionCompletedTrigger,workflowJobExecutionStartedTrigger,workflowJobExecutionTrigger,workflowJobExecutionWaitResolvedTrigger,workflowJobExecutionWaitStartedTrigger};
|
|
1
|
+
import{r as e}from"../field-parse-CzlKC4b7.mjs";import{n as t,t as n}from"../schema-DRyQEabV.mjs";import{t as r}from"../brand-C8nMKhJC.mjs";import{a as i,n as a,r as o}from"../registry-HlEaGvl5.mjs";import{l as s,n as c,r as l,t as u}from"../wait-point-invoker-eiP-IIux.mjs";import{a as d,i as f,o as p,r as m}from"../wait-point-registry-B-ESkTZX.mjs";function createTailorField(n,r,i,a,o){let s=o?{...o,...o.allowedValues&&{allowedValues:o.allowedValues.map(e=>({...e}))},...o.validate&&{validate:o.validate.map(e=>Array.isArray(e)?[...e]:e)}}:{required:!0};o||(r&&(r.optional===!0&&(s.required=!1),r.array===!0&&(s.array=!0)),a&&(s.allowedValues=t(a)));function parseInternal$1(t){return e({...t,field:c})}function cloneWith(e){let t=c.clone();return Object.assign(t._metadata,e),t}let c={type:n,fields:i??{},_defined:void 0,_output:void 0,_metadata:s,get metadata(){return{...this._metadata}},description(e){return cloneWith({description:e})},typeName(e){return cloneWith({typeName:e})},validate(...e){return cloneWith({validate:e})},parse(e){return parseInternal$1({value:e.value,data:e.data,invoker:e.invoker,pathArray:[]})},clone(){let e=i;if(i){let t={};for(let[e,n]of Object.entries(i))t[e]=n.clone();e=t}return createTailorField(n,r,e,a,this._metadata)}};return c}function uuid(e){return createTailorField(`uuid`,e)}function string(e){return createTailorField(`string`,e)}function bool(e){return createTailorField(`boolean`,e)}function int(e){return createTailorField(`integer`,e)}function float(e){return createTailorField(`float`,e)}function decimal(e){return createTailorField(`decimal`,e)}function date(e){let t=createTailorField(`date`,e);return e?.as===`date`&&(t._metadata.as=`date`),t}function datetime(e){return createTailorField(`datetime`,e)}function time(e){return createTailorField(`time`,e)}function _enum(e,t){return createTailorField(`enum`,t,void 0,e)}function object(e,t){return createTailorField(`nested`,t,e)}const h={uuid,string,bool,int,float,decimal,date,datetime,time,enum:_enum,object};function defineAuth(e,t){return{...t,name:e}}const g={create:[{conditions:[],permit:!0}],read:[{conditions:[],permit:!0}],update:[{conditions:[],permit:!0}],delete:[{conditions:[],permit:!0}]},_=[{conditions:[],actions:`all`,permit:!0}];function createResolver(e){let t=(e=>typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`)(e.output)?e.output:h.object(e.output);return r({...e,output:t},`resolver`)}function createExecutor(e){return r(e,`executor`)}const v={created:`tailordb.type_record.created`,updated:`tailordb.type_record.updated`,deleted:`tailordb.type_record.deleted`};function recordCreatedTrigger(e){let{type:t,condition:n}=e;return{kind:`tailordb`,events:[`tailordb.type_record.created`],tableName:t.name,condition:n,__args:{}}}function recordUpdatedTrigger(e){let{type:t,condition:n}=e;return{kind:`tailordb`,events:[`tailordb.type_record.updated`],tableName:t.name,condition:n,__args:{}}}function recordDeletedTrigger(e){let{type:t,condition:n}=e;return{kind:`tailordb`,events:[`tailordb.type_record.deleted`],tableName:t.name,condition:n,__args:{}}}function recordTrigger(e){let{type:t,events:n,condition:r}=e;return{kind:`tailordb`,events:n.map(e=>v[e]),tableName:t.name,condition:r,__args:{}}}function resolverExecutedTrigger(e){let{resolver:t,condition:n}=e;return{kind:`resolverExecuted`,resolverName:t.name,condition:n,__args:{}}}const y={created:`idp.user.created`,updated:`idp.user.updated`,deleted:`idp.user.deleted`};function idpUserCreatedTrigger(e){return{kind:`idpUser`,events:[`idp.user.created`],...e?.idp==null?{}:{idp:e.idp},__args:{}}}function idpUserUpdatedTrigger(e){return{kind:`idpUser`,events:[`idp.user.updated`],...e?.idp==null?{}:{idp:e.idp},__args:{}}}function idpUserDeletedTrigger(e){return{kind:`idpUser`,events:[`idp.user.deleted`],...e?.idp==null?{}:{idp:e.idp},__args:{}}}function idpUserTrigger(e){let{events:t,idp:n}=e;return{kind:`idpUser`,events:t.map(e=>y[e]),...n==null?{}:{idp:n},__args:{}}}const b={issued:`auth.access_token.issued`,refreshed:`auth.access_token.refreshed`,revoked:`auth.access_token.revoked`};function authAccessTokenIssuedTrigger(){return{kind:`authAccessToken`,events:[`auth.access_token.issued`],__args:{}}}function authAccessTokenRefreshedTrigger(){return{kind:`authAccessToken`,events:[`auth.access_token.refreshed`],__args:{}}}function authAccessTokenRevokedTrigger(){return{kind:`authAccessToken`,events:[`auth.access_token.revoked`],__args:{}}}function authAccessTokenTrigger(e){let{events:t}=e;return{kind:`authAccessToken`,events:t.map(e=>b[e]),__args:{}}}const x={started:`workflow.workflow_execution.started`,completed:`workflow.workflow_execution.completed`,retried:`workflow.workflow_execution.retried`,resumed:`workflow.workflow_execution.resumed`,wait_started:`workflow.workflow_execution.wait_started`,wait_resolved:`workflow.workflow_execution.wait_resolved`};function workflowExecutionTriggerConfig(e,t){return{kind:`workflowExecution`,events:e,workflowName:t.workflow.name,condition:t.condition,__args:{}}}function workflowExecutionStartedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.started`],e)}function workflowExecutionCompletedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.completed`],e)}function workflowExecutionRetriedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.retried`],e)}function workflowExecutionResumedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.resumed`],e)}function workflowExecutionWaitStartedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.wait_started`],e)}function workflowExecutionWaitResolvedTrigger(e){return workflowExecutionTriggerConfig([`workflow.workflow_execution.wait_resolved`],e)}function workflowExecutionTrigger(e){let{events:t,workflow:n,condition:r}=e;return workflowExecutionTriggerConfig(t.map(e=>x[e]),{workflow:n,condition:r})}const S={started:`workflow.workflow_execution.job_execution.started`,completed:`workflow.workflow_execution.job_execution.completed`,wait_started:`workflow.workflow_execution.job_execution.wait_started`,wait_resolved:`workflow.workflow_execution.job_execution.wait_resolved`};function workflowJobExecutionTriggerConfig(e,t){return{kind:`workflowJobExecution`,events:e,workflowName:t.workflow.name,condition:t.condition,__args:{}}}function workflowJobExecutionStartedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.started`],e)}function workflowJobExecutionCompletedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.completed`],e)}function workflowJobExecutionWaitStartedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.wait_started`],e)}function workflowJobExecutionWaitResolvedTrigger(e){return workflowJobExecutionTriggerConfig([`workflow.workflow_execution.job_execution.wait_resolved`],e)}function workflowJobExecutionTrigger(e){let{events:t,workflow:n,condition:r}=e;return workflowJobExecutionTriggerConfig(t.map(e=>S[e]),{workflow:n,condition:r})}function scheduleTrigger(e){let{cron:t,timezone:n}=e;return{kind:`schedule`,cron:t,timezone:n,__args:{}}}function incomingWebhookTrigger(e){let t=typeof e?.response==`function`?{body:e.response}:e?.response;return{kind:`incomingWebhook`,...t?{response:t}:{},__args:{}}}const C=/^[a-z0-9][a-z0-9_:.-]{0,62}[a-z0-9]$/;function createExecutionPolicyInstance(e,t,n,i,a,o,s){let c=i===`prefix`,l={name:e,key:t,matchType:i,...n&&{concurrencyPolicy:n},...c&&{keyFor:e=>{let t=`${l.key}${a}${e}`;if(!C.test(t))throw Error(`Invalid execution policy key "${t}" built by keyFor("${e}"): must match [a-z0-9_:.-] (2-64 chars; must start and end with [a-z0-9]).`);return t}}};return{instance:r(l,`execution-policy`),setName:o?e=>{l.name=e}:void 0,setKey:s?e=>{l.key=e}:void 0}}function defineWorkflowExecutionPolicy(e,t){return createExecutionPolicyInstance(e,t?.key??e,t?.concurrencyPolicy,t?.matchType??`exact`,t?.separator??`.`,!1,!1).instance}function defineWorkflowExecutionPolicies(e,t){let n=t?.separator??`.`,r=new Map,i=new Map,a=e(e=>{let t=e?.name,a=e?.key,{instance:o,setName:s,setKey:c}=createExecutionPolicyInstance(t??`__pending__`,a??t??`__pending__`,e?.concurrencyPolicy,e?.matchType??`exact`,n,t===void 0,a===void 0&&t===void 0);return s&&r.set(o,s),c&&i.set(o,c),o});for(let e of Object.keys(a)){let t=a[e];r.get(t)?.(e),i.get(t)?.(e)}return a}function createWorkflowJob(e){let t=e.body,n=process.env.__TAILOR_PLATFORM_BUNDLE?t:(e,n)=>s(n.invoker,()=>t(e,n));process.env.__TAILOR_PLATFORM_BUNDLE||i(e.name,n);let o=process.env.__TAILOR_PLATFORM_BUNDLE?()=>{throw Error(`.start() on workflow job "${e.name}" is rewritten at build time and is unavailable in the bundle`)}:function(t,n){return arguments.length>=2?a(e.name,t,n):a(e.name,t)};return r({name:e.name,start:o,body:n,...e.publishEvents===void 0?{}:{publishEvents:e.publishEvents}},`workflow-job`)}const w=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;function parseKey(e){let t=e.split(`-`);return{segments:t,paramNames:t.filter(p).map(e=>e.slice(1))}}function composeKey(e,t,n){let r=t.segments.map(t=>{if(!p(t))return t;let r=t.slice(1),i=n[r];if(typeof i!=`string`)throw Error(`Wait point "${e}" needs a string for parameter "${r}" but received ${i===void 0?`undefined`:typeof i}.`);if(!w.test(i))throw Error(`Wait point "${e}" cannot use ${JSON.stringify(i)} for parameter "${r}": values may only contain [a-z0-9-] and cannot be empty or start or end with "-".`);return i}).join(`-`);if(r.length>63)throw Error(`Wait point key "${r}" built from "${e}" is ${r.length} characters; the limit is 63.`);if(!d.test(r))throw Error(`Wait point key "${r}" built from "${e}" must match ${f}.`);return r}function createBoundWaitPoint(e,t){return{wait(n){return Promise.resolve(e.wait(t(),n))},async resolve(n,r){await e.resolve(t(),n,r)}}}function createWaitPointInstance(e){let t=e,n=l(),i=r(createBoundWaitPoint(n,()=>t),`wait-point`);return u(i,n),{instance:i,setKey:e=>{t=e}}}function createParameterizedWaitPointInstance(e,t,n){let i=l(),unbound=()=>{throw Error(n===`define`?`Wait point key "${e}" has $params, so it identifies no single suspension on its own. Bind them first: waitPoint.with({ ... }).wait(...).`:`Wait point key "${e}" has $params, which createWaitPoint cannot type. Declare it through createWaitPoints instead: createWaitPoints((define) => ({ myWaitPoint: define.for("${e}")<Payload, Result>() })).`)},a=r({with(n){let r=composeKey(e,t,n);return c(createBoundWaitPoint(i,()=>r),r)},wait:unbound,resolve:unbound},`wait-point`);return u(a,i),a}function createKeyedWaitPoint(e,t){m({key:e,declaredBy:t});let n=parseKey(e);return n.paramNames.length>0?createParameterizedWaitPointInstance(e,n,t):createWaitPointInstance(e).instance}function createWaitPoint(e){return createKeyedWaitPoint(e,`createWaitPoint`)}function createWaitPoints(e){let t=new Map,n=e(Object.assign(()=>{let{instance:e,setKey:n}=createWaitPointInstance(`__pending__`);return t.set(e,n),e},{for:e=>{let t=createKeyedWaitPoint(e,`define`);return()=>t}}));for(let e of Object.keys(n)){let r=t.get(n[e]);r&&(m({key:e,declaredBy:`property`}),r(e))}return n}function createWorkflow(e){return r({...e,start:process.env.__TAILOR_PLATFORM_BUNDLE?async()=>{throw Error(`workflow.start() is rewritten at build time and unavailable in the bundle`)}:async function(t,n){return arguments.length>=2?await o(e.name,t,n):await o(e.name,t)}},`workflow`)}function defineStaticWebSite(e,t){return{...t,name:e,get url(){return`${e}:url`}}}function defineAIGateway(e,t){return{...t,name:e}}const T={create:[{conditions:[],permit:!0}],read:[{conditions:[],permit:!0}],update:[{conditions:[],permit:!0}],delete:[{conditions:[],permit:!0}],sendPasswordResetEmail:[{conditions:[],permit:!0}],unenrollMfa:[{conditions:[],permit:!0}]};function defineIdp(e,t){return{...t,name:e,provider(t,n){return{name:t,kind:`BuiltInIdP`,namespace:e,clientName:n}}}}function defineSecretManager(e,t){let n={vaults:e,options:{ignoreNullishValues:t?.ignoreNullishValues??!1}};return Object.defineProperty(n,"get",{value:async(e,t)=>tailor.secretmanager.getSecret(e,t),enumerable:!1}),Object.defineProperty(n,"getAll",{value:async(e,t)=>{let n=await tailor.secretmanager.getSecrets(e,t);return t.map(e=>n[e])},enumerable:!1}),n}function createHttpAdapter(e){return r({...e},`http-adapter`)}function defineConfig(e){return e}function definePlugins(...e){return e}const E=h;export{authAccessTokenIssuedTrigger,authAccessTokenRefreshedTrigger,authAccessTokenRevokedTrigger,authAccessTokenTrigger,createExecutor,createHttpAdapter,createResolver,createWaitPoint,createWaitPoints,createWorkflow,createWorkflowJob,n as db,defineAIGateway,defineAuth,defineConfig,defineIdp,definePlugins,defineSecretManager,defineStaticWebSite,defineWorkflowExecutionPolicies,defineWorkflowExecutionPolicy,idpUserCreatedTrigger,idpUserDeletedTrigger,idpUserTrigger,idpUserUpdatedTrigger,incomingWebhookTrigger,recordCreatedTrigger,recordDeletedTrigger,recordTrigger,recordUpdatedTrigger,resolverExecutedTrigger,scheduleTrigger,E as t,_ as unsafeAllowAllGqlPermission,T as unsafeAllowAllIdPPermission,g as unsafeAllowAllTypePermission,workflowExecutionCompletedTrigger,workflowExecutionResumedTrigger,workflowExecutionRetriedTrigger,workflowExecutionStartedTrigger,workflowExecutionTrigger,workflowExecutionWaitResolvedTrigger,workflowExecutionWaitStartedTrigger,workflowJobExecutionCompletedTrigger,workflowJobExecutionStartedTrigger,workflowJobExecutionTrigger,workflowJobExecutionWaitResolvedTrigger,workflowJobExecutionWaitStartedTrigger};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|