@tailor-platform/sdk 2.5.0 → 2.6.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/bin/tailor.mjs +3 -2
  3. package/dist/application-CNeOcaLc.mjs +1 -0
  4. package/dist/application-CmXOqTaK.mjs +192 -0
  5. package/dist/application-CmXOqTaK.mjs.map +1 -0
  6. package/dist/cli/commands/api/index.d.mts +1 -1
  7. package/dist/cli/commands/executor/trigger.d.mts +1 -1
  8. package/dist/cli/commands/workflow/start.d.mts +1 -1
  9. package/dist/cli/commands/workspace/list.d.mts +1 -1
  10. package/dist/cli/lib.d.mts +5 -1
  11. package/dist/cli/lib.mjs +1 -1
  12. package/dist/cli/lib.mjs.map +1 -1
  13. package/dist/cli/main.d.mts +2 -0
  14. package/dist/cli/main.mjs +58 -58
  15. package/dist/cli/main.mjs.map +1 -1
  16. package/dist/cli/shared/args.d.mts +65 -1
  17. package/dist/cli/shared/command.d.mts +11 -0
  18. package/dist/cli/shared/context.d.mts +1 -1
  19. package/dist/cli/shared/logger.d.mts +64 -0
  20. package/dist/cli/shared/script-executor.d.mts +1 -1
  21. package/dist/completion/zsh-worker.zsh +1 -1
  22. package/dist/configure/index.mjs +1 -1
  23. package/dist/configure/index.mjs.map +1 -1
  24. package/dist/configure/services/tailordb/schema.d.mts +18 -0
  25. package/dist/configure/services/tailordb/types.d.mts +1 -1
  26. package/dist/{crashreport-B-_HTKLr.mjs → crashreport-BN28xp5B.mjs} +2 -2
  27. package/dist/{crashreport-B-_HTKLr.mjs.map → crashreport-BN28xp5B.mjs.map} +1 -1
  28. package/dist/crashreport-By23O2k-.mjs +1 -0
  29. package/dist/{errors-DSEXKRVD.mjs → errors-DLsQ_-ol.mjs} +2 -2
  30. package/dist/{errors-DSEXKRVD.mjs.map → errors-DLsQ_-ol.mjs.map} +1 -1
  31. package/dist/es-builtins-n3wBv4Sv.mjs +2 -0
  32. package/dist/es-builtins-n3wBv4Sv.mjs.map +1 -0
  33. package/dist/{logger-BcGy-u7G.mjs → logger-CCjs1DuH.mjs} +4 -4
  34. package/dist/logger-CCjs1DuH.mjs.map +1 -0
  35. package/dist/{register-ts-hook-Drnaproy.mjs → register-ts-hook-oDA2JLp2.mjs} +65 -65
  36. package/dist/register-ts-hook-oDA2JLp2.mjs.map +1 -0
  37. package/dist/schema-AYG4OhXY.mjs +2 -0
  38. package/dist/{schema-Ze_dI5VX.mjs.map → schema-AYG4OhXY.mjs.map} +1 -1
  39. package/dist/{service-DlgaUO4V.mjs → service-CLPMoj9n.mjs} +2 -2
  40. package/dist/{service-DlgaUO4V.mjs.map → service-CLPMoj9n.mjs.map} +1 -1
  41. package/dist/service-D7iXk0BT.mjs +1 -0
  42. package/dist/{service-BVe9u2Rt.mjs → service-YqDsHmlK.mjs} +3 -3
  43. package/dist/service-YqDsHmlK.mjs.map +1 -0
  44. package/dist/shared/src/color.d.mts +5 -0
  45. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +1 -1
  46. package/dist/vitest/environment.mjs +1 -1
  47. package/dist/vitest/environment.mjs.map +1 -1
  48. package/dist/wait-point-registry-B-ESkTZX.mjs +2 -0
  49. package/dist/wait-point-registry-B-ESkTZX.mjs.map +1 -0
  50. package/docs/github-actions.md +4 -3
  51. package/docs/migration/v2.md +5 -1
  52. package/docs/migration/v3.md +39 -0
  53. package/docs/services/tailordb.md +9 -7
  54. package/package.json +5 -4
  55. package/dist/application-DFOUovmN.mjs +0 -1
  56. package/dist/application-D_4vg1KR.mjs +0 -192
  57. package/dist/application-D_4vg1KR.mjs.map +0 -1
  58. package/dist/crashreport-BmsRIdpy.mjs +0 -1
  59. package/dist/logger-BcGy-u7G.mjs.map +0 -1
  60. package/dist/register-ts-hook-Drnaproy.mjs.map +0 -1
  61. package/dist/schema-Ze_dI5VX.mjs +0 -2
  62. package/dist/service-BVe9u2Rt.mjs.map +0 -1
  63. package/dist/service-CpZELSBa.mjs +0 -1
  64. package/dist/wait-point-registry-BrkwfyjS.mjs +0 -2
  65. package/dist/wait-point-registry-BrkwfyjS.mjs.map +0 -1
@@ -9,5 +9,69 @@ declare const orderArg: z.ZodEnum<{
9
9
  desc: "desc";
10
10
  }>;
11
11
  type Order = z.infer<typeof orderArg>;
12
+ type EnvFileArg = string | string[] | undefined;
13
+ /**
14
+ * Load env files from parsed arguments.
15
+ * Processes --env-file first, then --env-file-if-exists.
16
+ *
17
+ * Follows Node.js --env-file behavior:
18
+ * - Variables already set in the environment are NOT overwritten
19
+ * - Variables from later files override those from earlier files
20
+ * @param envFiles - Required env file path(s) that must exist
21
+ * @param envFilesIfExists - Optional env file path(s) that are loaded if they exist
22
+ */
23
+ declare function loadEnvFiles(envFiles: EnvFileArg, envFilesIfExists: EnvFileArg): void;
24
+ interface CommonArgsOptions {
25
+ /** Extra short alias for `--verbose` (e.g. `"v"`), for plugins that need one */
26
+ verboseAlias?: string;
27
+ }
28
+ /**
29
+ * Build the common arguments for all CLI commands. CLI plugins call this so
30
+ * their forwarded global flags parse identically to the host Tailor CLI and
31
+ * feed the same logger state.
32
+ *
33
+ * NOTE: --env-file and --env-file-if-exists collide with Node.js flags due to a bug
34
+ * (https://github.com/nodejs/node/issues/54232). Node.js parses these even after the
35
+ * script path, causing warnings (twice due to tsx loader).
36
+ * @param options - Per-plugin adjustments to the shared arguments
37
+ * @returns Argument shape suitable for spreading into a command schema
38
+ */
39
+ declare function createCommonArgs(options?: CommonArgsOptions): {
40
+ "env-file": z.ZodOptional<z.ZodString>;
41
+ "env-file-if-exists": z.ZodOptional<z.ZodString>;
42
+ verbose: z.ZodDefault<z.ZodBoolean>;
43
+ json: z.ZodDefault<z.ZodBoolean>;
44
+ };
45
+ /**
46
+ * Common arguments for all CLI commands
47
+ */
48
+ declare const commonArgs: {
49
+ "env-file": z.ZodOptional<z.ZodString>;
50
+ "env-file-if-exists": z.ZodOptional<z.ZodString>;
51
+ verbose: z.ZodDefault<z.ZodBoolean>;
52
+ json: z.ZodDefault<z.ZodBoolean>;
53
+ };
54
+ /**
55
+ * Arguments for commands that require workspace context
56
+ */
57
+ declare const workspaceArgs: {
58
+ "workspace-id": z.ZodOptional<z.ZodString>;
59
+ profile: z.ZodOptional<z.ZodString>;
60
+ };
61
+ /**
62
+ * Shared config arg for commands that accept a config file path
63
+ */
64
+ declare const configArg: {
65
+ config: z.ZodDefault<z.ZodString>;
66
+ };
67
+ /**
68
+ * Arguments for commands that interact with deployed resources (includes config)
69
+ */
70
+ declare const deploymentArgs: {
71
+ config: z.ZodDefault<z.ZodString>;
72
+ "workspace-id": z.ZodOptional<z.ZodString>;
73
+ profile: z.ZodOptional<z.ZodString>;
74
+ };
75
+ type CommonArgsType = z.infer<z.ZodObject<typeof commonArgs>>;
12
76
  //#endregion
13
- export { Order, orderArg };
77
+ export { CommonArgsType, Order, commonArgs, configArg, createCommonArgs, deploymentArgs, loadEnvFiles, orderArg, workspaceArgs };
@@ -0,0 +1,11 @@
1
+ import { CommonArgsType } from "./args.mjs";
2
+ import { createDefineCommand } from "politty";
3
+ //#region src/cli/shared/command.d.ts
4
+ /**
5
+ * defineCommand with global args type (CommonArgsType).
6
+ * Use this for leaf commands with `run` to get type-safe access to global args.
7
+ * Parent commands with only `subCommands` can use `defineCommand` from politty directly.
8
+ */
9
+ declare const defineAppCommand: ReturnType<typeof createDefineCommand<CommonArgsType>>;
10
+ //#endregion
11
+ export { defineAppCommand };
@@ -1,5 +1,5 @@
1
- import "./client.mjs";
2
1
  import "./args.mjs";
2
+ import "./client.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/cli/shared/context.d.ts
5
5
  type LoadWorkspaceIdOptions = {
@@ -0,0 +1,64 @@
1
+ import { StyleFn } from "../../shared/src/color.mjs";
2
+ //#region src/cli/shared/logger.d.ts
3
+ /**
4
+ * Semantic style functions for inline text styling
5
+ */
6
+ declare const styles: {
7
+ success: StyleFn;
8
+ error: StyleFn;
9
+ warning: StyleFn;
10
+ info: StyleFn;
11
+ create: StyleFn;
12
+ update: StyleFn;
13
+ delete: StyleFn;
14
+ replace: StyleFn;
15
+ unchanged: StyleFn;
16
+ bold: StyleFn;
17
+ dim: StyleFn;
18
+ highlight: StyleFn;
19
+ successBright: StyleFn;
20
+ errorBright: StyleFn;
21
+ resourceType: StyleFn;
22
+ resourceName: StyleFn;
23
+ path: StyleFn;
24
+ value: StyleFn;
25
+ placeholder: (text: string) => string;
26
+ };
27
+ /**
28
+ * Log output modes
29
+ */
30
+ type LogMode = "default" | "stream" | "plain";
31
+ interface LogOptions {
32
+ /** Output mode (default: "default") */
33
+ mode?: LogMode;
34
+ /** Number of spaces to indent the entire line (default: 0) */
35
+ indent?: number;
36
+ }
37
+ /** Field transformer function. null excludes the field from table output. */
38
+ type FieldTransformer = ((value: unknown, item: object) => string) | null;
39
+ interface OutOptions {
40
+ /** Table display field transform/exclude settings. Only applied in table mode (not JSON). */
41
+ display?: Record<string, FieldTransformer>;
42
+ /** Show null values in table output (default: false) */
43
+ showNull?: boolean;
44
+ }
45
+ /**
46
+ * The CLI logger. Diagnostics go to stderr; `out()` writes primary output to
47
+ * stdout as a table, or as JSON when `jsonMode` is on. `--json` and
48
+ * `--verbose` feed the `jsonMode` / `verbose` state, which CLI plugins share
49
+ * with the SDK code paths they call.
50
+ */
51
+ declare const logger: {
52
+ jsonMode: boolean;
53
+ verbose: boolean;
54
+ info(message: string, opts?: LogOptions): void;
55
+ success(message: string, opts?: LogOptions): void;
56
+ warn(message: string, opts?: LogOptions): void;
57
+ error(message: string, opts?: LogOptions): void;
58
+ log(message: string): void;
59
+ newline(): void;
60
+ debug(message: string): void;
61
+ out(data: string | object | object[], options?: OutOptions): void;
62
+ };
63
+ //#endregion
64
+ export { FieldTransformer, LogMode, LogOptions, OutOptions, logger, styles };
@@ -1,8 +1,8 @@
1
1
  import { AuthInvokerSchema } from "../../tailor-proto/src/tailor/v1/auth_resource_pb.mjs";
2
2
  import { FunctionExecution_Status } from "../../tailor-proto/src/tailor/v1/function_resource_pb.mjs";
3
3
  import { OperatorClient } from "./client.mjs";
4
- import { Jsonifiable } from "type-fest";
5
4
  import { MessageInitShape } from "@bufbuild/protobuf";
5
+ import { Jsonifiable } from "type-fest";
6
6
  //#region src/cli/shared/script-executor.d.ts
7
7
  /** Authentication context for script execution, provided as a plain object. */
8
8
  type ScriptInvoker = MessageInitShape<typeof AuthInvokerSchema>;
@@ -1,5 +1,5 @@
1
1
  # politty-completion-version: 1
2
- # politty-bin-sig: 1787528353
2
+ # politty-bin-sig: 1787619934
3
3
  # politty-bin-path: /home/runner/work/sdk/sdk/node_modules/.bin/tailor
4
4
  # program: tailor
5
5
  # shell: zsh
@@ -1,2 +1,2 @@
1
- import{i as e,n as t,t as n}from"../schema-Ze_dI5VX.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{r as d}from"../wait-point-registry-BrkwfyjS.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){return createTailorField(`date`,e)}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 f={uuid,string,bool,int,float,decimal,date,datetime,time,enum:_enum,object};function defineAuth(e,t){return{...t,name:e}}const p={create:[{conditions:[],permit:!0}],read:[{conditions:[],permit:!0}],update:[{conditions:[],permit:!0}],delete:[{conditions:[],permit:!0}]},m=[{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:f.object(e.output);return r({...e,output:t},`resolver`)}function createExecutor(e){return r(e,`executor`)}const h={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=>h[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 g={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=>g[e]),...n==null?{}:{idp:n},__args:{}}}const _={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=>_[e]),__args:{}}}const v={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=>v[e]),{workflow:n,condition:r})}const y={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=>y[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 b=/^[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(!b.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 x=/^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$/,S=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;function parseKey(e){let t=e.split(`-`);return{segments:t,paramNames:t.filter(e=>e.startsWith(`$`)&&e.length>1).map(e=>e.slice(1))}}function composeKey(e,t,n){let r=t.segments.map(t=>{if(!t.startsWith(`$`)||t.length===1)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(!S.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(!x.test(r))throw Error(`Wait point key "${r}" built from "${e}" must match [a-z0-9-] (3-63 characters; must start and end with [a-z0-9]).`);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){d({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&&(d({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 C={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 w=f;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,w as t,m as unsafeAllowAllGqlPermission,C as unsafeAllowAllIdPPermission,p as unsafeAllowAllTypePermission,workflowExecutionCompletedTrigger,workflowExecutionResumedTrigger,workflowExecutionRetriedTrigger,workflowExecutionStartedTrigger,workflowExecutionTrigger,workflowExecutionWaitResolvedTrigger,workflowExecutionWaitStartedTrigger,workflowJobExecutionCompletedTrigger,workflowJobExecutionStartedTrigger,workflowJobExecutionTrigger,workflowJobExecutionWaitResolvedTrigger,workflowJobExecutionWaitStartedTrigger};
1
+ import{i as e,n as t,t as n}from"../schema-AYG4OhXY.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){return createTailorField(`date`,e)}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