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

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 (471) hide show
  1. package/CHANGELOG.md +869 -2
  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-DArFTTJ9.mjs +3 -0
  7. package/dist/{application-DqS1yBg3.mjs → application-miwiXtB4.mjs} +1892 -1968
  8. package/dist/application-miwiXtB4.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 +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 +34 -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 +7 -0
  25. package/dist/cli/commands/deploy/idp.d.mts +5 -0
  26. package/dist/cli/commands/deploy/resolver.d.mts +5 -0
  27. package/dist/cli/commands/deploy/secret-manager.d.mts +5 -0
  28. package/dist/cli/commands/deploy/staticwebsite.d.mts +5 -0
  29. package/dist/cli/commands/deploy/tailordb/index.d.mts +9 -0
  30. package/dist/cli/commands/deploy/types.d.mts +3 -0
  31. package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +3 -0
  32. package/dist/cli/commands/deploy/workflow.d.mts +4 -0
  33. package/dist/cli/commands/executor/get.d.mts +28 -0
  34. package/dist/cli/commands/executor/jobs.d.mts +122 -0
  35. package/dist/cli/commands/executor/list.d.mts +18 -0
  36. package/dist/cli/commands/executor/transform.d.mts +42 -0
  37. package/dist/cli/commands/executor/trigger.d.mts +40 -0
  38. package/dist/cli/commands/executor/webhook.d.mts +21 -0
  39. package/dist/cli/commands/function/get.d.mts +17 -0
  40. package/dist/cli/commands/function/list.d.mts +21 -0
  41. package/dist/cli/commands/function/transform.d.mts +12 -0
  42. package/dist/cli/commands/generate/options.d.mts +6 -0
  43. package/dist/cli/commands/generate/seed/bundler.d.mts +26 -0
  44. package/dist/cli/commands/generate/service.d.mts +15 -0
  45. package/dist/cli/commands/machineuser/list.d.mts +26 -0
  46. package/dist/cli/commands/machineuser/token.d.mts +21 -0
  47. package/dist/cli/commands/oauth2client/get.d.mts +17 -0
  48. package/dist/cli/commands/oauth2client/list.d.mts +19 -0
  49. package/dist/cli/commands/oauth2client/transform.d.mts +21 -0
  50. package/dist/cli/commands/organization/folder/create.d.mts +17 -0
  51. package/dist/cli/commands/organization/folder/delete.d.mts +15 -0
  52. package/dist/cli/commands/organization/folder/get.d.mts +16 -0
  53. package/dist/cli/commands/organization/folder/list.d.mts +21 -0
  54. package/dist/cli/commands/organization/folder/update.d.mts +17 -0
  55. package/dist/cli/commands/organization/get.d.mts +15 -0
  56. package/dist/cli/commands/organization/list.d.mts +14 -0
  57. package/dist/cli/commands/organization/transform.d.mts +29 -0
  58. package/dist/cli/commands/organization/tree.d.mts +24 -0
  59. package/dist/cli/commands/organization/update.d.mts +16 -0
  60. package/dist/cli/commands/remove.d.mts +15 -0
  61. package/dist/cli/commands/show.d.mts +39 -0
  62. package/dist/cli/commands/staticwebsite/deploy.d.mts +19 -0
  63. package/dist/cli/commands/tailordb/migrate/bundler.d.mts +29 -0
  64. package/dist/cli/commands/tailordb/migrate/config.d.mts +18 -0
  65. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +246 -0
  66. package/dist/cli/commands/tailordb/migrate/generate.d.mts +16 -0
  67. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +208 -0
  68. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
  69. package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
  70. package/dist/cli/commands/tailordb/truncate.d.mts +18 -0
  71. package/dist/cli/commands/workflow/executions.d.mts +74 -0
  72. package/dist/cli/commands/workflow/get.d.mts +30 -0
  73. package/dist/cli/commands/workflow/list.d.mts +18 -0
  74. package/dist/cli/commands/workflow/resume.d.mts +22 -0
  75. package/dist/cli/commands/workflow/start.d.mts +60 -0
  76. package/dist/cli/commands/workflow/status.d.mts +6 -0
  77. package/dist/cli/commands/workflow/transform.d.mts +34 -0
  78. package/dist/cli/commands/workflow/wait.d.mts +15 -0
  79. package/dist/cli/commands/workflow/waiter.d.mts +23 -0
  80. package/dist/cli/commands/workspace/app/health.d.mts +17 -0
  81. package/dist/cli/commands/workspace/app/list.d.mts +21 -0
  82. package/dist/cli/commands/workspace/app/transform.d.mts +20 -0
  83. package/dist/cli/commands/workspace/create.d.mts +27 -0
  84. package/dist/cli/commands/workspace/delete.d.mts +14 -0
  85. package/dist/cli/commands/workspace/get.d.mts +16 -0
  86. package/dist/cli/commands/workspace/list.d.mts +17 -0
  87. package/dist/cli/commands/workspace/restore.d.mts +14 -0
  88. package/dist/cli/commands/workspace/transform.d.mts +20 -0
  89. package/dist/cli/commands/workspace/user/invite.d.mts +21 -0
  90. package/dist/cli/commands/workspace/user/list.d.mts +21 -0
  91. package/dist/cli/commands/workspace/user/remove.d.mts +16 -0
  92. package/dist/cli/commands/workspace/user/transform.d.mts +9 -0
  93. package/dist/cli/commands/workspace/user/update.d.mts +21 -0
  94. package/dist/cli/index.mjs +12 -5481
  95. package/dist/cli/lib.d.mts +90 -21048
  96. package/dist/cli/lib.mjs +154 -12
  97. package/dist/cli/lib.mjs.map +1 -1
  98. package/dist/cli/main.d.mts +23 -0
  99. package/dist/cli/main.mjs +6583 -0
  100. package/dist/cli/main.mjs.map +1 -0
  101. package/dist/cli/query/index.d.mts +38 -0
  102. package/dist/cli/services/application.d.mts +12 -0
  103. package/dist/cli/services/auth/service.d.mts +3 -0
  104. package/dist/cli/services/executor/service.d.mts +1 -0
  105. package/dist/cli/services/http-adapter/bundler.d.mts +3 -0
  106. package/dist/cli/services/http-adapter/service.d.mts +2 -0
  107. package/dist/cli/services/resolver/service.d.mts +1 -0
  108. package/dist/cli/services/tailordb/service.d.mts +3 -0
  109. package/dist/cli/services/workflow/bundler.d.mts +2 -0
  110. package/dist/cli/services/workflow/service.d.mts +1 -0
  111. package/dist/cli/shared/args.d.mts +13 -0
  112. package/dist/cli/shared/client.d.mts +1273 -0
  113. package/dist/cli/shared/config-loader.d.mts +25 -0
  114. package/dist/cli/shared/context.d.mts +29 -0
  115. package/dist/cli/shared/error-json.d.mts +23 -0
  116. package/dist/cli/shared/readonly-guard.d.mts +25 -0
  117. package/dist/cli/shared/script-executor.d.mts +77 -0
  118. package/dist/cli/shared/seed-chunker.d.mts +45 -0
  119. package/dist/cli/shared/seed-context.d.mts +49 -0
  120. package/dist/cli/shared/tailordb-namespaces.d.mts +40 -0
  121. package/dist/cli/shared/type-generator.d.mts +19 -0
  122. package/dist/cli/shared/workspace-name.d.mts +1 -0
  123. package/dist/cli/ts-hook.d.mts +4 -0
  124. package/dist/cli/ts-hook.mjs +333 -0
  125. package/dist/completion/zsh-worker.zsh +1433 -1239
  126. package/dist/configure/config/index.d.mts +20 -0
  127. package/dist/configure/config/types.d.mts +111 -0
  128. package/dist/configure/index.d.mts +135 -8
  129. package/dist/configure/index.mjs +390 -36
  130. package/dist/configure/index.mjs.map +1 -1
  131. package/dist/configure/services/aigateway/index.d.mts +16 -0
  132. package/dist/configure/services/aigateway/types.d.mts +10 -0
  133. package/dist/configure/services/auth/index.d.mts +33 -0
  134. package/dist/configure/services/auth/types.d.mts +168 -0
  135. package/dist/configure/services/executor/executor.d.mts +70 -0
  136. package/dist/configure/services/executor/index.d.mts +9 -0
  137. package/dist/configure/services/executor/operation.d.mts +50 -0
  138. package/dist/configure/services/executor/trigger/event.d.mts +271 -0
  139. package/dist/configure/services/executor/trigger/index.d.mts +7 -0
  140. package/dist/configure/services/executor/trigger/schedule.d.mts +24 -0
  141. package/dist/configure/services/executor/trigger/webhook.d.mts +43 -0
  142. package/dist/configure/services/executor/types.d.mts +2 -0
  143. package/dist/configure/services/http-adapter/http-adapter.d.mts +124 -0
  144. package/dist/configure/services/http-adapter/index.d.mts +2 -0
  145. package/dist/configure/services/idp/index.d.mts +60 -0
  146. package/dist/configure/services/idp/permission.d.mts +64 -0
  147. package/dist/configure/services/idp/types.d.mts +23 -0
  148. package/dist/configure/services/index.d.mts +40 -0
  149. package/dist/configure/services/resolver/index.d.mts +6 -0
  150. package/dist/configure/services/resolver/permission.d.mts +64 -0
  151. package/dist/configure/services/resolver/resolver.d.mts +88 -0
  152. package/dist/configure/services/resolver/types.d.mts +5 -0
  153. package/dist/configure/services/secrets/index.d.mts +37 -0
  154. package/dist/configure/services/secrets/types.d.mts +10 -0
  155. package/dist/configure/services/staticwebsite/index.d.mts +18 -0
  156. package/dist/configure/services/staticwebsite/types.d.mts +10 -0
  157. package/dist/configure/services/tailordb/index.d.mts +4 -0
  158. package/dist/configure/services/tailordb/permission.d.mts +103 -0
  159. package/dist/configure/services/tailordb/schema.d.mts +486 -0
  160. package/dist/configure/services/tailordb/types.d.mts +198 -0
  161. package/dist/configure/services/workflow/execution-policy.d.mts +70 -0
  162. package/dist/configure/services/workflow/execution-policy.types.d.mts +103 -0
  163. package/dist/configure/services/workflow/index.d.mts +9 -0
  164. package/dist/configure/services/workflow/job.d.mts +83 -0
  165. package/dist/configure/services/workflow/types.d.mts +2 -0
  166. package/dist/configure/services/workflow/wait-point.d.mts +72 -0
  167. package/dist/configure/services/workflow/workflow.d.mts +56 -0
  168. package/dist/configure/types/aigateway-name.d.mts +12 -0
  169. package/dist/configure/types/connection-name.d.mts +12 -0
  170. package/dist/configure/types/field.d.mts +8 -0
  171. package/dist/configure/types/field.types.d.mts +70 -0
  172. package/dist/configure/types/idp-name.d.mts +12 -0
  173. package/dist/configure/types/index.d.mts +5 -0
  174. package/dist/configure/types/machine-user.d.mts +2 -0
  175. package/dist/configure/types/permission-operand.types.d.mts +20 -0
  176. package/dist/configure/types/type.d.mts +73 -0
  177. package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
  178. package/dist/context-DYQVYWqZ.mjs.map +1 -0
  179. package/dist/{crashreport-BsjAkFWw.mjs → crashreport-B5LqCTfF.mjs} +10 -11
  180. package/dist/{crashreport-BsjAkFWw.mjs.map → crashreport-B5LqCTfF.mjs.map} +1 -1
  181. package/dist/{crashreport-pr6Rhvza.mjs → crashreport-eI7ty7ok.mjs} +1 -1
  182. package/dist/enum-constants-j9QBF0cB.mjs.map +1 -1
  183. package/dist/{errors-Dtf2WPaW.mjs → errors-D7583Zz7.mjs} +18 -2
  184. package/dist/errors-D7583Zz7.mjs.map +1 -0
  185. package/dist/{file-_oUZo76X.mjs → file-BUcmVIH2.mjs} +12 -22
  186. package/dist/file-BUcmVIH2.mjs.map +1 -0
  187. package/dist/{file-utils-DcyIPFQh.mjs → file-utils-yEiIS4nJ.mjs} +6 -6
  188. package/dist/file-utils-yEiIS4nJ.mjs.map +1 -0
  189. package/dist/{globals-Crz8o65k.mjs → globals-DQotNuwK.mjs} +33 -55
  190. package/dist/globals-DQotNuwK.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/{kysely-type-DR8uzZTA.mjs → kysely-type-DqIRgDYR.mjs} +5 -4
  199. package/dist/kysely-type-DqIRgDYR.mjs.map +1 -0
  200. package/dist/logger-BtX0suGY.mjs +48 -0
  201. package/dist/logger-BtX0suGY.mjs.map +1 -0
  202. package/dist/logger-CXQq9YIp.mjs +317 -0
  203. package/dist/logger-CXQq9YIp.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/file-utils/index.d.mts +15 -1
  215. package/dist/plugin/builtin/file-utils/index.mjs +1 -1
  216. package/dist/plugin/builtin/kysely-type/index.d.mts +15 -1
  217. package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
  218. package/dist/plugin/builtin/seed/index.d.mts +46 -2
  219. package/dist/plugin/builtin/seed/index.mjs +1 -1
  220. package/dist/plugin/builtin/seed/seed-type-processor.d.mts +19 -0
  221. package/dist/plugin/builtin/seed/types.d.mts +2 -0
  222. package/dist/plugin/get-generated-type.d.mts +16 -0
  223. package/dist/plugin/index.d.mts +3 -117
  224. package/dist/plugin/index.mjs +1 -1
  225. package/dist/plugin/index.mjs.map +1 -1
  226. package/dist/plugin/manager.d.mts +2 -0
  227. package/dist/plugin/types.d.mts +242 -0
  228. package/dist/plugin/with-context.d.mts +101 -0
  229. package/dist/{runtime-n9NCkjee.mjs → register-ts-hook-BAHMwxfG.mjs} +7812 -4094
  230. package/dist/register-ts-hook-BAHMwxfG.mjs.map +1 -0
  231. package/dist/{registry-DdsYlL_P.mjs → registry-BIGVUrMB.mjs} +12 -9
  232. package/dist/registry-BIGVUrMB.mjs.map +1 -0
  233. package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
  234. package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  235. package/dist/runtime/aigateway.d.mts +25 -0
  236. package/dist/runtime/aigateway.mjs +3 -0
  237. package/dist/runtime/authconnection.d.mts +21 -2
  238. package/dist/runtime/authconnection.mjs +2 -2
  239. package/dist/runtime/context.d.mts +54 -2
  240. package/dist/runtime/context.mjs +2 -2
  241. package/dist/runtime/field-parse.d.mts +10 -0
  242. package/dist/runtime/file.d.mts +170 -2
  243. package/dist/runtime/file.mjs +2 -2
  244. package/dist/runtime/globals.d.mts +38 -20
  245. package/dist/runtime/iconv.d.mts +73 -2
  246. package/dist/runtime/iconv.mjs +2 -2
  247. package/dist/runtime/idp.d.mts +129 -2
  248. package/dist/runtime/idp.mjs +2 -2
  249. package/dist/runtime/index.d.mts +48 -9
  250. package/dist/runtime/index.mjs +10 -8
  251. package/dist/runtime/logger.d.mts +98 -0
  252. package/dist/runtime/logger.mjs +3 -0
  253. package/dist/runtime/secretmanager.d.mts +41 -2
  254. package/dist/runtime/secretmanager.mjs +2 -2
  255. package/dist/runtime/types.d.mts +25 -0
  256. package/dist/runtime/workflow.d.mts +124 -2
  257. package/dist/runtime/workflow.mjs +2 -2
  258. package/dist/{schema-BhkpP5Hw.mjs → schema--xYWRGfe.mjs} +288 -229
  259. package/dist/schema--xYWRGfe.mjs.map +1 -0
  260. package/dist/{secret-file-DBqZhjFQ.mjs → secret-file-C3J4Gy8r.mjs} +2 -2
  261. package/dist/{secret-file-DBqZhjFQ.mjs.map → secret-file-C3J4Gy8r.mjs.map} +1 -1
  262. package/dist/secretmanager-CYlpffsz.mjs +13 -0
  263. package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
  264. package/dist/secretmanager-IY4UvinW.mjs +131 -0
  265. package/dist/secretmanager-IY4UvinW.mjs.map +1 -0
  266. package/dist/seed/index.d.mts +4 -4
  267. package/dist/seed-LUVr7jHL.mjs +444 -0
  268. package/dist/seed-LUVr7jHL.mjs.map +1 -0
  269. package/dist/{service-DU1mVzri.mjs → service-B5WynBHQ.mjs} +3 -3
  270. package/dist/{service-DU1mVzri.mjs.map → service-B5WynBHQ.mjs.map} +1 -1
  271. package/dist/service-BNtPsK9Q.mjs +837 -0
  272. package/dist/service-BNtPsK9Q.mjs.map +1 -0
  273. package/dist/service-D5jn05ZI.mjs +3 -0
  274. package/dist/service_pb-BwZRiNug.mjs +167 -0
  275. package/dist/service_pb-BwZRiNug.mjs.map +1 -0
  276. package/dist/service_pb-wRkxUta6.mjs +3 -0
  277. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +203 -0
  278. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +57 -0
  279. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +315 -0
  280. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +160 -0
  281. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2069 -0
  282. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +865 -0
  283. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +111 -0
  284. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +68 -0
  285. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +438 -0
  286. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +563 -0
  287. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +144 -0
  288. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +450 -0
  289. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +191 -0
  290. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +49 -0
  291. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +406 -0
  292. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +429 -0
  293. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +72 -0
  294. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +16 -0
  295. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +308 -0
  296. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +590 -0
  297. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +329 -0
  298. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +112 -0
  299. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +345 -0
  300. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +53 -0
  301. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3575 -0
  302. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +186 -0
  303. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +28 -0
  304. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +428 -0
  305. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +89 -0
  306. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +683 -0
  307. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +796 -0
  308. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +329 -0
  309. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +182 -0
  310. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +861 -0
  311. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +309 -0
  312. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2014 -0
  313. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +482 -0
  314. package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
  315. package/dist/telemetry-BRVdwh14.mjs.map +1 -0
  316. package/dist/telemetry-CkbkeJxl.mjs +3 -0
  317. package/dist/test-env-key-D7UkZp99.mjs +75 -0
  318. package/dist/test-env-key-D7UkZp99.mjs.map +1 -0
  319. package/dist/types/aigateway.generated.d.mts +12 -0
  320. package/dist/types/app-config.generated.d.mts +4 -0
  321. package/dist/types/auth-connection.generated.d.mts +33 -0
  322. package/dist/types/auth.generated.d.mts +188 -0
  323. package/dist/types/executor.generated.d.mts +209 -0
  324. package/dist/types/helpers.d.mts +40 -0
  325. package/dist/types/http-adapter.generated.d.mts +28 -0
  326. package/dist/types/idp.generated.d.mts +626 -0
  327. package/dist/types/resolver.generated.d.mts +82 -0
  328. package/dist/types/secrets.generated.d.mts +14 -0
  329. package/dist/types/staticwebsite.generated.d.mts +14 -0
  330. package/dist/types/tailordb.generated.d.mts +468 -0
  331. package/dist/types/workflow.generated.d.mts +17 -0
  332. package/dist/user-agent-Bgsszb5I.mjs +28 -0
  333. package/dist/user-agent-Bgsszb5I.mjs.map +1 -0
  334. package/dist/utils/test/index.d.mts +6 -100
  335. package/dist/utils/test/index.mjs +60 -39
  336. package/dist/utils/test/index.mjs.map +1 -1
  337. package/dist/utils/test/mock.d.mts +86 -0
  338. package/dist/vitest/environment.d.mts +1 -2
  339. package/dist/vitest/environment.mjs +2 -2
  340. package/dist/vitest/environment.mjs.map +1 -1
  341. package/dist/vitest/index.d.mts +15 -429
  342. package/dist/vitest/index.mjs +1240 -31
  343. package/dist/vitest/index.mjs.map +1 -1
  344. package/dist/vitest/mock-kysely.d.mts +61 -0
  345. package/dist/vitest/mock.d.mts +10 -0
  346. package/dist/vitest/mocks/aigateway.d.mts +40 -0
  347. package/dist/vitest/mocks/authconnection.d.mts +38 -0
  348. package/dist/vitest/mocks/file.d.mts +58 -0
  349. package/dist/vitest/mocks/iconv.d.mts +51 -0
  350. package/dist/vitest/mocks/idp.d.mts +60 -0
  351. package/dist/vitest/mocks/logger.d.mts +45 -0
  352. package/dist/vitest/mocks/secretmanager.d.mts +44 -0
  353. package/dist/vitest/mocks/tailordb.d.mts +115 -0
  354. package/dist/vitest/mocks/workflow.d.mts +157 -0
  355. package/dist/vitest/setup.d.mts +1 -2
  356. package/dist/vitest/setup.mjs +2 -2
  357. package/dist/vitest/workflow-local.d.mts +41 -0
  358. package/dist/workflow-CsaQ9qK-.mjs +42 -0
  359. package/dist/workflow-CsaQ9qK-.mjs.map +1 -0
  360. package/dist/{client-z_oHGVNy.mjs → workspace_resource_pb-UGK1SSn_.mjs} +55 -619
  361. package/dist/workspace_resource_pb-UGK1SSn_.mjs.map +1 -0
  362. package/docs/cli/application.md +150 -250
  363. package/docs/cli/auth.md +51 -295
  364. package/docs/cli/completion.md +1 -25
  365. package/docs/cli/crashreport.md +3 -61
  366. package/docs/cli/executor.md +72 -183
  367. package/docs/cli/function.md +16 -132
  368. package/docs/cli/organization.md +11 -221
  369. package/docs/cli/plugin.md +29 -0
  370. package/docs/cli/query.md +2 -22
  371. package/docs/cli/secret.md +71 -251
  372. package/docs/cli/setup.md +138 -40
  373. package/docs/cli/skills.md +50 -39
  374. package/docs/cli/staticwebsite.md +32 -180
  375. package/docs/cli/tailordb.md +71 -427
  376. package/docs/cli/upgrade.md +2 -22
  377. package/docs/cli/user.md +78 -247
  378. package/docs/cli/workflow.md +150 -172
  379. package/docs/cli/workspace.md +167 -538
  380. package/docs/cli-reference.md +213 -96
  381. package/docs/configuration.md +40 -6
  382. package/docs/github-actions.md +72 -24
  383. package/docs/migration/v2.md +1316 -0
  384. package/docs/multi-environment.md +29 -7
  385. package/docs/plugin/custom.md +4 -4
  386. package/docs/plugin/index.md +8 -8
  387. package/docs/quickstart.md +8 -7
  388. package/docs/runtime.md +18 -9
  389. package/docs/services/aigateway.md +20 -2
  390. package/docs/services/auth.md +51 -59
  391. package/docs/services/executor.md +8 -3
  392. package/docs/services/http-adapter.md +16 -1
  393. package/docs/services/idp.md +55 -2
  394. package/docs/services/resolver.md +62 -8
  395. package/docs/services/secret.md +11 -11
  396. package/docs/services/staticwebsite.md +8 -2
  397. package/docs/services/tailordb-migration.md +43 -28
  398. package/docs/services/tailordb.md +200 -99
  399. package/docs/services/workflow.md +133 -55
  400. package/docs/testing.md +244 -143
  401. package/package.json +59 -46
  402. package/postinstall.mjs +4 -6
  403. package/dist/application-DB2r36Et.mjs +0 -3
  404. package/dist/application-DqS1yBg3.mjs.map +0 -1
  405. package/dist/authconnection-D2MhtTN5.mjs +0 -15
  406. package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
  407. package/dist/authconnection-DvUQAjQS.d.mts +0 -39
  408. package/dist/cli/erd-viewer-assets/app.js +0 -1181
  409. package/dist/cli/erd-viewer-assets/index.html +0 -73
  410. package/dist/cli/erd-viewer-assets/serve.json +0 -13
  411. package/dist/cli/erd-viewer-assets/styles.css +0 -789
  412. package/dist/cli/index.d.mts +0 -5
  413. package/dist/cli/index.mjs.map +0 -1
  414. package/dist/client-Dbohmtkv.mjs +0 -3
  415. package/dist/client-z_oHGVNy.mjs.map +0 -1
  416. package/dist/context-Bd266-ru.mjs.map +0 -1
  417. package/dist/context-BuuIb8CC.d.mts +0 -68
  418. package/dist/errors-Dtf2WPaW.mjs.map +0 -1
  419. package/dist/field-DOsJCPFa.mjs +0 -22
  420. package/dist/field-DOsJCPFa.mjs.map +0 -1
  421. package/dist/file-BB8Vs9O_.d.mts +0 -250
  422. package/dist/file-_oUZo76X.mjs.map +0 -1
  423. package/dist/file-utils-DcyIPFQh.mjs.map +0 -1
  424. package/dist/globals-Crz8o65k.mjs.map +0 -1
  425. package/dist/http-adapter.generated-WgMnb7Sb.d.mts +0 -580
  426. package/dist/iconv-Co-TOPuH.d.mts +0 -122
  427. package/dist/iconv-D2vi8G36.mjs +0 -63
  428. package/dist/iconv-D2vi8G36.mjs.map +0 -1
  429. package/dist/idp-BDbK5gjm.mjs.map +0 -1
  430. package/dist/idp-DrhVrLmV.d.mts +0 -160
  431. package/dist/index-5vPyRu1y.d.mts +0 -18
  432. package/dist/index-B7AKc18V.d.mts +0 -47
  433. package/dist/index-BlpzXncY.d.mts +0 -1016
  434. package/dist/index-CK7u9isy.d.mts +0 -46
  435. package/dist/index-CNYe5lnW.d.mts +0 -18
  436. package/dist/index-DjUdWlzf.d.mts +0 -18
  437. package/dist/index-ZePLwxw7.d.mts +0 -208
  438. package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
  439. package/dist/job-fuc3j1Ma.mjs +0 -53
  440. package/dist/job-fuc3j1Ma.mjs.map +0 -1
  441. package/dist/kysely-type-DR8uzZTA.mjs.map +0 -1
  442. package/dist/logger-CxF-Ex5d.mjs +0 -220
  443. package/dist/logger-CxF-Ex5d.mjs.map +0 -1
  444. package/dist/mock-BjFj5o1I.mjs +0 -804
  445. package/dist/mock-BjFj5o1I.mjs.map +0 -1
  446. package/dist/registry-DdsYlL_P.mjs.map +0 -1
  447. package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
  448. package/dist/runtime-n9NCkjee.mjs.map +0 -1
  449. package/dist/schema-BhkpP5Hw.mjs.map +0 -1
  450. package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
  451. package/dist/secretmanager-BVxw3ih_.mjs +0 -24
  452. package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
  453. package/dist/seed-jf3008-h.mjs +0 -1160
  454. package/dist/seed-jf3008-h.mjs.map +0 -1
  455. package/dist/service-CCL8ruDf.mjs +0 -459
  456. package/dist/service-CCL8ruDf.mjs.map +0 -1
  457. package/dist/service-D6yonf2I.mjs +0 -3
  458. package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
  459. package/dist/telemetry-ClwW5ohF.mjs +0 -3
  460. package/dist/test-env-key-D9kM6ETE.mjs +0 -49
  461. package/dist/test-env-key-D9kM6ETE.mjs.map +0 -1
  462. package/dist/types-B2RpYyA_.mjs +0 -371
  463. package/dist/types-B2RpYyA_.mjs.map +0 -1
  464. package/dist/types-ClhIrW_C.mjs +0 -4
  465. package/dist/types-DCUhgpyI.d.mts +0 -784
  466. package/dist/types-DhO_VEZd.d.mts +0 -574
  467. package/dist/types-DwDgacni.d.mts +0 -338
  468. package/dist/workflow-BbKvGLQg.d.mts +0 -96
  469. package/dist/workflow-DgemCAz3.mjs +0 -38
  470. package/dist/workflow-DgemCAz3.mjs.map +0 -1
  471. package/dist/workflow.generated-DtQwEo-x.d.mts +0 -671
@@ -1,46 +0,0 @@
1
- import { t as TailorAuthconnectionAPI } from "./authconnection-DvUQAjQS.mjs";
2
- import { r as TailorContextAPI } from "./context-BuuIb8CC.mjs";
3
- import { f as TailorDBFileAPI } from "./file-BB8Vs9O_.mjs";
4
- import { i as TailorIconvAPI } from "./iconv-Co-TOPuH.mjs";
5
- import { l as TailorIdpAPI } from "./idp-DrhVrLmV.mjs";
6
- import { t as TailorSecretmanagerAPI } from "./secretmanager-B3n4KHfm.mjs";
7
- import { n as TailorWorkflowAPI } from "./workflow-BbKvGLQg.mjs";
8
-
9
- //#region src/runtime/index.d.ts
10
- /** SQL command type recorded on a {@link TailordbQueryResult}. */
11
- type TailordbCommandType = "INSERT" | "DELETE" | "UPDATE" | "SELECT" | "MOVE" | "FETCH" | "COPY" | "CREATE";
12
- /** Result of a single `queryObject` call against the TailorDB driver. */
13
- interface TailordbQueryResult<T> {
14
- rows: T[];
15
- command: TailordbCommandType;
16
- rowCount: number;
17
- }
18
- /** Instance methods exposed by `tailordb.Client`. */
19
- interface TailordbClientInstance {
20
- connect(): Promise<void>;
21
- end(): Promise<void>;
22
- queryObject<O>(sql: string, args?: readonly unknown[]): Promise<TailordbQueryResult<O>>;
23
- }
24
- /** Constructor shape for `tailordb.Client`. */
25
- interface TailordbClientConstructor {
26
- new (config: {
27
- namespace: string;
28
- }): TailordbClientInstance;
29
- }
30
- /** Top-level `tailor` runtime object. */
31
- interface TailorRuntime {
32
- secretmanager: TailorSecretmanagerAPI;
33
- authconnection: TailorAuthconnectionAPI;
34
- iconv: TailorIconvAPI;
35
- idp: TailorIdpAPI;
36
- workflow: TailorWorkflowAPI;
37
- context: TailorContextAPI;
38
- }
39
- /** Top-level `tailordb` runtime object. */
40
- interface TailordbRuntime {
41
- Client: TailordbClientConstructor;
42
- file: TailorDBFileAPI;
43
- }
44
- //#endregion
45
- export { TailordbQueryResult as a, TailordbCommandType as i, TailordbClientConstructor as n, TailordbRuntime as o, TailordbClientInstance as r, TailorRuntime as t };
46
- //# sourceMappingURL=index-CK7u9isy.d.mts.map
@@ -1,18 +0,0 @@
1
- import { i as Plugin } from "./types-DhO_VEZd.mjs";
2
-
3
- //#region src/plugin/builtin/file-utils/index.d.ts
4
- /** Unique identifier for the file utilities generator plugin. */
5
- declare const FileUtilsGeneratorID = "@tailor-platform/file-utils";
6
- type FileUtilsPluginOptions = {
7
- distPath: string;
8
- };
9
- /**
10
- * Plugin that generates TypeWithFiles interface from TailorDB type definitions.
11
- * @param options - Plugin options
12
- * @param options.distPath - Output file path for generated file utilities
13
- * @returns Plugin instance with onTailorDBReady hook
14
- */
15
- declare function fileUtilsPlugin(options: FileUtilsPluginOptions): Plugin<unknown, FileUtilsPluginOptions>;
16
- //#endregion
17
- export { fileUtilsPlugin as n, FileUtilsGeneratorID as t };
18
- //# sourceMappingURL=index-CNYe5lnW.d.mts.map
@@ -1,18 +0,0 @@
1
- import { i as Plugin } from "./types-DhO_VEZd.mjs";
2
-
3
- //#region src/plugin/builtin/enum-constants/index.d.ts
4
- /** Unique identifier for the enum constants generator plugin. */
5
- declare const EnumConstantsGeneratorID = "@tailor-platform/enum-constants";
6
- type EnumConstantsPluginOptions = {
7
- distPath: string;
8
- };
9
- /**
10
- * Plugin that generates enum constants from TailorDB type definitions.
11
- * @param options - Plugin options
12
- * @param options.distPath - Output file path for generated constants
13
- * @returns Plugin instance with onTailorDBReady hook
14
- */
15
- declare function enumConstantsPlugin(options: EnumConstantsPluginOptions): Plugin<unknown, EnumConstantsPluginOptions>;
16
- //#endregion
17
- export { enumConstantsPlugin as n, EnumConstantsGeneratorID as t };
18
- //# sourceMappingURL=index-DjUdWlzf.d.mts.map
@@ -1,208 +0,0 @@
1
- import { H as TailorInvoker, M as JsonCompatible, V as TailorEnv } from "./types-DCUhgpyI.mjs";
2
- import { f as MachineUserName } from "./types-DwDgacni.mjs";
3
- import { n as RetryPolicy, t as ConcurrencyPolicy } from "./workflow.generated-DtQwEo-x.mjs";
4
-
5
- //#region src/configure/services/workflow/test-env-key.d.ts
6
- /**
7
- * Env-var fallback read by `runWorkflowLocally()` when `mockWorkflow().setEnv()` is unset.
8
- * @deprecated Use `mockWorkflow().setEnv()` from `@tailor-platform/sdk/vitest`.
9
- * @internal
10
- */
11
- declare const WORKFLOW_TEST_ENV_KEY = "TAILOR_TEST_WORKFLOW_ENV";
12
- //#endregion
13
- //#region src/configure/services/workflow/job.d.ts
14
- /**
15
- * Context object passed as the second argument to workflow job body functions.
16
- */
17
- type WorkflowJobContext = {
18
- env: TailorEnv;
19
- invoker?: TailorInvoker;
20
- };
21
- /**
22
- * The body function type for a workflow job.
23
- * Resolves to the callable signature when `I` / `O` are JsonValue-compatible,
24
- * or to a template-literal error string that surfaces at the `body:` property.
25
- */
26
- type JobBody<I, O> = [null] extends [I] ? "ERROR: Input cannot be null at the top level" : [I] extends [undefined] ? [O] extends [JsonCompatible<O> | undefined | void] ? (input: I, context: WorkflowJobContext) => O | Promise<O> : "ERROR: Output must be JsonValue-compatible (plain objects/arrays; no class instances or functions)" : [undefined] extends [I] ? "ERROR: Input cannot include undefined at the top level" : [I] extends [JsonCompatible<I>] ? [O] extends [JsonCompatible<O> | undefined | void] ? (input: I, context: WorkflowJobContext) => O | Promise<O> : "ERROR: Output must be JsonValue-compatible (plain objects/arrays; no class instances or functions)" : "ERROR: Input must be JsonValue-compatible (plain objects/arrays; no class instances or functions)";
27
- /**
28
- * WorkflowJob represents a job that can be triggered in a workflow.
29
- *
30
- * Type constraints:
31
- * - Input: Must be JsonValue-compatible (plain objects/arrays; no class instances or functions) or undefined.
32
- * - Output: Must be JsonValue-compatible (plain objects/arrays; no class instances or functions), undefined, or void.
33
- * - Trigger returns `Awaited<Output>` as-is (no Promise or Jsonify transformation).
34
- */
35
- interface WorkflowJob<Name extends string = string, Input = undefined, Output = undefined> {
36
- name: Name;
37
- /**
38
- * Trigger this job with the given input and return the job's output value.
39
- * @example
40
- * body: async (input) => {
41
- * const a = jobA.trigger({ id: input.id });
42
- * const b = jobB.trigger({ id: input.id });
43
- * return { a, b };
44
- * }
45
- */
46
- trigger: [Input] extends [undefined] ? () => Awaited<Output> : (input: Input) => Awaited<Output>;
47
- body: (input: Input, context: WorkflowJobContext) => Output | Promise<Output>;
48
- }
49
- interface CreateWorkflowJobConfig<Name extends string, I, O> {
50
- readonly name: Name;
51
- readonly body: JobBody<I, O>;
52
- }
53
- /**
54
- * Create a workflow job definition.
55
- *
56
- * All jobs must be named exports from the workflow file.
57
- * Job names must be unique across the entire project.
58
- *
59
- * Input and output must be JsonValue-compatible (primitives, plain objects, arrays).
60
- * Functions and objects with a `toJSON` method are rejected at the type level;
61
- * class instances exposing methods are rejected via the property walk.
62
- * @param config - Job configuration with name and body function.
63
- * @param config.name - Unique job name across the project.
64
- * @param config.body - Function that processes the job input.
65
- * @returns A WorkflowJob that can be triggered from other jobs.
66
- * @example
67
- * // Simple job with async body:
68
- * export const fetchData = createWorkflowJob({
69
- * name: "fetch-data",
70
- * body: async (input: { id: string }) => {
71
- * const db = getDB("tailordb");
72
- * return await db.selectFrom("Table").selectAll().where("id", "=", input.id).executeTakeFirst();
73
- * },
74
- * });
75
- * @example
76
- * // Orchestrator job that fans out to other jobs.
77
- * export const orchestrate = createWorkflowJob({
78
- * name: "orchestrate",
79
- * body: (input: { orderId: string }) => {
80
- * const inventory = checkInventory.trigger({ orderId: input.orderId });
81
- * const payment = processPayment.trigger({ orderId: input.orderId });
82
- * return { inventory, payment };
83
- * },
84
- * });
85
- */
86
- declare function createWorkflowJob<const Name extends string, I = undefined, O = undefined>(config: CreateWorkflowJobConfig<Name, I, O>): WorkflowJob<Name, I, Awaited<O>>;
87
- //#endregion
88
- //#region src/configure/services/workflow/workflow.d.ts
89
- interface WorkflowConfig<Job extends WorkflowJob<any, any, any> = WorkflowJob<any, any, any>> {
90
- name: string;
91
- mainJob: Job;
92
- retryPolicy?: RetryPolicy;
93
- concurrencyPolicy?: ConcurrencyPolicy;
94
- }
95
- interface Workflow<Job extends WorkflowJob<any, any, any> = WorkflowJob<any, any, any>> {
96
- name: string;
97
- mainJob: Job;
98
- retryPolicy?: RetryPolicy;
99
- concurrencyPolicy?: ConcurrencyPolicy;
100
- trigger: (args: Parameters<Job["trigger"]>[0], options?: {
101
- authInvoker: MachineUserName;
102
- }) => Promise<string>;
103
- }
104
- interface WorkflowDefinition<Job extends WorkflowJob<any, any, any>> {
105
- name: string;
106
- mainJob: Job;
107
- retryPolicy?: RetryPolicy;
108
- concurrencyPolicy?: ConcurrencyPolicy;
109
- }
110
- /**
111
- * Create a workflow definition that can be triggered via the Tailor SDK.
112
- * In production, bundler transforms .trigger() calls to tailor.workflow.triggerWorkflow().
113
- *
114
- * The workflow MUST be the default export of the file.
115
- * All jobs referenced by the workflow MUST be named exports.
116
- * @template Job
117
- * @param config - Workflow configuration
118
- * @returns Defined workflow
119
- * @example
120
- * export const fetchData = createWorkflowJob({ name: "fetch-data", body: async (input: { id: string }) => ({ id: input.id }) });
121
- * export const processData = createWorkflowJob({
122
- * name: "process-data",
123
- * body: (input: { id: string }) => {
124
- * const data = fetchData.trigger({ id: input.id });
125
- * return { data };
126
- * },
127
- * });
128
- *
129
- * // Workflow must be default export; mainJob is the entry point
130
- * export default createWorkflow({
131
- * name: "data-processing",
132
- * mainJob: processData,
133
- * });
134
- */
135
- declare function createWorkflow<Job extends WorkflowJob<any, any, any>>(config: WorkflowDefinition<Job>): Workflow<Job>;
136
- //#endregion
137
- //#region src/configure/services/workflow/wait-point.d.ts
138
- /**
139
- * A single wait point instance with typed `.wait()` and `.resolve()` methods.
140
- *
141
- * - `.wait(payload?)` suspends execution until resolved. Returns the result from `.resolve()`.
142
- * - `.resolve(executionId, callback)` resumes a suspended execution.
143
- *
144
- * Both `Payload` and `Result` must be JsonValue-compatible (primitives, plain objects, arrays).
145
- * Functions and objects with a `toJSON` method are rejected at the type level.
146
- */
147
- interface WaitPointInstance<Payload = undefined, Result = undefined> {
148
- wait: [Payload] extends [undefined] ? () => Promise<Result> : (payload: Payload) => Promise<Result>;
149
- resolve: (executionId: string, callback: (payload: [Payload] extends [undefined] ? undefined : Payload) => Result | Promise<Result>) => Promise<void>;
150
- }
151
- /**
152
- * The type produced by `define<Payload, Result>()` / `defineWaitPoint<Payload, Result>(key)`.
153
- * Resolves to `WaitPointInstance<Payload, Result>` when both types are JsonValue-compatible,
154
- * or to a template-literal error string that surfaces at the call site.
155
- */
156
- type WaitPointDef<Payload, Result> = [null] extends [Payload] ? "ERROR: Payload cannot be null at the top level" : [undefined] extends [Result] ? "ERROR: Result cannot be (or include) undefined (resolve callback must return a value)" : [Payload] extends [undefined] ? [Result] extends [JsonCompatible<Result>] ? WaitPointInstance<Payload, Result> : "ERROR: Result must be JsonValue-compatible (plain objects/arrays; no class instances or functions)" : [undefined] extends [Payload] ? "ERROR: Payload cannot include undefined at the top level" : [Payload] extends [JsonCompatible<Payload>] ? [Result] extends [JsonCompatible<Result>] ? WaitPointInstance<Payload, Result> : "ERROR: Result must be JsonValue-compatible (plain objects/arrays; no class instances or functions)" : "ERROR: Payload must be JsonValue-compatible (plain objects/arrays; no class instances or functions)";
157
- /**
158
- * The `define` function passed to the `defineWaitPoints` builder callback.
159
- * Returns an actual WaitPointInstance (not a phantom marker) so that the
160
- * builder's return type can flow through as-is, preserving JSDoc comments
161
- * on each property for IDE autocompletion.
162
- *
163
- * JSON validation is encoded in the return type rather than in type-parameter
164
- * constraints, because tsgo rejects self-referential constraints like
165
- * `Payload extends JsonCompatible<Payload>` as circular.
166
- */
167
- type DefineFn = <Payload = undefined, Result = undefined>() => WaitPointDef<Payload, Result>;
168
- /**
169
- * Define a single typed wait point with an explicit key.
170
- *
171
- * `Payload` and `Result` must be JsonValue-compatible.
172
- * Functions and objects with a `toJSON` method are rejected at the type level;
173
- * class instances exposing methods are rejected via the property walk.
174
- * @param key - The wait point key used to match wait and resolve calls
175
- * @returns A WaitPointInstance with typed `.wait()` and `.resolve()` methods
176
- * @example
177
- * export const approval = defineWaitPoint<{ message: string }, { approved: boolean }>("approval");
178
- *
179
- * await approval.wait({ message: "Please approve" });
180
- */
181
- declare function defineWaitPoint<Payload = undefined, Result = undefined>(key: string): WaitPointDef<Payload, Result>;
182
- /**
183
- * Define a group of typed wait points for human-in-the-loop workflows.
184
- * Property names become the wait point keys.
185
- *
186
- * The return type is the same as the builder's return type, so JSDoc on each
187
- * property is preserved and visible in IDE autocompletion.
188
- *
189
- * `Payload` and `Result` must be JsonValue-compatible.
190
- * Functions and objects with a `toJSON` method are rejected at the type level;
191
- * class instances exposing methods are rejected via the property walk.
192
- * @param builder - Callback that receives a `define` factory and returns an object of wait points
193
- * @returns The same object returned by the builder (with correct keys set on each instance)
194
- * @example
195
- * export const waitPoints = defineWaitPoints(define => ({
196
- * // Preceding JSDoc on this property is shown in IDE autocompletion
197
- * approval: define<{ message: string }, { approved: boolean }>(),
198
- * }));
199
- *
200
- * // IDE shows the JSDoc when typing `waitPoints.`
201
- * await waitPoints.approval.wait({ message: "Please approve" });
202
- *
203
- * // For 2-level access, use destructured export with JSDoc attached to the export itself.
204
- */
205
- declare function defineWaitPoints<T extends Record<string, WaitPointInstance<any, any>>>(builder: (define: DefineFn) => T): T;
206
- //#endregion
207
- export { WorkflowConfig as a, WorkflowJobContext as c, Workflow as i, createWorkflowJob as l, defineWaitPoint as n, createWorkflow as o, defineWaitPoints as r, WorkflowJob as s, WaitPointInstance as t, WORKFLOW_TEST_ENV_KEY as u };
208
- //# sourceMappingURL=index-ZePLwxw7.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor-D-q1rvRl.mjs","names":[],"sources":["../src/cli/telemetry/interceptor.ts"],"sourcesContent":["import { trace, SpanStatusCode } from \"@opentelemetry/api\";\nimport type { Interceptor } from \"@connectrpc/connect\";\n\n/**\n * Create a Connect-RPC interceptor that records OTLP spans for each RPC call.\n * When no TracerProvider is registered, the OTel API automatically provides\n * noop spans with zero overhead.\n * @returns Tracing interceptor\n */\nexport function createTracingInterceptor(): Interceptor {\n return (next) => async (req) => {\n const tracer = trace.getTracer(\"tailor-sdk\");\n\n return tracer.startActiveSpan(`rpc.${req.method.name}`, async (span) => {\n span.setAttribute(\"rpc.method\", req.method.name);\n span.setAttribute(\"rpc.service\", \"OperatorService\");\n span.setAttribute(\"rpc.system\", \"connect-rpc\");\n\n try {\n const response = await next(req);\n span.setStatus({ code: SpanStatusCode.OK });\n return response;\n } catch (error) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n if (error instanceof Error) {\n span.recordException(error);\n }\n throw error;\n } finally {\n span.end();\n }\n });\n };\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,2BAAwC;CACtD,QAAQ,SAAS,OAAO,QAAQ;EAG9B,OAFe,MAAM,UAAU,YAEnB,CAAC,CAAC,gBAAgB,OAAO,IAAI,OAAO,QAAQ,OAAO,SAAS;GACtE,KAAK,aAAa,cAAc,IAAI,OAAO,IAAI;GAC/C,KAAK,aAAa,eAAe,iBAAiB;GAClD,KAAK,aAAa,cAAc,aAAa;GAE7C,IAAI;IACF,MAAM,WAAW,MAAM,KAAK,GAAG;IAC/B,KAAK,UAAU,EAAE,MAAM,eAAe,GAAG,CAAC;IAC1C,OAAO;GACT,SAAS,OAAO;IACd,KAAK,UAAU,EAAE,MAAM,eAAe,MAAM,CAAC;IAC7C,IAAI,iBAAiB,OACnB,KAAK,gBAAgB,KAAK;IAE5B,MAAM;GACR,UAAU;IACR,KAAK,IAAI;GACX;EACF,CAAC;CACH;AACF"}
@@ -1,53 +0,0 @@
1
- import { t as brandValue } from "./brand-Eo4pLXPJ.mjs";
2
- import { a as registerJob, n as dispatchTriggerJob } from "./registry-DdsYlL_P.mjs";
3
-
4
- //#region src/configure/services/workflow/job.ts
5
- /**
6
- * Create a workflow job definition.
7
- *
8
- * All jobs must be named exports from the workflow file.
9
- * Job names must be unique across the entire project.
10
- *
11
- * Input and output must be JsonValue-compatible (primitives, plain objects, arrays).
12
- * Functions and objects with a `toJSON` method are rejected at the type level;
13
- * class instances exposing methods are rejected via the property walk.
14
- * @param config - Job configuration with name and body function.
15
- * @param config.name - Unique job name across the project.
16
- * @param config.body - Function that processes the job input.
17
- * @returns A WorkflowJob that can be triggered from other jobs.
18
- * @example
19
- * // Simple job with async body:
20
- * export const fetchData = createWorkflowJob({
21
- * name: "fetch-data",
22
- * body: async (input: { id: string }) => {
23
- * const db = getDB("tailordb");
24
- * return await db.selectFrom("Table").selectAll().where("id", "=", input.id).executeTakeFirst();
25
- * },
26
- * });
27
- * @example
28
- * // Orchestrator job that fans out to other jobs.
29
- * export const orchestrate = createWorkflowJob({
30
- * name: "orchestrate",
31
- * body: (input: { orderId: string }) => {
32
- * const inventory = checkInventory.trigger({ orderId: input.orderId });
33
- * const payment = processPayment.trigger({ orderId: input.orderId });
34
- * return { inventory, payment };
35
- * },
36
- * });
37
- */
38
- function createWorkflowJob(config) {
39
- const body = config.body;
40
- if (!process.env.TAILOR_PLATFORM_BUNDLE) registerJob(config.name, body);
41
- const trigger = process.env.TAILOR_PLATFORM_BUNDLE ? () => {
42
- throw new Error("This workflow job's .trigger() is rewritten at build time and is unavailable in the bundle");
43
- } : (args) => dispatchTriggerJob(config.name, args);
44
- return brandValue({
45
- name: config.name,
46
- trigger,
47
- body
48
- }, "workflow-job");
49
- }
50
-
51
- //#endregion
52
- export { createWorkflowJob as t };
53
- //# sourceMappingURL=job-fuc3j1Ma.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job-fuc3j1Ma.mjs","names":[],"sources":["../src/configure/services/workflow/job.ts"],"sourcesContent":["import { brandValue } from \"@/utils/brand\";\nimport { dispatchTriggerJob, registerJob, type RegisteredJobBody } from \"./registry\";\nimport type { TailorEnv, TailorInvoker } from \"@/runtime/types\";\nimport type { JsonCompatible } from \"@/types/helpers\";\n\n/**\n * Context object passed as the second argument to workflow job body functions.\n */\nexport type WorkflowJobContext = {\n env: TailorEnv;\n invoker?: TailorInvoker;\n};\n\n/**\n * The body function type for a workflow job.\n * Resolves to the callable signature when `I` / `O` are JsonValue-compatible,\n * or to a template-literal error string that surfaces at the `body:` property.\n */\ntype JobBody<I, O> = [null] extends [I]\n ? \"ERROR: Input cannot be null at the top level\"\n : [I] extends [undefined]\n ? [O] extends [JsonCompatible<O> | undefined | void]\n ? (input: I, context: WorkflowJobContext) => O | Promise<O>\n : \"ERROR: Output must be JsonValue-compatible (plain objects/arrays; no class instances or functions)\"\n : [undefined] extends [I]\n ? \"ERROR: Input cannot include undefined at the top level\"\n : [I] extends [JsonCompatible<I>]\n ? [O] extends [JsonCompatible<O> | undefined | void]\n ? (input: I, context: WorkflowJobContext) => O | Promise<O>\n : \"ERROR: Output must be JsonValue-compatible (plain objects/arrays; no class instances or functions)\"\n : \"ERROR: Input must be JsonValue-compatible (plain objects/arrays; no class instances or functions)\";\n\n/**\n * WorkflowJob represents a job that can be triggered in a workflow.\n *\n * Type constraints:\n * - Input: Must be JsonValue-compatible (plain objects/arrays; no class instances or functions) or undefined.\n * - Output: Must be JsonValue-compatible (plain objects/arrays; no class instances or functions), undefined, or void.\n * - Trigger returns `Awaited<Output>` as-is (no Promise or Jsonify transformation).\n */\nexport interface WorkflowJob<Name extends string = string, Input = undefined, Output = undefined> {\n name: Name;\n /**\n * Trigger this job with the given input and return the job's output value.\n * @example\n * body: async (input) => {\n * const a = jobA.trigger({ id: input.id });\n * const b = jobB.trigger({ id: input.id });\n * return { a, b };\n * }\n */\n trigger: [Input] extends [undefined] ? () => Awaited<Output> : (input: Input) => Awaited<Output>;\n body: (input: Input, context: WorkflowJobContext) => Output | Promise<Output>;\n}\n\nexport { WORKFLOW_TEST_ENV_KEY } from \"./test-env-key\";\n\ninterface CreateWorkflowJobConfig<Name extends string, I, O> {\n readonly name: Name;\n readonly body: JobBody<I, O>;\n}\n\n/**\n * Create a workflow job definition.\n *\n * All jobs must be named exports from the workflow file.\n * Job names must be unique across the entire project.\n *\n * Input and output must be JsonValue-compatible (primitives, plain objects, arrays).\n * Functions and objects with a `toJSON` method are rejected at the type level;\n * class instances exposing methods are rejected via the property walk.\n * @param config - Job configuration with name and body function.\n * @param config.name - Unique job name across the project.\n * @param config.body - Function that processes the job input.\n * @returns A WorkflowJob that can be triggered from other jobs.\n * @example\n * // Simple job with async body:\n * export const fetchData = createWorkflowJob({\n * name: \"fetch-data\",\n * body: async (input: { id: string }) => {\n * const db = getDB(\"tailordb\");\n * return await db.selectFrom(\"Table\").selectAll().where(\"id\", \"=\", input.id).executeTakeFirst();\n * },\n * });\n * @example\n * // Orchestrator job that fans out to other jobs.\n * export const orchestrate = createWorkflowJob({\n * name: \"orchestrate\",\n * body: (input: { orderId: string }) => {\n * const inventory = checkInventory.trigger({ orderId: input.orderId });\n * const payment = processPayment.trigger({ orderId: input.orderId });\n * return { inventory, payment };\n * },\n * });\n */\nexport function createWorkflowJob<const Name extends string, I = undefined, O = undefined>(\n config: CreateWorkflowJobConfig<Name, I, O>,\n): WorkflowJob<Name, I, Awaited<O>> {\n const body = config.body as (input: I, context: WorkflowJobContext) => O | Promise<O>;\n\n // Test-only local runner registry; the platform bundle sets the flag so it is DCE'd.\n if (!process.env.TAILOR_PLATFORM_BUNDLE) {\n registerJob(config.name, body as RegisteredJobBody);\n }\n\n const trigger = process.env.TAILOR_PLATFORM_BUNDLE\n ? () => {\n throw new Error(\n \"This workflow job's .trigger() is rewritten at build time and is unavailable in the bundle\",\n );\n }\n : (args?: unknown) => dispatchTriggerJob(config.name, args) as Awaited<O>;\n\n return brandValue(\n { name: config.name, trigger, body } as WorkflowJob<Name, I, Awaited<O>>,\n \"workflow-job\",\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FA,SAAgB,kBACd,QACkC;CAClC,MAAM,OAAO,OAAO;CAGpB,IAAI,CAAC,QAAQ,IAAI,wBACf,YAAY,OAAO,MAAM,IAAyB;CAGpD,MAAM,UAAU,QAAQ,IAAI,+BAClB;EACJ,MAAM,IAAI,MACR,4FACF;CACF,KACC,SAAmB,mBAAmB,OAAO,MAAM,IAAI;CAE5D,OAAO,WACL;EAAE,MAAM,OAAO;EAAM;EAAS;CAAK,GACnC,cACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"kysely-type-DR8uzZTA.mjs","names":[],"sources":["../src/plugin/builtin/kysely-type/type-processor.ts","../src/plugin/builtin/kysely-type/index.ts"],"sourcesContent":["import multiline from \"@/utils/multiline\";\nimport { type KyselyNamespaceMetadata, type KyselyTypeMetadata } from \"./types\";\nimport type { OperatorFieldConfig, TailorDBType } from \"@/parser/service/tailordb/types\";\n\ntype UsedUtilityTypes = { Timestamp: boolean; Serial: boolean };\n\ntype FieldTypeResult = {\n type: string;\n usedUtilityTypes: UsedUtilityTypes;\n};\n\n/**\n * Get the enum type definition.\n * @param fieldConfig - The field configuration\n * @returns The enum type as a string union\n */\nfunction getEnumType(fieldConfig: OperatorFieldConfig): string {\n const allowedValues = fieldConfig.allowedValues;\n\n if (allowedValues && Array.isArray(allowedValues)) {\n return allowedValues\n .map((v: string | { value: string }) => {\n const value = typeof v === \"string\" ? v : v.value;\n return `\"${value}\"`;\n })\n .join(\" | \");\n }\n return \"string\";\n}\n\n/**\n * Get the nested object type definition.\n * @param fieldConfig - The field configuration\n * @returns The nested type with used utility types\n */\nfunction getNestedType(fieldConfig: OperatorFieldConfig): FieldTypeResult {\n const fields = fieldConfig.fields;\n if (!fields || typeof fields !== \"object\") {\n return {\n type: \"string\",\n usedUtilityTypes: { Timestamp: false, Serial: false },\n };\n }\n\n const fieldResults = Object.entries(fields).map(([fieldName, config]) => {\n const result = generateFieldType(config);\n const optional = config.required !== true ? \"?\" : \"\";\n return {\n fieldType: `${fieldName}${optional}: ${result.type}`,\n usedUtilityTypes: result.usedUtilityTypes,\n };\n });\n\n const aggregatedUtilityTypes = fieldResults.reduce(\n (acc, result) => ({\n Timestamp: acc.Timestamp || result.usedUtilityTypes.Timestamp,\n Serial: acc.Serial || result.usedUtilityTypes.Serial,\n }),\n { Timestamp: false, Serial: false },\n );\n\n const fieldTypes = fieldResults.map((r) => r.fieldType);\n const obj = `{\\n ${fieldTypes.join(\";\\n \")}${fieldTypes.length > 0 ? \";\" : \"\"}\\n}`;\n\n const hasOptionalFields = Object.values(fields).some((config) => config.required !== true);\n if (aggregatedUtilityTypes.Timestamp || hasOptionalFields) {\n return { type: `ObjectColumnType<${obj}>`, usedUtilityTypes: aggregatedUtilityTypes };\n }\n return { type: obj, usedUtilityTypes: aggregatedUtilityTypes };\n}\n\n/**\n * Get the base Kysely type for a field (without array/null modifiers).\n * @param fieldConfig - The field configuration\n * @returns The base type with used utility types\n */\nfunction getBaseType(fieldConfig: OperatorFieldConfig): FieldTypeResult {\n const fieldType = fieldConfig.type;\n const usedUtilityTypes = { Timestamp: false, Serial: false };\n\n let type: string;\n switch (fieldType) {\n case \"uuid\":\n case \"string\":\n case \"decimal\":\n type = \"string\";\n break;\n case \"integer\":\n case \"float\":\n type = \"number\";\n break;\n case \"date\":\n case \"datetime\":\n usedUtilityTypes.Timestamp = true;\n type = \"Timestamp\";\n break;\n case \"bool\":\n case \"boolean\":\n type = \"boolean\";\n break;\n case \"enum\":\n type = getEnumType(fieldConfig);\n break;\n case \"nested\": {\n const nestedResult = getNestedType(fieldConfig);\n return nestedResult;\n }\n default:\n type = \"string\";\n break;\n }\n\n return { type, usedUtilityTypes };\n}\n\n/**\n * Generate the complete field type including array and null modifiers.\n * @param fieldConfig - The field configuration\n * @returns The complete field type with used utility types\n */\nfunction generateFieldType(fieldConfig: OperatorFieldConfig): FieldTypeResult {\n const baseTypeResult = getBaseType(fieldConfig);\n const usedUtilityTypes = { ...baseTypeResult.usedUtilityTypes };\n\n const isArray = fieldConfig.array === true;\n const isNullable = fieldConfig.required !== true;\n\n // Types that use ColumnType internally (Timestamp, ObjectColumnType) cannot be\n // directly wrapped with [] for arrays, because Kysely only resolves ColumnType at\n // the top-level table property. Use ArrayColumnType/ObjectArrayColumnType to keep\n // the ColumnType at the top level with arrays inside.\n const columnTypeBaseTypes = new Set([\"Timestamp\"]);\n const isColumnTypeBase = columnTypeBaseTypes.has(baseTypeResult.type);\n\n let finalType = baseTypeResult.type;\n if (isArray) {\n if (isColumnTypeBase || finalType.startsWith(\"ObjectColumnType<\")) {\n finalType = `ArrayColumnType<${baseTypeResult.type}>`;\n } else {\n const needsParens = fieldConfig.type === \"enum\";\n finalType = needsParens ? `(${baseTypeResult.type})[]` : `${baseTypeResult.type}[]`;\n }\n }\n if (isNullable) {\n finalType = `${finalType} | null`;\n }\n\n if (fieldConfig.serial) {\n usedUtilityTypes.Serial = true;\n finalType = `Serial<${finalType}>`;\n }\n if (fieldConfig.hooks?.create) {\n finalType = `Generated<${finalType}>`;\n }\n\n return { type: finalType, usedUtilityTypes };\n}\n\n/**\n * Generate the table interface.\n * @param type - The parsed TailorDB type\n * @returns The type definition and used utility types\n */\nfunction generateTableInterface(type: TailorDBType): {\n typeDef: string;\n usedUtilityTypes: UsedUtilityTypes;\n} {\n const fieldEntries = Object.entries(type.fields).filter(([fieldName]) => fieldName !== \"id\");\n\n const fieldResults = fieldEntries.map(([fieldName, parsedField]) => ({\n fieldName,\n ...generateFieldType(parsedField.config),\n }));\n\n const fields = [\n \"id: Generated<string>;\",\n ...fieldResults.map((result) => `${result.fieldName}: ${result.type};`),\n ];\n\n const aggregatedUtilityTypes = fieldResults.reduce(\n (acc, result) => ({\n Timestamp: acc.Timestamp || result.usedUtilityTypes.Timestamp,\n\n Serial: acc.Serial || result.usedUtilityTypes.Serial,\n }),\n { Timestamp: false, Serial: false },\n );\n\n const typeDef = multiline /* ts */ `\n ${type.name}: {\n ${fields.join(\"\\n\")}\n }\n `;\n\n return { typeDef, usedUtilityTypes: aggregatedUtilityTypes };\n}\n\n/**\n * Convert a TailorDBType into KyselyTypeMetadata.\n * @param type - Parsed TailorDB type\n * @returns Generated Kysely type metadata\n */\nexport async function processKyselyType(type: TailorDBType): Promise<KyselyTypeMetadata> {\n const result = generateTableInterface(type);\n\n return {\n name: type.name,\n typeDef: result.typeDef,\n usedUtilityTypes: result.usedUtilityTypes,\n };\n}\n\n/**\n * Generate unified types file from multiple namespaces.\n * @param namespaceData - Namespace metadata\n * @returns Generated types file contents\n */\nexport function generateUnifiedKyselyTypes(namespaceData: KyselyNamespaceMetadata[]): string {\n if (namespaceData.length === 0) {\n return \"\";\n }\n\n // Aggregate used utility types from all namespaces\n const globalUsedUtilityTypes = namespaceData.reduce(\n (acc, ns) => ({\n Timestamp: acc.Timestamp || ns.usedUtilityTypes.Timestamp,\n Serial: acc.Serial || ns.usedUtilityTypes.Serial,\n }),\n { Timestamp: false, Serial: false },\n );\n\n const utilityTypeImports: string[] = [\"type Generated\"];\n if (globalUsedUtilityTypes.Timestamp) {\n utilityTypeImports.push(\"type Timestamp\");\n }\n const hasObjectColumnType = namespaceData.some((ns) =>\n ns.types.some((t) => t.typeDef.includes(\"ObjectColumnType<\")),\n );\n if (hasObjectColumnType) {\n utilityTypeImports.push(\"type ObjectColumnType\");\n }\n const hasArrayColumnType = namespaceData.some((ns) =>\n ns.types.some((t) => t.typeDef.includes(\"ArrayColumnType<\")),\n );\n if (hasArrayColumnType) {\n utilityTypeImports.push(\"type ArrayColumnType\");\n }\n if (globalUsedUtilityTypes.Serial) {\n utilityTypeImports.push(\"type Serial\");\n }\n\n const importsSection = multiline /* ts */ `\n import {\n createGetDB,\n ${utilityTypeImports.join(\",\\n\")},\n type NamespaceDB,\n type NamespaceInsertable,\n type NamespaceSelectable,\n type NamespaceTable,\n type NamespaceTableName,\n type NamespaceTransaction,\n type NamespaceUpdateable,\n } from \"@tailor-platform/sdk/kysely\";\n `;\n\n // Generate Namespace interface with multiple namespaces\n const namespaceInterfaces = namespaceData\n .map(({ namespace, types }) => {\n const typeDefsWithIndent = types\n .map((type) => {\n return type.typeDef\n .split(\"\\n\")\n .map((line) => (line.trim() ? ` ${line}` : \"\"))\n .join(\"\\n\");\n })\n .join(\"\\n\\n\");\n\n return ` \"${namespace}\": {\\n${typeDefsWithIndent}\\n }`;\n })\n .join(\",\\n\");\n\n const namespaceInterface = `export interface Namespace {\\n${namespaceInterfaces}\\n}`;\n\n const getDBFunction = multiline /* ts */ `\n export const getDB = createGetDB<Namespace>();\n\n export type DB<N extends keyof Namespace = keyof Namespace> = NamespaceDB<Namespace, N>;\n `;\n\n const utilityTypeExports = multiline /* ts */ `\n export type Transaction<K extends keyof Namespace | DB = keyof Namespace> =\n NamespaceTransaction<Namespace, K>;\n\n type TableName = NamespaceTableName<Namespace>;\n export type Table<T extends TableName> = NamespaceTable<Namespace, T>;\n\n export type Insertable<T extends TableName> = NamespaceInsertable<Namespace, T>;\n export type Selectable<T extends TableName> = NamespaceSelectable<Namespace, T>;\n export type Updateable<T extends TableName> = NamespaceUpdateable<Namespace, T>;\n `;\n\n return (\n [importsSection, namespaceInterface, getDBFunction, utilityTypeExports].join(\"\\n\\n\") + \"\\n\"\n );\n}\n","import { processKyselyType, generateUnifiedKyselyTypes } from \"./type-processor\";\nimport type { KyselyTypeMetadata, KyselyNamespaceMetadata } from \"./types\";\nimport type { Plugin, GeneratorResult, TailorDBReadyContext } from \"@/plugin/types\";\n\n/** Unique identifier for the Kysely type generator plugin. */\nexport const KyselyGeneratorID = \"@tailor-platform/kysely-type\";\n\ntype KyselyTypePluginOptions = {\n distPath: string;\n};\n\n/**\n * Plugin that generates Kysely type definitions for TailorDB types.\n * @param options - Plugin options\n * @param options.distPath - Output file path for generated types\n * @returns Plugin instance with onTailorDBReady hook\n */\nexport function kyselyTypePlugin(\n options: KyselyTypePluginOptions,\n): Plugin<unknown, KyselyTypePluginOptions> {\n return {\n id: KyselyGeneratorID,\n description: \"Generates Kysely type definitions for TailorDB types\",\n pluginConfig: options,\n\n async onTailorDBReady(\n ctx: TailorDBReadyContext<KyselyTypePluginOptions>,\n ): Promise<GeneratorResult> {\n const allNamespaceData: KyselyNamespaceMetadata[] = [];\n\n for (const ns of ctx.tailordb) {\n const typeMetadataList: KyselyTypeMetadata[] = [];\n\n for (const type of Object.values(ns.types)) {\n const metadata = await processKyselyType(type);\n typeMetadataList.push(metadata);\n }\n\n if (typeMetadataList.length === 0) continue;\n\n const usedUtilityTypes = typeMetadataList.reduce(\n (acc, type) => ({\n Timestamp: acc.Timestamp || type.usedUtilityTypes.Timestamp,\n Serial: acc.Serial || type.usedUtilityTypes.Serial,\n }),\n { Timestamp: false, Serial: false },\n );\n\n allNamespaceData.push({\n namespace: ns.namespace,\n types: typeMetadataList,\n usedUtilityTypes,\n });\n }\n\n const files: GeneratorResult[\"files\"] = [];\n if (allNamespaceData.length > 0) {\n const content = generateUnifiedKyselyTypes(allNamespaceData);\n files.push({\n path: ctx.pluginConfig.distPath,\n content,\n });\n }\n\n return { files };\n },\n };\n}\n"],"mappings":"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"}
@@ -1,220 +0,0 @@
1
- import { formatWithOptions } from "node:util";
2
- import chalk from "chalk";
3
- import { formatDistanceToNowStrict } from "date-fns";
4
- import { getBorderCharacters, table } from "table";
5
-
6
- //#region src/cli/shared/parse-boolean.ts
7
- const TRUTHY_VALUES = new Set([
8
- "true",
9
- "t",
10
- "yes",
11
- "y",
12
- "on",
13
- "1"
14
- ]);
15
- const FALSY_VALUES = new Set([
16
- "false",
17
- "f",
18
- "no",
19
- "n",
20
- "off",
21
- "0"
22
- ]);
23
- /**
24
- * Parse a string value as a boolean.
25
- *
26
- * Recognized values (case-insensitive, trimmed) follow Python's
27
- * `distutils.util.strtobool` convention:
28
- * - truthy: `true, t, yes, y, on, 1`
29
- * - falsy: `false, f, no, n, off, 0`
30
- *
31
- * Undefined, empty strings, and unrecognized values return `undefined` so
32
- * that callers can fall back to their own defaults.
33
- * @param value - The input string (e.g. an environment variable or CLI flag value)
34
- * @returns `true`, `false`, or `undefined` when the value is unset or unrecognized
35
- */
36
- function parseBoolean(value) {
37
- if (value === void 0) return void 0;
38
- const normalized = value.trim().toLowerCase();
39
- if (normalized === "") return void 0;
40
- if (TRUTHY_VALUES.has(normalized)) return true;
41
- if (FALSY_VALUES.has(normalized)) return false;
42
- }
43
-
44
- //#endregion
45
- //#region src/cli/shared/logger.ts
46
- /**
47
- * Error thrown when a prompt is attempted in a CI environment
48
- */
49
- var CIPromptError = class extends Error {
50
- constructor(message) {
51
- super(message ?? "Interactive prompts are not available in CI environments. Use --yes flag to skip confirmation prompts.");
52
- this.name = "CIPromptError";
53
- }
54
- };
55
- /**
56
- * Semantic style functions for inline text styling
57
- */
58
- const styles = {
59
- success: chalk.green,
60
- error: chalk.red,
61
- warning: chalk.yellow,
62
- info: chalk.cyan,
63
- create: chalk.green,
64
- update: chalk.yellow,
65
- delete: chalk.red,
66
- unchanged: chalk.gray,
67
- bold: chalk.bold,
68
- dim: chalk.gray,
69
- highlight: chalk.cyanBright,
70
- successBright: chalk.greenBright,
71
- errorBright: chalk.redBright,
72
- resourceType: chalk.bold,
73
- resourceName: chalk.cyan,
74
- path: chalk.cyan,
75
- value: chalk.white,
76
- placeholder: chalk.gray.italic
77
- };
78
- /**
79
- * Standardized symbols for CLI output
80
- */
81
- const symbols = {
82
- success: chalk.green("✓"),
83
- error: chalk.red("✖"),
84
- warning: chalk.yellow("⚠"),
85
- info: chalk.cyan("i"),
86
- create: chalk.green("+"),
87
- update: chalk.yellow("~"),
88
- delete: chalk.red("-"),
89
- replace: chalk.magenta("±"),
90
- bullet: chalk.gray("•"),
91
- arrow: chalk.gray("→")
92
- };
93
- let _jsonMode = false;
94
- const TYPE_ICONS = {
95
- info: "ℹ",
96
- success: "✔",
97
- warn: "⚠",
98
- error: "✖",
99
- debug: "⚙",
100
- trace: "→",
101
- log: ""
102
- };
103
- const TYPE_COLORS = {
104
- info: chalk.cyan,
105
- success: chalk.green,
106
- warn: chalk.yellow,
107
- error: chalk.red,
108
- debug: chalk.gray,
109
- trace: chalk.gray,
110
- log: (text) => text
111
- };
112
- /**
113
- * Formats a log line with the appropriate prefix and indentation
114
- * @param opts - Formatting options
115
- * @returns Formatted log line
116
- */
117
- function formatLogLine(opts) {
118
- const { mode, indent, type, message, timestamp } = opts;
119
- const indentPrefix = indent > 0 ? " ".repeat(indent) : "";
120
- const colorFn = TYPE_COLORS[type] || ((text) => text);
121
- if (mode === "plain") return `${indentPrefix}${colorFn(message)}\n`;
122
- const icon = TYPE_ICONS[type] || "";
123
- const coloredOutput = colorFn(`${icon ? `${icon} ` : ""}${message}`);
124
- return `${indentPrefix}${timestamp ?? ""}${coloredOutput}\n`;
125
- }
126
- /**
127
- * Writes a formatted log line to stderr.
128
- * @param type - Log type (info, success, warn, error, log)
129
- * @param message - Log message
130
- * @param opts - Log options (mode and indent)
131
- */
132
- function writeLog(type, message, opts) {
133
- const mode = opts?.mode ?? "default";
134
- const output = formatLogLine({
135
- mode,
136
- indent: opts?.indent ?? 0,
137
- type,
138
- message: formatWithOptions({ breakLength: process.stdout.columns || 80 }, message),
139
- timestamp: mode === "stream" ? `${(/* @__PURE__ */ new Date()).toLocaleTimeString()} ` : ""
140
- });
141
- process.stderr.write(output);
142
- }
143
- const logger = {
144
- get jsonMode() {
145
- return _jsonMode;
146
- },
147
- set jsonMode(value) {
148
- _jsonMode = value;
149
- },
150
- info(message, opts) {
151
- writeLog("info", message, opts);
152
- },
153
- success(message, opts) {
154
- writeLog("success", message, opts);
155
- },
156
- warn(message, opts) {
157
- writeLog("warn", message, opts);
158
- },
159
- error(message, opts) {
160
- writeLog("error", message, opts);
161
- },
162
- log(message) {
163
- writeLog("log", message, { mode: "plain" });
164
- },
165
- newline() {
166
- process.stderr.write("\n");
167
- },
168
- debug(message) {
169
- if (parseBoolean(process.env.DEBUG) === true) writeLog("log", styles.dim(message), { mode: "plain" });
170
- },
171
- out(data, options) {
172
- if (typeof data === "string") {
173
- process.stdout.write(data.endsWith("\n") ? data : data + "\n");
174
- return;
175
- }
176
- if (this.jsonMode) {
177
- console.log(JSON.stringify(data));
178
- return;
179
- }
180
- const display = options?.display;
181
- const formatValue = (value, pretty = false) => {
182
- if (options?.showNull && value === null) return "NULL";
183
- if (value === null || value === void 0) return "N/A";
184
- if (value instanceof Date) return formatDistanceToNowStrict(value, { addSuffix: true });
185
- if (typeof value === "object") return pretty ? JSON.stringify(value, null, 2) : JSON.stringify(value);
186
- return String(value);
187
- };
188
- const isExcluded = (key) => {
189
- return display !== void 0 && key in display && display[key] === null;
190
- };
191
- const transformValue = (key, value, item, pretty = false) => {
192
- if (display && key in display) {
193
- const transformer = display[key];
194
- if (transformer) return transformer(value, item);
195
- }
196
- return formatValue(value, pretty);
197
- };
198
- if (!Array.isArray(data)) {
199
- const t = table(Object.entries(data).filter(([key]) => !isExcluded(key)).map(([key, value]) => [key, transformValue(key, value, data, true)]), {
200
- singleLine: false,
201
- border: getBorderCharacters("norc")
202
- });
203
- process.stdout.write(t);
204
- return;
205
- }
206
- if (data.length === 0) return;
207
- const headers = Array.from(new Set(data.flatMap((item) => Object.keys(item)))).filter((h) => !isExcluded(h));
208
- const t = table([headers, ...data.map((item) => headers.map((header) => transformValue(header, item[header], item)))], {
209
- border: getBorderCharacters("norc"),
210
- drawHorizontalLine: (lineIndex, rowCount) => {
211
- return lineIndex === 0 || lineIndex === 1 || lineIndex === rowCount;
212
- }
213
- });
214
- process.stdout.write(t);
215
- }
216
- };
217
-
218
- //#endregion
219
- export { parseBoolean as a, symbols as i, logger as n, styles as r, CIPromptError as t };
220
- //# sourceMappingURL=logger-CxF-Ex5d.mjs.map