@manya-os/contracts 1.0.0 → 1.1.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/CHANGELOG.md CHANGED
@@ -1,19 +1,19 @@
1
- # Changelog
2
-
3
- All notable changes to `@manya/contracts` are documented here.
4
- Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Adheres to [SemVer](https://semver.org/).
5
-
6
- ## [1.0.0] — 2024-01-15
7
- ### Added
8
- - Initial release.
9
- - Schema definition language: `compileSchema` (record or array field syntax) and `validateValue` for all 10 type kinds (string, number, boolean, null, object, array, enum, ref, union, intersection).
10
- - Manifest validation (`validateManifest`, `assertManifest`, `isValidManifest`) with one stable code per failure mode.
11
- - Semver parsing (`parseSemver`, `isSemver`), comparison (`compareSemver`, `compareParsedSemver`) with full prerelease handling per semver.org §11, range satisfaction (`satisfies`) supporting `*`, `^`, `~`, exact, and comparison operators.
12
- - Backward-compatibility analysis (`checkBackwardCompat`) detecting field removal, type change, required addition, and enum value removal.
13
- - API contract validation: `findEndpoint`, `validateRequest`, `validateResponse`, `assertValidContract`.
14
- - Schema synchronization: `diffSchemas` (added/removed/changed), `mergeSchemas` with conflict detection and `fieldsEqual` deep equality.
15
- - Boundary enforcement: `enforceBoundary` (with `*` wildcards), `detectViolations` over a call graph, `matchRule`, `isPolicySatisfied`.
16
- - Validation reports: `buildReport`, `aggregateReports`, `serializeReport` (JSON), `summarizeReport` (one-line).
17
- - Typed error hierarchy: `ContractsError`, `SchemaError`, `ManifestError` (with `MANIFEST_ERROR_CODES`), `CompatibilityError`, `ApiValidationError`, `SyncError`, `BoundaryError`, `ReportingError`.
18
- - Structured logging: `Logger`, `ConsoleLogger` with secret scrubbing, `SilentLogger`, `scrubMetadata`, `shouldScrubField`, `SCRUBBED_FIELD_NAMES`.
19
- - Comprehensive unit test suite (99 tests).
1
+ # Changelog
2
+
3
+ All notable changes to `@manya-os/contracts` are documented here.
4
+ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Adheres to [SemVer](https://semver.org/).
5
+
6
+ ## [1.0.0] — 2024-01-15
7
+ ### Added
8
+ - Initial release.
9
+ - Schema definition language: `compileSchema` (record or array field syntax) and `validateValue` for all 10 type kinds (string, number, boolean, null, object, array, enum, ref, union, intersection).
10
+ - Manifest validation (`validateManifest`, `assertManifest`, `isValidManifest`) with one stable code per failure mode.
11
+ - Semver parsing (`parseSemver`, `isSemver`), comparison (`compareSemver`, `compareParsedSemver`) with full prerelease handling per semver.org §11, range satisfaction (`satisfies`) supporting `*`, `^`, `~`, exact, and comparison operators.
12
+ - Backward-compatibility analysis (`checkBackwardCompat`) detecting field removal, type change, required addition, and enum value removal.
13
+ - API contract validation: `findEndpoint`, `validateRequest`, `validateResponse`, `assertValidContract`.
14
+ - Schema synchronization: `diffSchemas` (added/removed/changed), `mergeSchemas` with conflict detection and `fieldsEqual` deep equality.
15
+ - Boundary enforcement: `enforceBoundary` (with `*` wildcards), `detectViolations` over a call graph, `matchRule`, `isPolicySatisfied`.
16
+ - Validation reports: `buildReport`, `aggregateReports`, `serializeReport` (JSON), `summarizeReport` (one-line).
17
+ - Typed error hierarchy: `ContractsError`, `SchemaError`, `ManifestError` (with `MANIFEST_ERROR_CODES`), `CompatibilityError`, `ApiValidationError`, `SyncError`, `BoundaryError`, `ReportingError`.
18
+ - Structured logging: `Logger`, `ConsoleLogger` with secret scrubbing, `SilentLogger`, `scrubMetadata`, `shouldScrubField`, `SCRUBBED_FIELD_NAMES`.
19
+ - Comprehensive unit test suite (99 tests).
package/LICENSE CHANGED
@@ -1,20 +1,20 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- Copyright 2024 Manya Hael Foundation. All rights reserved.
6
-
7
- Conceived, directed, and owned by Uviwe Menyiwe (Azura Daemon),
8
- founder of the Manya Hael Foundation.
9
-
10
- Licensed under the Apache License, Version 2.0 (the "License");
11
- you may not use this file except in compliance with the License.
12
- You may obtain a copy of the License at
13
-
14
- http://www.apache.org/licenses/LICENSE-2.0
15
-
16
- Unless required by applicable law or agreed to in writing, software
17
- distributed under the License is distributed on an "AS IS" BASIS,
18
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
- See the License for the specific language governing permissions and
20
- limitations under the License.
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ Copyright 2024 Manya Hael Foundation. All rights reserved.
6
+
7
+ Conceived, directed, and owned by Uviwe Menyiwe (Azura Daemon),
8
+ founder of the Manya Hael Foundation.
9
+
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
package/README.md CHANGED
@@ -1,223 +1,223 @@
1
- # @manya/contracts
2
-
3
- > Universal contract and schema validation for the MANYA Intelligence OS — interface schemas, manifests, semver compatibility, API contracts, schema sync, boundary enforcement, and validation reports.
4
-
5
- `@manya/contracts` is the contract substrate of the **MANYA Intelligence OS** — a sovereign, modular, local-first intelligence operating system conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the **Manya Hael Foundation**.
6
-
7
- The package provides a JSON-ish schema definition language with a typed compiler, manifest validation, full semver parsing and range satisfaction, backward-compatibility analysis between two schema versions, HTTP API contract validation, schema diffing and merging with conflict detection, module boundary enforcement via policies, and aggregated validation reports.
8
-
9
- ---
10
-
11
- ## Vision
12
-
13
- The Manya Hael Foundation stewards the MANYA Intelligence OS as a long-horizon, mission-driven project. `@manya/contracts` extends that sovereignty into the contract domain: **your interfaces, your versioning rules, your boundary policy — yours alone.**
14
-
15
- - **Sovereign.** No network calls. Every schema, manifest, and policy is local.
16
- - **Typed.** Every public symbol is typed; every error carries a stable `code` string.
17
- - **Composable.** Validation results are first-class values that aggregate into reports.
18
- - **Reproducible.** Identical inputs produce identical validation results and reports.
19
- - **Honest.** Breaking changes are listed explicitly; conflicts surface a `resolution` hint.
20
-
21
- ---
22
-
23
- ## Features
24
-
25
- | Area | What you get |
26
- | --- | --- |
27
- | **Schema** | `compileSchema` (record or array field syntax, defaults `required: true`), `validateValue` against 10 type kinds (string/number/boolean/null/object/array/enum/ref/union/intersection). |
28
- | **Manifest** | `validateManifest` for name, version (semver), dependencies, exports, imports, capabilities — with one stable code per failure mode. |
29
- | **Compatibility** | `parseSemver`, `compareSemver` (with prerelease per semver.org §11), `satisfies` (`*`, `^`, `~`, exact, `>`, `>=`, `<`, `<=`), `checkBackwardCompat` detecting field removal, type change, required addition, enum value removal. |
30
- | **API** | `ApiContract` + `ApiEndpoint`, `findEndpoint`, `validateRequest`, `validateResponse`, `assertValidContract`. |
31
- | **Sync** | `diffSchemas` (added/removed/changed), `mergeSchemas` with conflict detection, `fieldsEqual` deep equality. |
32
- | **Boundaries** | `BoundaryPolicy` + `BoundaryRule`, `enforceBoundary` (with `*` wildcards), `detectViolations` over a call graph, `isPolicySatisfied`. |
33
- | **Reporting** | `buildReport`, `aggregateReports`, `serializeReport` (JSON), `summarizeReport` (one-line). |
34
- | **Logging** | `Logger` interface, `ConsoleLogger` with secret-scrubbing, `SilentLogger`. |
35
-
36
- ---
37
-
38
- ## Install
39
-
40
- ```bash
41
- npm install @manya/contracts
42
- ```
43
-
44
- Requires Node.js 18+.
45
-
46
- ---
47
-
48
- ## Quick start
49
-
50
- ### 1. Define a schema and validate a value
51
-
52
- ```ts
53
- import { compileSchema, validateValue } from '@manya/contracts';
54
-
55
- const User = compileSchema({
56
- name: 'User', version: '1.0.0',
57
- fields: {
58
- id: { type: 'string', description: 'User id.' },
59
- age: { type: 'number', required: false },
60
- active: { type: 'boolean' },
61
- role: { type: 'enum', enum: ['admin', 'user'] },
62
- tags: { type: 'array', of: { type: 'string' }, required: false },
63
- profile: {
64
- type: 'object', required: false,
65
- fields: { bio: { type: 'string', required: false } },
66
- },
67
- },
68
- });
69
-
70
- const result = validateValue(User, {
71
- id: 'u1', age: 30, active: true, role: 'admin', tags: ['x'],
72
- });
73
- console.log(result.valid); // true
74
- console.log(result.errors); // []
75
- ```
76
-
77
- ### 2. Validate a manifest and check version compatibility
78
-
79
- ```ts
80
- import { validateManifest, satisfies, checkBackwardCompat } from '@manya/contracts';
81
-
82
- const m = validateManifest({
83
- name: '@manya/example', version: '1.2.3',
84
- dependencies: { '@manya/contracts': '^1.0.0' },
85
- exports: ['./src/index.js'],
86
- capabilities: ['crypto'],
87
- });
88
- console.log(m.valid, m.errors);
89
-
90
- console.log(satisfies('1.4.0', '^1.2.3')); // true
91
- console.log(satisfies('2.0.0', '^1.2.3')); // false
92
-
93
- const compat = checkBackwardCompat(v1, v2);
94
- console.log(compat.compatible, compat.breakingChanges);
95
- ```
96
-
97
- ### 3. Validate an HTTP request/response against an API contract
98
-
99
- ```ts
100
- import { compileSchema, validateRequest, validateResponse } from '@manya/contracts';
101
-
102
- const contract = {
103
- name: 'users-api', version: '1.0.0',
104
- endpoints: [
105
- {
106
- method: 'POST', path: '/users',
107
- requestSchema: compileSchema({
108
- name: 'CreateUserReq', version: '1.0.0',
109
- fields: { name: { type: 'string' }, email: { type: 'string' } },
110
- }),
111
- responseSchema: compileSchema({
112
- name: 'CreateUserRes', version: '1.0.0',
113
- fields: { id: { type: 'string' } },
114
- }),
115
- },
116
- ],
117
- };
118
-
119
- const req = validateRequest(contract, 'POST', '/users', { name: 'A', email: 'a@b.c' });
120
- const res = validateResponse(contract, 'POST', '/users', { id: 'u1' });
121
- console.log(req.valid, res.valid);
122
- ```
123
-
124
- ### 4. Enforce module boundaries and aggregate a report
125
-
126
- ```ts
127
- import {
128
- enforceBoundary, detectViolations, buildReport, aggregateReports, summarizeReport,
129
- } from '@manya/contracts';
130
-
131
- const policy = {
132
- name: 'p', defaultAllow: false,
133
- rules: [
134
- { from: 'api', to: 'db', allowed: true, reason: 'api owns db access' },
135
- { from: 'ui', to: 'db', allowed: false, reason: 'ui must not bypass api' },
136
- ],
137
- };
138
- console.log(enforceBoundary(policy, 'ui', 'db'));
139
- console.log(detectViolations(policy, [
140
- { from: 'api', to: 'db' },
141
- { from: 'ui', to: 'db' }, // violation
142
- ]));
143
-
144
- const report = buildReport('deploy-gate', [
145
- { name: 'manifest', passed: true, errors: [] },
146
- { name: 'compat', passed: false, errors: [{ path: 'id', message: 'type_changed', code: 'type_changed' }] },
147
- ]);
148
- console.log(summarizeReport(aggregateReports([report])));
149
- // → aggregate: FAIL (1/2 sections, 1 error) at 2024-...
150
- ```
151
-
152
- ---
153
-
154
- ## Configuration
155
-
156
- `@manya/contracts` has no runtime configuration object — every function is pure and explicit. The only configurable surface is the optional `Logger` you can pass to higher-level orchestration code; the package ships `ConsoleLogger` (with secret scrubbing) and `SilentLogger`.
157
-
158
- ### Supported schema type kinds
159
-
160
- | `type` | Required extra fields | Description |
161
- | --- | --- | --- |
162
- | `string` / `number` / `boolean` / `null` | none | JSON primitives. |
163
- | `object` | `fields?` | Nested record; if `fields` is given, each is validated. |
164
- | `array` | `of` | Homogeneous list; `of` is the element field definition. |
165
- | `enum` | `enum` | One of the literal values in `enum`. |
166
- | `ref` | `ref` | Reference to another `InterfaceSchema` by name (passed via `refs`). |
167
- | `union` | `oneOf` | One of several member field definitions. |
168
- | `intersection` | `allOf` | All of several member field definitions. |
169
-
170
- ### Semver range forms supported by `satisfies`
171
-
172
- | Form | Meaning |
173
- | --- | --- |
174
- | `*` | Any version. |
175
- | `1.2.3` | Exact match. |
176
- | `^1.2.3` | Compatible-with (same major; for `0.x` and `0.0.x` tighter). |
177
- | `~1.2.3` | Patch-level (same major and minor). |
178
- | `>=1.2.3`, `>1.2.3`, `<=1.2.3`, `<1.2.3` | Comparison. |
179
-
180
- ---
181
-
182
- ## Extending
183
-
184
- ### Add a custom schema type
185
-
186
- 1. Add the type name to the `SchemaType` union in `src/types.ts`.
187
- 2. Extend `SCHEMA_TYPES` and the `compileField` validation in `src/schema/schema.ts`.
188
- 3. Add a `case` to the `validateField` switch.
189
- 4. Add unit tests covering at least one positive and one negative case.
190
- 5. Update `docs/API.md` and `README.md`.
191
-
192
- ### Add a new compatibility rule
193
-
194
- `checkBackwardCompat` already detects field removal, type change, required addition, and enum value removal. To add a new rule (e.g. "field became required"), push a new `BreakingChange` to the `breakingChanges` array in `src/compatibility/compatibility.ts`, document the new `type` literal in `src/types.ts`, and add a test.
195
-
196
- ---
197
-
198
- ## Security notes
199
-
200
- - **Local-only.** No schema, manifest, or policy data leaves the host process.
201
- - **No PII in logs.** `secret`, `token`, `apiKey`, `password`, `authorization`, `privateKey`, `accessToken`, `refreshToken` are scrubbed.
202
- - **Defense in depth.** Validation never throws on a bad value — it returns `{ valid, errors }`; structural problems (e.g. unparseable schema) raise typed errors.
203
- - **Reproducibility.** Identical inputs → identical validation results and reports.
204
-
205
- For threat models, see [SECURITY.md](./SECURITY.md) and the root [SECURITY.md](../../SECURITY.md).
206
-
207
- ---
208
-
209
- ## Documentation
210
-
211
- - [docs/API.md](./docs/API.md) — full TypeScript API reference.
212
- - [CHANGELOG.md](./CHANGELOG.md) — release history.
213
- - [CONTRIBUTING.md](./CONTRIBUTING.md) — package-specific contributor notes.
214
- - [SECURITY.md](./SECURITY.md) — package-specific security surface.
215
- - [LICENSE](./LICENSE) — Apache-2.0.
216
-
217
- ---
218
-
219
- ## License
220
-
221
- Apache-2.0. Copyright 2024 Manya Hael Foundation. All rights reserved.
222
-
223
- Conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the Manya Hael Foundation.
1
+ # @manya-os/contracts
2
+
3
+ > Universal contract and schema validation for the MANYA Intelligence OS — interface schemas, manifests, semver compatibility, API contracts, schema sync, boundary enforcement, and validation reports.
4
+
5
+ `@manya-os/contracts` is the contract substrate of the **MANYA Intelligence OS** — a sovereign, modular, local-first intelligence operating system conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the **Manya Hael Foundation**.
6
+
7
+ The package provides a JSON-ish schema definition language with a typed compiler, manifest validation, full semver parsing and range satisfaction, backward-compatibility analysis between two schema versions, HTTP API contract validation, schema diffing and merging with conflict detection, module boundary enforcement via policies, and aggregated validation reports.
8
+
9
+ ---
10
+
11
+ ## Vision
12
+
13
+ The Manya Hael Foundation stewards the MANYA Intelligence OS as a long-horizon, mission-driven project. `@manya-os/contracts` extends that sovereignty into the contract domain: **your interfaces, your versioning rules, your boundary policy — yours alone.**
14
+
15
+ - **Sovereign.** No network calls. Every schema, manifest, and policy is local.
16
+ - **Typed.** Every public symbol is typed; every error carries a stable `code` string.
17
+ - **Composable.** Validation results are first-class values that aggregate into reports.
18
+ - **Reproducible.** Identical inputs produce identical validation results and reports.
19
+ - **Honest.** Breaking changes are listed explicitly; conflicts surface a `resolution` hint.
20
+
21
+ ---
22
+
23
+ ## Features
24
+
25
+ | Area | What you get |
26
+ | --- | --- |
27
+ | **Schema** | `compileSchema` (record or array field syntax, defaults `required: true`), `validateValue` against 10 type kinds (string/number/boolean/null/object/array/enum/ref/union/intersection). |
28
+ | **Manifest** | `validateManifest` for name, version (semver), dependencies, exports, imports, capabilities — with one stable code per failure mode. |
29
+ | **Compatibility** | `parseSemver`, `compareSemver` (with prerelease per semver.org §11), `satisfies` (`*`, `^`, `~`, exact, `>`, `>=`, `<`, `<=`), `checkBackwardCompat` detecting field removal, type change, required addition, enum value removal. |
30
+ | **API** | `ApiContract` + `ApiEndpoint`, `findEndpoint`, `validateRequest`, `validateResponse`, `assertValidContract`. |
31
+ | **Sync** | `diffSchemas` (added/removed/changed), `mergeSchemas` with conflict detection, `fieldsEqual` deep equality. |
32
+ | **Boundaries** | `BoundaryPolicy` + `BoundaryRule`, `enforceBoundary` (with `*` wildcards), `detectViolations` over a call graph, `isPolicySatisfied`. |
33
+ | **Reporting** | `buildReport`, `aggregateReports`, `serializeReport` (JSON), `summarizeReport` (one-line). |
34
+ | **Logging** | `Logger` interface, `ConsoleLogger` with secret-scrubbing, `SilentLogger`. |
35
+
36
+ ---
37
+
38
+ ## Install
39
+
40
+ ```bash
41
+ npm install @manya-os/contracts
42
+ ```
43
+
44
+ Requires Node.js 18+.
45
+
46
+ ---
47
+
48
+ ## Quick start
49
+
50
+ ### 1. Define a schema and validate a value
51
+
52
+ ```ts
53
+ import { compileSchema, validateValue } from '@manya-os/contracts';
54
+
55
+ const User = compileSchema({
56
+ name: 'User', version: '1.0.0',
57
+ fields: {
58
+ id: { type: 'string', description: 'User id.' },
59
+ age: { type: 'number', required: false },
60
+ active: { type: 'boolean' },
61
+ role: { type: 'enum', enum: ['admin', 'user'] },
62
+ tags: { type: 'array', of: { type: 'string' }, required: false },
63
+ profile: {
64
+ type: 'object', required: false,
65
+ fields: { bio: { type: 'string', required: false } },
66
+ },
67
+ },
68
+ });
69
+
70
+ const result = validateValue(User, {
71
+ id: 'u1', age: 30, active: true, role: 'admin', tags: ['x'],
72
+ });
73
+ console.log(result.valid); // true
74
+ console.log(result.errors); // []
75
+ ```
76
+
77
+ ### 2. Validate a manifest and check version compatibility
78
+
79
+ ```ts
80
+ import { validateManifest, satisfies, checkBackwardCompat } from '@manya-os/contracts';
81
+
82
+ const m = validateManifest({
83
+ name: '@manya-os/example', version: '1.2.3',
84
+ dependencies: { '@manya-os/contracts': '^1.0.0' },
85
+ exports: ['./src/index.js'],
86
+ capabilities: ['crypto'],
87
+ });
88
+ console.log(m.valid, m.errors);
89
+
90
+ console.log(satisfies('1.4.0', '^1.2.3')); // true
91
+ console.log(satisfies('2.0.0', '^1.2.3')); // false
92
+
93
+ const compat = checkBackwardCompat(v1, v2);
94
+ console.log(compat.compatible, compat.breakingChanges);
95
+ ```
96
+
97
+ ### 3. Validate an HTTP request/response against an API contract
98
+
99
+ ```ts
100
+ import { compileSchema, validateRequest, validateResponse } from '@manya-os/contracts';
101
+
102
+ const contract = {
103
+ name: 'users-api', version: '1.0.0',
104
+ endpoints: [
105
+ {
106
+ method: 'POST', path: '/users',
107
+ requestSchema: compileSchema({
108
+ name: 'CreateUserReq', version: '1.0.0',
109
+ fields: { name: { type: 'string' }, email: { type: 'string' } },
110
+ }),
111
+ responseSchema: compileSchema({
112
+ name: 'CreateUserRes', version: '1.0.0',
113
+ fields: { id: { type: 'string' } },
114
+ }),
115
+ },
116
+ ],
117
+ };
118
+
119
+ const req = validateRequest(contract, 'POST', '/users', { name: 'A', email: 'a@b.c' });
120
+ const res = validateResponse(contract, 'POST', '/users', { id: 'u1' });
121
+ console.log(req.valid, res.valid);
122
+ ```
123
+
124
+ ### 4. Enforce module boundaries and aggregate a report
125
+
126
+ ```ts
127
+ import {
128
+ enforceBoundary, detectViolations, buildReport, aggregateReports, summarizeReport,
129
+ } from '@manya-os/contracts';
130
+
131
+ const policy = {
132
+ name: 'p', defaultAllow: false,
133
+ rules: [
134
+ { from: 'api', to: 'db', allowed: true, reason: 'api owns db access' },
135
+ { from: 'ui', to: 'db', allowed: false, reason: 'ui must not bypass api' },
136
+ ],
137
+ };
138
+ console.log(enforceBoundary(policy, 'ui', 'db'));
139
+ console.log(detectViolations(policy, [
140
+ { from: 'api', to: 'db' },
141
+ { from: 'ui', to: 'db' }, // violation
142
+ ]));
143
+
144
+ const report = buildReport('deploy-gate', [
145
+ { name: 'manifest', passed: true, errors: [] },
146
+ { name: 'compat', passed: false, errors: [{ path: 'id', message: 'type_changed', code: 'type_changed' }] },
147
+ ]);
148
+ console.log(summarizeReport(aggregateReports([report])));
149
+ // → aggregate: FAIL (1/2 sections, 1 error) at 2024-...
150
+ ```
151
+
152
+ ---
153
+
154
+ ## Configuration
155
+
156
+ `@manya-os/contracts` has no runtime configuration object — every function is pure and explicit. The only configurable surface is the optional `Logger` you can pass to higher-level orchestration code; the package ships `ConsoleLogger` (with secret scrubbing) and `SilentLogger`.
157
+
158
+ ### Supported schema type kinds
159
+
160
+ | `type` | Required extra fields | Description |
161
+ | --- | --- | --- |
162
+ | `string` / `number` / `boolean` / `null` | none | JSON primitives. |
163
+ | `object` | `fields?` | Nested record; if `fields` is given, each is validated. |
164
+ | `array` | `of` | Homogeneous list; `of` is the element field definition. |
165
+ | `enum` | `enum` | One of the literal values in `enum`. |
166
+ | `ref` | `ref` | Reference to another `InterfaceSchema` by name (passed via `refs`). |
167
+ | `union` | `oneOf` | One of several member field definitions. |
168
+ | `intersection` | `allOf` | All of several member field definitions. |
169
+
170
+ ### Semver range forms supported by `satisfies`
171
+
172
+ | Form | Meaning |
173
+ | --- | --- |
174
+ | `*` | Any version. |
175
+ | `1.2.3` | Exact match. |
176
+ | `^1.2.3` | Compatible-with (same major; for `0.x` and `0.0.x` tighter). |
177
+ | `~1.2.3` | Patch-level (same major and minor). |
178
+ | `>=1.2.3`, `>1.2.3`, `<=1.2.3`, `<1.2.3` | Comparison. |
179
+
180
+ ---
181
+
182
+ ## Extending
183
+
184
+ ### Add a custom schema type
185
+
186
+ 1. Add the type name to the `SchemaType` union in `src/types.ts`.
187
+ 2. Extend `SCHEMA_TYPES` and the `compileField` validation in `src/schema/schema.ts`.
188
+ 3. Add a `case` to the `validateField` switch.
189
+ 4. Add unit tests covering at least one positive and one negative case.
190
+ 5. Update `docs/API.md` and `README.md`.
191
+
192
+ ### Add a new compatibility rule
193
+
194
+ `checkBackwardCompat` already detects field removal, type change, required addition, and enum value removal. To add a new rule (e.g. "field became required"), push a new `BreakingChange` to the `breakingChanges` array in `src/compatibility/compatibility.ts`, document the new `type` literal in `src/types.ts`, and add a test.
195
+
196
+ ---
197
+
198
+ ## Security notes
199
+
200
+ - **Local-only.** No schema, manifest, or policy data leaves the host process.
201
+ - **No PII in logs.** `secret`, `token`, `apiKey`, `password`, `authorization`, `privateKey`, `accessToken`, `refreshToken` are scrubbed.
202
+ - **Defense in depth.** Validation never throws on a bad value — it returns `{ valid, errors }`; structural problems (e.g. unparseable schema) raise typed errors.
203
+ - **Reproducibility.** Identical inputs → identical validation results and reports.
204
+
205
+ For threat models, see [SECURITY.md](./SECURITY.md) and the root [SECURITY.md](../../SECURITY.md).
206
+
207
+ ---
208
+
209
+ ## Documentation
210
+
211
+ - [docs/API.md](./docs/API.md) — full TypeScript API reference.
212
+ - [CHANGELOG.md](./CHANGELOG.md) — release history.
213
+ - [CONTRIBUTING.md](./CONTRIBUTING.md) — package-specific contributor notes.
214
+ - [SECURITY.md](./SECURITY.md) — package-specific security surface.
215
+ - [LICENSE](./LICENSE) — Apache-2.0.
216
+
217
+ ---
218
+
219
+ ## License
220
+
221
+ Apache-2.0. Copyright 2024 Manya Hael Foundation. All rights reserved.
222
+
223
+ Conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the Manya Hael Foundation.
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2022.full.d.ts","../src/errors.ts","../src/types.ts","../src/logging.ts","../src/schema/schema.ts","../src/manifest/manifest.ts","../src/compatibility/compatibility.ts","../src/api/api.ts","../src/sync/sync.ts","../src/boundaries/boundaries.ts","../src/reporting/reporting.ts","../src/index.ts","../src/api/index.ts","../src/boundaries/index.ts","../src/compatibility/index.ts","../src/manifest/index.ts","../src/reporting/index.ts","../src/schema/index.ts","../src/sync/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/pg-types/index.d.ts","../../../node_modules/pg-protocol/dist/messages.d.ts","../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../node_modules/pg-protocol/dist/parser.d.ts","../../../node_modules/pg-protocol/dist/index.d.ts","../../../node_modules/@types/pg/lib/type-overrides.d.ts","../../../node_modules/@types/pg/index.d.ts","../../../node_modules/@types/resolve/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[82,94,140],[94,140],[94,140,195],[82,83,84,85,86,94,140],[82,84,94,140],[94,140,152,188],[94,140,190],[94,140,191],[94,140,197,200],[94,137,140],[94,139,140],[140],[94,140,145,173],[94,140,141,146,151,159,170,181],[94,140,141,142,151,159],[89,90,91,94,140],[94,140,143,182],[94,140,144,145,152,160],[94,140,145,170,178],[94,140,146,148,151,159],[94,139,140,147],[94,140,148,149],[94,140,150,151],[94,139,140,151],[94,140,151,152,153,170,181],[94,140,151,152,153,166,170,173],[94,140,148,151,154,159,170,181],[94,140,151,152,154,155,159,170,178,181],[94,140,154,156,170,178,181],[92,93,94,95,96,97,98,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[94,140,151,157],[94,140,158,181,186],[94,140,148,151,159,170],[94,140,160],[94,140,161],[94,139,140,162],[94,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[94,140,164],[94,140,165],[94,140,151,166,167],[94,140,166,168,182,184],[94,140,151,170,171,173],[94,140,172,173],[94,140,170,171],[94,140,173],[94,140,174],[94,137,140,170,175],[94,140,151,176,177],[94,140,176,177],[94,140,145,159,170,178],[94,140,179],[94,140,159,180],[94,140,154,165,181],[94,140,145,182],[94,140,170,183],[94,140,158,184],[94,140,185],[94,135,140],[94,135,140,151,153,162,170,173,181,184,186],[94,140,170,187],[94,140,151,170,178,188,203,204,207,208,209],[94,140,209],[94,140,212],[94,140,193,199],[94,140,197],[94,140,194,198],[94,140,204,205,206],[94,140,170,204],[94,140,196],[94,107,111,140,181],[94,107,140,170,181],[94,102,140],[94,104,107,140,178,181],[94,140,159,178],[94,140,188],[94,102,140,188],[94,104,107,140,159,181],[94,99,100,103,106,140,151,170,181],[94,107,114,140],[94,99,105,140],[94,107,128,129,140],[94,103,107,140,173,181,188],[94,128,140,188],[94,101,102,140,188],[94,107,140],[94,101,102,103,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,129,130,131,132,133,134,140],[94,107,122,140],[94,107,114,115,140],[94,105,107,115,116,140],[94,106,140],[94,99,102,107,140],[94,107,111,115,116,140],[94,111,140],[94,105,107,110,140,181],[94,99,104,107,114,140],[94,140,170],[94,102,107,128,140,186,188],[64,65,67,94,140],[70,94,140],[64,65,94,140],[72,94,140],[69,94,140],[64,65,66,67,68,69,70,71,72,73,94,140],[68,94,140],[73,94,140],[67,94,140],[71,94,140],[64,65,69,94,140]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3cbad9a1ba4453443026ed38e4b8be018abb26565fa7c944376463ad9df07c41","impliedFormat":1},{"version":"85a90729d5d83fe4be2b4a3b1d25a239665603354172ba4717c88866367e7c44","signature":"33ffd73f4495e6d2705b39a10eb7be361238e64caad3e0ebe43cc30854f18548"},{"version":"c4250891ecde68ef684481b6bd4a8e64520009fc3d2ec2ad49e401b8b21ee733","signature":"316a5bc6176165e9f9db049153b2dddc31f2e4837c3ae0b62dfde14406f05a1b"},{"version":"7a1cc685ac23ceb6dcf39bd38dbfbecacc08e6ba3ce9cdb265ae63eb0b082a8a","signature":"70c19c93ac51ac98fa816b704e97f14a6eb659e090304d6a26c70f1ea444c26a"},{"version":"eaebceeb9cabe018ac0fdc37091c3a2c35d587da6f566b99f40fc3e40888ec72","signature":"c3bd78401103b39bb9a5f5f5983ff385bdf5288015fb7dfbda873ca8a911683a"},{"version":"191d89d2eba6fb0550205ea54344ffdafd3d445e28e5b5483743f499720aff31","signature":"45819b5bdcae5dc83f7efbc61595106f5e967b58d95b9317c63583b4650baad2"},{"version":"df17454b347ff94563662b7026aee89aebb101f8578bab9575eb7622ad710bc8","signature":"2d8e47434b784c273810852b91f378ac9cd48ef07a7c1b8d3ee59646cc4f76b6"},{"version":"8fe07b7b26803b7e2960216bfed75b822b5060e2c61fbf4334bd089215265f35","signature":"c83cbbf5d475dd26d5a8dc6599eebeeeaee389daef31dbefcfcb6f4a7b8b89ee"},{"version":"05b79992998da3b59b8b2843033115c84d7a6b62494abcd8f26f63bbd77fb936","signature":"9fa222beab9486453873d6b6ec4cf4e4e976581141fd06e5b46c31c820c612fe"},{"version":"e7fbba116d93ab00ccbadfe34735d11790cf190226b20b6b1d0df3f4047c9c00","signature":"8c20575f6b592f1e488b9cd1571f8b585a8902f3937d66d20e4891f2dc2ab270"},{"version":"db9f124613de46402885f8b8ae87556d24f981e35a282ec73ccb93eee15f9cdf","signature":"13afa23ea864030ada962d28ca3c4d5cdc9f02b17293ddec6bc0e8e9c6875e2c"},{"version":"60b341a1440cf0842a6130e37be7f77c194cc6ed3db9dad4d573eb7e4d797e58","signature":"25b2beb6af5558f544877c745b36852a21ffead510d6818b1d80a6d3aaa889f8"},{"version":"6bf48f951a513018f35f976386d7299cb4b76cc072b7571870ee8ec5ec7988a9","signature":"5e84e468b1a04aa81efecf0bb13f97b0e5f36bdf58b74cb86b67efa84146ac45"},{"version":"12dd5eecc12f08b56e136507c86ab5acb248806489e04d03fbba0837dd8a267b","signature":"299a4bcf1a06f8a3525f69c323fe7376c6bc714606449c2c4a706774a51bbc2b"},{"version":"eee682fde585f5ee1454d09e2b7aade83040f3d9e96e3644bf2b4b7cdd47908d","signature":"db544a012c220f04e3ec6a8e417112f324daa932474d425d7a94d5b16bd21c12"},{"version":"765ff24e9a20561f94117b83e66daab019dd95ed233c7b8dcc191aa340ac9491","signature":"f71bd1f69548144f9315588c58c4e871d740be1b1b7a85d879c9a134d5685e31"},{"version":"86b943c166376bc313ae26ffe630599fdee0ee0415897da1739a1849519e4814","signature":"b479b1a8bce44a53ef42f039103ea2becfd2ce70a54b8fcfe7391fea83518765"},{"version":"cf103a0b67c98a8b14ebbd1c216ec6072316b2de72b114923e5a9cff4b07ea4d","signature":"990e6322df2d216a33f5bd45d5878c441d483f371965c13745b8d5e437ec891d"},{"version":"4aedf75108927b51649c4abf930f97aa3bc43bc32507ceb33f3c00a33356c22d","signature":"739951bd8add6ea931a3d83b7b8a9ff19fc5b124dd6f4d0d03ef0fc5ad7069dc"},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"641942a78f9063caa5d6b777c99304b7d1dc7328076038c6d94d8a0b81fc95c1","impliedFormat":1},{"version":"1123a83f35cf56c97de746f0a7250012153c61a167e4a61668bf50e558162d14","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e20d899c28ca26a2a7afc98beaa69e63ff7fba0a8bc47b4e3bf3ede5e09e424","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"085f552d005479e2e6a7311cdbbe5d8c55c497b4d19274285df161ee9684cd9c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"007faacc9268357caa21d24169f3f3f2497af3e9241308df2d89f6e6d9bb3f2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7c5e2ea4a9749097c347454805e933844ed207b6eefec6b7cfd418b5f5f7b28","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"e1028394c1cf96d5d057ecc647e31e457b919092f882ed0c7092152b077fed9d","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","impliedFormat":1},{"version":"4a20a0a39aca8738cc5088f9dea2969bf2af3ca1341c56071f513059b122d150","impliedFormat":1},{"version":"a33c98f95c099c2a9a383b156c8f2a16605843d29455a954c1431bcbbc1ce35a","impliedFormat":1},{"version":"effa1fd4980f6dff4e81ed67009b847d34449087504319f9a0dd081e8cf23a31","impliedFormat":1},{"version":"c2c9f431f788b434e6ae327844ef6712bb6a6a88ad08acf20bf6cfeb41d154ba","impliedFormat":1},{"version":"798367363a3274220cbed839b883fe2f52ba7197b25e8cb2ac59c1e1fd8af6b7","impliedFormat":1},{"version":"67f3d03f61a43f045851624e52ec438803ecf5d2247660f208bd9bcadb6ff298","impliedFormat":1},{"version":"8baa5d0febc68db886c40bf341e5c90dc215a90cd64552e47e8184be6b7e3358","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[64,81]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"outDir":"./types","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"target":9},"referencedMap":[[84,1],[82,2],[193,2],[196,3],[195,2],[87,4],[83,1],[85,5],[86,1],[88,2],[189,6],[190,2],[191,7],[192,8],[201,9],[202,2],[137,10],[138,10],[139,11],[94,12],[140,13],[141,14],[142,15],[89,2],[92,16],[90,2],[91,2],[143,17],[144,18],[145,19],[146,20],[147,21],[148,22],[149,22],[150,23],[151,24],[152,25],[153,26],[95,2],[93,2],[154,27],[155,28],[156,29],[188,30],[157,31],[158,32],[159,33],[160,34],[161,35],[162,36],[163,37],[164,38],[165,39],[166,40],[167,40],[168,41],[169,2],[170,42],[172,43],[171,44],[173,45],[174,46],[175,47],[176,48],[177,49],[178,50],[179,51],[180,52],[181,53],[182,54],[183,55],[184,56],[185,57],[96,2],[97,2],[98,2],[136,58],[186,59],[187,60],[209,61],[208,62],[210,2],[211,2],[212,2],[213,63],[194,2],[200,64],[198,65],[199,66],[207,67],[204,2],[206,68],[205,2],[203,2],[197,69],[61,2],[62,2],[12,2],[10,2],[11,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[63,2],[57,2],[58,2],[60,2],[59,2],[1,2],[14,2],[13,2],[114,70],[124,71],[113,70],[134,72],[105,73],[104,74],[133,75],[127,76],[132,77],[107,78],[121,79],[106,80],[130,81],[102,82],[101,75],[131,83],[103,84],[108,85],[109,2],[112,85],[99,2],[135,86],[125,87],[116,88],[117,89],[119,90],[115,91],[118,92],[128,75],[110,93],[111,94],[120,95],[100,96],[123,87],[122,85],[126,2],[129,97],[70,98],[75,99],[72,100],[76,101],[69,100],[77,102],[64,2],[74,103],[66,2],[78,104],[68,100],[79,105],[73,100],[80,106],[67,100],[81,107],[71,108],[65,2]],"latestChangedDtsFile":"./types/sync/index.d.ts","version":"5.9.3"}
package/package.json CHANGED
@@ -1,47 +1,47 @@
1
- {
2
- "name": "@manya-os/contracts",
3
- "version": "1.0.0",
4
- "description": "Universal contract and schema validation for the MANYA Intelligence OS — interface schemas, manifests, semver compatibility, API contracts, schema sync, boundary enforcement, and validation reports.",
5
- "main": "dist/cjs/index.js",
6
- "types": "dist/types/index.d.ts",
7
- "scripts": {
8
- "build": "node ../../scripts/build-package.js contracts",
9
- "test": "jest",
10
- "clean": "rm -rf dist build node_modules",
11
- "build:types": "node ../../scripts/build-types.js contracts",
12
- "build:bundle": "node ../../scripts/build-package.js contracts --no-types && node ../../scripts/build-types.js contracts"
13
- },
14
- "keywords": [
15
- "manya",
16
- "contracts",
17
- "schema",
18
- "validation",
19
- "manifest",
20
- "semver",
21
- "compatibility",
22
- "api",
23
- "boundaries",
24
- "interface"
25
- ],
26
- "author": "Uviwe Menyiwe (Azura Daemon) <foundation@manyahael.org>",
27
- "license": "Apache-2.0",
28
- "dependencies": {},
29
- "devDependencies": {},
30
- "module": "dist/esm/index.mjs",
31
- "exports": {
32
- ".": {
33
- "types": "./dist/types/index.d.ts",
34
- "require": "./dist/cjs/index.js",
35
- "import": "./dist/esm/index.mjs",
36
- "default": "./dist/cjs/index.js"
37
- },
38
- "./package.json": "./package.json"
39
- },
40
- "sideEffects": false,
41
- "files": [
42
- "dist",
43
- "README.md",
44
- "CHANGELOG.md",
45
- "LICENSE"
46
- ]
47
- }
1
+ {
2
+ "name": "@manya-os/contracts",
3
+ "version": "1.1.0",
4
+ "description": "Universal contract and schema validation for the MANYA Intelligence OS — interface schemas, manifests, semver compatibility, API contracts, schema sync, boundary enforcement, and validation reports.",
5
+ "main": "dist/cjs/index.js",
6
+ "types": "dist/types/index.d.ts",
7
+ "scripts": {
8
+ "build": "node ../../scripts/build-package.js contracts",
9
+ "test": "jest --config ../../jest.config.js",
10
+ "clean": "rm -rf dist build node_modules",
11
+ "build:types": "node ../../scripts/build-types.js contracts",
12
+ "build:bundle": "node ../../scripts/build-package.js contracts --no-types && node ../../scripts/build-types.js contracts"
13
+ },
14
+ "keywords": [
15
+ "manya",
16
+ "contracts",
17
+ "schema",
18
+ "validation",
19
+ "manifest",
20
+ "semver",
21
+ "compatibility",
22
+ "api",
23
+ "boundaries",
24
+ "interface"
25
+ ],
26
+ "author": "Uviwe Menyiwe (Azura Daemon) <foundation@manyahael.org>",
27
+ "license": "Apache-2.0",
28
+ "dependencies": {},
29
+ "devDependencies": {},
30
+ "module": "dist/esm/index.mjs",
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/types/index.d.ts",
34
+ "require": "./dist/cjs/index.js",
35
+ "import": "./dist/esm/index.mjs",
36
+ "default": "./dist/cjs/index.js"
37
+ },
38
+ "./package.json": "./package.json"
39
+ },
40
+ "sideEffects": false,
41
+ "files": [
42
+ "dist",
43
+ "README.md",
44
+ "CHANGELOG.md",
45
+ "LICENSE"
46
+ ]
47
+ }