primitive-admin 1.1.0-alpha.8 → 1.1.0-alpha.80

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 (522) hide show
  1. package/README.md +444 -106
  2. package/assets/skill/skills/primitive-platform/SKILL.md +811 -0
  3. package/dist/bin/primitive.d.ts +2 -0
  4. package/dist/bin/primitive.js +373 -21
  5. package/dist/bin/primitive.js.map +1 -1
  6. package/dist/src/commands/admins.d.ts +2 -0
  7. package/dist/src/commands/admins.js +128 -19
  8. package/dist/src/commands/admins.js.map +1 -1
  9. package/dist/src/commands/analytics.d.ts +2 -0
  10. package/dist/src/commands/analytics.js +700 -55
  11. package/dist/src/commands/analytics.js.map +1 -1
  12. package/dist/src/commands/apps.d.ts +2 -0
  13. package/dist/src/commands/apps.js +54 -96
  14. package/dist/src/commands/apps.js.map +1 -1
  15. package/dist/src/commands/auth.d.ts +2 -0
  16. package/dist/src/commands/auth.js +196 -105
  17. package/dist/src/commands/auth.js.map +1 -1
  18. package/dist/src/commands/blob-buckets.d.ts +2 -0
  19. package/dist/src/commands/blob-buckets.js +330 -0
  20. package/dist/src/commands/blob-buckets.js.map +1 -0
  21. package/dist/src/commands/catalog.d.ts +2 -0
  22. package/dist/src/commands/catalog.js +37 -38
  23. package/dist/src/commands/catalog.js.map +1 -1
  24. package/dist/src/commands/collection-type-configs.d.ts +2 -0
  25. package/dist/src/commands/collection-type-configs.js +84 -0
  26. package/dist/src/commands/collection-type-configs.js.map +1 -0
  27. package/dist/src/commands/collections.d.ts +2 -0
  28. package/dist/src/commands/collections.js +565 -0
  29. package/dist/src/commands/collections.js.map +1 -0
  30. package/dist/src/commands/comparisons.d.ts +2 -0
  31. package/dist/src/commands/comparisons.js +6 -6
  32. package/dist/src/commands/comparisons.js.map +1 -1
  33. package/dist/src/commands/config.d.ts +46 -0
  34. package/dist/src/commands/config.js +465 -0
  35. package/dist/src/commands/config.js.map +1 -0
  36. package/dist/src/commands/connections.d.ts +2 -0
  37. package/dist/src/commands/connections.js +100 -0
  38. package/dist/src/commands/connections.js.map +1 -0
  39. package/dist/src/commands/cron-triggers.d.ts +2 -0
  40. package/dist/src/commands/cron-triggers.js +265 -0
  41. package/dist/src/commands/cron-triggers.js.map +1 -0
  42. package/dist/src/commands/database-type-configs.d.ts +2 -0
  43. package/dist/src/commands/database-type-configs.js +163 -0
  44. package/dist/src/commands/database-type-configs.js.map +1 -0
  45. package/dist/src/commands/database-types.d.ts +2 -0
  46. package/dist/src/commands/database-types.js +171 -0
  47. package/dist/src/commands/database-types.js.map +1 -0
  48. package/dist/src/commands/databases.d.ts +65 -0
  49. package/dist/src/commands/databases.js +1859 -238
  50. package/dist/src/commands/databases.js.map +1 -1
  51. package/dist/src/commands/documents.d.ts +2 -0
  52. package/dist/src/commands/documents.js +2062 -19
  53. package/dist/src/commands/documents.js.map +1 -1
  54. package/dist/src/commands/email-templates.d.ts +2 -0
  55. package/dist/src/commands/email-templates.js +174 -0
  56. package/dist/src/commands/email-templates.js.map +1 -0
  57. package/dist/src/commands/env.d.ts +23 -0
  58. package/dist/src/commands/env.js +385 -0
  59. package/dist/src/commands/env.js.map +1 -0
  60. package/dist/src/commands/feature-flags.d.ts +14 -0
  61. package/dist/src/commands/feature-flags.js +116 -0
  62. package/dist/src/commands/feature-flags.js.map +1 -0
  63. package/dist/src/commands/functions.d.ts +20 -0
  64. package/dist/src/commands/functions.js +672 -0
  65. package/dist/src/commands/functions.js.map +1 -0
  66. package/dist/src/commands/group-type-configs.d.ts +2 -0
  67. package/dist/src/commands/group-type-configs.js +86 -0
  68. package/dist/src/commands/group-type-configs.js.map +1 -0
  69. package/dist/src/commands/groups.d.ts +2 -0
  70. package/dist/src/commands/groups.js +39 -108
  71. package/dist/src/commands/groups.js.map +1 -1
  72. package/dist/src/commands/guides.d.ts +223 -0
  73. package/dist/src/commands/guides.js +617 -65
  74. package/dist/src/commands/guides.js.map +1 -1
  75. package/dist/src/commands/init.d.ts +37 -0
  76. package/dist/src/commands/init.js +1693 -208
  77. package/dist/src/commands/init.js.map +1 -1
  78. package/dist/src/commands/integrations.d.ts +2 -0
  79. package/dist/src/commands/integrations.js +402 -182
  80. package/dist/src/commands/integrations.js.map +1 -1
  81. package/dist/src/commands/llm.d.ts +2 -0
  82. package/dist/src/commands/llm.js +13 -8
  83. package/dist/src/commands/llm.js.map +1 -1
  84. package/dist/src/commands/locks.d.ts +8 -0
  85. package/dist/src/commands/locks.js +160 -0
  86. package/dist/src/commands/locks.js.map +1 -0
  87. package/dist/src/commands/metadata-category-configs.d.ts +12 -0
  88. package/dist/src/commands/metadata-category-configs.js +112 -0
  89. package/dist/src/commands/metadata-category-configs.js.map +1 -0
  90. package/dist/src/commands/metadata.d.ts +2 -0
  91. package/dist/src/commands/metadata.js +281 -0
  92. package/dist/src/commands/metadata.js.map +1 -0
  93. package/dist/src/commands/prompts.d.ts +2 -0
  94. package/dist/src/commands/prompts.js +275 -621
  95. package/dist/src/commands/prompts.js.map +1 -1
  96. package/dist/src/commands/rule-sets.d.ts +3 -0
  97. package/dist/src/commands/rule-sets.js +137 -147
  98. package/dist/src/commands/rule-sets.js.map +1 -1
  99. package/dist/src/commands/scripts.d.ts +30 -0
  100. package/dist/src/commands/scripts.js +679 -0
  101. package/dist/src/commands/scripts.js.map +1 -0
  102. package/dist/src/commands/secrets.d.ts +2 -0
  103. package/dist/src/commands/secrets.js +108 -0
  104. package/dist/src/commands/secrets.js.map +1 -0
  105. package/dist/src/commands/sessions.d.ts +2 -0
  106. package/dist/src/commands/sessions.js +75 -0
  107. package/dist/src/commands/sessions.js.map +1 -0
  108. package/dist/src/commands/settings.d.ts +18 -0
  109. package/dist/src/commands/settings.js +54 -0
  110. package/dist/src/commands/settings.js.map +1 -0
  111. package/dist/src/commands/skill.d.ts +2 -0
  112. package/dist/src/commands/skill.js +29 -0
  113. package/dist/src/commands/skill.js.map +1 -0
  114. package/dist/src/commands/sync-app-settings.d.ts +158 -0
  115. package/dist/src/commands/sync-app-settings.js +328 -0
  116. package/dist/src/commands/sync-app-settings.js.map +1 -0
  117. package/dist/src/commands/sync.d.ts +2514 -0
  118. package/dist/src/commands/sync.js +16106 -848
  119. package/dist/src/commands/sync.js.map +1 -1
  120. package/dist/src/commands/tokens.d.ts +2 -0
  121. package/dist/src/commands/tokens.js +130 -21
  122. package/dist/src/commands/tokens.js.map +1 -1
  123. package/dist/src/commands/users.d.ts +2 -0
  124. package/dist/src/commands/users.js +532 -23
  125. package/dist/src/commands/users.js.map +1 -1
  126. package/dist/src/commands/vars.d.ts +8 -0
  127. package/dist/src/commands/vars.js +96 -0
  128. package/dist/src/commands/vars.js.map +1 -0
  129. package/dist/src/commands/waitlist.d.ts +2 -0
  130. package/dist/src/commands/waitlist.js +10 -10
  131. package/dist/src/commands/waitlist.js.map +1 -1
  132. package/dist/src/commands/webhooks.d.ts +2 -0
  133. package/dist/src/commands/webhooks.js +562 -0
  134. package/dist/src/commands/webhooks.js.map +1 -0
  135. package/dist/src/commands/workflows.d.ts +116 -0
  136. package/dist/src/commands/workflows.js +1638 -729
  137. package/dist/src/commands/workflows.js.map +1 -1
  138. package/dist/src/lib/access-rule-display.d.ts +21 -0
  139. package/dist/src/lib/access-rule-display.js +34 -0
  140. package/dist/src/lib/access-rule-display.js.map +1 -0
  141. package/dist/src/lib/api-client.d.ts +2147 -0
  142. package/dist/src/lib/api-client.js +2042 -160
  143. package/dist/src/lib/api-client.js.map +1 -1
  144. package/dist/src/lib/app-match-guard.d.ts +44 -0
  145. package/dist/src/lib/app-match-guard.js +72 -0
  146. package/dist/src/lib/app-match-guard.js.map +1 -0
  147. package/dist/src/lib/app-settings-descriptor.d.ts +263 -0
  148. package/dist/src/lib/app-settings-descriptor.js +584 -0
  149. package/dist/src/lib/app-settings-descriptor.js.map +1 -0
  150. package/dist/src/lib/auth-flow.d.ts +8 -0
  151. package/dist/src/lib/batch.d.ts +26 -0
  152. package/dist/src/lib/batch.js +32 -0
  153. package/dist/src/lib/batch.js.map +1 -0
  154. package/dist/src/lib/block-layout.d.ts +160 -0
  155. package/dist/src/lib/block-layout.js +451 -0
  156. package/dist/src/lib/block-layout.js.map +1 -0
  157. package/dist/src/lib/block-selector.d.ts +58 -0
  158. package/dist/src/lib/block-selector.js +92 -0
  159. package/dist/src/lib/block-selector.js.map +1 -0
  160. package/dist/src/lib/canonical-json.d.ts +12 -0
  161. package/dist/src/lib/canonical-json.js +35 -0
  162. package/dist/src/lib/canonical-json.js.map +1 -0
  163. package/dist/src/lib/channel.d.ts +30 -0
  164. package/dist/src/lib/channel.js +68 -0
  165. package/dist/src/lib/channel.js.map +1 -0
  166. package/dist/src/lib/cli-manifest.d.ts +68 -0
  167. package/dist/src/lib/cli-manifest.js +71 -0
  168. package/dist/src/lib/cli-manifest.js.map +1 -0
  169. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +101 -0
  170. package/dist/src/lib/codegen-shared/generatedFiles.js +191 -0
  171. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
  172. package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
  173. package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
  174. package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
  175. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +38 -0
  176. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +46 -0
  177. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
  178. package/dist/src/lib/config-json-field.d.ts +28 -0
  179. package/dist/src/lib/config-json-field.js +56 -0
  180. package/dist/src/lib/config-json-field.js.map +1 -0
  181. package/dist/src/lib/config-object-descriptor.d.ts +127 -0
  182. package/dist/src/lib/config-object-descriptor.js +696 -0
  183. package/dist/src/lib/config-object-descriptor.js.map +1 -0
  184. package/dist/src/lib/config-payload.d.ts +85 -0
  185. package/dist/src/lib/config-payload.js +116 -0
  186. package/dist/src/lib/config-payload.js.map +1 -0
  187. package/dist/src/lib/config-surface.d.ts +140 -0
  188. package/dist/src/lib/config-surface.js +317 -0
  189. package/dist/src/lib/config-surface.js.map +1 -0
  190. package/dist/src/lib/config-toml.d.ts +10 -0
  191. package/dist/src/lib/config-toml.js +42 -0
  192. package/dist/src/lib/config-toml.js.map +1 -0
  193. package/dist/src/lib/config.d.ts +71 -0
  194. package/dist/src/lib/config.js +71 -68
  195. package/dist/src/lib/config.js.map +1 -1
  196. package/dist/src/lib/confirm-prompt.d.ts +83 -0
  197. package/dist/src/lib/confirm-prompt.js +110 -0
  198. package/dist/src/lib/confirm-prompt.js.map +1 -0
  199. package/dist/src/lib/constants.d.ts +11 -0
  200. package/dist/src/lib/constants.js +12 -0
  201. package/dist/src/lib/constants.js.map +1 -0
  202. package/dist/src/lib/crash-handlers.d.ts +20 -0
  203. package/dist/src/lib/crash-handlers.js +49 -0
  204. package/dist/src/lib/crash-handlers.js.map +1 -0
  205. package/dist/src/lib/credentials-store.d.ts +104 -0
  206. package/dist/src/lib/credentials-store.js +336 -0
  207. package/dist/src/lib/credentials-store.js.map +1 -0
  208. package/dist/src/lib/csv.d.ts +47 -0
  209. package/dist/src/lib/csv.js +172 -0
  210. package/dist/src/lib/csv.js.map +1 -0
  211. package/dist/src/lib/data-input.d.ts +23 -0
  212. package/dist/src/lib/data-input.js +50 -0
  213. package/dist/src/lib/data-input.js.map +1 -0
  214. package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
  215. package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
  216. package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
  217. package/dist/src/lib/db-codegen/dbGenerator.d.ts +67 -0
  218. package/dist/src/lib/db-codegen/dbGenerator.js +170 -0
  219. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
  220. package/dist/src/lib/db-codegen/dbNaming.d.ts +87 -0
  221. package/dist/src/lib/db-codegen/dbNaming.js +180 -0
  222. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
  223. package/dist/src/lib/db-codegen/dbTemplates.d.ts +272 -0
  224. package/dist/src/lib/db-codegen/dbTemplates.js +480 -0
  225. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
  226. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +73 -0
  227. package/dist/src/lib/db-codegen/dbTsTypes.js +139 -0
  228. package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
  229. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
  230. package/dist/src/lib/db-codegen/dbTypeIR.js +517 -0
  231. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
  232. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
  233. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
  234. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
  235. package/dist/src/lib/document-export-permissions.d.ts +30 -0
  236. package/dist/src/lib/document-export-permissions.js +54 -0
  237. package/dist/src/lib/document-export-permissions.js.map +1 -0
  238. package/dist/src/lib/env-resolver-core.d.ts +253 -0
  239. package/dist/src/lib/env-resolver-core.js +459 -0
  240. package/dist/src/lib/env-resolver-core.js.map +1 -0
  241. package/dist/src/lib/env-resolver.d.ts +99 -0
  242. package/dist/src/lib/env-resolver.js +153 -0
  243. package/dist/src/lib/env-resolver.js.map +1 -0
  244. package/dist/src/lib/fetch.d.ts +5 -0
  245. package/dist/src/lib/function-bundle.d.ts +141 -0
  246. package/dist/src/lib/function-bundle.js +333 -0
  247. package/dist/src/lib/function-bundle.js.map +1 -0
  248. package/dist/src/lib/function-collect.d.ts +123 -0
  249. package/dist/src/lib/function-collect.js +594 -0
  250. package/dist/src/lib/function-collect.js.map +1 -0
  251. package/dist/src/lib/function-db-types.d.ts +187 -0
  252. package/dist/src/lib/function-db-types.js +782 -0
  253. package/dist/src/lib/function-db-types.js.map +1 -0
  254. package/dist/src/lib/function-document-types.d.ts +50 -0
  255. package/dist/src/lib/function-document-types.js +163 -0
  256. package/dist/src/lib/function-document-types.js.map +1 -0
  257. package/dist/src/lib/function-grants-preflight.d.ts +64 -0
  258. package/dist/src/lib/function-grants-preflight.js +100 -0
  259. package/dist/src/lib/function-grants-preflight.js.map +1 -0
  260. package/dist/src/lib/function-log-tail.d.ts +83 -0
  261. package/dist/src/lib/function-log-tail.js +115 -0
  262. package/dist/src/lib/function-log-tail.js.map +1 -0
  263. package/dist/src/lib/function-schema-codegen.d.ts +118 -0
  264. package/dist/src/lib/function-schema-codegen.js +402 -0
  265. package/dist/src/lib/function-schema-codegen.js.map +1 -0
  266. package/dist/src/lib/function-sync.d.ts +263 -0
  267. package/dist/src/lib/function-sync.js +604 -0
  268. package/dist/src/lib/function-sync.js.map +1 -0
  269. package/dist/src/lib/function-triggers.d.ts +66 -0
  270. package/dist/src/lib/function-triggers.js +285 -0
  271. package/dist/src/lib/function-triggers.js.map +1 -0
  272. package/dist/src/lib/function-typecheck.d.ts +86 -0
  273. package/dist/src/lib/function-typecheck.js +370 -0
  274. package/dist/src/lib/function-typecheck.js.map +1 -0
  275. package/dist/src/lib/generated-allowlist.d.ts +28 -0
  276. package/dist/src/lib/generated-allowlist.js +281 -0
  277. package/dist/src/lib/generated-allowlist.js.map +1 -0
  278. package/dist/src/lib/generated-config-surfaces.d.ts +1445 -0
  279. package/dist/src/lib/generated-config-surfaces.js +5836 -0
  280. package/dist/src/lib/generated-config-surfaces.js.map +1 -0
  281. package/dist/src/lib/generated-sdk-types.d.ts +12 -0
  282. package/dist/src/lib/generated-sdk-types.js +13 -0
  283. package/dist/src/lib/generated-sdk-types.js.map +1 -0
  284. package/dist/src/lib/generated-template-lint.d.ts +212 -0
  285. package/dist/src/lib/generated-template-lint.js +624 -0
  286. package/dist/src/lib/generated-template-lint.js.map +1 -0
  287. package/dist/src/lib/generated-workflow-model-fields.d.ts +20 -0
  288. package/dist/src/lib/generated-workflow-model-fields.js +53 -0
  289. package/dist/src/lib/generated-workflow-model-fields.js.map +1 -0
  290. package/dist/src/lib/google-client-secret-status.d.ts +35 -0
  291. package/dist/src/lib/google-client-secret-status.js +56 -0
  292. package/dist/src/lib/google-client-secret-status.js.map +1 -0
  293. package/dist/src/lib/init-adopt.d.ts +16 -0
  294. package/dist/src/lib/init-adopt.js +34 -0
  295. package/dist/src/lib/init-adopt.js.map +1 -0
  296. package/dist/src/lib/init-assets.d.ts +39 -0
  297. package/dist/src/lib/init-assets.js +97 -0
  298. package/dist/src/lib/init-assets.js.map +1 -0
  299. package/dist/src/lib/init-client-platforms.d.ts +14 -0
  300. package/dist/src/lib/init-client-platforms.js +71 -0
  301. package/dist/src/lib/init-client-platforms.js.map +1 -0
  302. package/dist/src/lib/init-config.d.ts +98 -0
  303. package/dist/src/lib/init-config.js +186 -0
  304. package/dist/src/lib/init-config.js.map +1 -0
  305. package/dist/src/lib/init-email-redirect-uris.d.ts +37 -0
  306. package/dist/src/lib/init-email-redirect-uris.js +46 -0
  307. package/dist/src/lib/init-email-redirect-uris.js.map +1 -0
  308. package/dist/src/lib/init-ios-links.d.ts +91 -0
  309. package/dist/src/lib/init-ios-links.js +219 -0
  310. package/dist/src/lib/init-ios-links.js.map +1 -0
  311. package/dist/src/lib/init-plan.d.ts +80 -0
  312. package/dist/src/lib/init-plan.js +95 -0
  313. package/dist/src/lib/init-plan.js.map +1 -0
  314. package/dist/src/lib/init-production-env.d.ts +48 -0
  315. package/dist/src/lib/init-production-env.js +59 -0
  316. package/dist/src/lib/init-production-env.js.map +1 -0
  317. package/dist/src/lib/init-schema.d.ts +74 -0
  318. package/dist/src/lib/init-schema.js +358 -0
  319. package/dist/src/lib/init-schema.js.map +1 -0
  320. package/dist/src/lib/init-xcode.d.ts +34 -0
  321. package/dist/src/lib/init-xcode.js +138 -0
  322. package/dist/src/lib/init-xcode.js.map +1 -0
  323. package/dist/src/lib/integration-request-config.d.ts +30 -0
  324. package/dist/src/lib/integration-request-config.js +145 -0
  325. package/dist/src/lib/integration-request-config.js.map +1 -0
  326. package/dist/src/lib/integration-selector.d.ts +42 -0
  327. package/dist/src/lib/integration-selector.js +46 -0
  328. package/dist/src/lib/integration-selector.js.map +1 -0
  329. package/dist/src/lib/ios-app-id.d.ts +34 -0
  330. package/dist/src/lib/ios-app-id.js +69 -0
  331. package/dist/src/lib/ios-app-id.js.map +1 -0
  332. package/dist/src/lib/local-state.d.ts +55 -0
  333. package/dist/src/lib/local-state.js +167 -0
  334. package/dist/src/lib/local-state.js.map +1 -0
  335. package/dist/src/lib/local-test-cases.d.ts +63 -0
  336. package/dist/src/lib/local-test-cases.js +136 -0
  337. package/dist/src/lib/local-test-cases.js.map +1 -0
  338. package/dist/src/lib/log-inspection.d.ts +680 -0
  339. package/dist/src/lib/log-inspection.js +784 -0
  340. package/dist/src/lib/log-inspection.js.map +1 -0
  341. package/dist/src/lib/migration-nag.d.ts +49 -0
  342. package/dist/src/lib/migration-nag.js +164 -0
  343. package/dist/src/lib/migration-nag.js.map +1 -0
  344. package/dist/src/lib/object-status-filter.d.ts +22 -0
  345. package/dist/src/lib/object-status-filter.js +45 -0
  346. package/dist/src/lib/object-status-filter.js.map +1 -0
  347. package/dist/src/lib/output.d.ts +109 -0
  348. package/dist/src/lib/output.js +191 -8
  349. package/dist/src/lib/output.js.map +1 -1
  350. package/dist/src/lib/package-manager.d.ts +140 -0
  351. package/dist/src/lib/package-manager.js +305 -0
  352. package/dist/src/lib/package-manager.js.map +1 -0
  353. package/dist/src/lib/paginate.d.ts +83 -0
  354. package/dist/src/lib/paginate.js +95 -0
  355. package/dist/src/lib/paginate.js.map +1 -0
  356. package/dist/src/lib/platform-owned.d.ts +63 -0
  357. package/dist/src/lib/platform-owned.js +85 -0
  358. package/dist/src/lib/platform-owned.js.map +1 -0
  359. package/dist/src/lib/project-config.d.ts +122 -0
  360. package/dist/src/lib/project-config.js +244 -0
  361. package/dist/src/lib/project-config.js.map +1 -0
  362. package/dist/src/lib/query-operators.d.ts +43 -0
  363. package/dist/src/lib/query-operators.js +80 -0
  364. package/dist/src/lib/query-operators.js.map +1 -0
  365. package/dist/src/lib/record-filter.d.ts +18 -0
  366. package/dist/src/lib/record-filter.js +55 -0
  367. package/dist/src/lib/record-filter.js.map +1 -0
  368. package/dist/src/lib/refresh-admin-credentials.d.ts +65 -0
  369. package/dist/src/lib/refresh-admin-credentials.js +103 -0
  370. package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
  371. package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
  372. package/dist/src/lib/resolve-init-dev-port.js +55 -0
  373. package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
  374. package/dist/src/lib/resolve-init-server.d.ts +64 -0
  375. package/dist/src/lib/resolve-init-server.js +77 -0
  376. package/dist/src/lib/resolve-init-server.js.map +1 -0
  377. package/dist/src/lib/resolve-platform.d.ts +74 -0
  378. package/dist/src/lib/resolve-platform.js +105 -0
  379. package/dist/src/lib/resolve-platform.js.map +1 -0
  380. package/dist/src/lib/run-status.d.ts +19 -0
  381. package/dist/src/lib/run-status.generated.d.ts +39 -0
  382. package/dist/src/lib/run-status.generated.js +66 -0
  383. package/dist/src/lib/run-status.generated.js.map +1 -0
  384. package/dist/src/lib/run-status.js +19 -0
  385. package/dist/src/lib/run-status.js.map +1 -0
  386. package/dist/src/lib/server-text-normalization.d.ts +51 -0
  387. package/dist/src/lib/server-text-normalization.js +90 -0
  388. package/dist/src/lib/server-text-normalization.js.map +1 -0
  389. package/dist/src/lib/server-url.d.ts +22 -0
  390. package/dist/src/lib/server-url.js +33 -0
  391. package/dist/src/lib/server-url.js.map +1 -0
  392. package/dist/src/lib/signing-secret-status.d.ts +81 -0
  393. package/dist/src/lib/signing-secret-status.js +116 -0
  394. package/dist/src/lib/signing-secret-status.js.map +1 -0
  395. package/dist/src/lib/skill-installer.d.ts +25 -0
  396. package/dist/src/lib/skill-installer.js +266 -0
  397. package/dist/src/lib/skill-installer.js.map +1 -0
  398. package/dist/src/lib/snapshots.d.ts +98 -0
  399. package/dist/src/lib/snapshots.js +294 -0
  400. package/dist/src/lib/snapshots.js.map +1 -0
  401. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
  402. package/dist/src/lib/swift-codegen/dbGenerator.js +914 -0
  403. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
  404. package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
  405. package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
  406. package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
  407. package/dist/src/lib/swift-codegen/generator.d.ts +94 -0
  408. package/dist/src/lib/swift-codegen/generator.js +440 -0
  409. package/dist/src/lib/swift-codegen/generator.js.map +1 -0
  410. package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +72 -0
  411. package/dist/src/lib/swift-codegen/schemaToSwift.js +644 -0
  412. package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
  413. package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +94 -0
  414. package/dist/src/lib/swift-codegen/siblingSymbols.js +155 -0
  415. package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
  416. package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
  417. package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
  418. package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
  419. package/dist/src/lib/sync-dir-selector.d.ts +21 -0
  420. package/dist/src/lib/sync-dir-selector.js +30 -0
  421. package/dist/src/lib/sync-dir-selector.js.map +1 -0
  422. package/dist/src/lib/sync-paths.d.ts +123 -0
  423. package/dist/src/lib/sync-paths.js +193 -0
  424. package/dist/src/lib/sync-paths.js.map +1 -0
  425. package/dist/src/lib/sync-resource-types.d.ts +563 -0
  426. package/dist/src/lib/sync-resource-types.js +1073 -0
  427. package/dist/src/lib/sync-resource-types.js.map +1 -0
  428. package/dist/src/lib/sync-selectors.d.ts +95 -0
  429. package/dist/src/lib/sync-selectors.js +228 -0
  430. package/dist/src/lib/sync-selectors.js.map +1 -0
  431. package/dist/src/lib/template.d.ts +170 -0
  432. package/dist/src/lib/template.js +484 -68
  433. package/dist/src/lib/template.js.map +1 -1
  434. package/dist/src/lib/test-case-file-names.d.ts +40 -0
  435. package/dist/src/lib/test-case-file-names.js +91 -0
  436. package/dist/src/lib/test-case-file-names.js.map +1 -0
  437. package/dist/src/lib/test-case-keys.d.ts +29 -0
  438. package/dist/src/lib/test-case-keys.js +55 -0
  439. package/dist/src/lib/test-case-keys.js.map +1 -0
  440. package/dist/src/lib/test-case-variables.d.ts +29 -0
  441. package/dist/src/lib/test-case-variables.js +71 -0
  442. package/dist/src/lib/test-case-variables.js.map +1 -0
  443. package/dist/src/lib/token-inject.d.ts +56 -0
  444. package/dist/src/lib/token-inject.js +204 -0
  445. package/dist/src/lib/token-inject.js.map +1 -0
  446. package/dist/src/lib/toml-database-config.d.ts +123 -0
  447. package/dist/src/lib/toml-database-config.js +544 -0
  448. package/dist/src/lib/toml-database-config.js.map +1 -0
  449. package/dist/src/lib/toml-metadata-config.d.ts +151 -0
  450. package/dist/src/lib/toml-metadata-config.js +476 -0
  451. package/dist/src/lib/toml-metadata-config.js.map +1 -0
  452. package/dist/src/lib/toml-native-form.d.ts +46 -0
  453. package/dist/src/lib/toml-native-form.js +78 -0
  454. package/dist/src/lib/toml-native-form.js.map +1 -0
  455. package/dist/src/lib/toml-params-validator.d.ts +129 -0
  456. package/dist/src/lib/toml-params-validator.js +298 -0
  457. package/dist/src/lib/toml-params-validator.js.map +1 -0
  458. package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
  459. package/dist/src/lib/toml-scalar-edit.js +283 -0
  460. package/dist/src/lib/toml-scalar-edit.js.map +1 -0
  461. package/dist/src/lib/user-selector.d.ts +24 -0
  462. package/dist/src/lib/user-selector.js +33 -0
  463. package/dist/src/lib/user-selector.js.map +1 -0
  464. package/dist/src/lib/version-check.d.ts +35 -0
  465. package/dist/src/lib/version-check.js +241 -0
  466. package/dist/src/lib/version-check.js.map +1 -0
  467. package/dist/src/lib/watch.d.ts +121 -0
  468. package/dist/src/lib/watch.js +169 -0
  469. package/dist/src/lib/watch.js.map +1 -0
  470. package/dist/src/lib/web-url.d.ts +40 -0
  471. package/dist/src/lib/web-url.js +76 -0
  472. package/dist/src/lib/web-url.js.map +1 -0
  473. package/dist/src/lib/workflow-apply.d.ts +110 -0
  474. package/dist/src/lib/workflow-apply.js +164 -0
  475. package/dist/src/lib/workflow-apply.js.map +1 -0
  476. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
  477. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
  478. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
  479. package/dist/src/lib/workflow-codegen/generator.d.ts +96 -0
  480. package/dist/src/lib/workflow-codegen/generator.js +361 -0
  481. package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
  482. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +94 -0
  483. package/dist/src/lib/workflow-codegen/invokerIR.js +76 -0
  484. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
  485. package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
  486. package/dist/src/lib/workflow-codegen/naming.js +81 -0
  487. package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
  488. package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +80 -0
  489. package/dist/src/lib/workflow-codegen/schemaToTs.js +303 -0
  490. package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
  491. package/dist/src/lib/workflow-config-apply.d.ts +70 -0
  492. package/dist/src/lib/workflow-config-apply.js +137 -0
  493. package/dist/src/lib/workflow-config-apply.js.map +1 -0
  494. package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
  495. package/dist/src/lib/workflow-config-sidecar.js +96 -0
  496. package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
  497. package/dist/src/lib/workflow-defaults.d.ts +29 -0
  498. package/dist/src/lib/workflow-defaults.js +41 -0
  499. package/dist/src/lib/workflow-defaults.js.map +1 -0
  500. package/dist/src/lib/workflow-field-descriptor.d.ts +91 -0
  501. package/dist/src/lib/workflow-field-descriptor.js +153 -0
  502. package/dist/src/lib/workflow-field-descriptor.js.map +1 -0
  503. package/dist/src/lib/workflow-fragments.d.ts +64 -0
  504. package/dist/src/lib/workflow-fragments.js +342 -0
  505. package/dist/src/lib/workflow-fragments.js.map +1 -0
  506. package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
  507. package/dist/src/lib/workflow-include-preserve.js +286 -0
  508. package/dist/src/lib/workflow-include-preserve.js.map +1 -0
  509. package/dist/src/lib/workflow-payload.d.ts +98 -0
  510. package/dist/src/lib/workflow-payload.js +178 -0
  511. package/dist/src/lib/workflow-payload.js.map +1 -0
  512. package/dist/src/lib/workflow-toml-validator.d.ts +207 -0
  513. package/dist/src/lib/workflow-toml-validator.js +762 -0
  514. package/dist/src/lib/workflow-toml-validator.js.map +1 -0
  515. package/dist/src/lib/workflow-usage.d.ts +198 -0
  516. package/dist/src/lib/workflow-usage.js +312 -0
  517. package/dist/src/lib/workflow-usage.js.map +1 -0
  518. package/dist/src/types/index.d.ts +591 -0
  519. package/dist/src/validators.d.ts +65 -0
  520. package/dist/src/validators.js +64 -0
  521. package/dist/src/validators.js.map +1 -0
  522. package/package.json +34 -9
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Schema-typed codegen for server functions — #3281, project
3
+ * `server-functions` phase 4.
4
+ *
5
+ * The intent's "Schema-typed codegen on every push": `<Key>Input` and
6
+ * `<Key>Output` from the declared schemas, a handler helper so function code
7
+ * is typed from the declaration, and a typed per-key invoker with the MODE
8
+ * fixed at generation time so a mismatch is a compile error. Two artifacts,
9
+ * both rendered from the same `functions/<key>.toml` and both regenerated by
10
+ * `config push`, `config pull` and `primitive functions codegen`:
11
+ *
12
+ * - `functions/primitive-function-types.d.ts` — every key's input and
13
+ * output types, and a `FunctionSchemas` augmentation keyed by function
14
+ * key (the `DatabaseSchemas` shape `primitive-db-types.d.ts` uses), which
15
+ * is what types `defineFunction("<key>", handler)`: `input` is the
16
+ * declared input, the return is checked against the declared output, and
17
+ * a key the tree does not declare is a compile error.
18
+ * - `functions/generated/<key>.generated.ts` — the client invoker, the
19
+ * `workflows codegen` layout: imports only from `js-bao-wss-client`,
20
+ * exports the two types and a `<key>(client)` factory whose members are
21
+ * the verbs the MODE allows and nothing else. A request function's
22
+ * invoker has exactly `invoke`; a task function's exactly `start`,
23
+ * `getStatus`, `waitFor` and `terminate`. The task `waitFor` binds
24
+ * `<Key>Output`, so the completion path is typed too (D3281-SO-003).
25
+ *
26
+ * ── The same descriptor the platform validates with ──────────────────────
27
+ *
28
+ * Schemas are interpreted through the vendored descriptor `workflows codegen`
29
+ * already reads (`workflow-codegen/schemaToTs.ts`, a byte copy of the server's
30
+ * `schema-descriptor.ts`), so what compiles is what every invocation door
31
+ * accepts: `input` is a REQUIRED option iff the schema rejects `{}` (the
32
+ * client sends `rootInput` only when `input !== undefined`, and the server
33
+ * defaults an absent one to `{}`), an absent schema is `unknown`, and a
34
+ * malformed schema fails naming the file rather than typing something false.
35
+ *
36
+ * ── Identifiers ──────────────────────────────────────────────────────────
37
+ *
38
+ * Names come from the workflow naming helpers (PascalCase, the digit-leading
39
+ * and reserved-word rules), and the runtime call always passes the ORIGINAL
40
+ * key. Two keys that sanitize to one identifier would render one file over the
41
+ * other, so that is refused naming both.
42
+ *
43
+ * FORMATTING CONTRACT (#1565): the invoker is emitted as a fixed point of
44
+ * Prettier's default config through `codegen-shared/prettierStable.ts`, like
45
+ * the other two generators, because `--check` byte-compares.
46
+ */
47
+ import { type FunctionMode } from "./generated-config-surfaces.js";
48
+ /** The regenerated declaration beside `primitive-db-types.d.ts`. */
49
+ export declare const FUNCTION_TYPES_DECLARATION_FILE = "primitive-function-types.d.ts";
50
+ /** Where the per-key invokers go, under `functions/`, unless `-o` says otherwise. */
51
+ export declare const FUNCTION_INVOKERS_DIR = "generated";
52
+ /** Suffix identifying a generated invoker (shared with the other generators). */
53
+ export declare const GENERATED_FILE_SUFFIX = ".generated.ts";
54
+ export declare class FunctionSchemaCodegenError extends Error {
55
+ }
56
+ export interface FunctionSchemaSource {
57
+ /**
58
+ * The file stem, which is the key push uses when the file declares none.
59
+ * An authored `[function] key` wins over it — see {@link resolveFunctionKey}.
60
+ */
61
+ key: string;
62
+ tomlPath: string;
63
+ tomlContent: string;
64
+ }
65
+ /** What the renderers need from one `functions/<key>.toml`. */
66
+ export interface FunctionSchemaIR {
67
+ key: string;
68
+ mode: FunctionMode;
69
+ /** The tree-relative file this came from, for a message an author acts on. */
70
+ fileLabel: string;
71
+ inputSchema: unknown;
72
+ outputSchema: unknown;
73
+ /** `input` is a required option iff the schema rejects `{}`. */
74
+ inputRequired: boolean;
75
+ /** `<Key>` — the PascalCase base of the two type names. */
76
+ typeBaseName: string;
77
+ inputTypeName: string;
78
+ outputTypeName: string;
79
+ /** `<key>(client)` — the exported factory. */
80
+ factoryName: string;
81
+ }
82
+ /**
83
+ * Every `functions/*.toml` in a tree, read once. The key is the one push
84
+ * uses: the file name (push takes the identity from it and attaches
85
+ * `functionKey` itself).
86
+ */
87
+ export declare function functionSchemaSources(configDir: string): FunctionSchemaSource[];
88
+ /**
89
+ * Parse one file into the data both renderers need. Throws a
90
+ * `FunctionSchemaCodegenError` naming the file for malformed schema JSON or an
91
+ * unresolvable mode — the honest `unknown` is for an ABSENT schema, never a
92
+ * broken one.
93
+ */
94
+ export declare function describeFunctionSchemas(source: FunctionSchemaSource): FunctionSchemaIR;
95
+ /**
96
+ * The declaration for a whole tree's functions. Sorted by key so the bytes
97
+ * depend on the files and not on the order they were read in. The
98
+ * augmentation is emitted even when the tree has no function yet: an empty
99
+ * `FunctionSchemas` keeps `FunctionKeys` open (`string`), so nothing breaks.
100
+ */
101
+ export declare function renderFunctionSchemasDeclaration(sources: readonly FunctionSchemaSource[]): string;
102
+ /**
103
+ * The full `<key>.generated.ts` for one function. Pure — exported so tests
104
+ * can assert on the string directly.
105
+ */
106
+ export declare function renderFunctionInvokerFile(source: FunctionSchemaSource): {
107
+ key: string;
108
+ content: string;
109
+ };
110
+ /**
111
+ * Every invoker for a tree, keyed by the file name the generator writes
112
+ * (`<key>.generated.ts`), with the identifier-collision refusal applied
113
+ * across the set.
114
+ */
115
+ export declare function renderFunctionInvokers(sources: readonly FunctionSchemaSource[]): Array<{
116
+ fileName: string;
117
+ content: string;
118
+ }>;
@@ -0,0 +1,402 @@
1
+ /**
2
+ * Schema-typed codegen for server functions — #3281, project
3
+ * `server-functions` phase 4.
4
+ *
5
+ * The intent's "Schema-typed codegen on every push": `<Key>Input` and
6
+ * `<Key>Output` from the declared schemas, a handler helper so function code
7
+ * is typed from the declaration, and a typed per-key invoker with the MODE
8
+ * fixed at generation time so a mismatch is a compile error. Two artifacts,
9
+ * both rendered from the same `functions/<key>.toml` and both regenerated by
10
+ * `config push`, `config pull` and `primitive functions codegen`:
11
+ *
12
+ * - `functions/primitive-function-types.d.ts` — every key's input and
13
+ * output types, and a `FunctionSchemas` augmentation keyed by function
14
+ * key (the `DatabaseSchemas` shape `primitive-db-types.d.ts` uses), which
15
+ * is what types `defineFunction("<key>", handler)`: `input` is the
16
+ * declared input, the return is checked against the declared output, and
17
+ * a key the tree does not declare is a compile error.
18
+ * - `functions/generated/<key>.generated.ts` — the client invoker, the
19
+ * `workflows codegen` layout: imports only from `js-bao-wss-client`,
20
+ * exports the two types and a `<key>(client)` factory whose members are
21
+ * the verbs the MODE allows and nothing else. A request function's
22
+ * invoker has exactly `invoke`; a task function's exactly `start`,
23
+ * `getStatus`, `waitFor` and `terminate`. The task `waitFor` binds
24
+ * `<Key>Output`, so the completion path is typed too (D3281-SO-003).
25
+ *
26
+ * ── The same descriptor the platform validates with ──────────────────────
27
+ *
28
+ * Schemas are interpreted through the vendored descriptor `workflows codegen`
29
+ * already reads (`workflow-codegen/schemaToTs.ts`, a byte copy of the server's
30
+ * `schema-descriptor.ts`), so what compiles is what every invocation door
31
+ * accepts: `input` is a REQUIRED option iff the schema rejects `{}` (the
32
+ * client sends `rootInput` only when `input !== undefined`, and the server
33
+ * defaults an absent one to `{}`), an absent schema is `unknown`, and a
34
+ * malformed schema fails naming the file rather than typing something false.
35
+ *
36
+ * ── Identifiers ──────────────────────────────────────────────────────────
37
+ *
38
+ * Names come from the workflow naming helpers (PascalCase, the digit-leading
39
+ * and reserved-word rules), and the runtime call always passes the ORIGINAL
40
+ * key. Two keys that sanitize to one identifier would render one file over the
41
+ * other, so that is refused naming both.
42
+ *
43
+ * FORMATTING CONTRACT (#1565): the invoker is emitted as a fixed point of
44
+ * Prettier's default config through `codegen-shared/prettierStable.ts`, like
45
+ * the other two generators, because `--check` byte-compares.
46
+ */
47
+ import { existsSync, readdirSync, readFileSync } from "fs";
48
+ import { basename, join } from "path";
49
+ import { parseConfigToml } from "./config-toml.js";
50
+ import { safeJsonParse } from "./workflow-payload.js";
51
+ import { resolveDeclaredMode, } from "./generated-config-surfaces.js";
52
+ import { schemaRejectsEmptyObject, schemaToTypeNode, } from "./workflow-codegen/schemaToTs.js";
53
+ import { describeSchema } from "./workflow-codegen/generated-schema-descriptor.js";
54
+ import { workflowFactoryName, workflowTypeBaseName, } from "./workflow-codegen/naming.js";
55
+ import { fingerprintToml } from "./db-codegen/dbFingerprint.js";
56
+ import { atom, generic, indent, intersection, objectType, printType, renderArrowCall, renderArrowProperty, renderParenList, renderTypeAlias, tsStringLiteral, union, } from "./codegen-shared/prettierStable.js";
57
+ /** The regenerated declaration beside `primitive-db-types.d.ts`. */
58
+ export const FUNCTION_TYPES_DECLARATION_FILE = "primitive-function-types.d.ts";
59
+ /** Where the per-key invokers go, under `functions/`, unless `-o` says otherwise. */
60
+ export const FUNCTION_INVOKERS_DIR = "generated";
61
+ /** Suffix identifying a generated invoker (shared with the other generators). */
62
+ export const GENERATED_FILE_SUFFIX = ".generated.ts";
63
+ /** The client package the invoker imports its types from. */
64
+ const CLIENT_PACKAGE = "js-bao-wss-client";
65
+ export class FunctionSchemaCodegenError extends Error {
66
+ }
67
+ /**
68
+ * The key push will identify this file by, resolved exactly the way push
69
+ * resolves it (CR3281-001).
70
+ *
71
+ * Push reads `tomlData.function?.key || basename(file, ".toml")`, so a file
72
+ * named `local.toml` carrying `key = "remote"` is pushed, collected and
73
+ * key-checked as `remote`. Reading only the stem here would have generated a
74
+ * `remote`-less declaration and an invoker calling a function that does not
75
+ * exist, while the collect step compared the exported handler against
76
+ * `remote` — three spellings of one identity. The file stem stays the
77
+ * fallback, which is what a pulled tree always uses.
78
+ *
79
+ * Same rule, same reason as `databaseTypeSources` (SO3182-003): the generator
80
+ * reads the key the platform will hear about, never the file name alone.
81
+ */
82
+ function resolveFunctionKey(source, table) {
83
+ return table?.key ? String(table.key) : source.key;
84
+ }
85
+ /**
86
+ * Every `functions/*.toml` in a tree, read once. The key is the one push
87
+ * uses: the file name (push takes the identity from it and attaches
88
+ * `functionKey` itself).
89
+ */
90
+ export function functionSchemaSources(configDir) {
91
+ const dir = join(configDir, "functions");
92
+ if (!existsSync(dir))
93
+ return [];
94
+ const sources = [];
95
+ for (const file of readdirSync(dir).filter((f) => f.endsWith(".toml"))) {
96
+ const tomlPath = join(dir, file);
97
+ let tomlContent;
98
+ try {
99
+ tomlContent = readFileSync(tomlPath, "utf-8");
100
+ }
101
+ catch {
102
+ continue;
103
+ }
104
+ sources.push({ key: basename(file, ".toml"), tomlPath, tomlContent });
105
+ }
106
+ return sources;
107
+ }
108
+ /** The tree-relative spelling of a source, for a message an author acts on. */
109
+ function fileLabel(source) {
110
+ const at = source.tomlPath.lastIndexOf("/functions/");
111
+ return at >= 0 ? source.tomlPath.slice(at + 1) : source.tomlPath;
112
+ }
113
+ /**
114
+ * Parse one file into the data both renderers need. Throws a
115
+ * `FunctionSchemaCodegenError` naming the file for malformed schema JSON or an
116
+ * unresolvable mode — the honest `unknown` is for an ABSENT schema, never a
117
+ * broken one.
118
+ */
119
+ export function describeFunctionSchemas(source) {
120
+ let table;
121
+ try {
122
+ table = parseConfigToml(source.tomlContent)?.function ?? {};
123
+ }
124
+ catch (error) {
125
+ throw new FunctionSchemaCodegenError(`${fileLabel(source)}: the file does not parse as TOML (${error?.message ?? error})`);
126
+ }
127
+ // The key push identifies this file by — an authored `[function] key` when
128
+ // there is one, the file stem otherwise (CR3281-001).
129
+ const key = resolveFunctionKey(source, table);
130
+ const mode = resolveDeclaredMode({ mode: table.mode, durable: table.durable });
131
+ if (mode.ok === false) {
132
+ throw new FunctionSchemaCodegenError(`${fileLabel(source)}: ${mode.error}`);
133
+ }
134
+ const schema = (field) => {
135
+ try {
136
+ return safeJsonParse(table[field]);
137
+ }
138
+ catch (error) {
139
+ throw new FunctionSchemaCodegenError(`${fileLabel(source)}: \`${field}\` is not valid JSON (${error?.message ?? error})`);
140
+ }
141
+ };
142
+ const inputSchema = schema("inputSchema");
143
+ const outputSchema = schema("outputSchema");
144
+ const typeBaseName = workflowTypeBaseName(key);
145
+ return {
146
+ key,
147
+ mode: mode.mode,
148
+ fileLabel: fileLabel(source),
149
+ inputSchema,
150
+ outputSchema,
151
+ inputRequired: inputSchema !== undefined && schemaRejectsEmptyObject(inputSchema),
152
+ typeBaseName,
153
+ inputTypeName: `${typeBaseName}Input`,
154
+ outputTypeName: `${typeBaseName}Output`,
155
+ factoryName: workflowFactoryName(key),
156
+ };
157
+ }
158
+ /**
159
+ * Describe every source, sorted by key, refusing two keys that sanitize to
160
+ * one identifier: they would render one file over the other and one type
161
+ * name for two schemas.
162
+ */
163
+ function describeAll(sources) {
164
+ const described = sources.map((source) => ({ fn: describeFunctionSchemas(source), source }));
165
+ described.sort((a, b) => (a.fn.key < b.fn.key ? -1 : a.fn.key > b.fn.key ? 1 : 0));
166
+ // Two files resolving to ONE key — only reachable through an authored
167
+ // `[function] key` (CR3281-001), since file stems are unique by
168
+ // construction. They would render one invoker over the other and push one
169
+ // function twice, so name both files rather than pick a winner.
170
+ const byKey = new Map();
171
+ for (const { fn, source } of described) {
172
+ const other = byKey.get(fn.key);
173
+ if (other !== undefined) {
174
+ throw new FunctionSchemaCodegenError(`${fileLabel(other)} and ${fileLabel(source)} both declare the function ` +
175
+ `key '${fn.key}' — one file is one function, so rename or remove one ` +
176
+ `\`[function] key\``);
177
+ }
178
+ byKey.set(fn.key, source);
179
+ }
180
+ const byBaseName = new Map();
181
+ for (const { fn } of described) {
182
+ const other = byBaseName.get(fn.typeBaseName);
183
+ if (other !== undefined && other !== fn.key) {
184
+ throw new FunctionSchemaCodegenError(`function keys '${other}' and '${fn.key}' both name the generated type ` +
185
+ `\`${fn.typeBaseName}Input\` — rename one so the two do not collide after sanitizing`);
186
+ }
187
+ byBaseName.set(fn.typeBaseName, fn.key);
188
+ }
189
+ return described;
190
+ }
191
+ /**
192
+ * A top-level `<Name>Input`/`<Name>Output` declaration: an absent schema →
193
+ * `unknown`, a plain object → an `interface`, anything else (a `oneOf` above
194
+ * all, which begins with `{` too) → a `type` alias. Same decision as the
195
+ * workflow generator, through the shared descriptor rather than a heuristic.
196
+ */
197
+ function renderTypeDecl(name, schema) {
198
+ if (schema === undefined)
199
+ return renderTypeAlias(name, atom("unknown"));
200
+ const node = schemaToTypeNode(schema);
201
+ if (node.kind === "block" && !describeSchema(schema).oneOf) {
202
+ return `export interface ${name} ${printType(node, 0, 0)}`;
203
+ }
204
+ return renderTypeAlias(name, node);
205
+ }
206
+ /**
207
+ * `renderTypeDecl` for one declared field, with a failure that names the file
208
+ * and the field (CR3281-004).
209
+ *
210
+ * The shared renderer refuses a schema it cannot type — a `oneOf` of objects
211
+ * with no usable discriminator, above all — by throwing a plain `Error` that
212
+ * says "workflows codegen" and names neither. Push catches
213
+ * `FunctionSchemaCodegenError` per tree and lets the rest of it land, so an
214
+ * unconverted throw took the whole command down before a single healthy
215
+ * function was sent, over a file the author could not identify from the
216
+ * message.
217
+ */
218
+ function renderDeclaredType(fn, field) {
219
+ const name = field === "inputSchema" ? fn.inputTypeName : fn.outputTypeName;
220
+ const schema = field === "inputSchema" ? fn.inputSchema : fn.outputSchema;
221
+ try {
222
+ return renderTypeDecl(name, schema);
223
+ }
224
+ catch (error) {
225
+ if (error instanceof FunctionSchemaCodegenError)
226
+ throw error;
227
+ throw new FunctionSchemaCodegenError(`${fn.fileLabel}: \`${field}\` cannot be rendered as a TypeScript type ` +
228
+ `(${error?.message ?? error})`);
229
+ }
230
+ }
231
+ const DECLARATION_HEADER = `// GENERATED by \`primitive config push\` from functions/*.toml.
232
+ // DO NOT EDIT — your changes are overwritten on the next push.
233
+ //
234
+ // It gives \`defineFunction("<key>", handler)\` its types: \`input\` is the
235
+ // function's declared inputSchema and the return is checked against its
236
+ // declared outputSchema. A key this tree does not declare is a compile error.
237
+ // The client-side invokers are the \`generated/<key>.generated.ts\` files beside
238
+ // this one.
239
+ `;
240
+ /**
241
+ * The declaration for a whole tree's functions. Sorted by key so the bytes
242
+ * depend on the files and not on the order they were read in. The
243
+ * augmentation is emitted even when the tree has no function yet: an empty
244
+ * `FunctionSchemas` keeps `FunctionKeys` open (`string`), so nothing breaks.
245
+ */
246
+ export function renderFunctionSchemasDeclaration(sources) {
247
+ const functions = describeAll(sources).map((entry) => entry.fn);
248
+ const lines = [DECLARATION_HEADER];
249
+ for (const fn of functions) {
250
+ lines.push(renderDeclaredType(fn, "inputSchema"));
251
+ lines.push("");
252
+ lines.push(renderDeclaredType(fn, "outputSchema"));
253
+ lines.push("");
254
+ }
255
+ if (functions.length === 0) {
256
+ lines.push("export interface PrimitiveFunctionSchemas {}");
257
+ }
258
+ else {
259
+ lines.push("export interface PrimitiveFunctionSchemas {");
260
+ for (const fn of functions) {
261
+ lines.push(` ${JSON.stringify(fn.key)}: {`);
262
+ lines.push(` input: ${fn.inputTypeName};`);
263
+ lines.push(` output: ${fn.outputTypeName};`);
264
+ lines.push(` mode: ${JSON.stringify(fn.mode)};`);
265
+ lines.push(` };`);
266
+ }
267
+ lines.push("}");
268
+ }
269
+ lines.push("");
270
+ lines.push(`declare module "primitive-functions" {`);
271
+ lines.push(` interface FunctionSchemas extends PrimitiveFunctionSchemas {}`);
272
+ lines.push(`}`);
273
+ lines.push("");
274
+ return lines.join("\n");
275
+ }
276
+ /**
277
+ * The invoker factory for one function — the verbs its mode allows and
278
+ * nothing else, so the wrong verb is a compile error, not a runtime
279
+ * `FUNCTION_MODE_MISMATCH`.
280
+ *
281
+ * `invoke`/`start` take the key POSITIONALLY (`client.functions.<verb>(key,
282
+ * opts)`), so the key cannot ride in through `opts`; `terminate` addresses a
283
+ * run by a ref object, where the spread comes first and the pinned key last —
284
+ * a caller passing a ref variable carrying another key still terminates this
285
+ * function's run.
286
+ */
287
+ function renderFactory(fn) {
288
+ const keyLiteral = tsStringLiteral(fn.key);
289
+ const inputMember = fn.inputRequired
290
+ ? `input: ${fn.inputTypeName}`
291
+ : `input?: ${fn.inputTypeName}`;
292
+ const lines = [
293
+ renderParenList(`export function ${fn.factoryName}`, ["client: JsBaoClient"], " {", 0),
294
+ ` return {`,
295
+ ];
296
+ // `opts: { input: X } & Omit<<Options><X>, "input">` — always broken onto its
297
+ // own line: the shortest possible form is already wider than 80 columns.
298
+ const optsParam = (optionsTypeName) => {
299
+ const node = intersection([
300
+ objectType([inputMember]),
301
+ generic("Omit", [
302
+ generic(optionsTypeName, [atom(fn.inputTypeName)]),
303
+ union([atom(`"input"`)]),
304
+ ]),
305
+ ]);
306
+ const head = `${indent(3)}opts: `;
307
+ return `${head}${printType(node, head.length, 3, 1)},`;
308
+ };
309
+ const invocation = (method, typeArgs, optionsTypeName) => renderArrowCall({
310
+ head: [`${indent(2)}${method}: (`, optsParam(optionsTypeName), `${indent(2)}) =>`].join("\n"),
311
+ callee: generic(`client.functions.${method}`, typeArgs.map(atom)),
312
+ leadingArgs: [keyLiteral],
313
+ objectMembers: ["...opts"],
314
+ level: 3,
315
+ tail: ",",
316
+ });
317
+ if (fn.mode === "request") {
318
+ lines.push(invocation("invoke", [fn.outputTypeName, fn.inputTypeName], "FunctionInvokeOptions"));
319
+ }
320
+ else {
321
+ lines.push(invocation("start", [fn.inputTypeName], "FunctionStartOptions"));
322
+ lines.push(renderArrowProperty({
323
+ level: 2,
324
+ key: "getStatus",
325
+ params: ["runId: string"],
326
+ signatureTail: " =>",
327
+ callee: generic("client.functions.getStatus", [atom(fn.outputTypeName)]),
328
+ leadingArgs: ["runId"],
329
+ tail: ",",
330
+ }));
331
+ lines.push(renderArrowProperty({
332
+ level: 2,
333
+ key: "waitFor",
334
+ params: ["runId: string", "options?: WaitForWorkflowOptions"],
335
+ signatureTail: " =>",
336
+ callee: generic("client.functions.waitFor", [atom(fn.outputTypeName)]),
337
+ leadingArgs: ["runId", "options"],
338
+ tail: ",",
339
+ }));
340
+ lines.push(renderArrowProperty({
341
+ level: 2,
342
+ key: "terminate",
343
+ params: [`ref: Omit<FunctionRunRef, "functionKey">`],
344
+ signatureTail: " =>",
345
+ callee: generic("client.functions.terminate", [atom(fn.outputTypeName)]),
346
+ leadingArgs: [],
347
+ objectMembers: ["...ref", { key: "functionKey", value: keyLiteral }],
348
+ tail: ",",
349
+ }));
350
+ }
351
+ lines.push(` };`, `}`);
352
+ return lines.join("\n");
353
+ }
354
+ /**
355
+ * `import type { … } from "js-bao-wss-client"`, the way Prettier prints it:
356
+ * on one line when it fits, one specifier per line (trailing comma) when not.
357
+ */
358
+ function renderImport(names) {
359
+ const inline = `import type { ${names.join(", ")} } from "${CLIENT_PACKAGE}";`;
360
+ if (inline.length <= 80)
361
+ return inline;
362
+ return `import type {\n${names.map((i) => ` ${i},`).join("\n")}\n} from "${CLIENT_PACKAGE}";`;
363
+ }
364
+ /**
365
+ * The full `<key>.generated.ts` for one function. Pure — exported so tests
366
+ * can assert on the string directly.
367
+ */
368
+ export function renderFunctionInvokerFile(source) {
369
+ const fn = describeFunctionSchemas(source);
370
+ const fingerprint = fingerprintToml(source.tomlContent);
371
+ // Only the option types the mode's verbs reference, so the file compiles
372
+ // under a consumer's `noUnusedLocals`.
373
+ const imports = fn.mode === "request"
374
+ ? ["FunctionInvokeOptions", "JsBaoClient"]
375
+ : ["FunctionRunRef", "FunctionStartOptions", "JsBaoClient", "WaitForWorkflowOptions"];
376
+ const blocks = [
377
+ [
378
+ `// AUTO-GENERATED FROM ${fn.fileLabel} — DO NOT EDIT.`,
379
+ "// Run `primitive functions codegen` to regenerate.",
380
+ `// fingerprint: ${fingerprint}`,
381
+ ].join("\n"),
382
+ renderImport(imports),
383
+ renderDeclaredType(fn, "inputSchema"),
384
+ renderDeclaredType(fn, "outputSchema"),
385
+ renderFactory(fn),
386
+ ];
387
+ return { key: fn.key, content: blocks.join("\n\n") + "\n" };
388
+ }
389
+ /**
390
+ * Every invoker for a tree, keyed by the file name the generator writes
391
+ * (`<key>.generated.ts`), with the identifier-collision refusal applied
392
+ * across the set.
393
+ */
394
+ export function renderFunctionInvokers(sources) {
395
+ // `describeAll` is the collision check; the per-file render repeats the
396
+ // (cheap) parse rather than threading the IR through.
397
+ return describeAll(sources).map(({ fn, source }) => ({
398
+ fileName: `${fn.key}${GENERATED_FILE_SUFFIX}`,
399
+ content: renderFunctionInvokerFile(source).content,
400
+ }));
401
+ }
402
+ //# sourceMappingURL=function-schema-codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-schema-codegen.js","sourceRoot":"","sources":["../../../src/lib/function-schema-codegen.ts"],"names":[],"mappings":"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"}