@ingestron/core 0.12.0 → 0.12.2
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/README.md +1 -1
- package/THIRD_PARTY_NOTICES.md +2 -2
- package/dist/compiler-fingerprint.json +8 -8
- package/dist/core/connections.js +2 -0
- package/dist/core/operations.d.ts +4 -0
- package/dist/core/operations.js +1 -0
- package/dist/core/packages.d.ts +1 -0
- package/dist/core/packages.js +9 -1
- package/dist/core/provider-starter.js +2 -2
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ connector runtime assets and standards through explicit package references.
|
|
|
9
9
|
|
|
10
10
|
## Use the library
|
|
11
11
|
|
|
12
|
-
Requires Node 22 for runtime operations. The npm package name is `@ingestron/core`;
|
|
12
|
+
Requires Node 22.12 or newer for runtime operations. The npm package name is `@ingestron/core`;
|
|
13
13
|
initial registry publication is pending. To build the public source checkout:
|
|
14
14
|
|
|
15
15
|
```sh
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -640,7 +640,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
640
640
|
THE SOFTWARE.
|
|
641
641
|
```
|
|
642
642
|
|
|
643
|
-
### yaml@2.9.
|
|
643
|
+
### yaml@2.9.1
|
|
644
644
|
|
|
645
645
|
Declared licence: ISC
|
|
646
646
|
|
|
@@ -662,7 +662,7 @@ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
|
|
662
662
|
THIS SOFTWARE.
|
|
663
663
|
```
|
|
664
664
|
|
|
665
|
-
### zod@4.5
|
|
665
|
+
### zod@4.6.5
|
|
666
666
|
|
|
667
667
|
Declared licence: MIT
|
|
668
668
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"dist/assets/schemas/provenance.json": "4b5eb1fd89b81223f7946113b651d5a3a18adaa28948e43c3615dd851fb6844e",
|
|
6
6
|
"dist/core/authoring.js": "43025703f23b61090d1ea6912e387e5ed74a93568f068339f9a7ecae88795a51",
|
|
7
7
|
"dist/core/config.js": "b7e7138f7cc4a7b4ec8f6d0f0616c8802f2d802ec29aa09b40c1fc5c9324e016",
|
|
8
|
-
"dist/core/connections.js": "
|
|
8
|
+
"dist/core/connections.js": "504bbacd422fd0f6ef64a229f5255b377f5393a41f6366674fc5e8854a26b1d8",
|
|
9
9
|
"dist/core/connector-package.js": "c1d39fce629a524fa199ed5d0dffe6a36c500e1018fbb8379d700330372b46a7",
|
|
10
10
|
"dist/core/contracts.js": "a1b7fd28f776117cca86a25c6c70e852ff57ffea2bb9e7accbf2d583948d9dde",
|
|
11
11
|
"dist/core/deliveries.js": "a4d2cb1213bc4c02cffb962dcb943ba98e261d37cfb21041948ec637599db080",
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
"dist/core/installed-plugins.js": "817ed411aef6f5b966a1828893081406805d2c8764d2ca20fd7e250e8a2168a8",
|
|
22
22
|
"dist/core/model-pack-schema.js": "e3eb7ff33ddc652643e3f896637de0034004cd0cf26b0e296a074f830ae0b870",
|
|
23
23
|
"dist/core/model-packs.js": "fee776ea0804dc66c9f140e57d94a3922d69c52d03c72079842ec43417616b0d",
|
|
24
|
-
"dist/core/operations.js": "
|
|
24
|
+
"dist/core/operations.js": "7f4a9eeee19d3e1e4c1beecc0350e38d386f012edfb31c3248efcd22ebd40a77",
|
|
25
25
|
"dist/core/package-references.js": "bd3085eb6dcdac399d79af109d0a9e710a0532eba61e5298dc842aec9c7ef10a",
|
|
26
|
-
"dist/core/packages.js": "
|
|
26
|
+
"dist/core/packages.js": "e30654122516573c1d8adf40f8a9e76acb54de090016751929dde679e4d1175b",
|
|
27
27
|
"dist/core/planner.js": "f91902f4c37a7588965360fcddbda79301b59a0b66ef2f70c0378fa5dfcc7088",
|
|
28
28
|
"dist/core/project-build.js": "1f1002b4f6c506986c5aa6a5bb01ad5f3b4658a7a1319b65d79eaa67916fb994",
|
|
29
29
|
"dist/core/provider-commands.js": "8bd82821f6ed0eefce8216e7c03c271f28cb9f4bfda7724d5c1de6be1855e535",
|
|
30
|
-
"dist/core/provider-starter.js": "
|
|
30
|
+
"dist/core/provider-starter.js": "69795c1b79360e48664e91db0768f813fe4efc91aede003e1bf032f71731754c",
|
|
31
31
|
"dist/core/report-pack-schema.js": "fe8ecdc2b8deacd8b2a1e46588ee06744a7b6d8e7342786e320f74cc848665fa",
|
|
32
32
|
"dist/core/schema.js": "4cbad607f372584fe83f44a121bd978dea7529db5c1eb51168dcd62812c2eeab",
|
|
33
33
|
"dist/core/workflows.js": "1a5fe93b34d963efb07ab1f67641106386fa3ef9d9e80bd3e59c13795925fda6",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"sources": {
|
|
45
45
|
"src/core/authoring.ts": "fe80e823cfb82b39894aac9c5f733d489241b4a22bed278079254acff45a0aca",
|
|
46
46
|
"src/core/config.ts": "f282eb246438608e1951556dfeab9372daf65330a15a9d159d36d1f940370344",
|
|
47
|
-
"src/core/connections.ts": "
|
|
47
|
+
"src/core/connections.ts": "84f5fb5522480b4c6cb9c90fcde65b5f8bf3db888352d0561b83dabad8ec2952",
|
|
48
48
|
"src/core/connector-package.ts": "f302432c3954a6230ddf02e3ae796c0a641e52984c0db3bfbfc10b3d5539e49e",
|
|
49
49
|
"src/core/contracts.ts": "b7445086085b17d5ae8d5a7f4e2e849f286948e1a2a146ceb79660846e8616e5",
|
|
50
50
|
"src/core/deliveries.ts": "6be0a7059c057420ba22a5515703164a892fac9e79a5bdb0e0871ea0b92ddd15",
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"src/core/installed-plugins.ts": "951d15cdd8ca4a2c7d97fb01a46838822fe1b2fcf083ff8cf4bdca20d0997a2d",
|
|
61
61
|
"src/core/model-pack-schema.ts": "bc9b30ab257fd25766cba63aa2fb6891c05e4b3eccf56d820caaab2dcc4147b4",
|
|
62
62
|
"src/core/model-packs.ts": "a110d319f6feeff22a2d0d3a99ce5e49e56817d0cc27ab77d831d04a945ddfd3",
|
|
63
|
-
"src/core/operations.ts": "
|
|
63
|
+
"src/core/operations.ts": "e0a5a0e869e96de4e869f89e0fd794cb9fa537a16fb1f37fd8cf2b7ca777c08d",
|
|
64
64
|
"src/core/package-references.ts": "5c5cee7e140158928e2e5a37f426520c7c2f042546a37eed4507d79326181f5a",
|
|
65
|
-
"src/core/packages.ts": "
|
|
65
|
+
"src/core/packages.ts": "afe307b5b8058a0dfd3bef76475b32f00be7d5a5b69e73b6c0fcc557aa528d8c",
|
|
66
66
|
"src/core/planner.ts": "498f5405f3088ee6d54ec8ab4a458813757697c150a56eab33f547aebb214da1",
|
|
67
67
|
"src/core/project-build.ts": "feb0fe50aff7b1fbdc8d96bcdb177a72a412639d1af98c3cff3b010de90a6428",
|
|
68
68
|
"src/core/provider-commands.ts": "f8a045230f61be0273910276b51e5c2e4bc0659f34c8a9361a38ab292c39eb4c",
|
|
69
|
-
"src/core/provider-starter.ts": "
|
|
69
|
+
"src/core/provider-starter.ts": "eeb504e347638bb933d204dd4d5a7e3e94ff45db136c5edd3fb457061342e405",
|
|
70
70
|
"src/core/report-pack-schema.ts": "cf2c68f3725cef847627ce61acd0887f04d0067bc324841d8a552bcb12d274b0",
|
|
71
71
|
"src/core/schema.ts": "dc1c5464878916bbdee08662320310bb202a21ebfca9e534a30746603c9aa46f",
|
|
72
72
|
"src/core/workflows.ts": "b8afae8637eb92b58ab41a41fc245950e1c8e8820a6a27358508ae54c04c7a78",
|
package/dist/core/connections.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readFileSync } from "node:fs";
|
|
|
2
2
|
import { fence } from "./packages.js";
|
|
3
3
|
import { connectorPackageSchema } from "./connector-package.js";
|
|
4
4
|
import { contractColumns } from "./contracts.js";
|
|
5
|
+
import { resolveModelContracts } from "./model-packs.js";
|
|
5
6
|
/** Project-owned configuration; schemas and runtime assets remain plugin-owned. */
|
|
6
7
|
import { Ajv2020 } from "ajv/dist/2020.js";
|
|
7
8
|
import { Configuration } from "./config.js";
|
|
@@ -24,6 +25,7 @@ export function prepareConnection(root, environment, flowId, validateOnly = fals
|
|
|
24
25
|
check(profile, "ENVIRONMENT", `Unknown environment ${environment}`);
|
|
25
26
|
check(!profile.environment || profile.environment === environment, "ENVIRONMENT", "Environment name differs from selected profile");
|
|
26
27
|
const flows = project.flows.map((f) => reader.parse(flowSchema, f));
|
|
28
|
+
resolveModelContracts(reader, project, flows);
|
|
27
29
|
check(new Set(flows.map((f) => f.id)).size === flows.length, "FLOW", "Duplicate flow IDs");
|
|
28
30
|
const flow = flows.find((f) => f.id === flowId);
|
|
29
31
|
check(flow && flow.kind === "ingestion" && !flow.steps, "FLOW", "Select an ingestion flow");
|
|
@@ -261,6 +261,10 @@ export declare const operationSchemas: {
|
|
|
261
261
|
}, z.core.$strict>;
|
|
262
262
|
readonly packages_install: z.ZodObject<{
|
|
263
263
|
reference: z.ZodString;
|
|
264
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
265
|
+
connector: "connector";
|
|
266
|
+
provider: "provider";
|
|
267
|
+
}>>;
|
|
264
268
|
fromGit: z.ZodOptional<z.ZodString>;
|
|
265
269
|
update: z.ZodOptional<z.ZodBoolean>;
|
|
266
270
|
frozen: z.ZodOptional<z.ZodBoolean>;
|
package/dist/core/operations.js
CHANGED
|
@@ -259,6 +259,7 @@ export const operationSchemas = {
|
|
|
259
259
|
packages_install: z
|
|
260
260
|
.object({
|
|
261
261
|
reference: z.string(),
|
|
262
|
+
kind: z.enum(["provider", "connector"]).optional(),
|
|
262
263
|
fromGit: z.string().optional(),
|
|
263
264
|
update: z.boolean().optional(),
|
|
264
265
|
frozen: z.boolean().optional(),
|
package/dist/core/packages.d.ts
CHANGED
package/dist/core/packages.js
CHANGED
|
@@ -388,13 +388,19 @@ export function installPackage(root, reference, options = {}) {
|
|
|
388
388
|
check(!options.frozen || previous, "PACKAGE", "Frozen install requires an existing lock entry");
|
|
389
389
|
if (previous &&
|
|
390
390
|
!options.update &&
|
|
391
|
-
existsSync(resolve(root, `.ingestron/packages/${digest(previous.repository)}/${previous.commit}`)))
|
|
391
|
+
existsSync(resolve(root, `.ingestron/packages/${digest(previous.repository)}/${previous.commit}`))) {
|
|
392
|
+
if (options.kind) {
|
|
393
|
+
const installed = resolvePackage(root, reference);
|
|
394
|
+
const manifest = packageYaml(installed.file);
|
|
395
|
+
check(manifest.apiVersion === `ingestron.${options.kind}/v1`, "PACKAGE", `Expected a ${options.kind} package at ${reference}`);
|
|
396
|
+
}
|
|
392
397
|
return {
|
|
393
398
|
reference,
|
|
394
399
|
...resolvePackage(root, reference).entry,
|
|
395
400
|
cached: true,
|
|
396
401
|
informationFile: savePluginInformation(root, reference),
|
|
397
402
|
};
|
|
403
|
+
}
|
|
398
404
|
const control = fence(root, ".ingestron");
|
|
399
405
|
mkdirSync(control, { recursive: true });
|
|
400
406
|
const guard = resolve(control, "package-install.lock");
|
|
@@ -472,6 +478,8 @@ export function installPackage(root, reference, options = {}) {
|
|
|
472
478
|
files[m[5]] = digest(text);
|
|
473
479
|
}
|
|
474
480
|
const manifest = packageYaml(fence(staged, parsed.path));
|
|
481
|
+
if (options.kind)
|
|
482
|
+
check(manifest.apiVersion === `ingestron.${options.kind}/v1`, "PACKAGE", `Expected a ${options.kind} package at ${reference}`);
|
|
475
483
|
if (manifest.apiVersion === "ingestron.connector/v1") {
|
|
476
484
|
const connector = connectorPackageSchema.parse(manifest);
|
|
477
485
|
check(connector.upstream.licenceStatus === "evidenced", "LICENCE", "Connector licence evidence is missing or conflicting; installation held");
|
|
@@ -127,7 +127,7 @@ export function render(plan) {
|
|
|
127
127
|
build: "node scripts/check.mjs build",
|
|
128
128
|
},
|
|
129
129
|
devDependencies: { "@ingestron/core": version },
|
|
130
|
-
engines: { node: ">=22
|
|
130
|
+
engines: { node: ">=22.12.0" },
|
|
131
131
|
}, null, 2) + "\n",
|
|
132
132
|
"test/provider.test.mjs": `import {test} from 'node:test';
|
|
133
133
|
import assert from 'node:assert/strict';
|
|
@@ -142,7 +142,7 @@ const result=await executeAsync({root:process.cwd(),allowWrite:build},build?'bui
|
|
|
142
142
|
console.log(JSON.stringify(result,null,2));
|
|
143
143
|
if(!result.ok)process.exitCode=1;
|
|
144
144
|
`,
|
|
145
|
-
"README.md": `# ${id} provider starter\n\nA synthetic SQL generator demonstrating the Ingestron plugin contract. It has no platform connection or execution adapter.\n\nUse Node 22. Run npm install, npm test, npm run check and npm run build. Review out/model.sql and out/ingestron-project.json. Change the target to an invalid identifier to verify rejection.\n\nReplace the example with your platform implementation and tests before publishing. Declare only implemented capabilities. The core plugin contract is documented at https://github.com/ingestron/core/blob/main/docs/plugins.md.\n`,
|
|
145
|
+
"README.md": `# ${id} provider starter\n\nA synthetic SQL generator demonstrating the Ingestron plugin contract. It has no platform connection or execution adapter.\n\nUse Node 22.12 or newer. Run npm install, npm test, npm run check and npm run build. Review out/model.sql and out/ingestron-project.json. Change the target to an invalid identifier to verify rejection.\n\nReplace the example with your platform implementation and tests before publishing. Declare only implemented capabilities. The core plugin contract is documented at https://github.com/ingestron/core/blob/main/docs/plugins.md.\n`,
|
|
146
146
|
"SECURITY.md": "Do not include secrets or source data in packages or fixtures. Compiler hooks are offline; credentials belong in customer execution context. Report suspected vulnerabilities privately to the repository owner.\n",
|
|
147
147
|
".gitignore": "out/\nnode_modules/\n.ingestron/\n",
|
|
148
148
|
};
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ingestron/core",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared Ingestron project compiler, operations and editor schemas",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": ">=22
|
|
8
|
+
"node": ">=22.12.0"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"dist",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"ajv": "8.20.0",
|
|
35
35
|
"ajv-formats": "3.0.1",
|
|
36
36
|
"quickjs-emscripten": "0.32.0",
|
|
37
|
-
"yaml": "2.9.
|
|
38
|
-
"zod": "4.5
|
|
37
|
+
"yaml": "2.9.1",
|
|
38
|
+
"zod": "4.6.5"
|
|
39
39
|
},
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"packageManager": "pnpm@10.15.0",
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/node": "22.20.1",
|
|
64
|
-
"prettier": "3.9.
|
|
64
|
+
"prettier": "3.9.8",
|
|
65
65
|
"tsx": "4.23.13",
|
|
66
66
|
"typescript": "7.0.2"
|
|
67
67
|
},
|