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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/CHANGELOG.md +511 -10
  2. package/README.md +9 -9
  3. package/agent-skills/{tailor-sdk → tailor}/SKILL.md +3 -1
  4. package/dist/aigateway-DR4Kwuik.mjs +9 -0
  5. package/dist/aigateway-DR4Kwuik.mjs.map +1 -0
  6. package/dist/application-BO4ZF8wP.mjs +3 -0
  7. package/dist/application-BX13RArL.mjs +6669 -0
  8. package/dist/application-BX13RArL.mjs.map +1 -0
  9. package/dist/authconnection-CZvi9ANm.mjs +9 -0
  10. package/dist/authconnection-CZvi9ANm.mjs.map +1 -0
  11. package/dist/brand-Eo4pLXPJ.mjs.map +1 -1
  12. package/dist/cli/cache/bundle-cache.d.mts +1 -0
  13. package/dist/cli/cache/store.d.mts +1 -0
  14. package/dist/cli/cache/types.d.mts +1 -0
  15. package/dist/cli/commands/api/api-call.d.mts +19 -0
  16. package/dist/cli/commands/api/index.d.mts +3 -0
  17. package/dist/cli/commands/deploy/aigateway.d.mts +1 -0
  18. package/dist/cli/commands/deploy/application.d.mts +1 -0
  19. package/dist/cli/commands/deploy/apply-phases.d.mts +1 -0
  20. package/dist/cli/commands/deploy/auth.d.mts +1 -0
  21. package/dist/cli/commands/deploy/deploy.d.mts +24 -0
  22. package/dist/cli/commands/deploy/executor.d.mts +1 -0
  23. package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
  24. package/dist/cli/commands/deploy/function-registry.d.mts +2 -0
  25. package/dist/cli/commands/deploy/idp.d.mts +1 -0
  26. package/dist/cli/commands/deploy/resolver.d.mts +1 -0
  27. package/dist/cli/commands/deploy/secret-manager.d.mts +1 -0
  28. package/dist/cli/commands/deploy/staticwebsite.d.mts +1 -0
  29. package/dist/cli/commands/deploy/tailordb/index.d.mts +1 -0
  30. package/dist/cli/commands/deploy/types.d.mts +1 -0
  31. package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +1 -0
  32. package/dist/cli/commands/deploy/workflow.d.mts +1 -0
  33. package/dist/cli/commands/executor/get.d.mts +29 -0
  34. package/dist/cli/commands/executor/jobs.d.mts +123 -0
  35. package/dist/cli/commands/executor/list.d.mts +19 -0
  36. package/dist/cli/commands/executor/transform.d.mts +41 -0
  37. package/dist/cli/commands/executor/trigger.d.mts +41 -0
  38. package/dist/cli/commands/executor/webhook.d.mts +22 -0
  39. package/dist/cli/commands/function/get.d.mts +18 -0
  40. package/dist/cli/commands/function/list.d.mts +22 -0
  41. package/dist/cli/commands/function/transform.d.mts +11 -0
  42. package/dist/cli/commands/generate/options.d.mts +7 -0
  43. package/dist/cli/commands/generate/seed/bundler.d.mts +26 -0
  44. package/dist/cli/commands/generate/service.d.mts +11 -0
  45. package/dist/cli/commands/machineuser/list.d.mts +27 -0
  46. package/dist/cli/commands/machineuser/token.d.mts +22 -0
  47. package/dist/cli/commands/oauth2client/get.d.mts +18 -0
  48. package/dist/cli/commands/oauth2client/list.d.mts +20 -0
  49. package/dist/cli/commands/oauth2client/transform.d.mts +20 -0
  50. package/dist/cli/commands/organization/folder/create.d.mts +18 -0
  51. package/dist/cli/commands/organization/folder/delete.d.mts +16 -0
  52. package/dist/cli/commands/organization/folder/get.d.mts +17 -0
  53. package/dist/cli/commands/organization/folder/list.d.mts +22 -0
  54. package/dist/cli/commands/organization/folder/update.d.mts +18 -0
  55. package/dist/cli/commands/organization/get.d.mts +16 -0
  56. package/dist/cli/commands/organization/list.d.mts +15 -0
  57. package/dist/cli/commands/organization/transform.d.mts +27 -0
  58. package/dist/cli/commands/organization/tree.d.mts +25 -0
  59. package/dist/cli/commands/organization/update.d.mts +17 -0
  60. package/dist/cli/commands/remove.d.mts +16 -0
  61. package/dist/cli/commands/show.d.mts +34 -0
  62. package/dist/cli/commands/tailordb/migrate/bundler.d.mts +28 -0
  63. package/dist/cli/commands/tailordb/migrate/config.d.mts +19 -0
  64. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +223 -0
  65. package/dist/cli/commands/tailordb/migrate/generate.d.mts +17 -0
  66. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +202 -0
  67. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
  68. package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
  69. package/dist/cli/commands/tailordb/truncate.d.mts +19 -0
  70. package/dist/cli/commands/workflow/executions.d.mts +75 -0
  71. package/dist/cli/commands/workflow/get.d.mts +29 -0
  72. package/dist/cli/commands/workflow/list.d.mts +19 -0
  73. package/dist/cli/commands/workflow/resume.d.mts +23 -0
  74. package/dist/cli/commands/workflow/start.d.mts +61 -0
  75. package/dist/cli/commands/workflow/status.d.mts +5 -0
  76. package/dist/cli/commands/workflow/transform.d.mts +33 -0
  77. package/dist/cli/commands/workflow/wait.d.mts +16 -0
  78. package/dist/cli/commands/workflow/waiter.d.mts +23 -0
  79. package/dist/cli/commands/workspace/app/health.d.mts +18 -0
  80. package/dist/cli/commands/workspace/app/list.d.mts +22 -0
  81. package/dist/cli/commands/workspace/app/transform.d.mts +18 -0
  82. package/dist/cli/commands/workspace/create.d.mts +25 -0
  83. package/dist/cli/commands/workspace/delete.d.mts +15 -0
  84. package/dist/cli/commands/workspace/get.d.mts +17 -0
  85. package/dist/cli/commands/workspace/list.d.mts +17 -0
  86. package/dist/cli/commands/workspace/restore.d.mts +15 -0
  87. package/dist/cli/commands/workspace/transform.d.mts +16 -0
  88. package/dist/cli/commands/workspace/user/invite.d.mts +22 -0
  89. package/dist/cli/commands/workspace/user/list.d.mts +22 -0
  90. package/dist/cli/commands/workspace/user/remove.d.mts +17 -0
  91. package/dist/cli/commands/workspace/user/transform.d.mts +8 -0
  92. package/dist/cli/commands/workspace/user/update.d.mts +22 -0
  93. package/dist/cli/erd-viewer-assets/app.js +279 -36
  94. package/dist/cli/erd-viewer-assets/index.html +4 -0
  95. package/dist/cli/erd-viewer-assets/styles.css +252 -5
  96. package/dist/cli/index.d.mts +18 -3
  97. package/dist/cli/index.mjs +2237 -520
  98. package/dist/cli/index.mjs.map +1 -1
  99. package/dist/cli/lib.d.mts +81 -21107
  100. package/dist/cli/lib.mjs +7 -10
  101. package/dist/cli/lib.mjs.map +1 -1
  102. package/dist/cli/query/index.d.mts +39 -0
  103. package/dist/cli/services/application.d.mts +1 -0
  104. package/dist/cli/services/auth/service.d.mts +1 -0
  105. package/dist/cli/services/executor/service.d.mts +1 -0
  106. package/dist/cli/services/http-adapter/bundler.d.mts +1 -0
  107. package/dist/cli/services/http-adapter/service.d.mts +1 -0
  108. package/dist/cli/services/resolver/service.d.mts +1 -0
  109. package/dist/cli/services/tailordb/service.d.mts +1 -0
  110. package/dist/cli/services/workflow/bundler.d.mts +1 -0
  111. package/dist/cli/services/workflow/service.d.mts +1 -0
  112. package/dist/cli/shared/args.d.mts +13 -0
  113. package/dist/cli/shared/client.d.mts +1273 -0
  114. package/dist/cli/shared/config-loader.d.mts +26 -0
  115. package/dist/cli/shared/context.d.mts +28 -0
  116. package/dist/cli/shared/script-executor.d.mts +75 -0
  117. package/dist/cli/shared/seed-chunker.d.mts +46 -0
  118. package/dist/cli/shared/trigger-context.d.mts +1 -0
  119. package/dist/cli/shared/type-generator.d.mts +20 -0
  120. package/dist/cli/ts-hook.d.mts +4 -0
  121. package/dist/cli/ts-hook.mjs +333 -0
  122. package/dist/completion/zsh-worker.zsh +1531 -1131
  123. package/dist/configure/config/index.d.mts +21 -0
  124. package/dist/configure/config/types.d.mts +105 -0
  125. package/dist/configure/index.d.mts +124 -9
  126. package/dist/configure/index.mjs +136 -23
  127. package/dist/configure/index.mjs.map +1 -1
  128. package/dist/configure/services/aigateway/index.d.mts +17 -0
  129. package/dist/configure/services/aigateway/types.d.mts +11 -0
  130. package/dist/configure/services/auth/index.d.mts +34 -0
  131. package/dist/configure/services/auth/types.d.mts +172 -0
  132. package/dist/configure/services/executor/executor.d.mts +81 -0
  133. package/dist/configure/services/executor/index.d.mts +8 -0
  134. package/dist/configure/services/executor/operation.d.mts +45 -0
  135. package/dist/configure/services/executor/trigger/event.d.mts +272 -0
  136. package/dist/configure/services/executor/trigger/index.d.mts +8 -0
  137. package/dist/configure/services/executor/trigger/schedule.d.mts +25 -0
  138. package/dist/configure/services/executor/trigger/webhook.d.mts +44 -0
  139. package/dist/configure/services/executor/types.d.mts +2 -0
  140. package/dist/configure/services/http-adapter/http-adapter.d.mts +125 -0
  141. package/dist/configure/services/http-adapter/index.d.mts +2 -0
  142. package/dist/configure/services/idp/index.d.mts +64 -0
  143. package/dist/configure/services/idp/permission.d.mts +80 -0
  144. package/dist/configure/services/idp/types.d.mts +20 -0
  145. package/dist/configure/services/index.d.mts +34 -0
  146. package/dist/configure/services/resolver/index.d.mts +5 -0
  147. package/dist/configure/services/resolver/resolver.d.mts +75 -0
  148. package/dist/configure/services/resolver/types.d.mts +6 -0
  149. package/dist/configure/services/secrets/index.d.mts +38 -0
  150. package/dist/configure/services/secrets/types.d.mts +11 -0
  151. package/dist/configure/services/staticwebsite/index.d.mts +19 -0
  152. package/dist/configure/services/staticwebsite/types.d.mts +11 -0
  153. package/dist/configure/services/tailordb/index.d.mts +4 -0
  154. package/dist/configure/services/tailordb/permission.d.mts +119 -0
  155. package/dist/configure/services/tailordb/schema.d.mts +456 -0
  156. package/dist/configure/services/tailordb/types.d.mts +149 -0
  157. package/dist/configure/services/workflow/execution-policy.d.mts +71 -0
  158. package/dist/configure/services/workflow/execution-policy.types.d.mts +104 -0
  159. package/dist/configure/services/workflow/index.d.mts +8 -0
  160. package/dist/configure/services/workflow/job.d.mts +84 -0
  161. package/dist/configure/services/workflow/types.d.mts +2 -0
  162. package/dist/configure/services/workflow/wait-point.d.mts +73 -0
  163. package/dist/configure/services/workflow/workflow.d.mts +54 -0
  164. package/dist/configure/types/aigateway-name.d.mts +12 -0
  165. package/dist/configure/types/connection-name.d.mts +12 -0
  166. package/dist/configure/types/field-runtime.d.mts +17 -0
  167. package/dist/configure/types/field.d.mts +9 -0
  168. package/dist/configure/types/field.types.d.mts +109 -0
  169. package/dist/configure/types/idp-name.d.mts +12 -0
  170. package/dist/configure/types/index.d.mts +4 -0
  171. package/dist/configure/types/machine-user.d.mts +2 -0
  172. package/dist/configure/types/type.d.mts +82 -0
  173. package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
  174. package/dist/context-DYQVYWqZ.mjs.map +1 -0
  175. package/dist/{crashreport-DFq-vsU0.mjs → crashreport-Cg-pqRJV.mjs} +6 -6
  176. package/dist/{crashreport-DFq-vsU0.mjs.map → crashreport-Cg-pqRJV.mjs.map} +1 -1
  177. package/dist/{crashreport-BMWcxeSE.mjs → crashreport-D3RjuSYb.mjs} +1 -1
  178. package/dist/enum-constants-j9QBF0cB.mjs.map +1 -1
  179. package/dist/{errors-Dtf2WPaW.mjs → errors-118wUDRr.mjs} +2 -2
  180. package/dist/errors-118wUDRr.mjs.map +1 -0
  181. package/dist/field-runtime-CAnh_oow.mjs +183 -0
  182. package/dist/field-runtime-CAnh_oow.mjs.map +1 -0
  183. package/dist/{file-BbdFGdMV.mjs → file-BUcmVIH2.mjs} +12 -14
  184. package/dist/file-BUcmVIH2.mjs.map +1 -0
  185. package/dist/{file-utils-CYZnO1pX.mjs → file-utils-yEiIS4nJ.mjs} +2 -2
  186. package/dist/file-utils-yEiIS4nJ.mjs.map +1 -0
  187. package/dist/{globals-Cf0sxIt8.mjs → globals-BjhJJ2dN.mjs} +5 -47
  188. package/dist/globals-BjhJJ2dN.mjs.map +1 -0
  189. package/dist/iconv-QWaZh0TT.mjs +38 -0
  190. package/dist/iconv-QWaZh0TT.mjs.map +1 -0
  191. package/dist/{idp-BDbK5gjm.mjs → idp-RA_swu-h.mjs} +12 -5
  192. package/dist/idp-RA_swu-h.mjs.map +1 -0
  193. package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
  194. package/dist/interceptor-e33JtsC-.mjs.map +1 -0
  195. package/dist/kysely/index.d.mts +2 -3
  196. package/dist/{kysely-type-DR8uzZTA.mjs → kysely-type-D-zflMGf.mjs} +2 -2
  197. package/dist/{kysely-type-DR8uzZTA.mjs.map → kysely-type-D-zflMGf.mjs.map} +1 -1
  198. package/dist/{logger-CxF-Ex5d.mjs → logger-BEiZZ3qT.mjs} +3 -3
  199. package/dist/{logger-CxF-Ex5d.mjs.map → logger-BEiZZ3qT.mjs.map} +1 -1
  200. package/dist/parser/service/auth/index.d.mts +1 -0
  201. package/dist/parser/service/auth/schema.d.mts +1 -0
  202. package/dist/parser/service/http-adapter/index.d.mts +1 -0
  203. package/dist/parser/service/http-adapter/schema.d.mts +1 -0
  204. package/dist/parser/service/idp/types.d.mts +4 -0
  205. package/dist/parser/service/tailordb/types.d.mts +126 -0
  206. package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
  207. package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
  208. package/dist/plugin/builtin/enum-constants/index.d.mts +16 -1
  209. package/dist/plugin/builtin/file-utils/index.d.mts +16 -1
  210. package/dist/plugin/builtin/file-utils/index.mjs +1 -1
  211. package/dist/plugin/builtin/kysely-type/index.d.mts +16 -1
  212. package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
  213. package/dist/plugin/builtin/seed/index.d.mts +45 -1
  214. package/dist/plugin/builtin/seed/index.mjs +1 -1
  215. package/dist/plugin/get-generated-type.d.mts +17 -0
  216. package/dist/plugin/index.d.mts +3 -118
  217. package/dist/plugin/index.mjs +1 -1
  218. package/dist/plugin/index.mjs.map +1 -1
  219. package/dist/plugin/manager.d.mts +1 -0
  220. package/dist/plugin/types.d.mts +243 -0
  221. package/dist/plugin/with-context.d.mts +102 -0
  222. package/dist/{runtime-CY4JvrDj.mjs → register-ts-hook-BM1caLT0.mjs} +4128 -2744
  223. package/dist/register-ts-hook-BM1caLT0.mjs.map +1 -0
  224. package/dist/{registry-DH4m7eYo.mjs → registry-BSbq6SPo.mjs} +4 -3
  225. package/dist/registry-BSbq6SPo.mjs.map +1 -0
  226. package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
  227. package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  228. package/dist/resource_pb-BRv7AMXK.mjs +49 -0
  229. package/dist/resource_pb-BRv7AMXK.mjs.map +1 -0
  230. package/dist/runtime/aigateway.d.mts +26 -0
  231. package/dist/runtime/aigateway.mjs +3 -0
  232. package/dist/runtime/authconnection.d.mts +22 -2
  233. package/dist/runtime/authconnection.mjs +2 -2
  234. package/dist/runtime/context.d.mts +55 -2
  235. package/dist/runtime/context.mjs +2 -2
  236. package/dist/runtime/file.d.mts +170 -2
  237. package/dist/runtime/file.mjs +2 -2
  238. package/dist/runtime/globals.d.mts +31 -19
  239. package/dist/runtime/iconv.d.mts +73 -2
  240. package/dist/runtime/iconv.mjs +2 -2
  241. package/dist/runtime/idp.d.mts +129 -2
  242. package/dist/runtime/idp.mjs +2 -2
  243. package/dist/runtime/index.d.mts +47 -9
  244. package/dist/runtime/index.mjs +9 -8
  245. package/dist/runtime/secretmanager.d.mts +41 -2
  246. package/dist/runtime/secretmanager.mjs +2 -2
  247. package/dist/{types-BZ7QKVE8.d.mts → runtime/types.d.mts} +4 -5
  248. package/dist/runtime/workflow.d.mts +113 -2
  249. package/dist/runtime/workflow.mjs +2 -2
  250. package/dist/{schema-Dtw9Orye.mjs → schema-C4LYbXVG.mjs} +21 -186
  251. package/dist/schema-C4LYbXVG.mjs.map +1 -0
  252. package/dist/{secret-file-VSVGy1V0.mjs → secret-file-aoNXJmKa.mjs} +3 -3
  253. package/dist/secret-file-aoNXJmKa.mjs.map +1 -0
  254. package/dist/secretmanager-Bd45j7an.mjs +98 -0
  255. package/dist/secretmanager-Bd45j7an.mjs.map +1 -0
  256. package/dist/secretmanager-CYlpffsz.mjs +13 -0
  257. package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
  258. package/dist/seed/index.d.mts +1 -2
  259. package/dist/{seed-izIEyP3z.mjs → seed-CRSQJI_z.mjs} +14 -3
  260. package/dist/seed-CRSQJI_z.mjs.map +1 -0
  261. package/dist/service-CkIwEctX.mjs +3 -0
  262. package/dist/{service-DU1mVzri2.mjs → service-DeZeYa06.mjs} +3 -3
  263. package/dist/service-DeZeYa06.mjs.map +1 -0
  264. package/dist/{service-DjyqbCaJ.mjs → service-ufH7sS8o.mjs} +396 -58
  265. package/dist/service-ufH7sS8o.mjs.map +1 -0
  266. package/dist/service_pb-B2FF59sP.mjs +3 -0
  267. package/dist/service_pb-B5w9rjPY.mjs +955 -0
  268. package/dist/service_pb-B5w9rjPY.mjs.map +1 -0
  269. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +204 -0
  270. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +58 -0
  271. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +316 -0
  272. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +161 -0
  273. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2070 -0
  274. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +861 -0
  275. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +112 -0
  276. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +69 -0
  277. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +439 -0
  278. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +564 -0
  279. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +145 -0
  280. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +451 -0
  281. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +192 -0
  282. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +50 -0
  283. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +407 -0
  284. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +430 -0
  285. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +73 -0
  286. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +17 -0
  287. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +309 -0
  288. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +591 -0
  289. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +330 -0
  290. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +113 -0
  291. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +346 -0
  292. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +54 -0
  293. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3576 -0
  294. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +187 -0
  295. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +29 -0
  296. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +429 -0
  297. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +90 -0
  298. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +684 -0
  299. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +797 -0
  300. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +330 -0
  301. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +183 -0
  302. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +862 -0
  303. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +310 -0
  304. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2015 -0
  305. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +483 -0
  306. package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
  307. package/dist/telemetry-BRVdwh14.mjs.map +1 -0
  308. package/dist/telemetry-CkbkeJxl.mjs +3 -0
  309. package/dist/types/aigateway.generated.d.mts +9 -0
  310. package/dist/types/app-config.generated.d.mts +4 -0
  311. package/dist/types/auth-connection.generated.d.mts +20 -0
  312. package/dist/types/auth.generated.d.mts +145 -0
  313. package/dist/types/executor.generated.d.mts +177 -0
  314. package/dist/types/helpers.d.mts +39 -0
  315. package/dist/types/http-adapter.generated.d.mts +17 -0
  316. package/dist/{workflow.generated-ClEjBYhm.d.mts → types/idp.generated.d.mts} +98 -185
  317. package/dist/types/resolver.generated.d.mts +39 -0
  318. package/dist/types/secrets.generated.d.mts +14 -0
  319. package/dist/types/staticwebsite.generated.d.mts +10 -0
  320. package/dist/{types-CdcQh4Z2.d.mts → types/tailordb.generated.d.mts} +2 -287
  321. package/dist/types/workflow.generated.d.mts +12 -0
  322. package/dist/types-C-lQ4se3.mjs +4 -0
  323. package/dist/types-CXF2OYdR.mjs +199 -0
  324. package/dist/types-CXF2OYdR.mjs.map +1 -0
  325. package/dist/utils/test/index.d.mts +5 -89
  326. package/dist/utils/test/index.mjs.map +1 -1
  327. package/dist/utils/test/mock.d.mts +87 -0
  328. package/dist/vitest/environment.d.mts +1 -2
  329. package/dist/vitest/environment.mjs +2 -2
  330. package/dist/vitest/environment.mjs.map +1 -1
  331. package/dist/vitest/index.d.mts +12 -428
  332. package/dist/vitest/index.mjs +740 -9
  333. package/dist/vitest/index.mjs.map +1 -1
  334. package/dist/vitest/mock-kysely.d.mts +62 -0
  335. package/dist/vitest/mock.d.mts +9 -0
  336. package/dist/vitest/mocks/aigateway.d.mts +30 -0
  337. package/dist/vitest/mocks/authconnection.d.mts +28 -0
  338. package/dist/vitest/mocks/file.d.mts +41 -0
  339. package/dist/vitest/mocks/iconv.d.mts +27 -0
  340. package/dist/vitest/mocks/idp.d.mts +44 -0
  341. package/dist/vitest/mocks/secretmanager.d.mts +33 -0
  342. package/dist/vitest/mocks/tailordb.d.mts +71 -0
  343. package/dist/vitest/mocks/workflow.d.mts +117 -0
  344. package/dist/vitest/setup.d.mts +1 -2
  345. package/dist/vitest/setup.mjs +2 -2
  346. package/dist/vitest/workflow-local.d.mts +40 -0
  347. package/dist/workflow-GNuSnsTx.mjs +22 -0
  348. package/dist/workflow-GNuSnsTx.mjs.map +1 -0
  349. package/docs/cli/application.md +98 -250
  350. package/docs/cli/auth.md +51 -295
  351. package/docs/cli/completion.md +1 -25
  352. package/docs/cli/crashreport.md +3 -61
  353. package/docs/cli/executor.md +23 -187
  354. package/docs/cli/function.md +14 -130
  355. package/docs/cli/organization.md +11 -221
  356. package/docs/cli/plugin.md +29 -0
  357. package/docs/cli/query.md +2 -22
  358. package/docs/cli/secret.md +71 -251
  359. package/docs/cli/setup.md +137 -41
  360. package/docs/cli/skills.md +50 -39
  361. package/docs/cli/staticwebsite.md +32 -180
  362. package/docs/cli/tailordb.md +97 -323
  363. package/docs/cli/upgrade.md +2 -22
  364. package/docs/cli/user.md +78 -247
  365. package/docs/cli/workflow.md +44 -203
  366. package/docs/cli/workspace.md +165 -538
  367. package/docs/cli-reference.md +167 -67
  368. package/docs/configuration.md +34 -4
  369. package/docs/github-actions.md +46 -19
  370. package/docs/migration/v2.md +397 -26
  371. package/docs/multi-environment.md +29 -7
  372. package/docs/plugin/custom.md +4 -4
  373. package/docs/plugin/index.md +8 -8
  374. package/docs/quickstart.md +8 -7
  375. package/docs/runtime.md +9 -3
  376. package/docs/services/aigateway.md +18 -2
  377. package/docs/services/auth.md +34 -42
  378. package/docs/services/http-adapter.md +16 -1
  379. package/docs/services/idp.md +55 -2
  380. package/docs/services/resolver.md +2 -2
  381. package/docs/services/secret.md +11 -11
  382. package/docs/services/staticwebsite.md +8 -2
  383. package/docs/services/tailordb-migration.md +25 -23
  384. package/docs/services/tailordb.md +55 -32
  385. package/docs/services/workflow.md +92 -14
  386. package/docs/testing.md +49 -3
  387. package/package.json +42 -31
  388. package/postinstall.mjs +4 -6
  389. package/dist/application-Dtqap5jM.mjs +0 -3
  390. package/dist/application-XuMWK4eq.mjs +0 -7257
  391. package/dist/application-XuMWK4eq.mjs.map +0 -1
  392. package/dist/authconnection-D2MhtTN5.mjs +0 -15
  393. package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
  394. package/dist/authconnection-DvUQAjQS.d.mts +0 -39
  395. package/dist/context-Bd266-ru.mjs.map +0 -1
  396. package/dist/context-C2lEi9uw.d.mts +0 -47
  397. package/dist/errors-Dtf2WPaW.mjs.map +0 -1
  398. package/dist/field-DOsJCPFa.mjs +0 -22
  399. package/dist/field-DOsJCPFa.mjs.map +0 -1
  400. package/dist/file-BbdFGdMV.mjs.map +0 -1
  401. package/dist/file-Dq3NIt_F.d.mts +0 -211
  402. package/dist/file-utils-CYZnO1pX.mjs.map +0 -1
  403. package/dist/globals-Cf0sxIt8.mjs.map +0 -1
  404. package/dist/http-adapter.generated-DFsXDdm5.d.mts +0 -581
  405. package/dist/iconv-Co-TOPuH.d.mts +0 -122
  406. package/dist/iconv-D2vi8G36.mjs +0 -63
  407. package/dist/iconv-D2vi8G36.mjs.map +0 -1
  408. package/dist/idp-BDbK5gjm.mjs.map +0 -1
  409. package/dist/idp-DrhVrLmV.d.mts +0 -160
  410. package/dist/index-BI-_j9Z3.d.mts +0 -1013
  411. package/dist/index-C4JirJH8.d.mts +0 -18
  412. package/dist/index-CZfWhr0a.d.mts +0 -18
  413. package/dist/index-Cg8VKAdN.d.mts +0 -46
  414. package/dist/index-DYRjoLXD.d.mts +0 -47
  415. package/dist/index-lFpcjHPU.d.mts +0 -201
  416. package/dist/index-nW7hE6oE.d.mts +0 -18
  417. package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
  418. package/dist/mock-FPxmnt-y.mjs +0 -759
  419. package/dist/mock-FPxmnt-y.mjs.map +0 -1
  420. package/dist/registry-DH4m7eYo.mjs.map +0 -1
  421. package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
  422. package/dist/runtime-CY4JvrDj.mjs.map +0 -1
  423. package/dist/schema-Dtw9Orye.mjs.map +0 -1
  424. package/dist/secret-file-VSVGy1V0.mjs.map +0 -1
  425. package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
  426. package/dist/secretmanager-BVxw3ih_.mjs +0 -24
  427. package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
  428. package/dist/seed-izIEyP3z.mjs.map +0 -1
  429. package/dist/service-DCqIWibD.mjs +0 -3
  430. package/dist/service-DU1mVzri2.mjs.map +0 -1
  431. package/dist/service-DjyqbCaJ.mjs.map +0 -1
  432. package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
  433. package/dist/telemetry-ClwW5ohF.mjs +0 -3
  434. package/dist/types-74etvaxy.mjs +0 -4
  435. package/dist/types-BDRml5C3.d.mts +0 -574
  436. package/dist/types-BQijbo4m.mjs +0 -371
  437. package/dist/types-BQijbo4m.mjs.map +0 -1
  438. package/dist/types-BX4q6Mo6.d.mts +0 -339
  439. package/dist/workflow-BOmaZwwG.mjs +0 -43
  440. package/dist/workflow-BOmaZwwG.mjs.map +0 -1
  441. package/dist/workflow-BVy4XWjS.d.mts +0 -101
@@ -0,0 +1,119 @@
1
+ import { InferredAttributes } from "../../../runtime/types.mjs";
2
+
3
+ //#region src/configure/services/tailordb/permission.d.ts
4
+ /**
5
+ * Record-level permission configuration for a TailorDB type.
6
+ * Defines create, read, update, and delete permissions.
7
+ *
8
+ * Prefer object format with explicit `conditions` and `permit` for readability.
9
+ * Shorthand array format is supported for compatibility, but less readable.
10
+ *
11
+ * For update operations, use `newRecord`/`oldRecord` operands instead of `record`.
12
+ * @example
13
+ * const permission: TailorTypePermission = {
14
+ * create: [{ conditions: [[{ user: "_loggedIn" }, "=", true]], permit: true }],
15
+ * read: [{ conditions: [[{ record: "isPublic" }, "=", true]], permit: true }],
16
+ * update: [{ conditions: [[{ newRecord: "ownerId" }, "=", { user: "id" }]], permit: true }],
17
+ * delete: [{ conditions: [[{ record: "ownerId" }, "=", { user: "id" }]], permit: true }],
18
+ * };
19
+ */
20
+ type TailorTypePermission<User extends object = InferredAttributes, Type extends object = object> = {
21
+ create: readonly ActionPermission<"record", User, Type, false>[];
22
+ read: readonly ActionPermission<"record", User, Type, false>[];
23
+ update: readonly ActionPermission<"record", User, Type, true>[];
24
+ delete: readonly ActionPermission<"record", User, Type, false>[];
25
+ };
26
+ type ActionPermission<Level extends "record" | "gql" = "record" | "gql", User extends object = InferredAttributes, Type extends object = object, Update extends boolean = boolean> = {
27
+ conditions: PermissionCondition<Level, User, Update, Type> | readonly PermissionCondition<Level, User, Update, Type>[];
28
+ description?: string | undefined;
29
+ /**
30
+ * Whether matching records are granted (`true`) or denied (`false`).
31
+ * Omitting `permit` in this object form defaults to `deny` and emits a
32
+ * warning; set it explicitly. (The array shorthand defaults to `allow`.)
33
+ */
34
+ permit?: boolean;
35
+ } | readonly [...PermissionCondition<Level, User, Update, Type>, ...([] | [boolean])] | readonly [...PermissionCondition<Level, User, Update, Type>[], ...([] | [boolean])];
36
+ type TailorTypeGqlPermission<User extends object = InferredAttributes, Type extends object = object> = readonly GqlPermissionPolicy<User, Type>[];
37
+ type GqlPermissionPolicy<User extends object = InferredAttributes, Type extends object = object> = {
38
+ conditions: readonly PermissionCondition<"gql", User, boolean, Type>[];
39
+ actions: "all" | readonly GqlPermissionAction[];
40
+ /**
41
+ * Whether matching requests are granted (`true`) or denied (`false`).
42
+ * Omitting `permit` defaults to `deny` and emits a warning; set it explicitly.
43
+ */
44
+ permit?: boolean;
45
+ description?: string;
46
+ };
47
+ type GqlPermissionAction = "read" | "create" | "update" | "delete" | "aggregate" | "bulkUpsert";
48
+ type EqualityOperator = "=" | "!=";
49
+ type ContainsOperator = "in" | "not in";
50
+ type HasAnyOperator = "hasAny" | "not hasAny";
51
+ type StringFieldKeys<User extends object> = { [K in keyof User]: User[K] extends string ? K : never }[keyof User];
52
+ type StringArrayFieldKeys<User extends object> = { [K in keyof User]: User[K] extends string[] ? K : never }[keyof User];
53
+ type BooleanFieldKeys<User extends object> = { [K in keyof User]: User[K] extends boolean ? K : never }[keyof User];
54
+ type BooleanArrayFieldKeys<User extends object> = { [K in keyof User]: User[K] extends boolean[] ? K : never }[keyof User];
55
+ type UserStringOperand<User extends object = InferredAttributes> = {
56
+ user: StringFieldKeys<User> | "id";
57
+ };
58
+ type UserStringArrayOperand<User extends object = InferredAttributes> = {
59
+ user: StringArrayFieldKeys<User>;
60
+ };
61
+ type UserBooleanOperand<User extends object = InferredAttributes> = {
62
+ user: BooleanFieldKeys<User> | "_loggedIn";
63
+ };
64
+ type UserBooleanArrayOperand<User extends object = InferredAttributes> = {
65
+ user: BooleanArrayFieldKeys<User>;
66
+ };
67
+ type RecordOperand<Type extends object, Update extends boolean = false> = Update extends true ? {
68
+ oldRecord: (keyof Type & string) | "id";
69
+ } | {
70
+ newRecord: (keyof Type & string) | "id";
71
+ } : {
72
+ record: (keyof Type & string) | "id";
73
+ };
74
+ type StringEqualityCondition<Level extends "record" | "gql", User extends object, Update extends boolean, Type extends object> = (Level extends "gql" ? readonly [string, EqualityOperator, boolean] : never) | readonly [string, EqualityOperator, string] | readonly [UserStringOperand<User>, EqualityOperator, string] | readonly [string, EqualityOperator, UserStringOperand<User>] | (Level extends "record" ? readonly [RecordOperand<Type, Update>, EqualityOperator, string | UserStringOperand<User>] | readonly [string | UserStringOperand<User>, EqualityOperator, RecordOperand<Type, Update>] : never);
75
+ type BooleanEqualityCondition<Level extends "record" | "gql", User extends object, Update extends boolean, Type extends object> = readonly [boolean, EqualityOperator, boolean] | readonly [UserBooleanOperand<User>, EqualityOperator, boolean] | readonly [boolean, EqualityOperator, UserBooleanOperand<User>] | (Level extends "record" ? readonly [RecordOperand<Type, Update>, EqualityOperator, boolean | UserBooleanOperand<User>] | readonly [boolean | UserBooleanOperand<User>, EqualityOperator, RecordOperand<Type, Update>] : never);
76
+ type EqualityCondition<Level extends "record" | "gql" = "record", User extends object = InferredAttributes, Update extends boolean = boolean, Type extends object = object> = StringEqualityCondition<Level, User, Update, Type> | BooleanEqualityCondition<Level, User, Update, Type>;
77
+ type StringContainsCondition<Level extends "record" | "gql", User extends object, Update extends boolean, Type extends object> = readonly [string, ContainsOperator, string[]] | readonly [UserStringOperand<User>, ContainsOperator, string[]] | readonly [string, ContainsOperator, UserStringArrayOperand<User>] | (Level extends "record" ? readonly [RecordOperand<Type, Update>, ContainsOperator, string[] | UserStringArrayOperand<User>] | readonly [string | UserStringOperand<User>, ContainsOperator, RecordOperand<Type, Update>] : never);
78
+ type BooleanContainsCondition<Level extends "record" | "gql", User extends object, Update extends boolean, Type extends object> = (Level extends "gql" ? readonly [string, ContainsOperator, boolean[]] : never) | readonly [boolean, ContainsOperator, boolean[]] | readonly [UserBooleanOperand<User>, ContainsOperator, boolean[]] | readonly [boolean, ContainsOperator, UserBooleanArrayOperand<User>] | (Level extends "record" ? readonly [RecordOperand<Type, Update>, ContainsOperator, boolean[] | UserBooleanArrayOperand<User>] | readonly [boolean | UserBooleanOperand<User>, ContainsOperator, RecordOperand<Type, Update>] : never);
79
+ type ContainsCondition<Level extends "record" | "gql" = "record", User extends object = InferredAttributes, Update extends boolean = boolean, Type extends object = object> = StringContainsCondition<Level, User, Update, Type> | BooleanContainsCondition<Level, User, Update, Type>;
80
+ type HasAnyCondition<Level extends "record" | "gql", User extends object, Update extends boolean, Type extends object> = readonly [string[] | UserStringArrayOperand<User>, HasAnyOperator, string[] | UserStringArrayOperand<User>] | (Level extends "record" ? readonly [RecordOperand<Type, Update>, HasAnyOperator, string[] | UserStringArrayOperand<User>] | readonly [string[] | UserStringArrayOperand<User>, HasAnyOperator, RecordOperand<Type, Update>] : never);
81
+ /**
82
+ * Type representing a permission condition that combines user attributes, record fields, and literal values using comparison operators.
83
+ *
84
+ * The User type is extended by `tailor.d.ts`, which is automatically generated when running `tailor generate`.
85
+ * Attributes enabled in the config file's `auth.userProfile.attributes` (or
86
+ * `auth.machineUserAttributes` when userProfile is omitted) become available as types.
87
+ * @example
88
+ * ```ts
89
+ * // tailor.config.ts
90
+ * export const auth = defineAuth("my-auth", {
91
+ * userProfile: {
92
+ * type: user,
93
+ * attributes: {
94
+ * isAdmin: true,
95
+ * roles: true,
96
+ * }
97
+ * }
98
+ * });
99
+ * ```
100
+ */
101
+ type PermissionCondition<Level extends "record" | "gql" = "record", User extends object = InferredAttributes, Update extends boolean = boolean, Type extends object = object> = EqualityCondition<Level, User, Update, Type> | ContainsCondition<Level, User, Update, Type> | HasAnyCondition<Level, User, Update, Type>;
102
+ /**
103
+ * Grants full record-level access without any conditions.
104
+ *
105
+ * Unsafe and intended only for local development, prototyping, or tests.
106
+ * Do not use this in production environments, as it effectively disables
107
+ * authorization checks.
108
+ */
109
+ declare const unsafeAllowAllTypePermission: TailorTypePermission;
110
+ /**
111
+ * Grants full GraphQL access (all actions) without any conditions.
112
+ *
113
+ * Unsafe and intended only for local development, prototyping, or tests.
114
+ * Do not use this in production environments, as it effectively disables
115
+ * authorization checks.
116
+ */
117
+ declare const unsafeAllowAllGqlPermission: TailorTypeGqlPermission;
118
+ //#endregion
119
+ export { PermissionCondition, TailorTypeGqlPermission, TailorTypePermission, unsafeAllowAllGqlPermission, unsafeAllowAllTypePermission };
@@ -0,0 +1,456 @@
1
+ import { InferredAttributes, TailorPrincipal } from "../../../runtime/types.mjs";
2
+ 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";
5
+ import { AllowedValues, AllowedValuesOutput } from "../../types/field.mjs";
6
+ import { FieldParseArgs, FieldParseInternalArgs } from "../../types/field-runtime.mjs";
7
+ import { PluginConfigs } from "../../../plugin/types.mjs";
8
+ import { TailorTypeGqlPermission, TailorTypePermission } from "./permission.mjs";
9
+ import { StandardSchemaV1 } from "@standard-schema/spec";
10
+
11
+ //#region src/configure/services/tailordb/schema.d.ts
12
+ type AnyBuilderMethod = any;
13
+ type TailorAnyDBField = Omit<TailorDBField$1<AnyBuilderMethod, AnyBuilderMethod>, "fields"> & {
14
+ readonly fields: Record<string, AnyBuilderMethod>;
15
+ _metadata: DBFieldMetadata;
16
+ parse: AnyBuilderMethod;
17
+ _parseInternal: AnyBuilderMethod;
18
+ readonly typeName: TypeLevelError<string>;
19
+ description: AnyBuilderMethod;
20
+ relation: AnyBuilderMethod;
21
+ index: AnyBuilderMethod;
22
+ unique: AnyBuilderMethod;
23
+ vector: AnyBuilderMethod;
24
+ hooks: AnyBuilderMethod;
25
+ validate: AnyBuilderMethod;
26
+ serial: AnyBuilderMethod;
27
+ clone: AnyBuilderMethod;
28
+ };
29
+ type TailorAnyDBType = TailorDBType<any, any>;
30
+ type IsAny<T> = 0 extends 1 & T ? true : false;
31
+ type DBFieldTypeNameMethod<Defined extends DefinedDBFieldMetadata> = IsAny<Defined> extends true ? TypeLevelError<string> : TypeLevelError<"typeName cannot be used on TailorDB fields">;
32
+ type WithDBFieldDescription<Defined> = Defined & {
33
+ description: true;
34
+ };
35
+ type WithDBFieldRelation<Defined, S extends RelationType | RelationSelfConfig> = S extends "oneToOne" | "1-1" ? Defined & {
36
+ unique: true;
37
+ index: true;
38
+ relation: true;
39
+ } : S extends {
40
+ type: "oneToOne" | "1-1";
41
+ } ? Defined & {
42
+ unique: true;
43
+ index: true;
44
+ relation: true;
45
+ } : Defined & {
46
+ index: true;
47
+ relation: true;
48
+ };
49
+ type WithDBFieldIndex<Defined> = Defined & {
50
+ index: true;
51
+ };
52
+ type WithDBFieldUnique<Defined> = Defined & {
53
+ unique: true;
54
+ index: true;
55
+ };
56
+ type WithDBFieldVector<Defined> = Defined & {
57
+ vector: true;
58
+ };
59
+ type WithDBFieldHooks<Defined, H> = Defined & {
60
+ hooks: {
61
+ create: H extends {
62
+ create: unknown;
63
+ } ? true : false;
64
+ update: H extends {
65
+ update: unknown;
66
+ } ? true : false;
67
+ };
68
+ serial: false;
69
+ };
70
+ type WithDBFieldValidate<Defined> = Defined & {
71
+ validate: true;
72
+ };
73
+ type WithDBFieldSerial<Defined> = Defined & {
74
+ serial: true;
75
+ hooks: {
76
+ create: false;
77
+ update: false;
78
+ };
79
+ };
80
+ type WithDBFieldCloneOptions<Defined extends DefinedDBFieldMetadata, NewOpt extends FieldOptions> = IsAny<Defined> extends true ? Defined : Omit<Defined, "array"> & {
81
+ array: NewOpt extends {
82
+ array: true;
83
+ } ? true : NewOpt extends {
84
+ array: false;
85
+ } ? false : Defined["array"];
86
+ };
87
+ type NonNullableDBFieldOutput<Output> = Exclude<Output, null>;
88
+ type DBFieldScalarOutput<Output> = NonNullableDBFieldOutput<Output> extends (infer Item)[] ? Item : NonNullableDBFieldOutput<Output>;
89
+ type DBFieldCloneArrayOutput<Output, NewOpt extends FieldOptions> = NewOpt extends {
90
+ array: true;
91
+ } ? DBFieldScalarOutput<Output>[] : NewOpt extends {
92
+ array: false;
93
+ } ? DBFieldScalarOutput<Output> : NonNullableDBFieldOutput<Output>;
94
+ type DBFieldCloneOutput<Output, NewOpt extends FieldOptions> = NewOpt extends {
95
+ optional: true;
96
+ } ? DBFieldCloneArrayOutput<Output, NewOpt> | null : NewOpt extends {
97
+ optional: false;
98
+ } ? DBFieldCloneArrayOutput<Output, NewOpt> : null extends Output ? DBFieldCloneArrayOutput<Output, NewOpt> | null : DBFieldCloneArrayOutput<Output, NewOpt>;
99
+ 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
+ type DBFieldDescriptionFn<Defined extends DefinedDBFieldMetadata, Output> = (description: string) => TailorDBField<WithDBFieldDescription<Defined>, Output>;
101
+ type DBFieldRelationFn<Defined extends DefinedDBFieldMetadata, Output> = {
102
+ <S extends RelationType, T extends TailorAnyDBType>(config: RelationConfig<S, T>): TailorDBField<WithDBFieldRelation<Defined, S>, Output>;
103
+ <S extends RelationSelfConfig>(config: S): TailorDBField<WithDBFieldRelation<Defined, S>, Output>;
104
+ };
105
+ type DBFieldIndexFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldIndex<Defined>, Output>;
106
+ type DBFieldUniqueFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<WithDBFieldUnique<Defined>, Output>;
107
+ 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>;
109
+ type DBFieldValidateFn<Defined extends DefinedDBFieldMetadata, Output> = (...validate: FieldValidateInput<Output>[]) => TailorDBField<WithDBFieldValidate<Defined>, Output>;
110
+ type DBFieldSerialFn<Defined extends DefinedDBFieldMetadata, Output> = (config: SerialConfig<Defined["type"] & ("integer" | "string")>) => TailorDBField<WithDBFieldSerial<Defined>, Output>;
111
+ type DBFieldDescriptionMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldDescriptionFn<Defined, Output> : Defined extends {
112
+ description: unknown;
113
+ } ? TypeLevelError<".description() has already been set"> : DBFieldDescriptionFn<Defined, Output>;
114
+ type DBFieldRelationMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldRelationFn<Defined, Output> : Defined extends {
115
+ relation: unknown;
116
+ } ? TypeLevelError<".relation() has already been set"> : DBFieldRelationFn<Defined, Output>;
117
+ type DBFieldIndexMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldIndexFn<Defined, Output> : Defined extends {
118
+ 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>;
122
+ type DBFieldUniqueMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldUniqueFn<Defined, Output> : Defined extends {
123
+ 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>;
127
+ type DBFieldVectorMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldVectorFn<Defined, Output> : Defined extends {
128
+ vector: unknown;
129
+ } ? TypeLevelError<".vector() has already been set"> : Defined extends {
130
+ type: "string";
131
+ array: false;
132
+ } ? DBFieldVectorFn<Defined, Output> : TypeLevelError<"vector can only be set on non-array string fields">;
133
+ type DBFieldHooksMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldHooksFn<Defined, Output> : Defined extends {
134
+ serial: true;
135
+ hooks: {
136
+ create: false;
137
+ update: false;
138
+ };
139
+ } ? TypeLevelError<"hooks cannot be set after serial"> : Defined extends {
140
+ hooks: unknown;
141
+ } ? TypeLevelError<".hooks() has already been set"> : Defined extends {
142
+ type: "nested";
143
+ } ? TypeLevelError<"hooks cannot be set on nested type fields"> : DBFieldHooksFn<Defined, Output>;
144
+ type DBFieldValidateMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldValidateFn<Defined, Output> : Defined extends {
145
+ validate: unknown;
146
+ } ? TypeLevelError<".validate() has already been set"> : DBFieldValidateFn<Defined, Output>;
147
+ type DBFieldSerialMethod<Defined extends DefinedDBFieldMetadata, Output> = IsAny<Defined> extends true ? DBFieldSerialFn<Defined, Output> : Defined extends {
148
+ serial: true;
149
+ } ? TypeLevelError<".serial() has already been set"> : Defined extends {
150
+ serial: false;
151
+ } ? TypeLevelError<"serial cannot be set after hooks"> : IsAny<Output> extends true ? Defined extends {
152
+ type: "integer" | "string";
153
+ array: false;
154
+ } ? DBFieldSerialFn<Defined, Output> : TypeLevelError<"serial can only be set on non-array integer or string fields"> : null extends Output ? TypeLevelError<"serial can only be set on non-array integer or string fields"> : Defined extends {
155
+ type: "integer" | "string";
156
+ array: false;
157
+ } ? DBFieldSerialFn<Defined, Output> : TypeLevelError<"serial can only be set on non-array integer or string fields">;
158
+ /**
159
+ * Full TailorDBField interface with builder methods.
160
+ * Extends the minimal structural interface from types/ with fluent API methods.
161
+ */
162
+ interface TailorDBField<Defined extends DefinedDBFieldMetadata = DefinedDBFieldMetadata, Output = any> extends Omit<TailorDBField$1<Defined, Output>, "fields"> {
163
+ readonly fields: Record<string, TailorAnyDBField>;
164
+ _metadata: DBFieldMetadata;
165
+ /**
166
+ * Parse and validate a value against this field's validation rules
167
+ */
168
+ 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
+ /**
175
+ * typeName is not available on TailorDB fields.
176
+ * Use typeName on pipeline fields (t.enum / t.object) instead.
177
+ */
178
+ typeName: DBFieldTypeNameMethod<Defined>;
179
+ /**
180
+ * Set a description for the field
181
+ */
182
+ description: DBFieldDescriptionMethod<Defined, Output>;
183
+ /**
184
+ * Define a relation to another type.
185
+ */
186
+ relation: DBFieldRelationMethod<Defined, Output>;
187
+ /**
188
+ * Add an index to the field
189
+ */
190
+ index: DBFieldIndexMethod<Defined, Output>;
191
+ /**
192
+ * Make the field unique (also adds an index)
193
+ */
194
+ unique: DBFieldUniqueMethod<Defined, Output>;
195
+ /**
196
+ * Enable vector search on the field (string type only)
197
+ */
198
+ vector: DBFieldVectorMethod<Defined, Output>;
199
+ /**
200
+ * Add hooks for create/update operations on this field.
201
+ */
202
+ hooks: DBFieldHooksMethod<Defined, Output>;
203
+ /**
204
+ * Add validation functions to the field.
205
+ */
206
+ validate: DBFieldValidateMethod<Defined, Output>;
207
+ /**
208
+ * Configure serial/auto-increment behavior
209
+ */
210
+ serial: DBFieldSerialMethod<Defined, Output>;
211
+ /**
212
+ * Clone the field with optional overrides for field options
213
+ */
214
+ clone<const NewOpt extends FieldOptions>(options?: NewOpt): TailorDBField<WithDBFieldCloneOptions<Defined, NewOpt>, DBFieldCloneOutput<Output, NewOpt>>;
215
+ }
216
+ /**
217
+ * Full TailorDBType interface with builder methods.
218
+ * Extends the minimal structural interface from types/ with fluent API methods.
219
+ */
220
+ interface TailorDBType<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> extends TailorDBType$1<Fields, User> {
221
+ _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>;
230
+ 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 };
232
+ 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>;
234
+ }
235
+ type TailorDBInstance<Fields extends Record<string, TailorAnyDBField> = any, User extends object = InferredAttributes> = TailorDBType<Fields, User>;
236
+ interface RelationConfig<S extends RelationType, T extends TailorDBType> {
237
+ type: S;
238
+ toward: {
239
+ type: T;
240
+ as?: string;
241
+ key?: keyof T["fields"] & string;
242
+ };
243
+ backward?: string;
244
+ }
245
+ type RelationSelfConfig = {
246
+ type: RelationType;
247
+ toward: {
248
+ type: "self";
249
+ as?: string;
250
+ key?: string;
251
+ };
252
+ backward?: string;
253
+ };
254
+ type DBFieldDefined<T extends TailorFieldType, Opt extends FieldOptions> = {
255
+ type: T;
256
+ array: Opt extends {
257
+ array: true;
258
+ } ? true : false;
259
+ };
260
+ type DBFieldOutput<T extends TailorFieldType, Opt extends FieldOptions, OutputBase = TailorToTs[T]> = FieldOutput<OutputBase, Opt>;
261
+ type TailorDBFieldInstance<T extends TailorFieldType, Opt extends FieldOptions, OutputBase = TailorToTs[T]> = TailorDBField<DBFieldDefined<T, Opt>, DBFieldOutput<T, Opt, OutputBase>>;
262
+ /**
263
+ * Create a UUID field.
264
+ * @param options - Field configuration options
265
+ * @returns A UUID field
266
+ * @example db.uuid()
267
+ * @example db.uuid({ optional: true })
268
+ */
269
+ declare function uuid<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"uuid", Opt, string>;
270
+ /**
271
+ * Create a string field.
272
+ * @param options - Field configuration options
273
+ * @returns A string field
274
+ * @example db.string()
275
+ * @example db.string({ optional: true })
276
+ */
277
+ declare function string<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"string", Opt, string>;
278
+ /**
279
+ * Create a boolean field.
280
+ * Note: The method name is `bool` but creates a `boolean` type field.
281
+ * @param options - Field configuration options
282
+ * @returns A boolean field
283
+ * @example db.bool()
284
+ * @example db.bool({ optional: true })
285
+ */
286
+ declare function bool<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"boolean", Opt, boolean>;
287
+ /**
288
+ * Create an integer field.
289
+ * @param options - Field configuration options
290
+ * @returns An integer field
291
+ * @example db.int()
292
+ * @example db.int({ optional: true })
293
+ */
294
+ declare function int<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"integer", Opt, number>;
295
+ /**
296
+ * Create a float (decimal number) field.
297
+ * @param options - Field configuration options
298
+ * @returns A float field
299
+ * @example db.float()
300
+ * @example db.float({ optional: true })
301
+ */
302
+ declare function float<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"float", Opt, number>;
303
+ interface DecimalFieldOptions extends FieldOptions {
304
+ scale?: number;
305
+ }
306
+ /**
307
+ * Create a decimal field (stored as string for precision).
308
+ * @param options - Field configuration options including optional scale (0-12)
309
+ * @returns A decimal field
310
+ * @example db.decimal()
311
+ * @example db.decimal({ scale: 2 })
312
+ * @example db.decimal({ scale: 2, optional: true })
313
+ */
314
+ declare function decimal<const Opt extends DecimalFieldOptions>(options?: Opt): TailorDBFieldInstance<"decimal", Opt, string>;
315
+ /**
316
+ * Create a date field (date only, no time component).
317
+ * Format: "yyyy-MM-dd"
318
+ * @param options - Field configuration options
319
+ * @returns A date field
320
+ * @example db.date()
321
+ */
322
+ declare function date<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"date", Opt, string>;
323
+ /**
324
+ * Create a datetime field (date and time).
325
+ * Format: ISO 8601, such as "yyyy-MM-ddTHH:mm:ssZ" or "yyyy-MM-ddTHH:mm:ss+09:00"
326
+ * @param options - Field configuration options
327
+ * @returns A datetime field
328
+ * @example db.datetime()
329
+ */
330
+ declare function datetime<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"datetime", Opt, string | Date>;
331
+ /**
332
+ * Create a time field (time only, no date component).
333
+ * Format: "HH:mm"
334
+ * @param options - Field configuration options
335
+ * @returns A time field
336
+ * @example db.time()
337
+ */
338
+ declare function time<const Opt extends FieldOptions>(options?: Opt): TailorDBFieldInstance<"time", Opt, string>;
339
+ /**
340
+ * Create an enum field with a fixed set of allowed string values.
341
+ * @param values - Array of allowed string values, or array of `{ value, description }` objects
342
+ * @param options - Field configuration options
343
+ * @returns An enum field
344
+ * @example db.enum(["active", "inactive", "suspended"])
345
+ * @example db.enum(["small", "medium", "large"], { optional: true })
346
+ */
347
+ declare function _enum<const V extends AllowedValues, const Opt extends FieldOptions>(values: V, options?: Opt): TailorDBField<{
348
+ type: "enum";
349
+ array: Opt extends {
350
+ array: true;
351
+ } ? true : false;
352
+ }, FieldOutput<AllowedValuesOutput<V>, Opt>>;
353
+ /**
354
+ * Create a nested object field with sub-fields.
355
+ * @param fields - Record of nested field definitions
356
+ * @param options - Field configuration options
357
+ * @returns A nested object field
358
+ * @example db.object({ street: db.string(), city: db.string(), zip: db.string() })
359
+ * @example db.object({ name: db.string() }, { optional: true })
360
+ */
361
+ declare function object<const F extends Record<string, TailorAnyDBField> & ExcludeNestedDBFields<F>, const Opt extends FieldOptions>(fields: F, options?: Opt): TailorDBField<{
362
+ type: "nested";
363
+ array: Opt extends {
364
+ array: true;
365
+ } ? true : false;
366
+ }, FieldOutput<InferFieldsOutput<F>, Opt>>;
367
+ declare const idField: TailorDBFieldInstance<"uuid", FieldOptions, string>;
368
+ type idField = typeof idField;
369
+ type DBTable<F extends {
370
+ id?: never;
371
+ } & Record<string, TailorAnyDBField>> = TailorDBInstance<{
372
+ id: idField;
373
+ } & F>;
374
+ /**
375
+ * Creates a new database table with the specified fields.
376
+ * An `id` field (UUID) is automatically added to every table.
377
+ * @param name - The name of the table, or a tuple of [name, pluralForm]
378
+ * @param fields - The field definitions for the table
379
+ * @returns A new TailorDB table instance
380
+ * @example
381
+ * export const user = db.table("User", {
382
+ * name: db.string(),
383
+ * email: db.string(),
384
+ * age: db.int({ optional: true }),
385
+ * role: db.enum(["admin", "member"]),
386
+ * ...db.fields.timestamps(),
387
+ * });
388
+ * // Always export both the value and type:
389
+ * export type user = typeof user;
390
+ */
391
+ declare function dbTable<const F extends {
392
+ id?: never;
393
+ } & Record<string, TailorAnyDBField>>(name: string | [string, string], fields: F): DBTable<F>;
394
+ /**
395
+ * Creates a new database table with the specified fields and description.
396
+ * An `id` field (UUID) is automatically added to every table.
397
+ * @param name - The name of the table, or a tuple of [name, pluralForm]
398
+ * @param description - A description of the table
399
+ * @param fields - The field definitions for the table
400
+ * @returns A new TailorDB table instance
401
+ */
402
+ declare function dbTable<const F extends {
403
+ id?: never;
404
+ } & Record<string, TailorAnyDBField>>(name: string | [string, string], description: string, fields: F): DBTable<F>;
405
+ /** TailorDB schema builder utilities for defining tables and fields. */
406
+ declare const db: {
407
+ table: typeof dbTable;
408
+ uuid: typeof uuid;
409
+ string: typeof string;
410
+ bool: typeof bool;
411
+ int: typeof int;
412
+ float: typeof float;
413
+ decimal: typeof decimal;
414
+ date: typeof date;
415
+ datetime: typeof datetime;
416
+ time: typeof time;
417
+ enum: typeof _enum;
418
+ object: typeof object;
419
+ fields: {
420
+ /**
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.
425
+ * @returns An object with createdAt and updatedAt fields
426
+ * @example
427
+ * const model = db.table("Model", {
428
+ * name: db.string(),
429
+ * ...db.fields.timestamps(),
430
+ * });
431
+ */
432
+ 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;
448
+ invoker: TailorPrincipal | null;
449
+ }) => string | Date;
450
+ readonly update: () => Date;
451
+ }>>, string | Date>;
452
+ };
453
+ };
454
+ };
455
+ //#endregion
456
+ export { TailorAnyDBField, TailorAnyDBType, TailorDBField, TailorDBInstance, TailorDBType, db };