@tailor-platform/sdk 2.0.0-next.1 → 2.0.0-next.11

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 (478) hide show
  1. package/CHANGELOG.md +1056 -24
  2. package/README.md +9 -9
  3. package/agent-skills/{tailor-sdk → tailor}/SKILL.md +3 -1
  4. package/dist/aigateway-DR4Kwuik.mjs +9 -0
  5. package/dist/aigateway-DR4Kwuik.mjs.map +1 -0
  6. package/dist/{application-DqS1yBg3.mjs → application-CM6hKnSK.mjs} +2155 -2008
  7. package/dist/application-CM6hKnSK.mjs.map +1 -0
  8. package/dist/application-CXNaUNhv.mjs +3 -0
  9. package/dist/authconnection-CZvi9ANm.mjs +9 -0
  10. package/dist/authconnection-CZvi9ANm.mjs.map +1 -0
  11. package/dist/brand-Eo4pLXPJ.mjs.map +1 -1
  12. package/dist/cli/cache/bundle-cache.d.mts +2 -0
  13. package/dist/cli/cache/store.d.mts +1 -0
  14. package/dist/cli/cache/types.d.mts +1 -0
  15. package/dist/cli/commands/api/api-call.d.mts +19 -0
  16. package/dist/cli/commands/api/index.d.mts +4 -0
  17. package/dist/cli/commands/deploy/aigateway.d.mts +5 -0
  18. package/dist/cli/commands/deploy/application.d.mts +7 -0
  19. package/dist/cli/commands/deploy/apply-phases.d.mts +14 -0
  20. package/dist/cli/commands/deploy/auth.d.mts +5 -0
  21. package/dist/cli/commands/deploy/deploy.d.mts +35 -0
  22. package/dist/cli/commands/deploy/executor.d.mts +7 -0
  23. package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
  24. package/dist/cli/commands/deploy/function-registry.d.mts +6 -0
  25. package/dist/cli/commands/deploy/idp.d.mts +5 -0
  26. package/dist/cli/commands/deploy/label.d.mts +2 -0
  27. package/dist/cli/commands/deploy/resolver.d.mts +5 -0
  28. package/dist/cli/commands/deploy/secret-manager.d.mts +5 -0
  29. package/dist/cli/commands/deploy/staticwebsite.d.mts +5 -0
  30. package/dist/cli/commands/deploy/tailordb/index.d.mts +10 -0
  31. package/dist/cli/commands/deploy/types.d.mts +4 -0
  32. package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +2 -0
  33. package/dist/cli/commands/deploy/workflow.d.mts +4 -0
  34. package/dist/cli/commands/executor/get.d.mts +19 -0
  35. package/dist/cli/commands/executor/jobs.d.mts +85 -0
  36. package/dist/cli/commands/executor/list.d.mts +18 -0
  37. package/dist/cli/commands/executor/transform.d.mts +42 -0
  38. package/dist/cli/commands/executor/trigger.d.mts +30 -0
  39. package/dist/cli/commands/executor/webhook.d.mts +21 -0
  40. package/dist/cli/commands/function/get.d.mts +17 -0
  41. package/dist/cli/commands/function/list.d.mts +21 -0
  42. package/dist/cli/commands/function/transform.d.mts +12 -0
  43. package/dist/cli/commands/generate/options.d.mts +6 -0
  44. package/dist/cli/commands/generate/seed/bundler.d.mts +27 -0
  45. package/dist/cli/commands/generate/service.d.mts +15 -0
  46. package/dist/cli/commands/machineuser/list.d.mts +26 -0
  47. package/dist/cli/commands/machineuser/token.d.mts +21 -0
  48. package/dist/cli/commands/oauth2client/get.d.mts +17 -0
  49. package/dist/cli/commands/oauth2client/list.d.mts +19 -0
  50. package/dist/cli/commands/oauth2client/transform.d.mts +21 -0
  51. package/dist/cli/commands/organization/folder/create.d.mts +17 -0
  52. package/dist/cli/commands/organization/folder/delete.d.mts +15 -0
  53. package/dist/cli/commands/organization/folder/get.d.mts +16 -0
  54. package/dist/cli/commands/organization/folder/list.d.mts +21 -0
  55. package/dist/cli/commands/organization/folder/update.d.mts +17 -0
  56. package/dist/cli/commands/organization/get.d.mts +15 -0
  57. package/dist/cli/commands/organization/list.d.mts +14 -0
  58. package/dist/cli/commands/organization/transform.d.mts +29 -0
  59. package/dist/cli/commands/organization/tree.d.mts +24 -0
  60. package/dist/cli/commands/organization/update.d.mts +16 -0
  61. package/dist/cli/commands/remove.d.mts +15 -0
  62. package/dist/cli/commands/show.d.mts +39 -0
  63. package/dist/cli/commands/staticwebsite/deploy.d.mts +19 -0
  64. package/dist/cli/commands/tailordb/migrate/bundler.d.mts +29 -0
  65. package/dist/cli/commands/tailordb/migrate/config.d.mts +18 -0
  66. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +246 -0
  67. package/dist/cli/commands/tailordb/migrate/generate.d.mts +16 -0
  68. package/dist/cli/commands/tailordb/migrate/schema-checks.d.mts +5 -0
  69. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +208 -0
  70. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
  71. package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
  72. package/dist/cli/commands/tailordb/truncate.d.mts +18 -0
  73. package/dist/cli/commands/workflow/executions.d.mts +62 -0
  74. package/dist/cli/commands/workflow/get.d.mts +21 -0
  75. package/dist/cli/commands/workflow/list.d.mts +18 -0
  76. package/dist/cli/commands/workflow/resume.d.mts +22 -0
  77. package/dist/cli/commands/workflow/start.d.mts +48 -0
  78. package/dist/cli/commands/workflow/status.d.mts +6 -0
  79. package/dist/cli/commands/workflow/transform.d.mts +34 -0
  80. package/dist/cli/commands/workflow/wait.d.mts +15 -0
  81. package/dist/cli/commands/workflow/waiter.d.mts +23 -0
  82. package/dist/cli/commands/workspace/app/health.d.mts +17 -0
  83. package/dist/cli/commands/workspace/app/list.d.mts +21 -0
  84. package/dist/cli/commands/workspace/app/transform.d.mts +20 -0
  85. package/dist/cli/commands/workspace/create.d.mts +27 -0
  86. package/dist/cli/commands/workspace/delete.d.mts +14 -0
  87. package/dist/cli/commands/workspace/get.d.mts +16 -0
  88. package/dist/cli/commands/workspace/list.d.mts +17 -0
  89. package/dist/cli/commands/workspace/restore.d.mts +14 -0
  90. package/dist/cli/commands/workspace/transform.d.mts +20 -0
  91. package/dist/cli/commands/workspace/user/invite.d.mts +21 -0
  92. package/dist/cli/commands/workspace/user/list.d.mts +21 -0
  93. package/dist/cli/commands/workspace/user/remove.d.mts +16 -0
  94. package/dist/cli/commands/workspace/user/transform.d.mts +9 -0
  95. package/dist/cli/commands/workspace/user/update.d.mts +21 -0
  96. package/dist/cli/index.mjs +12 -5481
  97. package/dist/cli/lib.d.mts +86 -21048
  98. package/dist/cli/lib.mjs +245 -46
  99. package/dist/cli/lib.mjs.map +1 -1
  100. package/dist/cli/main.d.mts +23 -0
  101. package/dist/cli/main.mjs +6777 -0
  102. package/dist/cli/main.mjs.map +1 -0
  103. package/dist/cli/query/index.d.mts +38 -0
  104. package/dist/cli/services/application.d.mts +12 -0
  105. package/dist/cli/services/auth/service.d.mts +3 -0
  106. package/dist/cli/services/executor/service.d.mts +1 -0
  107. package/dist/cli/services/http-adapter/bundler.d.mts +4 -0
  108. package/dist/cli/services/http-adapter/service.d.mts +2 -0
  109. package/dist/cli/services/resolver/service.d.mts +1 -0
  110. package/dist/cli/services/tailordb/service.d.mts +3 -0
  111. package/dist/cli/services/workflow/bundler.d.mts +3 -0
  112. package/dist/cli/services/workflow/service.d.mts +1 -0
  113. package/dist/cli/shared/args.d.mts +13 -0
  114. package/dist/cli/shared/client.d.mts +1298 -0
  115. package/dist/cli/shared/config-loader.d.mts +32 -0
  116. package/dist/cli/shared/context.d.mts +29 -0
  117. package/dist/cli/shared/error-json.d.mts +23 -0
  118. package/dist/cli/shared/readonly-guard.d.mts +25 -0
  119. package/dist/cli/shared/script-executor.d.mts +77 -0
  120. package/dist/cli/shared/seed-chunker.d.mts +45 -0
  121. package/dist/cli/shared/seed-context.d.mts +49 -0
  122. package/dist/cli/shared/tailordb-namespaces.d.mts +40 -0
  123. package/dist/cli/shared/tsconfig-paths-plugin.d.mts +2 -0
  124. package/dist/cli/shared/type-generator.d.mts +20 -0
  125. package/dist/cli/shared/workspace-name.d.mts +1 -0
  126. package/dist/cli/ts-hook.d.mts +4 -0
  127. package/dist/cli/ts-hook.mjs +333 -0
  128. package/dist/completion/zsh-worker.zsh +1471 -1217
  129. package/dist/configure/config/index.d.mts +20 -0
  130. package/dist/configure/config/types.d.mts +134 -0
  131. package/dist/configure/index.d.mts +135 -8
  132. package/dist/configure/index.mjs +558 -36
  133. package/dist/configure/index.mjs.map +1 -1
  134. package/dist/configure/services/aigateway/index.d.mts +16 -0
  135. package/dist/configure/services/aigateway/types.d.mts +10 -0
  136. package/dist/configure/services/auth/index.d.mts +33 -0
  137. package/dist/configure/services/auth/types.d.mts +168 -0
  138. package/dist/configure/services/executor/executor.d.mts +70 -0
  139. package/dist/configure/services/executor/index.d.mts +9 -0
  140. package/dist/configure/services/executor/operation.d.mts +50 -0
  141. package/dist/configure/services/executor/trigger/event.d.mts +514 -0
  142. package/dist/configure/services/executor/trigger/index.d.mts +7 -0
  143. package/dist/configure/services/executor/trigger/schedule.d.mts +24 -0
  144. package/dist/configure/services/executor/trigger/webhook.d.mts +43 -0
  145. package/dist/configure/services/executor/types.d.mts +2 -0
  146. package/dist/configure/services/http-adapter/http-adapter.d.mts +124 -0
  147. package/dist/configure/services/http-adapter/index.d.mts +2 -0
  148. package/dist/configure/services/idp/index.d.mts +60 -0
  149. package/dist/configure/services/idp/permission.d.mts +64 -0
  150. package/dist/configure/services/idp/types.d.mts +23 -0
  151. package/dist/configure/services/index.d.mts +40 -0
  152. package/dist/configure/services/resolver/index.d.mts +6 -0
  153. package/dist/configure/services/resolver/permission.d.mts +64 -0
  154. package/dist/configure/services/resolver/resolver.d.mts +88 -0
  155. package/dist/configure/services/resolver/types.d.mts +5 -0
  156. package/dist/configure/services/secrets/index.d.mts +37 -0
  157. package/dist/configure/services/secrets/types.d.mts +10 -0
  158. package/dist/configure/services/staticwebsite/index.d.mts +18 -0
  159. package/dist/configure/services/staticwebsite/types.d.mts +10 -0
  160. package/dist/configure/services/tailordb/index.d.mts +3 -0
  161. package/dist/configure/services/tailordb/permission.d.mts +103 -0
  162. package/dist/configure/services/tailordb/schema.d.mts +486 -0
  163. package/dist/configure/services/tailordb/types.d.mts +198 -0
  164. package/dist/configure/services/workflow/execution-policy.d.mts +70 -0
  165. package/dist/configure/services/workflow/execution-policy.types.d.mts +103 -0
  166. package/dist/configure/services/workflow/index.d.mts +9 -0
  167. package/dist/configure/services/workflow/job.d.mts +92 -0
  168. package/dist/configure/services/workflow/types.d.mts +2 -0
  169. package/dist/configure/services/workflow/wait-point.d.mts +72 -0
  170. package/dist/configure/services/workflow/workflow.d.mts +66 -0
  171. package/dist/configure/types/aigateway-name.d.mts +12 -0
  172. package/dist/configure/types/connection-name.d.mts +12 -0
  173. package/dist/configure/types/field.d.mts +8 -0
  174. package/dist/configure/types/field.types.d.mts +70 -0
  175. package/dist/configure/types/idp-name.d.mts +12 -0
  176. package/dist/configure/types/index.d.mts +5 -0
  177. package/dist/configure/types/machine-user.d.mts +2 -0
  178. package/dist/configure/types/permission-operand.types.d.mts +20 -0
  179. package/dist/configure/types/type.d.mts +73 -0
  180. package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
  181. package/dist/context-DYQVYWqZ.mjs.map +1 -0
  182. package/dist/{crashreport-BsjAkFWw.mjs → crashreport-B5LqCTfF.mjs} +10 -11
  183. package/dist/{crashreport-BsjAkFWw.mjs.map → crashreport-B5LqCTfF.mjs.map} +1 -1
  184. package/dist/{crashreport-pr6Rhvza.mjs → crashreport-eI7ty7ok.mjs} +1 -1
  185. package/dist/{errors-Dtf2WPaW.mjs → errors-D7583Zz7.mjs} +18 -2
  186. package/dist/errors-D7583Zz7.mjs.map +1 -0
  187. package/dist/{file-_oUZo76X.mjs → file-BUcmVIH2.mjs} +12 -22
  188. package/dist/file-BUcmVIH2.mjs.map +1 -0
  189. package/dist/{globals-Crz8o65k.mjs → globals-TfAVItuK.mjs} +32 -55
  190. package/dist/globals-TfAVItuK.mjs.map +1 -0
  191. package/dist/iconv-QWaZh0TT.mjs +38 -0
  192. package/dist/iconv-QWaZh0TT.mjs.map +1 -0
  193. package/dist/{idp-BDbK5gjm.mjs → idp-RA_swu-h.mjs} +12 -5
  194. package/dist/idp-RA_swu-h.mjs.map +1 -0
  195. package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
  196. package/dist/interceptor-e33JtsC-.mjs.map +1 -0
  197. package/dist/kysely/index.d.mts +5 -7
  198. package/dist/logger-BtX0suGY.mjs +48 -0
  199. package/dist/logger-BtX0suGY.mjs.map +1 -0
  200. package/dist/logger-CXQq9YIp.mjs +317 -0
  201. package/dist/logger-CXQq9YIp.mjs.map +1 -0
  202. package/dist/node-builtins-CmaL2Cbq.mjs +36 -0
  203. package/dist/node-builtins-CmaL2Cbq.mjs.map +1 -0
  204. package/dist/parser/service/auth/index.d.mts +1 -0
  205. package/dist/parser/service/auth/schema.d.mts +3 -0
  206. package/dist/parser/service/http-adapter/index.d.mts +1 -0
  207. package/dist/parser/service/http-adapter/schema.d.mts +1 -0
  208. package/dist/parser/service/idp/types.d.mts +5 -0
  209. package/dist/parser/service/tailordb/type-source.d.mts +10 -0
  210. package/dist/parser/service/tailordb/types.d.mts +131 -0
  211. package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
  212. package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
  213. package/dist/plugin/builtin/enum-constants/index.d.mts +15 -1
  214. package/dist/plugin/builtin/enum-constants/index.mjs +115 -2
  215. package/dist/plugin/builtin/enum-constants/index.mjs.map +1 -0
  216. package/dist/plugin/builtin/file-utils/index.d.mts +15 -1
  217. package/dist/plugin/builtin/file-utils/index.mjs +149 -2
  218. package/dist/plugin/builtin/file-utils/index.mjs.map +1 -0
  219. package/dist/plugin/builtin/kysely-type/index.d.mts +15 -1
  220. package/dist/plugin/builtin/kysely-type/index.mjs +274 -2
  221. package/dist/plugin/builtin/kysely-type/index.mjs.map +1 -0
  222. package/dist/plugin/builtin/seed/index.d.mts +46 -2
  223. package/dist/plugin/builtin/seed/index.mjs +1 -1
  224. package/dist/plugin/builtin/seed/seed-type-processor.d.mts +21 -0
  225. package/dist/plugin/builtin/seed/types.d.mts +2 -0
  226. package/dist/plugin/get-generated-type.d.mts +16 -0
  227. package/dist/plugin/index.d.mts +3 -117
  228. package/dist/plugin/index.mjs +1 -1
  229. package/dist/plugin/index.mjs.map +1 -1
  230. package/dist/plugin/manager.d.mts +2 -0
  231. package/dist/plugin/types.d.mts +242 -0
  232. package/dist/plugin/with-context.d.mts +101 -0
  233. package/dist/{runtime-n9NCkjee.mjs → register-ts-hook-LYV7zH-e.mjs} +9652 -4479
  234. package/dist/register-ts-hook-LYV7zH-e.mjs.map +1 -0
  235. package/dist/{registry-DdsYlL_P.mjs → registry-BIGVUrMB.mjs} +12 -9
  236. package/dist/registry-BIGVUrMB.mjs.map +1 -0
  237. package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
  238. package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  239. package/dist/runtime/aigateway.d.mts +25 -0
  240. package/dist/runtime/aigateway.mjs +3 -0
  241. package/dist/runtime/authconnection.d.mts +21 -2
  242. package/dist/runtime/authconnection.mjs +2 -2
  243. package/dist/runtime/context.d.mts +54 -2
  244. package/dist/runtime/context.mjs +2 -2
  245. package/dist/runtime/field-parse.d.mts +10 -0
  246. package/dist/runtime/file.d.mts +170 -2
  247. package/dist/runtime/file.mjs +2 -2
  248. package/dist/runtime/globals.d.mts +38 -20
  249. package/dist/runtime/iconv.d.mts +73 -2
  250. package/dist/runtime/iconv.mjs +2 -2
  251. package/dist/runtime/idp.d.mts +129 -2
  252. package/dist/runtime/idp.mjs +2 -2
  253. package/dist/runtime/index.d.mts +48 -9
  254. package/dist/runtime/index.mjs +10 -8
  255. package/dist/runtime/logger.d.mts +98 -0
  256. package/dist/runtime/logger.mjs +3 -0
  257. package/dist/runtime/secretmanager.d.mts +41 -2
  258. package/dist/runtime/secretmanager.mjs +2 -2
  259. package/dist/runtime/types.d.mts +25 -0
  260. package/dist/runtime/workflow.d.mts +106 -2
  261. package/dist/runtime/workflow.mjs +2 -2
  262. package/dist/{schema-BhkpP5Hw.mjs → schema--xYWRGfe.mjs} +288 -229
  263. package/dist/schema--xYWRGfe.mjs.map +1 -0
  264. package/dist/{secret-file-DBqZhjFQ.mjs → secret-file-C3J4Gy8r.mjs} +2 -2
  265. package/dist/{secret-file-DBqZhjFQ.mjs.map → secret-file-C3J4Gy8r.mjs.map} +1 -1
  266. package/dist/secretmanager-CYlpffsz.mjs +13 -0
  267. package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
  268. package/dist/secretmanager-IY4UvinW.mjs +131 -0
  269. package/dist/secretmanager-IY4UvinW.mjs.map +1 -0
  270. package/dist/seed/index.d.mts +4 -4
  271. package/dist/seed-B-yckgQY.mjs +483 -0
  272. package/dist/seed-B-yckgQY.mjs.map +1 -0
  273. package/dist/{service-DU1mVzri.mjs → service-B5WynBHQ.mjs} +3 -3
  274. package/dist/{service-DU1mVzri.mjs.map → service-B5WynBHQ.mjs.map} +1 -1
  275. package/dist/service-M7OYziQP.mjs +3 -0
  276. package/dist/service-k1xy_A5G.mjs +864 -0
  277. package/dist/service-k1xy_A5G.mjs.map +1 -0
  278. package/dist/service_pb-D5--My_M.mjs +167 -0
  279. package/dist/service_pb-D5--My_M.mjs.map +1 -0
  280. package/dist/service_pb-i8CmnQP4.mjs +3 -0
  281. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +203 -0
  282. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +57 -0
  283. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +420 -0
  284. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +160 -0
  285. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2069 -0
  286. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +865 -0
  287. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +111 -0
  288. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +68 -0
  289. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +438 -0
  290. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +586 -0
  291. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +192 -0
  292. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +450 -0
  293. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +191 -0
  294. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +49 -0
  295. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +406 -0
  296. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +429 -0
  297. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +72 -0
  298. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +16 -0
  299. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +308 -0
  300. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +590 -0
  301. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +329 -0
  302. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +112 -0
  303. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +345 -0
  304. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +53 -0
  305. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3658 -0
  306. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +186 -0
  307. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +28 -0
  308. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +428 -0
  309. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +89 -0
  310. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +683 -0
  311. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +796 -0
  312. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +329 -0
  313. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +207 -0
  314. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +961 -0
  315. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +330 -0
  316. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2014 -0
  317. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +482 -0
  318. package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
  319. package/dist/telemetry-BRVdwh14.mjs.map +1 -0
  320. package/dist/telemetry-CkbkeJxl.mjs +3 -0
  321. package/dist/test-env-key-D7UkZp99.mjs +75 -0
  322. package/dist/test-env-key-D7UkZp99.mjs.map +1 -0
  323. package/dist/types/aigateway.generated.d.mts +12 -0
  324. package/dist/types/app-config.generated.d.mts +4 -0
  325. package/dist/types/auth-connection.generated.d.mts +33 -0
  326. package/dist/types/auth.generated.d.mts +188 -0
  327. package/dist/types/executor.generated.d.mts +229 -0
  328. package/dist/types/helpers.d.mts +40 -0
  329. package/dist/types/http-adapter.generated.d.mts +28 -0
  330. package/dist/types/idp.generated.d.mts +626 -0
  331. package/dist/types/resolver.generated.d.mts +82 -0
  332. package/dist/types/secrets.generated.d.mts +14 -0
  333. package/dist/types/staticwebsite.generated.d.mts +14 -0
  334. package/dist/types/tailordb.generated.d.mts +468 -0
  335. package/dist/types/workflow.generated.d.mts +17 -0
  336. package/dist/user-agent-Bgsszb5I.mjs +28 -0
  337. package/dist/user-agent-Bgsszb5I.mjs.map +1 -0
  338. package/dist/utils/test/index.d.mts +5 -100
  339. package/dist/utils/test/index.mjs +38 -189
  340. package/dist/utils/test/index.mjs.map +1 -1
  341. package/dist/vitest/environment.d.mts +1 -2
  342. package/dist/vitest/environment.mjs +2 -2
  343. package/dist/vitest/environment.mjs.map +1 -1
  344. package/dist/vitest/index.d.mts +17 -431
  345. package/dist/vitest/index.mjs +1234 -67
  346. package/dist/vitest/index.mjs.map +1 -1
  347. package/dist/vitest/mock-kysely.d.mts +61 -0
  348. package/dist/vitest/mock.d.mts +10 -0
  349. package/dist/vitest/mocks/aigateway.d.mts +40 -0
  350. package/dist/vitest/mocks/authconnection.d.mts +38 -0
  351. package/dist/vitest/mocks/file.d.mts +58 -0
  352. package/dist/vitest/mocks/iconv.d.mts +51 -0
  353. package/dist/vitest/mocks/idp.d.mts +60 -0
  354. package/dist/vitest/mocks/logger.d.mts +45 -0
  355. package/dist/vitest/mocks/secretmanager.d.mts +44 -0
  356. package/dist/vitest/mocks/tailordb.d.mts +115 -0
  357. package/dist/vitest/mocks/workflow.d.mts +148 -0
  358. package/dist/vitest/setup.d.mts +1 -2
  359. package/dist/vitest/setup.mjs +2 -2
  360. package/dist/vitest/workflow-local.d.mts +41 -0
  361. package/dist/workflow-Bamae_Yc.mjs +34 -0
  362. package/dist/workflow-Bamae_Yc.mjs.map +1 -0
  363. package/dist/{client-z_oHGVNy.mjs → workspace_resource_pb-DXnO2AT-.mjs} +57 -621
  364. package/dist/workspace_resource_pb-DXnO2AT-.mjs.map +1 -0
  365. package/docs/cli/application.md +150 -250
  366. package/docs/cli/auth.md +51 -295
  367. package/docs/cli/completion.md +1 -25
  368. package/docs/cli/crashreport.md +3 -61
  369. package/docs/cli/executor.md +72 -183
  370. package/docs/cli/function.md +16 -132
  371. package/docs/cli/organization.md +11 -221
  372. package/docs/cli/plugin.md +29 -0
  373. package/docs/cli/query.md +2 -22
  374. package/docs/cli/secret.md +71 -251
  375. package/docs/cli/setup.md +138 -40
  376. package/docs/cli/skills.md +50 -39
  377. package/docs/cli/staticwebsite.md +32 -180
  378. package/docs/cli/tailordb.md +89 -413
  379. package/docs/cli/upgrade.md +2 -22
  380. package/docs/cli/user.md +78 -247
  381. package/docs/cli/workflow.md +150 -172
  382. package/docs/cli/workspace.md +167 -538
  383. package/docs/cli-reference.md +214 -96
  384. package/docs/configuration.md +90 -6
  385. package/docs/github-actions.md +72 -24
  386. package/docs/migration/v2.md +1613 -0
  387. package/docs/multi-environment.md +29 -7
  388. package/docs/plugin/custom.md +4 -4
  389. package/docs/plugin/index.md +8 -8
  390. package/docs/quickstart.md +8 -7
  391. package/docs/runtime.md +18 -9
  392. package/docs/services/aigateway.md +20 -2
  393. package/docs/services/auth.md +51 -59
  394. package/docs/services/executor.md +91 -6
  395. package/docs/services/http-adapter.md +16 -1
  396. package/docs/services/idp.md +62 -7
  397. package/docs/services/resolver.md +67 -11
  398. package/docs/services/secret.md +11 -11
  399. package/docs/services/staticwebsite.md +8 -2
  400. package/docs/services/tailordb-migration.md +55 -29
  401. package/docs/services/tailordb.md +205 -102
  402. package/docs/services/workflow.md +163 -55
  403. package/docs/testing.md +244 -143
  404. package/package.json +61 -46
  405. package/postinstall.mjs +4 -6
  406. package/dist/application-DB2r36Et.mjs +0 -3
  407. package/dist/application-DqS1yBg3.mjs.map +0 -1
  408. package/dist/authconnection-D2MhtTN5.mjs +0 -15
  409. package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
  410. package/dist/authconnection-DvUQAjQS.d.mts +0 -39
  411. package/dist/cli/erd-viewer-assets/app.js +0 -1181
  412. package/dist/cli/erd-viewer-assets/index.html +0 -73
  413. package/dist/cli/erd-viewer-assets/serve.json +0 -13
  414. package/dist/cli/erd-viewer-assets/styles.css +0 -789
  415. package/dist/cli/index.d.mts +0 -5
  416. package/dist/cli/index.mjs.map +0 -1
  417. package/dist/client-Dbohmtkv.mjs +0 -3
  418. package/dist/client-z_oHGVNy.mjs.map +0 -1
  419. package/dist/context-Bd266-ru.mjs.map +0 -1
  420. package/dist/context-BuuIb8CC.d.mts +0 -68
  421. package/dist/enum-constants-j9QBF0cB.mjs +0 -116
  422. package/dist/enum-constants-j9QBF0cB.mjs.map +0 -1
  423. package/dist/errors-Dtf2WPaW.mjs.map +0 -1
  424. package/dist/field-DOsJCPFa.mjs +0 -22
  425. package/dist/field-DOsJCPFa.mjs.map +0 -1
  426. package/dist/file-BB8Vs9O_.d.mts +0 -250
  427. package/dist/file-_oUZo76X.mjs.map +0 -1
  428. package/dist/file-utils-DcyIPFQh.mjs +0 -150
  429. package/dist/file-utils-DcyIPFQh.mjs.map +0 -1
  430. package/dist/globals-Crz8o65k.mjs.map +0 -1
  431. package/dist/http-adapter.generated-WgMnb7Sb.d.mts +0 -580
  432. package/dist/iconv-Co-TOPuH.d.mts +0 -122
  433. package/dist/iconv-D2vi8G36.mjs +0 -63
  434. package/dist/iconv-D2vi8G36.mjs.map +0 -1
  435. package/dist/idp-BDbK5gjm.mjs.map +0 -1
  436. package/dist/idp-DrhVrLmV.d.mts +0 -160
  437. package/dist/index-5vPyRu1y.d.mts +0 -18
  438. package/dist/index-B7AKc18V.d.mts +0 -47
  439. package/dist/index-BlpzXncY.d.mts +0 -1016
  440. package/dist/index-CK7u9isy.d.mts +0 -46
  441. package/dist/index-CNYe5lnW.d.mts +0 -18
  442. package/dist/index-DjUdWlzf.d.mts +0 -18
  443. package/dist/index-ZePLwxw7.d.mts +0 -208
  444. package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
  445. package/dist/job-fuc3j1Ma.mjs +0 -53
  446. package/dist/job-fuc3j1Ma.mjs.map +0 -1
  447. package/dist/kysely-type-DR8uzZTA.mjs +0 -274
  448. package/dist/kysely-type-DR8uzZTA.mjs.map +0 -1
  449. package/dist/logger-CxF-Ex5d.mjs +0 -220
  450. package/dist/logger-CxF-Ex5d.mjs.map +0 -1
  451. package/dist/mock-BjFj5o1I.mjs +0 -804
  452. package/dist/mock-BjFj5o1I.mjs.map +0 -1
  453. package/dist/registry-DdsYlL_P.mjs.map +0 -1
  454. package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
  455. package/dist/runtime-n9NCkjee.mjs.map +0 -1
  456. package/dist/schema-BhkpP5Hw.mjs.map +0 -1
  457. package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
  458. package/dist/secretmanager-BVxw3ih_.mjs +0 -24
  459. package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
  460. package/dist/seed-jf3008-h.mjs +0 -1160
  461. package/dist/seed-jf3008-h.mjs.map +0 -1
  462. package/dist/service-CCL8ruDf.mjs +0 -459
  463. package/dist/service-CCL8ruDf.mjs.map +0 -1
  464. package/dist/service-D6yonf2I.mjs +0 -3
  465. package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
  466. package/dist/telemetry-ClwW5ohF.mjs +0 -3
  467. package/dist/test-env-key-D9kM6ETE.mjs +0 -49
  468. package/dist/test-env-key-D9kM6ETE.mjs.map +0 -1
  469. package/dist/types-B2RpYyA_.mjs +0 -371
  470. package/dist/types-B2RpYyA_.mjs.map +0 -1
  471. package/dist/types-ClhIrW_C.mjs +0 -4
  472. package/dist/types-DCUhgpyI.d.mts +0 -784
  473. package/dist/types-DhO_VEZd.d.mts +0 -574
  474. package/dist/types-DwDgacni.d.mts +0 -338
  475. package/dist/workflow-BbKvGLQg.d.mts +0 -96
  476. package/dist/workflow-DgemCAz3.mjs +0 -38
  477. package/dist/workflow-DgemCAz3.mjs.map +0 -1
  478. package/dist/workflow.generated-DtQwEo-x.d.mts +0 -671
@@ -1,18 +1,199 @@
1
- import { t as t$1 } from "../types-B2RpYyA_.mjs";
1
+ import { i as parseInternal, n as mapAllowedValues, t as db } from "../schema--xYWRGfe.mjs";
2
2
  import { t as brandValue } from "../brand-Eo4pLXPJ.mjs";
3
- import { t as db } from "../schema-BhkpP5Hw.mjs";
4
- import { r as dispatchTriggerWorkflow } from "../registry-DdsYlL_P.mjs";
5
- import { t as WORKFLOW_TEST_ENV_KEY } from "../test-env-key-D9kM6ETE.mjs";
6
- import { t as createWorkflowJob } from "../job-fuc3j1Ma.mjs";
3
+ import { a as registerJob, n as dispatchStartJob, r as dispatchStartWorkflow } from "../registry-BIGVUrMB.mjs";
4
+ import { i as withWorkflowTestInvoker } from "../test-env-key-D7UkZp99.mjs";
7
5
 
8
- //#region src/configure/user.ts
9
- /** Represents an unauthenticated user in the Tailor platform. */
10
- const unauthenticatedTailorUser = {
11
- id: "00000000-0000-0000-0000-000000000000",
12
- type: "",
13
- workspaceId: "00000000-0000-0000-0000-000000000000",
14
- attributes: null,
15
- attributeList: []
6
+ //#region src/configure/types/type.ts
7
+ function createTailorField(type, options, fields, values, metadata) {
8
+ const _metadata = metadata ? {
9
+ ...metadata,
10
+ ...metadata.allowedValues && { allowedValues: metadata.allowedValues.map((v) => ({ ...v })) },
11
+ ...metadata.validate && { validate: metadata.validate.map((v) => Array.isArray(v) ? [...v] : v) }
12
+ } : { required: true };
13
+ if (!metadata) {
14
+ if (options) {
15
+ if (options.optional === true) _metadata.required = false;
16
+ if (options.array === true) _metadata.array = true;
17
+ }
18
+ if (values) _metadata.allowedValues = mapAllowedValues(values);
19
+ }
20
+ function parseInternal$1(args) {
21
+ return parseInternal({
22
+ ...args,
23
+ field
24
+ });
25
+ }
26
+ /**
27
+ * Clone the field and apply metadata updates to the clone.
28
+ * The original instance is never mutated, so a field shared across places
29
+ * cannot leak metadata between them.
30
+ * @param metadataUpdates - Metadata properties to overwrite on the clone
31
+ * @returns A new field with the updated metadata
32
+ */
33
+ function cloneWith(metadataUpdates) {
34
+ const cloned = field.clone();
35
+ Object.assign(cloned._metadata, metadataUpdates);
36
+ return cloned;
37
+ }
38
+ const field = {
39
+ type,
40
+ fields: fields ?? {},
41
+ _defined: void 0,
42
+ _output: void 0,
43
+ _metadata,
44
+ get metadata() {
45
+ return { ...this._metadata };
46
+ },
47
+ description(description) {
48
+ return cloneWith({ description });
49
+ },
50
+ typeName(typeName) {
51
+ return cloneWith({ typeName });
52
+ },
53
+ validate(...validateInputs) {
54
+ return cloneWith({ validate: validateInputs });
55
+ },
56
+ parse(args) {
57
+ return parseInternal$1({
58
+ value: args.value,
59
+ data: args.data,
60
+ invoker: args.invoker,
61
+ pathArray: []
62
+ });
63
+ },
64
+ clone() {
65
+ let clonedFields = fields;
66
+ if (fields) {
67
+ const cloned = {};
68
+ for (const [key, nestedField] of Object.entries(fields)) cloned[key] = nestedField.clone();
69
+ clonedFields = cloned;
70
+ }
71
+ return createTailorField(type, options, clonedFields, values, this._metadata);
72
+ }
73
+ };
74
+ return field;
75
+ }
76
+ /**
77
+ * Create a UUID field for resolver input/output.
78
+ * @param options - Field configuration options
79
+ * @returns A UUID field
80
+ * @example t.uuid()
81
+ */
82
+ function uuid(options) {
83
+ return createTailorField("uuid", options);
84
+ }
85
+ /**
86
+ * Create a string field for resolver input/output.
87
+ * @param options - Field configuration options
88
+ * @returns A string field
89
+ * @example t.string()
90
+ * @example t.string({ optional: true })
91
+ * @example t.string({ array: true })
92
+ */
93
+ function string(options) {
94
+ return createTailorField("string", options);
95
+ }
96
+ /**
97
+ * Create a boolean field for resolver input/output.
98
+ * @param options - Field configuration options
99
+ * @returns A boolean field
100
+ * @example t.bool()
101
+ */
102
+ function bool(options) {
103
+ return createTailorField("boolean", options);
104
+ }
105
+ /**
106
+ * Create an integer field for resolver input/output.
107
+ * @param options - Field configuration options
108
+ * @returns An integer field
109
+ * @example t.int()
110
+ */
111
+ function int(options) {
112
+ return createTailorField("integer", options);
113
+ }
114
+ /**
115
+ * Create a float field for resolver input/output.
116
+ * @param options - Field configuration options
117
+ * @returns A float field
118
+ * @example t.float()
119
+ */
120
+ function float(options) {
121
+ return createTailorField("float", options);
122
+ }
123
+ /**
124
+ * Create a decimal field for resolver input/output (stored as string for precision).
125
+ * @param options - Field configuration options
126
+ * @returns A decimal field
127
+ * @example t.decimal()
128
+ * @example t.decimal({ optional: true })
129
+ */
130
+ function decimal(options) {
131
+ return createTailorField("decimal", options);
132
+ }
133
+ /**
134
+ * Create a date field for resolver input/output.
135
+ * @param options - Field configuration options
136
+ * @returns A date field
137
+ * @example t.date()
138
+ */
139
+ function date(options) {
140
+ return createTailorField("date", options);
141
+ }
142
+ /**
143
+ * Create a datetime field for resolver input/output.
144
+ * @param options - Field configuration options
145
+ * @returns A datetime field
146
+ * @example t.datetime()
147
+ */
148
+ function datetime(options) {
149
+ return createTailorField("datetime", options);
150
+ }
151
+ /**
152
+ * Create a time field for resolver input/output.
153
+ * @param options - Field configuration options
154
+ * @returns A time field
155
+ * @example t.time()
156
+ */
157
+ function time(options) {
158
+ return createTailorField("time", options);
159
+ }
160
+ /**
161
+ * Create an enum field for resolver input/output.
162
+ * @param values - Array of allowed string values
163
+ * @param options - Field configuration options
164
+ * @returns An enum field
165
+ * @example t.enum(["active", "inactive"])
166
+ */
167
+ function _enum(values, options) {
168
+ return createTailorField("enum", options, void 0, values);
169
+ }
170
+ /**
171
+ * Create a nested object field for resolver input/output.
172
+ * @param fields - Record of field definitions
173
+ * @param options - Field options (optional, array)
174
+ * @returns A nested object field
175
+ * @example
176
+ * // Single object:
177
+ * output: t.object({ name: t.string(), email: t.string() })
178
+ * @example
179
+ * // Array of objects:
180
+ * items: t.object({ name: t.string() }, { array: true })
181
+ */
182
+ function object(fields, options) {
183
+ return createTailorField("nested", options, fields);
184
+ }
185
+ const t$1 = {
186
+ uuid,
187
+ string,
188
+ bool,
189
+ int,
190
+ float,
191
+ decimal,
192
+ date,
193
+ datetime,
194
+ time,
195
+ enum: _enum,
196
+ object
16
197
  };
17
198
 
18
199
  //#endregion
@@ -21,10 +202,7 @@ const unauthenticatedTailorUser = {
21
202
  function defineAuth(name, config) {
22
203
  return {
23
204
  ...config,
24
- name,
25
- getConnectionToken(connectionName) {
26
- return tailor.authconnection.getConnectionToken(connectionName);
27
- }
205
+ name
28
206
  };
29
207
  }
30
208
 
@@ -74,7 +252,7 @@ const unsafeAllowAllGqlPermission = [{
74
252
  * Create a resolver definition for the Tailor SDK.
75
253
  *
76
254
  * The `body` function receives a context with `input` (typed from `config.input`),
77
- * `user`, `invoker` (reflects `authInvoker` delegation), and `env`.
255
+ * `caller`, `invoker` (reflects configured machine-user delegation), and `env`.
78
256
  * The return value of `body` must match the `output` type.
79
257
  *
80
258
  * `output` accepts either a single TailorField (e.g. `t.string()`) or a
@@ -84,6 +262,14 @@ const unsafeAllowAllGqlPermission = [{
84
262
  * If not specified, this is automatically set to true when an executor uses this resolver
85
263
  * with `resolverExecutedTrigger`. If explicitly set to false while an executor uses this
86
264
  * resolver, an error will be thrown during apply.
265
+ *
266
+ * `permission` declares the resolver's access requirement, checked against `context.user` (the
267
+ * original caller, unaffected by `authInvoker`) before `body` runs. Omitted (default):
268
+ * unchanged, anonymous callers can reach the resolver. `"allowAnonymous"`: explicitly documents
269
+ * that anonymous callers are allowed. An array of `{ conditions, permit }` policies (in the same
270
+ * style as TailorDB's `.permission()`) rejects non-matching callers: at least one `permit: true`
271
+ * policy is required (denied unless it matches), and a matching `permit: false` policy always
272
+ * overrides that grant.
87
273
  * @template Input
88
274
  * @template Output
89
275
  * @param config - Resolver configuration
@@ -94,10 +280,11 @@ const unsafeAllowAllGqlPermission = [{
94
280
  * export default createResolver({
95
281
  * name: "getUser",
96
282
  * operation: "query",
283
+ * permission: [{ conditions: [[{ user: "_loggedIn" }, "=", true]], permit: true }],
97
284
  * input: {
98
285
  * id: t.string(),
99
286
  * },
100
- * body: async ({ input, user }) => {
287
+ * body: async ({ input, caller }) => {
101
288
  * const db = getDB("tailordb");
102
289
  * const result = await db.selectFrom("User").selectAll().where("id", "=", input.id).executeTakeFirst();
103
290
  * return { name: result?.name ?? "", email: result?.email ?? "" };
@@ -328,6 +515,173 @@ function authAccessTokenTrigger(options) {
328
515
  __args: {}
329
516
  };
330
517
  }
518
+ const workflowExecutionEventMap = {
519
+ started: "workflow.workflow_execution.started",
520
+ completed: "workflow.workflow_execution.completed",
521
+ retried: "workflow.workflow_execution.retried",
522
+ resumed: "workflow.workflow_execution.resumed",
523
+ wait_started: "workflow.workflow_execution.wait_started",
524
+ wait_resolved: "workflow.workflow_execution.wait_resolved"
525
+ };
526
+ function workflowExecutionTriggerConfig(events, options) {
527
+ return {
528
+ kind: "workflowExecution",
529
+ events,
530
+ workflowName: options.workflow.name,
531
+ condition: options.condition,
532
+ __args: {}
533
+ };
534
+ }
535
+ /**
536
+ * Create a trigger that fires when a workflow execution starts running.
537
+ * @param options - Trigger options
538
+ * @param options.workflow - Workflow to subscribe to
539
+ * @param options.condition - Condition function to filter events
540
+ * @returns Workflow execution started trigger
541
+ */
542
+ function workflowExecutionStartedTrigger(options) {
543
+ return workflowExecutionTriggerConfig(["workflow.workflow_execution.started"], options);
544
+ }
545
+ /**
546
+ * Create a trigger that fires when a workflow execution succeeds or fails.
547
+ * @param options - Trigger options
548
+ * @param options.workflow - Workflow to subscribe to
549
+ * @param options.condition - Condition function to filter events
550
+ * @returns Workflow execution completed trigger
551
+ */
552
+ function workflowExecutionCompletedTrigger(options) {
553
+ return workflowExecutionTriggerConfig(["workflow.workflow_execution.completed"], options);
554
+ }
555
+ /**
556
+ * Create a trigger that fires when a workflow execution is retried by its retry policy.
557
+ * @param options - Trigger options
558
+ * @param options.workflow - Workflow to subscribe to
559
+ * @param options.condition - Condition function to filter events
560
+ * @returns Workflow execution retried trigger
561
+ */
562
+ function workflowExecutionRetriedTrigger(options) {
563
+ return workflowExecutionTriggerConfig(["workflow.workflow_execution.retried"], options);
564
+ }
565
+ /**
566
+ * Create a trigger that fires when a failed workflow execution is manually resumed.
567
+ * @param options - Trigger options
568
+ * @param options.workflow - Workflow to subscribe to
569
+ * @param options.condition - Condition function to filter events
570
+ * @returns Workflow execution resumed trigger
571
+ */
572
+ function workflowExecutionResumedTrigger(options) {
573
+ return workflowExecutionTriggerConfig(["workflow.workflow_execution.resumed"], options);
574
+ }
575
+ /**
576
+ * Create a trigger that fires when a workflow execution starts waiting on a wait point.
577
+ * @param options - Trigger options
578
+ * @param options.workflow - Workflow to subscribe to
579
+ * @param options.condition - Condition function to filter events
580
+ * @returns Workflow execution wait started trigger
581
+ */
582
+ function workflowExecutionWaitStartedTrigger(options) {
583
+ return workflowExecutionTriggerConfig(["workflow.workflow_execution.wait_started"], options);
584
+ }
585
+ /**
586
+ * Create a trigger that fires when a waiting workflow execution is released.
587
+ * @param options - Trigger options
588
+ * @param options.workflow - Workflow to subscribe to
589
+ * @param options.condition - Condition function to filter events
590
+ * @returns Workflow execution wait resolved trigger
591
+ */
592
+ function workflowExecutionWaitResolvedTrigger(options) {
593
+ return workflowExecutionTriggerConfig(["workflow.workflow_execution.wait_resolved"], options);
594
+ }
595
+ /**
596
+ * Create a trigger that fires on multiple workflow execution event types.
597
+ * @template K
598
+ * @param options - Trigger options with events array
599
+ * @param options.events - Workflow execution event kinds to subscribe to
600
+ * @param options.workflow - Workflow to subscribe to
601
+ * @param options.condition - Condition function to filter events
602
+ * @returns Workflow execution trigger
603
+ */
604
+ function workflowExecutionTrigger(options) {
605
+ const { events, workflow, condition } = options;
606
+ return workflowExecutionTriggerConfig(events.map((k) => workflowExecutionEventMap[k]), {
607
+ workflow,
608
+ condition
609
+ });
610
+ }
611
+ const workflowJobExecutionEventMap = {
612
+ started: "workflow.workflow_execution.job_execution.started",
613
+ completed: "workflow.workflow_execution.job_execution.completed",
614
+ wait_started: "workflow.workflow_execution.job_execution.wait_started",
615
+ wait_resolved: "workflow.workflow_execution.job_execution.wait_resolved"
616
+ };
617
+ function workflowJobExecutionTriggerConfig(events, options) {
618
+ return {
619
+ kind: "workflowJobExecution",
620
+ events,
621
+ workflowName: options.workflow.name,
622
+ condition: options.condition,
623
+ __args: {}
624
+ };
625
+ }
626
+ /**
627
+ * Create a trigger that fires when a job inside a workflow starts running.
628
+ * @param options - Trigger options
629
+ * @param options.workflow - Workflow whose job executions to subscribe to
630
+ * @param options.condition - Condition function to filter events
631
+ * @returns Workflow job execution started trigger
632
+ */
633
+ function workflowJobExecutionStartedTrigger(options) {
634
+ return workflowJobExecutionTriggerConfig(["workflow.workflow_execution.job_execution.started"], options);
635
+ }
636
+ /**
637
+ * Create a trigger that fires when a job inside a workflow succeeds or fails.
638
+ *
639
+ * A job released from a wait point reports `wait_resolved` instead of
640
+ * `completed`; subscribe to both to observe every way a job can end.
641
+ * @param options - Trigger options
642
+ * @param options.workflow - Workflow whose job executions to subscribe to
643
+ * @param options.condition - Condition function to filter events
644
+ * @returns Workflow job execution completed trigger
645
+ */
646
+ function workflowJobExecutionCompletedTrigger(options) {
647
+ return workflowJobExecutionTriggerConfig(["workflow.workflow_execution.job_execution.completed"], options);
648
+ }
649
+ /**
650
+ * Create a trigger that fires when a job inside a workflow starts waiting on a wait point.
651
+ * @param options - Trigger options
652
+ * @param options.workflow - Workflow whose job executions to subscribe to
653
+ * @param options.condition - Condition function to filter events
654
+ * @returns Workflow job execution wait started trigger
655
+ */
656
+ function workflowJobExecutionWaitStartedTrigger(options) {
657
+ return workflowJobExecutionTriggerConfig(["workflow.workflow_execution.job_execution.wait_started"], options);
658
+ }
659
+ /**
660
+ * Create a trigger that fires when a waiting job inside a workflow is released.
661
+ * @param options - Trigger options
662
+ * @param options.workflow - Workflow whose job executions to subscribe to
663
+ * @param options.condition - Condition function to filter events
664
+ * @returns Workflow job execution wait resolved trigger
665
+ */
666
+ function workflowJobExecutionWaitResolvedTrigger(options) {
667
+ return workflowJobExecutionTriggerConfig(["workflow.workflow_execution.job_execution.wait_resolved"], options);
668
+ }
669
+ /**
670
+ * Create a trigger that fires on multiple workflow job execution event types.
671
+ * @template K
672
+ * @param options - Trigger options with events array
673
+ * @param options.events - Workflow job execution event kinds to subscribe to
674
+ * @param options.workflow - Workflow whose job executions to subscribe to
675
+ * @param options.condition - Condition function to filter events
676
+ * @returns Workflow job execution trigger
677
+ */
678
+ function workflowJobExecutionTrigger(options) {
679
+ const { events, workflow, condition } = options;
680
+ return workflowJobExecutionTriggerConfig(events.map((k) => workflowJobExecutionEventMap[k]), {
681
+ workflow,
682
+ condition
683
+ });
684
+ }
331
685
 
332
686
  //#endregion
333
687
  //#region src/configure/services/executor/trigger/schedule.ts
@@ -364,6 +718,166 @@ function incomingWebhookTrigger(options) {
364
718
  };
365
719
  }
366
720
 
721
+ //#endregion
722
+ //#region src/configure/services/workflow/execution-policy.ts
723
+ const EXECUTION_POLICY_EXACT_KEY_REGEX = /^[a-z0-9][a-z0-9_:.-]{0,62}[a-z0-9]$/;
724
+ function createExecutionPolicyInstance(initialName, initialKey, concurrencyPolicy, matchType, separator, allowNameSetter, allowKeySetter) {
725
+ const isPrefix = matchType === "prefix";
726
+ const raw = {
727
+ name: initialName,
728
+ key: initialKey,
729
+ matchType,
730
+ ...concurrencyPolicy && { concurrencyPolicy },
731
+ ...isPrefix && { keyFor: (suffix) => {
732
+ const key = `${raw.key}${separator}${suffix}`;
733
+ if (!EXECUTION_POLICY_EXACT_KEY_REGEX.test(key)) throw new Error(`Invalid execution policy key "${key}" built by keyFor("${suffix}"): must match [a-z0-9_:.-] (2-64 chars; must start and end with [a-z0-9]).`);
734
+ return key;
735
+ } }
736
+ };
737
+ return {
738
+ instance: brandValue(raw, "execution-policy"),
739
+ setName: allowNameSetter ? (n) => {
740
+ raw.name = n;
741
+ } : void 0,
742
+ setKey: allowKeySetter ? (k) => {
743
+ raw.key = k;
744
+ } : void 0
745
+ };
746
+ }
747
+ /**
748
+ * Define a single workflow job function execution policy.
749
+ *
750
+ * Use this when declaring a policy outside the
751
+ * {@link defineWorkflowExecutionPolicies} builder — for example, when the
752
+ * runtime key prefix needs to differ from the corresponding workspace-unique
753
+ * name.
754
+ *
755
+ * When `matchType: "prefix"` is set, the returned instance has `keyFor(suffix)`
756
+ * instead of a directly-usable `key` (see {@link ExecutionPolicyWildcardInstance}).
757
+ * @param name - Workspace-unique name. Must match `^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$`.
758
+ * @param def - Optional overrides for `key` (defaults to `name`), `matchType`, `separator` (the `keyFor` join character, defaults to `.`), and concurrency
759
+ * @returns An execution policy instance
760
+ * @example
761
+ * export const perTenant = defineWorkflowExecutionPolicy("tenant-api", {
762
+ * matchType: "prefix",
763
+ * concurrencyPolicy: { maxConcurrentExecutions: 3 },
764
+ * });
765
+ *
766
+ * perTenant.keyFor(tenantId); // "tenant-api.<tenantId>"
767
+ */
768
+ /* @__NO_SIDE_EFFECTS__ */
769
+ function defineWorkflowExecutionPolicy(name, def) {
770
+ return createExecutionPolicyInstance(name, def?.key ?? name, def?.concurrencyPolicy, def?.matchType ?? "exact", def?.separator ?? ".", false, false).instance;
771
+ }
772
+ /**
773
+ * Define a group of workflow job function execution policies. Property names
774
+ * become the workspace-unique `name` and default `key` verbatim, matching the
775
+ * mental model of {@link createWaitPoints}. Provide `name` / `key` explicitly
776
+ * to override the property-name default (for example, when the property name
777
+ * is not valid for the execution policy grammar or when the runtime key
778
+ * prefix needs to differ).
779
+ *
780
+ * When `matchType: "prefix"` is set, the returned instance has `keyFor(suffix)`
781
+ * instead of a directly-usable `key` (see {@link ExecutionPolicyWildcardInstance}).
782
+ * `matchType` can be combined with an explicit `key`, or left to apply to
783
+ * the property-name-derived prefix.
784
+ *
785
+ * The return type mirrors the builder's return type so JSDoc on each property
786
+ * is preserved in IDE autocompletion.
787
+ * @param builder - Callback that receives a `define` factory and returns a record of policies
788
+ * @param options - Group-wide options; `separator` overrides the `.` `keyFor` uses to join the prefix and suffix for every prefix policy in the group
789
+ * @returns The same object returned by the builder (with `name` / `key` resolved on each instance)
790
+ * @example
791
+ * export const executionPolicies = defineWorkflowExecutionPolicies((define) => ({
792
+ * premium: define({ concurrencyPolicy: { maxConcurrentExecutions: 5 } }),
793
+ * "tenant-api": define({
794
+ * matchType: "prefix",
795
+ * concurrencyPolicy: { maxConcurrentExecutions: 3 },
796
+ * }),
797
+ * }));
798
+ *
799
+ * // In a workflow job function:
800
+ * await tailor.workflow.execJobFunction("worker", args, {
801
+ * executionPolicyKey: executionPolicies.premium.key,
802
+ * });
803
+ * await tailor.workflow.execJobFunction("worker", args, {
804
+ * executionPolicyKey: executionPolicies["tenant-api"].keyFor(input.tenantId),
805
+ * });
806
+ */
807
+ /* @__NO_SIDE_EFFECTS__ */
808
+ function defineWorkflowExecutionPolicies(builder, options) {
809
+ const separator = options?.separator ?? ".";
810
+ const nameSetters = /* @__PURE__ */ new Map();
811
+ const keySetters = /* @__PURE__ */ new Map();
812
+ const define = (def) => {
813
+ const explicitName = def?.name;
814
+ const explicitKey = def?.key;
815
+ const { instance, setName, setKey } = createExecutionPolicyInstance(explicitName ?? "__pending__", explicitKey ?? explicitName ?? "__pending__", def?.concurrencyPolicy, def?.matchType ?? "exact", separator, explicitName === void 0, explicitKey === void 0 && explicitName === void 0);
816
+ if (setName) nameSetters.set(instance, setName);
817
+ if (setKey) keySetters.set(instance, setKey);
818
+ return instance;
819
+ };
820
+ const result = builder(define);
821
+ for (const propName of Object.keys(result)) {
822
+ const instance = result[propName];
823
+ nameSetters.get(instance)?.(propName);
824
+ keySetters.get(instance)?.(propName);
825
+ }
826
+ return result;
827
+ }
828
+
829
+ //#endregion
830
+ //#region src/configure/services/workflow/job.ts
831
+ /**
832
+ * Create a workflow job definition.
833
+ *
834
+ * All jobs must be named exports from the workflow file.
835
+ * Job names must be unique across the entire project.
836
+ *
837
+ * Input and output must be JsonValue-compatible (primitives, plain objects, arrays).
838
+ * Functions and objects with a `toJSON` method are rejected at the type level;
839
+ * class instances exposing methods are rejected via the property walk.
840
+ * @param config - Job configuration with name and body function.
841
+ * @param config.name - Unique job name across the project.
842
+ * @param config.body - Function that processes the job input.
843
+ * @returns A WorkflowJob that can be started from other jobs.
844
+ * @example
845
+ * // Simple job with async body:
846
+ * export const fetchData = createWorkflowJob({
847
+ * name: "fetch-data",
848
+ * body: async (input: { id: string }) => {
849
+ * const db = getDB("tailordb");
850
+ * return await db.selectFrom("Table").selectAll().where("id", "=", input.id).executeTakeFirst();
851
+ * },
852
+ * });
853
+ * @example
854
+ * // Orchestrator job that fans out to other jobs.
855
+ * export const orchestrate = createWorkflowJob({
856
+ * name: "orchestrate",
857
+ * body: (input: { orderId: string }) => {
858
+ * const inventory = checkInventory.start({ orderId: input.orderId });
859
+ * const payment = processPayment.start({ orderId: input.orderId });
860
+ * return { inventory, payment };
861
+ * },
862
+ * });
863
+ */
864
+ function createWorkflowJob(config) {
865
+ const userBody = config.body;
866
+ const body = process.env.__TAILOR_PLATFORM_BUNDLE ? userBody : (input, context) => withWorkflowTestInvoker(context.invoker, () => userBody(input, context));
867
+ if (!process.env.__TAILOR_PLATFORM_BUNDLE) registerJob(config.name, body);
868
+ const start = process.env.__TAILOR_PLATFORM_BUNDLE ? () => {
869
+ throw new Error("This workflow job's .start() is rewritten at build time and is unavailable in the bundle");
870
+ } : function start(args, options) {
871
+ return arguments.length >= 2 ? dispatchStartJob(config.name, args, options) : dispatchStartJob(config.name, args);
872
+ };
873
+ return brandValue({
874
+ name: config.name,
875
+ start,
876
+ body,
877
+ ...config.publishEvents !== void 0 ? { publishEvents: config.publishEvents } : {}
878
+ }, "workflow-job");
879
+ }
880
+
367
881
  //#endregion
368
882
  //#region src/configure/services/workflow/wait-point.ts
369
883
  function getPlatformWorkflow() {
@@ -395,7 +909,7 @@ function createWaitPointInstance(initialKey) {
395
909
  };
396
910
  }
397
911
  /**
398
- * Define a single typed wait point with an explicit key.
912
+ * Create a single typed wait point with an explicit key.
399
913
  *
400
914
  * `Payload` and `Result` must be JsonValue-compatible.
401
915
  * Functions and objects with a `toJSON` method are rejected at the type level;
@@ -403,16 +917,16 @@ function createWaitPointInstance(initialKey) {
403
917
  * @param key - The wait point key used to match wait and resolve calls
404
918
  * @returns A WaitPointInstance with typed `.wait()` and `.resolve()` methods
405
919
  * @example
406
- * export const approval = defineWaitPoint<{ message: string }, { approved: boolean }>("approval");
920
+ * export const approval = createWaitPoint<{ message: string }, { approved: boolean }>("approval");
407
921
  *
408
922
  * await approval.wait({ message: "Please approve" });
409
923
  */
410
924
  /* @__NO_SIDE_EFFECTS__ */
411
- function defineWaitPoint(key) {
925
+ function createWaitPoint(key) {
412
926
  return createWaitPointInstance(key).instance;
413
927
  }
414
928
  /**
415
- * Define a group of typed wait points for human-in-the-loop workflows.
929
+ * Create a group of typed wait points for human-in-the-loop workflows.
416
930
  * Property names become the wait point keys.
417
931
  *
418
932
  * The return type is the same as the builder's return type, so JSDoc on each
@@ -424,7 +938,7 @@ function defineWaitPoint(key) {
424
938
  * @param builder - Callback that receives a `define` factory and returns an object of wait points
425
939
  * @returns The same object returned by the builder (with correct keys set on each instance)
426
940
  * @example
427
- * export const waitPoints = defineWaitPoints(define => ({
941
+ * export const waitPoints = createWaitPoints(define => ({
428
942
  * // Preceding JSDoc on this property is shown in IDE autocompletion
429
943
  * approval: define<{ message: string }, { approved: boolean }>(),
430
944
  * }));
@@ -435,7 +949,7 @@ function defineWaitPoint(key) {
435
949
  * // For 2-level access, use destructured export with JSDoc attached to the export itself.
436
950
  */
437
951
  /* @__NO_SIDE_EFFECTS__ */
438
- function defineWaitPoints(builder) {
952
+ function createWaitPoints(builder) {
439
953
  const setters = /* @__PURE__ */ new Map();
440
954
  const define = (() => {
441
955
  const { instance, setKey } = createWaitPointInstance("__pending__");
@@ -450,8 +964,8 @@ function defineWaitPoints(builder) {
450
964
  //#endregion
451
965
  //#region src/configure/services/workflow/workflow.ts
452
966
  /**
453
- * Create a workflow definition that can be triggered via the Tailor SDK.
454
- * In production, bundler transforms .trigger() calls to tailor.workflow.triggerWorkflow().
967
+ * Create a workflow definition that can be started via the Tailor SDK.
968
+ * In production, the bundler rewrites `.start()` calls into direct platform workflow calls.
455
969
  *
456
970
  * The workflow MUST be the default export of the file.
457
971
  * All jobs referenced by the workflow MUST be named exports.
@@ -463,7 +977,7 @@ function defineWaitPoints(builder) {
463
977
  * export const processData = createWorkflowJob({
464
978
  * name: "process-data",
465
979
  * body: (input: { id: string }) => {
466
- * const data = fetchData.trigger({ id: input.id });
980
+ * const data = fetchData.start({ id: input.id });
467
981
  * return { data };
468
982
  * },
469
983
  * });
@@ -477,9 +991,11 @@ function defineWaitPoints(builder) {
477
991
  function createWorkflow(config) {
478
992
  return brandValue({
479
993
  ...config,
480
- trigger: process.env.TAILOR_PLATFORM_BUNDLE ? async () => {
481
- throw new Error("workflow.trigger() is rewritten at build time and unavailable in the bundle");
482
- } : async (args, options) => await dispatchTriggerWorkflow(config.name, args, options)
994
+ start: process.env.__TAILOR_PLATFORM_BUNDLE ? async () => {
995
+ throw new Error("workflow.start() is rewritten at build time and unavailable in the bundle");
996
+ } : async function start(args, options) {
997
+ return arguments.length >= 2 ? await dispatchStartWorkflow(config.name, args, options) : await dispatchStartWorkflow(config.name, args);
998
+ }
483
999
  }, "workflow");
484
1000
  }
485
1001
 
@@ -547,6 +1063,10 @@ const unsafeAllowAllIdPPermission = {
547
1063
  sendPasswordResetEmail: [{
548
1064
  conditions: [],
549
1065
  permit: true
1066
+ }],
1067
+ unenrollMfa: [{
1068
+ conditions: [],
1069
+ permit: true
550
1070
  }]
551
1071
  };
552
1072
 
@@ -609,12 +1129,14 @@ function defineSecretManager(config, options) {
609
1129
  * Files are discovered via the `httpAdapter.files` glob in `defineConfig()`.
610
1130
  *
611
1131
  * `input` is an object keyed by lowercase HTTP method (`get`, `post`, `put`,
612
- * `patch`, `delete`). At least one method must be declared; the methods the
1132
+ * `patch`, `delete`). Each handler can return a GraphQL query string or a
1133
+ * typed document node. At least one method must be declared; the methods the
613
1134
  * adapter serves are derived from these keys.
614
1135
  *
615
- * `output` is optional and shared across all methods. If you need different
616
- * response shapes per method, discriminate inside `output` based on the
617
- * GraphQL response shape.
1136
+ * `output` is optional and shared across all methods. If `input` returns typed
1137
+ * document nodes, `output` receives the corresponding result type as
1138
+ * `resp.data`. If you need different response shapes per method, discriminate
1139
+ * inside `output` based on the GraphQL response shape.
618
1140
  *
619
1141
  * Each handler runs server-side and must be synchronous: Node APIs, `fetch`,
620
1142
  * `async`/`await`, Promises, and top-level `await` are not available.
@@ -675,5 +1197,5 @@ function definePlugins(...configs) {
675
1197
  const t = t$1;
676
1198
 
677
1199
  //#endregion
678
- export { WORKFLOW_TEST_ENV_KEY, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, createExecutor, createHttpAdapter, createResolver, createWorkflow, createWorkflowJob, db, defineAIGateway, defineAuth, defineConfig, defineIdp, definePlugins, defineSecretManager, defineStaticWebSite, defineWaitPoint, defineWaitPoints, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger, t, unauthenticatedTailorUser, unsafeAllowAllGqlPermission, unsafeAllowAllIdPPermission, unsafeAllowAllTypePermission };
1200
+ export { authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, createExecutor, createHttpAdapter, createResolver, createWaitPoint, createWaitPoints, createWorkflow, createWorkflowJob, db, defineAIGateway, defineAuth, defineConfig, defineIdp, definePlugins, defineSecretManager, defineStaticWebSite, defineWorkflowExecutionPolicies, defineWorkflowExecutionPolicy, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger, t, unsafeAllowAllGqlPermission, unsafeAllowAllIdPPermission, unsafeAllowAllTypePermission, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger };
679
1201
  //# sourceMappingURL=index.mjs.map