@ingestron/core 0.12.1 → 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.
@@ -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.0
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.4
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": "bd351bcb05275321078409b4de83648751a51e609ab5c5fc5489f1fe31433bcd",
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,9 +21,9 @@
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": "bd6217f7eb33c3c5649f8edecab3ce87d4774c9ff790feff8763ebab71866531",
24
+ "dist/core/operations.js": "7f4a9eeee19d3e1e4c1beecc0350e38d386f012edfb31c3248efcd22ebd40a77",
25
25
  "dist/core/package-references.js": "bd3085eb6dcdac399d79af109d0a9e710a0532eba61e5298dc842aec9c7ef10a",
26
- "dist/core/packages.js": "9c699b518a5c364c361d2b856f3fc6e67fe43ce0dc906b8aa474e341c5e49110",
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",
@@ -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": "19327f428382189a73a462cfd0b48943c0ba3b000633412b35da1d2ded81868b",
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,9 +60,9 @@
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": "3f63b1a7bab027c81a8b27dc31094910df34af6ea333b5f12590b9cf85904cb4",
63
+ "src/core/operations.ts": "e0a5a0e869e96de4e869f89e0fd794cb9fa537a16fb1f37fd8cf2b7ca777c08d",
64
64
  "src/core/package-references.ts": "5c5cee7e140158928e2e5a37f426520c7c2f042546a37eed4507d79326181f5a",
65
- "src/core/packages.ts": "b32d52adf6d4c3673cc70b5bc8638e5986fe4790b9e9ac386e057561cec13b32",
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",
@@ -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>;
@@ -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(),
@@ -206,6 +206,7 @@ export declare function installPackage(root: string, reference: string, options?
206
206
  update?: boolean;
207
207
  frozen?: boolean;
208
208
  tagPrefix?: string;
209
+ kind?: "provider" | "connector";
209
210
  }): {
210
211
  repository: string;
211
212
  path: string;
@@ -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");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingestron/core",
3
- "version": "0.12.1",
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",
@@ -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.0",
38
- "zod": "4.5.4"
37
+ "yaml": "2.9.1",
38
+ "zod": "4.6.5"
39
39
  },
40
40
  "publishConfig": {
41
41
  "access": "public",
@@ -45,16 +45,6 @@
45
45
  "type": "git",
46
46
  "url": "git+https://github.com/ingestron/core.git"
47
47
  },
48
- "devDependencies": {
49
- "@types/node": "22.20.1",
50
- "prettier": "3.9.6",
51
- "tsx": "4.23.13",
52
- "typescript": "7.0.2"
53
- },
54
- "homepage": "https://ingestron.io",
55
- "bugs": {
56
- "url": "https://github.com/ingestron/core/issues"
57
- },
58
48
  "scripts": {
59
49
  "build": "node scripts/build-assets.mjs && tsc && node scripts/compiler-fingerprint.mjs",
60
50
  "test": "tsx --test --test-concurrency=1 test/unit/*.test.ts test/providers/*.test.ts test/integration/*.test.ts",
@@ -64,6 +54,19 @@
64
54
  "release:check": "node scripts/release-check.mjs",
65
55
  "package:check": "tsx scripts/package-check.ts",
66
56
  "validate": "pnpm format:check && pnpm build && pnpm test && pnpm secrets:check && pnpm release:check && pnpm package:check",
57
+ "prepack": "npm run build",
58
+ "prepublishOnly": "node scripts/release-check.mjs --publish",
67
59
  "licences:inventory": "node scripts/licence-inventory.mjs"
60
+ },
61
+ "packageManager": "pnpm@10.15.0",
62
+ "devDependencies": {
63
+ "@types/node": "22.20.1",
64
+ "prettier": "3.9.8",
65
+ "tsx": "4.23.13",
66
+ "typescript": "7.0.2"
67
+ },
68
+ "homepage": "https://ingestron.io",
69
+ "bugs": {
70
+ "url": "https://github.com/ingestron/core/issues"
68
71
  }
69
- }
72
+ }