@x12i/catalox 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/README.md +1 -0
  2. package/dist/src/catalox/backup-data.d.ts +1 -0
  3. package/dist/src/catalox/backup-data.d.ts.map +1 -1
  4. package/dist/src/catalox/backup-data.js +69 -5
  5. package/dist/src/catalox/backup-data.js.map +1 -1
  6. package/dist/src/catalox/create-catalox.d.ts.map +1 -1
  7. package/dist/src/catalox/create-catalox.js +4 -1
  8. package/dist/src/catalox/create-catalox.js.map +1 -1
  9. package/dist/src/catalox/record-history.d.ts.map +1 -1
  10. package/dist/src/catalox/record-history.js +34 -0
  11. package/dist/src/catalox/record-history.js.map +1 -1
  12. package/dist/src/cli/index.js +13 -24
  13. package/dist/src/cli/index.js.map +1 -1
  14. package/dist/src/firebase/catalog-item-history-store.d.ts.map +1 -1
  15. package/dist/src/firebase/catalog-item-history-store.js +35 -6
  16. package/dist/src/firebase/catalog-item-history-store.js.map +1 -1
  17. package/package.json +6 -3
  18. package/dist/adapters/api/api-adapter.d.ts +0 -22
  19. package/dist/adapters/api/api-adapter.d.ts.map +0 -1
  20. package/dist/adapters/api/api-adapter.js +0 -60
  21. package/dist/adapters/api/api-adapter.js.map +0 -1
  22. package/dist/adapters/api/index.d.ts +0 -2
  23. package/dist/adapters/api/index.d.ts.map +0 -1
  24. package/dist/adapters/api/index.js +0 -2
  25. package/dist/adapters/api/index.js.map +0 -1
  26. package/dist/adapters/mongo/index.d.ts +0 -3
  27. package/dist/adapters/mongo/index.d.ts.map +0 -1
  28. package/dist/adapters/mongo/index.js +0 -3
  29. package/dist/adapters/mongo/index.js.map +0 -1
  30. package/dist/adapters/mongo/mongo-adapter.d.ts +0 -21
  31. package/dist/adapters/mongo/mongo-adapter.d.ts.map +0 -1
  32. package/dist/adapters/mongo/mongo-adapter.js +0 -57
  33. package/dist/adapters/mongo/mongo-adapter.js.map +0 -1
  34. package/dist/adapters/mongo/resolve-db.d.ts +0 -4
  35. package/dist/adapters/mongo/resolve-db.d.ts.map +0 -1
  36. package/dist/adapters/mongo/resolve-db.js +0 -10
  37. package/dist/adapters/mongo/resolve-db.js.map +0 -1
  38. package/dist/bindings/index.d.ts +0 -2
  39. package/dist/bindings/index.d.ts.map +0 -1
  40. package/dist/bindings/index.js +0 -3
  41. package/dist/bindings/index.js.map +0 -1
  42. package/dist/catalox/authorization.d.ts +0 -11
  43. package/dist/catalox/authorization.d.ts.map +0 -1
  44. package/dist/catalox/authorization.js +0 -37
  45. package/dist/catalox/authorization.js.map +0 -1
  46. package/dist/catalox/catalox.d.ts +0 -80
  47. package/dist/catalox/catalox.d.ts.map +0 -1
  48. package/dist/catalox/catalox.js +0 -492
  49. package/dist/catalox/catalox.js.map +0 -1
  50. package/dist/catalox/context.d.ts +0 -17
  51. package/dist/catalox/context.d.ts.map +0 -1
  52. package/dist/catalox/context.js +0 -21
  53. package/dist/catalox/context.js.map +0 -1
  54. package/dist/catalox/identity.d.ts +0 -7
  55. package/dist/catalox/identity.d.ts.map +0 -1
  56. package/dist/catalox/identity.js +0 -26
  57. package/dist/catalox/identity.js.map +0 -1
  58. package/dist/catalox/index.d.ts +0 -6
  59. package/dist/catalox/index.d.ts.map +0 -1
  60. package/dist/catalox/index.js +0 -6
  61. package/dist/catalox/index.js.map +0 -1
  62. package/dist/catalox/json-io.d.ts +0 -3
  63. package/dist/catalox/json-io.d.ts.map +0 -1
  64. package/dist/catalox/json-io.js +0 -7
  65. package/dist/catalox/json-io.js.map +0 -1
  66. package/dist/contracts/adapters.d.ts +0 -40
  67. package/dist/contracts/adapters.d.ts.map +0 -1
  68. package/dist/contracts/adapters.js +0 -2
  69. package/dist/contracts/adapters.js.map +0 -1
  70. package/dist/contracts/apps.d.ts +0 -11
  71. package/dist/contracts/apps.d.ts.map +0 -1
  72. package/dist/contracts/apps.js +0 -2
  73. package/dist/contracts/apps.js.map +0 -1
  74. package/dist/contracts/bindings.d.ts +0 -26
  75. package/dist/contracts/bindings.d.ts.map +0 -1
  76. package/dist/contracts/bindings.js +0 -2
  77. package/dist/contracts/bindings.js.map +0 -1
  78. package/dist/contracts/bootstrap.d.ts +0 -7
  79. package/dist/contracts/bootstrap.d.ts.map +0 -1
  80. package/dist/contracts/bootstrap.js +0 -2
  81. package/dist/contracts/bootstrap.js.map +0 -1
  82. package/dist/contracts/catalogs.d.ts +0 -51
  83. package/dist/contracts/catalogs.d.ts.map +0 -1
  84. package/dist/contracts/catalogs.js +0 -2
  85. package/dist/contracts/catalogs.js.map +0 -1
  86. package/dist/contracts/config.d.ts +0 -14
  87. package/dist/contracts/config.d.ts.map +0 -1
  88. package/dist/contracts/config.js +0 -2
  89. package/dist/contracts/config.js.map +0 -1
  90. package/dist/contracts/context.d.ts +0 -11
  91. package/dist/contracts/context.d.ts.map +0 -1
  92. package/dist/contracts/context.js +0 -2
  93. package/dist/contracts/context.js.map +0 -1
  94. package/dist/contracts/descriptors.d.ts +0 -73
  95. package/dist/contracts/descriptors.d.ts.map +0 -1
  96. package/dist/contracts/descriptors.js +0 -2
  97. package/dist/contracts/descriptors.js.map +0 -1
  98. package/dist/contracts/discovery.d.ts +0 -25
  99. package/dist/contracts/discovery.d.ts.map +0 -1
  100. package/dist/contracts/discovery.js +0 -2
  101. package/dist/contracts/discovery.js.map +0 -1
  102. package/dist/contracts/errors.d.ts +0 -32
  103. package/dist/contracts/errors.d.ts.map +0 -1
  104. package/dist/contracts/errors.js +0 -53
  105. package/dist/contracts/errors.js.map +0 -1
  106. package/dist/contracts/ids.d.ts +0 -7
  107. package/dist/contracts/ids.d.ts.map +0 -1
  108. package/dist/contracts/ids.js +0 -2
  109. package/dist/contracts/ids.js.map +0 -1
  110. package/dist/contracts/index.d.ts +0 -21
  111. package/dist/contracts/index.d.ts.map +0 -1
  112. package/dist/contracts/index.js +0 -2
  113. package/dist/contracts/index.js.map +0 -1
  114. package/dist/contracts/inputs.d.ts +0 -19
  115. package/dist/contracts/inputs.d.ts.map +0 -1
  116. package/dist/contracts/inputs.js +0 -2
  117. package/dist/contracts/inputs.js.map +0 -1
  118. package/dist/contracts/item-validation.d.ts +0 -11
  119. package/dist/contracts/item-validation.d.ts.map +0 -1
  120. package/dist/contracts/item-validation.js +0 -2
  121. package/dist/contracts/item-validation.js.map +0 -1
  122. package/dist/contracts/items.d.ts +0 -49
  123. package/dist/contracts/items.d.ts.map +0 -1
  124. package/dist/contracts/items.js +0 -2
  125. package/dist/contracts/items.js.map +0 -1
  126. package/dist/contracts/mappings.d.ts +0 -35
  127. package/dist/contracts/mappings.d.ts.map +0 -1
  128. package/dist/contracts/mappings.js +0 -2
  129. package/dist/contracts/mappings.js.map +0 -1
  130. package/dist/contracts/query.d.ts +0 -10
  131. package/dist/contracts/query.d.ts.map +0 -1
  132. package/dist/contracts/query.js +0 -2
  133. package/dist/contracts/query.js.map +0 -1
  134. package/dist/contracts/references.d.ts +0 -11
  135. package/dist/contracts/references.d.ts.map +0 -1
  136. package/dist/contracts/references.js +0 -2
  137. package/dist/contracts/references.js.map +0 -1
  138. package/dist/contracts/sync.d.ts +0 -7
  139. package/dist/contracts/sync.d.ts.map +0 -1
  140. package/dist/contracts/sync.js +0 -2
  141. package/dist/contracts/sync.js.map +0 -1
  142. package/dist/contracts/validation.d.ts +0 -12
  143. package/dist/contracts/validation.d.ts.map +0 -1
  144. package/dist/contracts/validation.js +0 -2
  145. package/dist/contracts/validation.js.map +0 -1
  146. package/dist/errors/index.d.ts +0 -2
  147. package/dist/errors/index.d.ts.map +0 -1
  148. package/dist/errors/index.js +0 -3
  149. package/dist/errors/index.js.map +0 -1
  150. package/dist/firebase/adapter-store.d.ts +0 -15
  151. package/dist/firebase/adapter-store.d.ts.map +0 -1
  152. package/dist/firebase/adapter-store.js +0 -18
  153. package/dist/firebase/adapter-store.js.map +0 -1
  154. package/dist/firebase/app-store.d.ts +0 -11
  155. package/dist/firebase/app-store.d.ts.map +0 -1
  156. package/dist/firebase/app-store.js +0 -18
  157. package/dist/firebase/app-store.js.map +0 -1
  158. package/dist/firebase/binding-store.d.ts +0 -13
  159. package/dist/firebase/binding-store.d.ts.map +0 -1
  160. package/dist/firebase/binding-store.js +0 -35
  161. package/dist/firebase/binding-store.js.map +0 -1
  162. package/dist/firebase/catalog-store.d.ts +0 -12
  163. package/dist/firebase/catalog-store.d.ts.map +0 -1
  164. package/dist/firebase/catalog-store.js +0 -22
  165. package/dist/firebase/catalog-store.js.map +0 -1
  166. package/dist/firebase/definition-store.d.ts +0 -39
  167. package/dist/firebase/definition-store.d.ts.map +0 -1
  168. package/dist/firebase/definition-store.js +0 -18
  169. package/dist/firebase/definition-store.js.map +0 -1
  170. package/dist/firebase/descriptor-store.d.ts +0 -11
  171. package/dist/firebase/descriptor-store.d.ts.map +0 -1
  172. package/dist/firebase/descriptor-store.js +0 -18
  173. package/dist/firebase/descriptor-store.js.map +0 -1
  174. package/dist/firebase/firestore-store.d.ts +0 -14
  175. package/dist/firebase/firestore-store.d.ts.map +0 -1
  176. package/dist/firebase/firestore-store.js +0 -15
  177. package/dist/firebase/firestore-store.js.map +0 -1
  178. package/dist/firebase/index.d.ts +0 -12
  179. package/dist/firebase/index.d.ts.map +0 -1
  180. package/dist/firebase/index.js +0 -12
  181. package/dist/firebase/index.js.map +0 -1
  182. package/dist/firebase/mapping-store.d.ts +0 -11
  183. package/dist/firebase/mapping-store.d.ts.map +0 -1
  184. package/dist/firebase/mapping-store.js +0 -18
  185. package/dist/firebase/mapping-store.js.map +0 -1
  186. package/dist/firebase/native-item-store.d.ts +0 -20
  187. package/dist/firebase/native-item-store.d.ts.map +0 -1
  188. package/dist/firebase/native-item-store.js +0 -55
  189. package/dist/firebase/native-item-store.js.map +0 -1
  190. package/dist/firebase/reference-store.d.ts +0 -17
  191. package/dist/firebase/reference-store.d.ts.map +0 -1
  192. package/dist/firebase/reference-store.js +0 -27
  193. package/dist/firebase/reference-store.js.map +0 -1
  194. package/dist/firebase/snapshot-store.d.ts +0 -11
  195. package/dist/firebase/snapshot-store.d.ts.map +0 -1
  196. package/dist/firebase/snapshot-store.js +0 -22
  197. package/dist/firebase/snapshot-store.js.map +0 -1
  198. package/dist/index.d.ts +0 -10
  199. package/dist/index.d.ts.map +0 -1
  200. package/dist/index.js +0 -10
  201. package/dist/index.js.map +0 -1
  202. package/dist/mapping/execute-mapping.d.ts +0 -8
  203. package/dist/mapping/execute-mapping.d.ts.map +0 -1
  204. package/dist/mapping/execute-mapping.js +0 -78
  205. package/dist/mapping/execute-mapping.js.map +0 -1
  206. package/dist/mapping/helper-gap-report.d.ts +0 -7
  207. package/dist/mapping/helper-gap-report.d.ts.map +0 -1
  208. package/dist/mapping/helper-gap-report.js +0 -2
  209. package/dist/mapping/helper-gap-report.js.map +0 -1
  210. package/dist/mapping/index.d.ts +0 -4
  211. package/dist/mapping/index.d.ts.map +0 -1
  212. package/dist/mapping/index.js +0 -4
  213. package/dist/mapping/index.js.map +0 -1
  214. package/dist/mapping/validate-mapping.d.ts +0 -3
  215. package/dist/mapping/validate-mapping.d.ts.map +0 -1
  216. package/dist/mapping/validate-mapping.js +0 -32
  217. package/dist/mapping/validate-mapping.js.map +0 -1
  218. package/dist/test/integration/backup-data-gcs.live.test.d.ts +0 -2
  219. package/dist/test/integration/backup-data-gcs.live.test.d.ts.map +0 -1
  220. package/dist/test/integration/backup-data-gcs.live.test.js +0 -98
  221. package/dist/test/integration/backup-data-gcs.live.test.js.map +0 -1
  222. package/dist/test/integration/firestore.emulator.test.d.ts +0 -2
  223. package/dist/test/integration/firestore.emulator.test.d.ts.map +0 -1
  224. package/dist/test/integration/firestore.emulator.test.js +0 -132
  225. package/dist/test/integration/firestore.emulator.test.js.map +0 -1
  226. package/dist/test/integration/record-history.live.test.d.ts +0 -2
  227. package/dist/test/integration/record-history.live.test.d.ts.map +0 -1
  228. package/dist/test/integration/record-history.live.test.js +0 -141
  229. package/dist/test/integration/record-history.live.test.js.map +0 -1
  230. package/dist/test/unit/backup-timestamp.test.d.ts +0 -2
  231. package/dist/test/unit/backup-timestamp.test.d.ts.map +0 -1
  232. package/dist/test/unit/backup-timestamp.test.js +0 -11
  233. package/dist/test/unit/backup-timestamp.test.js.map +0 -1
  234. package/dist/test/unit/catalox-gcs-backup-export-manifest.test.d.ts +0 -2
  235. package/dist/test/unit/catalox-gcs-backup-export-manifest.test.d.ts.map +0 -1
  236. package/dist/test/unit/catalox-gcs-backup-export-manifest.test.js +0 -20
  237. package/dist/test/unit/catalox-gcs-backup-export-manifest.test.js.map +0 -1
  238. package/dist/test/unit/compact-catalog-filter.test.d.ts +0 -2
  239. package/dist/test/unit/compact-catalog-filter.test.d.ts.map +0 -1
  240. package/dist/test/unit/compact-catalog-filter.test.js +0 -18
  241. package/dist/test/unit/compact-catalog-filter.test.js.map +0 -1
  242. package/dist/test/unit/field-source-resolution.test.d.ts +0 -2
  243. package/dist/test/unit/field-source-resolution.test.d.ts.map +0 -1
  244. package/dist/test/unit/field-source-resolution.test.js +0 -45
  245. package/dist/test/unit/field-source-resolution.test.js.map +0 -1
  246. package/dist/test/unit/gcs-backup-run-folder.test.d.ts +0 -2
  247. package/dist/test/unit/gcs-backup-run-folder.test.d.ts.map +0 -1
  248. package/dist/test/unit/gcs-backup-run-folder.test.js +0 -10
  249. package/dist/test/unit/gcs-backup-run-folder.test.js.map +0 -1
  250. package/dist/test/unit/gcs-firestore-compare.test.d.ts +0 -2
  251. package/dist/test/unit/gcs-firestore-compare.test.d.ts.map +0 -1
  252. package/dist/test/unit/gcs-firestore-compare.test.js +0 -14
  253. package/dist/test/unit/gcs-firestore-compare.test.js.map +0 -1
  254. package/dist/test/unit/gcs-firestore-paths.test.d.ts +0 -2
  255. package/dist/test/unit/gcs-firestore-paths.test.d.ts.map +0 -1
  256. package/dist/test/unit/gcs-firestore-paths.test.js +0 -16
  257. package/dist/test/unit/gcs-firestore-paths.test.js.map +0 -1
  258. package/dist/test/unit/identity.test.d.ts +0 -2
  259. package/dist/test/unit/identity.test.d.ts.map +0 -1
  260. package/dist/test/unit/identity.test.js +0 -18
  261. package/dist/test/unit/identity.test.js.map +0 -1
  262. package/dist/test/unit/jsx-snippets.test.d.ts +0 -2
  263. package/dist/test/unit/jsx-snippets.test.d.ts.map +0 -1
  264. package/dist/test/unit/jsx-snippets.test.js +0 -35
  265. package/dist/test/unit/jsx-snippets.test.js.map +0 -1
  266. package/dist/test/unit/mapping.test.d.ts +0 -2
  267. package/dist/test/unit/mapping.test.d.ts.map +0 -1
  268. package/dist/test/unit/mapping.test.js +0 -19
  269. package/dist/test/unit/mapping.test.js.map +0 -1
  270. package/dist/test/unit/markdown-and-diagrams.test.d.ts +0 -2
  271. package/dist/test/unit/markdown-and-diagrams.test.d.ts.map +0 -1
  272. package/dist/test/unit/markdown-and-diagrams.test.js +0 -62
  273. package/dist/test/unit/markdown-and-diagrams.test.js.map +0 -1
  274. package/dist/test/unit/native-catalog-merge.test.d.ts +0 -2
  275. package/dist/test/unit/native-catalog-merge.test.d.ts.map +0 -1
  276. package/dist/test/unit/native-catalog-merge.test.js +0 -33
  277. package/dist/test/unit/native-catalog-merge.test.js.map +0 -1
  278. package/dist/test/unit/native-scope.test.d.ts +0 -2
  279. package/dist/test/unit/native-scope.test.d.ts.map +0 -1
  280. package/dist/test/unit/native-scope.test.js +0 -29
  281. package/dist/test/unit/native-scope.test.js.map +0 -1
  282. package/dist/test/unit/record-history-path.test.d.ts +0 -2
  283. package/dist/test/unit/record-history-path.test.d.ts.map +0 -1
  284. package/dist/test/unit/record-history-path.test.js +0 -24
  285. package/dist/test/unit/record-history-path.test.js.map +0 -1
  286. package/dist/test/unit/renderer-metadata-migration.test.d.ts +0 -2
  287. package/dist/test/unit/renderer-metadata-migration.test.d.ts.map +0 -1
  288. package/dist/test/unit/renderer-metadata-migration.test.js +0 -33
  289. package/dist/test/unit/renderer-metadata-migration.test.js.map +0 -1
  290. package/dist/test/unit/renderer-metadata.test.d.ts +0 -2
  291. package/dist/test/unit/renderer-metadata.test.d.ts.map +0 -1
  292. package/dist/test/unit/renderer-metadata.test.js +0 -10
  293. package/dist/test/unit/renderer-metadata.test.js.map +0 -1
  294. package/dist/test/unit/resolve-native-items-layout.test.d.ts +0 -2
  295. package/dist/test/unit/resolve-native-items-layout.test.d.ts.map +0 -1
  296. package/dist/test/unit/resolve-native-items-layout.test.js +0 -50
  297. package/dist/test/unit/resolve-native-items-layout.test.js.map +0 -1
  298. package/dist/test/unit/ui-spec-validation.test.d.ts +0 -2
  299. package/dist/test/unit/ui-spec-validation.test.d.ts.map +0 -1
  300. package/dist/test/unit/ui-spec-validation.test.js +0 -90
  301. package/dist/test/unit/ui-spec-validation.test.js.map +0 -1
  302. package/dist/validation/index.d.ts +0 -2
  303. package/dist/validation/index.d.ts.map +0 -1
  304. package/dist/validation/index.js +0 -3
  305. package/dist/validation/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/catalox/authorization.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAEvD,KAAK,CAAC,oBAAoB,CACxB,OAAuB,EACvB,KAAY,EACZ,SAAoB,EACpB,QAAwB;QAExB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,mEAAmE;YACnE,sDAAsD;YACtD,OAAO;gBACL,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;gBAClD,KAAK;gBACL,SAAS;gBACT,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACzD,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBACpC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;aACrC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,wBAAwB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,EAAE,GACN,QAAQ,KAAK,MAAM;YACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YACjC,CAAC,CAAC,QAAQ,KAAK,OAAO;gBACpB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,wBAAwB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1,80 +0,0 @@
1
- import type { AppCatalogBootstrap, AppCatalogEntry, CatalogDescriptor, CatalogItemReference, CatalogItemValidationReport, CatalogListResult, CatalogQueryOptions, CatalogValidationReport, CreateCatalogInput, ItemId, ListAppCatalogsInput, UnifiedCatalogItem, UpdateCatalogInput } from "../contracts/index.js";
2
- import type { AppId, CatalogId } from "../contracts/ids.js";
3
- import { ApiCatalogAdapter } from "../adapters/api/api-adapter.js";
4
- import { MongoCatalogAdapter } from "../adapters/mongo/mongo-adapter.js";
5
- import { AuthorizationService } from "./authorization.js";
6
- import type { CataloxContext } from "../contracts/context.js";
7
- import { AppStore } from "../firebase/app-store.js";
8
- import { AdapterStore } from "../firebase/adapter-store.js";
9
- import { BindingStore } from "../firebase/binding-store.js";
10
- import { CatalogStore } from "../firebase/catalog-store.js";
11
- import { DefinitionStore } from "../firebase/definition-store.js";
12
- import { DescriptorStore } from "../firebase/descriptor-store.js";
13
- import { MappingStore } from "../firebase/mapping-store.js";
14
- import { NativeItemStore } from "../firebase/native-item-store.js";
15
- import { ReferenceStore } from "../firebase/reference-store.js";
16
- import { SnapshotStore } from "../firebase/snapshot-store.js";
17
- export type CataloxDependencies = {
18
- apps: AppStore;
19
- catalogs: CatalogStore;
20
- bindings: BindingStore;
21
- definitions: DefinitionStore;
22
- mappings: MappingStore;
23
- descriptors: DescriptorStore;
24
- references: ReferenceStore;
25
- nativeItems: NativeItemStore;
26
- snapshots: SnapshotStore;
27
- adapters: AdapterStore;
28
- authz: AuthorizationService;
29
- mongoAdapter?: MongoCatalogAdapter;
30
- apiAdapter?: ApiCatalogAdapter;
31
- };
32
- export declare class Catalox {
33
- private readonly deps;
34
- constructor(deps: CataloxDependencies);
35
- listAppCatalogs(context: CataloxContext, input?: ListAppCatalogsInput): Promise<AppCatalogEntry[]>;
36
- getCatalogDescriptor(context: CataloxContext, catalogId: CatalogId): Promise<CatalogDescriptor | null>;
37
- getAppCatalogBootstrap(context: CataloxContext, appId?: AppId): Promise<AppCatalogBootstrap>;
38
- listCatalogItems(context: CataloxContext, catalogId: CatalogId, options?: CatalogQueryOptions): Promise<CatalogListResult>;
39
- getCatalogItem(context: CataloxContext, catalogId: CatalogId, itemId: ItemId): Promise<UnifiedCatalogItem | null>;
40
- validateCatalog(_context: CataloxContext, _catalogId: CatalogId): Promise<CatalogValidationReport>;
41
- validateCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _itemId: ItemId): Promise<CatalogItemValidationReport>;
42
- getCatalogItemReferences(context: CataloxContext, catalogId: CatalogId, itemId: ItemId): Promise<CatalogItemReference[]>;
43
- listCatalogReferences(context: CataloxContext, catalogId: CatalogId): Promise<CatalogItemReference[]>;
44
- getApp(_context: CataloxContext, appId?: AppId): Promise<import("../contracts/apps.js").AppRecord | null>;
45
- createCatalog(_context: CataloxContext, _input: CreateCatalogInput): Promise<import("../contracts/catalogs.js").CatalogRecord>;
46
- updateCatalog(_context: CataloxContext, _catalogId: CatalogId, _patch: UpdateCatalogInput): Promise<import("../contracts/catalogs.js").CatalogRecord>;
47
- getCatalog(_context: CataloxContext, catalogId: CatalogId): Promise<import("../contracts/catalogs.js").CatalogRecord | null>;
48
- listCatalogs(_context: CataloxContext, _options?: CatalogQueryOptions): Promise<import("../contracts/catalogs.js").CatalogRecord[]>;
49
- bindCatalogToApp(_context: CataloxContext, _input: import("../contracts/bindings.js").BindCatalogInput): Promise<any>;
50
- unbindCatalogFromApp(_context: CataloxContext, _appId: AppId, _catalogId: CatalogId): Promise<void>;
51
- ensureCatalog(context: CataloxContext, catalog: {
52
- catalogId: CatalogId;
53
- name: string;
54
- status?: "active" | "disabled" | "draft";
55
- }): Promise<void>;
56
- ensureBinding(context: CataloxContext, input: {
57
- appId: AppId;
58
- catalogId: CatalogId;
59
- access?: {
60
- canRead?: boolean;
61
- canWrite?: boolean;
62
- canAdmin?: boolean;
63
- };
64
- }): Promise<void>;
65
- createNativeCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _input: Record<string, unknown>): Promise<UnifiedCatalogItem>;
66
- updateNativeCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _itemId: ItemId, _patch: Record<string, unknown>): Promise<any>;
67
- deleteNativeCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _itemId: ItemId): Promise<void>;
68
- upsertNativeCatalogItem(context: CataloxContext, catalogId: CatalogId, input: Record<string, unknown>): Promise<UnifiedCatalogItem>;
69
- batchUpsertNativeCatalogItems(context: CataloxContext, catalogId: CatalogId, items: Array<Record<string, unknown>>): Promise<void>;
70
- importCatalogItemsFromJson<T = unknown>(json: string): T;
71
- exportCatalogItemsToJson(value: unknown, pretty?: boolean): string;
72
- syncMappedCatalog(_context: CataloxContext, _catalogId: CatalogId): Promise<{
73
- syncStatus: "idle";
74
- lastSyncedAt?: never;
75
- } | {
76
- syncStatus: "success";
77
- lastSyncedAt: string;
78
- }>;
79
- }
80
- //# sourceMappingURL=catalox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalox.d.ts","sourceRoot":"","sources":["../../src/catalox/catalox.ts"],"names":[],"mappings":"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"}
@@ -1,492 +0,0 @@
1
- import { CatalogAccessDeniedError, CatalogAdapterError, CatalogNotFoundError } from "../contracts/errors.js";
2
- import { validateMappingSpec } from "../mapping/validate-mapping.js";
3
- import { executeMapping } from "../mapping/execute-mapping.js";
4
- import { ApiCatalogAdapter } from "../adapters/api/api-adapter.js";
5
- import { MongoCatalogAdapter } from "../adapters/mongo/mongo-adapter.js";
6
- import { AuthorizationService } from "./authorization.js";
7
- import { resolveCatalogItemId } from "./identity.js";
8
- import { parseJson, toJson } from "./json-io.js";
9
- import { AppStore } from "../firebase/app-store.js";
10
- import { AdapterStore } from "../firebase/adapter-store.js";
11
- import { BindingStore } from "../firebase/binding-store.js";
12
- import { CatalogStore } from "../firebase/catalog-store.js";
13
- import { DefinitionStore } from "../firebase/definition-store.js";
14
- import { DescriptorStore } from "../firebase/descriptor-store.js";
15
- import { MappingStore } from "../firebase/mapping-store.js";
16
- import { NativeItemStore } from "../firebase/native-item-store.js";
17
- import { ReferenceStore } from "../firebase/reference-store.js";
18
- import { SnapshotStore } from "../firebase/snapshot-store.js";
19
- export class Catalox {
20
- deps;
21
- constructor(deps) {
22
- this.deps = deps;
23
- }
24
- async listAppCatalogs(context, input) {
25
- const appId = input?.appId ?? context.appId;
26
- const bindings = await this.deps.bindings.listByApp(appId);
27
- const catalogs = await this.deps.catalogs.listAll();
28
- const byId = new Map(catalogs.map((c) => [c.catalogId, c]));
29
- const out = [];
30
- for (const b of bindings) {
31
- const cat = byId.get(b.catalogId);
32
- if (!cat)
33
- continue;
34
- if (!input?.includeDisabled && cat.status !== "active")
35
- continue;
36
- const descriptor = await this.deps.descriptors.get(cat.catalogId);
37
- const description = descriptor?.descriptor.description ?? cat.description;
38
- const itemLabel = descriptor?.descriptor.itemLabel ?? cat.itemLabel;
39
- const visibility = descriptor?.descriptor.visibility;
40
- const descriptorVersion = descriptor?.descriptorVersion;
41
- const metadata = descriptor?.descriptor.metadata ?? cat.metadata;
42
- out.push({
43
- catalogId: cat.catalogId,
44
- label: descriptor?.descriptor.label ?? cat.name,
45
- ...(description != null ? { description } : {}),
46
- ...(itemLabel != null ? { itemLabel } : {}),
47
- sourceMode: cat.sourceMode,
48
- ...(cat.mappedSourceType != null ? { mappedSourceType: cat.mappedSourceType } : {}),
49
- status: cat.status,
50
- ...(visibility != null ? { visibility } : {}),
51
- access: b.access,
52
- ...(descriptorVersion != null ? { descriptorVersion } : {}),
53
- ...(metadata != null ? { metadata } : {}),
54
- });
55
- }
56
- return out.filter((e) => (input?.includeHidden ? true : e.visibility !== "hidden"));
57
- }
58
- async getCatalogDescriptor(context, catalogId) {
59
- await this.deps.authz.requireBindingAccess(context, context.appId, catalogId, "read");
60
- const rec = await this.deps.descriptors.get(catalogId);
61
- return rec?.descriptor ?? null;
62
- }
63
- async getAppCatalogBootstrap(context, appId) {
64
- const resolved = appId ?? context.appId;
65
- const entries = await this.listAppCatalogs(context, { appId: resolved });
66
- const descriptors = [];
67
- for (const e of entries) {
68
- const d = await this.deps.descriptors.get(e.catalogId);
69
- if (d)
70
- descriptors.push(d.descriptor);
71
- }
72
- return { appId: resolved, catalogs: descriptors };
73
- }
74
- async listCatalogItems(context, catalogId, options) {
75
- await this.deps.authz.requireBindingAccess(context, context.appId, catalogId, "read");
76
- const catalog = await this.deps.catalogs.get(catalogId);
77
- if (!catalog)
78
- throw new CatalogNotFoundError({ catalogId });
79
- if (catalog.sourceMode === "native") {
80
- const filterEq = (options?.filter ?? {});
81
- const listOpts = {
82
- ...(options?.limit != null ? { limit: options.limit } : {}),
83
- ...(options?.offset != null ? { offset: options.offset } : {}),
84
- ...(Object.keys(filterEq).length ? { filterEq } : {}),
85
- ...(options?.sort ? { sort: options.sort } : {}),
86
- };
87
- const records = await this.deps.nativeItems.list(catalogId, listOpts);
88
- const items = records.map((r) => ({
89
- itemId: r.itemId,
90
- catalogId: r.catalogId,
91
- appId: context.appId,
92
- sourceMode: "native",
93
- sourceType: "firebase",
94
- data: r.data,
95
- ...(r.metadata != null ? { metadata: r.metadata } : {}),
96
- createdAt: r.createdAt,
97
- updatedAt: r.updatedAt,
98
- }));
99
- return { items };
100
- }
101
- const def = await this.deps.definitions.get(catalogId);
102
- if (!def || def.type !== "mapped")
103
- throw new CatalogAdapterError({ catalogId, reason: "missing_definition" });
104
- const mapping = await this.deps.mappings.get(def.mappingId);
105
- if (!mapping)
106
- throw new CatalogAdapterError({ catalogId, reason: "missing_mapping" });
107
- const mappingIssues = validateMappingSpec(mapping.mapping);
108
- if (mappingIssues.some((i) => i.severity === "error")) {
109
- return { items: [], issues: mappingIssues };
110
- }
111
- if (def.adapterType === "mongo") {
112
- if (!this.deps.mongoAdapter)
113
- throw new CatalogAdapterError({ catalogId, reason: "mongo_adapter_unconfigured" });
114
- const adapterConfig = await this.deps.adapters.get(def.adapterId);
115
- if (!adapterConfig)
116
- throw new CatalogAdapterError({ catalogId, reason: "missing_adapter" });
117
- const result = await this.deps.mongoAdapter.listItems(context, catalogId, adapterConfig, { mapping: mapping.mapping, ...(mapping.options ? { options: mapping.options } : {}) }, options);
118
- return result.issues ? { items: result.items, issues: result.issues } : { items: result.items };
119
- }
120
- if (def.adapterType === "api") {
121
- if (!this.deps.apiAdapter)
122
- throw new CatalogAdapterError({ catalogId, reason: "api_adapter_unconfigured" });
123
- const adapterConfig = await this.deps.adapters.get(def.adapterId);
124
- if (!adapterConfig)
125
- throw new CatalogAdapterError({ catalogId, reason: "missing_adapter" });
126
- const result = await this.deps.apiAdapter.listItems(context, catalogId, adapterConfig, { responseMapping: mapping.mapping, ...(mapping.options ? { options: mapping.options } : {}) }, options);
127
- return {
128
- items: result.items,
129
- ...(result.nextCursor ? { nextCursor: result.nextCursor } : {}),
130
- ...(result.issues ? { issues: result.issues } : {}),
131
- };
132
- }
133
- throw new CatalogAdapterError({ catalogId, reason: "unknown_adapter_type" });
134
- }
135
- async getCatalogItem(context, catalogId, itemId) {
136
- await this.deps.authz.requireBindingAccess(context, context.appId, catalogId, "read");
137
- const catalog = await this.deps.catalogs.get(catalogId);
138
- if (!catalog)
139
- throw new CatalogNotFoundError({ catalogId });
140
- if (catalog.sourceMode === "native") {
141
- const rec = await this.deps.nativeItems.get(catalogId, itemId);
142
- if (!rec)
143
- return null;
144
- return {
145
- itemId: rec.itemId,
146
- catalogId: rec.catalogId,
147
- appId: context.appId,
148
- sourceMode: "native",
149
- sourceType: "firebase",
150
- data: rec.data,
151
- ...(rec.metadata != null ? { metadata: rec.metadata } : {}),
152
- createdAt: rec.createdAt,
153
- updatedAt: rec.updatedAt,
154
- };
155
- }
156
- // For mapped catalogs, use list path with filter if adapter supports.
157
- const result = await this.listCatalogItems(context, catalogId, {
158
- limit: 1,
159
- filter: { itemId },
160
- });
161
- return result.items[0] ?? null;
162
- }
163
- async validateCatalog(_context, _catalogId) {
164
- return { isValid: true, issues: [] };
165
- }
166
- async validateCatalogItem(_context, _catalogId, _itemId) {
167
- return { isValid: true, issues: [] };
168
- }
169
- async getCatalogItemReferences(context, catalogId, itemId) {
170
- await this.deps.authz.requireBindingAccess(context, context.appId, catalogId, "read");
171
- const refs = await this.deps.references.listByItem(catalogId, itemId);
172
- return refs;
173
- }
174
- async listCatalogReferences(context, catalogId) {
175
- await this.deps.authz.requireBindingAccess(context, context.appId, catalogId, "read");
176
- const refs = await this.deps.references.listByCatalog(catalogId);
177
- return refs;
178
- }
179
- // Spec methods below are stubs for now; filled in by later todos.
180
- async getApp(_context, appId) {
181
- return appId ? this.deps.apps.get(appId) : this.deps.apps.get(_context.appId);
182
- }
183
- async createCatalog(_context, _input) {
184
- const now = new Date().toISOString();
185
- const catalogId = (_input.catalogId ?? randomUUID());
186
- await this.deps.catalogs.upsert({
187
- catalogId,
188
- name: _input.name,
189
- ...(_input.description != null ? { description: _input.description } : {}),
190
- sourceMode: _input.sourceMode,
191
- ...(_input.sourceMode === "mapped" && _input.mapped?.sourceType
192
- ? { mappedSourceType: _input.mapped.sourceType }
193
- : {}),
194
- status: "active",
195
- ...(_input.metadata != null ? { metadata: _input.metadata } : {}),
196
- createdAt: now,
197
- updatedAt: now,
198
- });
199
- if (_input.sourceMode === "native") {
200
- if (!_input.native)
201
- throw new CatalogAdapterError({ catalogId, reason: "missing_native_config" });
202
- await this.deps.definitions.upsert({
203
- catalogId,
204
- type: "native",
205
- storage: {
206
- provider: "firestore",
207
- collectionPath: _input.native.firestoreCollectionPath,
208
- },
209
- ...(_input.native.itemSchema != null ? { itemSchema: _input.native.itemSchema } : {}),
210
- createdAt: now,
211
- updatedAt: now,
212
- });
213
- }
214
- else {
215
- if (!_input.mapped)
216
- throw new CatalogAdapterError({ catalogId, reason: "missing_mapped_config" });
217
- const adapterId = randomUUID();
218
- const mappingId = randomUUID();
219
- await this.deps.adapters.upsert({
220
- adapterId,
221
- type: _input.mapped.sourceType,
222
- ..._input.mapped.adapter,
223
- });
224
- await this.deps.mappings.upsert({
225
- mappingId,
226
- mapping: _input.mapped.mapping,
227
- createdAt: now,
228
- updatedAt: now,
229
- });
230
- await this.deps.definitions.upsert({
231
- catalogId,
232
- type: "mapped",
233
- adapterType: _input.mapped.sourceType,
234
- adapterId,
235
- mappingId,
236
- ...(_input.mapped.syncMode
237
- ? { sync: { mode: _input.mapped.syncMode, syncStatus: "idle" } }
238
- : {}),
239
- createdAt: now,
240
- updatedAt: now,
241
- });
242
- }
243
- // Seed a minimal descriptor if none exists.
244
- const existingDescriptor = await this.deps.descriptors.get(catalogId);
245
- if (!existingDescriptor) {
246
- await this.deps.descriptors.upsert({
247
- catalogId,
248
- descriptorVersion: "1",
249
- descriptor: {
250
- catalogId,
251
- label: _input.name,
252
- ...(_input.description != null ? { description: _input.description } : {}),
253
- sourceMode: _input.sourceMode,
254
- ...(_input.sourceMode === "mapped" && _input.mapped?.sourceType
255
- ? { mappedSourceType: _input.mapped.sourceType }
256
- : {}),
257
- status: "active",
258
- capabilities: {
259
- canList: true,
260
- canGet: true,
261
- canCreate: _input.sourceMode === "native",
262
- canEdit: _input.sourceMode === "native",
263
- canDelete: _input.sourceMode === "native",
264
- canImport: _input.sourceMode === "native",
265
- canExport: true,
266
- canSync: _input.sourceMode === "mapped",
267
- canValidate: true,
268
- canViewReferences: true,
269
- },
270
- queryableFields: [],
271
- identity: {
272
- itemIdStrategy: "generated",
273
- },
274
- },
275
- createdAt: now,
276
- updatedAt: now,
277
- });
278
- }
279
- const created = await this.deps.catalogs.get(catalogId);
280
- if (!created)
281
- throw new CatalogNotFoundError({ catalogId });
282
- return created;
283
- }
284
- async updateCatalog(_context, _catalogId, _patch) {
285
- const existing = await this.deps.catalogs.get(_catalogId);
286
- if (!existing)
287
- throw new CatalogNotFoundError({ catalogId: _catalogId });
288
- const now = new Date().toISOString();
289
- await this.deps.catalogs.upsert({
290
- ...existing,
291
- ...(_patch.name != null ? { name: _patch.name } : {}),
292
- ...(_patch.description != null ? { description: _patch.description } : {}),
293
- ...(_patch.metadata != null ? { metadata: _patch.metadata } : {}),
294
- updatedAt: now,
295
- });
296
- return (await this.deps.catalogs.get(_catalogId));
297
- }
298
- async getCatalog(_context, catalogId) {
299
- return this.deps.catalogs.get(catalogId);
300
- }
301
- async listCatalogs(_context, _options) {
302
- return this.deps.catalogs.listAll();
303
- }
304
- async bindCatalogToApp(_context, _input) {
305
- const existing = await this.deps.bindings.findByAppCatalog(_input.appId, _input.catalogId);
306
- if (existing)
307
- return existing;
308
- const now = new Date().toISOString();
309
- const record = {
310
- bindingId: `${String(_input.appId)}:${String(_input.catalogId)}`,
311
- appId: _input.appId,
312
- catalogId: _input.catalogId,
313
- access: {
314
- canRead: _input.access?.canRead ?? true,
315
- canWrite: _input.access?.canWrite ?? false,
316
- ...(_input.access?.canAdmin != null ? { canAdmin: _input.access.canAdmin } : {}),
317
- },
318
- status: "active",
319
- ...(_input.metadata != null ? { metadata: _input.metadata } : {}),
320
- createdAt: now,
321
- updatedAt: now,
322
- };
323
- await this.deps.bindings.upsert(record);
324
- return record;
325
- }
326
- async unbindCatalogFromApp(_context, _appId, _catalogId) {
327
- const existing = await this.deps.bindings.findByAppCatalog(_appId, _catalogId);
328
- if (!existing)
329
- return;
330
- await this.deps.bindings.upsert({
331
- ...existing,
332
- status: "disabled",
333
- updatedAt: new Date().toISOString(),
334
- });
335
- }
336
- async ensureCatalog(context, catalog) {
337
- await this.deps.authz.requireBindingAccess(context, context.appId, catalog.catalogId, "admin");
338
- const existing = await this.deps.catalogs.get(catalog.catalogId);
339
- const now = new Date().toISOString();
340
- if (existing)
341
- return;
342
- await this.deps.catalogs.upsert({
343
- catalogId: catalog.catalogId,
344
- name: catalog.name,
345
- sourceMode: "native",
346
- status: catalog.status ?? "active",
347
- createdAt: now,
348
- updatedAt: now,
349
- });
350
- }
351
- async ensureBinding(context, input) {
352
- // only god-mode apps can provision cross-app bindings.
353
- if (!context.isGodMode && input.appId !== context.appId) {
354
- throw new CatalogAccessDeniedError({ reason: "not_god_mode" });
355
- }
356
- const existing = await this.deps.bindings.findByAppCatalog(input.appId, input.catalogId);
357
- if (existing)
358
- return;
359
- const now = new Date().toISOString();
360
- await this.deps.bindings.upsert({
361
- bindingId: `${String(input.appId)}:${String(input.catalogId)}`,
362
- appId: input.appId,
363
- catalogId: input.catalogId,
364
- access: {
365
- canRead: input.access?.canRead ?? true,
366
- canWrite: input.access?.canWrite ?? false,
367
- ...(input.access?.canAdmin != null ? { canAdmin: input.access.canAdmin } : {}),
368
- },
369
- status: "active",
370
- createdAt: now,
371
- updatedAt: now,
372
- });
373
- }
374
- async createNativeCatalogItem(_context, _catalogId, _input) {
375
- return this.upsertNativeCatalogItem(_context, _catalogId, _input);
376
- }
377
- async updateNativeCatalogItem(_context, _catalogId, _itemId, _patch) {
378
- await this.deps.authz.requireBindingAccess(_context, _context.appId, _catalogId, "write");
379
- const existing = await this.deps.nativeItems.get(_catalogId, _itemId);
380
- if (!existing)
381
- throw new CatalogNotFoundError({ catalogId: _catalogId, itemId: _itemId });
382
- const updatedAt = new Date().toISOString();
383
- const merged = { ...(existing.data ?? {}), ..._patch };
384
- await this.deps.nativeItems.upsert(_catalogId, {
385
- ...existing,
386
- data: merged,
387
- updatedAt,
388
- });
389
- const out = {
390
- itemId: _itemId,
391
- catalogId: _catalogId,
392
- appId: _context.appId,
393
- sourceMode: "native",
394
- sourceType: "firebase",
395
- data: merged,
396
- createdAt: existing.createdAt,
397
- updatedAt,
398
- };
399
- return this.decorateItem(_catalogId, out);
400
- }
401
- async deleteNativeCatalogItem(_context, _catalogId, _itemId) {
402
- await this.deps.authz.requireBindingAccess(_context, _context.appId, _catalogId, "write");
403
- await this.deps.nativeItems.delete(_catalogId, _itemId);
404
- }
405
- async upsertNativeCatalogItem(context, catalogId, input) {
406
- await this.deps.authz.requireBindingAccess(context, context.appId, catalogId, "write");
407
- const descriptor = await this.deps.descriptors.get(catalogId);
408
- if (!descriptor)
409
- throw new CatalogAdapterError({ catalogId, reason: "missing_descriptor" });
410
- const itemId = resolveCatalogItemId({ identity: descriptor.descriptor.identity, data: input });
411
- const now = new Date().toISOString();
412
- await this.deps.nativeItems.upsert(catalogId, {
413
- itemId,
414
- catalogId,
415
- appScopedOwnerId: context.appId,
416
- indexed: input.indexed,
417
- data: input,
418
- createdAt: now,
419
- updatedAt: now,
420
- });
421
- return {
422
- itemId,
423
- catalogId,
424
- appId: context.appId,
425
- sourceMode: "native",
426
- sourceType: "firebase",
427
- data: input,
428
- createdAt: now,
429
- updatedAt: now,
430
- };
431
- }
432
- async batchUpsertNativeCatalogItems(context, catalogId, items) {
433
- await this.deps.authz.requireBindingAccess(context, context.appId, catalogId, "write");
434
- const descriptor = await this.deps.descriptors.get(catalogId);
435
- if (!descriptor)
436
- throw new CatalogAdapterError({ catalogId, reason: "missing_descriptor" });
437
- const now = new Date().toISOString();
438
- const records = items.map((data) => {
439
- const itemId = resolveCatalogItemId({ identity: descriptor.descriptor.identity, data });
440
- return {
441
- itemId,
442
- catalogId,
443
- appScopedOwnerId: context.appId,
444
- indexed: data.indexed,
445
- data,
446
- createdAt: now,
447
- updatedAt: now,
448
- };
449
- });
450
- await this.deps.nativeItems.batchUpsert(catalogId, records);
451
- }
452
- importCatalogItemsFromJson(json) {
453
- return parseJson(json);
454
- }
455
- exportCatalogItemsToJson(value, pretty = true) {
456
- return toJson(value, pretty);
457
- }
458
- async syncMappedCatalog(_context, _catalogId) {
459
- const catalog = await this.deps.catalogs.get(_catalogId);
460
- if (!catalog)
461
- throw new CatalogNotFoundError({ catalogId: _catalogId });
462
- const def = await this.deps.definitions.get(_catalogId);
463
- if (!def || def.type !== "mapped")
464
- throw new CatalogAdapterError({ catalogId: _catalogId, reason: "not_mapped" });
465
- const mode = def.sync?.mode;
466
- if (mode !== "snapshot")
467
- return { syncStatus: "idle" };
468
- const now = new Date().toISOString();
469
- const list = await this.listCatalogItems(_context, _catalogId, { limit: 500 });
470
- for (const item of list.items) {
471
- await this.deps.snapshots.upsert(_catalogId, {
472
- itemId: item.itemId,
473
- catalogId: _catalogId,
474
- data: item.data,
475
- sync: { lastSyncedAt: now, syncStatus: "success" },
476
- });
477
- }
478
- await this.deps.definitions.upsert({
479
- ...def,
480
- sync: {
481
- ...(def.sync ?? { mode: "snapshot" }),
482
- mode: "snapshot",
483
- lastSyncedAt: now,
484
- syncStatus: "success",
485
- },
486
- updatedAt: now,
487
- });
488
- return { syncStatus: "success", lastSyncedAt: now };
489
- }
490
- }
491
- // (moved to `src/contracts/bootstrap.ts`)
492
- //# sourceMappingURL=catalox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalox.js","sourceRoot":"","sources":["../../src/catalox/catalox.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { AppRecord } from "../contracts/apps.js";
2
- import type { AppId } from "../contracts/ids.js";
3
- import type { CataloxContext } from "../contracts/context.js";
4
- import { AppStore } from "../firebase/app-store.js";
5
- export type ResolveContextOptions = {
6
- appId: AppId;
7
- actor?: CataloxContext["actor"];
8
- };
9
- export declare class ContextResolver {
10
- private readonly apps;
11
- constructor(apps: AppStore);
12
- resolve(options: ResolveContextOptions): Promise<{
13
- context: CataloxContext;
14
- app: AppRecord | null;
15
- }>;
16
- }
17
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/catalox/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,QAAQ;IAErC,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC;QACrD,OAAO,EAAE,cAAc,CAAC;QACxB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;KACvB,CAAC;CAaH"}