primitive-admin 1.2.0-alpha.0 → 1.2.0-alpha.10

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 (412) hide show
  1. package/README.md +108 -136
  2. package/assets/skill/skills/primitive-platform/SKILL.md +37 -4
  3. package/dist/bin/primitive.js +30 -35
  4. package/dist/bin/primitive.js.map +1 -1
  5. package/dist/src/commands/agent-sessions.d.ts +133 -0
  6. package/dist/src/commands/agent-sessions.js +792 -0
  7. package/dist/src/commands/agent-sessions.js.map +1 -0
  8. package/dist/src/commands/analytics.js +0 -148
  9. package/dist/src/commands/analytics.js.map +1 -1
  10. package/dist/src/commands/apps-children.d.ts +54 -0
  11. package/dist/src/commands/apps-children.js +631 -0
  12. package/dist/src/commands/apps-children.js.map +1 -0
  13. package/dist/src/commands/apps.d.ts +6 -0
  14. package/dist/src/commands/apps.js +131 -9
  15. package/dist/src/commands/apps.js.map +1 -1
  16. package/dist/src/commands/auth-sessions.d.ts +3 -3
  17. package/dist/src/commands/auth-sessions.js +117 -23
  18. package/dist/src/commands/auth-sessions.js.map +1 -1
  19. package/dist/src/commands/auth.js +460 -36
  20. package/dist/src/commands/auth.js.map +1 -1
  21. package/dist/src/commands/collections.js +316 -256
  22. package/dist/src/commands/collections.js.map +1 -1
  23. package/dist/src/commands/config.d.ts +1 -1
  24. package/dist/src/commands/config.js +60 -28
  25. package/dist/src/commands/config.js.map +1 -1
  26. package/dist/src/commands/connections.js +12 -17
  27. package/dist/src/commands/connections.js.map +1 -1
  28. package/dist/src/commands/database-type-configs.js +2 -76
  29. package/dist/src/commands/database-type-configs.js.map +1 -1
  30. package/dist/src/commands/databases.d.ts +9 -0
  31. package/dist/src/commands/databases.js +228 -566
  32. package/dist/src/commands/databases.js.map +1 -1
  33. package/dist/src/commands/db3-types.d.ts +15 -0
  34. package/dist/src/commands/db3-types.js +157 -0
  35. package/dist/src/commands/db3-types.js.map +1 -0
  36. package/dist/src/commands/db3.d.ts +12 -0
  37. package/dist/src/commands/db3.js +1052 -0
  38. package/dist/src/commands/db3.js.map +1 -0
  39. package/dist/src/commands/documents.d.ts +121 -2
  40. package/dist/src/commands/documents.js +1601 -1251
  41. package/dist/src/commands/documents.js.map +1 -1
  42. package/dist/src/commands/env.d.ts +9 -1
  43. package/dist/src/commands/env.js +164 -49
  44. package/dist/src/commands/env.js.map +1 -1
  45. package/dist/src/commands/function-trigger-commands.d.ts +28 -0
  46. package/dist/src/commands/function-trigger-commands.js +341 -0
  47. package/dist/src/commands/function-trigger-commands.js.map +1 -0
  48. package/dist/src/commands/functions.js +297 -24
  49. package/dist/src/commands/functions.js.map +1 -1
  50. package/dist/src/commands/groups.js +150 -49
  51. package/dist/src/commands/groups.js.map +1 -1
  52. package/dist/src/commands/guides.js +5 -5
  53. package/dist/src/commands/init.d.ts +7 -0
  54. package/dist/src/commands/init.js +23 -5
  55. package/dist/src/commands/init.js.map +1 -1
  56. package/dist/src/commands/integrations.js +14 -8
  57. package/dist/src/commands/integrations.js.map +1 -1
  58. package/dist/src/commands/metadata-category-configs.d.ts +2 -2
  59. package/dist/src/commands/metadata-category-configs.js +2 -2
  60. package/dist/src/commands/prompts.d.ts +7 -0
  61. package/dist/src/commands/prompts.js +48 -5
  62. package/dist/src/commands/prompts.js.map +1 -1
  63. package/dist/src/commands/scripts.d.ts +9 -17
  64. package/dist/src/commands/scripts.js +24 -479
  65. package/dist/src/commands/scripts.js.map +1 -1
  66. package/dist/src/commands/sessions.js +3 -8
  67. package/dist/src/commands/sessions.js.map +1 -1
  68. package/dist/src/commands/sync-app-settings.d.ts +36 -8
  69. package/dist/src/commands/sync-app-settings.js +109 -23
  70. package/dist/src/commands/sync-app-settings.js.map +1 -1
  71. package/dist/src/commands/sync.d.ts +436 -613
  72. package/dist/src/commands/sync.js +2604 -5977
  73. package/dist/src/commands/sync.js.map +1 -1
  74. package/dist/src/commands/tokens.js +4 -9
  75. package/dist/src/commands/tokens.js.map +1 -1
  76. package/dist/src/commands/users.js +77 -2
  77. package/dist/src/commands/users.js.map +1 -1
  78. package/dist/src/commands/workflows.d.ts +5 -83
  79. package/dist/src/commands/workflows.js +57 -2282
  80. package/dist/src/commands/workflows.js.map +1 -1
  81. package/dist/src/lib/aggregate-output.d.ts +25 -0
  82. package/dist/src/lib/aggregate-output.js +53 -0
  83. package/dist/src/lib/aggregate-output.js.map +1 -0
  84. package/dist/src/lib/api-client.d.ts +681 -581
  85. package/dist/src/lib/api-client.js +880 -851
  86. package/dist/src/lib/api-client.js.map +1 -1
  87. package/dist/src/lib/app-settings-descriptor.d.ts +47 -1
  88. package/dist/src/lib/app-settings-descriptor.js +114 -10
  89. package/dist/src/lib/app-settings-descriptor.js.map +1 -1
  90. package/dist/src/lib/auth-fixtures.d.ts +44 -0
  91. package/dist/src/lib/auth-fixtures.js +61 -0
  92. package/dist/src/lib/auth-fixtures.js.map +1 -0
  93. package/dist/src/lib/auth-flow.d.ts +41 -1
  94. package/dist/src/lib/auth-flow.js +70 -16
  95. package/dist/src/lib/auth-flow.js.map +1 -1
  96. package/dist/src/lib/block-layout.d.ts +12 -23
  97. package/dist/src/lib/block-layout.js +26 -92
  98. package/dist/src/lib/block-layout.js.map +1 -1
  99. package/dist/src/lib/block-selector.d.ts +2 -2
  100. package/dist/src/lib/block-selector.js +2 -2
  101. package/dist/src/lib/child-apps-local.d.ts +164 -0
  102. package/dist/src/lib/child-apps-local.js +258 -0
  103. package/dist/src/lib/child-apps-local.js.map +1 -0
  104. package/dist/src/lib/ci-session-request.d.ts +22 -0
  105. package/dist/src/lib/ci-session-request.js +51 -0
  106. package/dist/src/lib/ci-session-request.js.map +1 -0
  107. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +10 -8
  108. package/dist/src/lib/codegen-shared/generatedFiles.js +21 -15
  109. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
  110. package/dist/src/lib/codegen-shared/prettierStable.d.ts +1 -1
  111. package/dist/src/lib/codegen-shared/prettierStable.js +1 -1
  112. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +2 -2
  113. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +2 -2
  114. package/dist/src/lib/collection-export.d.ts +76 -15
  115. package/dist/src/lib/collection-export.js +116 -23
  116. package/dist/src/lib/collection-export.js.map +1 -1
  117. package/dist/src/lib/collection-principal.d.ts +22 -0
  118. package/dist/src/lib/collection-principal.js +35 -0
  119. package/dist/src/lib/collection-principal.js.map +1 -0
  120. package/dist/src/lib/config-object-descriptor.d.ts +3 -22
  121. package/dist/src/lib/config-object-descriptor.js +56 -291
  122. package/dist/src/lib/config-object-descriptor.js.map +1 -1
  123. package/dist/src/lib/config-payload.js +2 -3
  124. package/dist/src/lib/config-payload.js.map +1 -1
  125. package/dist/src/lib/config-surface.d.ts +5 -7
  126. package/dist/src/lib/config-surface.js +18 -40
  127. package/dist/src/lib/config-surface.js.map +1 -1
  128. package/dist/src/lib/connections-list.d.ts +10 -0
  129. package/dist/src/lib/connections-list.js +18 -0
  130. package/dist/src/lib/connections-list.js.map +1 -0
  131. package/dist/src/lib/credentials-home.d.ts +58 -0
  132. package/dist/src/lib/credentials-home.js +204 -0
  133. package/dist/src/lib/credentials-home.js.map +1 -0
  134. package/dist/src/lib/credentials-lock.d.ts +88 -0
  135. package/dist/src/lib/credentials-lock.js +302 -0
  136. package/dist/src/lib/credentials-lock.js.map +1 -0
  137. package/dist/src/lib/credentials-store.d.ts +179 -24
  138. package/dist/src/lib/credentials-store.js +712 -77
  139. package/dist/src/lib/credentials-store.js.map +1 -1
  140. package/dist/src/lib/csv.d.ts +8 -9
  141. package/dist/src/lib/csv.js +3 -4
  142. package/dist/src/lib/csv.js.map +1 -1
  143. package/dist/src/lib/custodian.d.ts +8 -0
  144. package/dist/src/lib/custodian.js +18 -0
  145. package/dist/src/lib/custodian.js.map +1 -0
  146. package/dist/src/lib/db-codegen/dbGenerator.js +5 -16
  147. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
  148. package/dist/src/lib/db-codegen/dbNaming.d.ts +5 -13
  149. package/dist/src/lib/db-codegen/dbNaming.js +5 -17
  150. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
  151. package/dist/src/lib/db-codegen/dbTemplates.d.ts +7 -56
  152. package/dist/src/lib/db-codegen/dbTemplates.js +25 -125
  153. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
  154. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +2 -2
  155. package/dist/src/lib/db-codegen/dbTsTypes.js +2 -2
  156. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +67 -2
  157. package/dist/src/lib/db-codegen/dbTypeIR.js +13 -2
  158. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -1
  159. package/dist/src/lib/db3-export.d.ts +231 -0
  160. package/dist/src/lib/db3-export.js +510 -0
  161. package/dist/src/lib/db3-export.js.map +1 -0
  162. package/dist/src/lib/db3-index-output.d.ts +27 -0
  163. package/dist/src/lib/db3-index-output.js +49 -0
  164. package/dist/src/lib/db3-index-output.js.map +1 -0
  165. package/dist/src/lib/document-export-lookups.d.ts +31 -0
  166. package/dist/src/lib/document-export-lookups.js +53 -0
  167. package/dist/src/lib/document-export-lookups.js.map +1 -0
  168. package/dist/src/lib/document-export-permissions.d.ts +7 -5
  169. package/dist/src/lib/document-export-permissions.js +7 -5
  170. package/dist/src/lib/document-export-permissions.js.map +1 -1
  171. package/dist/src/lib/document-export-record-log.d.ts +57 -0
  172. package/dist/src/lib/document-export-record-log.js +215 -0
  173. package/dist/src/lib/document-export-record-log.js.map +1 -0
  174. package/dist/src/lib/document-ingest-artifact.d.ts +26 -2
  175. package/dist/src/lib/document-ingest-artifact.js +42 -8
  176. package/dist/src/lib/document-ingest-artifact.js.map +1 -1
  177. package/dist/src/lib/document-ingest-format2.d.ts +36 -0
  178. package/dist/src/lib/document-ingest-format2.js +78 -0
  179. package/dist/src/lib/document-ingest-format2.js.map +1 -0
  180. package/dist/src/lib/document-ingest-input.d.ts +9 -0
  181. package/dist/src/lib/document-ingest-input.js +28 -1
  182. package/dist/src/lib/document-ingest-input.js.map +1 -1
  183. package/dist/src/lib/document-ingest-rows.d.ts +16 -0
  184. package/dist/src/lib/document-ingest-rows.js +17 -0
  185. package/dist/src/lib/document-ingest-rows.js.map +1 -1
  186. package/dist/src/lib/document-ingest.d.ts +33 -1
  187. package/dist/src/lib/document-ingest.js +49 -0
  188. package/dist/src/lib/document-ingest.js.map +1 -1
  189. package/dist/src/lib/document-schema-rows.d.ts +42 -0
  190. package/dist/src/lib/document-schema-rows.js +53 -0
  191. package/dist/src/lib/document-schema-rows.js.map +1 -0
  192. package/dist/src/lib/env-resolver-core.d.ts +70 -2
  193. package/dist/src/lib/env-resolver-core.js +137 -20
  194. package/dist/src/lib/env-resolver-core.js.map +1 -1
  195. package/dist/src/lib/env-resolver.d.ts +14 -2
  196. package/dist/src/lib/env-resolver.js +32 -10
  197. package/dist/src/lib/env-resolver.js.map +1 -1
  198. package/dist/src/lib/function-authorize-check.d.ts +142 -0
  199. package/dist/src/lib/function-authorize-check.js +310 -0
  200. package/dist/src/lib/function-authorize-check.js.map +1 -0
  201. package/dist/src/lib/function-authorize-view.d.ts +15 -0
  202. package/dist/src/lib/function-authorize-view.js +50 -0
  203. package/dist/src/lib/function-authorize-view.js.map +1 -0
  204. package/dist/src/lib/function-bundle.d.ts +38 -18
  205. package/dist/src/lib/function-bundle.js +96 -35
  206. package/dist/src/lib/function-bundle.js.map +1 -1
  207. package/dist/src/lib/function-collect.d.ts +75 -12
  208. package/dist/src/lib/function-collect.js +427 -12
  209. package/dist/src/lib/function-collect.js.map +1 -1
  210. package/dist/src/lib/function-db-types.d.ts +29 -0
  211. package/dist/src/lib/function-db-types.js +117 -7
  212. package/dist/src/lib/function-db-types.js.map +1 -1
  213. package/dist/src/lib/function-document-types.d.ts +5 -3
  214. package/dist/src/lib/function-document-types.js +10 -14
  215. package/dist/src/lib/function-document-types.js.map +1 -1
  216. package/dist/src/lib/function-lint.d.ts +34 -0
  217. package/dist/src/lib/function-lint.js +112 -0
  218. package/dist/src/lib/function-lint.js.map +1 -0
  219. package/dist/src/lib/function-log-row.js +21 -2
  220. package/dist/src/lib/function-log-row.js.map +1 -1
  221. package/dist/src/lib/function-run.d.ts +16 -21
  222. package/dist/src/lib/function-run.js +37 -30
  223. package/dist/src/lib/function-run.js.map +1 -1
  224. package/dist/src/lib/function-schema-codegen.d.ts +1 -1
  225. package/dist/src/lib/function-schema-codegen.js +5 -5
  226. package/dist/src/lib/function-schema-codegen.js.map +1 -1
  227. package/dist/src/lib/function-source-roots.d.ts +67 -0
  228. package/dist/src/lib/function-source-roots.js +148 -0
  229. package/dist/src/lib/function-source-roots.js.map +1 -0
  230. package/dist/src/lib/function-sync.d.ts +108 -22
  231. package/dist/src/lib/function-sync.js +127 -39
  232. package/dist/src/lib/function-sync.js.map +1 -1
  233. package/dist/src/lib/function-trigger-listing.d.ts +11 -6
  234. package/dist/src/lib/function-trigger-listing.js +32 -11
  235. package/dist/src/lib/function-trigger-listing.js.map +1 -1
  236. package/dist/src/lib/function-typecheck.d.ts +37 -2
  237. package/dist/src/lib/function-typecheck.js +210 -28
  238. package/dist/src/lib/function-typecheck.js.map +1 -1
  239. package/dist/src/lib/function-versions.d.ts +2 -0
  240. package/dist/src/lib/function-versions.js +1 -0
  241. package/dist/src/lib/function-versions.js.map +1 -1
  242. package/dist/src/lib/generated-allowlist.js +0 -20
  243. package/dist/src/lib/generated-allowlist.js.map +1 -1
  244. package/dist/src/lib/generated-config-surfaces.d.ts +703 -201
  245. package/dist/src/lib/generated-config-surfaces.js +2335 -2033
  246. package/dist/src/lib/generated-config-surfaces.js.map +1 -1
  247. package/dist/src/lib/generated-sdk-types.d.ts +1 -1
  248. package/dist/src/lib/generated-sdk-types.js +1 -1
  249. package/dist/src/lib/generated-sdk-types.js.map +1 -1
  250. package/dist/src/lib/init-adopt.js +12 -3
  251. package/dist/src/lib/init-adopt.js.map +1 -1
  252. package/dist/src/lib/init-login-note.d.ts +13 -0
  253. package/dist/src/lib/init-login-note.js +22 -0
  254. package/dist/src/lib/init-login-note.js.map +1 -0
  255. package/dist/src/lib/json-value.d.ts +6 -0
  256. package/dist/src/lib/json-value.js +13 -0
  257. package/dist/src/lib/json-value.js.map +1 -0
  258. package/dist/src/lib/load-routes.d.ts +33 -0
  259. package/dist/src/lib/load-routes.js +35 -0
  260. package/dist/src/lib/load-routes.js.map +1 -0
  261. package/dist/src/lib/local-state.d.ts +38 -7
  262. package/dist/src/lib/local-state.js +172 -49
  263. package/dist/src/lib/local-state.js.map +1 -1
  264. package/dist/src/lib/local-test-cases.d.ts +5 -2
  265. package/dist/src/lib/local-test-cases.js +7 -4
  266. package/dist/src/lib/local-test-cases.js.map +1 -1
  267. package/dist/src/lib/log-inspection.d.ts +42 -4
  268. package/dist/src/lib/log-inspection.js +37 -5
  269. package/dist/src/lib/log-inspection.js.map +1 -1
  270. package/dist/src/lib/login-exchange-check.d.ts +18 -0
  271. package/dist/src/lib/login-exchange-check.js +27 -0
  272. package/dist/src/lib/login-exchange-check.js.map +1 -0
  273. package/dist/src/lib/login-scope-lines.d.ts +25 -0
  274. package/dist/src/lib/login-scope-lines.js +45 -0
  275. package/dist/src/lib/login-scope-lines.js.map +1 -0
  276. package/dist/src/lib/logout-admin-session.d.ts +2 -1
  277. package/dist/src/lib/logout-admin-session.js +7 -1
  278. package/dist/src/lib/logout-admin-session.js.map +1 -1
  279. package/dist/src/lib/object-status-filter.d.ts +9 -1
  280. package/dist/src/lib/object-status-filter.js +9 -1
  281. package/dist/src/lib/object-status-filter.js.map +1 -1
  282. package/dist/src/lib/output.js +2 -0
  283. package/dist/src/lib/output.js.map +1 -1
  284. package/dist/src/lib/paginate.d.ts +0 -5
  285. package/dist/src/lib/paginate.js +0 -5
  286. package/dist/src/lib/paginate.js.map +1 -1
  287. package/dist/src/lib/pin-refusal-hint.d.ts +12 -0
  288. package/dist/src/lib/pin-refusal-hint.js +35 -0
  289. package/dist/src/lib/pin-refusal-hint.js.map +1 -0
  290. package/dist/src/lib/primitive-env-plugin.d.ts +99 -0
  291. package/dist/src/lib/primitive-env-plugin.js +408 -0
  292. package/dist/src/lib/primitive-env-plugin.js.map +1 -0
  293. package/dist/src/lib/project-config.d.ts +7 -0
  294. package/dist/src/lib/project-config.js +22 -1
  295. package/dist/src/lib/project-config.js.map +1 -1
  296. package/dist/src/lib/project-login-apps.d.ts +8 -0
  297. package/dist/src/lib/project-login-apps.js +27 -0
  298. package/dist/src/lib/project-login-apps.js.map +1 -0
  299. package/dist/src/lib/prompt-schema-codegen.d.ts +10 -3
  300. package/dist/src/lib/prompt-schema-codegen.js +52 -11
  301. package/dist/src/lib/prompt-schema-codegen.js.map +1 -1
  302. package/dist/src/lib/pull-write.d.ts +31 -0
  303. package/dist/src/lib/pull-write.js +49 -0
  304. package/dist/src/lib/pull-write.js.map +1 -0
  305. package/dist/src/lib/push-failure-report.d.ts +45 -0
  306. package/dist/src/lib/push-failure-report.js +57 -0
  307. package/dist/src/lib/push-failure-report.js.map +1 -0
  308. package/dist/src/lib/records-verbs.d.ts +69 -0
  309. package/dist/src/lib/records-verbs.js +40 -0
  310. package/dist/src/lib/records-verbs.js.map +1 -0
  311. package/dist/src/lib/refresh-admin-credentials.d.ts +7 -0
  312. package/dist/src/lib/refresh-admin-credentials.js +16 -4
  313. package/dist/src/lib/refresh-admin-credentials.js.map +1 -1
  314. package/dist/src/lib/root-import-decision.d.ts +65 -0
  315. package/dist/src/lib/root-import-decision.js +109 -0
  316. package/dist/src/lib/root-import-decision.js.map +1 -0
  317. package/dist/src/lib/run-status.d.ts +1 -1
  318. package/dist/src/lib/run-status.generated.d.ts +2 -2
  319. package/dist/src/lib/run-status.generated.js +3 -1
  320. package/dist/src/lib/run-status.generated.js.map +1 -1
  321. package/dist/src/lib/run-status.js +1 -1
  322. package/dist/src/lib/schema-codegen/generated-schema-descriptor.d.ts +129 -0
  323. package/dist/src/lib/schema-codegen/generated-schema-descriptor.js +269 -0
  324. package/dist/src/lib/schema-codegen/generated-schema-descriptor.js.map +1 -0
  325. package/dist/src/lib/schema-codegen/naming.d.ts +35 -0
  326. package/dist/src/lib/schema-codegen/naming.js +83 -0
  327. package/dist/src/lib/schema-codegen/naming.js.map +1 -0
  328. package/dist/src/lib/schema-codegen/schemaToTs.d.ts +82 -0
  329. package/dist/src/lib/schema-codegen/schemaToTs.js +305 -0
  330. package/dist/src/lib/schema-codegen/schemaToTs.js.map +1 -0
  331. package/dist/src/lib/scope-request.d.ts +84 -0
  332. package/dist/src/lib/scope-request.js +235 -0
  333. package/dist/src/lib/scope-request.js.map +1 -0
  334. package/dist/src/lib/session-id.d.ts +9 -0
  335. package/dist/src/lib/session-id.js +28 -0
  336. package/dist/src/lib/session-id.js.map +1 -0
  337. package/dist/src/lib/snapshot-build-rows.d.ts +21 -0
  338. package/dist/src/lib/snapshot-build-rows.js +22 -0
  339. package/dist/src/lib/snapshot-build-rows.js.map +1 -1
  340. package/dist/src/lib/snapshot-build.js +8 -3
  341. package/dist/src/lib/snapshot-build.js.map +1 -1
  342. package/dist/src/lib/snapshots.d.ts +17 -1
  343. package/dist/src/lib/snapshots.js +50 -2
  344. package/dist/src/lib/snapshots.js.map +1 -1
  345. package/dist/src/lib/swift-codegen/agentGenerator.d.ts +6 -2
  346. package/dist/src/lib/swift-codegen/agentGenerator.js +57 -5
  347. package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -1
  348. package/dist/src/lib/swift-codegen/banners.d.ts +34 -7
  349. package/dist/src/lib/swift-codegen/banners.js +37 -7
  350. package/dist/src/lib/swift-codegen/banners.js.map +1 -1
  351. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +4 -3
  352. package/dist/src/lib/swift-codegen/dbGenerator.js +14 -117
  353. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
  354. package/dist/src/lib/swift-codegen/functionGenerator.d.ts +3 -3
  355. package/dist/src/lib/swift-codegen/functionGenerator.js +23 -18
  356. package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -1
  357. package/dist/src/lib/swift-codegen/generator.d.ts +5 -5
  358. package/dist/src/lib/swift-codegen/generator.js +35 -40
  359. package/dist/src/lib/swift-codegen/generator.js.map +1 -1
  360. package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +3 -3
  361. package/dist/src/lib/swift-codegen/schemaToSwift.js +4 -4
  362. package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -1
  363. package/dist/src/lib/swift-codegen/swiftKeys.d.ts +19 -0
  364. package/dist/src/lib/swift-codegen/swiftKeys.js +31 -0
  365. package/dist/src/lib/swift-codegen/swiftKeys.js.map +1 -0
  366. package/dist/src/lib/sync-paths.d.ts +35 -0
  367. package/dist/src/lib/sync-paths.js +57 -5
  368. package/dist/src/lib/sync-paths.js.map +1 -1
  369. package/dist/src/lib/sync-resource-types.d.ts +26 -26
  370. package/dist/src/lib/sync-resource-types.js +61 -189
  371. package/dist/src/lib/sync-resource-types.js.map +1 -1
  372. package/dist/src/lib/sync-selectors.d.ts +5 -1
  373. package/dist/src/lib/sync-selectors.js +23 -13
  374. package/dist/src/lib/sync-selectors.js.map +1 -1
  375. package/dist/src/lib/test-case-file-names.d.ts +3 -5
  376. package/dist/src/lib/test-case-file-names.js +3 -5
  377. package/dist/src/lib/test-case-file-names.js.map +1 -1
  378. package/dist/src/lib/toml-database-config.d.ts +15 -75
  379. package/dist/src/lib/toml-database-config.js +17 -306
  380. package/dist/src/lib/toml-database-config.js.map +1 -1
  381. package/dist/src/lib/transient-retry.d.ts +43 -0
  382. package/dist/src/lib/transient-retry.js +94 -0
  383. package/dist/src/lib/transient-retry.js.map +1 -0
  384. package/dist/src/lib/vars-override.d.ts +105 -0
  385. package/dist/src/lib/vars-override.js +143 -0
  386. package/dist/src/lib/vars-override.js.map +1 -0
  387. package/dist/src/lib/webhook-capture.d.ts +43 -0
  388. package/dist/src/lib/webhook-capture.js +91 -0
  389. package/dist/src/lib/webhook-capture.js.map +1 -0
  390. package/dist/src/lib/webhook-deliver.d.ts +18 -20
  391. package/dist/src/lib/webhook-deliver.js +34 -89
  392. package/dist/src/lib/webhook-deliver.js.map +1 -1
  393. package/dist/src/lib/webhook-test-run.d.ts +32 -0
  394. package/dist/src/lib/webhook-test-run.js +108 -0
  395. package/dist/src/lib/webhook-test-run.js.map +1 -0
  396. package/dist/src/lib/workflow-codegen/generator.d.ts +7 -7
  397. package/dist/src/lib/workflow-codegen/generator.js +16 -23
  398. package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
  399. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +6 -12
  400. package/dist/src/lib/workflow-codegen/invokerIR.js +4 -5
  401. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
  402. package/dist/src/lib/workflow-toml-validator.d.ts +2 -0
  403. package/dist/src/lib/workflow-toml-validator.js +28 -1
  404. package/dist/src/lib/workflow-toml-validator.js.map +1 -1
  405. package/dist/src/types/index.d.ts +30 -37
  406. package/dist/src/validators.d.ts +7 -55
  407. package/dist/src/validators.js +7 -53
  408. package/dist/src/validators.js.map +1 -1
  409. package/dist/src/vite.d.ts +17 -0
  410. package/dist/src/vite.js +18 -0
  411. package/dist/src/vite.js.map +1 -0
  412. package/package.json +20 -12
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The sentence an `APP_NOT_PINNED` refusal gains when the refused app is one
3
+ * of the project's environments on the refused server (#4512): a login there
4
+ * pins every environment of the project on that server, so an environment
5
+ * added after the login, or one on an app the login does not cover, names
6
+ * the login that does.
7
+ *
8
+ * Pure: the refusal, the refused request's server and the committed
9
+ * environments are arguments.
10
+ */
11
+ import { normalizeServerUrl } from "./channel.js";
12
+ /**
13
+ * The hint for a refusal, or null: only for `APP_NOT_PINNED` with reason
14
+ * `app` whose `appId` a committed environment on `serverUrl` names, the first
15
+ * such environment in config order.
16
+ */
17
+ export function pinRefusalHint(refusal, serverUrl, environments) {
18
+ if (refusal.code !== "APP_NOT_PINNED" || !environments)
19
+ return null;
20
+ const details = refusal.details;
21
+ if (!details || typeof details !== "object" || Array.isArray(details))
22
+ return null;
23
+ const { reason, appId } = details;
24
+ if (reason !== "app" || typeof appId !== "string")
25
+ return null;
26
+ const server = normalizeServerUrl(serverUrl);
27
+ if (!server)
28
+ return null;
29
+ const env = Object.entries(environments).find(([, e]) => e.appId === appId && normalizeServerUrl(e.apiUrl) === server);
30
+ if (!env)
31
+ return null;
32
+ const name = env[0];
33
+ return `Your login does not cover the "${name}" environment's app. Run \`primitive -e ${name} login\` to sign in to every environment of this project on ${server}.`;
34
+ }
35
+ //# sourceMappingURL=pin-refusal-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin-refusal-hint.js","sourceRoot":"","sources":["../../../src/lib/pin-refusal-hint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA6C,EAC7C,SAAiB,EACjB,YAAsE;IAEtE,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAkC,CAAC;IAC7D,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,CACxE,CAAC;IACF,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,kCAAkC,IAAI,2CAA2C,IAAI,+DAA+D,MAAM,GAAG,CAAC;AACvK,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * `primitiveEnv()` — Primitive environment configuration for a Vite app (#2873).
3
+ *
4
+ * A scaffolded app used to type its backend URL and app ID twice: once in
5
+ * `primitive/config.json` (which every `primitive` command reads) and again in
6
+ * `.env` / `.env.production`. This plugin removes the second copy. It resolves
7
+ * the selected Primitive environment at config time and `define`s the keys the
8
+ * app already reads:
9
+ *
10
+ * VITE_APP_ID VITE_API_URL VITE_WS_URL VITE_APP_NAME VITE_PRIMITIVE_ENV
11
+ *
12
+ * `src/config/envConfig.ts` is untouched — it keeps reading
13
+ * `import.meta.env.*`. The `.env` files shrink to app behavior
14
+ * (`VITE_OAUTH_REDIRECT_URI`, `VITE_ENABLE_AUTH_PROXY`, `VITE_LOG_LEVEL`).
15
+ *
16
+ * ── which environment ─────────────────────────────────────────────────────
17
+ * `--primitive-env` / `PRIMITIVE_ENV` → `primitive env use` (the per-machine
18
+ * selection in `.primitive/local.json`) → the committed `defaultEnvironment` →
19
+ * the sole environment. That order lives in ONE place: the CLI's resolver
20
+ * core, which this plugin imports directly — so the plugin a build runs and
21
+ * the `primitive` binary its scripts run are one installed package version.
22
+ * It ships as `primitive-admin/vite` (#4924); `primitive-app` still carries a
23
+ * generated copy of the core for its own copy of this plugin until phase 6 of
24
+ * the template fold-in (#4920) retires both.
25
+ *
26
+ * ── pairing a mode with an environment ────────────────────────────────────
27
+ * The vite mode and the Primitive environment are independent axes. An app
28
+ * whose `.env.<mode>` carries backend-coupled values can pin the combination
29
+ * by declaring `VITE_EXPECTED_PRIMITIVE_ENV` in that file; a run that resolves
30
+ * a different environment stops here, at config time — which covers `vite
31
+ * dev`, `vite build`, the deploy's build, and the headless vitest suite alike.
32
+ * Absent declaration: the axes stay fully independent.
33
+ *
34
+ * ── the escape hatch ──────────────────────────────────────────────────────
35
+ * An explicit `VITE_*` identity key in a `.env` file or the process
36
+ * environment still wins, with a warning naming it. That keeps pure-env CI
37
+ * builds and legacy scaffolds working — which is also why this plugin, not
38
+ * `vite.config.ts`, owns the resolution: an eager top-level `resolvePrimitiveEnv()`
39
+ * in the config file would throw before the escape hatch could apply.
40
+ */
41
+ import type { Plugin } from "vite";
42
+ import { PrimitiveEnvError, type ResolvedPrimitiveEnv } from "./env-resolver-core.js";
43
+ export { PrimitiveEnvError };
44
+ export type { ResolvedPrimitiveEnv };
45
+ export interface ResolvePrimitiveEnvOptions {
46
+ /** Project root to resolve from. Defaults to `process.cwd()`. */
47
+ root?: string;
48
+ /** Environment variables to read. Defaults to `process.env`. */
49
+ env?: Record<string, string | undefined>;
50
+ /** An explicit environment name (e.g. from `--primitive-env`). */
51
+ primitiveEnv?: string | null;
52
+ }
53
+ /**
54
+ * Resolves the Primitive environment for a project. A thin wrapper over the
55
+ * CLI's resolver core so callers outside this plugin (scripts, tests) get the
56
+ * same answer the plugin does.
57
+ */
58
+ export declare function resolvePrimitiveEnv(options?: ResolvePrimitiveEnvOptions): ResolvedPrimitiveEnv;
59
+ export interface PrimitiveEnvOptions {
60
+ /**
61
+ * Override the environment to build against. Normally left unset — the
62
+ * selection comes from `primitive env use` or `PRIMITIVE_ENV`.
63
+ */
64
+ primitiveEnv?: string;
65
+ /** Print the resolved tuple. Defaults to true. */
66
+ logResolved?: boolean;
67
+ }
68
+ export interface PrimitiveEnvPlugin extends Plugin {
69
+ /**
70
+ * The app name after resolution and any `.env` override — what the dev-tools
71
+ * label should show. Undefined until the `config` hook has run, and when
72
+ * neither the environment nor a `VITE_APP_NAME` supplies one.
73
+ */
74
+ appName(): string | undefined;
75
+ /** The resolved environment, or null when the escape hatch applied. */
76
+ resolved(): ResolvedPrimitiveEnv | null;
77
+ }
78
+ export declare function primitiveEnv(options?: PrimitiveEnvOptions): PrimitiveEnvPlugin;
79
+ /**
80
+ * The `.env` files Vite would load for this mode, in Vite's own precedence
81
+ * order, restricted to the keys this plugin cares about.
82
+ *
83
+ * Deliberately not Vite's `loadEnv`: `vite` is not a runtime dependency of
84
+ * this package, and reaching for it from a consumer's install layout is the
85
+ * kind of resolution that works on one package manager and not the next. The
86
+ * reader below is the same one `cf-deploy` uses for its strict check, so the
87
+ * build and the deploy can never disagree about what a `.env` file says.
88
+ */
89
+ export declare function loadDotEnv(mode: string, root: string): Record<string, string>;
90
+ /**
91
+ * Parses one `.env` file. Missing file → no keys.
92
+ *
93
+ * Quoting follows what Vite's own loader does, because a value read
94
+ * differently here than there is exactly the kind of disagreement this plugin
95
+ * exists to remove: a quoted value ends at its closing quote — a `#` inside it
96
+ * is content, and anything after it on the line is a comment — while an
97
+ * unquoted value ends at the first inline comment.
98
+ */
99
+ export declare function parseDotEnvFile(path: string): Record<string, string>;
@@ -0,0 +1,408 @@
1
+ /**
2
+ * `primitiveEnv()` — Primitive environment configuration for a Vite app (#2873).
3
+ *
4
+ * A scaffolded app used to type its backend URL and app ID twice: once in
5
+ * `primitive/config.json` (which every `primitive` command reads) and again in
6
+ * `.env` / `.env.production`. This plugin removes the second copy. It resolves
7
+ * the selected Primitive environment at config time and `define`s the keys the
8
+ * app already reads:
9
+ *
10
+ * VITE_APP_ID VITE_API_URL VITE_WS_URL VITE_APP_NAME VITE_PRIMITIVE_ENV
11
+ *
12
+ * `src/config/envConfig.ts` is untouched — it keeps reading
13
+ * `import.meta.env.*`. The `.env` files shrink to app behavior
14
+ * (`VITE_OAUTH_REDIRECT_URI`, `VITE_ENABLE_AUTH_PROXY`, `VITE_LOG_LEVEL`).
15
+ *
16
+ * ── which environment ─────────────────────────────────────────────────────
17
+ * `--primitive-env` / `PRIMITIVE_ENV` → `primitive env use` (the per-machine
18
+ * selection in `.primitive/local.json`) → the committed `defaultEnvironment` →
19
+ * the sole environment. That order lives in ONE place: the CLI's resolver
20
+ * core, which this plugin imports directly — so the plugin a build runs and
21
+ * the `primitive` binary its scripts run are one installed package version.
22
+ * It ships as `primitive-admin/vite` (#4924); `primitive-app` still carries a
23
+ * generated copy of the core for its own copy of this plugin until phase 6 of
24
+ * the template fold-in (#4920) retires both.
25
+ *
26
+ * ── pairing a mode with an environment ────────────────────────────────────
27
+ * The vite mode and the Primitive environment are independent axes. An app
28
+ * whose `.env.<mode>` carries backend-coupled values can pin the combination
29
+ * by declaring `VITE_EXPECTED_PRIMITIVE_ENV` in that file; a run that resolves
30
+ * a different environment stops here, at config time — which covers `vite
31
+ * dev`, `vite build`, the deploy's build, and the headless vitest suite alike.
32
+ * Absent declaration: the axes stay fully independent.
33
+ *
34
+ * ── the escape hatch ──────────────────────────────────────────────────────
35
+ * An explicit `VITE_*` identity key in a `.env` file or the process
36
+ * environment still wins, with a warning naming it. That keeps pure-env CI
37
+ * builds and legacy scaffolds working — which is also why this plugin, not
38
+ * `vite.config.ts`, owns the resolution: an eager top-level `resolvePrimitiveEnv()`
39
+ * in the config file would throw before the escape hatch could apply.
40
+ */
41
+ import { existsSync, readFileSync } from "node:fs";
42
+ import { join, resolve } from "node:path";
43
+ import { PrimitiveEnvError, resolvePrimitiveEnv as resolveCore, } from "./env-resolver-core.js";
44
+ export { PrimitiveEnvError };
45
+ /** The keys the plugin owns. An explicit value for any of them wins. */
46
+ const IDENTITY_KEYS = [
47
+ "VITE_APP_ID",
48
+ "VITE_API_URL",
49
+ "VITE_WS_URL",
50
+ "VITE_APP_NAME",
51
+ ];
52
+ /**
53
+ * The opt-in pairing declaration: which Primitive environment a vite mode is
54
+ * meant to build and test against.
55
+ *
56
+ * The two axes are independent by design — a production front end against the
57
+ * alpha backend is a real combination. But an app whose `.env.<mode>` carries
58
+ * backend-coupled values (per-environment resource IDs) has combinations that
59
+ * are simply wrong, and nothing used to say so: `PRIMITIVE_ENV=dev pnpm test
60
+ * --mode alpha` ran a live headless suite against the wrong app in silence
61
+ * (#2931). A mode that names its environment here gets that run stopped.
62
+ */
63
+ const EXPECTED_ENV_KEY = "VITE_EXPECTED_PRIMITIVE_ENV";
64
+ /**
65
+ * Values this plugin put into `process.env` itself, so a later resolution (a
66
+ * dev-server restart, vitest merging configs) does not mistake its own work
67
+ * for a user override and warn about it.
68
+ */
69
+ const selfPublished = new Map();
70
+ /**
71
+ * Publishes a resolved value into `process.env`.
72
+ *
73
+ * `define` alone is not enough: Vite materializes `import.meta.env` from the
74
+ * env it loads AFTER the config hooks run, and vitest builds the same object
75
+ * for the node environment rather than applying `import.meta.env.*` define
76
+ * replacements. A prefixed `process.env` entry is the one channel both honor,
77
+ * which is what makes `pnpm test` see the same identity as `pnpm build`.
78
+ */
79
+ function publish(key, value) {
80
+ const ambient = process.env[key];
81
+ if (ambient !== undefined &&
82
+ ambient !== "" &&
83
+ selfPublished.get(key) !== ambient) {
84
+ return; // A real override — leave it alone.
85
+ }
86
+ process.env[key] = value;
87
+ selfPublished.set(key, value);
88
+ }
89
+ /**
90
+ * Resolves the Primitive environment for a project. A thin wrapper over the
91
+ * CLI's resolver core so callers outside this plugin (scripts, tests) get the
92
+ * same answer the plugin does.
93
+ */
94
+ export function resolvePrimitiveEnv(options = {}) {
95
+ return resolveCore({
96
+ cwd: options.root,
97
+ env: options.env,
98
+ explicitEnvName: options.primitiveEnv ?? null,
99
+ });
100
+ }
101
+ function formatTuple(resolved, effective, overrides) {
102
+ const mark = (key) => overrides.includes(key) ? " (overridden)" : "";
103
+ const lines = [
104
+ `[primitive-env] Primitive environment: ${resolved.name} (selected: ${resolved.source})`,
105
+ `[primitive-env] apiUrl: ${effective.apiUrl}${mark("VITE_API_URL")}`,
106
+ `[primitive-env] wsUrl: ${effective.wsUrl}${mark("VITE_WS_URL")}`,
107
+ `[primitive-env] appId: ${effective.appId ?? "(unset)"}${mark("VITE_APP_ID")}`,
108
+ `[primitive-env] appName: ${effective.appName ?? "(unset)"}${mark("VITE_APP_NAME")}`,
109
+ `[primitive-env] config: ${resolved.configPath}`,
110
+ ];
111
+ if (overrides.length > 0) {
112
+ lines.push(`[primitive-env] overridden by the environment: ${overrides.join(", ")}`);
113
+ }
114
+ return lines.join("\n");
115
+ }
116
+ /**
117
+ * The directory Vite loads `.env` files from: `envDir` when the app sets one
118
+ * (relative paths resolve against the root, as Vite does), the root otherwise.
119
+ * `envDir: false` means Vite loads no env files at all — there is nothing to
120
+ * declare a pairing in.
121
+ */
122
+ function envFileDir(config, root) {
123
+ const envDir = config?.envDir;
124
+ if (envDir === false)
125
+ return null;
126
+ if (typeof envDir === "string" && envDir !== "")
127
+ return resolve(root, envDir);
128
+ return root;
129
+ }
130
+ /**
131
+ * The pairing declared for this mode, or null when there is none.
132
+ *
133
+ * A non-empty value in the process environment wins, as it does for every
134
+ * other key here — which is also how you state a cross-wired run on purpose:
135
+ * `VITE_EXPECTED_PRIMITIVE_ENV=dev PRIMITIVE_ENV=dev pnpm test --mode alpha`.
136
+ * Below that, Vite's own file precedence, highest first: the first file that
137
+ * mentions the key decides, so an empty value in `.env.<mode>` cancels a
138
+ * declaration inherited from the base `.env`.
139
+ */
140
+ function findPairing(mode, envDir) {
141
+ const ambient = process.env[EXPECTED_ENV_KEY];
142
+ if (ambient !== undefined && ambient !== "") {
143
+ return { value: ambient, where: "the process environment" };
144
+ }
145
+ if (envDir === null)
146
+ return null;
147
+ for (const file of [
148
+ `.env.${mode}.local`,
149
+ `.env.${mode}`,
150
+ ".env.local",
151
+ ".env",
152
+ ]) {
153
+ const value = parseDotEnvFile(join(envDir, file))[EXPECTED_ENV_KEY];
154
+ if (value !== undefined)
155
+ return { value, where: file };
156
+ }
157
+ return null;
158
+ }
159
+ function pairingMismatchMessage(mode, declaration, current) {
160
+ const resolvedLabel = current.local
161
+ ? `"${current.name}" (machine-local, tree "${current.tree}")`
162
+ : `"${current.name}"`;
163
+ return [
164
+ `[primitive-env] Wrong pair: vite mode "${mode}" is declared to run against ` +
165
+ `Primitive environment "${declaration.value}", but ${resolvedLabel} resolved.`,
166
+ `[primitive-env] expected: ${declaration.value} (${EXPECTED_ENV_KEY} in ${declaration.where}; ` +
167
+ `a machine-local environment whose tree is ${declaration.value} also pairs)`,
168
+ `[primitive-env] resolved: ${current.name} (selected: ${current.source}` +
169
+ `${current.local ? `; machine-local, tree ${current.tree}` : ""})`,
170
+ `[primitive-env] config: ${current.configPath}`,
171
+ "",
172
+ `Run the pair you meant — PRIMITIVE_ENV=${declaration.value} <command> --mode ${mode}, ` +
173
+ `or 'primitive env use ${declaration.value}' — or change/remove ${EXPECTED_ENV_KEY} ` +
174
+ `in ${declaration.where}.`,
175
+ "",
176
+ `A mode declares this when its .env.${mode} carries values coupled to one backend, ` +
177
+ "so continuing would run this environment's identity with another's configuration.",
178
+ ].join("\n");
179
+ }
180
+ /**
181
+ * Stops the run when the mode's declaration names another environment. A
182
+ * machine-local environment (a child app) pairs with the mode that declares
183
+ * its tree, since it shares that tree's configuration.
184
+ */
185
+ function assertPairing(mode, envDir, current) {
186
+ const declaration = findPairing(mode, envDir);
187
+ if (declaration &&
188
+ declaration.value !== "" &&
189
+ declaration.value !== current.name &&
190
+ !(current.local && declaration.value === current.tree)) {
191
+ throw new Error(pairingMismatchMessage(mode, declaration, current));
192
+ }
193
+ }
194
+ export function primitiveEnv(options = {}) {
195
+ let resolved = null;
196
+ let effective = null;
197
+ let effectiveAppName;
198
+ let overriddenKeys = [];
199
+ let isServe = false;
200
+ /**
201
+ * What the pairing check below already looked at, so `configResolved` can
202
+ * tell whether Vite ended up loading `.env` files from somewhere else. Null
203
+ * when there was nothing to check (the identity hatch, or no config at all).
204
+ */
205
+ let pairingChecked = null;
206
+ const plugin = {
207
+ name: "primitive-env",
208
+ // Run before other plugins can read `import.meta.env`.
209
+ enforce: "pre",
210
+ config(config, configEnv) {
211
+ isServe = configEnv?.command === "serve";
212
+ pairingChecked = null;
213
+ const root = config?.root ?? process.cwd();
214
+ const mode = configEnv?.mode ?? "development";
215
+ // Anything already set — in a `.env` file for this mode, or in the
216
+ // process environment — is an explicit choice we do not overwrite.
217
+ const fileEnv = loadDotEnv(mode, root);
218
+ const explicit = {};
219
+ for (const key of IDENTITY_KEYS) {
220
+ const ambient = process.env[key];
221
+ // Skip what a previous resolution in this process published.
222
+ const value = ambient !== undefined && selfPublished.get(key) !== ambient
223
+ ? ambient
224
+ : fileEnv[key];
225
+ if (value !== undefined && value !== "")
226
+ explicit[key] = value;
227
+ }
228
+ let current;
229
+ try {
230
+ // Every environment names exactly one app, and the config is the only
231
+ // place that can say which (#3152). A `VITE_APP_ID` in the environment
232
+ // OVERRIDES the app the config names; it never supplies one the config
233
+ // left out — that would be the second source of app identity this
234
+ // project removed. The one escape below is a checkout with no config
235
+ // at all, where there is nothing to be a second source to.
236
+ current = resolveCore({
237
+ cwd: root,
238
+ explicitEnvName: options.primitiveEnv ?? null,
239
+ });
240
+ }
241
+ catch (err) {
242
+ if (err instanceof PrimitiveEnvError &&
243
+ err.kind === "missing-config" &&
244
+ explicit.VITE_APP_ID &&
245
+ explicit.VITE_API_URL) {
246
+ // Pure-env build (CI, or a legacy scaffold): nothing to resolve, and
247
+ // nothing missing. Say so rather than failing or silently no-opping.
248
+ console.warn("[primitive-env] No primitive/config.json found; using VITE_APP_ID / VITE_API_URL " +
249
+ "from the environment. Run 'primitive init' to make the project the source of truth.");
250
+ effectiveAppName = explicit.VITE_APP_NAME;
251
+ return {};
252
+ }
253
+ throw err;
254
+ }
255
+ // Before anything is defined or published: does this run pair the mode
256
+ // with the environment the app says it should? Skipped only for a
257
+ // complete pure-env identity — the same both-keys condition the
258
+ // missing-config path above uses. Overriding just one key leaves the
259
+ // other half coming from the resolved environment, which is the
260
+ // cross-wire itself rather than an escape from it.
261
+ if (!(explicit.VITE_APP_ID && explicit.VITE_API_URL)) {
262
+ const dir = envFileDir(config, root);
263
+ assertPairing(mode, dir, current);
264
+ pairingChecked = { root, mode, dir };
265
+ }
266
+ resolved = current;
267
+ effectiveAppName = explicit.VITE_APP_NAME ?? current.appName;
268
+ const values = {
269
+ VITE_APP_ID: current.appId,
270
+ VITE_API_URL: current.apiUrl,
271
+ VITE_WS_URL: current.wsUrl,
272
+ VITE_APP_NAME: current.appName,
273
+ };
274
+ const define = {
275
+ "import.meta.env.VITE_PRIMITIVE_ENV": JSON.stringify(current.name),
276
+ };
277
+ const overridden = [];
278
+ for (const key of IDENTITY_KEYS) {
279
+ if (explicit[key] !== undefined) {
280
+ overridden.push(key);
281
+ continue;
282
+ }
283
+ const value = values[key];
284
+ if (value !== undefined) {
285
+ define[`import.meta.env.${key}`] = JSON.stringify(value);
286
+ publish(key, value);
287
+ }
288
+ }
289
+ publish("VITE_PRIMITIVE_ENV", current.name);
290
+ overriddenKeys = overridden;
291
+ // What the app will actually use — an override wins, so it is what both
292
+ // the banner below and the browser console line have to report.
293
+ effective = {
294
+ apiUrl: explicit.VITE_API_URL ?? current.apiUrl,
295
+ wsUrl: explicit.VITE_WS_URL ?? current.wsUrl,
296
+ appId: explicit.VITE_APP_ID ?? current.appId,
297
+ appName: effectiveAppName,
298
+ };
299
+ if (options.logResolved !== false) {
300
+ console.log(formatTuple(current, effective, overridden));
301
+ }
302
+ if (overridden.length > 0) {
303
+ console.warn(`[primitive-env] Overridden by an explicit value in .env or the shell: ${overridden.join(", ")}. Remove it to use primitive/config.json (deploys reject these outright).`);
304
+ }
305
+ return { define };
306
+ },
307
+ /**
308
+ * The same question again, against the answer Vite settled on.
309
+ *
310
+ * `config` hooks run `enforce: "pre"` first and Vite merges what every
311
+ * plugin returns before it resolves `envDir` and loads the `.env` files —
312
+ * so a plugin ordered after this one can move the directory the
313
+ * declaration lives in, and the check above would have read the wrong
314
+ * place (silently finding nothing, which is the failure mode this whole
315
+ * guard exists to remove). Re-reading here costs one `existsSync` per
316
+ * file when nothing moved.
317
+ */
318
+ configResolved(config) {
319
+ if (!pairingChecked || !resolved)
320
+ return;
321
+ const dir = envFileDir(config, pairingChecked.root);
322
+ const mode = config?.mode ?? pairingChecked.mode;
323
+ if (dir === pairingChecked.dir && mode === pairingChecked.mode)
324
+ return;
325
+ assertPairing(mode, dir, resolved);
326
+ pairingChecked = { root: pairingChecked.root, mode, dir };
327
+ },
328
+ // Dev builds surface the pair at runtime too, so a browser tab can never
329
+ // leave you guessing which backend it is talking to. These are the values
330
+ // the app is really using, overrides included — a line reporting the
331
+ // config's values while the app talked to something else would be worse
332
+ // than no line at all.
333
+ transformIndexHtml() {
334
+ if (!isServe || !resolved || !effective)
335
+ return [];
336
+ const message = `%c[primitive] env=${resolved.name} api=${effective.apiUrl} ` +
337
+ `app=${effective.appId ?? "(unset)"} (${resolved.configPath})` +
338
+ (overriddenKeys.length > 0
339
+ ? ` overridden: ${overriddenKeys.join(", ")}`
340
+ : "");
341
+ return [
342
+ {
343
+ tag: "script",
344
+ injectTo: "head",
345
+ children: `console.info(${JSON.stringify(message)}, "color:#888");`,
346
+ },
347
+ ];
348
+ },
349
+ appName() {
350
+ return effectiveAppName;
351
+ },
352
+ resolved() {
353
+ return resolved;
354
+ },
355
+ };
356
+ return plugin;
357
+ }
358
+ /**
359
+ * The `.env` files Vite would load for this mode, in Vite's own precedence
360
+ * order, restricted to the keys this plugin cares about.
361
+ *
362
+ * Deliberately not Vite's `loadEnv`: `vite` is not a runtime dependency of
363
+ * this package, and reaching for it from a consumer's install layout is the
364
+ * kind of resolution that works on one package manager and not the next. The
365
+ * reader below is the same one `cf-deploy` uses for its strict check, so the
366
+ * build and the deploy can never disagree about what a `.env` file says.
367
+ */
368
+ export function loadDotEnv(mode, root) {
369
+ const files = [".env", ".env.local", `.env.${mode}`, `.env.${mode}.local`];
370
+ const out = {};
371
+ for (const file of files) {
372
+ Object.assign(out, parseDotEnvFile(join(root, file)));
373
+ }
374
+ return out;
375
+ }
376
+ /**
377
+ * Parses one `.env` file. Missing file → no keys.
378
+ *
379
+ * Quoting follows what Vite's own loader does, because a value read
380
+ * differently here than there is exactly the kind of disagreement this plugin
381
+ * exists to remove: a quoted value ends at its closing quote — a `#` inside it
382
+ * is content, and anything after it on the line is a comment — while an
383
+ * unquoted value ends at the first inline comment.
384
+ */
385
+ export function parseDotEnvFile(path) {
386
+ if (!existsSync(path))
387
+ return {};
388
+ const out = {};
389
+ for (const line of readFileSync(path, "utf-8").split(/\r?\n/)) {
390
+ const trimmed = line.trim();
391
+ if (!trimmed || trimmed.startsWith("#"))
392
+ continue;
393
+ const match = trimmed.match(/^(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/);
394
+ if (!match)
395
+ continue;
396
+ const value = match[2].trim();
397
+ const quote = value[0];
398
+ const close = quote === '"' || quote === "'" || quote === "`"
399
+ ? value.indexOf(quote, 1)
400
+ : -1;
401
+ out[match[1]] =
402
+ close === -1
403
+ ? value.replace(/\s+#.*$/, "").trim()
404
+ : value.slice(1, close);
405
+ }
406
+ return out;
407
+ }
408
+ //# sourceMappingURL=primitive-env-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive-env-plugin.js","sourceRoot":"","sources":["../../../src/lib/primitive-env-plugin.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,13 @@ export interface ProjectConfig {
65
65
  * PRIMITIVE_ENV is unset.
66
66
  */
67
67
  defaultEnvironment?: string;
68
+ /**
69
+ * Directories outside the config tree that server function code may import
70
+ * from, relative to the project root (#4502). Their files are bundled and
71
+ * typechecked at push and never stored with the function. `..` may climb as
72
+ * far as the git repository root around the project.
73
+ */
74
+ functionSources?: string[];
68
75
  /**
69
76
  * Named environments keyed by short name (e.g. "dev", "prod", "staging").
70
77
  */
@@ -20,6 +20,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
20
20
  import { dirname } from "path";
21
21
  import { detectInstall, installCommand, upgradeCommand, PRIMITIVE_CLI_PACKAGE, } from "./package-manager.js";
22
22
  import { findPrimitiveConfigPath, missingAppIdMessage, projectRootForConfigPath, PROJECT_CONFIG_DISPLAY_NAME, } from "./env-resolver-core.js";
23
+ import { FunctionSourcesShapeError, validateFunctionSourcesShape, } from "./function-source-roots.js";
23
24
  import { normalizeIosAppId, validateIosAppId } from "./ios-app-id.js";
24
25
  import { validateServerUrl } from "./server-url.js";
25
26
  import { normalizeWebUrl, validateWebUrl } from "./web-url.js";
@@ -192,7 +193,27 @@ export function validateProjectConfig(raw, sourcePath) {
192
193
  }
193
194
  defaultEnvironment = obj.defaultEnvironment || undefined;
194
195
  }
195
- return { version, defaultEnvironment, environments };
196
+ // Shape only; whether each directory exists and stays inside the
197
+ // repository is a fact about the disk, answered at push (#4502).
198
+ let functionSources;
199
+ if (obj.functionSources !== undefined) {
200
+ try {
201
+ functionSources = validateFunctionSourcesShape(obj.functionSources);
202
+ }
203
+ catch (err) {
204
+ if (!(err instanceof FunctionSourcesShapeError))
205
+ throw err;
206
+ throw new ProjectConfigError(`${err.message} (in ${PROJECT_CONFIG_DISPLAY_NAME})`, sourcePath);
207
+ }
208
+ }
209
+ // The key is carried only when declared, so a file without it saves byte
210
+ // for byte as it loaded.
211
+ return {
212
+ version,
213
+ defaultEnvironment,
214
+ ...(functionSources !== undefined ? { functionSources } : {}),
215
+ environments,
216
+ };
196
217
  }
197
218
  /**
198
219
  * Loads and validates the project config from a specific file path.
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../../src/lib/project-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../../src/lib/project-config.ts"],"names":[],"mappings":"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"}