@x12i/catalox 1.1.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.
- package/LICENSE +22 -0
- package/README.md +222 -0
- package/dist/adapters/api/api-adapter.d.ts +22 -0
- package/dist/adapters/api/api-adapter.d.ts.map +1 -0
- package/dist/adapters/api/api-adapter.js +60 -0
- package/dist/adapters/api/api-adapter.js.map +1 -0
- package/dist/adapters/api/index.d.ts +2 -0
- package/dist/adapters/api/index.d.ts.map +1 -0
- package/dist/adapters/api/index.js +2 -0
- package/dist/adapters/api/index.js.map +1 -0
- package/dist/adapters/mongo/index.d.ts +3 -0
- package/dist/adapters/mongo/index.d.ts.map +1 -0
- package/dist/adapters/mongo/index.js +3 -0
- package/dist/adapters/mongo/index.js.map +1 -0
- package/dist/adapters/mongo/mongo-adapter.d.ts +21 -0
- package/dist/adapters/mongo/mongo-adapter.d.ts.map +1 -0
- package/dist/adapters/mongo/mongo-adapter.js +57 -0
- package/dist/adapters/mongo/mongo-adapter.js.map +1 -0
- package/dist/adapters/mongo/resolve-db.d.ts +4 -0
- package/dist/adapters/mongo/resolve-db.d.ts.map +1 -0
- package/dist/adapters/mongo/resolve-db.js +10 -0
- package/dist/adapters/mongo/resolve-db.js.map +1 -0
- package/dist/bindings/index.d.ts +2 -0
- package/dist/bindings/index.d.ts.map +1 -0
- package/dist/bindings/index.js +3 -0
- package/dist/bindings/index.js.map +1 -0
- package/dist/catalox/authorization.d.ts +11 -0
- package/dist/catalox/authorization.d.ts.map +1 -0
- package/dist/catalox/authorization.js +37 -0
- package/dist/catalox/authorization.js.map +1 -0
- package/dist/catalox/catalox.d.ts +80 -0
- package/dist/catalox/catalox.d.ts.map +1 -0
- package/dist/catalox/catalox.js +492 -0
- package/dist/catalox/catalox.js.map +1 -0
- package/dist/catalox/context.d.ts +17 -0
- package/dist/catalox/context.d.ts.map +1 -0
- package/dist/catalox/context.js +21 -0
- package/dist/catalox/context.js.map +1 -0
- package/dist/catalox/identity.d.ts +7 -0
- package/dist/catalox/identity.d.ts.map +1 -0
- package/dist/catalox/identity.js +26 -0
- package/dist/catalox/identity.js.map +1 -0
- package/dist/catalox/index.d.ts +6 -0
- package/dist/catalox/index.d.ts.map +1 -0
- package/dist/catalox/index.js +6 -0
- package/dist/catalox/index.js.map +1 -0
- package/dist/catalox/json-io.d.ts +3 -0
- package/dist/catalox/json-io.d.ts.map +1 -0
- package/dist/catalox/json-io.js +7 -0
- package/dist/catalox/json-io.js.map +1 -0
- package/dist/contracts/adapters.d.ts +40 -0
- package/dist/contracts/adapters.d.ts.map +1 -0
- package/dist/contracts/adapters.js +2 -0
- package/dist/contracts/adapters.js.map +1 -0
- package/dist/contracts/apps.d.ts +11 -0
- package/dist/contracts/apps.d.ts.map +1 -0
- package/dist/contracts/apps.js +2 -0
- package/dist/contracts/apps.js.map +1 -0
- package/dist/contracts/bindings.d.ts +26 -0
- package/dist/contracts/bindings.d.ts.map +1 -0
- package/dist/contracts/bindings.js +2 -0
- package/dist/contracts/bindings.js.map +1 -0
- package/dist/contracts/bootstrap.d.ts +7 -0
- package/dist/contracts/bootstrap.d.ts.map +1 -0
- package/dist/contracts/bootstrap.js +2 -0
- package/dist/contracts/bootstrap.js.map +1 -0
- package/dist/contracts/catalogs.d.ts +51 -0
- package/dist/contracts/catalogs.d.ts.map +1 -0
- package/dist/contracts/catalogs.js +2 -0
- package/dist/contracts/catalogs.js.map +1 -0
- package/dist/contracts/config.d.ts +14 -0
- package/dist/contracts/config.d.ts.map +1 -0
- package/dist/contracts/config.js +2 -0
- package/dist/contracts/config.js.map +1 -0
- package/dist/contracts/context.d.ts +11 -0
- package/dist/contracts/context.d.ts.map +1 -0
- package/dist/contracts/context.js +2 -0
- package/dist/contracts/context.js.map +1 -0
- package/dist/contracts/descriptors.d.ts +73 -0
- package/dist/contracts/descriptors.d.ts.map +1 -0
- package/dist/contracts/descriptors.js +2 -0
- package/dist/contracts/descriptors.js.map +1 -0
- package/dist/contracts/discovery.d.ts +25 -0
- package/dist/contracts/discovery.d.ts.map +1 -0
- package/dist/contracts/discovery.js +2 -0
- package/dist/contracts/discovery.js.map +1 -0
- package/dist/contracts/errors.d.ts +32 -0
- package/dist/contracts/errors.d.ts.map +1 -0
- package/dist/contracts/errors.js +53 -0
- package/dist/contracts/errors.js.map +1 -0
- package/dist/contracts/ids.d.ts +7 -0
- package/dist/contracts/ids.d.ts.map +1 -0
- package/dist/contracts/ids.js +2 -0
- package/dist/contracts/ids.js.map +1 -0
- package/dist/contracts/index.d.ts +21 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/inputs.d.ts +19 -0
- package/dist/contracts/inputs.d.ts.map +1 -0
- package/dist/contracts/inputs.js +2 -0
- package/dist/contracts/inputs.js.map +1 -0
- package/dist/contracts/item-validation.d.ts +11 -0
- package/dist/contracts/item-validation.d.ts.map +1 -0
- package/dist/contracts/item-validation.js +2 -0
- package/dist/contracts/item-validation.js.map +1 -0
- package/dist/contracts/items.d.ts +49 -0
- package/dist/contracts/items.d.ts.map +1 -0
- package/dist/contracts/items.js +2 -0
- package/dist/contracts/items.js.map +1 -0
- package/dist/contracts/mappings.d.ts +35 -0
- package/dist/contracts/mappings.d.ts.map +1 -0
- package/dist/contracts/mappings.js +2 -0
- package/dist/contracts/mappings.js.map +1 -0
- package/dist/contracts/query.d.ts +10 -0
- package/dist/contracts/query.d.ts.map +1 -0
- package/dist/contracts/query.js +2 -0
- package/dist/contracts/query.js.map +1 -0
- package/dist/contracts/references.d.ts +11 -0
- package/dist/contracts/references.d.ts.map +1 -0
- package/dist/contracts/references.js +2 -0
- package/dist/contracts/references.js.map +1 -0
- package/dist/contracts/sync.d.ts +7 -0
- package/dist/contracts/sync.d.ts.map +1 -0
- package/dist/contracts/sync.js +2 -0
- package/dist/contracts/sync.js.map +1 -0
- package/dist/contracts/validation.d.ts +12 -0
- package/dist/contracts/validation.d.ts.map +1 -0
- package/dist/contracts/validation.js +2 -0
- package/dist/contracts/validation.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +3 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/firebase/adapter-store.d.ts +15 -0
- package/dist/firebase/adapter-store.d.ts.map +1 -0
- package/dist/firebase/adapter-store.js +18 -0
- package/dist/firebase/adapter-store.js.map +1 -0
- package/dist/firebase/app-store.d.ts +11 -0
- package/dist/firebase/app-store.d.ts.map +1 -0
- package/dist/firebase/app-store.js +18 -0
- package/dist/firebase/app-store.js.map +1 -0
- package/dist/firebase/binding-store.d.ts +13 -0
- package/dist/firebase/binding-store.d.ts.map +1 -0
- package/dist/firebase/binding-store.js +35 -0
- package/dist/firebase/binding-store.js.map +1 -0
- package/dist/firebase/catalog-store.d.ts +12 -0
- package/dist/firebase/catalog-store.d.ts.map +1 -0
- package/dist/firebase/catalog-store.js +22 -0
- package/dist/firebase/catalog-store.js.map +1 -0
- package/dist/firebase/definition-store.d.ts +39 -0
- package/dist/firebase/definition-store.d.ts.map +1 -0
- package/dist/firebase/definition-store.js +18 -0
- package/dist/firebase/definition-store.js.map +1 -0
- package/dist/firebase/descriptor-store.d.ts +11 -0
- package/dist/firebase/descriptor-store.d.ts.map +1 -0
- package/dist/firebase/descriptor-store.js +18 -0
- package/dist/firebase/descriptor-store.js.map +1 -0
- package/dist/firebase/firestore-store.d.ts +14 -0
- package/dist/firebase/firestore-store.d.ts.map +1 -0
- package/dist/firebase/firestore-store.js +15 -0
- package/dist/firebase/firestore-store.js.map +1 -0
- package/dist/firebase/index.d.ts +12 -0
- package/dist/firebase/index.d.ts.map +1 -0
- package/dist/firebase/index.js +12 -0
- package/dist/firebase/index.js.map +1 -0
- package/dist/firebase/mapping-store.d.ts +11 -0
- package/dist/firebase/mapping-store.d.ts.map +1 -0
- package/dist/firebase/mapping-store.js +18 -0
- package/dist/firebase/mapping-store.js.map +1 -0
- package/dist/firebase/native-item-store.d.ts +20 -0
- package/dist/firebase/native-item-store.d.ts.map +1 -0
- package/dist/firebase/native-item-store.js +55 -0
- package/dist/firebase/native-item-store.js.map +1 -0
- package/dist/firebase/reference-store.d.ts +17 -0
- package/dist/firebase/reference-store.d.ts.map +1 -0
- package/dist/firebase/reference-store.js +27 -0
- package/dist/firebase/reference-store.js.map +1 -0
- package/dist/firebase/snapshot-store.d.ts +11 -0
- package/dist/firebase/snapshot-store.d.ts.map +1 -0
- package/dist/firebase/snapshot-store.js +22 -0
- package/dist/firebase/snapshot-store.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/mapping/execute-mapping.d.ts +8 -0
- package/dist/mapping/execute-mapping.d.ts.map +1 -0
- package/dist/mapping/execute-mapping.js +78 -0
- package/dist/mapping/execute-mapping.js.map +1 -0
- package/dist/mapping/helper-gap-report.d.ts +7 -0
- package/dist/mapping/helper-gap-report.d.ts.map +1 -0
- package/dist/mapping/helper-gap-report.js +2 -0
- package/dist/mapping/helper-gap-report.js.map +1 -0
- package/dist/mapping/index.d.ts +4 -0
- package/dist/mapping/index.d.ts.map +1 -0
- package/dist/mapping/index.js +4 -0
- package/dist/mapping/index.js.map +1 -0
- package/dist/mapping/validate-mapping.d.ts +3 -0
- package/dist/mapping/validate-mapping.d.ts.map +1 -0
- package/dist/mapping/validate-mapping.js +32 -0
- package/dist/mapping/validate-mapping.js.map +1 -0
- package/dist/src/adapters/api/api-adapter.d.ts +22 -0
- package/dist/src/adapters/api/api-adapter.d.ts.map +1 -0
- package/dist/src/adapters/api/api-adapter.js +60 -0
- package/dist/src/adapters/api/api-adapter.js.map +1 -0
- package/dist/src/adapters/api/index.d.ts +2 -0
- package/dist/src/adapters/api/index.d.ts.map +1 -0
- package/dist/src/adapters/api/index.js +2 -0
- package/dist/src/adapters/api/index.js.map +1 -0
- package/dist/src/adapters/mongo/index.d.ts +3 -0
- package/dist/src/adapters/mongo/index.d.ts.map +1 -0
- package/dist/src/adapters/mongo/index.js +3 -0
- package/dist/src/adapters/mongo/index.js.map +1 -0
- package/dist/src/adapters/mongo/mongo-adapter.d.ts +21 -0
- package/dist/src/adapters/mongo/mongo-adapter.d.ts.map +1 -0
- package/dist/src/adapters/mongo/mongo-adapter.js +57 -0
- package/dist/src/adapters/mongo/mongo-adapter.js.map +1 -0
- package/dist/src/adapters/mongo/resolve-db.d.ts +4 -0
- package/dist/src/adapters/mongo/resolve-db.d.ts.map +1 -0
- package/dist/src/adapters/mongo/resolve-db.js +10 -0
- package/dist/src/adapters/mongo/resolve-db.js.map +1 -0
- package/dist/src/bindings/index.d.ts +2 -0
- package/dist/src/bindings/index.d.ts.map +1 -0
- package/dist/src/bindings/index.js +3 -0
- package/dist/src/bindings/index.js.map +1 -0
- package/dist/src/catalox/authorization.d.ts +11 -0
- package/dist/src/catalox/authorization.d.ts.map +1 -0
- package/dist/src/catalox/authorization.js +37 -0
- package/dist/src/catalox/authorization.js.map +1 -0
- package/dist/src/catalox/catalox.d.ts +81 -0
- package/dist/src/catalox/catalox.d.ts.map +1 -0
- package/dist/src/catalox/catalox.js +513 -0
- package/dist/src/catalox/catalox.js.map +1 -0
- package/dist/src/catalox/context.d.ts +17 -0
- package/dist/src/catalox/context.d.ts.map +1 -0
- package/dist/src/catalox/context.js +21 -0
- package/dist/src/catalox/context.js.map +1 -0
- package/dist/src/catalox/identity.d.ts +7 -0
- package/dist/src/catalox/identity.d.ts.map +1 -0
- package/dist/src/catalox/identity.js +26 -0
- package/dist/src/catalox/identity.js.map +1 -0
- package/dist/src/catalox/index.d.ts +6 -0
- package/dist/src/catalox/index.d.ts.map +1 -0
- package/dist/src/catalox/index.js +6 -0
- package/dist/src/catalox/index.js.map +1 -0
- package/dist/src/catalox/json-io.d.ts +3 -0
- package/dist/src/catalox/json-io.d.ts.map +1 -0
- package/dist/src/catalox/json-io.js +7 -0
- package/dist/src/catalox/json-io.js.map +1 -0
- package/dist/src/contracts/adapters.d.ts +40 -0
- package/dist/src/contracts/adapters.d.ts.map +1 -0
- package/dist/src/contracts/adapters.js +2 -0
- package/dist/src/contracts/adapters.js.map +1 -0
- package/dist/src/contracts/apps.d.ts +11 -0
- package/dist/src/contracts/apps.d.ts.map +1 -0
- package/dist/src/contracts/apps.js +2 -0
- package/dist/src/contracts/apps.js.map +1 -0
- package/dist/src/contracts/bindings.d.ts +26 -0
- package/dist/src/contracts/bindings.d.ts.map +1 -0
- package/dist/src/contracts/bindings.js +2 -0
- package/dist/src/contracts/bindings.js.map +1 -0
- package/dist/src/contracts/bootstrap.d.ts +7 -0
- package/dist/src/contracts/bootstrap.d.ts.map +1 -0
- package/dist/src/contracts/bootstrap.js +2 -0
- package/dist/src/contracts/bootstrap.js.map +1 -0
- package/dist/src/contracts/catalogs.d.ts +51 -0
- package/dist/src/contracts/catalogs.d.ts.map +1 -0
- package/dist/src/contracts/catalogs.js +2 -0
- package/dist/src/contracts/catalogs.js.map +1 -0
- package/dist/src/contracts/config.d.ts +14 -0
- package/dist/src/contracts/config.d.ts.map +1 -0
- package/dist/src/contracts/config.js +2 -0
- package/dist/src/contracts/config.js.map +1 -0
- package/dist/src/contracts/context.d.ts +11 -0
- package/dist/src/contracts/context.d.ts.map +1 -0
- package/dist/src/contracts/context.js +2 -0
- package/dist/src/contracts/context.js.map +1 -0
- package/dist/src/contracts/descriptors.d.ts +73 -0
- package/dist/src/contracts/descriptors.d.ts.map +1 -0
- package/dist/src/contracts/descriptors.js +2 -0
- package/dist/src/contracts/descriptors.js.map +1 -0
- package/dist/src/contracts/discovery.d.ts +25 -0
- package/dist/src/contracts/discovery.d.ts.map +1 -0
- package/dist/src/contracts/discovery.js +2 -0
- package/dist/src/contracts/discovery.js.map +1 -0
- package/dist/src/contracts/errors.d.ts +32 -0
- package/dist/src/contracts/errors.d.ts.map +1 -0
- package/dist/src/contracts/errors.js +53 -0
- package/dist/src/contracts/errors.js.map +1 -0
- package/dist/src/contracts/ids.d.ts +7 -0
- package/dist/src/contracts/ids.d.ts.map +1 -0
- package/dist/src/contracts/ids.js +2 -0
- package/dist/src/contracts/ids.js.map +1 -0
- package/dist/src/contracts/index.d.ts +21 -0
- package/dist/src/contracts/index.d.ts.map +1 -0
- package/dist/src/contracts/index.js +2 -0
- package/dist/src/contracts/index.js.map +1 -0
- package/dist/src/contracts/inputs.d.ts +19 -0
- package/dist/src/contracts/inputs.d.ts.map +1 -0
- package/dist/src/contracts/inputs.js +2 -0
- package/dist/src/contracts/inputs.js.map +1 -0
- package/dist/src/contracts/item-validation.d.ts +11 -0
- package/dist/src/contracts/item-validation.d.ts.map +1 -0
- package/dist/src/contracts/item-validation.js +2 -0
- package/dist/src/contracts/item-validation.js.map +1 -0
- package/dist/src/contracts/items.d.ts +49 -0
- package/dist/src/contracts/items.d.ts.map +1 -0
- package/dist/src/contracts/items.js +2 -0
- package/dist/src/contracts/items.js.map +1 -0
- package/dist/src/contracts/mappings.d.ts +35 -0
- package/dist/src/contracts/mappings.d.ts.map +1 -0
- package/dist/src/contracts/mappings.js +2 -0
- package/dist/src/contracts/mappings.js.map +1 -0
- package/dist/src/contracts/query.d.ts +10 -0
- package/dist/src/contracts/query.d.ts.map +1 -0
- package/dist/src/contracts/query.js +2 -0
- package/dist/src/contracts/query.js.map +1 -0
- package/dist/src/contracts/references.d.ts +11 -0
- package/dist/src/contracts/references.d.ts.map +1 -0
- package/dist/src/contracts/references.js +2 -0
- package/dist/src/contracts/references.js.map +1 -0
- package/dist/src/contracts/sync.d.ts +7 -0
- package/dist/src/contracts/sync.d.ts.map +1 -0
- package/dist/src/contracts/sync.js +2 -0
- package/dist/src/contracts/sync.js.map +1 -0
- package/dist/src/contracts/validation.d.ts +12 -0
- package/dist/src/contracts/validation.d.ts.map +1 -0
- package/dist/src/contracts/validation.js +2 -0
- package/dist/src/contracts/validation.js.map +1 -0
- package/dist/src/errors/index.d.ts +2 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +3 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/firebase/adapter-store.d.ts +15 -0
- package/dist/src/firebase/adapter-store.d.ts.map +1 -0
- package/dist/src/firebase/adapter-store.js +18 -0
- package/dist/src/firebase/adapter-store.js.map +1 -0
- package/dist/src/firebase/app-store.d.ts +11 -0
- package/dist/src/firebase/app-store.d.ts.map +1 -0
- package/dist/src/firebase/app-store.js +18 -0
- package/dist/src/firebase/app-store.js.map +1 -0
- package/dist/src/firebase/binding-store.d.ts +13 -0
- package/dist/src/firebase/binding-store.d.ts.map +1 -0
- package/dist/src/firebase/binding-store.js +35 -0
- package/dist/src/firebase/binding-store.js.map +1 -0
- package/dist/src/firebase/catalog-store.d.ts +12 -0
- package/dist/src/firebase/catalog-store.d.ts.map +1 -0
- package/dist/src/firebase/catalog-store.js +22 -0
- package/dist/src/firebase/catalog-store.js.map +1 -0
- package/dist/src/firebase/definition-store.d.ts +39 -0
- package/dist/src/firebase/definition-store.d.ts.map +1 -0
- package/dist/src/firebase/definition-store.js +18 -0
- package/dist/src/firebase/definition-store.js.map +1 -0
- package/dist/src/firebase/descriptor-store.d.ts +11 -0
- package/dist/src/firebase/descriptor-store.d.ts.map +1 -0
- package/dist/src/firebase/descriptor-store.js +18 -0
- package/dist/src/firebase/descriptor-store.js.map +1 -0
- package/dist/src/firebase/firestore-store.d.ts +14 -0
- package/dist/src/firebase/firestore-store.d.ts.map +1 -0
- package/dist/src/firebase/firestore-store.js +15 -0
- package/dist/src/firebase/firestore-store.js.map +1 -0
- package/dist/src/firebase/index.d.ts +12 -0
- package/dist/src/firebase/index.d.ts.map +1 -0
- package/dist/src/firebase/index.js +12 -0
- package/dist/src/firebase/index.js.map +1 -0
- package/dist/src/firebase/mapping-store.d.ts +11 -0
- package/dist/src/firebase/mapping-store.d.ts.map +1 -0
- package/dist/src/firebase/mapping-store.js +18 -0
- package/dist/src/firebase/mapping-store.js.map +1 -0
- package/dist/src/firebase/native-item-store.d.ts +20 -0
- package/dist/src/firebase/native-item-store.d.ts.map +1 -0
- package/dist/src/firebase/native-item-store.js +55 -0
- package/dist/src/firebase/native-item-store.js.map +1 -0
- package/dist/src/firebase/reference-store.d.ts +17 -0
- package/dist/src/firebase/reference-store.d.ts.map +1 -0
- package/dist/src/firebase/reference-store.js +27 -0
- package/dist/src/firebase/reference-store.js.map +1 -0
- package/dist/src/firebase/snapshot-store.d.ts +11 -0
- package/dist/src/firebase/snapshot-store.d.ts.map +1 -0
- package/dist/src/firebase/snapshot-store.js +22 -0
- package/dist/src/firebase/snapshot-store.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mapping/execute-mapping.d.ts +8 -0
- package/dist/src/mapping/execute-mapping.d.ts.map +1 -0
- package/dist/src/mapping/execute-mapping.js +78 -0
- package/dist/src/mapping/execute-mapping.js.map +1 -0
- package/dist/src/mapping/helper-gap-report.d.ts +7 -0
- package/dist/src/mapping/helper-gap-report.d.ts.map +1 -0
- package/dist/src/mapping/helper-gap-report.js +2 -0
- package/dist/src/mapping/helper-gap-report.js.map +1 -0
- package/dist/src/mapping/index.d.ts +4 -0
- package/dist/src/mapping/index.d.ts.map +1 -0
- package/dist/src/mapping/index.js +4 -0
- package/dist/src/mapping/index.js.map +1 -0
- package/dist/src/mapping/validate-mapping.d.ts +3 -0
- package/dist/src/mapping/validate-mapping.d.ts.map +1 -0
- package/dist/src/mapping/validate-mapping.js +32 -0
- package/dist/src/mapping/validate-mapping.js.map +1 -0
- package/dist/src/validation/index.d.ts +2 -0
- package/dist/src/validation/index.d.ts.map +1 -0
- package/dist/src/validation/index.js +3 -0
- package/dist/src/validation/index.js.map +1 -0
- package/dist/test/integration/firestore.emulator.test.d.ts +2 -0
- package/dist/test/integration/firestore.emulator.test.d.ts.map +1 -0
- package/dist/test/integration/firestore.emulator.test.js +122 -0
- package/dist/test/integration/firestore.emulator.test.js.map +1 -0
- package/dist/test/unit/identity.test.d.ts +2 -0
- package/dist/test/unit/identity.test.d.ts.map +1 -0
- package/dist/test/unit/identity.test.js +18 -0
- package/dist/test/unit/identity.test.js.map +1 -0
- package/dist/test/unit/mapping.test.d.ts +2 -0
- package/dist/test/unit/mapping.test.d.ts.map +1 -0
- package/dist/test/unit/mapping.test.js +19 -0
- package/dist/test/unit/mapping.test.js.map +1 -0
- package/dist/validation/index.d.ts +2 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +3 -0
- package/dist/validation/index.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-adapter.js","sourceRoot":"","sources":["../../../../src/adapters/api/api-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mongo/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/mongo/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MongoCatalogAdapterConfig } from "../../contracts/adapters.js";
|
|
2
|
+
import type { CatalogQueryOptions } from "../../contracts/catalogs.js";
|
|
3
|
+
import type { CataloxContext } from "../../contracts/context.js";
|
|
4
|
+
import type { CatalogId } from "../../contracts/ids.js";
|
|
5
|
+
import type { UnifiedCatalogItem } from "../../contracts/items.js";
|
|
6
|
+
import type { MappingExecutionOptions } from "../../contracts/mappings.js";
|
|
7
|
+
export type MongoAdapterRuntime = {
|
|
8
|
+
mongoUri: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class MongoCatalogAdapter {
|
|
11
|
+
private readonly runtime;
|
|
12
|
+
constructor(runtime: MongoAdapterRuntime);
|
|
13
|
+
listItems(context: CataloxContext, catalogId: CatalogId, config: MongoCatalogAdapterConfig, mapping: {
|
|
14
|
+
mapping: import("../../contracts/mappings.js").CatalogFieldMappingSpec[];
|
|
15
|
+
options?: MappingExecutionOptions;
|
|
16
|
+
}, options?: CatalogQueryOptions): Promise<{
|
|
17
|
+
items: UnifiedCatalogItem[];
|
|
18
|
+
issues?: import("../../contracts/mappings.js").CatalogMappingIssue[];
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=mongo-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo-adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mongo/mongo-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAI3E,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,mBAAmB;IAEnD,SAAS,CACb,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,yBAAyB,EACjC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,6BAA6B,EAAE,uBAAuB,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,uBAAuB,CAAA;KAAE,EACxH,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;QAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,6BAA6B,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;CAyDlH"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { MongoClient } from "mongodb";
|
|
2
|
+
import { executeMapping } from "../../mapping/execute-mapping.js";
|
|
3
|
+
import { resolveMongoDbName } from "./resolve-db.js";
|
|
4
|
+
export class MongoCatalogAdapter {
|
|
5
|
+
runtime;
|
|
6
|
+
constructor(runtime) {
|
|
7
|
+
this.runtime = runtime;
|
|
8
|
+
}
|
|
9
|
+
async listItems(context, catalogId, config, mapping, options) {
|
|
10
|
+
const client = new MongoClient(this.runtime.mongoUri);
|
|
11
|
+
await client.connect();
|
|
12
|
+
try {
|
|
13
|
+
const dbName = config.databaseResolution.kind === "lookup"
|
|
14
|
+
? resolveMongoDbName(context.appId, { kind: "appId-direct" })
|
|
15
|
+
: resolveMongoDbName(context.appId, config.databaseResolution);
|
|
16
|
+
const db = client.db(dbName);
|
|
17
|
+
const coll = db.collection(config.collection);
|
|
18
|
+
const filter = {
|
|
19
|
+
...(config.queryDefaults?.filter ?? {}),
|
|
20
|
+
...(options?.filter ?? {}),
|
|
21
|
+
};
|
|
22
|
+
const sort = (options?.sort ?? config.queryDefaults?.sort ?? {});
|
|
23
|
+
const limit = options?.limit ?? 100;
|
|
24
|
+
const skip = options?.offset ?? 0;
|
|
25
|
+
const cursor = coll.find(filter).sort(sort).skip(skip).limit(limit);
|
|
26
|
+
const docs = (await cursor.toArray());
|
|
27
|
+
const items = [];
|
|
28
|
+
const issues = [];
|
|
29
|
+
for (const doc of docs) {
|
|
30
|
+
const source = doc;
|
|
31
|
+
const mapped = executeMapping(source, mapping.mapping, mapping.options);
|
|
32
|
+
if (mapped.issues)
|
|
33
|
+
issues.push(...mapped.issues);
|
|
34
|
+
const itemId = (config.idSourcePath ? source?.[config.idSourcePath] : undefined) ??
|
|
35
|
+
String(doc._id);
|
|
36
|
+
items.push({
|
|
37
|
+
itemId: String(itemId),
|
|
38
|
+
catalogId,
|
|
39
|
+
appId: context.appId,
|
|
40
|
+
sourceMode: "mapped",
|
|
41
|
+
sourceType: "mongo",
|
|
42
|
+
sourceRef: {
|
|
43
|
+
database: dbName,
|
|
44
|
+
collection: config.collection,
|
|
45
|
+
sourceRecordId: String(doc._id),
|
|
46
|
+
},
|
|
47
|
+
data: mapped.data,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return issues.length ? { items, issues } : { items };
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
await client.close();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=mongo-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo-adapter.js","sourceRoot":"","sources":["../../../../src/adapters/mongo/mongo-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AppId } from "../../contracts/ids.js";
|
|
2
|
+
import type { MongoDatabaseResolution } from "../../contracts/adapters.js";
|
|
3
|
+
export declare function resolveMongoDbName(appId: AppId, resolution: MongoDatabaseResolution): string;
|
|
4
|
+
//# sourceMappingURL=resolve-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-db.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mongo/resolve-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,uBAAuB,GAAG,MAAM,CAO5F"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function resolveMongoDbName(appId, resolution) {
|
|
2
|
+
if (resolution.kind === "appId-direct")
|
|
3
|
+
return String(appId);
|
|
4
|
+
if (resolution.kind === "template") {
|
|
5
|
+
return String(resolution.template).replaceAll("{appId}", String(appId));
|
|
6
|
+
}
|
|
7
|
+
// lookup mode requires an external lookup (Firestore) and is handled at a higher layer.
|
|
8
|
+
return String(appId);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=resolve-db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-db.js","sourceRoot":"","sources":["../../../../src/adapters/mongo/resolve-db.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAAC,KAAY,EAAE,UAAmC;IAClF,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,wFAAwF;IACxF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bindings/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AppId, CatalogId } from "../contracts/ids.js";
|
|
2
|
+
import type { CataloxContext } from "../contracts/context.js";
|
|
3
|
+
import type { CatalogBindingRecord } from "../contracts/bindings.js";
|
|
4
|
+
import { BindingStore } from "../firebase/binding-store.js";
|
|
5
|
+
export type RequiredAccess = "read" | "write" | "admin";
|
|
6
|
+
export declare class AuthorizationService {
|
|
7
|
+
private readonly bindings;
|
|
8
|
+
constructor(bindings: BindingStore);
|
|
9
|
+
requireBindingAccess(context: CataloxContext, appId: AppId, catalogId: CatalogId, required: RequiredAccess): Promise<CatalogBindingRecord>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=authorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../../../src/catalox/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAExD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAE7C,oBAAoB,CACxB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,oBAAoB,CAAC;CAiCjC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CatalogAccessDeniedError } from "../contracts/errors.js";
|
|
2
|
+
import { BindingStore } from "../firebase/binding-store.js";
|
|
3
|
+
export class AuthorizationService {
|
|
4
|
+
bindings;
|
|
5
|
+
constructor(bindings) {
|
|
6
|
+
this.bindings = bindings;
|
|
7
|
+
}
|
|
8
|
+
async requireBindingAccess(context, appId, catalogId, required) {
|
|
9
|
+
if (context.isGodMode) {
|
|
10
|
+
// God-mode policy: bypass binding for read/admin checks if needed.
|
|
11
|
+
// We still return a synthetic binding for uniformity.
|
|
12
|
+
return {
|
|
13
|
+
bindingId: `${String(appId)}:${String(catalogId)}`,
|
|
14
|
+
appId,
|
|
15
|
+
catalogId,
|
|
16
|
+
access: { canRead: true, canWrite: true, canAdmin: true },
|
|
17
|
+
status: "active",
|
|
18
|
+
createdAt: new Date(0).toISOString(),
|
|
19
|
+
updatedAt: new Date(0).toISOString(),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const binding = await this.bindings.findByAppCatalog(appId, catalogId);
|
|
23
|
+
if (!binding || binding.status !== "active") {
|
|
24
|
+
throw new CatalogAccessDeniedError({ appId, catalogId, reason: "binding_not_found_or_inactive" });
|
|
25
|
+
}
|
|
26
|
+
const ok = required === "read"
|
|
27
|
+
? Boolean(binding.access.canRead)
|
|
28
|
+
: required === "write"
|
|
29
|
+
? Boolean(binding.access.canWrite)
|
|
30
|
+
: Boolean(binding.access.canAdmin);
|
|
31
|
+
if (!ok) {
|
|
32
|
+
throw new CatalogAccessDeniedError({ appId, catalogId, required });
|
|
33
|
+
}
|
|
34
|
+
return binding;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=authorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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
|
+
private decorateItem;
|
|
36
|
+
listAppCatalogs(context: CataloxContext, input?: ListAppCatalogsInput): Promise<AppCatalogEntry[]>;
|
|
37
|
+
getCatalogDescriptor(context: CataloxContext, catalogId: CatalogId): Promise<CatalogDescriptor | null>;
|
|
38
|
+
getAppCatalogBootstrap(context: CataloxContext, appId?: AppId): Promise<AppCatalogBootstrap>;
|
|
39
|
+
listCatalogItems(context: CataloxContext, catalogId: CatalogId, options?: CatalogQueryOptions): Promise<CatalogListResult>;
|
|
40
|
+
getCatalogItem(context: CataloxContext, catalogId: CatalogId, itemId: ItemId): Promise<UnifiedCatalogItem | null>;
|
|
41
|
+
validateCatalog(_context: CataloxContext, _catalogId: CatalogId): Promise<CatalogValidationReport>;
|
|
42
|
+
validateCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _itemId: ItemId): Promise<CatalogItemValidationReport>;
|
|
43
|
+
getCatalogItemReferences(context: CataloxContext, catalogId: CatalogId, itemId: ItemId): Promise<CatalogItemReference[]>;
|
|
44
|
+
listCatalogReferences(context: CataloxContext, catalogId: CatalogId): Promise<CatalogItemReference[]>;
|
|
45
|
+
getApp(_context: CataloxContext, appId?: AppId): Promise<import("../contracts/apps.js").AppRecord | null>;
|
|
46
|
+
createCatalog(_context: CataloxContext, _input: CreateCatalogInput): Promise<import("../contracts/catalogs.js").CatalogRecord>;
|
|
47
|
+
updateCatalog(_context: CataloxContext, _catalogId: CatalogId, _patch: UpdateCatalogInput): Promise<import("../contracts/catalogs.js").CatalogRecord>;
|
|
48
|
+
getCatalog(_context: CataloxContext, catalogId: CatalogId): Promise<import("../contracts/catalogs.js").CatalogRecord | null>;
|
|
49
|
+
listCatalogs(_context: CataloxContext, _options?: CatalogQueryOptions): Promise<import("../contracts/catalogs.js").CatalogRecord[]>;
|
|
50
|
+
bindCatalogToApp(_context: CataloxContext, _input: import("../contracts/bindings.js").BindCatalogInput): Promise<any>;
|
|
51
|
+
unbindCatalogFromApp(_context: CataloxContext, _appId: AppId, _catalogId: CatalogId): Promise<void>;
|
|
52
|
+
ensureCatalog(context: CataloxContext, catalog: {
|
|
53
|
+
catalogId: CatalogId;
|
|
54
|
+
name: string;
|
|
55
|
+
status?: "active" | "disabled" | "draft";
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
ensureBinding(context: CataloxContext, input: {
|
|
58
|
+
appId: AppId;
|
|
59
|
+
catalogId: CatalogId;
|
|
60
|
+
access?: {
|
|
61
|
+
canRead?: boolean;
|
|
62
|
+
canWrite?: boolean;
|
|
63
|
+
canAdmin?: boolean;
|
|
64
|
+
};
|
|
65
|
+
}): Promise<void>;
|
|
66
|
+
createNativeCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _input: Record<string, unknown>): Promise<UnifiedCatalogItem>;
|
|
67
|
+
updateNativeCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _itemId: ItemId, _patch: Record<string, unknown>): Promise<UnifiedCatalogItem>;
|
|
68
|
+
deleteNativeCatalogItem(_context: CataloxContext, _catalogId: CatalogId, _itemId: ItemId): Promise<void>;
|
|
69
|
+
upsertNativeCatalogItem(context: CataloxContext, catalogId: CatalogId, input: Record<string, unknown>): Promise<UnifiedCatalogItem>;
|
|
70
|
+
batchUpsertNativeCatalogItems(context: CataloxContext, catalogId: CatalogId, items: Array<Record<string, unknown>>): Promise<void>;
|
|
71
|
+
importCatalogItemsFromJson<T = unknown>(json: string): T;
|
|
72
|
+
exportCatalogItemsToJson(value: unknown, pretty?: boolean): string;
|
|
73
|
+
syncMappedCatalog(_context: CataloxContext, _catalogId: CatalogId): Promise<{
|
|
74
|
+
syncStatus: "idle";
|
|
75
|
+
lastSyncedAt?: never;
|
|
76
|
+
} | {
|
|
77
|
+
syncStatus: "success";
|
|
78
|
+
lastSyncedAt: string;
|
|
79
|
+
}>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=catalox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalox.d.ts","sourceRoot":"","sources":["../../../src/catalox/catalox.ts"],"names":[],"mappings":"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"}
|