@balena/contrato 0.16.0 → 0.17.0
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 +5 -2
- package/build/contract.d.ts +0 -1
- package/build/contract.js +0 -6
- package/build/contract.js.map +1 -1
- package/build/types.d.ts +1 -5
- package/contrato-wasm/pkg/contrato_wasm.d.ts +1 -10
- package/contrato-wasm/pkg/contrato_wasm.js +1 -18
- package/contrato-wasm/pkg/contrato_wasm_bg.wasm +0 -0
- package/contrato-wasm/pkg/contrato_wasm_bg.wasm.d.ts +0 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -14,8 +14,8 @@ const osContract = new Contract({
|
|
|
14
14
|
children: [
|
|
15
15
|
{ type: 'sw.service', slug: 'balena-engine', version: '20.10.43' },
|
|
16
16
|
{ type: 'sw.service', slug: 'NetworkManager', version: '0.6.0' },
|
|
17
|
+
{ type: 'sw.feature', slug: 'secureboot' },
|
|
17
18
|
],
|
|
18
|
-
provides: [{ type: 'sw.feature', slug: 'secureboot' }],
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
const serviceContract = new Contract({
|
|
@@ -36,7 +36,7 @@ if (osContract.satisfiesChildContract(serviceContract)) {
|
|
|
36
36
|
|
|
37
37
|
## About contracts
|
|
38
38
|
|
|
39
|
-
Contracts provide a standardized mechanism to describing _things_. A thing generally refers to something versionable, e.g. a software library, a feature, an API, etc. Relationships between things can be established via composition and referencing (`
|
|
39
|
+
Contracts provide a standardized mechanism to describing _things_. A thing generally refers to something versionable, e.g. a software library, a feature, an API, etc. Relationships between things can be established via composition and referencing (`children` and `requires`). Through this library, contracts can be validated, composed and combined.
|
|
40
40
|
|
|
41
41
|
### Why build this?
|
|
42
42
|
|
|
@@ -99,6 +99,9 @@ Describe a complex _thing_ via a composite contract
|
|
|
99
99
|
}
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
+
Children are also how a contract declares the capabilities it makes available to
|
|
103
|
+
its context: any child can be matched by another contract's `requires`.
|
|
104
|
+
|
|
102
105
|
Describe a set of things via [templating](#contract-templating)
|
|
103
106
|
|
|
104
107
|
```json
|
package/build/contract.d.ts
CHANGED
|
@@ -25,7 +25,6 @@ export default class Contract {
|
|
|
25
25
|
types?: Set<string>;
|
|
26
26
|
}): Contract[];
|
|
27
27
|
getChildrenByType(type: string): Contract[];
|
|
28
|
-
findChildrenWithCapabilities(matcher: MatcherObject): Contract[];
|
|
29
28
|
findChildren(matcher: MatcherObject): Contract[];
|
|
30
29
|
getChildrenCombinations(options: {
|
|
31
30
|
type: string;
|
package/build/contract.js
CHANGED
|
@@ -95,12 +95,6 @@ class Contract {
|
|
|
95
95
|
getChildrenByType(type) {
|
|
96
96
|
return this.#inner.getChildrenByType(type).map((c) => Contract.fromWasm(c));
|
|
97
97
|
}
|
|
98
|
-
findChildrenWithCapabilities(matcher) {
|
|
99
|
-
if (!matcher || !('type' in matcher) || !matcher.type) {
|
|
100
|
-
return [];
|
|
101
|
-
}
|
|
102
|
-
return this.#inner.findChildrenWithCapabilities(matcher).map((c) => Contract.fromWasm(c));
|
|
103
|
-
}
|
|
104
98
|
findChildren(matcher) {
|
|
105
99
|
if (!matcher || !('type' in matcher) || !matcher.type) {
|
|
106
100
|
return [];
|
package/build/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../lib/contract.ts"],"names":[],"mappings":";;;;;AAAA,+EAAuD;AACvD,yDAAiC;AACjC,2DAAmC;AACnC,uDAA+C;AAC/C,mCAA4C;AAE5C,4EAAiF;AACjF,+CAAwC;AAGxC,SAAS,QAAQ,CAAC,KAAmB;IACpC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED,MAAqB,QAAQ;IAG5B,MAAM,CAAe;IAoBd,GAAG;QAIT,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAkBD,YAAY,MAAsB;QAIjC,IAAI,CAAC,MAAM;YACV,MAAM,YAAY,2BAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,2BAAY,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;YACnC,GAAG,EAAE,GAAmB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC/C,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;IACJ,CAAC;IAGS,MAAM,CAAC,QAAQ,CAAC,KAAmB;QAC5C,OAAO,IAAI,QAAQ,CAAC,KAAkC,CAAC,CAAC;IACzD,CAAC;IAoBD,IAAI;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAcD,WAAW;QACV,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IAoBD,UAAU;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAmBD,OAAO;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAqBD,WAAW;QACV,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAc,CAAC,CAAC;IACvD,CAAC;IAsBD,UAAU;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAoBD,gBAAgB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC;IAmBD,OAAO;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAmBD,kBAAkB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IACzC,CAAC;IAeD,MAAM;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAeD,QAAQ,CAAC,QAAkB;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACb,CAAC;IAkBD,WAAW,CAAC,QAAkB;QAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAsBD,WAAW,CAAC,YAAwB,EAAE;QAErC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,2BAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAeD,gBAAgB;QACf,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAc,CAAC,CAAC;IAC5D,CAAC;IAqBD,cAAc,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAsBD,WAAW,CAAC,UAAmC,EAAE;QAChD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAC;YACX,CAAC;YACD,OACC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CACjD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9D,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpB,CAAC;IACH,CAAC;IAoBD,iBAAiB,CAAC,IAAY;QAC7B,OAAQ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpB,CAAC;IACH,CAAC;
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../lib/contract.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type ContractRequirement = MatcherObject | {
|
|
|
19
19
|
} | {
|
|
20
20
|
not: MatcherObject[];
|
|
21
21
|
};
|
|
22
|
-
export type ChildrenTree = Record<string, unknown
|
|
22
|
+
export type ChildrenTree = Record<string, unknown> | ContractObject[];
|
|
23
23
|
interface PartialContract {
|
|
24
24
|
slug?: string;
|
|
25
25
|
version?: string;
|
|
@@ -29,13 +29,9 @@ interface PartialContract {
|
|
|
29
29
|
data?: any;
|
|
30
30
|
assets?: Record<string, Asset>;
|
|
31
31
|
requires?: ContractRequirement[];
|
|
32
|
-
provides?: ContractCapability[];
|
|
33
32
|
variants?: PartialContract[];
|
|
34
33
|
children?: ChildrenTree;
|
|
35
34
|
}
|
|
36
|
-
export interface ContractCapability extends PartialContract {
|
|
37
|
-
type: string;
|
|
38
|
-
}
|
|
39
35
|
export interface ContractObject extends PartialContract {
|
|
40
36
|
type: string;
|
|
41
37
|
canonicalSlug?: string;
|
|
@@ -34,22 +34,13 @@ export class Contract {
|
|
|
34
34
|
*/
|
|
35
35
|
static build(source: any): Array<any>;
|
|
36
36
|
/**
|
|
37
|
-
* Searches for children matching the given matcher
|
|
38
|
-
* internal search cache on first lookup.
|
|
37
|
+
* Searches for children matching the given matcher.
|
|
39
38
|
*
|
|
40
39
|
* `matcher` is a plain JS object shaped like `{ type, slug?,
|
|
41
40
|
* version?, data? }`, deserialized into [`ContractMatcher`] at the
|
|
42
41
|
* boundary.
|
|
43
42
|
*/
|
|
44
43
|
findChildren(matcher: any): Array<any>;
|
|
45
|
-
/**
|
|
46
|
-
* Searches for children whose `provides` capabilities match the
|
|
47
|
-
* given matcher. Unlike [`Self::find_children`], this path is not
|
|
48
|
-
* cached.
|
|
49
|
-
*
|
|
50
|
-
* `matcher` has the same shape as in [`Self::find_children`].
|
|
51
|
-
*/
|
|
52
|
-
findChildrenWithCapabilities(matcher: any): Array<any>;
|
|
53
44
|
/**
|
|
54
45
|
* Aggregates every unsatisfied compiled requirement across all
|
|
55
46
|
* descendants of `self`, as an array of plain JS objects.
|
|
@@ -78,8 +78,7 @@ class Contract {
|
|
|
78
78
|
return takeFromExternrefTable0(ret[0]);
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
|
-
* Searches for children matching the given matcher
|
|
82
|
-
* internal search cache on first lookup.
|
|
81
|
+
* Searches for children matching the given matcher.
|
|
83
82
|
*
|
|
84
83
|
* `matcher` is a plain JS object shaped like `{ type, slug?,
|
|
85
84
|
* version?, data? }`, deserialized into [`ContractMatcher`] at the
|
|
@@ -94,22 +93,6 @@ class Contract {
|
|
|
94
93
|
}
|
|
95
94
|
return takeFromExternrefTable0(ret[0]);
|
|
96
95
|
}
|
|
97
|
-
/**
|
|
98
|
-
* Searches for children whose `provides` capabilities match the
|
|
99
|
-
* given matcher. Unlike [`Self::find_children`], this path is not
|
|
100
|
-
* cached.
|
|
101
|
-
*
|
|
102
|
-
* `matcher` has the same shape as in [`Self::find_children`].
|
|
103
|
-
* @param {any} matcher
|
|
104
|
-
* @returns {Array<any>}
|
|
105
|
-
*/
|
|
106
|
-
findChildrenWithCapabilities(matcher) {
|
|
107
|
-
const ret = wasm.contract_findChildrenWithCapabilities(this.__wbg_ptr, matcher);
|
|
108
|
-
if (ret[2]) {
|
|
109
|
-
throw takeFromExternrefTable0(ret[1]);
|
|
110
|
-
}
|
|
111
|
-
return takeFromExternrefTable0(ret[0]);
|
|
112
|
-
}
|
|
113
96
|
/**
|
|
114
97
|
* Aggregates every unsatisfied compiled requirement across all
|
|
115
98
|
* descendants of `self`, as an array of plain JS objects.
|
|
Binary file
|
|
@@ -7,7 +7,6 @@ export const contract_addChildren: (a: number, b: number, c: number) => void;
|
|
|
7
7
|
export const contract_areChildrenSatisfied: (a: number, b: number, c: number) => number;
|
|
8
8
|
export const contract_build: (a: any) => [number, number, number];
|
|
9
9
|
export const contract_findChildren: (a: number, b: any) => [number, number, number];
|
|
10
|
-
export const contract_findChildrenWithCapabilities: (a: number, b: any) => [number, number, number];
|
|
11
10
|
export const contract_getAllNotSatisfiedChildRequirements: (a: number, b: number, c: number) => [number, number, number];
|
|
12
11
|
export const contract_getAllSlugs: (a: number) => any;
|
|
13
12
|
export const contract_getCanonicalSlug: (a: number) => [number, number];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balena/contrato",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "The official contract implementation",
|
|
5
5
|
"homepage": "https://github.com/balena-io/contrato",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -72,6 +72,6 @@
|
|
|
72
72
|
"npm": ">=10.0.0"
|
|
73
73
|
},
|
|
74
74
|
"versionist": {
|
|
75
|
-
"publishedAt": "2026-08-
|
|
75
|
+
"publishedAt": "2026-08-24T23:14:58.674Z"
|
|
76
76
|
}
|
|
77
77
|
}
|