@loxtep/sdk 0.7.26 → 0.7.27
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 +15 -0
- package/dist/codegen/load-workspace-context.d.ts +3 -3
- package/dist/codegen/load-workspace-context.d.ts.map +1 -1
- package/dist/codegen/load-workspace-context.js +29 -14
- package/dist/codegen/load-workspace-context.js.map +1 -1
- package/dist/config/platform-request-url.d.ts +4 -1
- package/dist/config/platform-request-url.d.ts.map +1 -1
- package/dist/config/platform-request-url.js +30 -1
- package/dist/config/platform-request-url.js.map +1 -1
- package/dist/lib/entity-json-schemas/ajv-loader.cjs +16 -1
- package/dist/lib/entity-json-schemas/validate-entity.d.ts +7 -1
- package/dist/lib/entity-json-schemas/validate-entity.d.ts.map +1 -1
- package/dist/lib/entity-json-schemas/validate-entity.js +17 -48
- package/dist/lib/entity-json-schemas/validate-entity.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
6
6
|
and this project adheres to
|
|
7
7
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
8
8
|
|
|
9
|
+
## [0.7.27] - 2026-07-24
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **Workspace context loads** paginate at the platform max page size (100)
|
|
14
|
+
instead of requesting `1000` in a single call, which exceeded the platform
|
|
15
|
+
ceiling and silently dropped results past the cap. Affects `loxtep generate`
|
|
16
|
+
and any client that resolves the full workspace context.
|
|
17
|
+
- **`buildPlatformRequestUrl`** scopes the `/dataproducts` URL-doubling fix to
|
|
18
|
+
the `/dataproducts` resource itself, instead of rewriting every sibling path
|
|
19
|
+
that shares the prefix (e.g. `/dataproducts/<id>/tables`).
|
|
20
|
+
- **Ajv loader** resolves the vendored schema validator relative to the
|
|
21
|
+
`validate-entity` module, not the process entry point, so `validateEntity()`
|
|
22
|
+
works under `pnpm`'s symlinked node layout.
|
|
23
|
+
|
|
9
24
|
## [0.7.26] - 2026-07-24
|
|
10
25
|
|
|
11
26
|
### Added
|
|
@@ -17,9 +17,9 @@ import type { WorkspaceContext } from './types.js';
|
|
|
17
17
|
* Fetch all workspace resources from the control plane and assemble them into
|
|
18
18
|
* a WorkspaceContext. The client must be configured with a valid project_id.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* List calls are paginated at the platform's max page size (100) and looped
|
|
21
|
+
* until a short page is returned, so the full resource set is fetched
|
|
22
|
+
* regardless of how many pages it spans.
|
|
23
23
|
*
|
|
24
24
|
* @param client - An authenticated LoxtepClient instance
|
|
25
25
|
* @param projectId - The project to scope the context to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-workspace-context.d.ts","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"load-workspace-context.d.ts","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAuBnD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CA8E3B"}
|
|
@@ -11,13 +11,31 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @module codegen/load-workspace-context
|
|
13
13
|
*/
|
|
14
|
+
/** Platform list endpoints cap `page_size` at 100; requesting more is a validation error. */
|
|
15
|
+
const MAX_PAGE_SIZE = 100;
|
|
16
|
+
/**
|
|
17
|
+
* Fetch every page from a `list()`-style API and return the flattened items.
|
|
18
|
+
* Stops once a page comes back shorter than `MAX_PAGE_SIZE` (i.e. the last page).
|
|
19
|
+
*/
|
|
20
|
+
async function fetchAllPages(fetchPage) {
|
|
21
|
+
const all = [];
|
|
22
|
+
let page = 1;
|
|
23
|
+
for (;;) {
|
|
24
|
+
const { items } = await fetchPage(page);
|
|
25
|
+
all.push(...items);
|
|
26
|
+
if (items.length < MAX_PAGE_SIZE)
|
|
27
|
+
break;
|
|
28
|
+
page += 1;
|
|
29
|
+
}
|
|
30
|
+
return all;
|
|
31
|
+
}
|
|
14
32
|
/**
|
|
15
33
|
* Fetch all workspace resources from the control plane and assemble them into
|
|
16
34
|
* a WorkspaceContext. The client must be configured with a valid project_id.
|
|
17
35
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
36
|
+
* List calls are paginated at the platform's max page size (100) and looped
|
|
37
|
+
* until a short page is returned, so the full resource set is fetched
|
|
38
|
+
* regardless of how many pages it spans.
|
|
21
39
|
*
|
|
22
40
|
* @param client - An authenticated LoxtepClient instance
|
|
23
41
|
* @param projectId - The project to scope the context to
|
|
@@ -28,15 +46,15 @@ export async function loadWorkspaceContext(client, projectId) {
|
|
|
28
46
|
// Fetch all resource types concurrently for performance.
|
|
29
47
|
// Project-scoped resources (workflows) use projectId directly.
|
|
30
48
|
// Org-scoped resources (data products, connectors, domains) fetch all available.
|
|
31
|
-
const [
|
|
32
|
-
client.build.data_products.list({ page
|
|
33
|
-
client.connect.connectors.list({ page
|
|
34
|
-
client.define.domains.list({ page
|
|
35
|
-
client.build.workflows.list({ project_id: projectId, page
|
|
49
|
+
const [dataProductsItems, connectorsItems, domainsItems, workflowItems] = await Promise.all([
|
|
50
|
+
fetchAllPages(page => client.build.data_products.list({ page, page_size: MAX_PAGE_SIZE })),
|
|
51
|
+
fetchAllPages(page => client.connect.connectors.list({ page, page_size: MAX_PAGE_SIZE })),
|
|
52
|
+
fetchAllPages(page => client.define.domains.list({ page, page_size: MAX_PAGE_SIZE })),
|
|
53
|
+
fetchAllPages(page => client.build.workflows.list({ project_id: projectId, page, page_size: MAX_PAGE_SIZE })),
|
|
36
54
|
]);
|
|
37
55
|
// `flows` and `workflows` are the same backend entity; the WorkspaceContext
|
|
38
56
|
// keeps both collections for the generated artifact, sourced from one fetch.
|
|
39
|
-
const
|
|
57
|
+
const flowItems = workflowItems;
|
|
40
58
|
// Fetch queues from the observe endpoint (instance-level).
|
|
41
59
|
// The observe.status() returns bot/queue info for the configured instance.
|
|
42
60
|
let queuesRaw = [];
|
|
@@ -51,21 +69,20 @@ export async function loadWorkspaceContext(client, projectId) {
|
|
|
51
69
|
queuesRaw = [];
|
|
52
70
|
}
|
|
53
71
|
// Map data products to workspace context shape
|
|
54
|
-
const dataProducts =
|
|
72
|
+
const dataProducts = dataProductsItems.map(dp => ({
|
|
55
73
|
name: dp.name,
|
|
56
74
|
id: dp.data_product_id,
|
|
57
75
|
domain: dp.domain_id ?? null,
|
|
58
76
|
schema: dp.schema ?? null,
|
|
59
77
|
}));
|
|
60
78
|
// Map connectors to workspace context shape
|
|
61
|
-
const connectors =
|
|
79
|
+
const connectors = connectorsItems.map(c => ({
|
|
62
80
|
type: c.connector_type,
|
|
63
81
|
id: c.connector_id,
|
|
64
82
|
connection_id: null, // Connectors at org-level don't have a project connection_id
|
|
65
83
|
name: c.metadata?.name ?? c.connector_type,
|
|
66
84
|
}));
|
|
67
85
|
// Map domains to workspace context shape
|
|
68
|
-
const domainsItems = domainsResult?.items ?? [];
|
|
69
86
|
const domains = domainsItems.map(d => ({
|
|
70
87
|
name: d.name,
|
|
71
88
|
id: d.domain_id,
|
|
@@ -74,13 +91,11 @@ export async function loadWorkspaceContext(client, projectId) {
|
|
|
74
91
|
.map(dp => dp.id),
|
|
75
92
|
}));
|
|
76
93
|
// Map flows to workspace context shape
|
|
77
|
-
const flowItems = flowsResult?.items ?? [];
|
|
78
94
|
const flows = flowItems.map(f => ({
|
|
79
95
|
name: f.name,
|
|
80
96
|
id: f.workflow_id,
|
|
81
97
|
}));
|
|
82
98
|
// Map workflows to workspace context shape
|
|
83
|
-
const workflowItems = workflowsResult?.items ?? [];
|
|
84
99
|
const workflows = workflowItems.map(w => ({
|
|
85
100
|
name: w.name,
|
|
86
101
|
id: w.workflow_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-workspace-context.js","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,SAAiB;IAEjB,yDAAyD;IACzD,+DAA+D;IAC/D,iFAAiF;IACjF,MAAM,
|
|
1
|
+
{"version":3,"file":"load-workspace-context.js","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,10 @@ export declare function getGatewayMicroserviceId(path: string): string;
|
|
|
13
13
|
/**
|
|
14
14
|
* Build a full request URL for a shared control-plane host.
|
|
15
15
|
* - `/ai/…`, `/graph/…`: `path` is already a full public path from the host root.
|
|
16
|
-
* - `/dataproducts/…`: SDK paths are in-service; public
|
|
16
|
+
* - `/dataproducts/…`: SDK paths for the `dataproducts` resource itself are in-service; public
|
|
17
|
+
* routes are `…/dataproducts/dataproducts/…`. Sibling resources that live directly under the
|
|
18
|
+
* `dataproducts` microservice root (`datacontracts`, `quality-metrics`, `templates`, `warehouse`,
|
|
19
|
+
* …— see `DATAPRODUCTS_SIBLING_RESOURCES`) are NOT doubled: `…/dataproducts/datacontracts`.
|
|
17
20
|
* - Most other services: in-service path starts with a microservice segment (e.g. `/workflows/projects`);
|
|
18
21
|
* public is `…/workflows/projects` (do **not** prepend the microservice again).
|
|
19
22
|
* - One-segment paths (e.g. `/workflows`, `/search`, `/governance`) still need a prefix: `…/workflows/workflow`, `…/graph/search`, `…/governance/governance`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-request-url.d.ts","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"platform-request-url.d.ts","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqDH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC7E;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,EAmBA,CAAC"}
|
|
@@ -17,6 +17,28 @@ const MICROSERVICE_OVERRIDES = {
|
|
|
17
17
|
/** Global rate limit discovery (if deployed on app stack). */
|
|
18
18
|
'rate-limits': 'app',
|
|
19
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Sibling resources that live directly under the `dataproducts` microservice root
|
|
22
|
+
* (`platform-backend/dataproducts/api/<name>/...`), as opposed to being nested one level
|
|
23
|
+
* deeper under the `dataproducts` *resource* itself (`platform-backend/dataproducts/api/dataproducts/...`,
|
|
24
|
+
* which is what the `/dataproducts/dataproducts/...` doubling in `buildPlatformRequestUrl` is for).
|
|
25
|
+
* A path like `/dataproducts/datacontracts` must NOT be doubled — the real route is
|
|
26
|
+
* `/dataproducts/datacontracts`, not `/dataproducts/dataproducts/datacontracts`.
|
|
27
|
+
*/
|
|
28
|
+
const DATAPRODUCTS_SIBLING_RESOURCES = new Set([
|
|
29
|
+
'datacontracts',
|
|
30
|
+
'quality-metrics',
|
|
31
|
+
'quality-rules',
|
|
32
|
+
'templates',
|
|
33
|
+
'warehouse',
|
|
34
|
+
'alerts',
|
|
35
|
+
'lineage',
|
|
36
|
+
'exports',
|
|
37
|
+
'connector-packages',
|
|
38
|
+
'openmetadata',
|
|
39
|
+
'agents',
|
|
40
|
+
'ai',
|
|
41
|
+
]);
|
|
20
42
|
function getSearchMicroserviceFromEnv() {
|
|
21
43
|
return process.env.LOXTEP_PLATFORM_SEARCH_MS?.trim() || 'graph';
|
|
22
44
|
}
|
|
@@ -44,7 +66,10 @@ export function getGatewayMicroserviceId(path) {
|
|
|
44
66
|
/**
|
|
45
67
|
* Build a full request URL for a shared control-plane host.
|
|
46
68
|
* - `/ai/…`, `/graph/…`: `path` is already a full public path from the host root.
|
|
47
|
-
* - `/dataproducts/…`: SDK paths are in-service; public
|
|
69
|
+
* - `/dataproducts/…`: SDK paths for the `dataproducts` resource itself are in-service; public
|
|
70
|
+
* routes are `…/dataproducts/dataproducts/…`. Sibling resources that live directly under the
|
|
71
|
+
* `dataproducts` microservice root (`datacontracts`, `quality-metrics`, `templates`, `warehouse`,
|
|
72
|
+
* …— see `DATAPRODUCTS_SIBLING_RESOURCES`) are NOT doubled: `…/dataproducts/datacontracts`.
|
|
48
73
|
* - Most other services: in-service path starts with a microservice segment (e.g. `/workflows/projects`);
|
|
49
74
|
* public is `…/workflows/projects` (do **not** prepend the microservice again).
|
|
50
75
|
* - One-segment paths (e.g. `/workflows`, `/search`, `/governance`) still need a prefix: `…/workflows/workflow`, `…/graph/search`, `…/governance/governance`.
|
|
@@ -67,6 +92,10 @@ export function buildPlatformRequestUrl(apiHost, path) {
|
|
|
67
92
|
const first = segments[0] ?? '';
|
|
68
93
|
const microservice = getGatewayMicroserviceId(p);
|
|
69
94
|
if (first === 'dataproducts') {
|
|
95
|
+
const second = segments[1];
|
|
96
|
+
if (second && DATAPRODUCTS_SIBLING_RESOURCES.has(second)) {
|
|
97
|
+
return `${host}${p}${search}`;
|
|
98
|
+
}
|
|
70
99
|
return `${host}/dataproducts/dataproducts${p.slice('/dataproducts'.length)}${search}`;
|
|
71
100
|
}
|
|
72
101
|
if (segments.length === 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-request-url.js","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yGAAyG;AACzG,MAAM,+BAA+B,GAAG,qBAAqB,CAAC;AAE9D,MAAM,sBAAsB,GAAqC;IAC/D,mEAAmE;IACnE,OAAO,EAAE,KAAK;IACd,8DAA8D;IAC9D,aAAa,EAAE,KAAK;CACrB,CAAC;AAEF,SAAS,4BAA4B;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,4BAA4B,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAChD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"platform-request-url.js","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,20 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* CJS Ajv loader — keeps Jest (ts-jest CJS) and Node ESM consumers happy.
|
|
5
5
|
* Do not rename to .ts; require() of ajv must stay in CommonJS.
|
|
6
|
+
*
|
|
7
|
+
* This file is always required via a *relative* specifier from
|
|
8
|
+
* `validate-entity.ts`/`.js` (its own sibling in the same directory, in both
|
|
9
|
+
* `src/` and `dist/`), never located by searching `process.argv`/`process.cwd()`.
|
|
10
|
+
* That means `require('ajv')` below resolves relative to *this file's own*
|
|
11
|
+
* location — i.e. through `@loxtep/sdk`'s own `node_modules` — regardless of
|
|
12
|
+
* whether the caller is the CLI or a consumer app importing the SDK as a
|
|
13
|
+
* library, and regardless of package manager (works under pnpm's strict/
|
|
14
|
+
* non-hoisted `node_modules` too, unlike a `require()` anchored at the
|
|
15
|
+
* caller's `cwd`).
|
|
6
16
|
*/
|
|
7
17
|
|
|
18
|
+
const path = require('node:path');
|
|
19
|
+
|
|
8
20
|
const ajvModule = require('ajv');
|
|
9
21
|
const formatsModule = require('ajv-formats');
|
|
10
22
|
|
|
@@ -14,4 +26,7 @@ const addFormats =
|
|
|
14
26
|
? formatsModule
|
|
15
27
|
: formatsModule.default || formatsModule;
|
|
16
28
|
|
|
17
|
-
|
|
29
|
+
// This file always lives at <packageRoot>/(src|dist)/lib/entity-json-schemas/ajv-loader.cjs.
|
|
30
|
+
const packageRoot = path.resolve(__dirname, '..', '..', '..');
|
|
31
|
+
|
|
32
|
+
module.exports = { Ajv, addFormats, packageRoot };
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
* Offline entity validation against vendored JSON Schemas (Ajv).
|
|
3
3
|
* Schemas live in `nodejs/schemas/entity-json-schemas/` (shipped with the npm package).
|
|
4
4
|
*
|
|
5
|
-
* Ajv is loaded via `ajv-loader.cjs
|
|
5
|
+
* Ajv is loaded via `ajv-loader.cjs`, required by *relative path* below (not located by
|
|
6
|
+
* searching `process.argv`/`process.cwd()`). A relative `require`/`import` always resolves
|
|
7
|
+
* against this file's own location, so it finds the right sibling `ajv-loader.cjs` (in `src/`
|
|
8
|
+
* under Jest, in `dist/` when published) and — critically — `ajv-loader.cjs`'s own
|
|
9
|
+
* `require('ajv')` then resolves through `@loxtep/sdk`'s own `node_modules`, regardless of
|
|
10
|
+
* the caller's cwd/entry point or package manager (this used to break under pnpm's strict
|
|
11
|
+
* `node_modules` when the SDK was imported as a library rather than run as the CLI).
|
|
6
12
|
*/
|
|
7
13
|
import { EntityType } from './types.js';
|
|
8
14
|
type AjvErrorObject = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-entity.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/validate-entity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validate-entity.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/validate-entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAI7D,KAAK,cAAc,GAAG;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,gBAAgB,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG;IACrD,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;CAClC,CAAC;AAoBF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAsCD,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAOzD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAerE;AAWD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,OAAO,GACd,sBAAsB,CAOxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAMnF;AAED,+BAA+B;AAC/B,wBAAgB,6BAA6B,IAAI,IAAI,CAGpD"}
|
|
@@ -2,61 +2,30 @@
|
|
|
2
2
|
* Offline entity validation against vendored JSON Schemas (Ajv).
|
|
3
3
|
* Schemas live in `nodejs/schemas/entity-json-schemas/` (shipped with the npm package).
|
|
4
4
|
*
|
|
5
|
-
* Ajv is loaded via `ajv-loader.cjs
|
|
5
|
+
* Ajv is loaded via `ajv-loader.cjs`, required by *relative path* below (not located by
|
|
6
|
+
* searching `process.argv`/`process.cwd()`). A relative `require`/`import` always resolves
|
|
7
|
+
* against this file's own location, so it finds the right sibling `ajv-loader.cjs` (in `src/`
|
|
8
|
+
* under Jest, in `dist/` when published) and — critically — `ajv-loader.cjs`'s own
|
|
9
|
+
* `require('ajv')` then resolves through `@loxtep/sdk`'s own `node_modules`, regardless of
|
|
10
|
+
* the caller's cwd/entry point or package manager (this used to break under pnpm's strict
|
|
11
|
+
* `node_modules` when the SDK was imported as a library rather than run as the CLI).
|
|
6
12
|
*/
|
|
13
|
+
import { createRequire as _createRequire } from "module";
|
|
14
|
+
const __require = _createRequire(import.meta.url);
|
|
7
15
|
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
8
|
-
import {
|
|
9
|
-
import { dirname, join } from 'node:path';
|
|
16
|
+
import { join } from 'node:path';
|
|
10
17
|
import { ENTITY_SCHEMA_FILES } from './types.js';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (entry) {
|
|
15
|
-
let dir = dirname(entry);
|
|
16
|
-
for (let i = 0; i < 8; i++) {
|
|
17
|
-
roots.push(dir);
|
|
18
|
-
const parent = dirname(dir);
|
|
19
|
-
if (parent === dir)
|
|
20
|
-
break;
|
|
21
|
-
dir = parent;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return roots;
|
|
25
|
-
}
|
|
26
|
-
function loadAjv() {
|
|
27
|
-
for (const root of findPackageRootCandidates()) {
|
|
28
|
-
for (const rel of [
|
|
29
|
-
'src/lib/entity-json-schemas/ajv-loader.cjs',
|
|
30
|
-
'dist/lib/entity-json-schemas/ajv-loader.cjs',
|
|
31
|
-
]) {
|
|
32
|
-
const loaderPath = join(root, rel);
|
|
33
|
-
if (!existsSync(loaderPath))
|
|
34
|
-
continue;
|
|
35
|
-
const req = createRequire(loaderPath);
|
|
36
|
-
return req(loaderPath);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// Last resort: resolve ajv from cwd package.json (dev / monorepo).
|
|
40
|
-
const req = createRequire(join(process.cwd(), 'package.json'));
|
|
41
|
-
const ajvMod = req('ajv');
|
|
42
|
-
const formatsMod = req('ajv-formats');
|
|
43
|
-
return {
|
|
44
|
-
Ajv: ajvMod.Ajv ?? ajvMod.default ?? ajvMod,
|
|
45
|
-
addFormats: typeof formatsMod === 'function' ? formatsMod : formatsMod.default,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
const { Ajv: AjvCtor, addFormats } = loadAjv();
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports -- CJS interop, see comment above.
|
|
19
|
+
const ajvLoader = __require("./ajv-loader.cjs");
|
|
20
|
+
const { Ajv: AjvCtor, addFormats, packageRoot } = ajvLoader;
|
|
49
21
|
let ajvInstance = null;
|
|
50
22
|
const validatorCache = new Map();
|
|
51
23
|
function resolveSchemasDir() {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (existsSync(join(dir, 'workflow.json'))) {
|
|
56
|
-
return dir;
|
|
57
|
-
}
|
|
24
|
+
const dir = join(packageRoot, 'schemas', 'entity-json-schemas');
|
|
25
|
+
if (existsSync(join(dir, 'workflow.json'))) {
|
|
26
|
+
return dir;
|
|
58
27
|
}
|
|
59
|
-
throw new Error(`Entity JSON schemas not found. Expected
|
|
28
|
+
throw new Error(`Entity JSON schemas not found. Expected ${dir}`);
|
|
60
29
|
}
|
|
61
30
|
function getAjv() {
|
|
62
31
|
if (!ajvInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-entity.js","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/validate-entity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validate-entity.js","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/validate-entity.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loxtep/sdk",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.27",
|
|
4
4
|
"description": "Loxtep SDK for Node.js — the Enterprise Context Layer: data products, workflows, projects, queues, and machine-usable context for AI",
|
|
5
5
|
"author": "Loxtep <engineering@loxtep.io>",
|
|
6
6
|
"homepage": "https://loxtep.io",
|