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

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 (321) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/dist/{application-BX13RArL.mjs → application-BJXRpQj5.mjs} +602 -1842
  3. package/dist/application-BJXRpQj5.mjs.map +1 -0
  4. package/dist/application-BV-AXawv.mjs +3 -0
  5. package/dist/cli/cache/bundle-cache.d.mts +2 -1
  6. package/dist/cli/cache/store.d.mts +1 -1
  7. package/dist/cli/commands/api/index.d.mts +1 -0
  8. package/dist/cli/commands/deploy/aigateway.d.mts +5 -1
  9. package/dist/cli/commands/deploy/application.d.mts +7 -1
  10. package/dist/cli/commands/deploy/apply-phases.d.mts +14 -1
  11. package/dist/cli/commands/deploy/auth.d.mts +5 -1
  12. package/dist/cli/commands/deploy/deploy.d.mts +13 -3
  13. package/dist/cli/commands/deploy/executor.d.mts +7 -1
  14. package/dist/cli/commands/deploy/function-registry.d.mts +5 -0
  15. package/dist/cli/commands/deploy/idp.d.mts +5 -1
  16. package/dist/cli/commands/deploy/resolver.d.mts +5 -1
  17. package/dist/cli/commands/deploy/secret-manager.d.mts +5 -1
  18. package/dist/cli/commands/deploy/staticwebsite.d.mts +5 -1
  19. package/dist/cli/commands/deploy/tailordb/index.d.mts +8 -1
  20. package/dist/cli/commands/deploy/types.d.mts +3 -1
  21. package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +3 -1
  22. package/dist/cli/commands/deploy/workflow.d.mts +4 -1
  23. package/dist/cli/commands/executor/get.d.mts +0 -1
  24. package/dist/cli/commands/executor/jobs.d.mts +0 -1
  25. package/dist/cli/commands/executor/list.d.mts +0 -1
  26. package/dist/cli/commands/executor/transform.d.mts +1 -0
  27. package/dist/cli/commands/executor/trigger.d.mts +0 -1
  28. package/dist/cli/commands/executor/webhook.d.mts +0 -1
  29. package/dist/cli/commands/function/get.d.mts +0 -1
  30. package/dist/cli/commands/function/list.d.mts +0 -1
  31. package/dist/cli/commands/function/transform.d.mts +1 -0
  32. package/dist/cli/commands/generate/options.d.mts +0 -1
  33. package/dist/cli/commands/generate/service.d.mts +6 -2
  34. package/dist/cli/commands/machineuser/list.d.mts +0 -1
  35. package/dist/cli/commands/machineuser/token.d.mts +0 -1
  36. package/dist/cli/commands/oauth2client/get.d.mts +0 -1
  37. package/dist/cli/commands/oauth2client/list.d.mts +0 -1
  38. package/dist/cli/commands/oauth2client/transform.d.mts +1 -0
  39. package/dist/cli/commands/organization/folder/create.d.mts +0 -1
  40. package/dist/cli/commands/organization/folder/delete.d.mts +0 -1
  41. package/dist/cli/commands/organization/folder/get.d.mts +0 -1
  42. package/dist/cli/commands/organization/folder/list.d.mts +0 -1
  43. package/dist/cli/commands/organization/folder/update.d.mts +0 -1
  44. package/dist/cli/commands/organization/get.d.mts +0 -1
  45. package/dist/cli/commands/organization/list.d.mts +0 -1
  46. package/dist/cli/commands/organization/transform.d.mts +2 -0
  47. package/dist/cli/commands/organization/tree.d.mts +0 -1
  48. package/dist/cli/commands/organization/update.d.mts +0 -1
  49. package/dist/cli/commands/remove.d.mts +0 -1
  50. package/dist/cli/commands/show.d.mts +9 -4
  51. package/dist/cli/commands/staticwebsite/deploy.d.mts +19 -0
  52. package/dist/cli/commands/tailordb/migrate/config.d.mts +0 -1
  53. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +16 -3
  54. package/dist/cli/commands/tailordb/migrate/generate.d.mts +0 -1
  55. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +6 -0
  56. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +1 -1
  57. package/dist/cli/commands/tailordb/truncate.d.mts +0 -1
  58. package/dist/cli/commands/workflow/executions.d.mts +0 -1
  59. package/dist/cli/commands/workflow/get.d.mts +2 -1
  60. package/dist/cli/commands/workflow/list.d.mts +0 -1
  61. package/dist/cli/commands/workflow/resume.d.mts +0 -1
  62. package/dist/cli/commands/workflow/start.d.mts +0 -1
  63. package/dist/cli/commands/workflow/status.d.mts +1 -0
  64. package/dist/cli/commands/workflow/transform.d.mts +1 -0
  65. package/dist/cli/commands/workflow/wait.d.mts +0 -1
  66. package/dist/cli/commands/workflow/waiter.d.mts +1 -1
  67. package/dist/cli/commands/workspace/app/health.d.mts +0 -1
  68. package/dist/cli/commands/workspace/app/list.d.mts +0 -1
  69. package/dist/cli/commands/workspace/app/transform.d.mts +2 -0
  70. package/dist/cli/commands/workspace/create.d.mts +3 -1
  71. package/dist/cli/commands/workspace/delete.d.mts +0 -1
  72. package/dist/cli/commands/workspace/get.d.mts +0 -1
  73. package/dist/cli/commands/workspace/list.d.mts +1 -1
  74. package/dist/cli/commands/workspace/restore.d.mts +0 -1
  75. package/dist/cli/commands/workspace/transform.d.mts +4 -0
  76. package/dist/cli/commands/workspace/user/invite.d.mts +0 -1
  77. package/dist/cli/commands/workspace/user/list.d.mts +0 -1
  78. package/dist/cli/commands/workspace/user/remove.d.mts +0 -1
  79. package/dist/cli/commands/workspace/user/transform.d.mts +1 -0
  80. package/dist/cli/commands/workspace/user/update.d.mts +0 -1
  81. package/dist/cli/index.d.mts +6 -3
  82. package/dist/cli/index.mjs +871 -1577
  83. package/dist/cli/index.mjs.map +1 -1
  84. package/dist/cli/lib.d.mts +10 -4
  85. package/dist/cli/lib.mjs +50 -4
  86. package/dist/cli/lib.mjs.map +1 -1
  87. package/dist/cli/query/index.d.mts +0 -1
  88. package/dist/cli/services/application.d.mts +12 -1
  89. package/dist/cli/services/auth/service.d.mts +2 -0
  90. package/dist/cli/services/executor/service.d.mts +1 -1
  91. package/dist/cli/services/http-adapter/bundler.d.mts +3 -1
  92. package/dist/cli/services/http-adapter/service.d.mts +2 -1
  93. package/dist/cli/services/resolver/service.d.mts +1 -1
  94. package/dist/cli/services/tailordb/service.d.mts +3 -1
  95. package/dist/cli/services/workflow/bundler.d.mts +2 -1
  96. package/dist/cli/services/workflow/service.d.mts +1 -1
  97. package/dist/cli/shared/args.d.mts +1 -1
  98. package/dist/cli/shared/client.d.mts +1 -1
  99. package/dist/cli/shared/config-loader.d.mts +1 -2
  100. package/dist/cli/shared/context.d.mts +2 -1
  101. package/dist/cli/shared/readonly-guard.d.mts +25 -0
  102. package/dist/cli/shared/script-executor.d.mts +0 -1
  103. package/dist/cli/shared/seed-chunker.d.mts +7 -3
  104. package/dist/cli/shared/tailordb-namespaces.d.mts +37 -0
  105. package/dist/cli/shared/type-generator.d.mts +0 -1
  106. package/dist/cli/shared/workspace-name.d.mts +1 -0
  107. package/dist/completion/zsh-worker.zsh +15 -303
  108. package/dist/configure/config/index.d.mts +0 -1
  109. package/dist/configure/config/types.d.mts +2 -2
  110. package/dist/configure/index.d.mts +14 -4
  111. package/dist/configure/index.mjs +201 -6
  112. package/dist/configure/index.mjs.map +1 -1
  113. package/dist/configure/services/aigateway/index.d.mts +0 -1
  114. package/dist/configure/services/aigateway/types.d.mts +0 -1
  115. package/dist/configure/services/auth/index.d.mts +0 -1
  116. package/dist/configure/services/auth/types.d.mts +15 -14
  117. package/dist/configure/services/executor/executor.d.mts +2 -13
  118. package/dist/configure/services/executor/index.d.mts +1 -0
  119. package/dist/configure/services/executor/operation.d.mts +9 -4
  120. package/dist/configure/services/executor/trigger/event.d.mts +0 -1
  121. package/dist/configure/services/executor/trigger/index.d.mts +0 -1
  122. package/dist/configure/services/executor/trigger/schedule.d.mts +0 -1
  123. package/dist/configure/services/executor/trigger/webhook.d.mts +0 -1
  124. package/dist/configure/services/http-adapter/http-adapter.d.mts +1 -2
  125. package/dist/configure/services/idp/index.d.mts +1 -5
  126. package/dist/configure/services/idp/permission.d.mts +4 -5
  127. package/dist/configure/services/idp/types.d.mts +0 -1
  128. package/dist/configure/services/index.d.mts +5 -0
  129. package/dist/configure/services/resolver/resolver.d.mts +1 -0
  130. package/dist/configure/services/resolver/types.d.mts +0 -1
  131. package/dist/configure/services/secrets/index.d.mts +0 -1
  132. package/dist/configure/services/secrets/types.d.mts +0 -1
  133. package/dist/configure/services/staticwebsite/index.d.mts +0 -1
  134. package/dist/configure/services/staticwebsite/types.d.mts +0 -1
  135. package/dist/configure/services/tailordb/permission.d.mts +4 -5
  136. package/dist/configure/services/tailordb/schema.d.mts +86 -56
  137. package/dist/configure/services/tailordb/types.d.mts +66 -17
  138. package/dist/configure/services/workflow/execution-policy.d.mts +2 -3
  139. package/dist/configure/services/workflow/execution-policy.types.d.mts +0 -1
  140. package/dist/configure/services/workflow/index.d.mts +1 -0
  141. package/dist/configure/services/workflow/job.d.mts +0 -1
  142. package/dist/configure/services/workflow/wait-point.d.mts +0 -1
  143. package/dist/configure/services/workflow/workflow.d.mts +1 -1
  144. package/dist/configure/types/field.d.mts +1 -2
  145. package/dist/configure/types/field.types.d.mts +6 -45
  146. package/dist/configure/types/index.d.mts +1 -0
  147. package/dist/configure/types/type.d.mts +2 -11
  148. package/dist/{crashreport-D3RjuSYb.mjs → crashreport-0ioNRZ4K.mjs} +1 -1
  149. package/dist/{crashreport-Cg-pqRJV.mjs → crashreport-CxHne11E.mjs} +4 -3
  150. package/dist/{crashreport-Cg-pqRJV.mjs.map → crashreport-CxHne11E.mjs.map} +1 -1
  151. package/dist/errors-DfnF4ibq.mjs +100 -0
  152. package/dist/errors-DfnF4ibq.mjs.map +1 -0
  153. package/dist/{globals-BjhJJ2dN.mjs → globals-D-YbJKW-.mjs} +16 -10
  154. package/dist/globals-D-YbJKW-.mjs.map +1 -0
  155. package/dist/kysely/index.d.mts +3 -4
  156. package/dist/{kysely-type-D-zflMGf.mjs → kysely-type-DqIRgDYR.mjs} +4 -3
  157. package/dist/kysely-type-DqIRgDYR.mjs.map +1 -0
  158. package/dist/{logger-BEiZZ3qT.mjs → logger-BwS4ppwO.mjs} +3 -3
  159. package/dist/logger-BwS4ppwO.mjs.map +1 -0
  160. package/dist/parser/service/auth/index.d.mts +1 -1
  161. package/dist/parser/service/auth/schema.d.mts +2 -0
  162. package/dist/parser/service/http-adapter/index.d.mts +1 -1
  163. package/dist/parser/service/idp/types.d.mts +1 -0
  164. package/dist/parser/service/tailordb/type-source.d.mts +10 -0
  165. package/dist/parser/service/tailordb/types.d.mts +6 -1
  166. package/dist/plugin/builtin/enum-constants/index.d.mts +0 -1
  167. package/dist/plugin/builtin/file-utils/index.d.mts +0 -1
  168. package/dist/plugin/builtin/kysely-type/index.d.mts +0 -1
  169. package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
  170. package/dist/plugin/builtin/seed/index.d.mts +0 -1
  171. package/dist/plugin/get-generated-type.d.mts +0 -1
  172. package/dist/plugin/manager.d.mts +2 -1
  173. package/dist/plugin/types.d.mts +0 -1
  174. package/dist/plugin/with-context.d.mts +0 -1
  175. package/dist/{register-ts-hook-BM1caLT0.mjs → register-ts-hook-DL31O2W9.mjs} +3076 -1744
  176. package/dist/register-ts-hook-DL31O2W9.mjs.map +1 -0
  177. package/dist/{registry-BSbq6SPo.mjs → registry-CC3CbQiF.mjs} +3 -3
  178. package/dist/registry-CC3CbQiF.mjs.map +1 -0
  179. package/dist/runtime/aigateway.d.mts +0 -1
  180. package/dist/runtime/authconnection.d.mts +0 -1
  181. package/dist/runtime/context.d.mts +0 -1
  182. package/dist/runtime/field-parse.d.mts +10 -0
  183. package/dist/runtime/globals.d.mts +5 -3
  184. package/dist/runtime/index.d.mts +0 -1
  185. package/dist/runtime/index.mjs +1 -1
  186. package/dist/runtime/types.d.mts +9 -4
  187. package/dist/runtime/workflow.d.mts +70 -10
  188. package/dist/runtime/workflow.mjs +1 -1
  189. package/dist/{schema-C4LYbXVG.mjs → schema--xYWRGfe.mjs} +272 -51
  190. package/dist/schema--xYWRGfe.mjs.map +1 -0
  191. package/dist/{secret-file-aoNXJmKa.mjs → secret-file-C3J4Gy8r.mjs} +2 -27
  192. package/dist/secret-file-C3J4Gy8r.mjs.map +1 -0
  193. package/dist/{secretmanager-Bd45j7an.mjs → secretmanager-IY4UvinW.mjs} +42 -9
  194. package/dist/secretmanager-IY4UvinW.mjs.map +1 -0
  195. package/dist/seed/index.d.mts +3 -2
  196. package/dist/{service-ufH7sS8o.mjs → service-CnHz9rwz.mjs} +47 -20
  197. package/dist/service-CnHz9rwz.mjs.map +1 -0
  198. package/dist/{service-DeZeYa06.mjs → service-DaeJlBoH.mjs} +3 -3
  199. package/dist/{service-DeZeYa06.mjs.map → service-DaeJlBoH.mjs.map} +1 -1
  200. package/dist/service-nU6ITOHL.mjs +3 -0
  201. package/dist/service_pb-BoLM0X4K.mjs +167 -0
  202. package/dist/service_pb-BoLM0X4K.mjs.map +1 -0
  203. package/dist/{service_pb-B2FF59sP.mjs → service_pb-r1T7kpJc.mjs} +1 -1
  204. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +0 -1
  205. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +0 -1
  206. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +0 -1
  207. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +0 -1
  208. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +0 -1
  209. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +0 -1
  210. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +0 -1
  211. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +0 -1
  212. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +0 -1
  213. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +0 -1
  214. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +0 -1
  215. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +0 -1
  216. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +0 -1
  217. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +0 -1
  218. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +0 -1
  219. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +0 -1
  220. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +0 -1
  221. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +0 -1
  222. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +0 -1
  223. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +0 -1
  224. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +0 -1
  225. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +0 -1
  226. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +0 -1
  227. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +0 -1
  228. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +0 -1
  229. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +0 -1
  230. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +0 -1
  231. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +0 -1
  232. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +0 -1
  233. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +0 -1
  234. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +0 -1
  235. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +0 -1
  236. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +0 -1
  237. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +0 -1
  238. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +0 -1
  239. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +0 -1
  240. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +0 -1
  241. package/dist/types/aigateway.generated.d.mts +5 -2
  242. package/dist/types/auth-connection.generated.d.mts +24 -11
  243. package/dist/types/auth.generated.d.mts +115 -84
  244. package/dist/types/executor.generated.d.mts +133 -123
  245. package/dist/types/helpers.d.mts +7 -6
  246. package/dist/types/http-adapter.generated.d.mts +11 -5
  247. package/dist/types/idp.generated.d.mts +536 -524
  248. package/dist/types/resolver.generated.d.mts +26 -11
  249. package/dist/types/staticwebsite.generated.d.mts +7 -3
  250. package/dist/types/tailordb.generated.d.mts +57 -29
  251. package/dist/types/workflow.generated.d.mts +9 -4
  252. package/dist/user-agent-Bgsszb5I.mjs +28 -0
  253. package/dist/user-agent-Bgsszb5I.mjs.map +1 -0
  254. package/dist/utils/test/index.d.mts +1 -2
  255. package/dist/utils/test/index.mjs +36 -10
  256. package/dist/utils/test/index.mjs.map +1 -1
  257. package/dist/utils/test/mock.d.mts +0 -1
  258. package/dist/vitest/environment.mjs +1 -1
  259. package/dist/vitest/index.d.mts +9 -9
  260. package/dist/vitest/index.mjs +591 -173
  261. package/dist/vitest/index.mjs.map +1 -1
  262. package/dist/vitest/mock-kysely.d.mts +0 -1
  263. package/dist/vitest/mock.d.mts +8 -8
  264. package/dist/vitest/mocks/aigateway.d.mts +16 -6
  265. package/dist/vitest/mocks/authconnection.d.mts +16 -6
  266. package/dist/vitest/mocks/file.d.mts +23 -6
  267. package/dist/vitest/mocks/iconv.d.mts +28 -4
  268. package/dist/vitest/mocks/idp.d.mts +26 -10
  269. package/dist/vitest/mocks/secretmanager.d.mts +16 -5
  270. package/dist/vitest/mocks/tailordb.d.mts +54 -10
  271. package/dist/vitest/mocks/workflow.d.mts +72 -21
  272. package/dist/vitest/setup.mjs +2 -2
  273. package/dist/vitest/workflow-local.d.mts +1 -0
  274. package/dist/workflow-9kHGKxF2.mjs +64 -0
  275. package/dist/workflow-9kHGKxF2.mjs.map +1 -0
  276. package/dist/{service_pb-B5w9rjPY.mjs → workspace_resource_pb-Db3fv68L.mjs} +57 -165
  277. package/dist/workspace_resource_pb-Db3fv68L.mjs.map +1 -0
  278. package/docs/cli/application.md +61 -15
  279. package/docs/cli/setup.md +1 -1
  280. package/docs/cli/tailordb.md +8 -140
  281. package/docs/cli/workspace.md +6 -4
  282. package/docs/cli-reference.md +18 -14
  283. package/docs/github-actions.md +8 -0
  284. package/docs/migration/v2.md +247 -0
  285. package/docs/runtime.md +5 -6
  286. package/docs/services/aigateway.md +2 -0
  287. package/docs/services/executor.md +5 -0
  288. package/docs/services/tailordb.md +144 -68
  289. package/docs/services/workflow.md +3 -3
  290. package/docs/testing.md +105 -89
  291. package/package.json +22 -25
  292. package/dist/application-BO4ZF8wP.mjs +0 -3
  293. package/dist/application-BX13RArL.mjs.map +0 -1
  294. package/dist/cli/erd-viewer-assets/app.js +0 -1424
  295. package/dist/cli/erd-viewer-assets/index.html +0 -77
  296. package/dist/cli/erd-viewer-assets/serve.json +0 -13
  297. package/dist/cli/erd-viewer-assets/styles.css +0 -1036
  298. package/dist/cli/shared/trigger-context.d.mts +0 -1
  299. package/dist/configure/types/field-runtime.d.mts +0 -17
  300. package/dist/errors-118wUDRr.mjs +0 -42
  301. package/dist/errors-118wUDRr.mjs.map +0 -1
  302. package/dist/field-runtime-CAnh_oow.mjs +0 -183
  303. package/dist/field-runtime-CAnh_oow.mjs.map +0 -1
  304. package/dist/globals-BjhJJ2dN.mjs.map +0 -1
  305. package/dist/kysely-type-D-zflMGf.mjs.map +0 -1
  306. package/dist/logger-BEiZZ3qT.mjs.map +0 -1
  307. package/dist/register-ts-hook-BM1caLT0.mjs.map +0 -1
  308. package/dist/registry-BSbq6SPo.mjs.map +0 -1
  309. package/dist/resource_pb-BRv7AMXK.mjs +0 -49
  310. package/dist/resource_pb-BRv7AMXK.mjs.map +0 -1
  311. package/dist/schema-C4LYbXVG.mjs.map +0 -1
  312. package/dist/secret-file-aoNXJmKa.mjs.map +0 -1
  313. package/dist/secretmanager-Bd45j7an.mjs.map +0 -1
  314. package/dist/service-CkIwEctX.mjs +0 -3
  315. package/dist/service-ufH7sS8o.mjs.map +0 -1
  316. package/dist/service_pb-B5w9rjPY.mjs.map +0 -1
  317. package/dist/types-C-lQ4se3.mjs +0 -4
  318. package/dist/types-CXF2OYdR.mjs +0 -199
  319. package/dist/types-CXF2OYdR.mjs.map +0 -1
  320. package/dist/workflow-GNuSnsTx.mjs +0 -22
  321. package/dist/workflow-GNuSnsTx.mjs.map +0 -1
@@ -1,32 +1,31 @@
1
+ import { FieldOptions, FieldOutput, FieldValidateInput, TailorFieldType, TailorToTs } from "../../types/field.types.mjs";
1
2
  import { InferredAttributes, TailorPrincipal } from "../../../runtime/types.mjs";
2
3
  import { InferFieldsOutput, TypeLevelError, output } from "../../../types/helpers.mjs";
3
- import { FieldOptions, FieldOutput, FieldValidateInput, TailorFieldType, TailorToTs, Validators } from "../../types/field.types.mjs";
4
- import { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeNestedDBFields, Hook, Hooks, IndexDef, RelationType, SerialConfig, TailorDBField as TailorDBField$1, TailorDBType as TailorDBType$1, TypeFeatures } from "./types.mjs";
4
+ import { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeDefaultedDBFields, ExcludeHookedDBFields, ExcludeNestedDBFields, Hook, IndexDef, RelationType, SerialConfig, TailorDBField as TailorDBField$1, TailorDBType as TailorDBType$1, TypeFeatures, TypeHook, TypeValidateFn } from "./types.mjs";
5
5
  import { AllowedValues, AllowedValuesOutput } from "../../types/field.mjs";
6
- import { FieldParseArgs, FieldParseInternalArgs } from "../../types/field-runtime.mjs";
6
+ import { FieldParseArgs } from "../../../runtime/field-parse.mjs";
7
7
  import { PluginConfigs } from "../../../plugin/types.mjs";
8
8
  import { TailorTypeGqlPermission, TailorTypePermission } from "./permission.mjs";
9
9
  import { StandardSchemaV1 } from "@standard-schema/spec";
10
-
11
10
  //#region src/configure/services/tailordb/schema.d.ts
12
11
  type AnyBuilderMethod = any;
13
12
  type TailorAnyDBField = Omit<TailorDBField$1<AnyBuilderMethod, AnyBuilderMethod>, "fields"> & {
14
13
  readonly fields: Record<string, AnyBuilderMethod>;
15
14
  _metadata: DBFieldMetadata;
16
15
  parse: AnyBuilderMethod;
17
- _parseInternal: AnyBuilderMethod;
18
16
  readonly typeName: TypeLevelError<string>;
19
17
  description: AnyBuilderMethod;
20
18
  relation: AnyBuilderMethod;
21
19
  index: AnyBuilderMethod;
22
20
  unique: AnyBuilderMethod;
23
21
  vector: AnyBuilderMethod;
22
+ default: AnyBuilderMethod;
24
23
  hooks: AnyBuilderMethod;
25
24
  validate: AnyBuilderMethod;
26
25
  serial: AnyBuilderMethod;
27
26
  clone: AnyBuilderMethod;
28
27
  };
29
- type TailorAnyDBType = TailorDBType<any, any>;
28
+ type TailorAnyDBType = TailorDBType<any, any, any>;
30
29
  type IsAny<T> = 0 extends 1 & T ? true : false;
31
30
  type DBFieldTypeNameMethod<Defined extends DefinedDBFieldMetadata> = IsAny<Defined> extends true ? TypeLevelError<string> : TypeLevelError<"typeName cannot be used on TailorDB fields">;
32
31
  type WithDBFieldDescription<Defined> = Defined & {
@@ -67,6 +66,9 @@ type WithDBFieldHooks<Defined, H> = Defined & {
67
66
  };
68
67
  serial: false;
69
68
  };
69
+ type WithDBFieldDefault<Defined> = Defined & {
70
+ default: true;
71
+ };
70
72
  type WithDBFieldValidate<Defined> = Defined & {
71
73
  validate: true;
72
74
  };
@@ -96,6 +98,30 @@ type DBFieldCloneOutput<Output, NewOpt extends FieldOptions> = NewOpt extends {
96
98
  } ? DBFieldCloneArrayOutput<Output, NewOpt> | null : NewOpt extends {
97
99
  optional: false;
98
100
  } ? DBFieldCloneArrayOutput<Output, NewOpt> : null extends Output ? DBFieldCloneArrayOutput<Output, NewOpt> | null : DBFieldCloneArrayOutput<Output, NewOpt>;
101
+ type DBFieldCloneOptions<Defined extends DefinedDBFieldMetadata> = Omit<FieldOptions, "array"> & {
102
+ array?: Defined extends {
103
+ validate: unknown;
104
+ } ? Defined["array"] : boolean;
105
+ };
106
+ type InvalidValidatedArrayCloneKeys<Fields extends Record<string, TailorAnyDBField>, K extends keyof Fields, Opt extends FieldOptions> = Opt extends {
107
+ array: infer ArrayOption;
108
+ } ? { [P in K]: Fields[P] extends TailorDBField<infer Defined, infer _Output> ? Defined extends {
109
+ validate: unknown;
110
+ } ? ArrayOption extends Defined["array"] ? never : P : never : never; }[K] : never;
111
+ type DBFieldsCloneOptionsGuard<Fields extends Record<string, TailorAnyDBField>, K extends keyof Fields, Opt extends FieldOptions> = [InvalidValidatedArrayCloneKeys<Fields, K, Opt>] extends [never] ? unknown : TypeLevelError<"array cannot be changed on fields with custom validation">;
112
+ type DefinedDBTypeMetadata = {
113
+ hooks?: true;
114
+ validate?: true;
115
+ features?: true;
116
+ indexes?: true;
117
+ files?: true;
118
+ permission?: true;
119
+ gqlPermission?: true;
120
+ description?: true;
121
+ };
122
+ type WithDBTypeMetadata<Defined extends DefinedDBTypeMetadata, Key extends keyof DefinedDBTypeMetadata> = Defined & Record<Key, true>;
123
+ type DBTypeDuplicateInputGuard<Defined extends DefinedDBTypeMetadata, Key extends keyof DefinedDBTypeMetadata, Input, Message extends string> = IsAny<Defined> extends true ? Input : Defined extends Record<Key, unknown> ? TypeLevelError<Message> : Input;
124
+ type DBTypeDuplicateRestGuard<Defined extends DefinedDBTypeMetadata, Key extends keyof DefinedDBTypeMetadata, Input extends unknown[], Message extends string> = IsAny<Defined> extends true ? Input : Defined extends Record<Key, unknown> ? [TypeLevelError<Message>, ...TypeLevelError<Message>[]] : Input;
99
125
  type FileKeyConflictError<Fields extends Record<string, TailorAnyDBField>, User extends object> = Partial<Record<keyof output<TailorDBType<Fields, User>> & string, TypeLevelError<"file keys cannot use existing field names">>>;
100
126
  type DBFieldDescriptionFn<Defined extends DefinedDBFieldMetadata, Output> = (description: string) => TailorDBField<WithDBFieldDescription<Defined>, Output>;
101
127
  type DBFieldRelationFn<Defined extends DefinedDBFieldMetadata, Output> = {
@@ -105,7 +131,9 @@ type DBFieldRelationFn<Defined extends DefinedDBFieldMetadata, Output> = {
105
131
  type DBFieldIndexFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldIndex<Defined>, Output>;
106
132
  type DBFieldUniqueFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldUnique<Defined>, Output>;
107
133
  type DBFieldVectorFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldVector<Defined>, Output>;
108
- type DBFieldHooksFn<Defined extends DefinedDBFieldMetadata, Output> = <const H extends Hook<unknown, Output>>(hooks: H) => TailorDBField<WithDBFieldHooks<Defined, H>, Output>;
134
+ type DBFieldHooksFn<Defined extends DefinedDBFieldMetadata, Output> = <const H extends Hook<Output, Defined extends {
135
+ default: true;
136
+ } ? Output | null | undefined : Output>>(hooks: H) => TailorDBField<WithDBFieldHooks<Defined, H>, Output>;
109
137
  type DBFieldValidateFn<Defined extends DefinedDBFieldMetadata, Output> = (...validate: FieldValidateInput<Output>[]) => TailorDBField<WithDBFieldValidate<Defined>, Output>;
110
138
  type DBFieldSerialFn<Defined extends DefinedDBFieldMetadata, Output> = (config: SerialConfig<Defined["type"] & ("integer" | "string")>) => TailorDBField<WithDBFieldSerial<Defined>, Output>;
111
139
  type DBFieldDescriptionMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldDescriptionFn<Defined, Output> : Defined extends {
@@ -114,16 +142,13 @@ type DBFieldDescriptionMethod<Defined extends DefinedDBFieldMetadata, Output> =
114
142
  type DBFieldRelationMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldRelationFn<Defined, Output> : Defined extends {
115
143
  relation: unknown;
116
144
  } ? TypeLevelError<".relation() has already been set"> : DBFieldRelationFn<Defined, Output>;
145
+ type DBFieldArrayCheck<A extends boolean, Ok, Msg extends string> = A extends true ? TypeLevelError<Msg> : Ok;
117
146
  type DBFieldIndexMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldIndexFn<Defined, Output> : Defined extends {
118
147
  index: unknown;
119
- } ? TypeLevelError<".index() has already been set"> : boolean extends Defined["array"] ? DBFieldIndexFn<Defined, Output> | TypeLevelError<"index cannot be set on array fields"> : Defined extends {
120
- array: true;
121
- } ? TypeLevelError<"index cannot be set on array fields"> : DBFieldIndexFn<Defined, Output>;
148
+ } ? TypeLevelError<".index() has already been set"> : DBFieldArrayCheck<Defined["array"], DBFieldIndexFn<Defined, Output>, "index cannot be set on array fields">;
122
149
  type DBFieldUniqueMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldUniqueFn<Defined, Output> : Defined extends {
123
150
  unique: unknown;
124
- } ? TypeLevelError<".unique() has already been set"> : boolean extends Defined["array"] ? DBFieldUniqueFn<Defined, Output> | TypeLevelError<"unique cannot be set on array fields"> : Defined extends {
125
- array: true;
126
- } ? TypeLevelError<"unique cannot be set on array fields"> : DBFieldUniqueFn<Defined, Output>;
151
+ } ? TypeLevelError<".unique() has already been set"> : DBFieldArrayCheck<Defined["array"], DBFieldUniqueFn<Defined, Output>, "unique cannot be set on array fields">;
127
152
  type DBFieldVectorMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldVectorFn<Defined, Output> : Defined extends {
128
153
  vector: unknown;
129
154
  } ? TypeLevelError<".vector() has already been set"> : Defined extends {
@@ -155,6 +180,14 @@ type DBFieldSerialMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny
155
180
  type: "integer" | "string";
156
181
  array: false;
157
182
  } ? DBFieldSerialFn<Defined, Output> : TypeLevelError<"serial can only be set on non-array integer or string fields">;
183
+ type DBFieldDefaultFn<Defined extends DefinedDBFieldMetadata, Output> = (value: Output extends null ? NonNullable<Output> : Output) => TailorDBField<WithDBFieldDefault<Defined>, Output>;
184
+ type DBFieldDefaultMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldDefaultFn<Defined, Output> : Defined extends {
185
+ default: unknown;
186
+ } ? TypeLevelError<".default() has already been set"> : Defined extends {
187
+ type: "nested";
188
+ } ? TypeLevelError<"default cannot be set on nested type fields"> : Defined extends {
189
+ serial: true;
190
+ } ? TypeLevelError<"default cannot be set on serial fields"> : null extends Output ? TypeLevelError<"default cannot be set on optional fields"> : DBFieldDefaultFn<Defined, Output>;
158
191
  /**
159
192
  * Full TailorDBField interface with builder methods.
160
193
  * Extends the minimal structural interface from types/ with fluent API methods.
@@ -166,11 +199,6 @@ interface TailorDBField<Defined extends DefinedDBFieldMetadata = DefinedDBFieldM
166
199
  * Parse and validate a value against this field's validation rules
167
200
  */
168
201
  parse(args: FieldParseArgs): StandardSchemaV1.Result<Output>;
169
- /**
170
- * Internal parse method that tracks field path for nested validation
171
- * @private
172
- */
173
- _parseInternal(args: FieldParseInternalArgs): StandardSchemaV1.Result<Output>;
174
202
  /**
175
203
  * typeName is not available on TailorDB fields.
176
204
  * Use typeName on pipeline fields (t.enum / t.object) instead.
@@ -196,12 +224,24 @@ interface TailorDBField<Defined extends DefinedDBFieldMetadata = DefinedDBFieldM
196
224
  * Enable vector search on the field (string type only)
197
225
  */
198
226
  vector: DBFieldVectorMethod<Defined, Output>;
227
+ /**
228
+ * Set a default value for the field on create. When the field is required,
229
+ * this makes it optional in the Create input — the default fills in when
230
+ * no value (or a nullish hook result) is provided.
231
+ *
232
+ * For datetime/date/time fields, pass `"now"` to use the operation timestamp.
233
+ */
234
+ default: DBFieldDefaultMethod<Defined, Output>;
199
235
  /**
200
236
  * Add hooks for create/update operations on this field.
201
237
  */
202
238
  hooks: DBFieldHooksMethod<Defined, Output>;
203
239
  /**
204
240
  * Add validation functions to the field.
241
+ *
242
+ * Validators receive `{ value, data, user }` and run after hooks and
243
+ * built-in type validation; they are skipped when built-in validation
244
+ * fails. For array fields, `value` is the complete array.
205
245
  */
206
246
  validate: DBFieldValidateMethod<Defined, Output>;
207
247
  /**
@@ -209,30 +249,31 @@ interface TailorDBField<Defined extends DefinedDBFieldMetadata = DefinedDBFieldM
209
249
  */
210
250
  serial: DBFieldSerialMethod<Defined, Output>;
211
251
  /**
212
- * Clone the field with optional overrides for field options
252
+ * Clone the field with optional overrides for field options.
253
+ * The `array` option cannot change on fields with custom validation.
213
254
  */
214
- clone<const NewOpt extends FieldOptions>(options?: NewOpt): TailorDBField<WithDBFieldCloneOptions<Defined, NewOpt>, DBFieldCloneOutput<Output, NewOpt>>;
255
+ clone<const NewOpt extends DBFieldCloneOptions<Defined>>(options?: NewOpt): TailorDBField<WithDBFieldCloneOptions<Defined, NewOpt>, DBFieldCloneOutput<Output, NewOpt>>;
215
256
  }
216
257
  /**
217
258
  * Full TailorDBType interface with builder methods.
218
259
  * Extends the minimal structural interface from types/ with fluent API methods.
219
260
  */
220
- interface TailorDBType<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> extends TailorDBType$1<Fields, User> {
261
+ interface TailorDBType<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes, Defined extends DefinedDBTypeMetadata = any> extends TailorDBType$1<Fields, User> {
221
262
  _description?: string;
222
- hooks(hooks: Hooks<Fields>): TailorDBType<Fields, User>;
223
- validate(validators: Validators<Fields>): TailorDBType<Fields, User>;
224
- features(features: Omit<TypeFeatures, "pluralForm">): TailorDBType<Fields, User>;
225
- indexes(...indexes: IndexDef<TailorDBType<Fields, User>>[]): TailorDBType<Fields, User>;
226
- files<const F extends string>(files: Record<F, string> & FileKeyConflictError<Fields, User>): TailorDBType<Fields, User>;
227
- permission<U extends object = User, P extends TailorTypePermission<U, output<TailorDBType<Fields, User>>> = TailorTypePermission<U, output<TailorDBType<Fields, User>>>>(permission: P): TailorDBType<Fields, U>;
228
- gqlPermission<U extends object = User, P extends TailorTypeGqlPermission<U> = TailorTypeGqlPermission<U>>(permission: P): TailorDBType<Fields, U>;
229
- description(description: string): TailorDBType<Fields, User>;
263
+ hooks(hook: DBTypeDuplicateInputGuard<Defined, "hooks", TypeHook<Fields>, ".hooks() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "hooks">>;
264
+ validate(fn: DBTypeDuplicateInputGuard<Defined, "validate", TypeValidateFn<Fields>, ".validate() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "validate">>;
265
+ features(features: DBTypeDuplicateInputGuard<Defined, "features", Omit<TypeFeatures, "pluralForm">, ".features() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "features">>;
266
+ indexes(...indexes: DBTypeDuplicateRestGuard<Defined, "indexes", IndexDef<TailorDBType<Fields, User, Defined>>[], ".indexes() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "indexes">>;
267
+ files<const F extends string>(files: DBTypeDuplicateInputGuard<Defined, "files", Record<F, string> & FileKeyConflictError<Fields, User>, ".files() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "files">>;
268
+ permission<U extends object = User, P extends TailorTypePermission<U, output<TailorDBType<Fields, User, Defined>>> = TailorTypePermission<U, output<TailorDBType<Fields, User, Defined>>>>(permission: DBTypeDuplicateInputGuard<Defined, "permission", P, ".permission() has already been set">): TailorDBType<Fields, U, WithDBTypeMetadata<Defined, "permission">>;
269
+ gqlPermission<U extends object = User, P extends TailorTypeGqlPermission<U> = TailorTypeGqlPermission<U>>(permission: DBTypeDuplicateInputGuard<Defined, "gqlPermission", P, ".gqlPermission() has already been set">): TailorDBType<Fields, U, WithDBTypeMetadata<Defined, "gqlPermission">>;
270
+ description(description: DBTypeDuplicateInputGuard<Defined, "description", string, ".description() has already been set">): TailorDBType<Fields, User, WithDBTypeMetadata<Defined, "description">>;
230
271
  pickFields<K extends keyof Fields>(keys: K[]): Pick<Fields, K>;
231
- pickFields<K extends keyof Fields, const Opt extends FieldOptions>(keys: K[], options: Opt): { [P in K]: Fields[P] extends TailorDBField<infer D, infer O> ? TailorDBField<WithDBFieldCloneOptions<D, Opt>, DBFieldCloneOutput<O, Opt>> : never };
272
+ pickFields<K extends keyof Fields, const Opt extends FieldOptions>(keys: K[], options: Opt & DBFieldsCloneOptionsGuard<Fields, K, Opt>): { [P in K]: Fields[P] extends TailorDBField<infer D, infer O> ? TailorDBField<WithDBFieldCloneOptions<D, Opt>, DBFieldCloneOutput<O, Opt>> : never; };
232
273
  omitFields<K extends keyof Fields>(keys: K[]): Omit<Fields, K>;
233
- plugin<P extends keyof PluginConfigs<keyof Fields & string>>(config: { [K in P]: PluginConfigs<keyof Fields & string>[K] }): TailorDBType<Fields, User>;
274
+ plugin<P extends keyof PluginConfigs<keyof Fields & string>>(config: { [K in P]: PluginConfigs<keyof Fields & string>[K]; }): TailorDBType<Fields, User, Defined>;
234
275
  }
235
- type TailorDBInstance<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> = TailorDBType<Fields, User>;
276
+ type TailorDBInstance<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes, Defined extends DefinedDBTypeMetadata = any> = TailorDBType<Fields, User, Defined>;
236
277
  interface RelationConfig<S extends RelationType, T extends TailorDBType> {
237
278
  type: S;
238
279
  toward: {
@@ -358,7 +399,7 @@ declare function _enum<const V extends AllowedValues, const Opt extends FieldOpt
358
399
  * @example db.object({ street: db.string(), city: db.string(), zip: db.string() })
359
400
  * @example db.object({ name: db.string() }, { optional: true })
360
401
  */
361
- declare function object<const F extends Record<string, TailorAnyDBField> & ExcludeNestedDBFields<F>, const Opt extends FieldOptions>(fields: F, options?: Opt): TailorDBField<{
402
+ declare function object<const F extends Record<string, TailorAnyDBField> & ExcludeNestedDBFields<F> & ExcludeHookedDBFields<F> & ExcludeDefaultedDBFields<F>, const Opt extends FieldOptions>(fields: F, options?: Opt): TailorDBField<{
362
403
  type: "nested";
363
404
  array: Opt extends {
364
405
  array: true;
@@ -368,9 +409,9 @@ declare const idField: TailorDBFieldInstance<"uuid", FieldOptions, string>;
368
409
  type idField = typeof idField;
369
410
  type DBTable<F extends {
370
411
  id?: never;
371
- } & Record<string, TailorAnyDBField>> = TailorDBInstance<{
412
+ } & Record<string, TailorAnyDBField>, Defined extends DefinedDBTypeMetadata = DefinedDBTypeMetadata> = TailorDBInstance<{
372
413
  id: idField;
373
- } & F>;
414
+ } & F, InferredAttributes, Defined>;
374
415
  /**
375
416
  * Creates a new database table with the specified fields.
376
417
  * An `id` field (UUID) is automatically added to every table.
@@ -401,7 +442,7 @@ declare function dbTable<const F extends {
401
442
  */
402
443
  declare function dbTable<const F extends {
403
444
  id?: never;
404
- } & Record<string, TailorAnyDBField>>(name: string | [string, string], description: string, fields: F): DBTable<F>;
445
+ } & Record<string, TailorAnyDBField>>(name: string | [string, string], description: string, fields: F): DBTable<F, WithDBTypeMetadata<DefinedDBTypeMetadata, "description">>;
405
446
  /** TailorDB schema builder utilities for defining tables and fields. */
406
447
  declare const db: {
407
448
  table: typeof dbTable;
@@ -418,10 +459,9 @@ declare const db: {
418
459
  object: typeof object;
419
460
  fields: {
420
461
  /**
421
- * Creates standard timestamp fields (createdAt, updatedAt) with auto-hooks.
422
- * createdAt and updatedAt are set on create.
423
- * User-specified timestamp values are respected when provided (e.g. seeding
424
- * historical records); the current time is used only when the value is omitted.
462
+ * Creates standard timestamp fields (createdAt, updatedAt) with automatic defaults.
463
+ * Both fields default to the current time on create. updatedAt is also refreshed on update.
464
+ * User-specified values are respected when provided (e.g. seeding historical records).
425
465
  * @returns An object with createdAt and updatedAt fields
426
466
  * @example
427
467
  * const model = db.table("Model", {
@@ -430,24 +470,14 @@ declare const db: {
430
470
  * });
431
471
  */
432
472
  timestamps: () => {
433
- createdAt: TailorDBField<WithDBFieldDescription<WithDBFieldHooks<DBFieldDefined<"datetime", FieldOptions>, {
434
- readonly create: ({
435
- value
436
- }: {
437
- value: string | Date | null;
438
- data: unknown;
439
- invoker: TailorPrincipal | null;
440
- }) => string | Date;
441
- }>>, string | Date>;
442
- updatedAt: TailorDBField<WithDBFieldDescription<WithDBFieldHooks<DBFieldDefined<"datetime", FieldOptions>, {
443
- readonly create: ({
444
- value
445
- }: {
446
- value: string | Date | null;
447
- data: unknown;
473
+ createdAt: TailorDBField<WithDBFieldDescription<WithDBFieldDefault<DBFieldDefined<"datetime", FieldOptions>>>, string | Date>;
474
+ updatedAt: TailorDBField<WithDBFieldDescription<WithDBFieldHooks<WithDBFieldDefault<DBFieldDefined<"datetime", FieldOptions>>, {
475
+ readonly update: ({ input, now }: {
476
+ input: string | Date | null;
477
+ oldValue: string | Date;
448
478
  invoker: TailorPrincipal | null;
479
+ now: Date;
449
480
  }) => string | Date;
450
- readonly update: () => Date;
451
481
  }>>, string | Date>;
452
482
  };
453
483
  };
@@ -1,9 +1,7 @@
1
+ import { DefinedFieldMetadata, FieldMetadata, TailorField, TailorFieldType } from "../../types/field.types.mjs";
1
2
  import { InferredAttributes, TailorPrincipal } from "../../../runtime/types.mjs";
2
- import { InferFieldsOutput, Prettify, output } from "../../../types/helpers.mjs";
3
- import { DefinedFieldMetadata, FieldMetadata, TailorField } from "../../types/field.types.mjs";
3
+ import { DeepReadonly, InferFieldsOutput, Prettify, output } from "../../../types/helpers.mjs";
4
4
  import { DBFieldMetadata as DBFieldMetadata$1, GqlOperationsInput, RawPermissions, TailorDBServiceConfigInput } from "../../../types/tailordb.generated.mjs";
5
- import { NonEmptyObject } from "type-fest";
6
-
7
5
  //#region src/configure/services/tailordb/types.d.ts
8
6
  type SerialConfig<T extends "string" | "integer" = "string" | "integer"> = Prettify<{
9
7
  start: number;
@@ -23,6 +21,7 @@ interface DBFieldMetadata extends FieldMetadata {
23
21
  serial?: SerialConfig;
24
22
  relation?: boolean;
25
23
  scale?: number;
24
+ default?: unknown;
26
25
  }
27
26
  interface DefinedDBFieldMetadata extends DefinedFieldMetadata {
28
27
  index?: boolean;
@@ -37,6 +36,7 @@ interface DefinedDBFieldMetadata extends DefinedFieldMetadata {
37
36
  };
38
37
  serial?: boolean;
39
38
  relation?: boolean;
39
+ default?: boolean;
40
40
  }
41
41
  type GqlOperationsConfig = GqlOperationsInput;
42
42
  interface RawRelationConfig {
@@ -64,6 +64,11 @@ interface TailorDBTypeMetadata {
64
64
  fields: string[];
65
65
  unique?: boolean;
66
66
  }>;
67
+ typeHook?: {
68
+ create?: Function;
69
+ update?: Function;
70
+ };
71
+ typeValidate?: Function;
67
72
  }
68
73
  /**
69
74
  * Minimal structural interface for TailorDBField.
@@ -91,24 +96,68 @@ interface TailorDBType<Fields extends Record<string, TailorAnyDBField> = any, Us
91
96
  }
92
97
  type TailorAnyDBType = TailorDBType<any, any>;
93
98
  type TailorDBInstance<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> = TailorDBType<Fields, User>;
94
- type HookFn<TValue, TData, TReturn> = (args: {
95
- value: TValue;
96
- data: TData extends Record<string, unknown> ? { readonly [K in keyof TData]?: TData[K] | null | undefined } : unknown;
99
+ type HookArgs<TData> = TData extends Record<string, unknown> ? { readonly [K in keyof TData]?: DeepReadonly<TData[K]> | null | undefined; } : unknown;
100
+ type CreateHookFn<TValue, TReturn> = (args: {
101
+ input: TValue;
102
+ invoker: TailorPrincipal | null;
103
+ now: Date;
104
+ }) => TReturn;
105
+ type UpdateHookFn<TValue, TReturn> = (args: {
106
+ input: TValue;
107
+ oldValue: TReturn;
97
108
  invoker: TailorPrincipal | null;
109
+ now: Date;
98
110
  }) => TReturn;
99
- type Hook<TData, TReturn> = {
100
- create?: HookFn<TReturn | null, TData, TReturn>;
101
- update?: HookFn<TReturn | null, TData, TReturn>;
111
+ type Hook<TReturn, TCreateReturn = TReturn> = {
112
+ create?: CreateHookFn<TReturn | null, TCreateReturn>;
113
+ update?: UpdateHookFn<TReturn | null, TReturn>;
114
+ };
115
+ type DotJoin<A extends string, B extends string> = A extends "" ? B : `${A}.${B}`;
116
+ type DottedPaths<T, Prefix extends string = ""> = string extends keyof T ? string : T extends readonly (infer E)[] ? E extends Record<string, unknown> ? { [K in keyof E & string]: `${Prefix}[${number}].${K}` | DottedPaths<NonNullable<E[K]>, `${Prefix}[${number}].${K}`>; }[keyof E & string] : never : T extends Record<string, unknown> ? { [K in keyof T & string]: DotJoin<Prefix, K> | DottedPaths<NonNullable<T[K]>, DotJoin<Prefix, K>>; }[keyof T & string] : never;
117
+ type TypeValidateFn<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]>; }> = (args: {
118
+ newRecord: DeepReadonly<TData>;
119
+ oldRecord: DeepReadonly<TData> | null;
120
+ invoker: TailorPrincipal | null;
121
+ }, issues: (field: DottedPaths<Omit<TData, "id">>, message: string) => void) => void;
122
+ type TypeCreateHookFn<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]>; }> = (args: {
123
+ input: DeepReadonly<TData>;
124
+ invoker: TailorPrincipal | null;
125
+ now: Date;
126
+ }) => { [K in Exclude<keyof TData & string, "id">]?: TData[K] | null; };
127
+ type TypeUpdateHookFn<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]>; }> = (args: {
128
+ input: HookArgs<TData>;
129
+ oldRecord: DeepReadonly<TData>;
130
+ invoker: TailorPrincipal | null;
131
+ now: Date;
132
+ }) => { [K in Exclude<keyof TData & string, "id">]?: TData[K] | null; };
133
+ type TypeHook<F extends Record<string, TailorAnyDBField>> = {
134
+ create?: TypeCreateHookFn<F>;
135
+ update?: TypeUpdateHookFn<F>;
102
136
  };
103
- type Hooks<F extends Record<string, TailorAnyDBField>, TData = { [K in keyof F]: output<F[K]> }> = NonEmptyObject<{ [K in Exclude<keyof F, "id"> as F[K]["_defined"] extends {
104
- hooks: unknown;
105
- } ? never : F[K]["_defined"] extends {
106
- type: "nested";
107
- } ? never : K]?: Hook<TData, output<F[K]>> }>;
108
137
  type ExcludeNestedDBFields<T extends Record<string, TailorAnyDBField>> = { [K in keyof T]: T[K] extends TailorDBField<{
109
138
  type: "nested";
110
139
  array: boolean;
111
- }, any> ? never : T[K] };
140
+ }, any> ? never : T[K]; };
141
+ type ExcludeHookedDBFields<T extends Record<string, TailorAnyDBField>> = { [K in keyof T]: T[K] extends TailorDBField<{
142
+ type: TailorFieldType;
143
+ array: boolean;
144
+ hooks: {
145
+ create: true;
146
+ update: boolean;
147
+ };
148
+ }, any> ? never : T[K] extends TailorDBField<{
149
+ type: TailorFieldType;
150
+ array: boolean;
151
+ hooks: {
152
+ create: boolean;
153
+ update: true;
154
+ };
155
+ }, any> ? never : T[K]; };
156
+ type ExcludeDefaultedDBFields<T extends Record<string, TailorAnyDBField>> = { [K in keyof T]: T[K] extends TailorDBField<{
157
+ type: TailorFieldType;
158
+ array: boolean;
159
+ default: true;
160
+ }, any> ? never : T[K]; };
112
161
  interface TypeFeatures {
113
162
  pluralForm?: string;
114
163
  aggregation?: true;
@@ -146,4 +195,4 @@ type TailorDBServiceInput = {
146
195
  [namespace: string]: TailorDBServiceConfigInput | TailorDBExternalConfig;
147
196
  };
148
197
  //#endregion
149
- export { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeNestedDBFields, GqlOperationsConfig, Hook, Hooks, IndexDef, PluginAttachment, RawRelationConfig, RelationType, SerialConfig, TailorAnyDBField, TailorAnyDBType, TailorDBExternalConfig, TailorDBField, TailorDBInstance, TailorDBServiceInput, TailorDBType, TailorDBTypeMetadata, TypeFeatures };
198
+ export { DBFieldMetadata, DefinedDBFieldMetadata, ExcludeDefaultedDBFields, ExcludeHookedDBFields, ExcludeNestedDBFields, GqlOperationsConfig, Hook, IndexDef, PluginAttachment, RawRelationConfig, RelationType, SerialConfig, TailorAnyDBField, TailorAnyDBType, TailorDBExternalConfig, TailorDBField, TailorDBInstance, TailorDBServiceInput, TailorDBType, TailorDBTypeMetadata, TypeFeatures, TypeHook, TypeValidateFn };
@@ -1,5 +1,4 @@
1
1
  import { ExecutionPolicyConcurrency, ExecutionPolicyDefInput, ExecutionPolicyExactInstance, ExecutionPolicyGroupOptions, ExecutionPolicyInstance, ExecutionPolicyWildcardInstance, ResolvedExecutionPolicyInstance } from "./execution-policy.types.mjs";
2
-
3
2
  //#region src/configure/services/workflow/execution-policy.d.ts
4
3
  type ResolveKey<Def, Fallback extends string> = Def extends {
5
4
  key: infer K extends string;
@@ -59,10 +58,10 @@ declare function defineWorkflowExecutionPolicy<const N extends string, const D e
59
58
  * }));
60
59
  *
61
60
  * // In a workflow job function:
62
- * await tailor.workflow.triggerJobFunction("worker", args, {
61
+ * await tailor.workflow.startJobFunction("worker", args, {
63
62
  * executionPolicyKey: executionPolicies.premium.key,
64
63
  * });
65
- * await tailor.workflow.triggerJobFunction("worker", args, {
64
+ * await tailor.workflow.startJobFunction("worker", args, {
66
65
  * executionPolicyKey: executionPolicies["tenant-api"].keyFor(input.tenantId),
67
66
  * });
68
67
  */
@@ -1,5 +1,4 @@
1
1
  import { ExecutionPolicyKey } from "../../../runtime/workflow.mjs";
2
-
3
2
  //#region src/configure/services/workflow/execution-policy.types.d.ts
4
3
  /**
5
4
  * Optional per-key concurrency cap applied to job function dispatches that
@@ -5,4 +5,5 @@ import { WorkflowJob, WorkflowJobContext, createWorkflowJob } from "./job.mjs";
5
5
  import { Workflow, WorkflowConfig, createWorkflow } from "./workflow.mjs";
6
6
  import { defineWorkflowExecutionPolicies, defineWorkflowExecutionPolicy } from "./execution-policy.mjs";
7
7
  import { WaitPointInstance, createWaitPoint, createWaitPoints } from "./wait-point.mjs";
8
+ import "./types.mjs";
8
9
  export { type ConcurrencyPolicy, type ExecutionPolicyConcurrency, type ExecutionPolicyDefInput, type ExecutionPolicyExactInstance, type ExecutionPolicyGroupOptions, type ExecutionPolicyInstance, type ExecutionPolicyWildcardInstance, type ResolvedExecutionPolicyInstance, type RetryPolicy, WaitPointInstance, Workflow, WorkflowConfig, WorkflowJob, WorkflowJobContext, type WorkflowServiceConfig, type WorkflowServiceInput, createWaitPoint, createWaitPoints, createWorkflow, createWorkflowJob, defineWorkflowExecutionPolicies, defineWorkflowExecutionPolicy };
@@ -1,7 +1,6 @@
1
1
  import { TailorEnv, TailorPrincipal } from "../../../runtime/types.mjs";
2
2
  import { JsonCompatible, TypeLevelError } from "../../../types/helpers.mjs";
3
3
  import { TriggerJobFunctionOptions } from "../../../runtime/workflow.mjs";
4
-
5
4
  //#region src/configure/services/workflow/job.d.ts
6
5
  /**
7
6
  * Context object passed as the second argument to workflow job body functions.
@@ -1,5 +1,4 @@
1
1
  import { JsonCompatible, TypeLevelError } from "../../../types/helpers.mjs";
2
-
3
2
  //#region src/configure/services/workflow/wait-point.d.ts
4
3
  /**
5
4
  * A single wait point instance with typed `.wait()` and `.resolve()` methods.
@@ -1,7 +1,7 @@
1
1
  import { MachineUserName } from "../auth/types.mjs";
2
2
  import { ConcurrencyPolicy, RetryPolicy } from "../../../types/workflow.generated.mjs";
3
+ import "../../types/machine-user.mjs";
3
4
  import { WorkflowJob } from "./job.mjs";
4
-
5
5
  //#region src/configure/services/workflow/workflow.d.ts
6
6
  interface WorkflowConfig<Job extends WorkflowJob<any, any, any> = WorkflowJob<any, any, any>> {
7
7
  name: string;
@@ -1,8 +1,7 @@
1
1
  import { EnumValue } from "./field.types.mjs";
2
-
3
2
  //#region src/configure/types/field.d.ts
4
3
  type AllowedValues = readonly [string | EnumValue, ...(string | EnumValue)[]];
5
- type AllowedValuesOutput<V extends AllowedValues> = V[number] extends infer T ? T extends string ? T : T extends {
4
+ type AllowedValuesOutput<V extends AllowedValues> = V[number] extends (infer T) ? T extends string ? T : T extends {
6
5
  value: infer K;
7
6
  } ? K : never : never;
8
7
  //#endregion
@@ -1,7 +1,3 @@
1
- import { TailorPrincipal } from "../../runtime/types.mjs";
2
- import { InferFieldsOutput, output } from "../../types/helpers.mjs";
3
- import { NonEmptyObject } from "type-fest";
4
-
5
1
  //#region src/configure/types/field.types.d.ts
6
2
  interface EnumValue {
7
3
  value: string;
@@ -47,50 +43,15 @@ type ArrayFieldOutput<T, O extends FieldOptions> = [O] extends [{
47
43
  array: true;
48
44
  }] ? T[] : T;
49
45
  /**
50
- * Validation function type
46
+ * Field validation function. Return an error message string to fail, or void/undefined to pass.
51
47
  */
52
- type ValidateFn<O, D = unknown> = (args: {
48
+ type ValidateFn<O> = (args: {
53
49
  value: O;
54
- data: D;
55
- invoker: TailorPrincipal | null;
56
- }) => boolean;
50
+ }) => string | void;
57
51
  /**
58
- * Validation configuration with custom error message
52
+ * Input type for field validation
59
53
  */
60
- type ValidateConfig<O, D = unknown> = [ValidateFn<O, D>, string];
61
- /**
62
- * Field-level validation function
63
- */
64
- type FieldValidateFn<O> = ValidateFn<O>;
65
- /**
66
- * Field-level validation configuration
67
- */
68
- type FieldValidateConfig<O> = ValidateConfig<O>;
69
- /**
70
- * Input type for field validation - can be either a function or a tuple of [function, errorMessage]
71
- */
72
- type FieldValidateInput<O> = FieldValidateFn<O> | FieldValidateConfig<O>;
73
- /**
74
- * Base validators type for field collections
75
- * @template F - Record of fields
76
- * @template ExcludeKeys - Keys to exclude from validation (default: "id" for TailorDB)
77
- */
78
- type ValidatorsBase<F extends Record<string, {
79
- _defined: any;
80
- _output: any;
81
- [key: string]: any;
82
- }>, ExcludeKeys extends string = "id"> = NonEmptyObject<{ [K in Exclude<keyof F, ExcludeKeys> as F[K]["_defined"] extends {
83
- validate: unknown;
84
- } ? never : K]?: ValidateFn<output<F[K]>, InferFieldsOutput<F>> | ValidateConfig<output<F[K]>, InferFieldsOutput<F>> | (ValidateFn<output<F[K]>, InferFieldsOutput<F>> | ValidateConfig<output<F[K]>, InferFieldsOutput<F>>)[] }>;
85
- /**
86
- * Validators type (by default excludes "id" field for TailorDB compatibility)
87
- * Can be used with both TailorField and TailorDBField
88
- */
89
- type Validators<F extends Record<string, {
90
- _defined: any;
91
- _output: any;
92
- [key: string]: any;
93
- }>> = ValidatorsBase<F, "id">;
54
+ type FieldValidateInput<O> = ValidateFn<O>;
94
55
  /**
95
56
  * Minimal structural interface for TailorField.
96
57
  * Defines only the properties needed by parser, plugin, cli, and types layers.
@@ -106,4 +67,4 @@ interface TailorField<Defined extends DefinedFieldMetadata = DefinedFieldMetadat
106
67
  }
107
68
  type TailorAnyField = TailorField<any>;
108
69
  //#endregion
109
- export { ArrayFieldOutput, DefinedFieldMetadata, EnumValue, FieldMetadata, FieldOptions, FieldOutput, FieldValidateInput, TailorAnyField, TailorField, TailorFieldType, TailorToTs, ValidateConfig, ValidateFn, Validators };
70
+ export { ArrayFieldOutput, DefinedFieldMetadata, EnumValue, FieldMetadata, FieldOptions, FieldOutput, FieldValidateInput, TailorAnyField, TailorField, TailorFieldType, TailorToTs, ValidateFn };
@@ -1,4 +1,5 @@
1
1
  import { MachineUserName, MachineUserNameRegistry } from "../services/auth/types.mjs";
2
2
  import { AllowedValues, AllowedValuesOutput } from "./field.mjs";
3
3
  import { TailorAnyField, TailorField } from "./type.mjs";
4
+ import "./machine-user.mjs";
4
5
  export { AllowedValues, AllowedValuesOutput, type MachineUserName, type MachineUserNameRegistry, TailorAnyField, TailorField };
@@ -1,8 +1,7 @@
1
- import { TypeLevelError } from "../../types/helpers.mjs";
2
1
  import { DefinedFieldMetadata, FieldMetadata, FieldValidateInput, TailorField as TailorField$1, TailorFieldType } from "./field.types.mjs";
3
- import { FieldParseArgs, FieldParseInternalArgs } from "./field-runtime.mjs";
2
+ import { TypeLevelError } from "../../types/helpers.mjs";
3
+ import { FieldParseArgs } from "../../runtime/field-parse.mjs";
4
4
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
-
6
5
  //#region src/configure/types/type.d.ts
7
6
  type AnyBuilderMethod = any;
8
7
  type TailorAnyField = Omit<TailorField$1<AnyBuilderMethod, AnyBuilderMethod, FieldMetadata, TailorFieldType>, "fields"> & {
@@ -12,7 +11,6 @@ type TailorAnyField = Omit<TailorField$1<AnyBuilderMethod, AnyBuilderMethod, Fie
12
11
  typeName: AnyBuilderMethod;
13
12
  validate: AnyBuilderMethod;
14
13
  parse: AnyBuilderMethod;
15
- _parseInternal: AnyBuilderMethod;
16
14
  };
17
15
  type IsAny<T> = 0 extends 1 & T ? true : false;
18
16
  type WithFieldDescription<Defined> = Defined & {
@@ -70,13 +68,6 @@ interface TailorField<Defined extends DefinedFieldMetadata = DefinedFieldMetadat
70
68
  * @returns Validation result
71
69
  */
72
70
  parse(args: FieldParseArgs): StandardSchemaV1.Result<Output>;
73
- /**
74
- * Internal parse method that tracks field path for nested validation
75
- * @private
76
- * @param args - Parse arguments
77
- * @returns Validation result
78
- */
79
- _parseInternal(args: FieldParseInternalArgs): StandardSchemaV1.Result<Output>;
80
71
  }
81
72
  //#endregion
82
73
  export { TailorAnyField, TailorField };
@@ -1,3 +1,3 @@
1
- import { n as reportCrash, t as initCrashReporting } from "./crashreport-Cg-pqRJV.mjs";
1
+ import { n as reportCrash, t as initCrashReporting } from "./crashreport-CxHne11E.mjs";
2
2
 
3
3
  export { reportCrash };
@@ -1,6 +1,7 @@
1
- import { n as logger } from "./logger-BEiZZ3qT.mjs";
1
+ import { n as logger } from "./logger-BwS4ppwO.mjs";
2
2
  import { t as readPackageJson } from "./package-json-8b0O9TlX.mjs";
3
- import { a as userAgentFromVersion, r as writeSecretFile, t as ensureSecretDir } from "./secret-file-aoNXJmKa.mjs";
3
+ import { n as userAgentFromVersion } from "./user-agent-Bgsszb5I.mjs";
4
+ import { r as writeSecretFile, t as ensureSecretDir } from "./secret-file-C3J4Gy8r.mjs";
4
5
  import * as path from "pathe";
5
6
  import * as fs from "node:fs";
6
7
  import { parseYAML } from "confbox";
@@ -419,4 +420,4 @@ function initCrashReporting() {
419
420
 
420
421
  //#endregion
421
422
  export { JSON_FOOTER_MARKER as a, CRASH_LOG_EXTENSION as i, reportCrash as n, parseCrashReportConfig as o, sendCrashReport as r, initCrashReporting as t };
422
- //# sourceMappingURL=crashreport-Cg-pqRJV.mjs.map
423
+ //# sourceMappingURL=crashreport-CxHne11E.mjs.map