primitive-admin 1.1.0-alpha.9 → 1.2.0-alpha.0

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 (609) hide show
  1. package/README.md +530 -116
  2. package/assets/skill/skills/primitive-platform/SKILL.md +295 -0
  3. package/dist/bin/primitive.d.ts +2 -0
  4. package/dist/bin/primitive.js +372 -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 +136 -30
  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 +713 -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 +65 -100
  14. package/dist/src/commands/apps.js.map +1 -1
  15. package/dist/src/commands/auth-sessions.d.ts +7 -0
  16. package/dist/src/commands/auth-sessions.js +144 -0
  17. package/dist/src/commands/auth-sessions.js.map +1 -0
  18. package/dist/src/commands/auth.d.ts +2 -0
  19. package/dist/src/commands/auth.js +238 -108
  20. package/dist/src/commands/auth.js.map +1 -1
  21. package/dist/src/commands/blob-buckets.d.ts +2 -0
  22. package/dist/src/commands/blob-buckets.js +331 -0
  23. package/dist/src/commands/blob-buckets.js.map +1 -0
  24. package/dist/src/commands/catalog.d.ts +2 -0
  25. package/dist/src/commands/catalog.js +63 -48
  26. package/dist/src/commands/catalog.js.map +1 -1
  27. package/dist/src/commands/collection-type-configs.d.ts +2 -0
  28. package/dist/src/commands/collection-type-configs.js +85 -0
  29. package/dist/src/commands/collection-type-configs.js.map +1 -0
  30. package/dist/src/commands/collections.d.ts +2 -0
  31. package/dist/src/commands/collections.js +1285 -0
  32. package/dist/src/commands/collections.js.map +1 -0
  33. package/dist/src/commands/comparisons.d.ts +2 -0
  34. package/dist/src/commands/comparisons.js +6 -6
  35. package/dist/src/commands/comparisons.js.map +1 -1
  36. package/dist/src/commands/config.d.ts +46 -0
  37. package/dist/src/commands/config.js +465 -0
  38. package/dist/src/commands/config.js.map +1 -0
  39. package/dist/src/commands/connections.d.ts +2 -0
  40. package/dist/src/commands/connections.js +99 -0
  41. package/dist/src/commands/connections.js.map +1 -0
  42. package/dist/src/commands/cron-triggers.d.ts +2 -0
  43. package/dist/src/commands/cron-triggers.js +266 -0
  44. package/dist/src/commands/cron-triggers.js.map +1 -0
  45. package/dist/src/commands/database-type-configs.d.ts +2 -0
  46. package/dist/src/commands/database-type-configs.js +164 -0
  47. package/dist/src/commands/database-type-configs.js.map +1 -0
  48. package/dist/src/commands/database-types.d.ts +2 -0
  49. package/dist/src/commands/database-types.js +171 -0
  50. package/dist/src/commands/database-types.js.map +1 -0
  51. package/dist/src/commands/databases.d.ts +65 -0
  52. package/dist/src/commands/databases.js +1868 -243
  53. package/dist/src/commands/databases.js.map +1 -1
  54. package/dist/src/commands/documents.d.ts +60 -0
  55. package/dist/src/commands/documents.js +2888 -22
  56. package/dist/src/commands/documents.js.map +1 -1
  57. package/dist/src/commands/email-templates.d.ts +2 -0
  58. package/dist/src/commands/email-templates.js +175 -0
  59. package/dist/src/commands/email-templates.js.map +1 -0
  60. package/dist/src/commands/env.d.ts +23 -0
  61. package/dist/src/commands/env.js +395 -0
  62. package/dist/src/commands/env.js.map +1 -0
  63. package/dist/src/commands/feature-flags.d.ts +14 -0
  64. package/dist/src/commands/feature-flags.js +117 -0
  65. package/dist/src/commands/feature-flags.js.map +1 -0
  66. package/dist/src/commands/functions.d.ts +20 -0
  67. package/dist/src/commands/functions.js +1630 -0
  68. package/dist/src/commands/functions.js.map +1 -0
  69. package/dist/src/commands/group-type-configs.d.ts +2 -0
  70. package/dist/src/commands/group-type-configs.js +87 -0
  71. package/dist/src/commands/group-type-configs.js.map +1 -0
  72. package/dist/src/commands/groups.d.ts +2 -0
  73. package/dist/src/commands/groups.js +81 -113
  74. package/dist/src/commands/groups.js.map +1 -1
  75. package/dist/src/commands/guides.d.ts +223 -0
  76. package/dist/src/commands/guides.js +627 -69
  77. package/dist/src/commands/guides.js.map +1 -1
  78. package/dist/src/commands/init.d.ts +37 -0
  79. package/dist/src/commands/init.js +1693 -208
  80. package/dist/src/commands/init.js.map +1 -1
  81. package/dist/src/commands/integrations.d.ts +2 -0
  82. package/dist/src/commands/integrations.js +428 -187
  83. package/dist/src/commands/integrations.js.map +1 -1
  84. package/dist/src/commands/llm.d.ts +2 -0
  85. package/dist/src/commands/llm.js +13 -8
  86. package/dist/src/commands/llm.js.map +1 -1
  87. package/dist/src/commands/locks.d.ts +8 -0
  88. package/dist/src/commands/locks.js +175 -0
  89. package/dist/src/commands/locks.js.map +1 -0
  90. package/dist/src/commands/metadata-category-configs.d.ts +12 -0
  91. package/dist/src/commands/metadata-category-configs.js +113 -0
  92. package/dist/src/commands/metadata-category-configs.js.map +1 -0
  93. package/dist/src/commands/metadata.d.ts +2 -0
  94. package/dist/src/commands/metadata.js +288 -0
  95. package/dist/src/commands/metadata.js.map +1 -0
  96. package/dist/src/commands/prompts.d.ts +2 -0
  97. package/dist/src/commands/prompts.js +322 -634
  98. package/dist/src/commands/prompts.js.map +1 -1
  99. package/dist/src/commands/rule-sets.d.ts +3 -0
  100. package/dist/src/commands/rule-sets.js +139 -148
  101. package/dist/src/commands/rule-sets.js.map +1 -1
  102. package/dist/src/commands/scripts.d.ts +30 -0
  103. package/dist/src/commands/scripts.js +688 -0
  104. package/dist/src/commands/scripts.js.map +1 -0
  105. package/dist/src/commands/secrets.d.ts +2 -0
  106. package/dist/src/commands/secrets.js +109 -0
  107. package/dist/src/commands/secrets.js.map +1 -0
  108. package/dist/src/commands/sessions.d.ts +2 -0
  109. package/dist/src/commands/sessions.js +76 -0
  110. package/dist/src/commands/sessions.js.map +1 -0
  111. package/dist/src/commands/settings.d.ts +18 -0
  112. package/dist/src/commands/settings.js +54 -0
  113. package/dist/src/commands/settings.js.map +1 -0
  114. package/dist/src/commands/skill.d.ts +2 -0
  115. package/dist/src/commands/skill.js +29 -0
  116. package/dist/src/commands/skill.js.map +1 -0
  117. package/dist/src/commands/sync-app-settings.d.ts +158 -0
  118. package/dist/src/commands/sync-app-settings.js +328 -0
  119. package/dist/src/commands/sync-app-settings.js.map +1 -0
  120. package/dist/src/commands/sync.d.ts +2667 -0
  121. package/dist/src/commands/sync.js +17141 -834
  122. package/dist/src/commands/sync.js.map +1 -1
  123. package/dist/src/commands/tokens.d.ts +2 -0
  124. package/dist/src/commands/tokens.js +132 -22
  125. package/dist/src/commands/tokens.js.map +1 -1
  126. package/dist/src/commands/users.d.ts +2 -0
  127. package/dist/src/commands/users.js +542 -24
  128. package/dist/src/commands/users.js.map +1 -1
  129. package/dist/src/commands/vars.d.ts +8 -0
  130. package/dist/src/commands/vars.js +97 -0
  131. package/dist/src/commands/vars.js.map +1 -0
  132. package/dist/src/commands/waitlist.d.ts +2 -0
  133. package/dist/src/commands/waitlist.js +12 -11
  134. package/dist/src/commands/waitlist.js.map +1 -1
  135. package/dist/src/commands/webhooks.d.ts +31 -0
  136. package/dist/src/commands/webhooks.js +633 -0
  137. package/dist/src/commands/webhooks.js.map +1 -0
  138. package/dist/src/commands/workflows.d.ts +88 -0
  139. package/dist/src/commands/workflows.js +1568 -742
  140. package/dist/src/commands/workflows.js.map +1 -1
  141. package/dist/src/lib/access-rule-display.d.ts +21 -0
  142. package/dist/src/lib/access-rule-display.js +34 -0
  143. package/dist/src/lib/access-rule-display.js.map +1 -0
  144. package/dist/src/lib/api-client.d.ts +2513 -0
  145. package/dist/src/lib/api-client.js +2456 -162
  146. package/dist/src/lib/api-client.js.map +1 -1
  147. package/dist/src/lib/app-match-guard.d.ts +44 -0
  148. package/dist/src/lib/app-match-guard.js +72 -0
  149. package/dist/src/lib/app-match-guard.js.map +1 -0
  150. package/dist/src/lib/app-settings-descriptor.d.ts +263 -0
  151. package/dist/src/lib/app-settings-descriptor.js +583 -0
  152. package/dist/src/lib/app-settings-descriptor.js.map +1 -0
  153. package/dist/src/lib/auth-flow.d.ts +8 -0
  154. package/dist/src/lib/batch.d.ts +26 -0
  155. package/dist/src/lib/batch.js +32 -0
  156. package/dist/src/lib/batch.js.map +1 -0
  157. package/dist/src/lib/block-layout.d.ts +160 -0
  158. package/dist/src/lib/block-layout.js +451 -0
  159. package/dist/src/lib/block-layout.js.map +1 -0
  160. package/dist/src/lib/block-selector.d.ts +58 -0
  161. package/dist/src/lib/block-selector.js +92 -0
  162. package/dist/src/lib/block-selector.js.map +1 -0
  163. package/dist/src/lib/canonical-json.d.ts +12 -0
  164. package/dist/src/lib/canonical-json.js +35 -0
  165. package/dist/src/lib/canonical-json.js.map +1 -0
  166. package/dist/src/lib/channel.d.ts +30 -0
  167. package/dist/src/lib/channel.js +68 -0
  168. package/dist/src/lib/channel.js.map +1 -0
  169. package/dist/src/lib/cli-manifest.d.ts +68 -0
  170. package/dist/src/lib/cli-manifest.js +71 -0
  171. package/dist/src/lib/cli-manifest.js.map +1 -0
  172. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +101 -0
  173. package/dist/src/lib/codegen-shared/generatedFiles.js +191 -0
  174. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
  175. package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
  176. package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
  177. package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
  178. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +38 -0
  179. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +46 -0
  180. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
  181. package/dist/src/lib/collection-export.d.ts +212 -0
  182. package/dist/src/lib/collection-export.js +288 -0
  183. package/dist/src/lib/collection-export.js.map +1 -0
  184. package/dist/src/lib/config-json-field.d.ts +28 -0
  185. package/dist/src/lib/config-json-field.js +56 -0
  186. package/dist/src/lib/config-json-field.js.map +1 -0
  187. package/dist/src/lib/config-object-descriptor.d.ts +127 -0
  188. package/dist/src/lib/config-object-descriptor.js +740 -0
  189. package/dist/src/lib/config-object-descriptor.js.map +1 -0
  190. package/dist/src/lib/config-payload.d.ts +92 -0
  191. package/dist/src/lib/config-payload.js +161 -0
  192. package/dist/src/lib/config-payload.js.map +1 -0
  193. package/dist/src/lib/config-surface.d.ts +141 -0
  194. package/dist/src/lib/config-surface.js +368 -0
  195. package/dist/src/lib/config-surface.js.map +1 -0
  196. package/dist/src/lib/config-toml.d.ts +10 -0
  197. package/dist/src/lib/config-toml.js +42 -0
  198. package/dist/src/lib/config-toml.js.map +1 -0
  199. package/dist/src/lib/config.d.ts +71 -0
  200. package/dist/src/lib/config.js +71 -68
  201. package/dist/src/lib/config.js.map +1 -1
  202. package/dist/src/lib/confirm-prompt.d.ts +83 -0
  203. package/dist/src/lib/confirm-prompt.js +110 -0
  204. package/dist/src/lib/confirm-prompt.js.map +1 -0
  205. package/dist/src/lib/constants.d.ts +11 -0
  206. package/dist/src/lib/constants.js +12 -0
  207. package/dist/src/lib/constants.js.map +1 -0
  208. package/dist/src/lib/crash-handlers.d.ts +20 -0
  209. package/dist/src/lib/crash-handlers.js +49 -0
  210. package/dist/src/lib/crash-handlers.js.map +1 -0
  211. package/dist/src/lib/credentials-store.d.ts +104 -0
  212. package/dist/src/lib/credentials-store.js +336 -0
  213. package/dist/src/lib/credentials-store.js.map +1 -0
  214. package/dist/src/lib/csv.d.ts +47 -0
  215. package/dist/src/lib/csv.js +172 -0
  216. package/dist/src/lib/csv.js.map +1 -0
  217. package/dist/src/lib/data-input.d.ts +23 -0
  218. package/dist/src/lib/data-input.js +50 -0
  219. package/dist/src/lib/data-input.js.map +1 -0
  220. package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
  221. package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
  222. package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
  223. package/dist/src/lib/db-codegen/dbGenerator.d.ts +67 -0
  224. package/dist/src/lib/db-codegen/dbGenerator.js +170 -0
  225. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
  226. package/dist/src/lib/db-codegen/dbNaming.d.ts +87 -0
  227. package/dist/src/lib/db-codegen/dbNaming.js +180 -0
  228. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
  229. package/dist/src/lib/db-codegen/dbTemplates.d.ts +272 -0
  230. package/dist/src/lib/db-codegen/dbTemplates.js +480 -0
  231. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
  232. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +73 -0
  233. package/dist/src/lib/db-codegen/dbTsTypes.js +139 -0
  234. package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
  235. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
  236. package/dist/src/lib/db-codegen/dbTypeIR.js +525 -0
  237. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
  238. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
  239. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
  240. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
  241. package/dist/src/lib/deprecation.d.ts +22 -0
  242. package/dist/src/lib/deprecation.js +43 -0
  243. package/dist/src/lib/deprecation.js.map +1 -0
  244. package/dist/src/lib/document-export-permissions.d.ts +30 -0
  245. package/dist/src/lib/document-export-permissions.js +54 -0
  246. package/dist/src/lib/document-export-permissions.js.map +1 -0
  247. package/dist/src/lib/document-ingest-artifact.d.ts +120 -0
  248. package/dist/src/lib/document-ingest-artifact.js +505 -0
  249. package/dist/src/lib/document-ingest-artifact.js.map +1 -0
  250. package/dist/src/lib/document-ingest-input.d.ts +51 -0
  251. package/dist/src/lib/document-ingest-input.js +132 -0
  252. package/dist/src/lib/document-ingest-input.js.map +1 -0
  253. package/dist/src/lib/document-ingest-rows.d.ts +137 -0
  254. package/dist/src/lib/document-ingest-rows.js +181 -0
  255. package/dist/src/lib/document-ingest-rows.js.map +1 -0
  256. package/dist/src/lib/document-ingest.d.ts +101 -0
  257. package/dist/src/lib/document-ingest.js +384 -0
  258. package/dist/src/lib/document-ingest.js.map +1 -0
  259. package/dist/src/lib/env-resolver-core.d.ts +258 -0
  260. package/dist/src/lib/env-resolver-core.js +447 -0
  261. package/dist/src/lib/env-resolver-core.js.map +1 -0
  262. package/dist/src/lib/env-resolver.d.ts +99 -0
  263. package/dist/src/lib/env-resolver.js +153 -0
  264. package/dist/src/lib/env-resolver.js.map +1 -0
  265. package/dist/src/lib/fetch.d.ts +5 -0
  266. package/dist/src/lib/function-bundle.d.ts +147 -0
  267. package/dist/src/lib/function-bundle.js +341 -0
  268. package/dist/src/lib/function-bundle.js.map +1 -0
  269. package/dist/src/lib/function-collect.d.ts +123 -0
  270. package/dist/src/lib/function-collect.js +610 -0
  271. package/dist/src/lib/function-collect.js.map +1 -0
  272. package/dist/src/lib/function-db-types.d.ts +202 -0
  273. package/dist/src/lib/function-db-types.js +870 -0
  274. package/dist/src/lib/function-db-types.js.map +1 -0
  275. package/dist/src/lib/function-document-types.d.ts +144 -0
  276. package/dist/src/lib/function-document-types.js +370 -0
  277. package/dist/src/lib/function-document-types.js.map +1 -0
  278. package/dist/src/lib/function-grants-preflight.d.ts +64 -0
  279. package/dist/src/lib/function-grants-preflight.js +105 -0
  280. package/dist/src/lib/function-grants-preflight.js.map +1 -0
  281. package/dist/src/lib/function-log-lines.d.ts +76 -0
  282. package/dist/src/lib/function-log-lines.js +160 -0
  283. package/dist/src/lib/function-log-lines.js.map +1 -0
  284. package/dist/src/lib/function-log-row.d.ts +29 -0
  285. package/dist/src/lib/function-log-row.js +73 -0
  286. package/dist/src/lib/function-log-row.js.map +1 -0
  287. package/dist/src/lib/function-log-tail.d.ts +132 -0
  288. package/dist/src/lib/function-log-tail.js +262 -0
  289. package/dist/src/lib/function-log-tail.js.map +1 -0
  290. package/dist/src/lib/function-run.d.ts +289 -0
  291. package/dist/src/lib/function-run.js +389 -0
  292. package/dist/src/lib/function-run.js.map +1 -0
  293. package/dist/src/lib/function-schema-codegen.d.ts +143 -0
  294. package/dist/src/lib/function-schema-codegen.js +420 -0
  295. package/dist/src/lib/function-schema-codegen.js.map +1 -0
  296. package/dist/src/lib/function-sync.d.ts +459 -0
  297. package/dist/src/lib/function-sync.js +1258 -0
  298. package/dist/src/lib/function-sync.js.map +1 -0
  299. package/dist/src/lib/function-trigger-listing.d.ts +27 -0
  300. package/dist/src/lib/function-trigger-listing.js +70 -0
  301. package/dist/src/lib/function-trigger-listing.js.map +1 -0
  302. package/dist/src/lib/function-triggers.d.ts +66 -0
  303. package/dist/src/lib/function-triggers.js +285 -0
  304. package/dist/src/lib/function-triggers.js.map +1 -0
  305. package/dist/src/lib/function-typecheck.d.ts +86 -0
  306. package/dist/src/lib/function-typecheck.js +370 -0
  307. package/dist/src/lib/function-typecheck.js.map +1 -0
  308. package/dist/src/lib/function-versions.d.ts +122 -0
  309. package/dist/src/lib/function-versions.js +182 -0
  310. package/dist/src/lib/function-versions.js.map +1 -0
  311. package/dist/src/lib/generated-allowlist.d.ts +28 -0
  312. package/dist/src/lib/generated-allowlist.js +280 -0
  313. package/dist/src/lib/generated-allowlist.js.map +1 -0
  314. package/dist/src/lib/generated-config-surfaces.d.ts +2936 -0
  315. package/dist/src/lib/generated-config-surfaces.js +10593 -0
  316. package/dist/src/lib/generated-config-surfaces.js.map +1 -0
  317. package/dist/src/lib/generated-sdk-types.d.ts +12 -0
  318. package/dist/src/lib/generated-sdk-types.js +13 -0
  319. package/dist/src/lib/generated-sdk-types.js.map +1 -0
  320. package/dist/src/lib/generated-template-lint.d.ts +212 -0
  321. package/dist/src/lib/generated-template-lint.js +624 -0
  322. package/dist/src/lib/generated-template-lint.js.map +1 -0
  323. package/dist/src/lib/generated-workflow-model-fields.d.ts +20 -0
  324. package/dist/src/lib/generated-workflow-model-fields.js +53 -0
  325. package/dist/src/lib/generated-workflow-model-fields.js.map +1 -0
  326. package/dist/src/lib/google-client-secret-status.d.ts +35 -0
  327. package/dist/src/lib/google-client-secret-status.js +56 -0
  328. package/dist/src/lib/google-client-secret-status.js.map +1 -0
  329. package/dist/src/lib/init-adopt.d.ts +16 -0
  330. package/dist/src/lib/init-adopt.js +34 -0
  331. package/dist/src/lib/init-adopt.js.map +1 -0
  332. package/dist/src/lib/init-assets.d.ts +39 -0
  333. package/dist/src/lib/init-assets.js +97 -0
  334. package/dist/src/lib/init-assets.js.map +1 -0
  335. package/dist/src/lib/init-client-platforms.d.ts +14 -0
  336. package/dist/src/lib/init-client-platforms.js +71 -0
  337. package/dist/src/lib/init-client-platforms.js.map +1 -0
  338. package/dist/src/lib/init-config.d.ts +98 -0
  339. package/dist/src/lib/init-config.js +186 -0
  340. package/dist/src/lib/init-config.js.map +1 -0
  341. package/dist/src/lib/init-email-redirect-uris.d.ts +37 -0
  342. package/dist/src/lib/init-email-redirect-uris.js +46 -0
  343. package/dist/src/lib/init-email-redirect-uris.js.map +1 -0
  344. package/dist/src/lib/init-ios-links.d.ts +91 -0
  345. package/dist/src/lib/init-ios-links.js +219 -0
  346. package/dist/src/lib/init-ios-links.js.map +1 -0
  347. package/dist/src/lib/init-plan.d.ts +80 -0
  348. package/dist/src/lib/init-plan.js +95 -0
  349. package/dist/src/lib/init-plan.js.map +1 -0
  350. package/dist/src/lib/init-production-env.d.ts +48 -0
  351. package/dist/src/lib/init-production-env.js +59 -0
  352. package/dist/src/lib/init-production-env.js.map +1 -0
  353. package/dist/src/lib/init-schema.d.ts +74 -0
  354. package/dist/src/lib/init-schema.js +358 -0
  355. package/dist/src/lib/init-schema.js.map +1 -0
  356. package/dist/src/lib/init-xcode.d.ts +34 -0
  357. package/dist/src/lib/init-xcode.js +138 -0
  358. package/dist/src/lib/init-xcode.js.map +1 -0
  359. package/dist/src/lib/integration-request-config.d.ts +30 -0
  360. package/dist/src/lib/integration-request-config.js +145 -0
  361. package/dist/src/lib/integration-request-config.js.map +1 -0
  362. package/dist/src/lib/integration-selector.d.ts +42 -0
  363. package/dist/src/lib/integration-selector.js +46 -0
  364. package/dist/src/lib/integration-selector.js.map +1 -0
  365. package/dist/src/lib/ios-app-id.d.ts +34 -0
  366. package/dist/src/lib/ios-app-id.js +69 -0
  367. package/dist/src/lib/ios-app-id.js.map +1 -0
  368. package/dist/src/lib/list-options.d.ts +68 -0
  369. package/dist/src/lib/list-options.js +89 -0
  370. package/dist/src/lib/list-options.js.map +1 -0
  371. package/dist/src/lib/local-state.d.ts +55 -0
  372. package/dist/src/lib/local-state.js +167 -0
  373. package/dist/src/lib/local-state.js.map +1 -0
  374. package/dist/src/lib/local-test-cases.d.ts +63 -0
  375. package/dist/src/lib/local-test-cases.js +136 -0
  376. package/dist/src/lib/local-test-cases.js.map +1 -0
  377. package/dist/src/lib/log-inspection.d.ts +710 -0
  378. package/dist/src/lib/log-inspection.js +814 -0
  379. package/dist/src/lib/log-inspection.js.map +1 -0
  380. package/dist/src/lib/logout-admin-session.d.ts +33 -0
  381. package/dist/src/lib/logout-admin-session.js +70 -0
  382. package/dist/src/lib/logout-admin-session.js.map +1 -0
  383. package/dist/src/lib/migration-nag.d.ts +49 -0
  384. package/dist/src/lib/migration-nag.js +164 -0
  385. package/dist/src/lib/migration-nag.js.map +1 -0
  386. package/dist/src/lib/object-status-filter.d.ts +22 -0
  387. package/dist/src/lib/object-status-filter.js +45 -0
  388. package/dist/src/lib/object-status-filter.js.map +1 -0
  389. package/dist/src/lib/output.d.ts +124 -0
  390. package/dist/src/lib/output.js +219 -8
  391. package/dist/src/lib/output.js.map +1 -1
  392. package/dist/src/lib/package-manager.d.ts +140 -0
  393. package/dist/src/lib/package-manager.js +305 -0
  394. package/dist/src/lib/package-manager.js.map +1 -0
  395. package/dist/src/lib/paginate.d.ts +82 -0
  396. package/dist/src/lib/paginate.js +99 -0
  397. package/dist/src/lib/paginate.js.map +1 -0
  398. package/dist/src/lib/platform-owned.d.ts +63 -0
  399. package/dist/src/lib/platform-owned.js +85 -0
  400. package/dist/src/lib/platform-owned.js.map +1 -0
  401. package/dist/src/lib/project-config.d.ts +122 -0
  402. package/dist/src/lib/project-config.js +244 -0
  403. package/dist/src/lib/project-config.js.map +1 -0
  404. package/dist/src/lib/prompt-cost-format.d.ts +11 -0
  405. package/dist/src/lib/prompt-cost-format.js +41 -0
  406. package/dist/src/lib/prompt-cost-format.js.map +1 -0
  407. package/dist/src/lib/prompt-schema-codegen.d.ts +147 -0
  408. package/dist/src/lib/prompt-schema-codegen.js +462 -0
  409. package/dist/src/lib/prompt-schema-codegen.js.map +1 -0
  410. package/dist/src/lib/query-operators.d.ts +43 -0
  411. package/dist/src/lib/query-operators.js +80 -0
  412. package/dist/src/lib/query-operators.js.map +1 -0
  413. package/dist/src/lib/record-filter.d.ts +18 -0
  414. package/dist/src/lib/record-filter.js +55 -0
  415. package/dist/src/lib/record-filter.js.map +1 -0
  416. package/dist/src/lib/refresh-admin-credentials.d.ts +73 -0
  417. package/dist/src/lib/refresh-admin-credentials.js +123 -0
  418. package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
  419. package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
  420. package/dist/src/lib/resolve-init-dev-port.js +55 -0
  421. package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
  422. package/dist/src/lib/resolve-init-server.d.ts +64 -0
  423. package/dist/src/lib/resolve-init-server.js +77 -0
  424. package/dist/src/lib/resolve-init-server.js.map +1 -0
  425. package/dist/src/lib/resolve-owner.d.ts +19 -0
  426. package/dist/src/lib/resolve-owner.js +20 -0
  427. package/dist/src/lib/resolve-owner.js.map +1 -0
  428. package/dist/src/lib/resolve-platform.d.ts +74 -0
  429. package/dist/src/lib/resolve-platform.js +105 -0
  430. package/dist/src/lib/resolve-platform.js.map +1 -0
  431. package/dist/src/lib/run-status.d.ts +19 -0
  432. package/dist/src/lib/run-status.generated.d.ts +39 -0
  433. package/dist/src/lib/run-status.generated.js +66 -0
  434. package/dist/src/lib/run-status.generated.js.map +1 -0
  435. package/dist/src/lib/run-status.js +19 -0
  436. package/dist/src/lib/run-status.js.map +1 -0
  437. package/dist/src/lib/server-text-normalization.d.ts +51 -0
  438. package/dist/src/lib/server-text-normalization.js +90 -0
  439. package/dist/src/lib/server-text-normalization.js.map +1 -0
  440. package/dist/src/lib/server-url.d.ts +22 -0
  441. package/dist/src/lib/server-url.js +33 -0
  442. package/dist/src/lib/server-url.js.map +1 -0
  443. package/dist/src/lib/signing-secret-status.d.ts +81 -0
  444. package/dist/src/lib/signing-secret-status.js +116 -0
  445. package/dist/src/lib/signing-secret-status.js.map +1 -0
  446. package/dist/src/lib/skill-installer.d.ts +71 -0
  447. package/dist/src/lib/skill-installer.js +441 -0
  448. package/dist/src/lib/skill-installer.js.map +1 -0
  449. package/dist/src/lib/snapshot-audit-source.d.ts +45 -0
  450. package/dist/src/lib/snapshot-audit-source.js +58 -0
  451. package/dist/src/lib/snapshot-audit-source.js.map +1 -0
  452. package/dist/src/lib/snapshot-audit-store.d.ts +52 -0
  453. package/dist/src/lib/snapshot-audit-store.js +196 -0
  454. package/dist/src/lib/snapshot-audit-store.js.map +1 -0
  455. package/dist/src/lib/snapshot-audit.d.ts +207 -0
  456. package/dist/src/lib/snapshot-audit.js +431 -0
  457. package/dist/src/lib/snapshot-audit.js.map +1 -0
  458. package/dist/src/lib/snapshot-build-rows.d.ts +60 -0
  459. package/dist/src/lib/snapshot-build-rows.js +87 -0
  460. package/dist/src/lib/snapshot-build-rows.js.map +1 -0
  461. package/dist/src/lib/snapshot-build.d.ts +50 -0
  462. package/dist/src/lib/snapshot-build.js +111 -0
  463. package/dist/src/lib/snapshot-build.js.map +1 -0
  464. package/dist/src/lib/snapshot-manifest-layout.d.ts +61 -0
  465. package/dist/src/lib/snapshot-manifest-layout.js +70 -0
  466. package/dist/src/lib/snapshot-manifest-layout.js.map +1 -0
  467. package/dist/src/lib/snapshots.d.ts +98 -0
  468. package/dist/src/lib/snapshots.js +294 -0
  469. package/dist/src/lib/snapshots.js.map +1 -0
  470. package/dist/src/lib/step-run-table.d.ts +43 -0
  471. package/dist/src/lib/step-run-table.js +129 -0
  472. package/dist/src/lib/step-run-table.js.map +1 -0
  473. package/dist/src/lib/storage-pending-retry.d.ts +26 -0
  474. package/dist/src/lib/storage-pending-retry.js +42 -0
  475. package/dist/src/lib/storage-pending-retry.js.map +1 -0
  476. package/dist/src/lib/swift-codegen/agentGenerator.d.ts +42 -0
  477. package/dist/src/lib/swift-codegen/agentGenerator.js +118 -0
  478. package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -0
  479. package/dist/src/lib/swift-codegen/banners.d.ts +24 -0
  480. package/dist/src/lib/swift-codegen/banners.js +25 -0
  481. package/dist/src/lib/swift-codegen/banners.js.map +1 -0
  482. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
  483. package/dist/src/lib/swift-codegen/dbGenerator.js +926 -0
  484. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
  485. package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
  486. package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
  487. package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
  488. package/dist/src/lib/swift-codegen/functionGenerator.d.ts +139 -0
  489. package/dist/src/lib/swift-codegen/functionGenerator.js +462 -0
  490. package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -0
  491. package/dist/src/lib/swift-codegen/generator.d.ts +100 -0
  492. package/dist/src/lib/swift-codegen/generator.js +457 -0
  493. package/dist/src/lib/swift-codegen/generator.js.map +1 -0
  494. package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +87 -0
  495. package/dist/src/lib/swift-codegen/schemaToSwift.js +661 -0
  496. package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
  497. package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +94 -0
  498. package/dist/src/lib/swift-codegen/siblingSymbols.js +155 -0
  499. package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
  500. package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
  501. package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
  502. package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
  503. package/dist/src/lib/sync-dir-selector.d.ts +21 -0
  504. package/dist/src/lib/sync-dir-selector.js +30 -0
  505. package/dist/src/lib/sync-dir-selector.js.map +1 -0
  506. package/dist/src/lib/sync-paths.d.ts +128 -0
  507. package/dist/src/lib/sync-paths.js +195 -0
  508. package/dist/src/lib/sync-paths.js.map +1 -0
  509. package/dist/src/lib/sync-resource-types.d.ts +563 -0
  510. package/dist/src/lib/sync-resource-types.js +1073 -0
  511. package/dist/src/lib/sync-resource-types.js.map +1 -0
  512. package/dist/src/lib/sync-selectors.d.ts +138 -0
  513. package/dist/src/lib/sync-selectors.js +289 -0
  514. package/dist/src/lib/sync-selectors.js.map +1 -0
  515. package/dist/src/lib/template.d.ts +170 -0
  516. package/dist/src/lib/template.js +484 -68
  517. package/dist/src/lib/template.js.map +1 -1
  518. package/dist/src/lib/test-case-file-names.d.ts +40 -0
  519. package/dist/src/lib/test-case-file-names.js +91 -0
  520. package/dist/src/lib/test-case-file-names.js.map +1 -0
  521. package/dist/src/lib/test-case-keys.d.ts +29 -0
  522. package/dist/src/lib/test-case-keys.js +55 -0
  523. package/dist/src/lib/test-case-keys.js.map +1 -0
  524. package/dist/src/lib/test-case-variables.d.ts +29 -0
  525. package/dist/src/lib/test-case-variables.js +71 -0
  526. package/dist/src/lib/test-case-variables.js.map +1 -0
  527. package/dist/src/lib/token-inject.d.ts +56 -0
  528. package/dist/src/lib/token-inject.js +204 -0
  529. package/dist/src/lib/token-inject.js.map +1 -0
  530. package/dist/src/lib/toml-database-config.d.ts +123 -0
  531. package/dist/src/lib/toml-database-config.js +544 -0
  532. package/dist/src/lib/toml-database-config.js.map +1 -0
  533. package/dist/src/lib/toml-metadata-config.d.ts +151 -0
  534. package/dist/src/lib/toml-metadata-config.js +476 -0
  535. package/dist/src/lib/toml-metadata-config.js.map +1 -0
  536. package/dist/src/lib/toml-native-form.d.ts +46 -0
  537. package/dist/src/lib/toml-native-form.js +78 -0
  538. package/dist/src/lib/toml-native-form.js.map +1 -0
  539. package/dist/src/lib/toml-params-validator.d.ts +129 -0
  540. package/dist/src/lib/toml-params-validator.js +298 -0
  541. package/dist/src/lib/toml-params-validator.js.map +1 -0
  542. package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
  543. package/dist/src/lib/toml-scalar-edit.js +283 -0
  544. package/dist/src/lib/toml-scalar-edit.js.map +1 -0
  545. package/dist/src/lib/user-selector.d.ts +24 -0
  546. package/dist/src/lib/user-selector.js +33 -0
  547. package/dist/src/lib/user-selector.js.map +1 -0
  548. package/dist/src/lib/version-check.d.ts +35 -0
  549. package/dist/src/lib/version-check.js +241 -0
  550. package/dist/src/lib/version-check.js.map +1 -0
  551. package/dist/src/lib/watch.d.ts +121 -0
  552. package/dist/src/lib/watch.js +169 -0
  553. package/dist/src/lib/watch.js.map +1 -0
  554. package/dist/src/lib/web-url.d.ts +40 -0
  555. package/dist/src/lib/web-url.js +76 -0
  556. package/dist/src/lib/web-url.js.map +1 -0
  557. package/dist/src/lib/webhook-deliver.d.ts +209 -0
  558. package/dist/src/lib/webhook-deliver.js +519 -0
  559. package/dist/src/lib/webhook-deliver.js.map +1 -0
  560. package/dist/src/lib/workflow-apply.d.ts +110 -0
  561. package/dist/src/lib/workflow-apply.js +164 -0
  562. package/dist/src/lib/workflow-apply.js.map +1 -0
  563. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
  564. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
  565. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
  566. package/dist/src/lib/workflow-codegen/generator.d.ts +96 -0
  567. package/dist/src/lib/workflow-codegen/generator.js +361 -0
  568. package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
  569. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +94 -0
  570. package/dist/src/lib/workflow-codegen/invokerIR.js +76 -0
  571. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
  572. package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
  573. package/dist/src/lib/workflow-codegen/naming.js +81 -0
  574. package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
  575. package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +80 -0
  576. package/dist/src/lib/workflow-codegen/schemaToTs.js +303 -0
  577. package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
  578. package/dist/src/lib/workflow-config-apply.d.ts +70 -0
  579. package/dist/src/lib/workflow-config-apply.js +137 -0
  580. package/dist/src/lib/workflow-config-apply.js.map +1 -0
  581. package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
  582. package/dist/src/lib/workflow-config-sidecar.js +96 -0
  583. package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
  584. package/dist/src/lib/workflow-defaults.d.ts +29 -0
  585. package/dist/src/lib/workflow-defaults.js +41 -0
  586. package/dist/src/lib/workflow-defaults.js.map +1 -0
  587. package/dist/src/lib/workflow-field-descriptor.d.ts +91 -0
  588. package/dist/src/lib/workflow-field-descriptor.js +153 -0
  589. package/dist/src/lib/workflow-field-descriptor.js.map +1 -0
  590. package/dist/src/lib/workflow-fragments.d.ts +64 -0
  591. package/dist/src/lib/workflow-fragments.js +342 -0
  592. package/dist/src/lib/workflow-fragments.js.map +1 -0
  593. package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
  594. package/dist/src/lib/workflow-include-preserve.js +286 -0
  595. package/dist/src/lib/workflow-include-preserve.js.map +1 -0
  596. package/dist/src/lib/workflow-payload.d.ts +98 -0
  597. package/dist/src/lib/workflow-payload.js +178 -0
  598. package/dist/src/lib/workflow-payload.js.map +1 -0
  599. package/dist/src/lib/workflow-toml-validator.d.ts +211 -0
  600. package/dist/src/lib/workflow-toml-validator.js +770 -0
  601. package/dist/src/lib/workflow-toml-validator.js.map +1 -0
  602. package/dist/src/lib/workflow-usage.d.ts +196 -0
  603. package/dist/src/lib/workflow-usage.js +310 -0
  604. package/dist/src/lib/workflow-usage.js.map +1 -0
  605. package/dist/src/types/index.d.ts +591 -0
  606. package/dist/src/validators.d.ts +65 -0
  607. package/dist/src/validators.js +64 -0
  608. package/dist/src/validators.js.map +1 -0
  609. package/package.json +34 -9
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Typechecking a function's sources against the declarations `config push`
3
+ * generates — #3331.
4
+ *
5
+ * The push already owns all three parts of the program: it writes
6
+ * `functions/primitive-db-types.d.ts`, `primitive-functions.d.ts`,
7
+ * `primitive-function-types.d.ts` and `primitive-document-types.d.ts`, it
8
+ * scaffolds (and repairs) the `functions/tsconfig.json` that loads them, and it
9
+ * builds the bundle. Until this file it never asked the compiler anything: the
10
+ * same invocation that wrote the declaration that would have caught a broken
11
+ * function shipped it anyway. That is not hypothetical — an app upgrading to
12
+ * the alpha that made `ctx.user` nullable (#3279) had a live function reading
13
+ * `ctx.user.userId`, and the push that regenerated the declaration shipped it
14
+ * unchanged.
15
+ *
16
+ * ── What the program is ──────────────────────────────────────────────────
17
+ *
18
+ * Exactly what `tsc -p functions/tsconfig.json --noEmit` would compile, with
19
+ * one difference that matters: the generated declarations are read from the
20
+ * PLAN rather than from disk. `--dry-run` writes nothing, and a fresh clone has
21
+ * nothing written yet, so a checker that read the disk would either refuse
22
+ * every function for a missing module or — worse — pass code against a STALE
23
+ * declaration, which is the exact failure #3279 produced. The overlay is the
24
+ * whole point of the fix: the code is held to the declarations this push
25
+ * generates, no earlier ones.
26
+ *
27
+ * Everything else is the tree's own: the tsconfig an author may adjust decides
28
+ * the compiler options (`strict`, `lib`, their own `paths`), because that file
29
+ * is what their editor and their CI `tsc` read, and a push that judged by
30
+ * different options would refuse code their editor calls fine.
31
+ *
32
+ * ── Why per function ─────────────────────────────────────────────────────
33
+ *
34
+ * The push loop applies each `functions/<key>.toml` independently and records
35
+ * one failure row per function, so one broken function must not refuse the
36
+ * others in the tree. The program is built ONCE and the diagnostics are asked
37
+ * for file by file: a function's files are the in-tree sources its bundle build
38
+ * read PLUS everything those pull in through the type graph, so a shared
39
+ * helper's error is attributed to every function that imports it, which is the
40
+ * honest answer — each of them is broken.
41
+ *
42
+ * The type graph rather than the bundle's inputs because the two differ exactly
43
+ * where this check matters: esbuild erases `import type` without ever reading
44
+ * the file, so a helper that only declares types never reaches push's source
45
+ * list, and a broken alias there resolves to `any` and takes the function's
46
+ * whole typing down with it (SO3331-002).
47
+ *
48
+ * A file the tsconfig does not sweep in is added as a root rather than skipped:
49
+ * a narrowed `include` must not silently turn the check off for the code the
50
+ * push is about to ship.
51
+ */
52
+ import { createRequire } from "module";
53
+ import { existsSync } from "fs";
54
+ import { join, resolve, sep } from "path";
55
+ import { FUNCTIONS_TSCONFIG_FILE, SDK_MODULE_SPECIFIER, planFunctionTypeArtifacts, renderFunctionsTsconfig, } from "./function-db-types.js";
56
+ import { FunctionSchemaCodegenError } from "./function-schema-codegen.js";
57
+ /** The flag that skips the check, named wherever the refusal is read. */
58
+ export const TYPECHECK_SKIP_FLAG = "--no-typecheck";
59
+ /**
60
+ * "Could not find a declaration file for module 'x'" (7016) and "Cannot find
61
+ * module 'x' or its corresponding type declarations" (2307).
62
+ */
63
+ const MODULE_TYPE_DIAGNOSTIC_CODES = new Set([2307, 7016]);
64
+ /**
65
+ * Is this diagnostic about an npm package's own types rather than about the
66
+ * code push is shipping?
67
+ *
68
+ * A function may import any package that is INSTALLED: esbuild resolves it and
69
+ * inlines it into the bundle. A config tree is not an npm project, so its
70
+ * author cannot answer "try `npm i --save-dev @types/…`" there at all —
71
+ * refusing the push over it would block correct code that ships correctly, for
72
+ * a fact about a third party. So an installed package's missing or absent
73
+ * declaration is not a refusal.
74
+ *
75
+ * Installed is the whole of it, and has to be checked rather than assumed: a
76
+ * package that is not there is a misspelling or a missing dependency, and it is
77
+ * only the VALUE imports the bundle build proved resolve. `import type { X }
78
+ * from "mising-package"` is erased by esbuild without ever being looked up, and
79
+ * left unreported it would put `any` through the code push ships — the failure
80
+ * this check exists to catch (SO3331-003). So the exemption asks module
81
+ * resolution whether the package exists on disk at all, with `allowJs` so that
82
+ * a package shipping only JavaScript counts as found.
83
+ *
84
+ * `primitive-functions` is exempt from the exemption, and has to be: it is the
85
+ * module push itself declares, so its failing to resolve means the program
86
+ * never loaded the generated augmentations — and a check that silently passed
87
+ * everything would be worse than no check at all. A relative or absolute import
88
+ * is never exempt; those are the tree's own files.
89
+ */
90
+ function isThirdPartyModuleDiagnostic(ts, diagnostic, isInstalledPackage) {
91
+ if (!MODULE_TYPE_DIAGNOSTIC_CODES.has(diagnostic?.code))
92
+ return false;
93
+ const text = ts.flattenDiagnosticMessageText(diagnostic.messageText, " ");
94
+ const specifier = /module '([^']+)'/.exec(text)?.[1];
95
+ if (!specifier || specifier === SDK_MODULE_SPECIFIER)
96
+ return false;
97
+ if (specifier.startsWith(".") || specifier.startsWith("/"))
98
+ return false;
99
+ const containingFile = diagnostic?.file?.fileName;
100
+ if (typeof containingFile !== "string")
101
+ return false;
102
+ return isInstalledPackage(specifier, containingFile);
103
+ }
104
+ /** The CLI's own TypeScript, which is the one that wrote the declarations. */
105
+ function loadTypeScript() {
106
+ const require = createRequire(import.meta.url);
107
+ return require("typescript");
108
+ }
109
+ /**
110
+ * Build the checker for a config tree, or say why there is none.
111
+ *
112
+ * Nothing to check when the tree has no `functions/` directory — the same test
113
+ * the artifact plan makes, and the same answer: a tree with no functions needs
114
+ * no compiler wiring.
115
+ */
116
+ export function createFunctionTypechecker(configDir, options = {}) {
117
+ const functionsDir = join(configDir, "functions");
118
+ if (!existsSync(functionsDir))
119
+ return { checker: null, warnings: [] };
120
+ let ts;
121
+ try {
122
+ ts = (options.loadTypeScript ?? loadTypeScript)();
123
+ }
124
+ catch (err) {
125
+ return {
126
+ checker: null,
127
+ warnings: [
128
+ "Function sources were not typechecked: the typescript compiler could " +
129
+ `not be loaded (${err?.message ?? String(err)}).`,
130
+ ],
131
+ };
132
+ }
133
+ // The declarations THIS push generates, in memory. They may not be on disk
134
+ // (a dry run, a fresh clone) and what is on disk may be stale.
135
+ //
136
+ // A malformed schema in ONE `functions/*.toml` makes the whole plan
137
+ // unrenderable (#3281), and that must not take the push down with it: the
138
+ // file's own push already refuses it by name and the rest of the tree lands.
139
+ // With no declarations to judge against there is nothing honest left to check
140
+ // — what is on disk is by definition the stale set this fix exists to
141
+ // distrust — so say so once and check nothing (SO3331-001).
142
+ const overlay = new Map();
143
+ try {
144
+ for (const artifact of planFunctionTypeArtifacts(configDir)) {
145
+ overlay.set(resolve(artifact.absolute), artifact.contents);
146
+ }
147
+ }
148
+ catch (err) {
149
+ if (!(err instanceof FunctionSchemaCodegenError))
150
+ throw err;
151
+ return {
152
+ checker: null,
153
+ warnings: [
154
+ "Function sources were not typechecked: the declarations this push " +
155
+ `generates could not be rendered (${err.message}).`,
156
+ ],
157
+ };
158
+ }
159
+ const readFile = (path) => {
160
+ const planned = overlay.get(resolve(path));
161
+ if (planned !== undefined)
162
+ return planned;
163
+ return ts.sys.readFile(path);
164
+ };
165
+ const fileExists = (path) => overlay.has(resolve(path)) || ts.sys.fileExists(path);
166
+ const tsconfigPath = join(functionsDir, FUNCTIONS_TSCONFIG_FILE);
167
+ // The plan writes a tsconfig only when one is missing or its wiring is; an
168
+ // author's own file is read from disk. A tree with neither is checked against
169
+ // the scaffold, so the answer does not depend on whether push wrote it yet.
170
+ const tsconfigText = readFile(tsconfigPath) ??
171
+ (existsSync(tsconfigPath) ? undefined : renderFunctionsTsconfig());
172
+ if (tsconfigText === undefined) {
173
+ return {
174
+ checker: null,
175
+ warnings: [
176
+ `Function sources were not typechecked: ${FUNCTIONS_TSCONFIG_FILE} could not be read.`,
177
+ ],
178
+ };
179
+ }
180
+ const warnings = [];
181
+ const parsedJson = ts.parseConfigFileTextToJson(tsconfigPath, tsconfigText);
182
+ if (parsedJson.error) {
183
+ return {
184
+ checker: null,
185
+ warnings: [
186
+ `Function sources were not typechecked: functions/${FUNCTIONS_TSCONFIG_FILE} is not readable as JSON.`,
187
+ ],
188
+ };
189
+ }
190
+ const parseHost = {
191
+ useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
192
+ readDirectory: ts.sys.readDirectory,
193
+ fileExists,
194
+ readFile,
195
+ };
196
+ const parsed = ts.parseJsonConfigFileContent(parsedJson.config, parseHost, functionsDir, undefined, tsconfigPath);
197
+ // A tsconfig the compiler itself objects to is reported once and the check
198
+ // still runs on the options it could make sense of: silence here is how a
199
+ // program nothing loads passes for a program that found nothing wrong.
200
+ for (const diagnostic of parsed.errors ?? []) {
201
+ warnings.push(`functions/${FUNCTIONS_TSCONFIG_FILE}: ` +
202
+ ts.flattenDiagnosticMessageText(diagnostic.messageText, " "));
203
+ }
204
+ const formatHost = {
205
+ getCanonicalFileName: (fileName) => fileName,
206
+ getCurrentDirectory: () => functionsDir,
207
+ getNewLine: () => "\n",
208
+ };
209
+ // Module resolution over the same overlay the program reads, so an import of
210
+ // `primitive-functions` lands on the planned declaration rather than on
211
+ // whatever is (or is not) on disk.
212
+ const resolutionHost = {
213
+ fileExists,
214
+ readFile,
215
+ useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
216
+ realpath: ts.sys.realpath,
217
+ getCurrentDirectory: () => functionsDir,
218
+ getDirectories: ts.sys.getDirectories,
219
+ directoryExists: ts.sys.directoryExists,
220
+ };
221
+ const resolveModule = (specifier, containingFile, options) => ts.resolveModuleName(specifier, containingFile, options, resolutionHost)
222
+ .resolvedModule;
223
+ /** Does this bare specifier name a package that is actually installed? */
224
+ const installedPackages = new Map();
225
+ const isInstalledPackage = (specifier, containingFile) => {
226
+ const key = `${specifier}${containingFile}`;
227
+ const cached = installedPackages.get(key);
228
+ if (cached !== undefined)
229
+ return cached;
230
+ // `allowJs` so a package shipping only JavaScript — the case the exemption
231
+ // is for — resolves, and `noImplicitAny: false` so the lookup answers
232
+ // "found" rather than re-raising the diagnostic being classified.
233
+ const resolved = resolveModule(specifier, containingFile, {
234
+ ...parsed.options,
235
+ allowJs: true,
236
+ checkJs: false,
237
+ noImplicitAny: false,
238
+ });
239
+ const installed = resolved !== undefined;
240
+ installedPackages.set(key, installed);
241
+ return installed;
242
+ };
243
+ /**
244
+ * Is this an in-tree file of the author's, as opposed to a dependency?
245
+ *
246
+ * A package's own declarations are not this check's business (see
247
+ * {@link isThirdPartyModuleDiagnostic}), and neither are the generated ones —
248
+ * an error in those is a push bug, not something the author's push can act
249
+ * on.
250
+ */
251
+ const treeRoot = resolve(configDir);
252
+ const isTreeSource = (path) => path.startsWith(treeRoot.endsWith(sep) ? treeRoot : treeRoot + sep) &&
253
+ !path.split(sep).includes("node_modules") &&
254
+ !overlay.has(path);
255
+ /**
256
+ * The in-tree files one source pulls in — INCLUDING the type-only imports
257
+ * esbuild erases, which is why this walks the graph itself instead of
258
+ * trusting the bundle's input list (SO3331-002).
259
+ */
260
+ const importsOf = new Map();
261
+ const localImports = (path) => {
262
+ const cached = importsOf.get(path);
263
+ if (cached !== undefined)
264
+ return cached;
265
+ const found = [];
266
+ const text = readFile(path);
267
+ if (text !== undefined) {
268
+ for (const imported of ts.preProcessFile(text, true, true).importedFiles) {
269
+ const target = resolveModule(imported.fileName, path, parsed.options)
270
+ ?.resolvedFileName;
271
+ if (target === undefined)
272
+ continue;
273
+ const resolved = resolve(target);
274
+ if (isTreeSource(resolved))
275
+ found.push(resolved);
276
+ }
277
+ }
278
+ importsOf.set(path, found);
279
+ return found;
280
+ };
281
+ /** A function's sources and everything their types reach, in tree order. */
282
+ const typeGraph = (entries) => {
283
+ const seen = new Set();
284
+ const files = [];
285
+ const queue = [...entries];
286
+ while (queue.length > 0) {
287
+ const path = queue.shift();
288
+ if (seen.has(path))
289
+ continue;
290
+ seen.add(path);
291
+ files.push(path);
292
+ queue.push(...localImports(path));
293
+ }
294
+ return files;
295
+ };
296
+ const roots = new Set((parsed.fileNames ?? []).map((file) => resolve(file)));
297
+ // Every generated declaration is a root whether or not the tsconfig's globs
298
+ // would have found it on disk — the augmentations are the point of the check.
299
+ for (const [path] of overlay) {
300
+ if (path.endsWith(".d.ts"))
301
+ roots.add(path);
302
+ }
303
+ let program = null;
304
+ const buildProgram = () => {
305
+ const host = ts.createCompilerHost(parsed.options, true);
306
+ const getSourceFile = host.getSourceFile.bind(host);
307
+ host.readFile = readFile;
308
+ host.fileExists = fileExists;
309
+ host.getSourceFile = (fileName, languageVersion, onError, shouldCreate) => {
310
+ const planned = overlay.get(resolve(fileName));
311
+ if (planned !== undefined) {
312
+ return ts.createSourceFile(fileName, planned, languageVersion, true);
313
+ }
314
+ return getSourceFile(fileName, languageVersion, onError, shouldCreate);
315
+ };
316
+ return ts.createProgram({
317
+ rootNames: [...roots],
318
+ options: parsed.options,
319
+ host,
320
+ });
321
+ };
322
+ const checker = {
323
+ check(functionKey, sources) {
324
+ const paths = typeGraph(sources.map((source) => resolve(configDir, source)));
325
+ // A source the tsconfig's `include` misses is added rather than skipped:
326
+ // this is code the push is about to ship.
327
+ let added = false;
328
+ for (const path of paths) {
329
+ if (!roots.has(path)) {
330
+ roots.add(path);
331
+ added = true;
332
+ }
333
+ }
334
+ if (program === null || added)
335
+ program = buildProgram();
336
+ const diagnostics = [];
337
+ for (const path of paths) {
338
+ const sourceFile = program.getSourceFile(path);
339
+ if (!sourceFile)
340
+ continue;
341
+ for (const diagnostic of [
342
+ ...program.getSyntacticDiagnostics(sourceFile),
343
+ ...program.getSemanticDiagnostics(sourceFile),
344
+ ]) {
345
+ if (isThirdPartyModuleDiagnostic(ts, diagnostic, isInstalledPackage))
346
+ continue;
347
+ diagnostics.push(diagnostic);
348
+ }
349
+ }
350
+ if (diagnostics.length === 0)
351
+ return null;
352
+ const formatted = ts
353
+ .formatDiagnostics(diagnostics, formatHost)
354
+ .replace(/\n+$/, "");
355
+ return {
356
+ diagnostics: formatted,
357
+ message: `function '${functionKey}' does not typecheck against the ` +
358
+ "declarations `config push` generates:\n" +
359
+ formatted
360
+ .split("\n")
361
+ .map((line) => ` ${line}`)
362
+ .join("\n") +
363
+ "\n Reproduce with `tsc -p functions/tsconfig.json --noEmit`; " +
364
+ `push with ${TYPECHECK_SKIP_FLAG} to ship it unchecked.`,
365
+ };
366
+ },
367
+ };
368
+ return { checker, warnings };
369
+ }
370
+ //# sourceMappingURL=function-typecheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-typecheck.js","sourceRoot":"","sources":["../../../src/lib/function-typecheck.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * What `primitive functions configs` and `functions activate` render — #3462.
3
+ *
4
+ * Pure: every function here takes the server's JSON and answers strings or
5
+ * rows. The table's shape, the trigger summary, the activate output and the
6
+ * three messages `config pull` and `config diff` gained are all decisions about
7
+ * what an operator is told, and they are decided once here so they can be put
8
+ * to a test without a server or a spawned CLI.
9
+ */
10
+ /** First twelve hex of a hash, or `-`. Enough to compare two by eye. */
11
+ export declare function shortHash(value: unknown): string;
12
+ /**
13
+ * The version's triggers, as one cell.
14
+ *
15
+ * `webhook`, `cron×2`, joined by `+`, `-` for a version that declares none. A
16
+ * server that predates a trigger kind sends no key for it, which reads as none
17
+ * rather than as an error.
18
+ */
19
+ export declare function triggerSummary(triggers: unknown): string;
20
+ export interface FunctionVersionRow {
21
+ configId: string;
22
+ createdAt: string;
23
+ active: string;
24
+ content: string;
25
+ envelope: string;
26
+ triggers: string;
27
+ by: string;
28
+ }
29
+ /**
30
+ * One row per version, in the order the server sent them (newest first).
31
+ *
32
+ * #3482 — there is no MODE cell. The config says nothing about how a function
33
+ * runs, so every version takes both verbs and a per-version column would say
34
+ * the same thing on every row of every function.
35
+ */
36
+ export declare function functionVersionRows(items: unknown[]): FunctionVersionRow[];
37
+ /**
38
+ * `Activated <date> by <adminId>` for the active version, from the header.
39
+ *
40
+ * A header written before #3462 carries neither field. It reads `unknown` — the
41
+ * pointer was moved by a push that did not record it, and saying so is better
42
+ * than naming an actor nobody verified.
43
+ */
44
+ export declare function activatedLine(record: {
45
+ activeConfigActivatedAt?: unknown;
46
+ activeConfigActivatedBy?: unknown;
47
+ }, formatDate: (value: string) => string): string;
48
+ /** The `Version <id> (content <hash>)` line beneath `Key`. */
49
+ export declare function versionLine(record: {
50
+ activeConfigId?: unknown;
51
+ contentHash?: unknown;
52
+ }): string;
53
+ /**
54
+ * `Newer version: <configId>, pushed <date>`, or null when the active version
55
+ * IS the newest.
56
+ *
57
+ * Read off the listing's first page: the route answers newest first, so one row
58
+ * is enough to know whether the function is rolled back.
59
+ */
60
+ export declare function newerVersionLine(newest: {
61
+ configId?: unknown;
62
+ createdAt?: unknown;
63
+ } | null | undefined, activeConfigId: unknown, formatDate: (value: string) => string): string | null;
64
+ export interface ActivationAnswer {
65
+ configId?: unknown;
66
+ contentHash?: unknown;
67
+ createdAt?: unknown;
68
+ activated?: unknown;
69
+ previousConfigId?: unknown;
70
+ activatedAt?: unknown;
71
+ activatedBy?: unknown;
72
+ }
73
+ /**
74
+ * What `functions activate` prints.
75
+ *
76
+ * The already-active answer is its OWN sentence rather than the happy one with
77
+ * different numbers: the operator asked for a change and got none, and the
78
+ * thing that DID happen (the trigger rows were re-checked) is what they need to
79
+ * know.
80
+ */
81
+ export declare function activationOutput(answer: ActivationAnswer, formatDate: (value: string) => string): {
82
+ headline: string;
83
+ lines: Array<[string, string]>;
84
+ changed: boolean;
85
+ };
86
+ /**
87
+ * What `functions activate` prints when the server refuses — D3462-004's
88
+ * "the server's message and code".
89
+ *
90
+ * The sentence is what an operator reads; the code is the stable identifier a
91
+ * script branches on, and it does not appear in the sentence. An archived
92
+ * function, an archived version, a held delete lease and a pointer another
93
+ * writer moved each owe a different next move, and the client parses `code`
94
+ * out of the body into its own field — so printing the message alone put it
95
+ * out of reach. The two 404s answer `{ error }` and nothing else, so the
96
+ * parenthetical is omitted rather than invented.
97
+ */
98
+ export declare function activationRefusalLine(err: {
99
+ message?: unknown;
100
+ code?: unknown;
101
+ }): string;
102
+ /** The confirmation an activation asks for unless `-y`. */
103
+ export declare function activationPrompt(functionId: string, configId: string): string;
104
+ /**
105
+ * What `config pull` adds when the version it just wrote is not the newest.
106
+ *
107
+ * Pull writes the ACTIVE version's bytes, which is right — the tree should
108
+ * describe what runs — but on a rolled-back function that silently discards a
109
+ * newer version's code from the tree, so the line names both and both remedies.
110
+ */
111
+ export declare function pullNewerVersionLine(functionKey: string, activeConfigId: string, newest: {
112
+ configId?: unknown;
113
+ createdAt?: unknown;
114
+ }, formatDate: (value: string) => string): string;
115
+ /**
116
+ * The hint `config diff` uses when the tree matches a version that exists and
117
+ * is simply not the active one.
118
+ *
119
+ * Without it the generic hint ("the built bundle or a source file differs")
120
+ * sends an operator looking for an edit they did not make.
121
+ */
122
+ export declare function rollbackDiffHint(newestConfigId: string, activeConfigId: string): string;