@x12i/catalox 5.1.3 → 5.2.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 (69) hide show
  1. package/README.md +2 -2
  2. package/dist/src/catalox/catalox-bound.d.ts +3 -1
  3. package/dist/src/catalox/catalox-bound.d.ts.map +1 -1
  4. package/dist/src/catalox/catalox-bound.js +6 -0
  5. package/dist/src/catalox/catalox-bound.js.map +1 -1
  6. package/dist/src/catalox/catalox.d.ts +11 -1
  7. package/dist/src/catalox/catalox.d.ts.map +1 -1
  8. package/dist/src/catalox/catalox.js +102 -0
  9. package/dist/src/catalox/catalox.js.map +1 -1
  10. package/dist/src/catalox/create-catalox.d.ts +12 -3
  11. package/dist/src/catalox/create-catalox.d.ts.map +1 -1
  12. package/dist/src/catalox/create-catalox.js +9 -1
  13. package/dist/src/catalox/create-catalox.js.map +1 -1
  14. package/dist/src/catalox/index.d.ts +1 -0
  15. package/dist/src/catalox/index.d.ts.map +1 -1
  16. package/dist/src/catalox/index.js +1 -0
  17. package/dist/src/catalox/index.js.map +1 -1
  18. package/dist/src/catalox/record-history-field.d.ts +23 -0
  19. package/dist/src/catalox/record-history-field.d.ts.map +1 -0
  20. package/dist/src/catalox/record-history-field.js +90 -0
  21. package/dist/src/catalox/record-history-field.js.map +1 -0
  22. package/dist/src/cli/index.js +47 -0
  23. package/dist/src/cli/index.js.map +1 -1
  24. package/dist/src/contracts/index.d.ts +1 -1
  25. package/dist/src/contracts/index.d.ts.map +1 -1
  26. package/dist/src/contracts/index.js.map +1 -1
  27. package/dist/src/contracts/record-history.d.ts +39 -0
  28. package/dist/src/contracts/record-history.d.ts.map +1 -1
  29. package/dist/src/embedder.d.ts +2 -1
  30. package/dist/src/embedder.d.ts.map +1 -1
  31. package/dist/src/embedder.js +2 -1
  32. package/dist/src/embedder.js.map +1 -1
  33. package/dist/src/local/in-memory-native-item-store.d.ts +27 -0
  34. package/dist/src/local/in-memory-native-item-store.d.ts.map +1 -0
  35. package/dist/src/local/in-memory-native-item-store.js +107 -0
  36. package/dist/src/local/in-memory-native-item-store.js.map +1 -0
  37. package/dist/src/local/in-memory-stores.d.ts +35 -0
  38. package/dist/src/local/in-memory-stores.d.ts.map +1 -0
  39. package/dist/src/local/in-memory-stores.js +89 -0
  40. package/dist/src/local/in-memory-stores.js.map +1 -0
  41. package/dist/src/local/index.d.ts +4 -0
  42. package/dist/src/local/index.d.ts.map +1 -0
  43. package/dist/src/local/index.js +4 -0
  44. package/dist/src/local/index.js.map +1 -0
  45. package/dist/src/local/local-file-store.d.ts +19 -0
  46. package/dist/src/local/local-file-store.d.ts.map +1 -0
  47. package/dist/src/local/local-file-store.js +25 -0
  48. package/dist/src/local/local-file-store.js.map +1 -0
  49. package/dist/src/local/local-store-error.d.ts +14 -0
  50. package/dist/src/local/local-store-error.d.ts.map +1 -0
  51. package/dist/src/local/local-store-error.js +22 -0
  52. package/dist/src/local/local-store-error.js.map +1 -0
  53. package/dist/src/local/snapshot.d.ts +36 -0
  54. package/dist/src/local/snapshot.d.ts.map +1 -0
  55. package/dist/src/local/snapshot.js +192 -0
  56. package/dist/src/local/snapshot.js.map +1 -0
  57. package/dist/src/local/stub-deps.d.ts +65 -0
  58. package/dist/src/local/stub-deps.d.ts.map +1 -0
  59. package/dist/src/local/stub-deps.js +40 -0
  60. package/dist/src/local/stub-deps.js.map +1 -0
  61. package/dist/src/local/unavailable-firestore-store.d.ts +13 -0
  62. package/dist/src/local/unavailable-firestore-store.d.ts.map +1 -0
  63. package/dist/src/local/unavailable-firestore-store.js +26 -0
  64. package/dist/src/local/unavailable-firestore-store.js.map +1 -0
  65. package/dist/src/local/wire-local-catalox.d.ts +10 -0
  66. package/dist/src/local/wire-local-catalox.d.ts.map +1 -0
  67. package/dist/src/local/wire-local-catalox.js +37 -0
  68. package/dist/src/local/wire-local-catalox.js.map +1 -0
  69. package/package.json +1 -1
@@ -0,0 +1,192 @@
1
+ import { readFileSync, existsSync, statSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { LocalStoreSnapshotError } from "./local-store-error.js";
4
+ export const FUNCX_CATALOG_LOCAL_SCHEMA_V1 = "funcx.catalog.local.v1";
5
+ function isRecord(v) {
6
+ return v != null && typeof v === "object" && !Array.isArray(v);
7
+ }
8
+ function resolveSnapshotFilePath(options) {
9
+ if (options.snapshotPath?.trim()) {
10
+ const p = path.resolve(options.snapshotPath.trim());
11
+ if (!existsSync(p)) {
12
+ throw new LocalStoreSnapshotError(`Snapshot file not found: ${p}`, { path: p });
13
+ }
14
+ return p;
15
+ }
16
+ const root = path.resolve(options.root.trim());
17
+ if (!existsSync(root)) {
18
+ throw new LocalStoreSnapshotError(`Local store root not found: ${root}`, { path: root });
19
+ }
20
+ const stat = statSync(root);
21
+ if (stat.isFile())
22
+ return root;
23
+ if (!stat.isDirectory()) {
24
+ throw new LocalStoreSnapshotError(`Local store root must be a file or directory: ${root}`, { path: root });
25
+ }
26
+ const candidates = ["catalog.local.json", "snapshot.json", "catalog.json"];
27
+ for (const name of candidates) {
28
+ const candidate = path.join(root, name);
29
+ if (existsSync(candidate) && statSync(candidate).isFile())
30
+ return candidate;
31
+ }
32
+ throw new LocalStoreSnapshotError(`No snapshot JSON found in directory ${root}. Expected one of: ${candidates.join(", ")}`, { path: root, candidates });
33
+ }
34
+ function parseSnapshotJson(raw, filePath) {
35
+ let parsed;
36
+ try {
37
+ parsed = JSON.parse(raw);
38
+ }
39
+ catch (e) {
40
+ throw new LocalStoreSnapshotError(`Invalid JSON in snapshot: ${filePath}`, {
41
+ path: filePath,
42
+ parseError: String(e?.message ?? e),
43
+ });
44
+ }
45
+ if (!isRecord(parsed)) {
46
+ throw new LocalStoreSnapshotError(`Snapshot root must be a JSON object: ${filePath}`, { path: filePath });
47
+ }
48
+ if (parsed.schemaVersion !== FUNCX_CATALOG_LOCAL_SCHEMA_V1) {
49
+ throw new LocalStoreSnapshotError(`Unsupported snapshot schemaVersion "${String(parsed.schemaVersion)}". Expected "${FUNCX_CATALOG_LOCAL_SCHEMA_V1}".`, { path: filePath, schemaVersion: parsed.schemaVersion, expected: FUNCX_CATALOG_LOCAL_SCHEMA_V1 });
50
+ }
51
+ const appId = String(parsed.appId ?? "").trim();
52
+ const catalogId = String(parsed.catalogId ?? "").trim();
53
+ if (!appId || !catalogId) {
54
+ throw new LocalStoreSnapshotError(`Snapshot must include appId and catalogId: ${filePath}`, {
55
+ path: filePath,
56
+ appId,
57
+ catalogId,
58
+ });
59
+ }
60
+ if (!Array.isArray(parsed.items)) {
61
+ throw new LocalStoreSnapshotError(`Snapshot items must be an array: ${filePath}`, { path: filePath });
62
+ }
63
+ return parsed;
64
+ }
65
+ function normalizeSnapshotItem(raw, catalogId, index) {
66
+ if (!isRecord(raw)) {
67
+ throw new LocalStoreSnapshotError(`Snapshot item at index ${index} must be an object`, { index });
68
+ }
69
+ // Unified row shape: { data, indexed?, metadata?, scope? }
70
+ if (isRecord(raw.data) && raw.itemId == null) {
71
+ const data = raw.data;
72
+ const itemId = String(data.itemId ?? "").trim();
73
+ if (!itemId) {
74
+ throw new LocalStoreSnapshotError(`Snapshot item at index ${index} is missing data.itemId`, { index });
75
+ }
76
+ const record = {
77
+ itemId,
78
+ catalogId,
79
+ data,
80
+ metadata: isRecord(raw.metadata) ? raw.metadata : {},
81
+ };
82
+ if (raw.scope != null && isRecord(raw.scope)) {
83
+ record.scope = raw.scope;
84
+ }
85
+ if (raw.indexed != null && isRecord(raw.indexed)) {
86
+ record.indexed = raw.indexed;
87
+ }
88
+ return record;
89
+ }
90
+ const itemId = String(raw.itemId ?? "").trim();
91
+ if (!itemId) {
92
+ throw new LocalStoreSnapshotError(`Snapshot item at index ${index} is missing itemId`, { index });
93
+ }
94
+ const data = isRecord(raw.data) ? raw.data : raw;
95
+ const record = {
96
+ itemId,
97
+ catalogId: String(raw.catalogId ?? catalogId),
98
+ data,
99
+ metadata: isRecord(raw.metadata) ? raw.metadata : {},
100
+ };
101
+ if (raw.scope != null && isRecord(raw.scope)) {
102
+ record.scope = raw.scope;
103
+ }
104
+ if (raw.indexed != null && isRecord(raw.indexed)) {
105
+ record.indexed = raw.indexed;
106
+ }
107
+ return record;
108
+ }
109
+ function defaultCatalogRecord(catalogId) {
110
+ const now = new Date(0).toISOString();
111
+ return {
112
+ catalogId,
113
+ name: catalogId,
114
+ catalogType: catalogId,
115
+ sourceMode: "native",
116
+ catalogItems: { providerType: "internal", metadata: {} },
117
+ metadata: { status: "active", createdAt: now, lastUpdate: now },
118
+ };
119
+ }
120
+ function defaultDescriptorRecord(catalogId) {
121
+ const now = new Date(0).toISOString();
122
+ return {
123
+ catalogId,
124
+ descriptorVersion: "1",
125
+ descriptor: {
126
+ catalogId,
127
+ label: catalogId,
128
+ sourceMode: "native",
129
+ status: "active",
130
+ capabilities: {
131
+ canList: true,
132
+ canGet: true,
133
+ canCreate: false,
134
+ canEdit: false,
135
+ canDelete: false,
136
+ canExport: true,
137
+ },
138
+ queryableFields: [
139
+ { key: "functionId", label: "Function", type: "string", indexed: true, filterable: true },
140
+ ],
141
+ identity: { itemIdStrategy: "natural", itemIdField: "itemId", titleField: "title" },
142
+ },
143
+ createdAt: now,
144
+ updatedAt: now,
145
+ };
146
+ }
147
+ function defaultBindingRecord(appId, catalogId) {
148
+ const now = new Date(0).toISOString();
149
+ return {
150
+ bindingId: `${appId}:${catalogId}`,
151
+ appId,
152
+ catalogId,
153
+ access: { canRead: true, canWrite: false, canAdmin: false },
154
+ status: "active",
155
+ createdAt: now,
156
+ updatedAt: now,
157
+ };
158
+ }
159
+ export function loadLocalSnapshot(options) {
160
+ const filePath = resolveSnapshotFilePath(options);
161
+ const raw = readFileSync(filePath, "utf8");
162
+ const snapshot = parseSnapshotJson(raw, filePath);
163
+ const prebuilt = options.prebuiltCatalog !== false;
164
+ const catalog = snapshot.catalog ??
165
+ (prebuilt ? defaultCatalogRecord(snapshot.catalogId) : undefined);
166
+ const descriptor = snapshot.descriptor ??
167
+ (prebuilt ? defaultDescriptorRecord(snapshot.catalogId) : undefined);
168
+ const binding = snapshot.binding ??
169
+ (prebuilt ? defaultBindingRecord(snapshot.appId, snapshot.catalogId) : undefined);
170
+ if (!catalog) {
171
+ throw new LocalStoreSnapshotError(`Snapshot is missing catalog record: ${filePath}`, { path: filePath });
172
+ }
173
+ if (!descriptor) {
174
+ throw new LocalStoreSnapshotError(`Snapshot is missing descriptor record: ${filePath}`, { path: filePath });
175
+ }
176
+ if (!binding) {
177
+ throw new LocalStoreSnapshotError(`Snapshot is missing binding record: ${filePath}`, { path: filePath });
178
+ }
179
+ if (catalog.catalogId !== snapshot.catalogId) {
180
+ throw new LocalStoreSnapshotError(`Catalog id mismatch: snapshot.catalogId="${snapshot.catalogId}" but catalog.catalogId="${catalog.catalogId}"`, { path: filePath, snapshotCatalogId: snapshot.catalogId, catalogCatalogId: catalog.catalogId });
181
+ }
182
+ const items = snapshot.items.map((row, i) => normalizeSnapshotItem(row, snapshot.catalogId, i));
183
+ return {
184
+ appId: snapshot.appId,
185
+ catalogId: snapshot.catalogId,
186
+ catalog,
187
+ descriptor,
188
+ binding,
189
+ items,
190
+ };
191
+ }
192
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/local/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /** Minimal no-op stores for Catalox deps not used on the local read path. */
2
+ export declare function createLocalStubDeps(): {
3
+ apps: {
4
+ get: () => Promise<null>;
5
+ upsert: () => Promise<never>;
6
+ };
7
+ definitions: {
8
+ get: () => Promise<null>;
9
+ upsert: () => Promise<never>;
10
+ };
11
+ mappings: {
12
+ get: () => Promise<null>;
13
+ upsert: () => Promise<never>;
14
+ listAll: () => Promise<any[]>;
15
+ };
16
+ references: {
17
+ listByCatalog: () => Promise<any[]>;
18
+ listByToCatalog: () => Promise<any[]>;
19
+ listReferencingCatalog: () => Promise<any[]>;
20
+ listByItem: () => Promise<any[]>;
21
+ listToItem: () => Promise<any[]>;
22
+ delete: () => Promise<never>;
23
+ upsert: () => Promise<never>;
24
+ };
25
+ snapshots: {
26
+ get: () => Promise<null>;
27
+ upsert: () => Promise<never>;
28
+ listByCatalog: () => Promise<any[]>;
29
+ };
30
+ adapters: {
31
+ get: () => Promise<null>;
32
+ upsert: () => Promise<never>;
33
+ listAll: () => Promise<any[]>;
34
+ };
35
+ catalogDataIndex: {
36
+ get: () => Promise<null>;
37
+ upsert: () => Promise<never>;
38
+ };
39
+ storeAppBindings: {
40
+ get: () => Promise<null>;
41
+ upsert: () => Promise<never>;
42
+ listByStore: () => Promise<any[]>;
43
+ };
44
+ identityBindings: {
45
+ get: () => Promise<null>;
46
+ upsert: () => Promise<never>;
47
+ listByCatalog: () => Promise<any[]>;
48
+ listByIdentity: () => Promise<any[]>;
49
+ };
50
+ catalogTypes: {
51
+ resolveForContext: () => Promise<null>;
52
+ upsert: () => Promise<never>;
53
+ };
54
+ domains: {
55
+ get: () => Promise<null>;
56
+ upsert: () => Promise<never>;
57
+ listAll: () => Promise<any[]>;
58
+ };
59
+ agents: {
60
+ get: () => Promise<null>;
61
+ upsert: () => Promise<never>;
62
+ listAll: () => Promise<any[]>;
63
+ };
64
+ };
65
+ //# sourceMappingURL=stub-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-deps.d.ts","sourceRoot":"","sources":["../../../src/local/stub-deps.ts"],"names":[],"mappings":"AAQA,6EAA6E;AAC7E,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgClC"}
@@ -0,0 +1,40 @@
1
+ import { LocalStoreReadOnlyError } from "./local-store-error.js";
2
+ function readOnly(method) {
3
+ return async () => {
4
+ throw new LocalStoreReadOnlyError(method);
5
+ };
6
+ }
7
+ /** Minimal no-op stores for Catalox deps not used on the local read path. */
8
+ export function createLocalStubDeps() {
9
+ const emptyList = async () => [];
10
+ const emptyNull = async () => null;
11
+ const noop = async () => { };
12
+ return {
13
+ apps: { get: emptyNull, upsert: readOnly("upsert app") },
14
+ definitions: { get: emptyNull, upsert: readOnly("upsert definition") },
15
+ mappings: { get: emptyNull, upsert: readOnly("upsert mapping"), listAll: emptyList },
16
+ references: {
17
+ listByCatalog: emptyList,
18
+ listByToCatalog: emptyList,
19
+ listReferencingCatalog: emptyList,
20
+ listByItem: emptyList,
21
+ listToItem: emptyList,
22
+ delete: readOnly("delete reference"),
23
+ upsert: readOnly("upsert reference"),
24
+ },
25
+ snapshots: { get: emptyNull, upsert: readOnly("upsert snapshot"), listByCatalog: emptyList },
26
+ adapters: { get: emptyNull, upsert: readOnly("upsert adapter"), listAll: emptyList },
27
+ catalogDataIndex: { get: emptyNull, upsert: readOnly("upsert catalog data index") },
28
+ storeAppBindings: { get: emptyNull, upsert: readOnly("upsert store app binding"), listByStore: emptyList },
29
+ identityBindings: {
30
+ get: emptyNull,
31
+ upsert: readOnly("upsert identity binding"),
32
+ listByCatalog: emptyList,
33
+ listByIdentity: emptyList,
34
+ },
35
+ catalogTypes: { resolveForContext: emptyNull, upsert: readOnly("upsert catalog type") },
36
+ domains: { get: emptyNull, upsert: readOnly("upsert domain"), listAll: emptyList },
37
+ agents: { get: emptyNull, upsert: readOnly("upsert agent"), listAll: emptyList },
38
+ };
39
+ }
40
+ //# sourceMappingURL=stub-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-deps.js","sourceRoot":"","sources":["../../../src/local/stub-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,SAAS,QAAQ,CAAC,MAAc;IAC9B,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB;IACjC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,EAAW,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IAE5B,OAAO;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;QACxD,WAAW,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QACtE,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;QACpF,UAAU,EAAE;YACV,aAAa,EAAE,SAAS;YACxB,eAAe,EAAE,SAAS;YAC1B,sBAAsB,EAAE,SAAS;YACjC,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC;YACpC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC;SACrC;QACD,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE;QAC5F,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;QACpF,gBAAgB,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,2BAA2B,CAAC,EAAE;QACnF,gBAAgB,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,0BAA0B,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE;QAC1G,gBAAgB,EAAE;YAChB,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC;YAC3C,aAAa,EAAE,SAAS;YACxB,cAAc,EAAE,SAAS;SAC1B;QACD,YAAY,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE;QACvF,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;QAClF,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;KACjF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Firestore } from "firebase-admin/firestore";
2
+ import { FirestoreStore } from "../firebase/firestore-store.js";
3
+ /**
4
+ * Placeholder {@link FirestoreStore} for local read-only mode.
5
+ * Operator features that touch Firestore fail fast with a clear error.
6
+ */
7
+ export declare class UnavailableFirestoreStore {
8
+ readonly firestore: Firestore;
9
+ collection(_path: string): void;
10
+ doc(_path: string): void;
11
+ }
12
+ export declare function asFirestoreStore(store: UnavailableFirestoreStore): FirestoreStore;
13
+ //# sourceMappingURL=unavailable-firestore-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unavailable-firestore-store.d.ts","sourceRoot":"","sources":["../../../src/local/unavailable-firestore-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAOhE;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,QAAQ,CAAC,SAAS,YAIf;IAEH,UAAU,CAAC,KAAK,EAAE,MAAM;IAIxB,GAAG,CAAC,KAAK,EAAE,MAAM;CAGlB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,GAAG,cAAc,CAEjF"}
@@ -0,0 +1,26 @@
1
+ import { FirestoreStore } from "../firebase/firestore-store.js";
2
+ import { LocalStoreOperatorUnavailableError } from "./local-store-error.js";
3
+ function unavailable(feature) {
4
+ throw new LocalStoreOperatorUnavailableError(feature);
5
+ }
6
+ /**
7
+ * Placeholder {@link FirestoreStore} for local read-only mode.
8
+ * Operator features that touch Firestore fail fast with a clear error.
9
+ */
10
+ export class UnavailableFirestoreStore {
11
+ firestore = new Proxy({}, {
12
+ get(_target, prop) {
13
+ unavailable(`firestore.${String(prop)}`);
14
+ },
15
+ });
16
+ collection(_path) {
17
+ unavailable("firestore.collection");
18
+ }
19
+ doc(_path) {
20
+ unavailable("firestore.doc");
21
+ }
22
+ }
23
+ export function asFirestoreStore(store) {
24
+ return store;
25
+ }
26
+ //# sourceMappingURL=unavailable-firestore-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unavailable-firestore-store.js","sourceRoot":"","sources":["../../../src/local/unavailable-firestore-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAE5E,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,IAAI,kCAAkC,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IAC3B,SAAS,GAAG,IAAI,KAAK,CAAC,EAAe,EAAE;QAC9C,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,WAAW,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;IAEH,UAAU,CAAC,KAAa;QACtB,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,KAAa;QACf,WAAW,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,OAAO,KAAkC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Catalox } from "../catalox/catalox.js";
2
+ import type { StackLoggingOptions } from "@x12i/logxer";
3
+ import type { LocalFileStore } from "./local-file-store.js";
4
+ export type CataloxLocalRuntimeConfig = {
5
+ store: LocalFileStore;
6
+ logging?: StackLoggingOptions;
7
+ };
8
+ /** Wire a {@link Catalox} instance from a loaded {@link LocalFileStore} (no Firebase). */
9
+ export declare function wireCataloxFromLocalStore(config: CataloxLocalRuntimeConfig): Catalox;
10
+ //# sourceMappingURL=wire-local-catalox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-local-catalox.d.ts","sourceRoot":"","sources":["../../../src/local/wire-local-catalox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CA8BpF"}
@@ -0,0 +1,37 @@
1
+ import { AuthorizationService } from "../catalox/authorization.js";
2
+ import { Catalox } from "../catalox/catalox.js";
3
+ import { createBundledPayloadSchemaRegistry } from "../validation/payload-schema-registry.js";
4
+ import { applyCataloxStackLogging } from "../logging.js";
5
+ import { createLocalStubDeps } from "./stub-deps.js";
6
+ import { asFirestoreStore, UnavailableFirestoreStore } from "./unavailable-firestore-store.js";
7
+ /** Wire a {@link Catalox} instance from a loaded {@link LocalFileStore} (no Firebase). */
8
+ export function wireCataloxFromLocalStore(config) {
9
+ applyCataloxStackLogging(config.logging);
10
+ const store = config.store;
11
+ const stubs = createLocalStubDeps();
12
+ const authz = new AuthorizationService(store.bindings);
13
+ const payloadSchemas = createBundledPayloadSchemaRegistry();
14
+ const firestoreStore = asFirestoreStore(new UnavailableFirestoreStore());
15
+ return new Catalox({
16
+ apps: stubs.apps,
17
+ catalogs: store.catalogs,
18
+ bindings: store.bindings,
19
+ storeAppBindings: stubs.storeAppBindings,
20
+ identityBindings: stubs.identityBindings,
21
+ catalogTypes: stubs.catalogTypes,
22
+ domains: stubs.domains,
23
+ agents: stubs.agents,
24
+ definitions: stubs.definitions,
25
+ mappings: stubs.mappings,
26
+ descriptors: store.descriptors,
27
+ references: stubs.references,
28
+ nativeItems: store.nativeItems,
29
+ snapshots: stubs.snapshots,
30
+ adapters: stubs.adapters,
31
+ firestoreStore,
32
+ catalogDataIndex: stubs.catalogDataIndex,
33
+ authz,
34
+ payloadSchemas,
35
+ });
36
+ }
37
+ //# sourceMappingURL=wire-local-catalox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-local-catalox.js","sourceRoot":"","sources":["../../../src/local/wire-local-catalox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAO/F,0FAA0F;AAC1F,MAAM,UAAU,yBAAyB,CAAC,MAAiC;IACzE,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAe,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,kCAAkC,EAAE,CAAC;IAC5D,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;IAEzE,OAAO,IAAI,OAAO,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,IAAW;QACvB,QAAQ,EAAE,KAAK,CAAC,QAAe;QAC/B,QAAQ,EAAE,KAAK,CAAC,QAAe;QAC/B,gBAAgB,EAAE,KAAK,CAAC,gBAAuB;QAC/C,gBAAgB,EAAE,KAAK,CAAC,gBAAuB;QAC/C,YAAY,EAAE,KAAK,CAAC,YAAmB;QACvC,OAAO,EAAE,KAAK,CAAC,OAAc;QAC7B,MAAM,EAAE,KAAK,CAAC,MAAa;QAC3B,WAAW,EAAE,KAAK,CAAC,WAAkB;QACrC,QAAQ,EAAE,KAAK,CAAC,QAAe;QAC/B,WAAW,EAAE,KAAK,CAAC,WAAkB;QACrC,UAAU,EAAE,KAAK,CAAC,UAAiB;QACnC,WAAW,EAAE,KAAK,CAAC,WAAkB;QACrC,SAAS,EAAE,KAAK,CAAC,SAAgB;QACjC,QAAQ,EAAE,KAAK,CAAC,QAAe;QAC/B,cAAc;QACd,gBAAgB,EAAE,KAAK,CAAC,gBAAuB;QAC/C,KAAK;QACL,cAAc;KACf,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x12i/catalox",
3
- "version": "5.1.3",
3
+ "version": "5.2.0",
4
4
  "description": "Platform infrastructure for reusable, interoperable catalogs across apps and data sources.",
5
5
  "license": "MIT",
6
6
  "private": false,