@tailor-platform/sdk 2.0.0-next.2 → 2.0.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/CHANGELOG.md +511 -10
  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-BO4ZF8wP.mjs +3 -0
  7. package/dist/application-BX13RArL.mjs +6669 -0
  8. package/dist/application-BX13RArL.mjs.map +1 -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 +1 -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 +3 -0
  17. package/dist/cli/commands/deploy/aigateway.d.mts +1 -0
  18. package/dist/cli/commands/deploy/application.d.mts +1 -0
  19. package/dist/cli/commands/deploy/apply-phases.d.mts +1 -0
  20. package/dist/cli/commands/deploy/auth.d.mts +1 -0
  21. package/dist/cli/commands/deploy/deploy.d.mts +24 -0
  22. package/dist/cli/commands/deploy/executor.d.mts +1 -0
  23. package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
  24. package/dist/cli/commands/deploy/function-registry.d.mts +2 -0
  25. package/dist/cli/commands/deploy/idp.d.mts +1 -0
  26. package/dist/cli/commands/deploy/resolver.d.mts +1 -0
  27. package/dist/cli/commands/deploy/secret-manager.d.mts +1 -0
  28. package/dist/cli/commands/deploy/staticwebsite.d.mts +1 -0
  29. package/dist/cli/commands/deploy/tailordb/index.d.mts +1 -0
  30. package/dist/cli/commands/deploy/types.d.mts +1 -0
  31. package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +1 -0
  32. package/dist/cli/commands/deploy/workflow.d.mts +1 -0
  33. package/dist/cli/commands/executor/get.d.mts +29 -0
  34. package/dist/cli/commands/executor/jobs.d.mts +123 -0
  35. package/dist/cli/commands/executor/list.d.mts +19 -0
  36. package/dist/cli/commands/executor/transform.d.mts +41 -0
  37. package/dist/cli/commands/executor/trigger.d.mts +41 -0
  38. package/dist/cli/commands/executor/webhook.d.mts +22 -0
  39. package/dist/cli/commands/function/get.d.mts +18 -0
  40. package/dist/cli/commands/function/list.d.mts +22 -0
  41. package/dist/cli/commands/function/transform.d.mts +11 -0
  42. package/dist/cli/commands/generate/options.d.mts +7 -0
  43. package/dist/cli/commands/generate/seed/bundler.d.mts +26 -0
  44. package/dist/cli/commands/generate/service.d.mts +11 -0
  45. package/dist/cli/commands/machineuser/list.d.mts +27 -0
  46. package/dist/cli/commands/machineuser/token.d.mts +22 -0
  47. package/dist/cli/commands/oauth2client/get.d.mts +18 -0
  48. package/dist/cli/commands/oauth2client/list.d.mts +20 -0
  49. package/dist/cli/commands/oauth2client/transform.d.mts +20 -0
  50. package/dist/cli/commands/organization/folder/create.d.mts +18 -0
  51. package/dist/cli/commands/organization/folder/delete.d.mts +16 -0
  52. package/dist/cli/commands/organization/folder/get.d.mts +17 -0
  53. package/dist/cli/commands/organization/folder/list.d.mts +22 -0
  54. package/dist/cli/commands/organization/folder/update.d.mts +18 -0
  55. package/dist/cli/commands/organization/get.d.mts +16 -0
  56. package/dist/cli/commands/organization/list.d.mts +15 -0
  57. package/dist/cli/commands/organization/transform.d.mts +27 -0
  58. package/dist/cli/commands/organization/tree.d.mts +25 -0
  59. package/dist/cli/commands/organization/update.d.mts +17 -0
  60. package/dist/cli/commands/remove.d.mts +16 -0
  61. package/dist/cli/commands/show.d.mts +34 -0
  62. package/dist/cli/commands/tailordb/migrate/bundler.d.mts +28 -0
  63. package/dist/cli/commands/tailordb/migrate/config.d.mts +19 -0
  64. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +223 -0
  65. package/dist/cli/commands/tailordb/migrate/generate.d.mts +17 -0
  66. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +202 -0
  67. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
  68. package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
  69. package/dist/cli/commands/tailordb/truncate.d.mts +19 -0
  70. package/dist/cli/commands/workflow/executions.d.mts +75 -0
  71. package/dist/cli/commands/workflow/get.d.mts +29 -0
  72. package/dist/cli/commands/workflow/list.d.mts +19 -0
  73. package/dist/cli/commands/workflow/resume.d.mts +23 -0
  74. package/dist/cli/commands/workflow/start.d.mts +61 -0
  75. package/dist/cli/commands/workflow/status.d.mts +5 -0
  76. package/dist/cli/commands/workflow/transform.d.mts +33 -0
  77. package/dist/cli/commands/workflow/wait.d.mts +16 -0
  78. package/dist/cli/commands/workflow/waiter.d.mts +23 -0
  79. package/dist/cli/commands/workspace/app/health.d.mts +18 -0
  80. package/dist/cli/commands/workspace/app/list.d.mts +22 -0
  81. package/dist/cli/commands/workspace/app/transform.d.mts +18 -0
  82. package/dist/cli/commands/workspace/create.d.mts +25 -0
  83. package/dist/cli/commands/workspace/delete.d.mts +15 -0
  84. package/dist/cli/commands/workspace/get.d.mts +17 -0
  85. package/dist/cli/commands/workspace/list.d.mts +17 -0
  86. package/dist/cli/commands/workspace/restore.d.mts +15 -0
  87. package/dist/cli/commands/workspace/transform.d.mts +16 -0
  88. package/dist/cli/commands/workspace/user/invite.d.mts +22 -0
  89. package/dist/cli/commands/workspace/user/list.d.mts +22 -0
  90. package/dist/cli/commands/workspace/user/remove.d.mts +17 -0
  91. package/dist/cli/commands/workspace/user/transform.d.mts +8 -0
  92. package/dist/cli/commands/workspace/user/update.d.mts +22 -0
  93. package/dist/cli/erd-viewer-assets/app.js +279 -36
  94. package/dist/cli/erd-viewer-assets/index.html +4 -0
  95. package/dist/cli/erd-viewer-assets/styles.css +252 -5
  96. package/dist/cli/index.d.mts +18 -3
  97. package/dist/cli/index.mjs +2237 -520
  98. package/dist/cli/index.mjs.map +1 -1
  99. package/dist/cli/lib.d.mts +81 -21107
  100. package/dist/cli/lib.mjs +7 -10
  101. package/dist/cli/lib.mjs.map +1 -1
  102. package/dist/cli/query/index.d.mts +39 -0
  103. package/dist/cli/services/application.d.mts +1 -0
  104. package/dist/cli/services/auth/service.d.mts +1 -0
  105. package/dist/cli/services/executor/service.d.mts +1 -0
  106. package/dist/cli/services/http-adapter/bundler.d.mts +1 -0
  107. package/dist/cli/services/http-adapter/service.d.mts +1 -0
  108. package/dist/cli/services/resolver/service.d.mts +1 -0
  109. package/dist/cli/services/tailordb/service.d.mts +1 -0
  110. package/dist/cli/services/workflow/bundler.d.mts +1 -0
  111. package/dist/cli/services/workflow/service.d.mts +1 -0
  112. package/dist/cli/shared/args.d.mts +13 -0
  113. package/dist/cli/shared/client.d.mts +1273 -0
  114. package/dist/cli/shared/config-loader.d.mts +26 -0
  115. package/dist/cli/shared/context.d.mts +28 -0
  116. package/dist/cli/shared/script-executor.d.mts +75 -0
  117. package/dist/cli/shared/seed-chunker.d.mts +46 -0
  118. package/dist/cli/shared/trigger-context.d.mts +1 -0
  119. package/dist/cli/shared/type-generator.d.mts +20 -0
  120. package/dist/cli/ts-hook.d.mts +4 -0
  121. package/dist/cli/ts-hook.mjs +333 -0
  122. package/dist/completion/zsh-worker.zsh +1531 -1131
  123. package/dist/configure/config/index.d.mts +21 -0
  124. package/dist/configure/config/types.d.mts +105 -0
  125. package/dist/configure/index.d.mts +124 -9
  126. package/dist/configure/index.mjs +136 -23
  127. package/dist/configure/index.mjs.map +1 -1
  128. package/dist/configure/services/aigateway/index.d.mts +17 -0
  129. package/dist/configure/services/aigateway/types.d.mts +11 -0
  130. package/dist/configure/services/auth/index.d.mts +34 -0
  131. package/dist/configure/services/auth/types.d.mts +172 -0
  132. package/dist/configure/services/executor/executor.d.mts +81 -0
  133. package/dist/configure/services/executor/index.d.mts +8 -0
  134. package/dist/configure/services/executor/operation.d.mts +45 -0
  135. package/dist/configure/services/executor/trigger/event.d.mts +272 -0
  136. package/dist/configure/services/executor/trigger/index.d.mts +8 -0
  137. package/dist/configure/services/executor/trigger/schedule.d.mts +25 -0
  138. package/dist/configure/services/executor/trigger/webhook.d.mts +44 -0
  139. package/dist/configure/services/executor/types.d.mts +2 -0
  140. package/dist/configure/services/http-adapter/http-adapter.d.mts +125 -0
  141. package/dist/configure/services/http-adapter/index.d.mts +2 -0
  142. package/dist/configure/services/idp/index.d.mts +64 -0
  143. package/dist/configure/services/idp/permission.d.mts +80 -0
  144. package/dist/configure/services/idp/types.d.mts +20 -0
  145. package/dist/configure/services/index.d.mts +34 -0
  146. package/dist/configure/services/resolver/index.d.mts +5 -0
  147. package/dist/configure/services/resolver/resolver.d.mts +75 -0
  148. package/dist/configure/services/resolver/types.d.mts +6 -0
  149. package/dist/configure/services/secrets/index.d.mts +38 -0
  150. package/dist/configure/services/secrets/types.d.mts +11 -0
  151. package/dist/configure/services/staticwebsite/index.d.mts +19 -0
  152. package/dist/configure/services/staticwebsite/types.d.mts +11 -0
  153. package/dist/configure/services/tailordb/index.d.mts +4 -0
  154. package/dist/configure/services/tailordb/permission.d.mts +119 -0
  155. package/dist/configure/services/tailordb/schema.d.mts +456 -0
  156. package/dist/configure/services/tailordb/types.d.mts +149 -0
  157. package/dist/configure/services/workflow/execution-policy.d.mts +71 -0
  158. package/dist/configure/services/workflow/execution-policy.types.d.mts +104 -0
  159. package/dist/configure/services/workflow/index.d.mts +8 -0
  160. package/dist/configure/services/workflow/job.d.mts +84 -0
  161. package/dist/configure/services/workflow/types.d.mts +2 -0
  162. package/dist/configure/services/workflow/wait-point.d.mts +73 -0
  163. package/dist/configure/services/workflow/workflow.d.mts +54 -0
  164. package/dist/configure/types/aigateway-name.d.mts +12 -0
  165. package/dist/configure/types/connection-name.d.mts +12 -0
  166. package/dist/configure/types/field-runtime.d.mts +17 -0
  167. package/dist/configure/types/field.d.mts +9 -0
  168. package/dist/configure/types/field.types.d.mts +109 -0
  169. package/dist/configure/types/idp-name.d.mts +12 -0
  170. package/dist/configure/types/index.d.mts +4 -0
  171. package/dist/configure/types/machine-user.d.mts +2 -0
  172. package/dist/configure/types/type.d.mts +82 -0
  173. package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
  174. package/dist/context-DYQVYWqZ.mjs.map +1 -0
  175. package/dist/{crashreport-DFq-vsU0.mjs → crashreport-Cg-pqRJV.mjs} +6 -6
  176. package/dist/{crashreport-DFq-vsU0.mjs.map → crashreport-Cg-pqRJV.mjs.map} +1 -1
  177. package/dist/{crashreport-BMWcxeSE.mjs → crashreport-D3RjuSYb.mjs} +1 -1
  178. package/dist/enum-constants-j9QBF0cB.mjs.map +1 -1
  179. package/dist/{errors-Dtf2WPaW.mjs → errors-118wUDRr.mjs} +2 -2
  180. package/dist/errors-118wUDRr.mjs.map +1 -0
  181. package/dist/field-runtime-CAnh_oow.mjs +183 -0
  182. package/dist/field-runtime-CAnh_oow.mjs.map +1 -0
  183. package/dist/{file-BbdFGdMV.mjs → file-BUcmVIH2.mjs} +12 -14
  184. package/dist/file-BUcmVIH2.mjs.map +1 -0
  185. package/dist/{file-utils-CYZnO1pX.mjs → file-utils-yEiIS4nJ.mjs} +2 -2
  186. package/dist/file-utils-yEiIS4nJ.mjs.map +1 -0
  187. package/dist/{globals-Cf0sxIt8.mjs → globals-BjhJJ2dN.mjs} +5 -47
  188. package/dist/globals-BjhJJ2dN.mjs.map +1 -0
  189. package/dist/iconv-QWaZh0TT.mjs +38 -0
  190. package/dist/iconv-QWaZh0TT.mjs.map +1 -0
  191. package/dist/{idp-BDbK5gjm.mjs → idp-RA_swu-h.mjs} +12 -5
  192. package/dist/idp-RA_swu-h.mjs.map +1 -0
  193. package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
  194. package/dist/interceptor-e33JtsC-.mjs.map +1 -0
  195. package/dist/kysely/index.d.mts +2 -3
  196. package/dist/{kysely-type-DR8uzZTA.mjs → kysely-type-D-zflMGf.mjs} +2 -2
  197. package/dist/{kysely-type-DR8uzZTA.mjs.map → kysely-type-D-zflMGf.mjs.map} +1 -1
  198. package/dist/{logger-CxF-Ex5d.mjs → logger-BEiZZ3qT.mjs} +3 -3
  199. package/dist/{logger-CxF-Ex5d.mjs.map → logger-BEiZZ3qT.mjs.map} +1 -1
  200. package/dist/parser/service/auth/index.d.mts +1 -0
  201. package/dist/parser/service/auth/schema.d.mts +1 -0
  202. package/dist/parser/service/http-adapter/index.d.mts +1 -0
  203. package/dist/parser/service/http-adapter/schema.d.mts +1 -0
  204. package/dist/parser/service/idp/types.d.mts +4 -0
  205. package/dist/parser/service/tailordb/types.d.mts +126 -0
  206. package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
  207. package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
  208. package/dist/plugin/builtin/enum-constants/index.d.mts +16 -1
  209. package/dist/plugin/builtin/file-utils/index.d.mts +16 -1
  210. package/dist/plugin/builtin/file-utils/index.mjs +1 -1
  211. package/dist/plugin/builtin/kysely-type/index.d.mts +16 -1
  212. package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
  213. package/dist/plugin/builtin/seed/index.d.mts +45 -1
  214. package/dist/plugin/builtin/seed/index.mjs +1 -1
  215. package/dist/plugin/get-generated-type.d.mts +17 -0
  216. package/dist/plugin/index.d.mts +3 -118
  217. package/dist/plugin/index.mjs +1 -1
  218. package/dist/plugin/index.mjs.map +1 -1
  219. package/dist/plugin/manager.d.mts +1 -0
  220. package/dist/plugin/types.d.mts +243 -0
  221. package/dist/plugin/with-context.d.mts +102 -0
  222. package/dist/{runtime-CY4JvrDj.mjs → register-ts-hook-BM1caLT0.mjs} +4128 -2744
  223. package/dist/register-ts-hook-BM1caLT0.mjs.map +1 -0
  224. package/dist/{registry-DH4m7eYo.mjs → registry-BSbq6SPo.mjs} +4 -3
  225. package/dist/registry-BSbq6SPo.mjs.map +1 -0
  226. package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
  227. package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  228. package/dist/resource_pb-BRv7AMXK.mjs +49 -0
  229. package/dist/resource_pb-BRv7AMXK.mjs.map +1 -0
  230. package/dist/runtime/aigateway.d.mts +26 -0
  231. package/dist/runtime/aigateway.mjs +3 -0
  232. package/dist/runtime/authconnection.d.mts +22 -2
  233. package/dist/runtime/authconnection.mjs +2 -2
  234. package/dist/runtime/context.d.mts +55 -2
  235. package/dist/runtime/context.mjs +2 -2
  236. package/dist/runtime/file.d.mts +170 -2
  237. package/dist/runtime/file.mjs +2 -2
  238. package/dist/runtime/globals.d.mts +31 -19
  239. package/dist/runtime/iconv.d.mts +73 -2
  240. package/dist/runtime/iconv.mjs +2 -2
  241. package/dist/runtime/idp.d.mts +129 -2
  242. package/dist/runtime/idp.mjs +2 -2
  243. package/dist/runtime/index.d.mts +47 -9
  244. package/dist/runtime/index.mjs +9 -8
  245. package/dist/runtime/secretmanager.d.mts +41 -2
  246. package/dist/runtime/secretmanager.mjs +2 -2
  247. package/dist/{types-BZ7QKVE8.d.mts → runtime/types.d.mts} +4 -5
  248. package/dist/runtime/workflow.d.mts +113 -2
  249. package/dist/runtime/workflow.mjs +2 -2
  250. package/dist/{schema-Dtw9Orye.mjs → schema-C4LYbXVG.mjs} +21 -186
  251. package/dist/schema-C4LYbXVG.mjs.map +1 -0
  252. package/dist/{secret-file-VSVGy1V0.mjs → secret-file-aoNXJmKa.mjs} +3 -3
  253. package/dist/secret-file-aoNXJmKa.mjs.map +1 -0
  254. package/dist/secretmanager-Bd45j7an.mjs +98 -0
  255. package/dist/secretmanager-Bd45j7an.mjs.map +1 -0
  256. package/dist/secretmanager-CYlpffsz.mjs +13 -0
  257. package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
  258. package/dist/seed/index.d.mts +1 -2
  259. package/dist/{seed-izIEyP3z.mjs → seed-CRSQJI_z.mjs} +14 -3
  260. package/dist/seed-CRSQJI_z.mjs.map +1 -0
  261. package/dist/service-CkIwEctX.mjs +3 -0
  262. package/dist/{service-DU1mVzri2.mjs → service-DeZeYa06.mjs} +3 -3
  263. package/dist/service-DeZeYa06.mjs.map +1 -0
  264. package/dist/{service-DjyqbCaJ.mjs → service-ufH7sS8o.mjs} +396 -58
  265. package/dist/service-ufH7sS8o.mjs.map +1 -0
  266. package/dist/service_pb-B2FF59sP.mjs +3 -0
  267. package/dist/service_pb-B5w9rjPY.mjs +955 -0
  268. package/dist/service_pb-B5w9rjPY.mjs.map +1 -0
  269. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +204 -0
  270. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +58 -0
  271. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +316 -0
  272. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +161 -0
  273. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2070 -0
  274. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +861 -0
  275. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +112 -0
  276. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +69 -0
  277. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +439 -0
  278. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +564 -0
  279. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +145 -0
  280. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +451 -0
  281. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +192 -0
  282. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +50 -0
  283. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +407 -0
  284. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +430 -0
  285. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +73 -0
  286. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +17 -0
  287. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +309 -0
  288. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +591 -0
  289. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +330 -0
  290. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +113 -0
  291. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +346 -0
  292. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +54 -0
  293. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3576 -0
  294. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +187 -0
  295. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +29 -0
  296. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +429 -0
  297. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +90 -0
  298. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +684 -0
  299. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +797 -0
  300. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +330 -0
  301. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +183 -0
  302. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +862 -0
  303. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +310 -0
  304. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2015 -0
  305. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +483 -0
  306. package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
  307. package/dist/telemetry-BRVdwh14.mjs.map +1 -0
  308. package/dist/telemetry-CkbkeJxl.mjs +3 -0
  309. package/dist/types/aigateway.generated.d.mts +9 -0
  310. package/dist/types/app-config.generated.d.mts +4 -0
  311. package/dist/types/auth-connection.generated.d.mts +20 -0
  312. package/dist/types/auth.generated.d.mts +145 -0
  313. package/dist/types/executor.generated.d.mts +177 -0
  314. package/dist/types/helpers.d.mts +39 -0
  315. package/dist/types/http-adapter.generated.d.mts +17 -0
  316. package/dist/{workflow.generated-ClEjBYhm.d.mts → types/idp.generated.d.mts} +98 -185
  317. package/dist/types/resolver.generated.d.mts +39 -0
  318. package/dist/types/secrets.generated.d.mts +14 -0
  319. package/dist/types/staticwebsite.generated.d.mts +10 -0
  320. package/dist/{types-CdcQh4Z2.d.mts → types/tailordb.generated.d.mts} +2 -287
  321. package/dist/types/workflow.generated.d.mts +12 -0
  322. package/dist/types-C-lQ4se3.mjs +4 -0
  323. package/dist/types-CXF2OYdR.mjs +199 -0
  324. package/dist/types-CXF2OYdR.mjs.map +1 -0
  325. package/dist/utils/test/index.d.mts +5 -89
  326. package/dist/utils/test/index.mjs.map +1 -1
  327. package/dist/utils/test/mock.d.mts +87 -0
  328. package/dist/vitest/environment.d.mts +1 -2
  329. package/dist/vitest/environment.mjs +2 -2
  330. package/dist/vitest/environment.mjs.map +1 -1
  331. package/dist/vitest/index.d.mts +12 -428
  332. package/dist/vitest/index.mjs +740 -9
  333. package/dist/vitest/index.mjs.map +1 -1
  334. package/dist/vitest/mock-kysely.d.mts +62 -0
  335. package/dist/vitest/mock.d.mts +9 -0
  336. package/dist/vitest/mocks/aigateway.d.mts +30 -0
  337. package/dist/vitest/mocks/authconnection.d.mts +28 -0
  338. package/dist/vitest/mocks/file.d.mts +41 -0
  339. package/dist/vitest/mocks/iconv.d.mts +27 -0
  340. package/dist/vitest/mocks/idp.d.mts +44 -0
  341. package/dist/vitest/mocks/secretmanager.d.mts +33 -0
  342. package/dist/vitest/mocks/tailordb.d.mts +71 -0
  343. package/dist/vitest/mocks/workflow.d.mts +117 -0
  344. package/dist/vitest/setup.d.mts +1 -2
  345. package/dist/vitest/setup.mjs +2 -2
  346. package/dist/vitest/workflow-local.d.mts +40 -0
  347. package/dist/workflow-GNuSnsTx.mjs +22 -0
  348. package/dist/workflow-GNuSnsTx.mjs.map +1 -0
  349. package/docs/cli/application.md +98 -250
  350. package/docs/cli/auth.md +51 -295
  351. package/docs/cli/completion.md +1 -25
  352. package/docs/cli/crashreport.md +3 -61
  353. package/docs/cli/executor.md +23 -187
  354. package/docs/cli/function.md +14 -130
  355. package/docs/cli/organization.md +11 -221
  356. package/docs/cli/plugin.md +29 -0
  357. package/docs/cli/query.md +2 -22
  358. package/docs/cli/secret.md +71 -251
  359. package/docs/cli/setup.md +137 -41
  360. package/docs/cli/skills.md +50 -39
  361. package/docs/cli/staticwebsite.md +32 -180
  362. package/docs/cli/tailordb.md +97 -323
  363. package/docs/cli/upgrade.md +2 -22
  364. package/docs/cli/user.md +78 -247
  365. package/docs/cli/workflow.md +44 -203
  366. package/docs/cli/workspace.md +165 -538
  367. package/docs/cli-reference.md +167 -67
  368. package/docs/configuration.md +34 -4
  369. package/docs/github-actions.md +46 -19
  370. package/docs/migration/v2.md +397 -26
  371. package/docs/multi-environment.md +29 -7
  372. package/docs/plugin/custom.md +4 -4
  373. package/docs/plugin/index.md +8 -8
  374. package/docs/quickstart.md +8 -7
  375. package/docs/runtime.md +9 -3
  376. package/docs/services/aigateway.md +18 -2
  377. package/docs/services/auth.md +34 -42
  378. package/docs/services/http-adapter.md +16 -1
  379. package/docs/services/idp.md +55 -2
  380. package/docs/services/resolver.md +2 -2
  381. package/docs/services/secret.md +11 -11
  382. package/docs/services/staticwebsite.md +8 -2
  383. package/docs/services/tailordb-migration.md +25 -23
  384. package/docs/services/tailordb.md +55 -32
  385. package/docs/services/workflow.md +92 -14
  386. package/docs/testing.md +49 -3
  387. package/package.json +42 -31
  388. package/postinstall.mjs +4 -6
  389. package/dist/application-Dtqap5jM.mjs +0 -3
  390. package/dist/application-XuMWK4eq.mjs +0 -7257
  391. package/dist/application-XuMWK4eq.mjs.map +0 -1
  392. package/dist/authconnection-D2MhtTN5.mjs +0 -15
  393. package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
  394. package/dist/authconnection-DvUQAjQS.d.mts +0 -39
  395. package/dist/context-Bd266-ru.mjs.map +0 -1
  396. package/dist/context-C2lEi9uw.d.mts +0 -47
  397. package/dist/errors-Dtf2WPaW.mjs.map +0 -1
  398. package/dist/field-DOsJCPFa.mjs +0 -22
  399. package/dist/field-DOsJCPFa.mjs.map +0 -1
  400. package/dist/file-BbdFGdMV.mjs.map +0 -1
  401. package/dist/file-Dq3NIt_F.d.mts +0 -211
  402. package/dist/file-utils-CYZnO1pX.mjs.map +0 -1
  403. package/dist/globals-Cf0sxIt8.mjs.map +0 -1
  404. package/dist/http-adapter.generated-DFsXDdm5.d.mts +0 -581
  405. package/dist/iconv-Co-TOPuH.d.mts +0 -122
  406. package/dist/iconv-D2vi8G36.mjs +0 -63
  407. package/dist/iconv-D2vi8G36.mjs.map +0 -1
  408. package/dist/idp-BDbK5gjm.mjs.map +0 -1
  409. package/dist/idp-DrhVrLmV.d.mts +0 -160
  410. package/dist/index-BI-_j9Z3.d.mts +0 -1013
  411. package/dist/index-C4JirJH8.d.mts +0 -18
  412. package/dist/index-CZfWhr0a.d.mts +0 -18
  413. package/dist/index-Cg8VKAdN.d.mts +0 -46
  414. package/dist/index-DYRjoLXD.d.mts +0 -47
  415. package/dist/index-lFpcjHPU.d.mts +0 -201
  416. package/dist/index-nW7hE6oE.d.mts +0 -18
  417. package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
  418. package/dist/mock-FPxmnt-y.mjs +0 -759
  419. package/dist/mock-FPxmnt-y.mjs.map +0 -1
  420. package/dist/registry-DH4m7eYo.mjs.map +0 -1
  421. package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
  422. package/dist/runtime-CY4JvrDj.mjs.map +0 -1
  423. package/dist/schema-Dtw9Orye.mjs.map +0 -1
  424. package/dist/secret-file-VSVGy1V0.mjs.map +0 -1
  425. package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
  426. package/dist/secretmanager-BVxw3ih_.mjs +0 -24
  427. package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
  428. package/dist/seed-izIEyP3z.mjs.map +0 -1
  429. package/dist/service-DCqIWibD.mjs +0 -3
  430. package/dist/service-DU1mVzri2.mjs.map +0 -1
  431. package/dist/service-DjyqbCaJ.mjs.map +0 -1
  432. package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
  433. package/dist/telemetry-ClwW5ohF.mjs +0 -3
  434. package/dist/types-74etvaxy.mjs +0 -4
  435. package/dist/types-BDRml5C3.d.mts +0 -574
  436. package/dist/types-BQijbo4m.mjs +0 -371
  437. package/dist/types-BQijbo4m.mjs.map +0 -1
  438. package/dist/types-BX4q6Mo6.d.mts +0 -339
  439. package/dist/workflow-BOmaZwwG.mjs +0 -43
  440. package/dist/workflow-BOmaZwwG.mjs.map +0 -1
  441. package/dist/workflow-BVy4XWjS.d.mts +0 -101
@@ -1,12 +1,13 @@
1
- import { i as getRegisteredJob, t as TRIGGER_DEFAULT } from "../registry-DH4m7eYo.mjs";
1
+ import { i as getRegisteredJob, t as TRIGGER_DEFAULT } from "../registry-BSbq6SPo.mjs";
2
2
  import { a as writeWorkflowTestEnv, n as clearWorkflowTestEnv, r as readWorkflowTestEnv, t as buildJobContext } from "../test-env-key-D7UkZp99.mjs";
3
3
  import { t as assertDefined } from "../assert-DBxo8jPo.mjs";
4
- import { i as platformSerialize } from "../globals-Cf0sxIt8.mjs";
5
- import { a as mockSecretmanager, i as mockIdp, n as mockFile, o as mockTailordb, r as mockIconv, s as mockWorkflow, t as mockAuthconnection } from "../mock-FPxmnt-y.mjs";
4
+ import { t as platformSerialize } from "../platform-serialize-RoRtBS0v.mjs";
5
+ import { i as withDispose, n as tailorRoot, r as tailordbRoot, t as mockSecretmanager } from "../secretmanager-Bd45j7an.mjs";
6
6
  import { builtinModules } from "node:module";
7
7
  import { fileURLToPath } from "node:url";
8
8
  import { dirname, isAbsolute, matchesGlob, relative, resolve } from "node:path";
9
9
  import { ColumnNode, InsertQueryNode, Kysely, PostgresAdapter, PostgresIntrospector, PostgresQueryCompiler, PrimitiveValueListNode, ReferenceNode, UpdateQueryNode, ValueListNode, ValueNode, ValuesNode } from "kysely";
10
+ import { vi } from "vitest";
10
11
 
11
12
  //#region src/vitest/blocked-modules.ts
12
13
  /**
@@ -52,7 +53,8 @@ function isBlockedModule(specifier) {
52
53
  * @returns Error message with optional suggestion for the Web Standard API alternative
53
54
  */
54
55
  function getBlockedMessage(specifier) {
55
- const suggestion = SUGGESTIONS[specifier.startsWith("node:") ? specifier.slice(5) : specifier];
56
+ const bare = specifier.startsWith("node:") ? specifier.slice(5) : specifier;
57
+ const suggestion = SUGGESTIONS[bare];
56
58
  const base = `"${specifier}" is not available in the Tailor Platform runtime.`;
57
59
  return suggestion ? `${base} ${suggestion}` : base;
58
60
  }
@@ -60,12 +62,12 @@ function getBlockedMessage(specifier) {
60
62
  //#endregion
61
63
  //#region src/vitest/plugin.ts
62
64
  const DEFAULT_TEST_INCLUDE = ["**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"];
63
- const IMPORT_LIKE_TYPES = new Set([
65
+ const IMPORT_LIKE_TYPES = /* @__PURE__ */ new Set([
64
66
  "ImportDeclaration",
65
67
  "ExportNamedDeclaration",
66
68
  "ExportAllDeclaration"
67
69
  ]);
68
- const UNSAFE_BINDING_NAMES = new Set([
70
+ const UNSAFE_BINDING_NAMES = /* @__PURE__ */ new Set([
69
71
  "break",
70
72
  "case",
71
73
  "catch",
@@ -185,7 +187,7 @@ function createBlockPlugin() {
185
187
  const testConfig = config.test;
186
188
  const root = testConfig?.root ?? config.root;
187
189
  const toAbsolutePaths = (value, baseRoot) => (Array.isArray(value) ? value : value ? [value] : []).map((f) => resolve(baseRoot, f));
188
- const exemptHostFiles = new Set([...toAbsolutePaths(testConfig?.setupFiles, root), ...toAbsolutePaths(testConfig?.globalSetup, root)]);
190
+ const exemptHostFiles = /* @__PURE__ */ new Set([...toAbsolutePaths(testConfig?.setupFiles, root), ...toAbsolutePaths(testConfig?.globalSetup, root)]);
189
191
  const includePairs = [{
190
192
  root,
191
193
  patterns: testConfig?.include ?? DEFAULT_TEST_INCLUDE
@@ -291,6 +293,731 @@ function createEnvironmentPlugin(options) {
291
293
  };
292
294
  }
293
295
 
296
+ //#endregion
297
+ //#region src/vitest/mocks/aigateway.ts
298
+ /**
299
+ * Acquire a disposable mock for `tailor.aigateway`. Restored on dispose.
300
+ * @returns Disposable AI Gateway mock control object
301
+ * @example
302
+ * ```typescript
303
+ * import { mockAigateway } from "@tailor-platform/sdk/vitest";
304
+ *
305
+ * test("resolves an AI Gateway URL", async () => {
306
+ * using aigateway = mockAigateway();
307
+ * aigateway.setUrls({ "my-aigateway": "https://my-aigateway.example.com" });
308
+ * // …
309
+ * });
310
+ * ```
311
+ */
312
+ function mockAigateway() {
313
+ const root = tailorRoot();
314
+ const prev = root.aigateway;
315
+ let urls = {};
316
+ const get = vi.fn(async (name) => {
317
+ const url = urls[name];
318
+ if (url === void 0) throw new Error(`No AI Gateway registered for "${name}". Acquire mockAigateway() and call setUrls(...).`);
319
+ return { url };
320
+ });
321
+ root.aigateway = { get };
322
+ return withDispose({
323
+ /** The `get` `vi.fn`. */
324
+ get,
325
+ setUrls(value) {
326
+ urls = value;
327
+ },
328
+ get calls() {
329
+ return get.mock.calls.map(([name]) => ({ name }));
330
+ },
331
+ reset() {
332
+ urls = {};
333
+ get.mockClear();
334
+ }
335
+ }, () => {
336
+ root.aigateway = prev;
337
+ });
338
+ }
339
+
340
+ //#endregion
341
+ //#region src/vitest/mocks/authconnection.ts
342
+ /**
343
+ * Acquire a disposable mock for `tailor.authconnection`. Restored on dispose.
344
+ * @returns Disposable AuthConnection mock control object
345
+ * @example
346
+ * ```typescript
347
+ * import { mockAuthconnection } from "@tailor-platform/sdk/vitest";
348
+ *
349
+ * test("returns configured token", async () => {
350
+ * using ac = mockAuthconnection();
351
+ * ac.setTokens({ google: { access_token: "ya29.xxx" } });
352
+ * // …
353
+ * });
354
+ * ```
355
+ */
356
+ function mockAuthconnection() {
357
+ const root = tailorRoot();
358
+ const prev = root.authconnection;
359
+ let tokens = {};
360
+ const getConnectionToken = vi.fn(async (connectionName) => tokens[connectionName] ?? { access_token: "mock-token" });
361
+ root.authconnection = { getConnectionToken };
362
+ return withDispose({
363
+ /** The `getConnectionToken` `vi.fn`. */
364
+ getConnectionToken,
365
+ setTokens(value) {
366
+ tokens = value;
367
+ },
368
+ get calls() {
369
+ return getConnectionToken.mock.calls.map(([connectionName]) => ({ connectionName }));
370
+ },
371
+ reset() {
372
+ tokens = {};
373
+ getConnectionToken.mockClear();
374
+ }
375
+ }, () => {
376
+ root.authconnection = prev;
377
+ });
378
+ }
379
+
380
+ //#endregion
381
+ //#region src/vitest/mocks/file.ts
382
+ const FILE_DEFAULTS = {
383
+ upload: { metadata: {
384
+ fileSize: 0,
385
+ sha256sum: ""
386
+ } },
387
+ download: {
388
+ data: /* @__PURE__ */ new Uint8Array(),
389
+ metadata: {
390
+ contentType: "",
391
+ fileSize: 0,
392
+ sha256sum: "",
393
+ lastUploadedAt: ""
394
+ }
395
+ },
396
+ downloadAsBase64: {
397
+ data: "",
398
+ metadata: {
399
+ contentType: "",
400
+ fileSize: 0,
401
+ sha256sum: "",
402
+ lastUploadedAt: ""
403
+ }
404
+ },
405
+ delete: void 0,
406
+ getMetadata: {
407
+ contentType: "",
408
+ fileSize: 0,
409
+ sha256sum: "",
410
+ urlPath: ""
411
+ },
412
+ downloadStream: null,
413
+ uploadStream: { metadata: {
414
+ fileSize: 0,
415
+ sha256sum: ""
416
+ } }
417
+ };
418
+ /**
419
+ * Acquire a disposable mock for `tailordb.file`. Restored on dispose.
420
+ * @returns Disposable File mock control object
421
+ * @example
422
+ * ```typescript
423
+ * import { mockFile } from "@tailor-platform/sdk/vitest";
424
+ *
425
+ * test("mock file download", async () => {
426
+ * using file = mockFile();
427
+ * file.enqueueResult({ data: new Uint8Array([1, 2, 3]), metadata: { ... } });
428
+ * // …
429
+ * });
430
+ * ```
431
+ */
432
+ function mockFile() {
433
+ const root = tailordbRoot();
434
+ const prev = root.file;
435
+ const queue = [];
436
+ let resolver = () => null;
437
+ const calls = [];
438
+ function handle(method, namespace, typeName, fieldName, recordId) {
439
+ const call = {
440
+ method,
441
+ namespace,
442
+ typeName,
443
+ fieldName,
444
+ recordId
445
+ };
446
+ calls.push(call);
447
+ if (queue.length > 0) return queue.shift();
448
+ const resolved = resolver(method, call);
449
+ if (resolved != null) return resolved;
450
+ const fallback = FILE_DEFAULTS[method];
451
+ return fallback === void 0 ? void 0 : structuredClone(fallback);
452
+ }
453
+ root.file = {
454
+ async upload(namespace, typeName, fieldName, recordId) {
455
+ return handle("upload", namespace, typeName, fieldName, recordId);
456
+ },
457
+ async download(namespace, typeName, fieldName, recordId) {
458
+ return handle("download", namespace, typeName, fieldName, recordId);
459
+ },
460
+ async downloadAsBase64(namespace, typeName, fieldName, recordId) {
461
+ return handle("downloadAsBase64", namespace, typeName, fieldName, recordId);
462
+ },
463
+ async delete(namespace, typeName, fieldName, recordId) {
464
+ handle("delete", namespace, typeName, fieldName, recordId);
465
+ },
466
+ async getMetadata(namespace, typeName, fieldName, recordId) {
467
+ return handle("getMetadata", namespace, typeName, fieldName, recordId);
468
+ },
469
+ async downloadStream(namespace, typeName, fieldName, recordId) {
470
+ const resolved = handle("downloadStream", namespace, typeName, fieldName, recordId);
471
+ if (resolved != null) return resolved;
472
+ return {
473
+ body: new ReadableStream({ start(c) {
474
+ c.close();
475
+ } }),
476
+ metadata: {
477
+ contentType: "",
478
+ fileSize: 0,
479
+ sha256sum: "",
480
+ lastUploadedAt: ""
481
+ }
482
+ };
483
+ },
484
+ async uploadStream(namespace, typeName, fieldName, recordId) {
485
+ return handle("uploadStream", namespace, typeName, fieldName, recordId);
486
+ }
487
+ };
488
+ return withDispose({
489
+ setResolver(value) {
490
+ resolver = value;
491
+ },
492
+ /**
493
+ * Enqueue a single result for the next `tailordb.file` call (FIFO; falls
494
+ * back to `setResolver` when exhausted).
495
+ * @param result - Result to return from the next file call
496
+ */
497
+ enqueueResult(result) {
498
+ queue.push(result);
499
+ },
500
+ /**
501
+ * Enqueue results for multiple subsequent `tailordb.file` calls.
502
+ * @param results - Results to enqueue, one per upcoming call
503
+ */
504
+ enqueueResults(...results) {
505
+ queue.push(...results);
506
+ },
507
+ get calls() {
508
+ return calls;
509
+ },
510
+ reset() {
511
+ queue.length = 0;
512
+ resolver = () => null;
513
+ calls.length = 0;
514
+ }
515
+ }, () => {
516
+ root.file = prev;
517
+ });
518
+ }
519
+
520
+ //#endregion
521
+ //#region src/vitest/mocks/iconv.ts
522
+ function isUtf8(encoding) {
523
+ return encoding === "UTF8" || encoding === "UTF-8";
524
+ }
525
+ function defaultIconvResult(method, args) {
526
+ switch (method) {
527
+ case "convert":
528
+ case "convertBuffer": return isUtf8(args[2]) ? "" : /* @__PURE__ */ new Uint8Array();
529
+ case "decode": return "";
530
+ case "encode": return isUtf8(args[1]) ? "" : /* @__PURE__ */ new Uint8Array();
531
+ case "encodings": return [];
532
+ default: return;
533
+ }
534
+ }
535
+ /**
536
+ * Acquire a disposable mock for `tailor.iconv`. Restored on dispose.
537
+ * @returns Disposable Iconv mock control object
538
+ * @example
539
+ * ```typescript
540
+ * import { mockIconv } from "@tailor-platform/sdk/vitest";
541
+ *
542
+ * test("mock encoding conversion", () => {
543
+ * using iconv = mockIconv();
544
+ * iconv.setResolver((method) => (method === "decode" ? "decoded-text" : null));
545
+ * // …
546
+ * });
547
+ * ```
548
+ */
549
+ function mockIconv() {
550
+ const root = tailorRoot();
551
+ const prev = root.iconv;
552
+ let resolver = null;
553
+ const calls = [];
554
+ function handle(method, args) {
555
+ calls.push({
556
+ method,
557
+ args: [...args]
558
+ });
559
+ if (resolver) {
560
+ const result = resolver(method, args);
561
+ if (result != null) return result;
562
+ }
563
+ return defaultIconvResult(method, args);
564
+ }
565
+ class MockIconv {
566
+ #fromEncoding;
567
+ #toEncoding;
568
+ constructor(fromEncoding, toEncoding) {
569
+ this.#fromEncoding = fromEncoding;
570
+ this.#toEncoding = toEncoding;
571
+ }
572
+ convert(input) {
573
+ return handle("convert", [
574
+ input,
575
+ this.#fromEncoding,
576
+ this.#toEncoding
577
+ ]);
578
+ }
579
+ }
580
+ root.iconv = {
581
+ convert: (str, from, to) => handle("convert", [
582
+ str,
583
+ from,
584
+ to
585
+ ]),
586
+ convertBuffer: (buf, from, to) => handle("convertBuffer", [
587
+ buf,
588
+ from,
589
+ to
590
+ ]),
591
+ decode: (buf, encoding) => handle("decode", [buf, encoding]),
592
+ encode: (str, encoding) => handle("encode", [str, encoding]),
593
+ encodings: () => handle("encodings", []),
594
+ Iconv: MockIconv
595
+ };
596
+ return withDispose({
597
+ setResolver(value) {
598
+ resolver = value;
599
+ },
600
+ get calls() {
601
+ return calls;
602
+ },
603
+ reset() {
604
+ resolver = null;
605
+ calls.length = 0;
606
+ }
607
+ }, () => {
608
+ root.iconv = prev;
609
+ });
610
+ }
611
+
612
+ //#endregion
613
+ //#region src/vitest/mocks/idp.ts
614
+ const IDP_DEFAULTS = {
615
+ users: {
616
+ users: [],
617
+ nextPageToken: null,
618
+ totalCount: 0
619
+ },
620
+ user: {
621
+ id: "mock-id",
622
+ name: "mock-user",
623
+ disabled: false,
624
+ mfaEnrolled: false,
625
+ mfaFactorIds: []
626
+ },
627
+ userByName: {
628
+ id: "mock-id",
629
+ name: "mock-user",
630
+ disabled: false,
631
+ mfaEnrolled: false,
632
+ mfaFactorIds: []
633
+ },
634
+ createUser: {
635
+ id: "mock-id",
636
+ name: "mock-user",
637
+ disabled: false,
638
+ mfaEnrolled: false,
639
+ mfaFactorIds: []
640
+ },
641
+ updateUser: {
642
+ id: "mock-id",
643
+ name: "mock-user",
644
+ disabled: false,
645
+ mfaEnrolled: false,
646
+ mfaFactorIds: []
647
+ },
648
+ deleteUser: true,
649
+ sendPasswordResetEmail: true,
650
+ unenrollMfa: true
651
+ };
652
+ /**
653
+ * Acquire a disposable mock for `tailor.idp`. Restored on dispose.
654
+ * @returns Disposable IDP mock control object
655
+ * @example
656
+ * ```typescript
657
+ * import { mockIdp } from "@tailor-platform/sdk/vitest";
658
+ *
659
+ * test("resolver-based", async () => {
660
+ * using idp = mockIdp();
661
+ * idp.setResolver((method) =>
662
+ * method === "user" ? { id: "u-1", name: "alice", disabled: false } : null,
663
+ * );
664
+ * // …
665
+ * });
666
+ * ```
667
+ */
668
+ function mockIdp() {
669
+ const root = tailorRoot();
670
+ const prev = root.idp;
671
+ const queue = [];
672
+ let resolver = () => null;
673
+ const calls = [];
674
+ function handle(method, args, namespace) {
675
+ calls.push({
676
+ method,
677
+ args,
678
+ namespace
679
+ });
680
+ if (queue.length > 0) return queue.shift();
681
+ const resolved = resolver(method, args, namespace);
682
+ if (resolved != null) return resolved;
683
+ const fallback = IDP_DEFAULTS[method];
684
+ return fallback === void 0 ? void 0 : structuredClone(fallback);
685
+ }
686
+ const Client = vi.fn(function(config) {
687
+ const namespace = config.namespace;
688
+ this.users = async (options) => handle("users", [options], namespace);
689
+ this.user = async (userId) => handle("user", [userId], namespace);
690
+ this.userByName = async (name) => handle("userByName", [name], namespace);
691
+ this.createUser = async (input) => handle("createUser", [input], namespace);
692
+ this.updateUser = async (input) => handle("updateUser", [input], namespace);
693
+ this.deleteUser = async (userId) => handle("deleteUser", [userId], namespace);
694
+ this.sendPasswordResetEmail = async (input) => handle("sendPasswordResetEmail", [input], namespace);
695
+ this.unenrollMfa = async (input) => handle("unenrollMfa", [input], namespace);
696
+ });
697
+ root.idp = { Client };
698
+ return withDispose({
699
+ /** The mock IDP `Client` constructor (`vi.fn`). */
700
+ Client,
701
+ setResolver(value) {
702
+ resolver = value;
703
+ },
704
+ /**
705
+ * Enqueue a single result for the next IDP call (FIFO; falls back to
706
+ * `setResolver` when exhausted).
707
+ * @param result - Result to return from the next IDP call
708
+ */
709
+ enqueueResult(result) {
710
+ queue.push(result);
711
+ },
712
+ /**
713
+ * Enqueue results for multiple subsequent IDP calls.
714
+ * @param results - Results to enqueue, one per upcoming call
715
+ */
716
+ enqueueResults(...results) {
717
+ queue.push(...results);
718
+ },
719
+ get calls() {
720
+ return calls;
721
+ },
722
+ reset() {
723
+ queue.length = 0;
724
+ resolver = () => null;
725
+ calls.length = 0;
726
+ }
727
+ }, () => {
728
+ root.idp = prev;
729
+ });
730
+ }
731
+
732
+ //#endregion
733
+ //#region src/vitest/mocks/tailordb.ts
734
+ var MockQueryResult = class {
735
+ command;
736
+ rowCount;
737
+ rows;
738
+ constructor(rows) {
739
+ this.command = "";
740
+ this.rowCount = rows.length;
741
+ this.rows = rows;
742
+ }
743
+ };
744
+ /**
745
+ * Acquire a disposable mock for TailorDB operations. Installs a mock
746
+ * `tailordb.Client` whose `queryObject` is a shared `vi.fn()` (so query
747
+ * responses can be staged before the client is constructed). Restored on
748
+ * dispose.
749
+ * @returns Disposable TailorDB mock control object
750
+ * @example
751
+ * ```typescript
752
+ * import { mockTailordb } from "@tailor-platform/sdk/vitest";
753
+ *
754
+ * test("order-based", async () => {
755
+ * using db = mockTailordb();
756
+ * db.enqueueResults([], [{ age: 30 }], []); // BEGIN / SELECT / COMMIT
757
+ * // …
758
+ * expect(db.queryObject).toHaveBeenCalledTimes(3);
759
+ * expect(db.Client).toHaveBeenCalledWith({ namespace: "tailordb" });
760
+ * });
761
+ * ```
762
+ */
763
+ function mockTailordb() {
764
+ const root = tailordbRoot();
765
+ const prevClient = root.Client;
766
+ const queryObject = vi.fn(async (_query, _params = []) => new MockQueryResult([]));
767
+ const connect = vi.fn(async () => {});
768
+ const createdClients = [];
769
+ const Client = vi.fn(function(config) {
770
+ const record = {
771
+ namespace: config?.namespace,
772
+ ended: false
773
+ };
774
+ createdClients.push(record);
775
+ this.connect = connect;
776
+ this.end = vi.fn(async () => {
777
+ record.ended = true;
778
+ });
779
+ this.queryObject = queryObject;
780
+ this.createTransaction = (name) => {
781
+ if (!name) throw new Error("Transaction name must be a non-empty string");
782
+ return {
783
+ begin: async () => {},
784
+ commit: async () => {},
785
+ rollback: async () => {},
786
+ queryObject
787
+ };
788
+ };
789
+ });
790
+ root.Client = Client;
791
+ return withDispose({
792
+ /** The mock `tailordb.Client` constructor (`vi.fn`). */
793
+ Client,
794
+ /** The shared `queryObject` `vi.fn` used by every client and transaction. */
795
+ queryObject,
796
+ /**
797
+ * Set a fallback query resolver. Called when the enqueue queue is empty.
798
+ * @param resolver - Function that returns rows for a given query and params
799
+ */
800
+ setQueryResolver(resolver) {
801
+ queryObject.mockImplementation(async (query, params = []) => new MockQueryResult(resolver(query, params) ?? []));
802
+ },
803
+ /**
804
+ * Enqueue rows for the next `queryObject` call (FIFO; takes priority over
805
+ * `setQueryResolver`). Call with no arguments for an empty result.
806
+ * @param rows - Row objects to return from the next `queryObject` call
807
+ */
808
+ enqueueResult(...rows) {
809
+ queryObject.mockImplementationOnce(async () => new MockQueryResult(rows));
810
+ },
811
+ /**
812
+ * Enqueue rows for multiple subsequent `queryObject` calls (FIFO).
813
+ * @param rowsList - Rows arrays, one per upcoming query
814
+ */
815
+ enqueueResults(...rowsList) {
816
+ for (const rows of rowsList) queryObject.mockImplementationOnce(async () => new MockQueryResult(rows));
817
+ },
818
+ /**
819
+ * All queries executed via `queryObject`, in order, derived from the vi.fn
820
+ * call records.
821
+ * @returns Executed queries array
822
+ */
823
+ get executedQueries() {
824
+ return queryObject.mock.calls.map(([query, params]) => ({
825
+ query,
826
+ params: params ?? []
827
+ }));
828
+ },
829
+ /**
830
+ * All TailorDB clients created, with their namespace and end state.
831
+ * @returns Created clients array
832
+ */
833
+ get createdClients() {
834
+ return createdClients;
835
+ },
836
+ /** Reset query responses and recorded calls (keeps the mock installed). */
837
+ reset() {
838
+ queryObject.mockReset();
839
+ queryObject.mockImplementation(async () => new MockQueryResult([]));
840
+ connect.mockClear();
841
+ Client.mockClear();
842
+ createdClients.length = 0;
843
+ }
844
+ }, () => {
845
+ root.Client = prevClient;
846
+ });
847
+ }
848
+
849
+ //#endregion
850
+ //#region src/vitest/mocks/workflow.ts
851
+ /**
852
+ * Acquire a disposable mock for workflow operations (`tailor.workflow`).
853
+ * Restored on dispose.
854
+ * @returns Disposable workflow mock control object
855
+ * @example
856
+ * ```typescript
857
+ * import { mockWorkflow } from "@tailor-platform/sdk/vitest";
858
+ *
859
+ * test("job handler", async () => {
860
+ * using wf = mockWorkflow();
861
+ * wf.setJobHandler((name) => (name === "validate" ? { valid: true } : null));
862
+ * await runWorkflowUnderTest(); // calls tailor.workflow.triggerJobFunction("validate", {})
863
+ * expect(wf.triggerJobFunction).toHaveBeenCalledWith("validate", {});
864
+ * });
865
+ * ```
866
+ */
867
+ function mockWorkflow() {
868
+ const root = tailorRoot();
869
+ const prev = root.workflow;
870
+ const defaultTriggerJob = (jobName, _args, _options) => {
871
+ throw new Error(`No workflow job mock for "${jobName}". Call mockWorkflow().setJobHandler(...) or enqueueResult(...), or use runWorkflowLocally() for local workflow execution.`);
872
+ };
873
+ const defaultTriggerWorkflow = async (_workflowName, _args, _options) => {
874
+ return TRIGGER_DEFAULT;
875
+ };
876
+ const defaultResumeWorkflow = async (executionId) => executionId;
877
+ const triggerJobFunction = vi.fn(defaultTriggerJob);
878
+ const triggerWorkflow = vi.fn(defaultTriggerWorkflow);
879
+ const resumeWorkflow = vi.fn(defaultResumeWorkflow);
880
+ const wait = vi.fn((_key, _payload) => null);
881
+ const resolve = vi.fn(async (_executionId, _key, _callback) => {});
882
+ root.workflow = {
883
+ triggerJobFunction: (...call) => {
884
+ const out = call.length >= 3 ? triggerJobFunction(call[0], platformSerialize(call[1]), call[2]) : triggerJobFunction(call[0], platformSerialize(call[1]));
885
+ return out instanceof Promise ? out.then((v) => platformSerialize(v)) : platformSerialize(out);
886
+ },
887
+ triggerWorkflow: (...call) => call.length >= 3 ? triggerWorkflow(call[0], platformSerialize(call[1]), call[2]) : triggerWorkflow(call[0], platformSerialize(call[1])),
888
+ resumeWorkflow: (executionId) => resumeWorkflow(executionId),
889
+ wait: (key, payload) => wait(key, platformSerialize(payload)),
890
+ resolve: (executionId, key, callback) => resolve(executionId, key, (payload) => {
891
+ const out = callback(payload);
892
+ return out instanceof Promise ? out.then((v) => platformSerialize(v)) : platformSerialize(out);
893
+ })
894
+ };
895
+ return withDispose({
896
+ /** The `triggerJobFunction` `vi.fn`. */
897
+ triggerJobFunction,
898
+ /** The `triggerWorkflow` `vi.fn`. */
899
+ triggerWorkflow,
900
+ /** The `resumeWorkflow` `vi.fn`. */
901
+ resumeWorkflow,
902
+ /** The `wait` `vi.fn`. */
903
+ wait,
904
+ /** The `resolve` `vi.fn`. */
905
+ resolve,
906
+ /**
907
+ * Set a fallback job handler. Called when the enqueue queue is empty.
908
+ * @param handler - Function returning a result for a job name, args, and options
909
+ */
910
+ setJobHandler(handler) {
911
+ triggerJobFunction.mockImplementation((name, args, options) => handler(name, args, options));
912
+ },
913
+ /**
914
+ * Enqueue a single result for the next `triggerJobFunction` call (FIFO;
915
+ * takes priority over `setJobHandler`).
916
+ * @param result - Result to return from the next call
917
+ */
918
+ enqueueResult(result) {
919
+ triggerJobFunction.mockImplementationOnce(() => result);
920
+ },
921
+ /**
922
+ * Enqueue results for multiple subsequent `triggerJobFunction` calls (FIFO).
923
+ * @param results - Results to enqueue, one per upcoming call
924
+ */
925
+ enqueueResults(...results) {
926
+ for (const result of results) triggerJobFunction.mockImplementationOnce(() => result);
927
+ },
928
+ /**
929
+ * All jobs triggered via `triggerJobFunction`, in order.
930
+ * @returns Triggered jobs array
931
+ */
932
+ get triggeredJobs() {
933
+ return triggerJobFunction.mock.calls.map(([jobName, args, options]) => ({
934
+ jobName,
935
+ args,
936
+ ...options !== void 0 && { options }
937
+ }));
938
+ },
939
+ /**
940
+ * Configure what `triggerWorkflow` returns. Pass a string (same id every
941
+ * call) or `(name, args, options) => string`. Default: a placeholder UUID.
942
+ * @param handler - Static execution ID or a function returning one
943
+ */
944
+ setTriggerHandler(handler) {
945
+ triggerWorkflow.mockImplementation(typeof handler === "function" ? async (name, args, options) => handler(name, args, options) : async () => handler);
946
+ },
947
+ /**
948
+ * Configure what `resumeWorkflow` returns. Pass a string (same id every
949
+ * call) or `(executionId) => string`. Default: echoes the input executionId.
950
+ * @param handler - Static execution ID or a function returning one
951
+ */
952
+ setResumeHandler(handler) {
953
+ resumeWorkflow.mockImplementation(typeof handler === "function" ? async (executionId) => handler(executionId) : async () => handler);
954
+ },
955
+ /**
956
+ * Configure what `wait` returns. Pass `(key, payload) => unknown` or any
957
+ * other value to return it for every call. Default: `null`.
958
+ * @param handler - Static value or a function returning one
959
+ */
960
+ setWaitHandler: ((handler) => {
961
+ wait.mockImplementation(typeof handler === "function" ? (key, payload) => handler(key, payload) : () => handler);
962
+ }),
963
+ /**
964
+ * Set the `env` passed to job bodies invoked via `createWorkflowJob().trigger()`.
965
+ * Cleared on dispose / reset.
966
+ * @param env - Env passed to job bodies.
967
+ */
968
+ setEnv(env) {
969
+ writeWorkflowTestEnv({ ...env });
970
+ },
971
+ /**
972
+ * Configure how `resolve` runs the user-supplied callback. Default: callback
973
+ * is not invoked (records the call only).
974
+ * @param handler - Function invoked per `resolve` call
975
+ */
976
+ setResolveHandler(handler) {
977
+ resolve.mockImplementation(async (executionId, key, callback) => {
978
+ await handler(executionId, key, callback);
979
+ });
980
+ },
981
+ /**
982
+ * `wait` calls reshaped as `{ key, payload }` for assertions.
983
+ * @returns Wait call records
984
+ */
985
+ get waitCalls() {
986
+ return wait.mock.calls.map(([key, payload]) => ({
987
+ key,
988
+ payload
989
+ }));
990
+ },
991
+ /**
992
+ * `resolve` calls reshaped as `{ executionId, key }` for assertions.
993
+ * @returns Resolve call records
994
+ */
995
+ get resolveCalls() {
996
+ return resolve.mock.calls.map(([executionId, key]) => ({
997
+ executionId,
998
+ key
999
+ }));
1000
+ },
1001
+ /** Reset all workflow responses and recorded calls (keeps the mock installed). */
1002
+ reset() {
1003
+ triggerJobFunction.mockReset();
1004
+ triggerJobFunction.mockImplementation(defaultTriggerJob);
1005
+ triggerWorkflow.mockReset();
1006
+ triggerWorkflow.mockImplementation(defaultTriggerWorkflow);
1007
+ resumeWorkflow.mockReset();
1008
+ resumeWorkflow.mockImplementation(defaultResumeWorkflow);
1009
+ wait.mockReset();
1010
+ wait.mockImplementation(() => null);
1011
+ resolve.mockReset();
1012
+ resolve.mockImplementation(async () => {});
1013
+ clearWorkflowTestEnv();
1014
+ }
1015
+ }, () => {
1016
+ root.workflow = prev;
1017
+ clearWorkflowTestEnv();
1018
+ });
1019
+ }
1020
+
294
1021
  //#endregion
295
1022
  //#region src/vitest/workflow-local.ts
296
1023
  var PendingTrigger = class {
@@ -404,6 +1131,10 @@ function createLocalWorkflowRuntime(previous, triggerJobFunction) {
404
1131
  platformSerialize(args);
405
1132
  return TRIGGER_DEFAULT;
406
1133
  },
1134
+ resumeWorkflow: async (executionId) => {
1135
+ if (previous) return await previous.resumeWorkflow(executionId);
1136
+ return executionId;
1137
+ },
407
1138
  wait: (key, payload) => {
408
1139
  if (previous) return previous.wait(key, payload);
409
1140
  throw new Error(`No wait handler for "${key}". Acquire mockWorkflow() and call setWaitHandler(...).`);
@@ -608,7 +1339,7 @@ function createKyselyMock() {
608
1339
  *
609
1340
  * 3. **Platform API mocks** (environment) — All platform APIs are auto-injected with
610
1341
  * control objects: `mockTailordb`, `mockWorkflow`, `mockSecretmanager`,
611
- * `mockAuthconnection`, `mockIdp`, `mockFile`, `mockIconv`. Each
1342
+ * `mockAuthconnection`, `mockIdp`, `mockFile`, `mockIconv`, `mockAigateway`. Each
612
1343
  * provides response configuration, call recording, and reset.
613
1344
  *
614
1345
  * 4. **Environment resolution** — Rewrites `environment: "tailor-runtime"` to the
@@ -646,5 +1377,5 @@ function tailorRuntime(options) {
646
1377
  }
647
1378
 
648
1379
  //#endregion
649
- export { createKyselyMock, mockAuthconnection, mockFile, mockIconv, mockIdp, mockSecretmanager, mockTailordb, mockWorkflow, runWorkflowLocally, tailorRuntime };
1380
+ export { createKyselyMock, mockAigateway, mockAuthconnection, mockFile, mockIconv, mockIdp, mockSecretmanager, mockTailordb, mockWorkflow, runWorkflowLocally, tailorRuntime };
650
1381
  //# sourceMappingURL=index.mjs.map