@exellix/catalox-graphs 1.2.9 → 1.3.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.3.1 — 2026-06-25
4
+
5
+ ### Fixed
6
+
7
+ - Clean `dist/` before publish (removed stale `http/`, `browser/`, `react` artifacts from 1.3.0 tarball).
8
+
9
+ ## 1.3.0 — 2026-06-25
10
+
11
+ ### Breaking
12
+
13
+ - **Layer split:** HTTP BFF and browser/React moved to sibling packages:
14
+ - `@exellix/catalox-graphs-http` — `registerCataloxGraphRoutes`
15
+ - `@exellix/catalox-graphs-ui` — `cataloxApi`, `CataloxGraphPicker`, `useCataloxGraphs`
16
+ - Removed subpath exports `./http`, `./browser`, `./react` from this package.
17
+ - This package is now **Node data tier only** (stores, loaders, Catalox runtime).
18
+
3
19
  ## 1.2.9 — 2026-06-24
4
20
 
5
21
  ### Added
package/README.md CHANGED
@@ -1,17 +1,24 @@
1
1
  # @exellix/catalox-graphs
2
2
 
3
- Shared Catalox data tier for **graphs-studio**, **jobs-api**, and **jobs-ui**: graph catalog CRUD, version checkpoints, templates, execute-time loading, HTTP proxy routes, browser client, and `CataloxGraphPicker`.
3
+ Node data tier for Catalox graph catalogs: CRUD stores, version checkpoints, templates, execute-time loaders, and readiness probes.
4
4
 
5
5
  **Authoritative store:** Catalox catalog `graphs` (full `AuthoringGraphDocument`). Mongo `exellix.graphs` is matrix id-registry only.
6
6
 
7
+ Related packages (split by layer):
8
+
9
+ | Package | Layer |
10
+ |---------|-------|
11
+ | `@exellix/catalox-graphs` | **Data tier** — stores, loaders, Catalox runtime (this package) |
12
+ | `@exellix/catalox-graphs-http` | **HTTP BFF** — Fastify `/api/catalox/*` routes |
13
+ | `@exellix/catalox-graphs-ui` | **Browser + React** — fetch client, `CataloxGraphPicker` |
14
+
7
15
  ## Exports
8
16
 
9
17
  | Import | Use |
10
18
  |--------|-----|
11
- | `@exellix/catalox-graphs` | Server stores, `createCataloxGraphDocumentLoader` / `createExecuteGraphLoader`, readiness |
12
- | `@exellix/catalox-graphs/http` | Fastify route registrar (`/api/catalox/*`) |
13
- | `@exellix/catalox-graphs/browser` | Browser fetch client |
14
- | `@exellix/catalox-graphs/react` | `CataloxGraphPicker`, `useCataloxGraphs` |
19
+ | `@exellix/catalox-graphs` | `saveGraphToCatalox`, `loadGraphFromCatalox`, `createExecuteGraphLoader`, stores, types |
20
+
21
+ For HTTP routes use `@exellix/catalox-graphs-http`. For browser/React use `@exellix/catalox-graphs-ui`.
15
22
 
16
23
  ## Env
17
24
 
@@ -25,10 +32,11 @@ Same Firebase / Catalox vars as graphs-studio:
25
32
 
26
33
  ## HTTP routes
27
34
 
28
- Mount with:
35
+ Mount BFF from the sibling package:
29
36
 
30
37
  ```ts
31
- import { registerCataloxGraphRoutes } from '@x12i/catalox-graphs/http';
38
+ import { registerCataloxGraphRoutes } from '@exellix/catalox-graphs-http';
39
+
32
40
  await registerCataloxGraphRoutes(app, { prefix: '/api/catalox' });
33
41
  ```
34
42
 
@@ -44,7 +52,7 @@ Key endpoints:
44
52
  ## React picker
45
53
 
46
54
  ```tsx
47
- import { CataloxGraphPicker } from '@x12i/catalox-graphs/react';
55
+ import { CataloxGraphPicker } from '@exellix/catalox-graphs-ui/react';
48
56
 
49
57
  <CataloxGraphPicker
50
58
  value={graphId}
@@ -55,17 +63,6 @@ import { CataloxGraphPicker } from '@x12i/catalox-graphs/react';
55
63
  />
56
64
  ```
57
65
 
58
- Studio load mode:
59
-
60
- ```tsx
61
- <CataloxGraphPicker
62
- onLoad={async (result) => {
63
- if (!result.ok) return;
64
- applyImportedGraph(result.graph, { versionSource: 'catalox', forceApply: true });
65
- }}
66
- />
67
- ```
68
-
69
66
  ## graphs-studio integration
70
67
 
71
68
  See [docs/STUDIO_INTEGRATION.md](./docs/STUDIO_INTEGRATION.md). Pair with [`@x12i/memorix-mongo`](../memorix-mongo/docs/STUDIO_INTEGRATION.md) for job memory context.
@@ -76,3 +73,30 @@ See [docs/STUDIO_INTEGRATION.md](./docs/STUDIO_INTEGRATION.md). Pair with [`@x12
76
73
  - `graph-versions` — version checkpoints
77
74
  - `graph-templates` — saved/system templates
78
75
  - `graph-concepts` — legacy concept rows (dual-write optional in studio)
76
+
77
+ ## Migration from 1.2.x
78
+
79
+ Subpath exports moved to dedicated packages:
80
+
81
+ | Before | After |
82
+ |--------|-------|
83
+ | `@exellix/catalox-graphs/http` | `@exellix/catalox-graphs-http` |
84
+ | `@exellix/catalox-graphs/browser` | `@exellix/catalox-graphs-ui` |
85
+ | `@exellix/catalox-graphs/react` | `@exellix/catalox-graphs-ui/react` |
86
+
87
+ ## Publish
88
+
89
+ Requires root `.npmrc` with your npm token (copy from `.npmrc.example` at repo root).
90
+
91
+ ```bash
92
+ # This package only
93
+ cd catalox-graphs && npm run release
94
+
95
+ # Plan without publishing
96
+ npm run release:dry
97
+
98
+ # All three catalox packages in order (graphs → http → ui)
99
+ node ../scripts/publish-all.mjs --packages catalox-graphs,catalox-graphs-http,catalox-graphs-ui --no-bump
100
+ ```
101
+
102
+ From repo root: `npm run publish:all` publishes the full core chain in dependency order.
@@ -1,4 +1,6 @@
1
1
  import type { CataloxBound } from '@x12i/catalox/embedder';
2
+ /** Share one Catalox/Firebase bound with Memorix retrieval (avoids double Firebase init). */
3
+ export declare function seedCataloxBound(preloaded: CataloxBound): void;
2
4
  export declare function resetCataloxRuntimeCache(): void;
3
5
  export declare function getCataloxBound(): Promise<CataloxBound>;
4
6
  //# sourceMappingURL=catalox-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalox-runtime.d.ts","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAY3D,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAoB7D"}
1
+ {"version":3,"file":"catalox-runtime.d.ts","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAY3D,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAG9D;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAoB7D"}
@@ -3,6 +3,11 @@ import { createCataloxFromEnv } from '@x12i/catalox/firebase';
3
3
  import { cataloxContextFromEnv, readCataloxAppId, readCataloxStoreId, } from '../config/catalox-context-from-env.js';
4
4
  let bound = null;
5
5
  let init = null;
6
+ /** Share one Catalox/Firebase bound with Memorix retrieval (avoids double Firebase init). */
7
+ export function seedCataloxBound(preloaded) {
8
+ bound = preloaded;
9
+ init = Promise.resolve(preloaded);
10
+ }
6
11
  export function resetCataloxRuntimeCache() {
7
12
  bound = null;
8
13
  init = null;
@@ -1 +1 @@
1
- {"version":3,"file":"catalox-runtime.js","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAE/C,IAAI,KAAK,GAAwB,IAAI,CAAC;AACtC,IAAI,IAAI,GAAiC,IAAI,CAAC;AAE9C,MAAM,UAAU,wBAAwB;IACtC,KAAK,GAAG,IAAI,CAAC;IACb,IAAI,GAAG,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG;gBACV,KAAK;gBACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,qBAAqB,EAAE;aAC3B,CAAC;YACF,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"catalox-runtime.js","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAE/C,IAAI,KAAK,GAAwB,IAAI,CAAC;AACtC,IAAI,IAAI,GAAiC,IAAI,CAAC;AAE9C,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAAC,SAAuB;IACtD,KAAK,GAAG,SAAS,CAAC;IAClB,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,KAAK,GAAG,IAAI,CAAC;IACb,IAAI,GAAG,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG;gBACV,KAAK;gBACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,qBAAqB,EAAE;aAC3B,CAAC;YACF,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { CATALOG_IDS, DEFAULT_LIST_LIMIT, GRAPH_VERSION_HISTORY_MAX } from './config/catalog-ids.js';
2
2
  export { cataloxContextFromEnv, hasFirebaseCredentials, readCataloxAppId, readCataloxStoreId, type CataloxServiceContext, } from './config/catalox-context-from-env.js';
3
- export { getCataloxBound, resetCataloxRuntimeCache } from './client/catalox-runtime.js';
3
+ export { getCataloxBound, resetCataloxRuntimeCache, seedCataloxBound } from './client/catalox-runtime.js';
4
4
  export { listCatalogItems, getCatalogItem, upsertCatalogItem, deleteCatalogItem, type CatalogListResponse, type CatalogGetResponse, type CatalogWriteResponse, } from './client/catalox-api.js';
5
5
  export { probeCataloxReady, invalidateCataloxReadyCache, type CataloxReadyStatus } from './readiness.js';
6
6
  export { listGraphsFromCatalox, loadGraphFromCatalox, saveGraphToCatalox, deleteGraphFromCatalox, listCompatibleGraphsFromCatalox, graphProjectSummaryFromItem, buildGraphProjectDocument, graphToCatalogPayload, readGraphFromProjectData, readAuthoringGraphFromProjectData, type CompatibleGraphFromCatalox, type ReadAuthoringGraphResult, } from './stores/graph-store.js';
@@ -12,5 +12,4 @@ export { saveGraphVersionToCatalox, loadGraphVersionFromCatalox, listGraphVersio
12
12
  export { listGraphTemplatesFromCatalox, getGraphTemplateFromCatalox, saveGraphTemplateToCatalox, deleteGraphTemplateFromCatalox, type GraphTemplateSummary, } from './stores/graph-template-store.js';
13
13
  export { loadConceptFromCatalox, saveConceptToCatalox, deleteConceptFromCatalox, } from './stores/concept-store.js';
14
14
  export type { GraphProjectSummary, GraphProjectDocument, LoadGraphResult, SaveGraphOptions, GraphVersionPayload, GraphTemplatePayload, CataloxGraphErrorCode, } from './types/graph-project.js';
15
- export { registerCataloxGraphRoutes, type RegisterCataloxGraphRoutesOptions } from './http/register-routes.js';
16
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,qBAAqB,GAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,KAAK,uCAAuC,EAC5C,KAAK,uBAAuB,GAC7B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,0BAA0B,EAAE,KAAK,iCAAiC,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,qBAAqB,GAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,KAAK,uCAAuC,EAC5C,KAAK,uBAAuB,GAC7B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { CATALOG_IDS, DEFAULT_LIST_LIMIT, GRAPH_VERSION_HISTORY_MAX } from './config/catalog-ids.js';
2
2
  export { cataloxContextFromEnv, hasFirebaseCredentials, readCataloxAppId, readCataloxStoreId, } from './config/catalox-context-from-env.js';
3
- export { getCataloxBound, resetCataloxRuntimeCache } from './client/catalox-runtime.js';
3
+ export { getCataloxBound, resetCataloxRuntimeCache, seedCataloxBound } from './client/catalox-runtime.js';
4
4
  export { listCatalogItems, getCatalogItem, upsertCatalogItem, deleteCatalogItem, } from './client/catalox-api.js';
5
5
  export { probeCataloxReady, invalidateCataloxReadyCache } from './readiness.js';
6
6
  export { listGraphsFromCatalox, loadGraphFromCatalox, saveGraphToCatalox, deleteGraphFromCatalox, listCompatibleGraphsFromCatalox, graphProjectSummaryFromItem, buildGraphProjectDocument, graphToCatalogPayload, readGraphFromProjectData, readAuthoringGraphFromProjectData, } from './stores/graph-store.js';
@@ -11,5 +11,4 @@ export { createCataloxGraphDocumentLoader, createExecuteGraphLoader, } from './s
11
11
  export { saveGraphVersionToCatalox, loadGraphVersionFromCatalox, listGraphVersionsFromCatalox, deleteGraphVersionFromCatalox, pruneGraphVersionsBeyondLimit, graphVersionItemId, parseGraphVersionItemId, } from './stores/graph-version-store.js';
12
12
  export { listGraphTemplatesFromCatalox, getGraphTemplateFromCatalox, saveGraphTemplateToCatalox, deleteGraphTemplateFromCatalox, } from './stores/graph-template-store.js';
13
13
  export { loadConceptFromCatalox, saveConceptToCatalox, deleteConceptFromCatalox, } from './stores/concept-store.js';
14
- export { registerCataloxGraphRoutes } from './http/register-routes.js';
15
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAA2B,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,GAGlC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,GAIhC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,GAGzB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,GAE/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAYnC,OAAO,EAAE,0BAA0B,EAA0C,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAA2B,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,GAGlC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,GAIhC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,GAGzB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,GAE/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC"}
@@ -3,24 +3,30 @@
3
3
  **Single source of truth:** executable graph documents live in the Catalox `graphs` catalog only.
4
4
  Do not duplicate save/load logic or persist full graphs to Mongo `exellix.graphs` (matrix id-registry only).
5
5
 
6
- ## Package
6
+ ## Packages
7
7
 
8
- `@exellix/catalox-graphs` use this for **all** graph catalog CRUD, listing, and execute-time loading.
8
+ | Layer | Package |
9
+ |-------|---------|
10
+ | Data tier (Node) | `@exellix/catalox-graphs` |
11
+ | HTTP BFF | `@exellix/catalox-graphs-http` |
12
+ | Browser + React | `@exellix/catalox-graphs-ui` |
13
+
14
+ Use `@exellix/catalox-graphs` for **all** server-side graph catalog CRUD, listing, and execute-time loading.
9
15
 
10
16
  ## Required studio integration
11
17
 
12
- | Concern | Use from `@exellix/catalox-graphs` | Do not |
13
- |---------|-----------------------------------|--------|
18
+ | Concern | Use | Do not |
19
+ |---------|-----|--------|
14
20
  | Save / load graph | `saveGraphToCatalox`, `loadGraphFromCatalox` | Inline Catalox SDK calls, duplicate HTTP |
15
- | List / picker | `listGraphsFromCatalox`, `CataloxGraphPicker`, `useCataloxGraphs` | Separate graph list API |
21
+ | List / picker | `CataloxGraphPicker`, `useCataloxGraphs` (`@exellix/catalox-graphs-ui/react`) | Separate graph list API |
16
22
  | Execute / compile load | `createCataloxGraphDocumentLoader` or `createExecuteGraphLoader` | Mongo `exellix.graphs` documents |
17
- | Versions / templates | `saveGraphVersionToCatalox`, `listGraphTemplatesFromCatalox`, HTTP routes | Ad-hoc catalog writes |
23
+ | Versions / templates | store functions from `@exellix/catalox-graphs`, HTTP from `@exellix/catalox-graphs-http` | Ad-hoc catalog writes |
18
24
  | HTTP BFF | `registerCataloxGraphRoutes(app, { prefix: '/api/catalox' })` | Re-implement `/api/catalox/*` |
19
25
 
20
26
  ### Server (BFF)
21
27
 
22
28
  ```ts
23
- import { registerCataloxGraphRoutes } from '@exellix/catalox-graphs/http';
29
+ import { registerCataloxGraphRoutes } from '@exellix/catalox-graphs-http';
24
30
 
25
31
  await registerCataloxGraphRoutes(app, { prefix: '/api/catalox' });
26
32
  ```
@@ -28,8 +34,8 @@ await registerCataloxGraphRoutes(app, { prefix: '/api/catalox' });
28
34
  ### Browser / React
29
35
 
30
36
  ```ts
31
- import { cataloxApi } from '@exellix/catalox-graphs/browser';
32
- import { CataloxGraphPicker, useCataloxGraphs } from '@exellix/catalox-graphs/react';
37
+ import { cataloxApi } from '@exellix/catalox-graphs-ui';
38
+ import { CataloxGraphPicker, useCataloxGraphs } from '@exellix/catalox-graphs-ui/react';
33
39
  ```
34
40
 
35
41
  ### Save path
@@ -46,7 +52,7 @@ Studio-only metadata (examples, `graphsStudio` UI blobs) stays in the **graphs-s
46
52
 
47
53
  | Concern | Package |
48
54
  |---------|---------|
49
- | Graph catalog, versions, templates | `@exellix/catalox-graphs` |
55
+ | Graph catalog, versions, templates | `@exellix/catalox-graphs` (+ HTTP/UI siblings) |
50
56
  | Context query types, resolution, source reads | `@x12i/memorix-mongo` |
51
57
 
52
58
  See [`@x12i/memorix-mongo` STUDIO_INTEGRATION.md](../../memorix-mongo/docs/STUDIO_INTEGRATION.md).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@exellix/catalox-graphs",
3
- "version": "1.2.9",
4
- "description": "Catalox graph catalog data tier: CRUD for graphs, versions, templates, and shared React picker.",
3
+ "version": "1.3.1",
4
+ "description": "Catalox graph catalog data tier (Node): CRUD stores, document loaders, and readiness probes.",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": ">=20"
@@ -16,18 +16,6 @@
16
16
  ".": {
17
17
  "types": "./dist/index.d.ts",
18
18
  "import": "./dist/index.js"
19
- },
20
- "./http": {
21
- "types": "./dist/http/register-routes.d.ts",
22
- "import": "./dist/http/register-routes.js"
23
- },
24
- "./browser": {
25
- "types": "./dist/browser/catalox-api-client.d.ts",
26
- "import": "./dist/browser/catalox-api-client.js"
27
- },
28
- "./react": {
29
- "types": "./dist/react/index.d.ts",
30
- "import": "./dist/react/index.js"
31
19
  }
32
20
  },
33
21
  "files": [
@@ -37,9 +25,11 @@
37
25
  "docs"
38
26
  ],
39
27
  "scripts": {
40
- "build": "tsc -p tsconfig.build.json && tsc -p tsconfig.react.json",
28
+ "build": "tsc -p tsconfig.build.json",
41
29
  "clean": "node -e \"import('node:fs').then(fs=>fs.promises.rm('dist',{recursive:true,force:true}))\"",
42
30
  "prepack": "npm run build",
31
+ "release": "node ../scripts/publish-package.mjs",
32
+ "release:dry": "node ../scripts/publish-package.mjs --dry-run",
43
33
  "test": "vitest run",
44
34
  "test:watch": "vitest",
45
35
  "patch:graphs-graphid-index": "node scripts/patch-graphs-catalog-graphid-index.mjs"
@@ -52,9 +42,6 @@
52
42
  },
53
43
  "devDependencies": {
54
44
  "@types/node": "^22.10.2",
55
- "@types/react": "^19.2.17",
56
- "fastify": "^5.8.5",
57
- "react": "^19.2.7",
58
45
  "typescript": "^5.7.2",
59
46
  "vitest": "^3.0.0"
60
47
  },
@@ -1,119 +0,0 @@
1
- export type CataloxReadyStatus = {
2
- ok: boolean;
3
- appId?: string;
4
- reason?: string;
5
- };
6
- export type GraphProjectSummary = {
7
- itemId: string;
8
- graphId: string;
9
- title: string;
10
- updatedAt?: string;
11
- status?: string;
12
- };
13
- export type CompatibleGraphSummary = {
14
- graphId: string;
15
- itemId: string;
16
- title: string;
17
- graphVersion?: string;
18
- };
19
- export type LoadGraphResponse = {
20
- ok: true;
21
- graph: Record<string, unknown>;
22
- graphId: string;
23
- concept?: Record<string, unknown>;
24
- item: Record<string, unknown>;
25
- } | {
26
- ok: false;
27
- error: string;
28
- };
29
- export declare function createCataloxApiClient(basePath?: string): {
30
- probeCataloxReady: () => Promise<CataloxReadyStatus>;
31
- listGraphsFromCatalox: (params?: {
32
- limit?: number;
33
- }) => Promise<{
34
- ok: boolean;
35
- graphs: GraphProjectSummary[];
36
- }>;
37
- listCompatibleGraphs: (params?: {
38
- entityName?: string;
39
- contentType?: string;
40
- limit?: number;
41
- }) => Promise<{
42
- ok: boolean;
43
- graphs: CompatibleGraphSummary[];
44
- totalListed: number;
45
- filtered: boolean;
46
- }>;
47
- loadGraphFromCatalox: (itemId: string) => Promise<LoadGraphResponse>;
48
- saveGraphToCatalox: (itemId: string, body: {
49
- graph: Record<string, unknown>;
50
- concept?: Record<string, unknown>;
51
- title?: string;
52
- status?: string;
53
- }) => Promise<{
54
- ok: boolean;
55
- itemId?: string;
56
- }>;
57
- deleteGraphFromCatalox: (itemId: string) => Promise<{
58
- ok: boolean;
59
- }>;
60
- listCatalogItems: (catalogId: string, limit?: number) => Promise<{
61
- ok: boolean;
62
- items: unknown[];
63
- }>;
64
- getCatalogItem: (catalogId: string, itemId: string) => Promise<{
65
- ok: boolean;
66
- item?: unknown;
67
- }>;
68
- };
69
- /** Default browser client hitting `/api/catalox/*`. */
70
- export declare const cataloxApi: {
71
- probeCataloxReady: () => Promise<CataloxReadyStatus>;
72
- listGraphsFromCatalox: (params?: {
73
- limit?: number;
74
- }) => Promise<{
75
- ok: boolean;
76
- graphs: GraphProjectSummary[];
77
- }>;
78
- listCompatibleGraphs: (params?: {
79
- entityName?: string;
80
- contentType?: string;
81
- limit?: number;
82
- }) => Promise<{
83
- ok: boolean;
84
- graphs: CompatibleGraphSummary[];
85
- totalListed: number;
86
- filtered: boolean;
87
- }>;
88
- loadGraphFromCatalox: (itemId: string) => Promise<LoadGraphResponse>;
89
- saveGraphToCatalox: (itemId: string, body: {
90
- graph: Record<string, unknown>;
91
- concept?: Record<string, unknown>;
92
- title?: string;
93
- status?: string;
94
- }) => Promise<{
95
- ok: boolean;
96
- itemId?: string;
97
- }>;
98
- deleteGraphFromCatalox: (itemId: string) => Promise<{
99
- ok: boolean;
100
- }>;
101
- listCatalogItems: (catalogId: string, limit?: number) => Promise<{
102
- ok: boolean;
103
- items: unknown[];
104
- }>;
105
- getCatalogItem: (catalogId: string, itemId: string) => Promise<{
106
- ok: boolean;
107
- item?: unknown;
108
- }>;
109
- };
110
- /** @deprecated Use {@link cataloxApi.probeCataloxReady}. */
111
- export declare const probeCataloxReady: () => Promise<CataloxReadyStatus>;
112
- /** @deprecated Use {@link cataloxApi.listGraphsFromCatalox}. */
113
- export declare const listGraphsFromCatalox: (limit?: number) => Promise<{
114
- ok: boolean;
115
- graphs: GraphProjectSummary[];
116
- }>;
117
- /** @deprecated Use {@link cataloxApi.loadGraphFromCatalox}. */
118
- export declare const loadGraphFromCatalox: (itemId: string) => Promise<LoadGraphResponse>;
119
- //# sourceMappingURL=catalox-api-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalox-api-client.d.ts","sourceRoot":"","sources":["../../src/browser/catalox-api-client.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- const DEFAULT_BASE = '/api/catalox';
2
- async function request(path, init) {
3
- const res = await fetch(`${DEFAULT_BASE}${path}`, init);
4
- if (!res.ok) {
5
- const err = (await res.json().catch(() => ({})));
6
- throw new Error(String(err.error ?? `${res.status} ${res.statusText}`));
7
- }
8
- return res.json();
9
- }
10
- export function createCataloxApiClient(basePath = DEFAULT_BASE) {
11
- const base = basePath.replace(/\/$/, '');
12
- async function call(path, init) {
13
- const res = await fetch(`${base}${path}`, init);
14
- if (!res.ok) {
15
- const err = (await res.json().catch(() => ({})));
16
- throw new Error(String(err.error ?? `${res.status} ${res.statusText}`));
17
- }
18
- return res.json();
19
- }
20
- return {
21
- probeCataloxReady: () => call('/status'),
22
- listGraphsFromCatalox: (params) => call(`/graphs${params?.limit ? `?limit=${params.limit}` : ''}`),
23
- listCompatibleGraphs: (params) => {
24
- const q = new URLSearchParams();
25
- q.set('compatible', '1');
26
- if (params?.entityName)
27
- q.set('entityName', params.entityName);
28
- if (params?.contentType)
29
- q.set('contentType', params.contentType);
30
- if (params?.limit)
31
- q.set('limit', String(params.limit));
32
- return call(`/graphs?${q.toString()}`);
33
- },
34
- loadGraphFromCatalox: (itemId) => call(`/graphs/${encodeURIComponent(itemId)}`),
35
- saveGraphToCatalox: (itemId, body) => call(`/graphs/${encodeURIComponent(itemId)}`, {
36
- method: 'PUT',
37
- headers: { 'Content-Type': 'application/json' },
38
- body: JSON.stringify(body),
39
- }),
40
- deleteGraphFromCatalox: (itemId) => call(`/graphs/${encodeURIComponent(itemId)}`, { method: 'DELETE' }),
41
- listCatalogItems: (catalogId, limit = 200) => call(`/catalogs/${encodeURIComponent(catalogId)}/items?limit=${limit}`),
42
- getCatalogItem: (catalogId, itemId) => call(`/catalogs/${encodeURIComponent(catalogId)}/items/${encodeURIComponent(itemId)}`),
43
- };
44
- }
45
- /** Default browser client hitting `/api/catalox/*`. */
46
- export const cataloxApi = createCataloxApiClient();
47
- /** @deprecated Use {@link cataloxApi.probeCataloxReady}. */
48
- export const probeCataloxReady = () => request('/status');
49
- /** @deprecated Use {@link cataloxApi.listGraphsFromCatalox}. */
50
- export const listGraphsFromCatalox = (limit) => request(`/graphs${limit ? `?limit=${limit}` : ''}`);
51
- /** @deprecated Use {@link cataloxApi.loadGraphFromCatalox}. */
52
- export const loadGraphFromCatalox = (itemId) => request(`/graphs/${encodeURIComponent(itemId)}`);
53
- //# sourceMappingURL=catalox-api-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalox-api-client.js","sourceRoot":"","sources":["../../src/browser/catalox-api-client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { FastifyInstance } from 'fastify';
2
- export type RegisterCataloxGraphRoutesOptions = {
3
- prefix?: string;
4
- };
5
- export declare function registerCataloxGraphRoutes(app: FastifyInstance, options?: RegisterCataloxGraphRoutesOptions): Promise<void>;
6
- //# sourceMappingURL=register-routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-routes.d.ts","sourceRoot":"","sources":["../../src/http/register-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAiC/C,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAoRf"}
@@ -1,288 +0,0 @@
1
- import { deleteCatalogItem, getCatalogItem, listCatalogItems, upsertCatalogItem, } from '../client/catalox-api.js';
2
- import { probeCataloxReady } from '../readiness.js';
3
- import { deleteGraphFromCatalox, listCompatibleGraphsFromCatalox, listGraphsFromCatalox, loadGraphFromCatalox, saveGraphToCatalox, } from '../stores/graph-store.js';
4
- import { deleteGraphVersionFromCatalox, listGraphVersionsFromCatalox, loadGraphVersionFromCatalox, saveGraphVersionToCatalox, } from '../stores/graph-version-store.js';
5
- import { deleteGraphTemplateFromCatalox, getGraphTemplateFromCatalox, listGraphTemplatesFromCatalox, saveGraphTemplateToCatalox, } from '../stores/graph-template-store.js';
6
- import { deleteConceptFromCatalox, loadConceptFromCatalox, saveConceptToCatalox, } from '../stores/concept-store.js';
7
- export async function registerCataloxGraphRoutes(app, options = {}) {
8
- const prefix = options.prefix ?? '/api/catalox';
9
- app.get(`${prefix}/status`, async () => probeCataloxReady());
10
- app.get(`${prefix}/graphs`, async (req, reply) => {
11
- const q = req.query;
12
- const limit = q.limit ? Number(q.limit) : undefined;
13
- const useCompatible = q.compatible === '1' ||
14
- q.compatible === 'true' ||
15
- Boolean(q.entityName && q.contentType);
16
- try {
17
- if (useCompatible) {
18
- const result = await listCompatibleGraphsFromCatalox({
19
- entityName: q.entityName,
20
- contentType: q.contentType,
21
- limit,
22
- });
23
- if (!result.ok)
24
- return reply.code(503).send({ error: result.error ?? 'Catalox unavailable' });
25
- return result;
26
- }
27
- const result = await listGraphsFromCatalox({ limit });
28
- if (!result.ok)
29
- return reply.code(503).send({ error: result.error ?? 'Catalox unavailable' });
30
- return result;
31
- }
32
- catch (err) {
33
- return reply.code(503).send({ error: String(err) });
34
- }
35
- });
36
- app.get(`${prefix}/graphs/:itemId`, async (req, reply) => {
37
- const { itemId } = req.params;
38
- try {
39
- const result = await loadGraphFromCatalox(itemId);
40
- if (!result.ok)
41
- return reply.code(404).send({ error: result.error });
42
- return result;
43
- }
44
- catch (err) {
45
- return reply.code(503).send({ error: String(err) });
46
- }
47
- });
48
- app.put(`${prefix}/graphs/:itemId`, async (req, reply) => {
49
- const { itemId } = req.params;
50
- const body = req.body;
51
- if (!body?.graph || typeof body.graph !== 'object') {
52
- return reply.code(400).send({ error: 'graph payload required' });
53
- }
54
- const graph = { ...body.graph, id: body.graph.id ?? itemId };
55
- try {
56
- const result = await saveGraphToCatalox(graph, {
57
- title: body.title,
58
- concept: body.concept,
59
- status: body.status,
60
- });
61
- if (!result.ok)
62
- return reply.code(503).send({ error: result.error });
63
- return result;
64
- }
65
- catch (err) {
66
- return reply.code(503).send({ error: String(err) });
67
- }
68
- });
69
- app.delete(`${prefix}/graphs/:itemId`, async (req, reply) => {
70
- const { itemId } = req.params;
71
- try {
72
- const result = await deleteGraphFromCatalox(itemId);
73
- if (!result.ok)
74
- return reply.code(503).send({ error: result.error });
75
- return result;
76
- }
77
- catch (err) {
78
- return reply.code(503).send({ error: String(err) });
79
- }
80
- });
81
- app.get(`${prefix}/graph-versions/:graphId`, async (req, reply) => {
82
- const { graphId } = req.params;
83
- try {
84
- const result = await listGraphVersionsFromCatalox(graphId);
85
- if (!result.ok)
86
- return reply.code(503).send({ error: result.error });
87
- return result;
88
- }
89
- catch (err) {
90
- return reply.code(503).send({ error: String(err) });
91
- }
92
- });
93
- app.get(`${prefix}/graph-versions/:graphId/:versionId`, async (req, reply) => {
94
- const { graphId, versionId } = req.params;
95
- try {
96
- const result = await loadGraphVersionFromCatalox(graphId, versionId);
97
- if (!result.ok)
98
- return reply.code(404).send({ error: result.error });
99
- return result;
100
- }
101
- catch (err) {
102
- return reply.code(503).send({ error: String(err) });
103
- }
104
- });
105
- app.put(`${prefix}/graph-versions/:graphId/:versionId`, async (req, reply) => {
106
- const { graphId, versionId } = req.params;
107
- const body = req.body;
108
- if (!body?.graph)
109
- return reply.code(400).send({ error: 'graph snapshot required' });
110
- try {
111
- const result = await saveGraphVersionToCatalox({
112
- graphId,
113
- versionId,
114
- savedAt: body.savedAt ?? new Date().toISOString(),
115
- source: body.source ?? 'checkpoint',
116
- graph: body.graph,
117
- concept: body.concept,
118
- note: body.note,
119
- });
120
- if (!result.ok)
121
- return reply.code(503).send({ error: result.error });
122
- return result;
123
- }
124
- catch (err) {
125
- return reply.code(503).send({ error: String(err) });
126
- }
127
- });
128
- app.delete(`${prefix}/graph-versions/:graphId/:versionId`, async (req, reply) => {
129
- const { graphId, versionId } = req.params;
130
- try {
131
- const result = await deleteGraphVersionFromCatalox(graphId, versionId);
132
- if (!result.ok)
133
- return reply.code(503).send({ error: result.error });
134
- return result;
135
- }
136
- catch (err) {
137
- return reply.code(503).send({ error: String(err) });
138
- }
139
- });
140
- app.get(`${prefix}/graph-templates`, async (_req, reply) => {
141
- try {
142
- const result = await listGraphTemplatesFromCatalox();
143
- if (!result.ok)
144
- return reply.code(503).send({ error: result.error });
145
- return result;
146
- }
147
- catch (err) {
148
- return reply.code(503).send({ error: String(err) });
149
- }
150
- });
151
- app.get(`${prefix}/graph-templates/:templateKey`, async (req, reply) => {
152
- const { templateKey } = req.params;
153
- try {
154
- const result = await getGraphTemplateFromCatalox(templateKey);
155
- if (!result.ok)
156
- return reply.code(404).send({ error: result.error });
157
- return result;
158
- }
159
- catch (err) {
160
- return reply.code(503).send({ error: String(err) });
161
- }
162
- });
163
- app.put(`${prefix}/graph-templates/:templateKey`, async (req, reply) => {
164
- const { templateKey } = req.params;
165
- const body = req.body;
166
- if (!body?.graphSkeleton)
167
- return reply.code(400).send({ error: 'graphSkeleton required' });
168
- try {
169
- const result = await saveGraphTemplateToCatalox({
170
- templateKey,
171
- title: String(body.title ?? templateKey),
172
- graphSkeleton: body.graphSkeleton,
173
- dynamicFields: Array.isArray(body.dynamicFields) ? body.dynamicFields : undefined,
174
- sourceGraphId: typeof body.sourceGraphId === 'string' ? body.sourceGraphId : undefined,
175
- tags: Array.isArray(body.tags) ? body.tags.map(String) : undefined,
176
- templateType: body.templateType === 'system' ? 'system' : 'saved',
177
- });
178
- if (!result.ok)
179
- return reply.code(503).send({ error: result.error });
180
- return result;
181
- }
182
- catch (err) {
183
- return reply.code(503).send({ error: String(err) });
184
- }
185
- });
186
- app.delete(`${prefix}/graph-templates/:templateKey`, async (req, reply) => {
187
- const { templateKey } = req.params;
188
- try {
189
- const result = await deleteGraphTemplateFromCatalox(templateKey);
190
- if (!result.ok)
191
- return reply.code(503).send({ error: result.error });
192
- return result;
193
- }
194
- catch (err) {
195
- return reply.code(503).send({ error: String(err) });
196
- }
197
- });
198
- app.get(`${prefix}/concepts/:graphId`, async (req, reply) => {
199
- const { graphId } = req.params;
200
- try {
201
- const result = await loadConceptFromCatalox(graphId);
202
- if (!result.ok)
203
- return reply.code(404).send({ error: result.error });
204
- return result;
205
- }
206
- catch (err) {
207
- return reply.code(503).send({ error: String(err) });
208
- }
209
- });
210
- app.put(`${prefix}/concepts/:graphId`, async (req, reply) => {
211
- const { graphId } = req.params;
212
- const body = req.body;
213
- if (!body?.concept)
214
- return reply.code(400).send({ error: 'concept required' });
215
- try {
216
- const result = await saveConceptToCatalox(graphId, body.concept, { title: body.title });
217
- if (!result.ok)
218
- return reply.code(503).send({ error: result.error });
219
- return result;
220
- }
221
- catch (err) {
222
- return reply.code(503).send({ error: String(err) });
223
- }
224
- });
225
- app.delete(`${prefix}/concepts/:graphId`, async (req, reply) => {
226
- const { graphId } = req.params;
227
- try {
228
- const result = await deleteConceptFromCatalox(graphId);
229
- if (!result.ok)
230
- return reply.code(503).send({ error: result.error });
231
- return result;
232
- }
233
- catch (err) {
234
- return reply.code(503).send({ error: String(err) });
235
- }
236
- });
237
- app.get(`${prefix}/catalogs/:catalogId/items`, async (req, reply) => {
238
- const { catalogId } = req.params;
239
- const q = req.query;
240
- try {
241
- const result = await listCatalogItems(catalogId, { limit: q.limit ? Number(q.limit) : 200 });
242
- if (!result.ok)
243
- return reply.code(503).send({ error: result.error });
244
- return result;
245
- }
246
- catch (err) {
247
- return reply.code(503).send({ error: String(err) });
248
- }
249
- });
250
- app.get(`${prefix}/catalogs/:catalogId/items/:itemId`, async (req, reply) => {
251
- const { catalogId, itemId } = req.params;
252
- try {
253
- const result = await getCatalogItem(catalogId, itemId);
254
- if (!result.ok)
255
- return reply.code(404).send({ error: result.error });
256
- return result;
257
- }
258
- catch (err) {
259
- return reply.code(503).send({ error: String(err) });
260
- }
261
- });
262
- app.put(`${prefix}/catalogs/:catalogId/items/:itemId`, async (req, reply) => {
263
- const { catalogId, itemId } = req.params;
264
- const body = req.body;
265
- try {
266
- const result = await upsertCatalogItem(catalogId, { itemId, ...body });
267
- if (!result.ok)
268
- return reply.code(503).send({ error: result.error });
269
- return result;
270
- }
271
- catch (err) {
272
- return reply.code(503).send({ error: String(err) });
273
- }
274
- });
275
- app.delete(`${prefix}/catalogs/:catalogId/items/:itemId`, async (req, reply) => {
276
- const { catalogId, itemId } = req.params;
277
- try {
278
- const result = await deleteCatalogItem(catalogId, itemId);
279
- if (!result.ok)
280
- return reply.code(503).send({ error: result.error });
281
- return result;
282
- }
283
- catch (err) {
284
- return reply.code(503).send({ error: String(err) });
285
- }
286
- });
287
- }
288
- //# sourceMappingURL=register-routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-routes.js","sourceRoot":"","sources":["../../src/http/register-routes.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { CSSProperties } from 'react';
2
- import { type CompatibleGraphSummary, type GraphProjectSummary, type LoadGraphResponse } from '../browser/catalox-api-client.js';
3
- export type CataloxGraphPickerProps = {
4
- value?: string;
5
- onChange?: (graphId: string, summary?: GraphProjectSummary | CompatibleGraphSummary) => void;
6
- /** Studio mode: full graph document load after pick. */
7
- onLoad?: (result: LoadGraphResponse) => void | Promise<void>;
8
- disabled?: boolean;
9
- placeholder?: string;
10
- entityName?: string;
11
- contentType?: string;
12
- /** When true, only graphs compatible with entityName + contentType are listed. */
13
- filterCompatible?: boolean;
14
- className?: string;
15
- style?: CSSProperties;
16
- id?: string;
17
- };
18
- export declare function CataloxGraphPicker({ value, onChange, onLoad, disabled, placeholder, entityName, contentType, filterCompatible, className, style, id, }: CataloxGraphPickerProps): import("react").JSX.Element;
19
- export { cataloxApi } from '../browser/catalox-api-client.js';
20
- export type { GraphProjectSummary, CompatibleGraphSummary, LoadGraphResponse } from '../browser/catalox-api-client.js';
21
- //# sourceMappingURL=CataloxGraphPicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CataloxGraphPicker.d.ts","sourceRoot":"","sources":["../../src/react/CataloxGraphPicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,sBAAsB,KAAK,IAAI,CAAC;IAC7F,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AASF,wBAAgB,kBAAkB,CAAC,EACjC,KAAU,EACV,QAAQ,EACR,MAAM,EACN,QAAgB,EAChB,WAAgC,EAChC,UAAU,EACV,WAAW,EACX,gBAAwB,EACxB,SAAS,EACT,KAAK,EACL,EAAE,GACH,EAAE,uBAAuB,+BAgHzB;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -1,97 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useRef, useState } from 'react';
3
- import { cataloxApi, } from '../browser/catalox-api-client.js';
4
- function formatGraphLabel(row) {
5
- const version = 'graphVersion' in row && row.graphVersion ? ` (v${row.graphVersion})` : '';
6
- const title = row.title && row.title !== row.graphId ? `${row.title} — ` : '';
7
- return `${title}${row.graphId}${version}`;
8
- }
9
- export function CataloxGraphPicker({ value = '', onChange, onLoad, disabled = false, placeholder = '— select graph —', entityName, contentType, filterCompatible = false, className, style, id, }) {
10
- const [ready, setReady] = useState(null);
11
- const [graphs, setGraphs] = useState([]);
12
- const [loading, setLoading] = useState(false);
13
- const [loadError, setLoadError] = useState(null);
14
- const loadedRef = useRef(false);
15
- const shouldFilter = filterCompatible && Boolean(entityName && contentType);
16
- useEffect(() => {
17
- let cancelled = false;
18
- (async () => {
19
- setLoading(true);
20
- setLoadError(null);
21
- try {
22
- const status = await cataloxApi.probeCataloxReady();
23
- if (cancelled)
24
- return;
25
- setReady(status.ok);
26
- if (!status.ok) {
27
- setGraphs([]);
28
- return;
29
- }
30
- if (shouldFilter) {
31
- const listed = await cataloxApi.listCompatibleGraphs({ entityName, contentType });
32
- if (cancelled)
33
- return;
34
- if (listed.graphs.length > 0 || listed.totalListed === 0) {
35
- setGraphs(listed.graphs);
36
- }
37
- else {
38
- const all = await cataloxApi.listGraphsFromCatalox();
39
- if (!cancelled)
40
- setGraphs(all.graphs);
41
- }
42
- }
43
- else {
44
- const listed = await cataloxApi.listGraphsFromCatalox();
45
- if (!cancelled)
46
- setGraphs(listed.graphs);
47
- }
48
- }
49
- catch (err) {
50
- if (!cancelled) {
51
- setLoadError(String(err));
52
- setGraphs([]);
53
- setReady(false);
54
- }
55
- }
56
- finally {
57
- if (!cancelled)
58
- setLoading(false);
59
- }
60
- })();
61
- return () => {
62
- cancelled = true;
63
- };
64
- }, [shouldFilter, entityName, contentType]);
65
- const selectedItemId = useMemo(() => {
66
- if (!value)
67
- return '';
68
- const match = graphs.find((g) => g.graphId === value || g.itemId === value);
69
- return match?.itemId ?? value;
70
- }, [graphs, value]);
71
- async function handleSelect(nextGraphId) {
72
- const summary = graphs.find((g) => g.graphId === nextGraphId || g.itemId === nextGraphId);
73
- onChange?.(summary?.graphId ?? nextGraphId, summary);
74
- if (!onLoad || !summary)
75
- return;
76
- setLoadError(null);
77
- try {
78
- const loaded = await cataloxApi.loadGraphFromCatalox(summary.itemId);
79
- await onLoad(loaded);
80
- if (!loaded.ok)
81
- setLoadError(loaded.error);
82
- }
83
- catch (err) {
84
- setLoadError(String(err));
85
- }
86
- }
87
- const isDisabled = disabled || loading || ready === false;
88
- const offLabel = ready === false ? 'Catalox off' : placeholder;
89
- return (_jsxs("div", { className: className, style: style, children: [_jsxs("select", { id: id, value: selectedItemId ? (graphs.find((g) => g.itemId === selectedItemId)?.graphId ?? value) : '', onChange: (e) => void handleSelect(e.target.value), onFocus: () => {
90
- if (!loadedRef.current && ready && graphs.length === 0) {
91
- loadedRef.current = true;
92
- }
93
- }, disabled: isDisabled, style: { width: '100%', ...(style?.width ? {} : {}) }, children: [_jsx("option", { value: "", children: loading ? 'Loading graphs…' : ready === false ? offLabel : placeholder }), graphs.map((g) => (_jsx("option", { value: g.graphId, children: formatGraphLabel(g) }, g.itemId))), value &&
94
- !graphs.some((g) => g.graphId === value || g.itemId === value) && (_jsx("option", { value: value, children: value }))] }), loadError && (_jsx("div", { style: { color: 'var(--status-failed, #e55)', fontSize: 11, marginTop: 4 }, children: loadError })), ready === false && (_jsx("div", { style: { color: 'var(--color-text-muted, #888)', fontSize: 11, marginTop: 4 }, children: "Catalox unavailable \u2014 check Firebase env and CATALOX_APP_ID." }))] }));
95
- }
96
- export { cataloxApi } from '../browser/catalox-api-client.js';
97
- //# sourceMappingURL=CataloxGraphPicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CataloxGraphPicker.js","sourceRoot":"","sources":["../../src/react/CataloxGraphPicker.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export { CataloxGraphPicker, type CataloxGraphPickerProps } from './CataloxGraphPicker.js';
2
- export { useCataloxGraphs, type UseCataloxGraphsOptions } from './useCataloxGraphs.js';
3
- export { cataloxApi, createCataloxApiClient, type CataloxReadyStatus, type GraphProjectSummary, type CompatibleGraphSummary, type LoadGraphResponse, } from '../browser/catalox-api-client.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,kCAAkC,CAAC"}
@@ -1,4 +0,0 @@
1
- export { CataloxGraphPicker } from './CataloxGraphPicker.js';
2
- export { useCataloxGraphs } from './useCataloxGraphs.js';
3
- export { cataloxApi, createCataloxApiClient, } from '../browser/catalox-api-client.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgC,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,UAAU,EACV,sBAAsB,GAKvB,MAAM,kCAAkC,CAAC"}
@@ -1,17 +0,0 @@
1
- import { type CataloxReadyStatus, type CompatibleGraphSummary, type GraphProjectSummary, type LoadGraphResponse } from '../browser/catalox-api-client.js';
2
- export type UseCataloxGraphsOptions = {
3
- entityName?: string;
4
- contentType?: string;
5
- compatible?: boolean;
6
- enabled?: boolean;
7
- };
8
- export declare function useCataloxGraphs(options?: UseCataloxGraphsOptions): {
9
- ready: CataloxReadyStatus | null;
10
- graphs: (GraphProjectSummary | CompatibleGraphSummary)[];
11
- loading: boolean;
12
- error: string | null;
13
- refresh: () => Promise<void>;
14
- loadGraph: (itemId: string) => Promise<LoadGraphResponse>;
15
- cataloxOff: boolean;
16
- };
17
- //# sourceMappingURL=useCataloxGraphs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCataloxGraphs.d.ts","sourceRoot":"","sources":["../../src/react/useCataloxGraphs.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B;;;;;;wBAuCvB,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAAC;;EAajF"}
@@ -1,56 +0,0 @@
1
- import { useCallback, useEffect, useState } from 'react';
2
- import { cataloxApi, } from '../browser/catalox-api-client.js';
3
- export function useCataloxGraphs(options = {}) {
4
- const [ready, setReady] = useState(null);
5
- const [graphs, setGraphs] = useState([]);
6
- const [loading, setLoading] = useState(false);
7
- const [error, setError] = useState(null);
8
- const refresh = useCallback(async () => {
9
- setLoading(true);
10
- setError(null);
11
- try {
12
- const status = await cataloxApi.probeCataloxReady();
13
- setReady(status);
14
- if (!status.ok) {
15
- setGraphs([]);
16
- return;
17
- }
18
- if (options.compatible && options.entityName && options.contentType) {
19
- const listed = await cataloxApi.listCompatibleGraphs({
20
- entityName: options.entityName,
21
- contentType: options.contentType,
22
- });
23
- setGraphs(listed.graphs);
24
- }
25
- else {
26
- const listed = await cataloxApi.listGraphsFromCatalox();
27
- setGraphs(listed.graphs);
28
- }
29
- }
30
- catch (err) {
31
- setError(String(err));
32
- setGraphs([]);
33
- }
34
- finally {
35
- setLoading(false);
36
- }
37
- }, [options.compatible, options.contentType, options.entityName]);
38
- useEffect(() => {
39
- if (options.enabled === false)
40
- return;
41
- void refresh();
42
- }, [options.enabled, refresh]);
43
- const loadGraph = useCallback(async (itemId) => {
44
- return cataloxApi.loadGraphFromCatalox(itemId);
45
- }, []);
46
- return {
47
- ready,
48
- graphs,
49
- loading,
50
- error,
51
- refresh,
52
- loadGraph,
53
- cataloxOff: ready !== null && !ready.ok,
54
- };
55
- }
56
- //# sourceMappingURL=useCataloxGraphs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCataloxGraphs.js","sourceRoot":"","sources":["../../src/react/useCataloxGraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EACL,UAAU,GAKX,MAAM,kCAAkC,CAAC;AAS1C,MAAM,UAAU,gBAAgB,CAAC,UAAmC,EAAE;IACpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAsD,EAAE,CAAC,CAAC;IAC9F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACpD,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,SAAS,CAAC,EAAE,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACpE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC;oBACnD,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC,CAAC;gBACH,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,qBAAqB,EAAE,CAAC;gBACxD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,SAAS,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAElE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QACtC,KAAK,OAAO,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,MAAc,EAA8B,EAAE;QACjF,OAAO,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,UAAU,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;KACxC,CAAC;AACJ,CAAC"}