@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,26 @@
1
+ import { Plugin } from "../../plugin/types.mjs";
2
+ import { AppConfig } from "../../configure/config/types.mjs";
3
+
4
+ //#region src/cli/shared/config-loader.d.ts
5
+ /**
6
+ * Loaded configuration with resolved path
7
+ */
8
+ type LoadedConfig = AppConfig & {
9
+ path: string;
10
+ };
11
+ interface LoadConfigOptions {
12
+ /** Import cache-busting value for watch-mode reloads. */
13
+ importNonce?: string;
14
+ }
15
+ /**
16
+ * Load Tailor configuration file and associated plugins.
17
+ * @param configPath - Optional explicit config path
18
+ * @param options - Optional module import behavior.
19
+ * @returns Loaded config, plugins, and config path
20
+ */
21
+ declare function loadConfig(configPath?: string, options?: LoadConfigOptions): Promise<{
22
+ config: LoadedConfig;
23
+ plugins: Plugin[];
24
+ }>;
25
+ //#endregion
26
+ export { LoadConfigOptions, LoadedConfig, loadConfig };
@@ -0,0 +1,28 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/cli/shared/context.d.ts
4
+ type LoadWorkspaceIdOptions = {
5
+ workspaceId?: string;
6
+ profile?: string;
7
+ };
8
+ type LoadAccessTokenOptions = {
9
+ profile?: string;
10
+ };
11
+ /**
12
+ * Load workspace ID from command options, environment variables, or platform config.
13
+ * In CLI context, env fallback is also handled by politty's arg env option.
14
+ * Priority: opts/workspaceId > env/workspaceId > opts/profile > error
15
+ * @param opts - Workspace and profile options
16
+ * @returns Resolved workspace ID
17
+ */
18
+ declare function loadWorkspaceId(opts?: LoadWorkspaceIdOptions): Promise<string>;
19
+ /**
20
+ * Load access token from environment variables, command options, or platform config.
21
+ * In CLI context, profile env fallback is also handled by politty's arg env option.
22
+ * Priority: env/TAILOR_PLATFORM_TOKEN > env/TAILOR_TOKEN (deprecated) > opts/profile > env/profile > config/currentUser > error
23
+ * @param opts - Profile options
24
+ * @returns Resolved access token
25
+ */
26
+ declare function loadAccessToken(opts?: LoadAccessTokenOptions): Promise<string>;
27
+ //#endregion
28
+ export { loadAccessToken, loadWorkspaceId };
@@ -0,0 +1,75 @@
1
+ import { AuthInvoker } from "../../tailor-proto/src/tailor/v1/auth_resource_pb.mjs";
2
+ import { FunctionExecution_Status } from "../../tailor-proto/src/tailor/v1/function_resource_pb.mjs";
3
+ import { OperatorClient } from "./client.mjs";
4
+ import { Jsonifiable } from "type-fest";
5
+
6
+ //#region src/cli/shared/script-executor.d.ts
7
+ /**
8
+ * Options for script execution
9
+ */
10
+ interface ScriptExecutionOptions<T extends Jsonifiable = Jsonifiable> {
11
+ /** Operator client instance */
12
+ client: OperatorClient;
13
+ /** Workspace ID */
14
+ workspaceId: string;
15
+ /** Script name (for identification) */
16
+ name: string;
17
+ /** Bundled script code to execute */
18
+ code: string;
19
+ /** Optional JSON-serializable argument to pass to the script */
20
+ arg?: T;
21
+ /** Auth invoker for script execution */
22
+ invoker: AuthInvoker;
23
+ /** Polling interval in milliseconds (default: 1000ms) */
24
+ pollInterval?: number;
25
+ }
26
+ /**
27
+ * Result of script execution
28
+ */
29
+ interface ScriptExecutionResult {
30
+ /** Whether the script executed successfully */
31
+ success: boolean;
32
+ /** Logs output from the script execution */
33
+ logs: string;
34
+ /** Result value from the script execution */
35
+ result: string;
36
+ /** Error message if execution failed */
37
+ error?: string;
38
+ }
39
+ /**
40
+ * Result from waiting for execution completion
41
+ */
42
+ interface ExecutionWaitResult {
43
+ /** Execution status */
44
+ status: FunctionExecution_Status;
45
+ /** Logs output from the execution */
46
+ logs: string;
47
+ /** Result value from the execution */
48
+ result: string;
49
+ }
50
+ /**
51
+ * Wait for a function execution to complete
52
+ *
53
+ * Polls the getFunctionExecution API until the execution reaches a terminal state
54
+ * (SUCCESS or FAILED).
55
+ * @param {OperatorClient} client - Operator client instance
56
+ * @param {string} workspaceId - Workspace ID
57
+ * @param {string} executionId - Execution ID to wait for
58
+ * @param {number} [pollInterval] - Polling interval in milliseconds (default: 1000ms)
59
+ * @returns {Promise<ExecutionWaitResult>} Execution result
60
+ * @throws {Error} If execution is not found
61
+ */
62
+ declare function waitForExecution(client: OperatorClient, workspaceId: string, executionId: string, pollInterval?: number): Promise<ExecutionWaitResult>;
63
+ /**
64
+ * Execute a script via TestExecScript API and wait for completion
65
+ *
66
+ * This function:
67
+ * 1. Calls testExecScript API to start execution
68
+ * 2. Polls getFunctionExecution until completion
69
+ * 3. Returns structured result with success/failure status
70
+ * @param {ScriptExecutionOptions} options - Execution options
71
+ * @returns {Promise<ScriptExecutionResult>} Execution result
72
+ */
73
+ declare function executeScript<T extends Jsonifiable = Jsonifiable>(options: ScriptExecutionOptions<T>): Promise<ScriptExecutionResult>;
74
+ //#endregion
75
+ export { ExecutionWaitResult, ScriptExecutionOptions, ScriptExecutionResult, executeScript, waitForExecution };
@@ -0,0 +1,46 @@
1
+ //#region src/cli/shared/seed-chunker.d.ts
2
+ /**
3
+ * Seed data chunker for splitting large seed data into manageable message sizes.
4
+ *
5
+ * When seed data exceeds the gRPC message size limit, this module splits the data
6
+ * into multiple chunks at type boundaries (or record boundaries for large types).
7
+ */
8
+ /**
9
+ * Seed data keyed by type name, with an array of records per type.
10
+ */
11
+ type SeedData = Record<string, Record<string, unknown>[]>;
12
+ /**
13
+ * A single chunk of seed data with metadata for ordered execution.
14
+ */
15
+ type SeedChunk = {
16
+ data: SeedData;
17
+ order: string[];
18
+ index: number;
19
+ total: number;
20
+ };
21
+ /**
22
+ * Options for chunking seed data.
23
+ */
24
+ type ChunkSeedDataOptions = {
25
+ /** Seed data keyed by type name */data: SeedData; /** Ordered list of type names (dependency order) */
26
+ order: string[]; /** Byte size of the bundled seed script code */
27
+ codeByteSize: number; /** Maximum gRPC message size in bytes (default: 3.5MB) */
28
+ maxMessageSize?: number;
29
+ };
30
+ /**
31
+ * Split seed data into chunks that fit within the gRPC message size limit.
32
+ *
33
+ * Algorithm:
34
+ * 1. Calculate the available budget for the arg field (maxMessageSize - codeByteSize - overhead)
35
+ * 2. If all data fits in one message, return a single chunk
36
+ * 3. Otherwise, iterate through types in dependency order:
37
+ * - If a type fits in the current chunk, add it
38
+ * - If adding a type would exceed the budget, finalize the current chunk and start a new one
39
+ * - If a single type exceeds the budget, split its records across multiple chunks
40
+ * - If a single record exceeds the budget, throw an error
41
+ * @param options - Chunking options
42
+ * @returns Array of seed chunks
43
+ */
44
+ declare function chunkSeedData(options: ChunkSeedDataOptions): SeedChunk[];
45
+ //#endregion
46
+ export { ChunkSeedDataOptions, SeedChunk, SeedData, chunkSeedData };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,20 @@
1
+ import { AppConfig } from "../../configure/config/types.mjs";
2
+
3
+ //#region src/cli/shared/type-generator.d.ts
4
+ /**
5
+ * Options for generating user type definitions
6
+ */
7
+ interface GenerateUserTypesOptions {
8
+ /** Application config */
9
+ config: AppConfig;
10
+ /** Path to Tailor config file */
11
+ configPath: string;
12
+ }
13
+ /**
14
+ * Generate user type definitions from the app config and write them to disk.
15
+ * @param options - Generation options
16
+ * @returns Promise that resolves when types are generated
17
+ */
18
+ declare function generateUserTypes(options: GenerateUserTypesOptions): Promise<void>;
19
+ //#endregion
20
+ export { generateUserTypes };
@@ -0,0 +1,4 @@
1
+ export declare function resolve(...args: unknown[]): Promise<unknown>;
2
+ export declare function load(...args: unknown[]): Promise<unknown>;
3
+ export declare function resolveSync(...args: unknown[]): unknown;
4
+ export declare function loadSync(...args: unknown[]): unknown;
@@ -0,0 +1,333 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ import { dirname, join, resolve as resolvePath } from "node:path";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
5
+ // Node.js module hook: TypeScript resolver + type stripper via amaro.
6
+ // Registered programmatically so the CLI can import user .ts files without
7
+ // requiring --experimental-strip-types at process startup.
8
+ import { transformSync } from "amaro";
9
+
10
+ const TS_EXTENSIONS = [".ts", ".mts"];
11
+ const JS_TO_TS = new Map([
12
+ [".js", ".ts"],
13
+ [".mjs", ".mts"],
14
+ ]);
15
+ const KNOWN_EXTENSIONS = [".ts", ".tsx", ".mts", ".js", ".mjs", ".json"];
16
+
17
+ // --- tsconfig paths resolution ---
18
+
19
+ const tsconfigPathsCache = new Map();
20
+
21
+ // Walks the `extends` chain and returns the nearest-defined `baseUrl` (which
22
+ // may come from a different config than the one defining `paths`), the
23
+ // nearest-defined `paths` object (TypeScript replaces, not merges, inherited
24
+ // `paths` once a config defines its own), and the directory of the config
25
+ // that defines that `paths` object (the TS 5.0+ fallback base when no
26
+ // `baseUrl` is defined anywhere in the chain).
27
+ function resolveEffectiveConfig(configFilePath, content, visited) {
28
+ if (visited.has(configFilePath)) return {};
29
+ visited.add(configFilePath);
30
+
31
+ const baseDir = dirname(configFilePath);
32
+ const opts = content.compilerOptions ?? {};
33
+ const ownBaseUrl =
34
+ typeof opts.baseUrl === "string" ? resolvePath(baseDir, opts.baseUrl) : undefined;
35
+ const ownRawPaths =
36
+ opts.paths && typeof opts.paths === "object" && !Array.isArray(opts.paths)
37
+ ? opts.paths
38
+ : undefined;
39
+
40
+ let inherited = {};
41
+ const extendsField = content.extends;
42
+ if (typeof extendsField === "string") {
43
+ const base = resolvePath(baseDir, extendsField);
44
+ const extendsPath = base.endsWith(".json") ? base : base + ".json";
45
+ try {
46
+ const sub = JSON.parse(readFileSync(extendsPath, "utf-8"));
47
+ inherited = resolveEffectiveConfig(extendsPath, sub, visited);
48
+ } catch (e) {
49
+ if (e?.code !== "ENOENT" && !(e instanceof SyntaxError)) throw e;
50
+ }
51
+ }
52
+
53
+ return {
54
+ baseUrl: ownBaseUrl ?? inherited.baseUrl,
55
+ rawPaths: ownRawPaths ?? inherited.rawPaths,
56
+ pathsBaseDir: ownRawPaths ? baseDir : inherited.pathsBaseDir,
57
+ };
58
+ }
59
+
60
+ function collectPathsInto(out, configFilePath, content, visited) {
61
+ const { baseUrl, rawPaths, pathsBaseDir } = resolveEffectiveConfig(
62
+ configFilePath,
63
+ content,
64
+ visited,
65
+ );
66
+ if (!rawPaths) return;
67
+
68
+ const absBase = baseUrl ?? pathsBaseDir ?? dirname(configFilePath);
69
+ for (const [alias, targets] of Object.entries(rawPaths)) {
70
+ if (!Array.isArray(targets)) continue;
71
+ const normalized = targets
72
+ .filter((t) => typeof t === "string")
73
+ .map((t) => {
74
+ const isWildcard = t.endsWith("/*");
75
+ const resolved = resolvePath(absBase, isWildcard ? t.slice(0, -2) : t);
76
+ return pathToFileURL(resolved).href + (isWildcard ? "/*" : "");
77
+ });
78
+ if (normalized.length === 0) continue;
79
+ out[alias] = normalized;
80
+ }
81
+ }
82
+
83
+ function loadTsconfigPaths(startDir) {
84
+ if (tsconfigPathsCache.has(startDir)) return tsconfigPathsCache.get(startDir);
85
+
86
+ const paths = Object.create(null);
87
+ let dir = startDir;
88
+ let prev = "";
89
+ while (dir !== prev) {
90
+ try {
91
+ const configFilePath = join(dir, "tsconfig.json");
92
+ const content = JSON.parse(readFileSync(configFilePath, "utf-8"));
93
+ collectPathsInto(paths, configFilePath, content, new Set());
94
+ break;
95
+ } catch (e) {
96
+ if (e?.code !== "ENOENT" && !(e instanceof SyntaxError)) throw e;
97
+ if (e instanceof SyntaxError) break;
98
+ }
99
+ prev = dir;
100
+ dir = dirname(dir);
101
+ }
102
+
103
+ tsconfigPathsCache.set(startDir, paths);
104
+ return paths;
105
+ }
106
+
107
+ function matchTsconfigPaths(specifier, paths) {
108
+ if (paths[specifier]?.length > 0) {
109
+ return paths[specifier];
110
+ }
111
+ const wildcardEntries = Object.entries(paths)
112
+ .filter(([alias]) => alias.endsWith("/*"))
113
+ .toSorted((a, b) => b[0].length - a[0].length);
114
+ for (const [alias, targets] of wildcardEntries) {
115
+ const prefix = alias.slice(0, -2);
116
+ if (specifier.startsWith(prefix + "/")) {
117
+ const rest = specifier.slice(prefix.length + 1);
118
+ return targets.map((t) => (t.endsWith("/*") ? t.slice(0, -2) + "/" + rest : t));
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+
124
+ async function tryResolveWithExtensions(base, context, nextResolve) {
125
+ if (!TS_EXTENSIONS.some((ext) => base.endsWith(ext))) {
126
+ for (const ext of TS_EXTENSIONS) {
127
+ for (const suffix of ["", "/index"]) {
128
+ try {
129
+ return await nextResolve(base + suffix + ext, context);
130
+ } catch (e) {
131
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
132
+ }
133
+ }
134
+ }
135
+ }
136
+ try {
137
+ return await nextResolve(base, context);
138
+ } catch (e) {
139
+ const code = e?.code;
140
+ if (code !== "ERR_MODULE_NOT_FOUND" && code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw e;
141
+ }
142
+ return null;
143
+ }
144
+
145
+ function tryResolveWithExtensionsSync(base, context, nextResolve) {
146
+ if (!TS_EXTENSIONS.some((ext) => base.endsWith(ext))) {
147
+ for (const ext of TS_EXTENSIONS) {
148
+ for (const suffix of ["", "/index"]) {
149
+ try {
150
+ return nextResolve(base + suffix + ext, context);
151
+ } catch (e) {
152
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
153
+ }
154
+ }
155
+ }
156
+ }
157
+ try {
158
+ return nextResolve(base, context);
159
+ } catch (e) {
160
+ const code = e?.code;
161
+ if (code !== "ERR_MODULE_NOT_FOUND" && code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw e;
162
+ }
163
+ return null;
164
+ }
165
+
166
+ // --- module hooks ---
167
+
168
+ export async function resolve(specifier, context, nextResolve) {
169
+ try {
170
+ return await nextResolve(specifier, context);
171
+ } catch (err) {
172
+ if (err.code !== "ERR_MODULE_NOT_FOUND" && err.code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw err;
173
+
174
+ if (
175
+ err.code === "ERR_UNSUPPORTED_DIR_IMPORT" &&
176
+ (specifier.startsWith(".") || specifier.startsWith("/"))
177
+ ) {
178
+ for (const ext of TS_EXTENSIONS) {
179
+ try {
180
+ return await nextResolve(specifier + "/index" + ext, context);
181
+ } catch (e) {
182
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
183
+ }
184
+ }
185
+ throw err;
186
+ }
187
+
188
+ if (!specifier.startsWith(".") && !specifier.startsWith("/")) {
189
+ // Non-relative: try tsconfig path aliases
190
+ if (context.parentURL?.startsWith("file://")) {
191
+ const parentParsed = new URL(context.parentURL);
192
+ parentParsed.search = "";
193
+ parentParsed.hash = "";
194
+ const parentDir = dirname(fileURLToPath(parentParsed));
195
+ const tsconfigPaths = loadTsconfigPaths(parentDir);
196
+ const candidates = matchTsconfigPaths(specifier, tsconfigPaths);
197
+ if (candidates) {
198
+ for (const candidate of candidates) {
199
+ const result = await tryResolveWithExtensions(candidate, context, nextResolve);
200
+ if (result) return result;
201
+ }
202
+ }
203
+ }
204
+ throw err;
205
+ }
206
+
207
+ const lastSegment = specifier.split("/").pop() ?? "";
208
+ if (!KNOWN_EXTENSIONS.some((ext) => lastSegment.endsWith(ext))) {
209
+ for (const ext of TS_EXTENSIONS) {
210
+ try {
211
+ return await nextResolve(specifier + ext, context);
212
+ } catch (e) {
213
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
214
+ }
215
+ }
216
+ }
217
+
218
+ for (const [jsExt, tsExt] of JS_TO_TS) {
219
+ if (specifier.endsWith(jsExt)) {
220
+ try {
221
+ return await nextResolve(specifier.slice(0, -jsExt.length) + tsExt, context);
222
+ } catch (e) {
223
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
224
+ }
225
+ }
226
+ }
227
+
228
+ throw err;
229
+ }
230
+ }
231
+
232
+ export async function load(url, context, nextLoad) {
233
+ if (url.startsWith("file:")) {
234
+ const parsedUrl = new URL(url);
235
+ if (
236
+ TS_EXTENSIONS.some((ext) => parsedUrl.pathname.endsWith(ext)) &&
237
+ !parsedUrl.pathname.endsWith(".d.ts") &&
238
+ !parsedUrl.pathname.endsWith(".d.mts")
239
+ ) {
240
+ parsedUrl.search = "";
241
+ parsedUrl.hash = "";
242
+ const filePath = fileURLToPath(parsedUrl);
243
+ const source = await readFile(filePath, "utf-8");
244
+ const { code } = transformSync(source, { mode: "transform", filename: filePath });
245
+ return { format: "module", shortCircuit: true, source: `${code}\n//# sourceURL=${url}` };
246
+ }
247
+ }
248
+ return nextLoad(url, context);
249
+ }
250
+
251
+ // Sync hooks for module.registerHooks() (Node >= 22.15.0).
252
+ export function resolveSync(specifier, context, nextResolve) {
253
+ try {
254
+ return nextResolve(specifier, context);
255
+ } catch (err) {
256
+ if (err.code !== "ERR_MODULE_NOT_FOUND" && err.code !== "ERR_UNSUPPORTED_DIR_IMPORT") throw err;
257
+
258
+ if (
259
+ err.code === "ERR_UNSUPPORTED_DIR_IMPORT" &&
260
+ (specifier.startsWith(".") || specifier.startsWith("/"))
261
+ ) {
262
+ for (const ext of TS_EXTENSIONS) {
263
+ try {
264
+ return nextResolve(specifier + "/index" + ext, context);
265
+ } catch (e) {
266
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
267
+ }
268
+ }
269
+ throw err;
270
+ }
271
+
272
+ if (!specifier.startsWith(".") && !specifier.startsWith("/")) {
273
+ // Non-relative: try tsconfig path aliases
274
+ if (context.parentURL?.startsWith("file://")) {
275
+ const parentParsed = new URL(context.parentURL);
276
+ parentParsed.search = "";
277
+ parentParsed.hash = "";
278
+ const parentDir = dirname(fileURLToPath(parentParsed));
279
+ const tsconfigPaths = loadTsconfigPaths(parentDir);
280
+ const candidates = matchTsconfigPaths(specifier, tsconfigPaths);
281
+ if (candidates) {
282
+ for (const candidate of candidates) {
283
+ const result = tryResolveWithExtensionsSync(candidate, context, nextResolve);
284
+ if (result) return result;
285
+ }
286
+ }
287
+ }
288
+ throw err;
289
+ }
290
+
291
+ const lastSegment = specifier.split("/").pop() ?? "";
292
+ if (!KNOWN_EXTENSIONS.some((ext) => lastSegment.endsWith(ext))) {
293
+ for (const ext of TS_EXTENSIONS) {
294
+ try {
295
+ return nextResolve(specifier + ext, context);
296
+ } catch (e) {
297
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
298
+ }
299
+ }
300
+ }
301
+
302
+ for (const [jsExt, tsExt] of JS_TO_TS) {
303
+ if (specifier.endsWith(jsExt)) {
304
+ try {
305
+ return nextResolve(specifier.slice(0, -jsExt.length) + tsExt, context);
306
+ } catch (e) {
307
+ if (e?.code !== "ERR_MODULE_NOT_FOUND") throw e;
308
+ }
309
+ }
310
+ }
311
+
312
+ throw err;
313
+ }
314
+ }
315
+
316
+ export function loadSync(url, context, nextLoad) {
317
+ if (url.startsWith("file:")) {
318
+ const parsedUrl = new URL(url);
319
+ if (
320
+ TS_EXTENSIONS.some((ext) => parsedUrl.pathname.endsWith(ext)) &&
321
+ !parsedUrl.pathname.endsWith(".d.ts") &&
322
+ !parsedUrl.pathname.endsWith(".d.mts")
323
+ ) {
324
+ parsedUrl.search = "";
325
+ parsedUrl.hash = "";
326
+ const filePath = fileURLToPath(parsedUrl);
327
+ const source = readFileSync(filePath, "utf-8");
328
+ const { code } = transformSync(source, { mode: "transform", filename: filePath });
329
+ return { format: "module", shortCircuit: true, source: `${code}\n//# sourceURL=${url}` };
330
+ }
331
+ }
332
+ return nextLoad(url, context);
333
+ }