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
@@ -55,8 +55,17 @@ import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
55
55
  import { tmpdir } from "node:os";
56
56
  import { join, resolve } from "node:path";
57
57
  import { PRIMITIVE_FUNCTIONS_MODULE } from "./function-bundle.js";
58
+ import { AUTH_FAMILIES, AUTHORIZE_HELPERS } from "./generated-config-surfaces.js";
58
59
  /** The manifest encoding, versioned with the envelope that carries it. */
59
60
  export const FUNCTION_MANIFEST_SCHEMA_VERSION = 2;
61
+ /**
62
+ * The version a FLAGGED build emits (#4730): version 2 plus the `authorize`
63
+ * block and `writeFamilies`. A bare-handler build keeps emitting version 2,
64
+ * byte for byte, so no legacy envelope hash moves.
65
+ */
66
+ export const FUNCTION_MANIFEST_AUTHORIZE_SCHEMA_VERSION = 3;
67
+ /** How much of one authorize source text the families scan reads. */
68
+ export const AUTHORIZE_SOURCE_SCAN_CAP = 256 * 1024;
60
69
  /** How long a tree's module scope may run before collection gives up. */
61
70
  export const COLLECT_TIMEOUT_MS = 20_000;
62
71
  /** A push that cannot proceed because its manifest could not be collected. */
@@ -66,6 +75,54 @@ export class FunctionCollectError extends Error {
66
75
  this.name = "FunctionCollectError";
67
76
  }
68
77
  }
78
+ /** The `auth.*` families each SDK helper reads by construction (#4730). */
79
+ const HELPER_AUTH_FAMILIES = {
80
+ allowAnyone: [],
81
+ allowCallers: ["auth.trigger"],
82
+ requireSignedIn: ["auth.user"],
83
+ requireRole: ["auth.user"],
84
+ requireMember: ["auth.user", "auth.memberships"],
85
+ requireCollectionRole: ["auth.user", "auth.collections"],
86
+ requireDocumentOwner: ["auth.user", "auth.doc"],
87
+ };
88
+ /**
89
+ * The `auth.*` families a hand-written authorize's source text reaches —
90
+ * #4730 behavior 4.
91
+ *
92
+ * A member-access scan, on whatever the author named the parameter, plus the
93
+ * families of any SDK helper the text calls by name (esbuild may suffix a
94
+ * renamed import, `requireRole2(`). `hasRole` compares `auth.user.role` and
95
+ * reads no membership. Imprecise by construction, as `families[]` is: a body
96
+ * that delegates to a function defined elsewhere records nothing, and an
97
+ * unrelated `.user` in the text counts. Each text is read to
98
+ * {@link AUTHORIZE_SOURCE_SCAN_CAP} only.
99
+ */
100
+ export function scanAuthorizeSources(sources) {
101
+ const families = new Set();
102
+ const members = [
103
+ [/\.user\b/, "auth.user"],
104
+ [/\.hasRole\s*\(/, "auth.user"],
105
+ [/\.trigger\b/, "auth.trigger"],
106
+ [/\.(?:memberships|isMemberOf|memberGroups|hasGroupRole)\s*\(/, "auth.memberships"],
107
+ [/\.collections\.resolveRole\s*\(/, "auth.collections"],
108
+ [/\.doc\s*\(/, "auth.doc"],
109
+ [/\.db\s*\(/, "auth.db"],
110
+ [/\.configVar\s*\(/, "auth.configVar"],
111
+ ];
112
+ const helperCall = new RegExp(`\\b(${Object.keys(HELPER_AUTH_FAMILIES).join("|")})\\d*\\s*\\(`, "g");
113
+ for (const source of sources) {
114
+ const text = String(source ?? "").slice(0, AUTHORIZE_SOURCE_SCAN_CAP);
115
+ for (const [pattern, family] of members) {
116
+ if (pattern.test(text))
117
+ families.add(family);
118
+ }
119
+ for (const match of text.matchAll(helperCall)) {
120
+ for (const family of HELPER_AUTH_FAMILIES[match[1]])
121
+ families.add(family);
122
+ }
123
+ }
124
+ return [...families].sort();
125
+ }
69
126
  /**
70
127
  * What the static scan reads out of a built bundle — #3279 behavior 10.
71
128
  *
@@ -149,6 +206,19 @@ export function scanBundleForManifest(bundle) {
149
206
  for (const call of bundle.matchAll(/\.documents\.records\.[A-Za-z_$][\w$]*\(/g)) {
150
207
  keyed(argumentText(bundle, call.index + call[0].length), "model");
151
208
  }
209
+ // #4803 — the db3 records' path parameter is `model` too, read the same way
210
+ // inside a `.db3.records.<verb>(` call; and a handle-level `.bulk(` on a
211
+ // `.db3(…)` chain names each op's model.
212
+ for (const call of bundle.matchAll(/\.db3\.records\.[A-Za-z_$][\w$]*\(/g)) {
213
+ keyed(argumentText(bundle, call.index + call[0].length), "model");
214
+ }
215
+ for (const call of bundle.matchAll(/\.db3\(/g)) {
216
+ const start = call.index + call[0].length;
217
+ const at = start + argumentText(bundle, start).length + 1;
218
+ const bulk = /^\s*\.bulk\(/.exec(bundle.slice(at, at + 200));
219
+ if (bulk)
220
+ keyed(argumentText(bundle, at + bulk[0].length), "model");
221
+ }
152
222
  // `<anything>.api.<family>` and the ctx helpers.
153
223
  for (const match of bundle.matchAll(/\.api\.([A-Za-z_$][\w$]*)/g)) {
154
224
  families.add(match[1]);
@@ -157,6 +227,8 @@ export function scanBundleForManifest(bundle) {
157
227
  [/\.db\(/, "databases"],
158
228
  // #3281 — the typed document handle, a binding over documents.records.*.
159
229
  [/\.doc\(/, "documents"],
230
+ // #4803 — the typed db3 handle, a binding over db3.records.*.
231
+ [/\.db3\(/, "db3"],
160
232
  [/\.integrations\.call\(/, "integrations"],
161
233
  [/\.prompts\.run\(/, "prompts"],
162
234
  [/\.secret\(/, "secrets"],
@@ -173,7 +245,62 @@ export function scanBundleForManifest(bundle) {
173
245
  models: [...models].sort(),
174
246
  families: [...families].sort(),
175
247
  dynamicModels,
248
+ writeFamilies: scanWriteFamilies(bundle),
249
+ };
250
+ }
251
+ /**
252
+ * The records write verbs; the SDK has no `create` (#4730, F4730-DESIGN-003).
253
+ * `increment` is the db3 records' (#4803); no database or document handle has
254
+ * one, so it counts on a db3 chain alone.
255
+ */
256
+ const RECORD_WRITE_VERBS = ["save", "patch", "delete", "batch", "bulk", "increment"];
257
+ /**
258
+ * The families on which the bundle calls a write or send verb — #4730
259
+ * behavior 5, version 3's `writeFamilies`.
260
+ *
261
+ * A records verb counts only on a chain that names its family: a direct
262
+ * `.api.<family>.records.<verb>(`, or a typed handle `.db(…)`/`.doc(…)`/
263
+ * `.db3(…)` (#4803), optionally through `.model(…)`, then `.<verb>(`. An
264
+ * unrelated object's `save` is not a write. The send and start verbs are read
265
+ * by their member path. A handle held in a variable is not followed:
266
+ * imprecise by construction, as the rest of the scan is.
267
+ */
268
+ function scanWriteFamilies(bundle) {
269
+ const families = new Set();
270
+ const verbs = RECORD_WRITE_VERBS.join("|");
271
+ for (const match of bundle.matchAll(new RegExp(`\\.api\\.([A-Za-z_$][\\w$]*)\\.records\\.(?:${verbs})\\(`, "g"))) {
272
+ families.add(match[1]);
273
+ }
274
+ // Past one call's argument list: the index just after its closing paren.
275
+ const pastCall = (from) => {
276
+ const args = argumentText(bundle, from);
277
+ return from + args.length + 1;
176
278
  };
279
+ const verbAt = new RegExp(`^\\s*\\.(?:${verbs})\\(`);
280
+ const modelAt = /^\s*\.model\(/;
281
+ const handleFamily = { db: "databases", doc: "documents", db3: "db3" };
282
+ for (const call of bundle.matchAll(/\.(db3|db|doc)\(/g)) {
283
+ let at = pastCall(call.index + call[0].length);
284
+ const model = modelAt.exec(bundle.slice(at, at + 200));
285
+ if (model)
286
+ at = pastCall(at + model[0].length);
287
+ if (verbAt.test(bundle.slice(at, at + 200))) {
288
+ families.add(handleFamily[call[1]]);
289
+ }
290
+ }
291
+ const sends = [
292
+ [/\.users\.send\(/, "users"],
293
+ [/\.connections\.send\(/, "connections"],
294
+ [/\.channels\.publish\(/, "channels"],
295
+ [/\.email\.send\(/, "email"],
296
+ [/\.functions\.start\(/, "functions"],
297
+ [/\.locks\.(?:acquire|withLock)\(/, "locks"],
298
+ ];
299
+ for (const [pattern, family] of sends) {
300
+ if (pattern.test(bundle))
301
+ families.add(family);
302
+ }
303
+ return [...families].sort();
177
304
  }
178
305
  /** The line prefix the child frames its result with. */
179
306
  const RESULT_SENTINEL = "__PRIMITIVE_COLLECT__";
@@ -298,15 +425,200 @@ export function defineFunction(keyOrHandler, maybeHandler) {
298
425
  // (D3281-SO-006). The registry entry is the child's report of what the
299
426
  // module scope did; it is not what the check consults, because a keyed
300
427
  // handler an entry merely imports for composition registers here too.
301
- if (typeof keyOrHandler === "string" || maybeHandler !== undefined) {
302
- registry.push({ kind: "function", name: String(keyOrHandler) });
303
- const wrapped = function (...args) {
304
- return maybeHandler(...args);
305
- };
306
- wrapped.functionKey = String(keyOrHandler);
307
- return wrapped;
428
+ const keyed = typeof keyOrHandler === "string" || maybeHandler !== undefined;
429
+ const target = keyed ? maybeHandler : keyOrHandler;
430
+ // #4717 — the OBJECT form, \`{ authorize, handler }\`, returns the same
431
+ // wrapper carrying \`authorize\`, which is what the runner reports. Its shape
432
+ // is checked as the baked SDK checks it, so a definition the sandbox would
433
+ // refuse at load is refused here, at push, with the same sentence.
434
+ let authorize;
435
+ let handler = target;
436
+ if (target !== null && typeof target === "object") {
437
+ const signature = keyed
438
+ ? "defineFunction(key, { authorize, handler })"
439
+ : "defineFunction({ authorize, handler })";
440
+ for (const name of Object.keys(target)) {
441
+ if (name !== "authorize" && name !== "handler") {
442
+ throw new TypeError(
443
+ signature + ": unknown key '" + name + "'; the object form takes authorize and handler"
444
+ );
445
+ }
446
+ }
447
+ if (typeof target.handler !== "function") {
448
+ throw new TypeError(signature + ": handler must be a function");
449
+ }
450
+ if (typeof target.authorize !== "function") {
451
+ throw new TypeError(signature + ": authorize must be a function");
452
+ }
453
+ authorize = target.authorize;
454
+ handler = target.handler;
455
+ }
456
+ if (!keyed && authorize === undefined) return keyOrHandler;
457
+ if (keyed) registry.push({ kind: "function", name: String(keyOrHandler) });
458
+ const wrapped = function (...args) {
459
+ return handler(...args);
460
+ };
461
+ if (keyed) wrapped.functionKey = String(keyOrHandler);
462
+ if (authorize !== undefined) wrapped.authorize = authorize;
463
+ return wrapped;
464
+ }
465
+ // #4717 — inert decisions: collection runs no \`authorize\`, so nothing reads
466
+ // them, but a module scope that builds one must still collect.
467
+ export function allow(resolved) {
468
+ return Object.freeze({ decision: "allow", resolved: resolved === undefined ? null : resolved });
469
+ }
470
+ export function deny(code, message, options) {
471
+ return Object.freeze({
472
+ decision: "deny",
473
+ code,
474
+ message: typeof message === "string" ? message : null,
475
+ expose: !!(options && options.expose === true),
476
+ });
477
+ }
478
+ // #4721 — \`fail\` throws its real error, so a module scope that calls it
479
+ // is refused here as the push probe refuses it. The helpers check their
480
+ // arguments with the baked SDK's sentences (\`sdk-core.ts\`), so a tree
481
+ // collects exactly when the probe would load it, and each returns an inert
482
+ // \`authorize\`: collection runs none, and one called anyway says so.
483
+ export function fail(code, message) {
484
+ if (typeof code !== "string" || code.length === 0) {
485
+ throw new TypeError("fail(code, message): code must be a non-empty string");
486
+ }
487
+ if (message !== undefined && message !== null && typeof message !== "string") {
488
+ throw new TypeError("fail(code, message): message must be a string");
489
+ }
490
+ const detail = typeof message === "string" && message.length > 0 ? message : null;
491
+ const error = new Error(detail === null ? code : code + ": " + detail);
492
+ error.name = "FunctionFailure";
493
+ error.code = code;
494
+ error.detail = detail;
495
+ throw error;
496
+ }
497
+ const APP_ROLES = ["owner", "admin", "member"];
498
+ const GROUP_ROLES = ["owner", "manager", "member"];
499
+ const COLLECTION_ROLES = ["owner", "manager", "editor", "contributor", "viewer"];
500
+ const CALLER_KEYS = ["webhook", "cron", "manual", "functions", "agents", "users", "db3"];
501
+ function requireRung(signature, name, ladder, role) {
502
+ if (!ladder.includes(role)) {
503
+ throw new TypeError(
504
+ signature + ": " + name + " must be one of " + ladder.join(", ") + ", not " + JSON.stringify(role)
505
+ );
308
506
  }
309
- return keyOrHandler;
507
+ }
508
+ function requireSelector(signature, name, what, selector) {
509
+ if (typeof selector !== "function") {
510
+ throw new TypeError(
511
+ signature + ": " + name + " must be a function that answers the " + what + " from the input"
512
+ );
513
+ }
514
+ }
515
+ // #4730 — each inert closure carries a \`__collect\` marker the runner reports
516
+ // for the manifest's \`authorize\` block: which helper built it, the
517
+ // \`auth.*\` families it reads by construction, and the source text of any
518
+ // hand-written rule it wraps, which the CLI scans.
519
+ const HELPER_FAMILIES = ${JSON.stringify(HELPER_AUTH_FAMILIES)};
520
+ function inertAuthorize(helper, extra) {
521
+ const inert = async () => {
522
+ throw new Error(
523
+ helper + "() was called during manifest collection; an authorize only runs inside a real invocation."
524
+ );
525
+ };
526
+ const marker = {
527
+ helper,
528
+ public: helper === "allowAnyone",
529
+ callers: null,
530
+ families: HELPER_FAMILIES[helper].slice(),
531
+ sources: [],
532
+ };
533
+ Object.defineProperty(inert, "__collect", { value: Object.assign(marker, extra || {}) });
534
+ return inert;
535
+ }
536
+ function sourceOf(fn) {
537
+ try {
538
+ return String(Function.prototype.toString.call(fn)).slice(0, ${AUTHORIZE_SOURCE_SCAN_CAP});
539
+ } catch {
540
+ return "";
541
+ }
542
+ }
543
+ function markerOf(fn) {
544
+ const marker = fn && fn.__collect;
545
+ if (marker && typeof marker === "object") return marker;
546
+ return { helper: null, public: false, callers: null, families: [], sources: [sourceOf(fn)] };
547
+ }
548
+ export function allowAnyone() { return inertAuthorize("allowAnyone"); }
549
+ export function requireSignedIn() { return inertAuthorize("requireSignedIn"); }
550
+ export function requireRole(role) {
551
+ requireRung("requireRole(role)", "role", APP_ROLES, role);
552
+ return inertAuthorize("requireRole");
553
+ }
554
+ export function requireMember(groupIdOf, role) {
555
+ const signature = "requireMember(groupIdOf, role)";
556
+ requireSelector(signature, "groupIdOf", "group id", groupIdOf);
557
+ if (role !== undefined) requireRung(signature, "role", GROUP_ROLES, role);
558
+ return inertAuthorize("requireMember");
559
+ }
560
+ export function requireCollectionRole(collectionIdOf, minRole) {
561
+ const signature = "requireCollectionRole(collectionIdOf, minRole)";
562
+ requireSelector(signature, "collectionIdOf", "collection id", collectionIdOf);
563
+ requireRung(signature, "minRole", COLLECTION_ROLES, minRole);
564
+ return inertAuthorize("requireCollectionRole");
565
+ }
566
+ export function requireDocumentOwner(documentIdOf) {
567
+ requireSelector("requireDocumentOwner(documentIdOf)", "documentIdOf", "document id", documentIdOf);
568
+ return inertAuthorize("requireDocumentOwner");
569
+ }
570
+ export function allowCallers(rules) {
571
+ const signature = "allowCallers(rules)";
572
+ if (rules === null || typeof rules !== "object" || Array.isArray(rules)) {
573
+ throw new TypeError(signature + ": rules must be an object");
574
+ }
575
+ for (const name of Object.keys(rules)) {
576
+ if (!CALLER_KEYS.includes(name)) {
577
+ throw new TypeError(
578
+ signature + ": unknown key '" + name +
579
+ "'; the rules take webhook, cron, manual, functions, agents, users and db3"
580
+ );
581
+ }
582
+ }
583
+ for (const name of ["webhook", "cron", "manual", "db3"]) {
584
+ if (rules[name] !== undefined && typeof rules[name] !== "boolean") {
585
+ throw new TypeError(signature + ": " + name + " must be a boolean");
586
+ }
587
+ }
588
+ const functions = rules.functions;
589
+ if (
590
+ functions !== undefined &&
591
+ (!Array.isArray(functions) || functions.some((key) => typeof key !== "string" || key.length === 0))
592
+ ) {
593
+ throw new TypeError(signature + ": functions must be an array of function keys");
594
+ }
595
+ if (rules.agents !== undefined && typeof rules.agents !== "boolean" && typeof rules.agents !== "function") {
596
+ throw new TypeError(signature + ": agents must be true, false or an authorize function");
597
+ }
598
+ if (rules.users !== undefined && typeof rules.users !== "function") {
599
+ throw new TypeError(signature + ": users must be an authorize function, such as requireSignedIn()");
600
+ }
601
+ const arms = [rules.users, rules.agents].filter((arm) => typeof arm === "function").map(markerOf);
602
+ const families = HELPER_FAMILIES.allowCallers.slice();
603
+ const sources = [];
604
+ for (const arm of arms) {
605
+ families.push(...(arm.families || []));
606
+ sources.push(...(arm.sources || []));
607
+ }
608
+ return inertAuthorize("allowCallers", {
609
+ public: arms.some((arm) => arm.helper === "allowAnyone"),
610
+ callers: {
611
+ webhook: rules.webhook === true,
612
+ cron: rules.cron === true,
613
+ manual: rules.manual === true,
614
+ functions: Array.isArray(functions) ? functions.map(String) : [],
615
+ agents: rules.agents === true ? true : typeof rules.agents === "function" ? "rule" : false,
616
+ users: typeof rules.users === "function" ? "rule" : false,
617
+ db3: rules.db3 === true,
618
+ },
619
+ families,
620
+ sources,
621
+ });
310
622
  }
311
623
  export function pMap(items, mapper) { return Promise.all((items || []).map(mapper)); }
312
624
  export function ulid() { return "00000000000000000000000000"; }
@@ -317,6 +629,9 @@ export const stepPolicy = new Proxy({}, { get: () => ({}) });
317
629
  // threw would refuse exactly the functions the assertion exists for — and the
318
630
  // placement the guide teaches is module scope, which collection runs.
319
631
  export function assertRuntime() {}
632
+ // #4442 — \`assertTrigger\` is inert for the same reason: collection invokes no
633
+ // handler, so there is no trigger for it to compare.
634
+ export function assertTrigger() {}
320
635
  export class FunctionRuntimeError extends Error {
321
636
  constructor(message, runtime, required) {
322
637
  super(message);
@@ -328,11 +643,22 @@ export class FunctionRuntimeError extends Error {
328
643
  export default {
329
644
  SDK_STUB_VERSION,
330
645
  defineFunction,
646
+ allow,
647
+ deny,
648
+ fail,
649
+ allowAnyone,
650
+ allowCallers,
651
+ requireSignedIn,
652
+ requireRole,
653
+ requireMember,
654
+ requireCollectionRole,
655
+ requireDocumentOwner,
331
656
  defineQuery,
332
657
  defineMutation,
333
658
  pMap,
334
659
  ulid,
335
660
  assertRuntime,
661
+ assertTrigger,
336
662
  FunctionRuntimeError,
337
663
  };
338
664
  `;
@@ -376,8 +702,34 @@ function handlerOf(mod) {
376
702
  const exported = handlerOf(entry);
377
703
  const exportedKey =
378
704
  exported && typeof exported.functionKey === "string" ? exported.functionKey : null;
705
+ // #4717 — whether that same callable carries \`authorize\`: the object
706
+ // form's wrapper does. Reported beside the key, never in the manifest.
707
+ const authorize = !!exported && typeof exported.authorize === "function";
708
+ // #4730 — what the manifest's \`authorize\` block records: the helper
709
+ // marker the stub attached, or the hand-written function's own text.
710
+ let authorizeCollect = null;
711
+ if (authorize) {
712
+ const marker = exported.authorize.__collect;
713
+ if (marker && typeof marker === "object") {
714
+ authorizeCollect = marker;
715
+ } else {
716
+ let text = "";
717
+ try {
718
+ text = String(Function.prototype.toString.call(exported.authorize));
719
+ } catch {}
720
+ authorizeCollect = {
721
+ helper: null,
722
+ public: false,
723
+ callers: null,
724
+ families: [],
725
+ sources: [text.slice(0, ${AUTHORIZE_SOURCE_SCAN_CAP})],
726
+ };
727
+ }
728
+ }
379
729
  process.stdout.write(
380
- sentinel + JSON.stringify({ ok: true, registry, exportedKey }) + "\\n"
730
+ sentinel +
731
+ JSON.stringify({ ok: true, registry, exportedKey, authorize, authorizeCollect }) +
732
+ "\\n"
381
733
  );
382
734
  } catch (error) {
383
735
  process.stdout.write(
@@ -466,6 +818,14 @@ async function buildCollectBundle(options) {
466
818
  * of the envelope, so "later" would mean a different version).
467
819
  */
468
820
  export async function collectFunctionManifest(options) {
821
+ return (await collectFunction(options)).manifest;
822
+ }
823
+ /**
824
+ * Collect one function's manifest and its local `authorize` answer (#4717),
825
+ * from the one run of its module scope. Throws as `collectFunctionManifest`
826
+ * does.
827
+ */
828
+ export async function collectFunction(options) {
469
829
  const treeRoot = resolve(options.configDir);
470
830
  const timeoutMs = options.timeoutMs ?? COLLECT_TIMEOUT_MS;
471
831
  const code = await buildCollectBundle({
@@ -490,7 +850,10 @@ export async function collectFunctionManifest(options) {
490
850
  throw new FunctionCollectError(`function '${options.functionKey}': manifest collection failed while ` +
491
851
  `running the tree's module scope: ${framed.error}`);
492
852
  }
493
- return manifestFrom(framed.registry ?? [], options.functionKey, scanBundleForManifest(options.bundle ?? code), framed.exportedKey ?? null);
853
+ return {
854
+ manifest: manifestFrom(framed.registry ?? [], options.functionKey, scanBundleForManifest(options.bundle ?? code), framed.exportedKey ?? null, framed.authorize === true ? framed.authorizeCollect ?? null : undefined),
855
+ authorize: framed.authorize === true,
856
+ };
494
857
  }
495
858
  finally {
496
859
  rmSync(scratch, { recursive: true, force: true });
@@ -546,7 +909,7 @@ function runCollectChild(options) {
546
909
  });
547
910
  }
548
911
  /** Normalize and validate what the child recorded, and merge in the scan. */
549
- function manifestFrom(registry, functionKey, scanned, exportedKey) {
912
+ function manifestFrom(registry, functionKey, scanned, exportedKey, authorizeCollect) {
550
913
  // #3281 — the key the entry's EXPORTED handler carries. The compiler holds
551
914
  // the key to the TREE (an undeclared key does not compile); this holds it to
552
915
  // the FILE, before any request is made, with the runtime value — a key
@@ -599,12 +962,64 @@ function manifestFrom(registry, functionKey, scanned, exportedKey) {
599
962
  for (const query of queries)
600
963
  for (const model of query.models)
601
964
  models.add(model);
602
- return {
965
+ const manifest = {
603
966
  schemaVersion: FUNCTION_MANIFEST_SCHEMA_VERSION,
604
967
  queries,
605
968
  models: [...models].sort(),
606
969
  families: scanned.families,
607
970
  dynamicModels: scanned.dynamicModels,
608
971
  };
972
+ // #4730 — a flagged build's version 3. `undefined` is a bare handler, which
973
+ // keeps the version-2 document above byte for byte.
974
+ if (authorizeCollect === undefined)
975
+ return manifest;
976
+ return {
977
+ ...manifest,
978
+ schemaVersion: FUNCTION_MANIFEST_AUTHORIZE_SCHEMA_VERSION,
979
+ writeFamilies: scanned.writeFamilies ?? [],
980
+ authorize: authorizeBlockFrom(authorizeCollect),
981
+ };
982
+ }
983
+ /**
984
+ * Normalize what the child reported into the manifest's `authorize` block.
985
+ *
986
+ * The marker comes from the tenant's own module scope, so it is honest-code
987
+ * evidence like the rest of the manifest: anything outside the grammar's
988
+ * vocabulary is dropped here rather than refused at the server.
989
+ */
990
+ function authorizeBlockFrom(collected) {
991
+ const helpers = AUTHORIZE_HELPERS;
992
+ const helper = collected && typeof collected.helper === "string" && helpers.includes(collected.helper)
993
+ ? collected.helper
994
+ : null;
995
+ const known = new Set(AUTH_FAMILIES);
996
+ const families = new Set((Array.isArray(collected?.families) ? collected.families : []).filter((f) => known.has(String(f))));
997
+ const sources = Array.isArray(collected?.sources) ? collected.sources.map(String) : [];
998
+ for (const family of scanAuthorizeSources(sources))
999
+ families.add(family);
1000
+ const raw = helper === "allowCallers" ? collected?.callers : null;
1001
+ const callers = raw && typeof raw === "object"
1002
+ ? {
1003
+ webhook: raw.webhook === true,
1004
+ cron: raw.cron === true,
1005
+ manual: raw.manual === true,
1006
+ functions: [
1007
+ ...new Set((Array.isArray(raw.functions) ? raw.functions : []).map(String)),
1008
+ ].sort(),
1009
+ agents: (raw.agents === true ? true : raw.agents === "rule" ? "rule" : false),
1010
+ users: (raw.users === "rule" ? "rule" : false),
1011
+ // #4803 — written only when the door is open, so a manifest that
1012
+ // admits no db3 flush is byte-identical to one built before the
1013
+ // door existed; a reader takes absent as closed.
1014
+ ...(raw.db3 === true ? { db3: true } : {}),
1015
+ }
1016
+ : null;
1017
+ return {
1018
+ present: true,
1019
+ public: helper !== null && collected?.public === true,
1020
+ helper,
1021
+ callers,
1022
+ families: [...families].sort(),
1023
+ };
609
1024
  }
610
1025
  //# sourceMappingURL=function-collect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"function-collect.js","sourceRoot":"","sources":["../../../src/lib/function-collect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,8EAA8E;AAC9E,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AA2BD;;;;;;;;;;;;;;;;;GAiBG;AACH,gFAAgF;AAChF,SAAS,YAAY,CAAC,MAAc,EAAE,IAAY;IAChD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aAC/C,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChD,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAKlD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,mEAAmE;IACnE,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,wDAAwD;IACxD,MAAM,OAAO,GAAG,kDAAkD,CAAC;IACnE,MAAM,MAAM,GAAG,CAAC,IAAY,EAAiB,EAAE;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC,CAAC;IAEF,2EAA2E;IAC3E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,aAAa,GAAG,IAAI,CAAC;IACxD,CAAC;IACD,wEAAwE;IACxE,0EAA0E;IAC1E,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,qBAAqB,GAAG,gCAAgC,EACxD,GAAG,CACJ,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,IAAI,KAAK,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC/B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,aAAa,GAAG,IAAI,CAAC;QACrD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,WAAW,GAAG,cAAc,EAAE,GAAG,CAAC,CAAC;QAChE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,aAAa,GAAG,IAAI,CAAC;IACjD,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3B,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,2CAA2C,CAAC,EAAE,CAAC;QAChF,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,KAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,iDAAiD;IACjD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,OAAO,GAA4B;QACvC,CAAC,QAAQ,EAAE,WAAW,CAAC;QACvB,yEAAyE;QACzE,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,wBAAwB,EAAE,cAAc,CAAC;QAC1C,CAAC,kBAAkB,EAAE,SAAS,CAAC;QAC/B,CAAC,YAAY,EAAE,SAAS,CAAC;QACzB,CAAC,eAAe,EAAE,YAAY,CAAC;QAC/B,CAAC,iBAAiB,EAAE,OAAO,CAAC;QAC5B,CAAC,uBAAuB,EAAE,aAAa,CAAC;QACxC,CAAC,qCAAqC,EAAE,UAAU,CAAC;KACpD,CAAC;IACF,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE;QAC1B,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE;QAC9B,aAAa;KACd,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJlC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,aAAa,GAAG;mBACH,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCjD,CAAC;AAEF;;;;;GAKG;AACH,SAAS,WAAW;IAClB,MAAM,GAAG,GAAsB;QAC7B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,eAAe;QACzC,QAAQ,EAAE,YAAY;KACvB,CAAC;IACF,kDAAkD;IAClD,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAIjC;IACC,MAAM,UAAU,GAAmB;QACjC,IAAI,EAAE,kCAAkC;QACxC,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,0BAA0B;gBAChC,SAAS,EAAE,wBAAwB;aACpC,CAAC,CAAC,CAAC;YACJ,KAAK,CAAC,MAAM,CACV,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,wBAAwB,EAAE,EACrD,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACxD,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;YACjC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,aAAa,EAAE,OAAO,CAAC,QAAQ;YAC/B,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAoB,CAC5B,aAAa,OAAO,CAAC,WAAW,2CAA2C,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,YAAY,oBAAoB;YAAE,MAAM,KAAK,CAAC;QACvD,MAAM,QAAQ,GAAa,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YACrD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,IAAI,aAAa,EAAE,CAAC;YACtG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,oBAAoB,CAC5B,aAAa,OAAO,CAAC,WAAW,qDAAqD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAW7C;IACC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC;QACpC,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/C,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,UAAU;YACV,UAAU;YACV,QAAQ;YACR,SAAS;YACT,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,oBAAoB,CAC5B,aAAa,OAAO,CAAC,WAAW,sCAAsC;gBACpE,oCAAoC,MAAM,CAAC,KAAK,EAAE,CACrD,CAAC;QACJ,CAAC;QACD,OAAO,YAAY,CACjB,MAAM,CAAC,QAAQ,IAAI,EAAE,EACrB,OAAO,CAAC,WAAW,EACnB,qBAAqB,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,EAC7C,MAAM,CAAC,WAAW,IAAI,IAAI,CAC3B,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAUD,SAAS,eAAe,CAAC,OAMxB;IACC,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,CAAC,QAAQ,EAChB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,EACxC;YACE,GAAG,EAAE,OAAO,CAAC,QAAQ;YACrB,GAAG,EAAE,WAAW,EAAE;YAClB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CACF,CAAC;QAEF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;YAChC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,EAAE,EAAE,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,EAAE,CACV,aAAa,CACX,IAAI,oBAAoB,CACtB,aAAa,OAAO,CAAC,WAAW,mCAAmC;gBACjE,SAAS,OAAO,CAAC,SAAS,wCAAwC;gBAClE,+DAA+D;gBAC/D,8BAA8B,CACjC,CACF,CACF,CAAC;QACJ,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1B,MAAM,CAAC,GAAG,EAAE,CACV,aAAa,CACX,IAAI,oBAAoB,CACtB,aAAa,OAAO,CAAC,WAAW,mCAAmC;YACjE,UAAU,KAAK,CAAC,OAAO,EAAE,CAC5B,CACF,CACF,CACF,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CACrB,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,IAAI,GAAG,MAAM;iBAChB,KAAK,CAAC,IAAI,CAAC;iBACX,OAAO,EAAE;iBACT,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,aAAa,CACX,IAAI,oBAAoB,CACtB,aAAa,OAAO,CAAC,WAAW,kCAAkC;oBAChE,WAAW;oBACX,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAC7D,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,aAAa,CACX,IAAI,oBAAoB,CACtB,aAAa,OAAO,CAAC,WAAW,kCAAkC;oBAChE,sBAAsB,KAAK,CAAC,OAAO,EAAE,CACxC,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,SAAS,YAAY,CACnB,QAAe,EACf,WAAmB,EACnB,OAAyE,EACzE,WAA0B;IAE1B,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,+DAA+D;IAC/D,EAAE;IACF,yEAAyE;IACzE,qEAAqE;IACrE,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,6DAA6D;IAC7D,EAAE;IACF,wEAAwE;IACxE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,oBAAoB,CAC5B,aAAa,WAAW,wCAAwC,WAAW,SAAS;YAClF,yDAAyD,WAAW,YAAY;YAChF,yBAAyB,WAAW,kDAAkD,CACzF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU;YAAE,SAAS;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,oBAAoB,CAC5B,aAAa,WAAW,gCAAgC,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,uEAAuE;YACvE,sDAAsD;YACtD,MAAM,IAAI,oBAAoB,CAC5B,aAAa,WAAW,OAAO,IAAI,+BAA+B;gBAChE,mDAAmD,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;YACvD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC7E,KAAK,EACH,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC3C,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACtC,CAAC,CAAC,IAAI;YACV,YAAY,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI;SAC3C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO;QAAE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjF,OAAO;QACL,aAAa,EAAE,gCAAgC;QAC/C,OAAO;QACP,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"function-collect.js","sourceRoot":"","sources":["../../../src/lib/function-collect.ts"],"names":[],"mappings":"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"}