@loxtep/sdk 0.7.22 → 0.7.26
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 +64 -0
- package/README.md +6 -1
- package/dist/authoring/toolbox.d.ts.map +1 -1
- package/dist/authoring/toolbox.js +15 -3
- package/dist/authoring/toolbox.js.map +1 -1
- package/dist/cli/commands/connectors-cmd.d.ts +23 -0
- package/dist/cli/commands/connectors-cmd.d.ts.map +1 -0
- package/dist/cli/commands/connectors-cmd.js +32 -0
- package/dist/cli/commands/connectors-cmd.js.map +1 -0
- package/dist/cli/commands/delivery-cmd.d.ts +23 -0
- package/dist/cli/commands/delivery-cmd.d.ts.map +1 -0
- package/dist/cli/commands/delivery-cmd.js +151 -0
- package/dist/cli/commands/delivery-cmd.js.map +1 -0
- package/dist/cli/commands/deploy-cmd.d.ts +5 -1
- package/dist/cli/commands/deploy-cmd.d.ts.map +1 -1
- package/dist/cli/commands/deploy-cmd.js +39 -4
- package/dist/cli/commands/deploy-cmd.js.map +1 -1
- package/dist/cli/commands/ingest-cmd.d.ts +13 -3
- package/dist/cli/commands/ingest-cmd.d.ts.map +1 -1
- package/dist/cli/commands/ingest-cmd.js +136 -31
- package/dist/cli/commands/ingest-cmd.js.map +1 -1
- package/dist/cli/commands/lint-cmd.d.ts +17 -0
- package/dist/cli/commands/lint-cmd.d.ts.map +1 -0
- package/dist/cli/commands/lint-cmd.js +61 -0
- package/dist/cli/commands/lint-cmd.js.map +1 -0
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +1 -0
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/push-cmd.d.ts +21 -0
- package/dist/cli/commands/push-cmd.d.ts.map +1 -0
- package/dist/cli/commands/push-cmd.js +108 -0
- package/dist/cli/commands/push-cmd.js.map +1 -0
- package/dist/cli/commands/transform-cmd.d.ts +22 -0
- package/dist/cli/commands/transform-cmd.d.ts.map +1 -0
- package/dist/cli/commands/transform-cmd.js +148 -0
- package/dist/cli/commands/transform-cmd.js.map +1 -0
- package/dist/cli/commands/triggers-cmd.d.ts +4 -0
- package/dist/cli/commands/triggers-cmd.d.ts.map +1 -1
- package/dist/cli/commands/triggers-cmd.js +41 -9
- package/dist/cli/commands/triggers-cmd.js.map +1 -1
- package/dist/cli/commands/workflows-cmd.d.ts +2 -0
- package/dist/cli/commands/workflows-cmd.d.ts.map +1 -1
- package/dist/cli/commands/workflows-cmd.js +13 -0
- package/dist/cli/commands/workflows-cmd.js.map +1 -1
- package/dist/cli/credentials.d.ts.map +1 -1
- package/dist/cli/credentials.js +7 -2
- package/dist/cli/credentials.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +26 -6
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.js +131 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/update-notifier.d.ts +45 -0
- package/dist/cli/update-notifier.d.ts.map +1 -0
- package/dist/cli/update-notifier.js +154 -0
- package/dist/cli/update-notifier.js.map +1 -0
- package/dist/client/connectors.d.ts.map +1 -1
- package/dist/client/connectors.js +7 -1
- package/dist/client/connectors.js.map +1 -1
- package/dist/client/data-products-types.d.ts +2 -2
- package/dist/client/data-products-types.d.ts.map +1 -1
- package/dist/client/data-products.d.ts.map +1 -1
- package/dist/client/data-products.js +30 -11
- package/dist/client/data-products.js.map +1 -1
- package/dist/client/flow-types.d.ts +4 -0
- package/dist/client/flow-types.d.ts.map +1 -1
- package/dist/client/projects.d.ts +2 -0
- package/dist/client/projects.d.ts.map +1 -1
- package/dist/client/projects.js +4 -0
- package/dist/client/projects.js.map +1 -1
- package/dist/client/queues.d.ts.map +1 -1
- package/dist/client/queues.js +26 -3
- package/dist/client/queues.js.map +1 -1
- package/dist/client/target-types.d.ts +82 -79
- package/dist/client/target-types.d.ts.map +1 -1
- package/dist/client/target-types.js +2 -6
- package/dist/client/target-types.js.map +1 -1
- package/dist/client/targets.d.ts +27 -12
- package/dist/client/targets.d.ts.map +1 -1
- package/dist/client/targets.js +130 -84
- package/dist/client/targets.js.map +1 -1
- package/dist/client/trigger-types.d.ts +12 -1
- package/dist/client/trigger-types.d.ts.map +1 -1
- package/dist/client/trigger-types.js +1 -1
- package/dist/client/triggers.d.ts +20 -6
- package/dist/client/triggers.d.ts.map +1 -1
- package/dist/client/triggers.js +128 -45
- package/dist/client/triggers.js.map +1 -1
- package/dist/config/platform-request-url.d.ts +1 -5
- package/dist/config/platform-request-url.d.ts.map +1 -1
- package/dist/config/platform-request-url.js +22 -13
- package/dist/config/platform-request-url.js.map +1 -1
- package/dist/config/resolve-sdk-urls.d.ts.map +1 -1
- package/dist/config/resolve-sdk-urls.js +6 -4
- package/dist/config/resolve-sdk-urls.js.map +1 -1
- package/dist/errors/parse-http.d.ts.map +1 -1
- package/dist/errors/parse-http.js +50 -12
- package/dist/errors/parse-http.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/entity-json-schemas/ajv-loader.cjs +17 -0
- package/dist/lib/entity-json-schemas/index.d.ts +5 -0
- package/dist/lib/entity-json-schemas/index.d.ts.map +1 -0
- package/dist/lib/entity-json-schemas/index.js +3 -0
- package/dist/lib/entity-json-schemas/index.js.map +1 -0
- package/dist/lib/entity-json-schemas/types.d.ts +21 -0
- package/dist/lib/entity-json-schemas/types.d.ts.map +1 -0
- package/dist/lib/entity-json-schemas/types.js +32 -0
- package/dist/lib/entity-json-schemas/types.js.map +1 -0
- package/dist/lib/entity-json-schemas/validate-entity.d.ts +39 -0
- package/dist/lib/entity-json-schemas/validate-entity.d.ts.map +1 -0
- package/dist/lib/entity-json-schemas/validate-entity.js +143 -0
- package/dist/lib/entity-json-schemas/validate-entity.js.map +1 -0
- package/dist/lib/sdk-ingest-bundle.d.ts +62 -4
- package/dist/lib/sdk-ingest-bundle.d.ts.map +1 -1
- package/dist/lib/sdk-ingest-bundle.js +147 -51
- package/dist/lib/sdk-ingest-bundle.js.map +1 -1
- package/dist/lib/workspace-lint.d.ts +28 -0
- package/dist/lib/workspace-lint.d.ts.map +1 -0
- package/dist/lib/workspace-lint.js +199 -0
- package/dist/lib/workspace-lint.js.map +1 -0
- package/dist/skills/loader.d.ts +10 -10
- package/docs/getting-started.md +2 -0
- package/docs/quick-reference.md +1 -0
- package/docs/sdk-first-ingest.md +19 -3
- package/package.json +6 -2
- package/schemas/entity-json-schemas/SCHEMA_SYNC.md +18 -0
- package/schemas/entity-json-schemas/connection.json +310 -0
- package/schemas/entity-json-schemas/connector.json +188 -0
- package/schemas/entity-json-schemas/container.json +71 -0
- package/schemas/entity-json-schemas/contract.json +228 -0
- package/schemas/entity-json-schemas/data-product.json +163 -0
- package/schemas/entity-json-schemas/domain.json +74 -0
- package/schemas/entity-json-schemas/export.json +126 -0
- package/schemas/entity-json-schemas/odps-product.json +150 -0
- package/schemas/entity-json-schemas/quality-rule.json +115 -0
- package/schemas/entity-json-schemas/schema.json +206 -0
- package/schemas/entity-json-schemas/transformation.json +166 -0
- package/schemas/entity-json-schemas/validation.json +152 -0
- package/schemas/entity-json-schemas/workflow-graph.json +116 -0
- package/schemas/entity-json-schemas/workflow.json +193 -0
|
@@ -9,11 +9,6 @@
|
|
|
9
9
|
* For backend route definitions, see each microservice’s `config.loxtep.api.uri` in
|
|
10
10
|
* `platform-backend` per-service `api` trees (`.../api/.../package.json`).
|
|
11
11
|
*/
|
|
12
|
-
/**
|
|
13
|
-
* Returns the public URL path (first segment) for the service that handles this request path, before overrides.
|
|
14
|
-
* Typically the first segment of `path` is the **resource** name in CDK, which is often the same as the
|
|
15
|
-
* microservice id (`dataproducts`, `workflows`, `organizations`, …).
|
|
16
|
-
*/
|
|
17
12
|
export declare function getGatewayMicroserviceId(path: string): string;
|
|
18
13
|
/**
|
|
19
14
|
* Build a full request URL for a shared control-plane host.
|
|
@@ -22,6 +17,7 @@ export declare function getGatewayMicroserviceId(path: string): string;
|
|
|
22
17
|
* - Most other services: in-service path starts with a microservice segment (e.g. `/workflows/projects`);
|
|
23
18
|
* public is `…/workflows/projects` (do **not** prepend the microservice again).
|
|
24
19
|
* - One-segment paths (e.g. `/workflows`, `/search`, `/governance`) still need a prefix: `…/workflows/workflow`, `…/graph/search`, `…/governance/governance`.
|
|
20
|
+
* - Query strings on `path` (e.g. `?page_size=1`) are preserved on the returned URL.
|
|
25
21
|
*/
|
|
26
22
|
export declare function buildPlatformRequestUrl(apiHost: string, path: string): string;
|
|
27
23
|
/**
|
|
@@ -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;AA8BH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,EAmBA,CAAC"}
|
|
@@ -25,9 +25,17 @@ function getSearchMicroserviceFromEnv() {
|
|
|
25
25
|
* Typically the first segment of `path` is the **resource** name in CDK, which is often the same as the
|
|
26
26
|
* microservice id (`dataproducts`, `workflows`, `organizations`, …).
|
|
27
27
|
*/
|
|
28
|
+
/** Split path and optional query string (`?…`); query includes the leading `?` when present. */
|
|
29
|
+
function splitPathAndQuery(path) {
|
|
30
|
+
const q = path.indexOf('?');
|
|
31
|
+
if (q < 0) {
|
|
32
|
+
return { pathname: path, search: '' };
|
|
33
|
+
}
|
|
34
|
+
return { pathname: path.slice(0, q), search: path.slice(q) };
|
|
35
|
+
}
|
|
28
36
|
export function getGatewayMicroserviceId(path) {
|
|
29
|
-
const
|
|
30
|
-
const first =
|
|
37
|
+
const { pathname } = splitPathAndQuery(path);
|
|
38
|
+
const first = pathname.replace(/^\//, '').split('/').filter(Boolean)[0] ?? '';
|
|
31
39
|
if (first === 'search') {
|
|
32
40
|
return getSearchMicroserviceFromEnv();
|
|
33
41
|
}
|
|
@@ -40,38 +48,39 @@ export function getGatewayMicroserviceId(path) {
|
|
|
40
48
|
* - Most other services: in-service path starts with a microservice segment (e.g. `/workflows/projects`);
|
|
41
49
|
* public is `…/workflows/projects` (do **not** prepend the microservice again).
|
|
42
50
|
* - One-segment paths (e.g. `/workflows`, `/search`, `/governance`) still need a prefix: `…/workflows/workflow`, `…/graph/search`, `…/governance/governance`.
|
|
51
|
+
* - Query strings on `path` (e.g. `?page_size=1`) are preserved on the returned URL.
|
|
43
52
|
*/
|
|
44
53
|
export function buildPlatformRequestUrl(apiHost, path) {
|
|
45
54
|
const host = apiHost.replace(/\/$/, '');
|
|
46
|
-
const
|
|
47
|
-
const p =
|
|
55
|
+
const { pathname, search } = splitPathAndQuery(path);
|
|
56
|
+
const p = pathname.startsWith('/') ? pathname : `/${pathname}`;
|
|
48
57
|
if (PATH_ALREADY_HAS_SERVICE_PREFIX.test(p)) {
|
|
49
|
-
return `${host}${p}`;
|
|
58
|
+
return `${host}${p}${search}`;
|
|
50
59
|
}
|
|
51
60
|
if (!p || p === '/') {
|
|
52
|
-
return host
|
|
61
|
+
return `${host}${search}`;
|
|
53
62
|
}
|
|
54
63
|
const segments = p.replace(/^\//, '').split('/').filter(Boolean);
|
|
55
64
|
if (segments.length === 0) {
|
|
56
|
-
return host
|
|
65
|
+
return `${host}${search}`;
|
|
57
66
|
}
|
|
58
67
|
const first = segments[0] ?? '';
|
|
59
68
|
const microservice = getGatewayMicroserviceId(p);
|
|
60
69
|
if (first === 'dataproducts') {
|
|
61
|
-
return `${host}/dataproducts/dataproducts${p.slice('/dataproducts'.length)}`;
|
|
70
|
+
return `${host}/dataproducts/dataproducts${p.slice('/dataproducts'.length)}${search}`;
|
|
62
71
|
}
|
|
63
72
|
if (segments.length === 1) {
|
|
64
73
|
if (!microservice)
|
|
65
|
-
return `${host}${p}`;
|
|
66
|
-
return `${host}/${microservice}${p}`;
|
|
74
|
+
return `${host}${p}${search}`;
|
|
75
|
+
return `${host}/${microservice}${p}${search}`;
|
|
67
76
|
}
|
|
68
77
|
if (first === microservice) {
|
|
69
|
-
return `${host}${p}`;
|
|
78
|
+
return `${host}${p}${search}`;
|
|
70
79
|
}
|
|
71
80
|
if (microservice) {
|
|
72
|
-
return `${host}/${microservice}${p}`;
|
|
81
|
+
return `${host}/${microservice}${p}${search}`;
|
|
73
82
|
}
|
|
74
|
-
return `${host}${p}`;
|
|
83
|
+
return `${host}${p}${search}`;
|
|
75
84
|
}
|
|
76
85
|
/**
|
|
77
86
|
* All path prefixes the Node SDK’s `LoxtepClient` can emit (for docs / `loxtep config paths` extensions).
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"platform-request-url.js","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-sdk-urls.d.ts","sourceRoot":"","sources":["../../src/config/resolve-sdk-urls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"resolve-sdk-urls.d.ts","sourceRoot":"","sources":["../../src/config/resolve-sdk-urls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqC5E,CAAC;AAYF,oHAAoH;AACpH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,iBAAiB,CAAC,EACpD,OAAO,EAAE,MAAM,GACd,MAAM,CASR;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,4IAA4I;IAC5I,eAAe,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sGAAsG;IACtG,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,kBAAkB,GAAG,iBAAiB,CAAC,GACxE,mBAAmB,CAgErB"}
|
|
@@ -9,18 +9,20 @@ const PH_Q = 'queue-name';
|
|
|
9
9
|
export const SDK_EXAMPLE_PATHS = [
|
|
10
10
|
{ label: 'data_products: list, create', path: '/dataproducts' },
|
|
11
11
|
{ label: 'data_products: get, schema', path: `/dataproducts/${PH_ID}` },
|
|
12
|
-
{ label: 'data_products: post query', path: '/dataproducts/
|
|
13
|
-
{ label: 'data_products: list tables', path:
|
|
12
|
+
{ label: 'data_products: post query', path: '/dataproducts/warehouse/execute' },
|
|
13
|
+
{ label: 'data_products: list tables', path: '/dataproducts/warehouse/tables' },
|
|
14
14
|
{ label: 'data_products: catalog / internal search', path: '/search' },
|
|
15
15
|
{ label: 'templates: list, get', path: '/dataproducts/templates' },
|
|
16
16
|
{ label: 'quality: list, get', path: '/dataproducts/quality-metrics' },
|
|
17
17
|
{ label: 'data_contracts: list, get', path: '/dataproducts/datacontracts' },
|
|
18
|
-
{
|
|
18
|
+
{
|
|
19
|
+
label: 'targets/triggers: project entities connections',
|
|
20
|
+
path: `/workflows/projects/${PH_ID}/entities`,
|
|
21
|
+
},
|
|
19
22
|
{ label: 'flows, workflows: list, create', path: '/workflows/workflows' },
|
|
20
23
|
{ label: 'flows, workflows: get + graph', path: `/workflows/workflows/${PH_ID}/graph` },
|
|
21
24
|
{ label: 'projects: list, crud, apply template', path: '/workflows/projects' },
|
|
22
25
|
{ label: 'projects: deploy', path: `/workflows/projects/${PH_ID}/deploy` },
|
|
23
|
-
{ label: 'connections: crud, test', path: '/workflows/connections' },
|
|
24
26
|
{ label: 'domains: list, get', path: '/organizations/domains' },
|
|
25
27
|
{ label: 'instances: list, get', path: '/organizations/instances' },
|
|
26
28
|
{ label: 'standards: list, get', path: '/governance/standards' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-sdk-urls.js","sourceRoot":"","sources":["../../src/config/resolve-sdk-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,2EAA2E;AAC3E,MAAM,KAAK,GAAG,sCAAsC,CAAC;AACrD,MAAM,IAAI,GAAG,YAAY,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAmD;IAC/E,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/D,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,iBAAiB,KAAK,EAAE,EAAE;IACvE,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"resolve-sdk-urls.js","sourceRoot":"","sources":["../../src/config/resolve-sdk-urls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-http.d.ts","sourceRoot":"","sources":["../../src/errors/parse-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-http.d.ts","sourceRoot":"","sources":["../../src/errors/parse-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA4EnE,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GAAG,kBAAkB,GAAG,OAAO,EACjD,UAAU,CAAC,EAAE,MAAM,GAClB,WAAW,CAuEb"}
|
|
@@ -13,29 +13,52 @@ import { RateLimitError } from './rate-limit.js';
|
|
|
13
13
|
* @param request_id - Optional request ID from headers
|
|
14
14
|
* @returns Instance of the corresponding error class
|
|
15
15
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
const GENERIC_ERROR_TITLES = new Set([
|
|
17
|
+
'validation error',
|
|
18
|
+
'validation failed',
|
|
19
|
+
'bad request',
|
|
20
|
+
'an unknown error occurred.',
|
|
21
|
+
'an error occurred',
|
|
22
|
+
]);
|
|
23
|
+
function isGenericErrorTitle(message) {
|
|
24
|
+
return GENERIC_ERROR_TITLES.has(message.trim().toLowerCase());
|
|
25
|
+
}
|
|
26
|
+
/** Prefer a concrete string detail over a generic title like "Validation Error". */
|
|
27
|
+
function preferConcreteMessage(title, detailCandidate) {
|
|
28
|
+
if (typeof detailCandidate === 'string' && detailCandidate.trim().length > 0) {
|
|
29
|
+
if (!title || isGenericErrorTitle(title)) {
|
|
30
|
+
return detailCandidate.trim();
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
|
-
return
|
|
33
|
+
return title;
|
|
34
|
+
}
|
|
35
|
+
function extractPlatformErrorMessage(body) {
|
|
36
|
+
const nested = body.error;
|
|
37
|
+
const nestedRecord = nested && typeof nested === 'object' ? nested : undefined;
|
|
38
|
+
const title = (typeof body.message === 'string' && body.message.length > 0 ? body.message : undefined) ??
|
|
39
|
+
(typeof nestedRecord?.message === 'string' && nestedRecord.message.length > 0
|
|
40
|
+
? nestedRecord.message
|
|
41
|
+
: undefined);
|
|
42
|
+
const stringDetails = (typeof body.details === 'string' ? body.details : undefined) ??
|
|
43
|
+
(typeof nestedRecord?.details === 'string' ? nestedRecord.details : undefined);
|
|
44
|
+
return preferConcreteMessage(title, stringDetails);
|
|
28
45
|
}
|
|
29
46
|
function extractPlatformErrorDetails(body) {
|
|
30
47
|
if (body.details && typeof body.details === 'object') {
|
|
31
48
|
return body.details;
|
|
32
49
|
}
|
|
50
|
+
if (typeof body.details === 'string' && body.details.length > 0) {
|
|
51
|
+
return { message: body.details };
|
|
52
|
+
}
|
|
33
53
|
const nested = body.error;
|
|
34
54
|
if (nested && typeof nested === 'object') {
|
|
35
55
|
const nestedDetails = nested.details;
|
|
36
56
|
if (nestedDetails && typeof nestedDetails === 'object') {
|
|
37
57
|
return nestedDetails;
|
|
38
58
|
}
|
|
59
|
+
if (typeof nestedDetails === 'string' && nestedDetails.length > 0) {
|
|
60
|
+
return { message: nestedDetails };
|
|
61
|
+
}
|
|
39
62
|
}
|
|
40
63
|
return undefined;
|
|
41
64
|
}
|
|
@@ -74,8 +97,23 @@ export function parseHttpError(status_code, body, request_id) {
|
|
|
74
97
|
});
|
|
75
98
|
}
|
|
76
99
|
case 400: {
|
|
77
|
-
const
|
|
78
|
-
|
|
100
|
+
const nested = safe.error;
|
|
101
|
+
const nestedRecord = nested && typeof nested === 'object' ? nested : undefined;
|
|
102
|
+
const rawFieldErrors = (Array.isArray(safe.field_errors) ? safe.field_errors : undefined) ??
|
|
103
|
+
(Array.isArray(nestedRecord?.field_errors) ? nestedRecord.field_errors : undefined) ??
|
|
104
|
+
(Array.isArray(safe.errors) ? safe.errors : undefined);
|
|
105
|
+
const field_errors = Array.isArray(rawFieldErrors)
|
|
106
|
+
? rawFieldErrors
|
|
107
|
+
.map(e => {
|
|
108
|
+
const field = typeof e?.field === 'string'
|
|
109
|
+
? e.field
|
|
110
|
+
: typeof e?.path === 'string'
|
|
111
|
+
? e.path
|
|
112
|
+
: undefined;
|
|
113
|
+
const msg = typeof e?.message === 'string' ? e.message : undefined;
|
|
114
|
+
return field && msg ? { field, message: msg } : null;
|
|
115
|
+
})
|
|
116
|
+
.filter((e) => e !== null)
|
|
79
117
|
: [];
|
|
80
118
|
return new ValidationError(message, field_errors, { details, request_id: reqId });
|
|
81
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-http.js","sourceRoot":"","sources":["../../src/errors/parse-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;;;;;GAQG;AACH,SAAS,
|
|
1
|
+
{"version":3,"file":"parse-http.js","sourceRoot":"","sources":["../../src/errors/parse-http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ export * from './types/index.js';
|
|
|
13
13
|
export * from './codegen/index.js';
|
|
14
14
|
export * from './skills/index.js';
|
|
15
15
|
export * from './authoring/index.js';
|
|
16
|
-
export { buildSdkIngestBundle } from './lib/sdk-ingest-bundle.js';
|
|
17
|
-
export type { SdkIngestBundleParams, SdkIngestBundleResult } from './lib/sdk-ingest-bundle.js';
|
|
16
|
+
export { buildSdkIngestBundle, buildSdkIngestLocalPackage } from './lib/sdk-ingest-bundle.js';
|
|
17
|
+
export type { SdkIngestBundleParams, SdkIngestBundleResult, SdkIngestPackageParams, SdkIngestPackageResult, } from './lib/sdk-ingest-bundle.js';
|
|
18
|
+
export { EntityType, validateEntity, validateEntityOrThrow, } from './lib/entity-json-schemas/index.js';
|
|
19
|
+
export { lintLocalPackage, hasLocalEntityPackage } from './lib/workspace-lint.js';
|
|
20
|
+
export type { LintIssue, LintResult } from './lib/workspace-lint.js';
|
|
18
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC9F,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,5 +13,7 @@ export * from './types/index.js';
|
|
|
13
13
|
export * from './codegen/index.js';
|
|
14
14
|
export * from './skills/index.js';
|
|
15
15
|
export * from './authoring/index.js';
|
|
16
|
-
export { buildSdkIngestBundle } from './lib/sdk-ingest-bundle.js';
|
|
16
|
+
export { buildSdkIngestBundle, buildSdkIngestLocalPackage } from './lib/sdk-ingest-bundle.js';
|
|
17
|
+
export { EntityType, validateEntity, validateEntityOrThrow, } from './lib/entity-json-schemas/index.js';
|
|
18
|
+
export { lintLocalPackage, hasLocalEntityPackage } from './lib/workspace-lint.js';
|
|
17
19
|
//# 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;;;GAGG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAO9F,OAAO,EACL,UAAU,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* CJS Ajv loader — keeps Jest (ts-jest CJS) and Node ESM consumers happy.
|
|
5
|
+
* Do not rename to .ts; require() of ajv must stay in CommonJS.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const ajvModule = require('ajv');
|
|
9
|
+
const formatsModule = require('ajv-formats');
|
|
10
|
+
|
|
11
|
+
const Ajv = ajvModule.Ajv || ajvModule.default || ajvModule;
|
|
12
|
+
const addFormats =
|
|
13
|
+
typeof formatsModule === 'function'
|
|
14
|
+
? formatsModule
|
|
15
|
+
: formatsModule.default || formatsModule;
|
|
16
|
+
|
|
17
|
+
module.exports = { Ajv, addFormats };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { EntityType, ENTITY_SCHEMA_FILES } from './types.js';
|
|
2
|
+
export type { EntityType as EntityTypeName } from './types.js';
|
|
3
|
+
export { validateEntity, validateEntityOrThrow, loadSchema, getValidator, resetEntityValidatorsForTests, } from './validate-entity.js';
|
|
4
|
+
export type { EntityValidationError, EntityValidationResult } from './validate-entity.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity types that have shipped JSON Schemas in this package.
|
|
3
|
+
* Mirrors platform `EntityType` string values.
|
|
4
|
+
*/
|
|
5
|
+
export declare const EntityType: {
|
|
6
|
+
readonly DOMAIN: "domains";
|
|
7
|
+
readonly CONNECTOR: "connectors";
|
|
8
|
+
readonly CONNECTION: "connections";
|
|
9
|
+
readonly WORKFLOW: "workflows";
|
|
10
|
+
readonly TRANSFORMATION: "transformations";
|
|
11
|
+
readonly VALIDATION: "validations";
|
|
12
|
+
readonly DATA_PRODUCT: "data-products";
|
|
13
|
+
readonly SCHEMA: "schemas";
|
|
14
|
+
readonly CONTRACT: "contracts";
|
|
15
|
+
readonly QUALITY_RULE: "quality-rules";
|
|
16
|
+
readonly EXPORT: "exports";
|
|
17
|
+
};
|
|
18
|
+
export type EntityType = (typeof EntityType)[keyof typeof EntityType];
|
|
19
|
+
/** Map entity type → schema filename (without path). */
|
|
20
|
+
export declare const ENTITY_SCHEMA_FILES: Record<EntityType, string>;
|
|
21
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEtE,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAY1D,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity types that have shipped JSON Schemas in this package.
|
|
3
|
+
* Mirrors platform `EntityType` string values.
|
|
4
|
+
*/
|
|
5
|
+
export const EntityType = {
|
|
6
|
+
DOMAIN: 'domains',
|
|
7
|
+
CONNECTOR: 'connectors',
|
|
8
|
+
CONNECTION: 'connections',
|
|
9
|
+
WORKFLOW: 'workflows',
|
|
10
|
+
TRANSFORMATION: 'transformations',
|
|
11
|
+
VALIDATION: 'validations',
|
|
12
|
+
DATA_PRODUCT: 'data-products',
|
|
13
|
+
SCHEMA: 'schemas',
|
|
14
|
+
CONTRACT: 'contracts',
|
|
15
|
+
QUALITY_RULE: 'quality-rules',
|
|
16
|
+
EXPORT: 'exports',
|
|
17
|
+
};
|
|
18
|
+
/** Map entity type → schema filename (without path). */
|
|
19
|
+
export const ENTITY_SCHEMA_FILES = {
|
|
20
|
+
[EntityType.DOMAIN]: 'domain.json',
|
|
21
|
+
[EntityType.CONNECTOR]: 'connector.json',
|
|
22
|
+
[EntityType.CONNECTION]: 'connection.json',
|
|
23
|
+
[EntityType.WORKFLOW]: 'workflow.json',
|
|
24
|
+
[EntityType.TRANSFORMATION]: 'transformation.json',
|
|
25
|
+
[EntityType.VALIDATION]: 'validation.json',
|
|
26
|
+
[EntityType.DATA_PRODUCT]: 'data-product.json',
|
|
27
|
+
[EntityType.SCHEMA]: 'schema.json',
|
|
28
|
+
[EntityType.CONTRACT]: 'contract.json',
|
|
29
|
+
[EntityType.QUALITY_RULE]: 'quality-rule.json',
|
|
30
|
+
[EntityType.EXPORT]: 'export.json',
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,WAAW;IACrB,cAAc,EAAE,iBAAiB;IACjC,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,SAAS;CACT,CAAC;AAIX,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAA+B;IAC7D,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa;IAClC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,gBAAgB;IACxC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,iBAAiB;IAC1C,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,eAAe;IACtC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,qBAAqB;IAClD,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,iBAAiB;IAC1C,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,mBAAmB;IAC9C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa;IAClC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,eAAe;IACtC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,mBAAmB;IAC9C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa;CACnC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Offline entity validation against vendored JSON Schemas (Ajv).
|
|
3
|
+
* Schemas live in `nodejs/schemas/entity-json-schemas/` (shipped with the npm package).
|
|
4
|
+
*
|
|
5
|
+
* Ajv is loaded via `ajv-loader.cjs` so Jest (CJS) does not need `import.meta` or ESM ajv.
|
|
6
|
+
*/
|
|
7
|
+
import { EntityType } from './types.js';
|
|
8
|
+
type AjvErrorObject = {
|
|
9
|
+
instancePath?: string;
|
|
10
|
+
schemaPath?: string;
|
|
11
|
+
message?: string;
|
|
12
|
+
params?: Record<string, unknown>;
|
|
13
|
+
};
|
|
14
|
+
type ValidateFunction = ((data: unknown) => boolean) & {
|
|
15
|
+
errors?: AjvErrorObject[] | null;
|
|
16
|
+
};
|
|
17
|
+
export interface EntityValidationError {
|
|
18
|
+
path: string;
|
|
19
|
+
message: string;
|
|
20
|
+
params?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface EntityValidationResult {
|
|
23
|
+
valid: boolean;
|
|
24
|
+
errors?: EntityValidationError[];
|
|
25
|
+
}
|
|
26
|
+
export declare function loadSchema(entityType: EntityType): object;
|
|
27
|
+
export declare function getValidator(entityType: EntityType): ValidateFunction;
|
|
28
|
+
/**
|
|
29
|
+
* Validate an entity object against its shipped JSON Schema.
|
|
30
|
+
*/
|
|
31
|
+
export declare function validateEntity(entityType: EntityType, entity: unknown): EntityValidationResult;
|
|
32
|
+
/**
|
|
33
|
+
* Validate and throw if invalid.
|
|
34
|
+
*/
|
|
35
|
+
export declare function validateEntityOrThrow(entityType: EntityType, entity: unknown): void;
|
|
36
|
+
/** Reset Ajv cache (tests). */
|
|
37
|
+
export declare function resetEntityValidatorsForTests(): void;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=validate-entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-entity.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/validate-entity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAE7D,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;AA2DF,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;AA8CD,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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Offline entity validation against vendored JSON Schemas (Ajv).
|
|
3
|
+
* Schemas live in `nodejs/schemas/entity-json-schemas/` (shipped with the npm package).
|
|
4
|
+
*
|
|
5
|
+
* Ajv is loaded via `ajv-loader.cjs` so Jest (CJS) does not need `import.meta` or ESM ajv.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
8
|
+
import { createRequire } from 'node:module';
|
|
9
|
+
import { dirname, join } from 'node:path';
|
|
10
|
+
import { ENTITY_SCHEMA_FILES } from './types.js';
|
|
11
|
+
function findPackageRootCandidates() {
|
|
12
|
+
const roots = [process.cwd()];
|
|
13
|
+
const entry = process.argv[1];
|
|
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();
|
|
49
|
+
let ajvInstance = null;
|
|
50
|
+
const validatorCache = new Map();
|
|
51
|
+
function resolveSchemasDir() {
|
|
52
|
+
const candidates = findPackageRootCandidates().map(root => join(root, 'schemas', 'entity-json-schemas'));
|
|
53
|
+
candidates.push(join(process.cwd(), 'nodejs', 'schemas', 'entity-json-schemas'));
|
|
54
|
+
for (const dir of candidates) {
|
|
55
|
+
if (existsSync(join(dir, 'workflow.json'))) {
|
|
56
|
+
return dir;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw new Error(`Entity JSON schemas not found. Expected schemas/entity-json-schemas (tried: ${candidates.join(', ')})`);
|
|
60
|
+
}
|
|
61
|
+
function getAjv() {
|
|
62
|
+
if (!ajvInstance) {
|
|
63
|
+
ajvInstance = new AjvCtor({
|
|
64
|
+
allErrors: true,
|
|
65
|
+
strict: false,
|
|
66
|
+
validateFormats: true,
|
|
67
|
+
});
|
|
68
|
+
addFormats(ajvInstance);
|
|
69
|
+
// Register all shipped schemas so $ref (e.g. odps-product) resolves.
|
|
70
|
+
const schemasDir = resolveSchemasDir();
|
|
71
|
+
for (const file of readdirSync(schemasDir)) {
|
|
72
|
+
if (!file.endsWith('.json'))
|
|
73
|
+
continue;
|
|
74
|
+
const schema = JSON.parse(readFileSync(join(schemasDir, file), 'utf8'));
|
|
75
|
+
if (!schema.$id)
|
|
76
|
+
continue;
|
|
77
|
+
if (!ajvInstance.getSchema(schema.$id)) {
|
|
78
|
+
ajvInstance.addSchema(schema);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return ajvInstance;
|
|
83
|
+
}
|
|
84
|
+
export function loadSchema(entityType) {
|
|
85
|
+
const file = ENTITY_SCHEMA_FILES[entityType];
|
|
86
|
+
if (!file) {
|
|
87
|
+
throw new Error(`No schema defined for entity type: ${entityType}`);
|
|
88
|
+
}
|
|
89
|
+
const path = join(resolveSchemasDir(), file);
|
|
90
|
+
return JSON.parse(readFileSync(path, 'utf8'));
|
|
91
|
+
}
|
|
92
|
+
export function getValidator(entityType) {
|
|
93
|
+
const cached = validatorCache.get(entityType);
|
|
94
|
+
if (cached)
|
|
95
|
+
return cached;
|
|
96
|
+
const schema = loadSchema(entityType);
|
|
97
|
+
const ajv = getAjv();
|
|
98
|
+
let validator;
|
|
99
|
+
if (schema.$id) {
|
|
100
|
+
validator = ajv.getSchema(schema.$id);
|
|
101
|
+
}
|
|
102
|
+
if (!validator) {
|
|
103
|
+
validator = ajv.compile(schema);
|
|
104
|
+
}
|
|
105
|
+
validatorCache.set(entityType, validator);
|
|
106
|
+
return validator;
|
|
107
|
+
}
|
|
108
|
+
function mapAjvErrors(errors) {
|
|
109
|
+
if (!errors?.length)
|
|
110
|
+
return [];
|
|
111
|
+
return errors.map(err => ({
|
|
112
|
+
path: err.instancePath || err.schemaPath || '',
|
|
113
|
+
message: err.message || 'Validation error',
|
|
114
|
+
params: err.params,
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Validate an entity object against its shipped JSON Schema.
|
|
119
|
+
*/
|
|
120
|
+
export function validateEntity(entityType, entity) {
|
|
121
|
+
const validator = getValidator(entityType);
|
|
122
|
+
const valid = validator(entity);
|
|
123
|
+
if (!valid) {
|
|
124
|
+
return { valid: false, errors: mapAjvErrors(validator.errors) };
|
|
125
|
+
}
|
|
126
|
+
return { valid: true };
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Validate and throw if invalid.
|
|
130
|
+
*/
|
|
131
|
+
export function validateEntityOrThrow(entityType, entity) {
|
|
132
|
+
const result = validateEntity(entityType, entity);
|
|
133
|
+
if (!result.valid) {
|
|
134
|
+
const msg = result.errors?.map(e => `${e.path}: ${e.message}`).join(', ');
|
|
135
|
+
throw new Error(`Entity validation failed for ${entityType}: ${msg || 'Unknown error'}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/** Reset Ajv cache (tests). */
|
|
139
|
+
export function resetEntityValidatorsForTests() {
|
|
140
|
+
ajvInstance = null;
|
|
141
|
+
validatorCache.clear();
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=validate-entity.js.map
|