@cratis/components.conformance 0.0.0 → 4.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/CONFORMANCE.md +64 -0
- package/LICENSE +21 -0
- package/README.md +119 -1
- package/dist/AdapterPackageMetadata.d.ts +28 -0
- package/dist/AdapterPackageMetadata.d.ts.map +1 -0
- package/dist/AdapterPackageMetadata.js +4 -0
- package/dist/AdapterPackageMetadata.js.map +1 -0
- package/dist/ConformanceCheck.d.ts +13 -0
- package/dist/ConformanceCheck.d.ts.map +1 -0
- package/dist/ConformanceCheck.js +4 -0
- package/dist/ConformanceCheck.js.map +1 -0
- package/dist/ConformanceFamily.d.ts +12 -0
- package/dist/ConformanceFamily.d.ts.map +1 -0
- package/dist/ConformanceFamily.js +15 -0
- package/dist/ConformanceFamily.js.map +1 -0
- package/dist/ConformanceLibrary.d.ts +19 -0
- package/dist/ConformanceLibrary.d.ts.map +1 -0
- package/dist/ConformanceLibrary.js +4 -0
- package/dist/ConformanceLibrary.js.map +1 -0
- package/dist/ConformanceLimitation.d.ts +6 -0
- package/dist/ConformanceLimitation.d.ts.map +1 -0
- package/dist/ConformanceLimitation.js +4 -0
- package/dist/ConformanceLimitation.js.map +1 -0
- package/dist/ConformanceOptions.d.ts +19 -0
- package/dist/ConformanceOptions.d.ts.map +1 -0
- package/dist/ConformanceOptions.js +4 -0
- package/dist/ConformanceOptions.js.map +1 -0
- package/dist/ConformanceReport.d.ts +13 -0
- package/dist/ConformanceReport.d.ts.map +1 -0
- package/dist/ConformanceReport.js +4 -0
- package/dist/ConformanceReport.js.map +1 -0
- package/dist/ConformanceSkipRequest.d.ts +7 -0
- package/dist/ConformanceSkipRequest.d.ts.map +1 -0
- package/dist/ConformanceSkipRequest.js +4 -0
- package/dist/ConformanceSkipRequest.js.map +1 -0
- package/dist/ConformanceStatus.d.ts +7 -0
- package/dist/ConformanceStatus.d.ts.map +1 -0
- package/dist/ConformanceStatus.js +10 -0
- package/dist/ConformanceStatus.js.map +1 -0
- package/dist/ConformanceSummary.d.ts +8 -0
- package/dist/ConformanceSummary.d.ts.map +1 -0
- package/dist/ConformanceSummary.js +4 -0
- package/dist/ConformanceSummary.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/SlotProfile.d.ts +20 -0
- package/dist/internal/SlotProfile.d.ts.map +1 -0
- package/dist/internal/SlotProfile.js +4 -0
- package/dist/internal/SlotProfile.js.map +1 -0
- package/dist/internal/metadata.d.ts +9 -0
- package/dist/internal/metadata.d.ts.map +1 -0
- package/dist/internal/metadata.js +196 -0
- package/dist/internal/metadata.js.map +1 -0
- package/dist/internal/reactNormalization.d.ts +12 -0
- package/dist/internal/reactNormalization.d.ts.map +1 -0
- package/dist/internal/reactNormalization.js +45 -0
- package/dist/internal/reactNormalization.js.map +1 -0
- package/dist/internal/slotProfiles.d.ts +4 -0
- package/dist/internal/slotProfiles.d.ts.map +1 -0
- package/dist/internal/slotProfiles.js +608 -0
- package/dist/internal/slotProfiles.js.map +1 -0
- package/dist/runConformance.d.ts +13 -0
- package/dist/runConformance.d.ts.map +1 -0
- package/dist/runConformance.js +504 -0
- package/dist/runConformance.js.map +1 -0
- package/package.json +55 -4
package/CONFORMANCE.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!-- Copyright (c) Cratis. All rights reserved. -->
|
|
2
|
+
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
|
|
3
|
+
|
|
4
|
+
# Conformance evidence boundary
|
|
5
|
+
|
|
6
|
+
`runConformance()` returns evidence for the exact library manifest, package metadata, DOM
|
|
7
|
+
implementation, dependency versions, and execution environment supplied to that call. A passing
|
|
8
|
+
report does **not** claim universal accessibility, browser, visual, assistive-technology, framework,
|
|
9
|
+
or production conformance.
|
|
10
|
+
|
|
11
|
+
The automated families are:
|
|
12
|
+
|
|
13
|
+
- package metadata schema constraints, runtime consistency, and capability over-declaration;
|
|
14
|
+
- all fourteen ABI v1 slot declarations, stable parts/states, pt markers, and exact native roots;
|
|
15
|
+
- bounded native form/callback behavior and one interactive semantic root per declared ownership selector;
|
|
16
|
+
- internal React-boundary normalization fixtures (props, styles, refs, events, cleanup, StrictMode);
|
|
17
|
+
- DOM-free deterministic server rendering, slot-local output distinction, hydration, and bounded overlay absence/presence;
|
|
18
|
+
- axe WCAG A/AA scans plus a real slot rendered inside bounded RTL, forced-color-adjust, and reduced-transition DOM hosts;
|
|
19
|
+
- a separate packed-package gate covering every emitted declaration, runtime entry loading, and strict Bundler/NodeNext consumer compilation.
|
|
20
|
+
|
|
21
|
+
A requested skip is accepted only when the relevant declaration is `unsupported`/`emulated`, or the
|
|
22
|
+
request names a capability the library does not claim. An unjustified skip is a failure. Adapters
|
|
23
|
+
whose upstream provider remains application-owned may supply an outer `wrapper` fixture; the runner
|
|
24
|
+
uses it for the exercised environment but never configures or transports credentials.
|
|
25
|
+
|
|
26
|
+
## Private plain-DOM falsification fixture
|
|
27
|
+
|
|
28
|
+
The repository includes a private, test-only plain-DOM renderer under
|
|
29
|
+
`for_plain_dom_renderer/`. It is not a workspace, package, published entry point, or source of
|
|
30
|
+
runtime code. It independently implements the nine stable presentation slots using public ABI and
|
|
31
|
+
component prop contracts only; it does not import the Components-owned Core implementations.
|
|
32
|
+
|
|
33
|
+
The declared `stable-presentation/v1` profile and its schema-valid static metadata point to the
|
|
34
|
+
actual private source fixture and exported manifest. The generated report must contain zero
|
|
35
|
+
failures and zero skips and remains the authoritative check inventory. The bounded run observes:
|
|
36
|
+
|
|
37
|
+
- exact semantic native elements and forwarded refs for every ref-capable slot;
|
|
38
|
+
- native submit, form-value, and reset behavior;
|
|
39
|
+
- one `ChangeHandler` callback carrying `source: 'user'` and the originating native `Event`;
|
|
40
|
+
- every documented stable part and canonical state, plus every declared `pt` route; and
|
|
41
|
+
- deterministic SSR/hydration, axe WCAG A/AA, and the runner's bounded environmental hosts.
|
|
42
|
+
|
|
43
|
+
Within this nine-slot profile, no renderer ABI widening or Core change was required. This finding is
|
|
44
|
+
limited to the public contracts and automated environment exercised here; it does not upgrade the
|
|
45
|
+
general evidence boundary or the limitations below.
|
|
46
|
+
|
|
47
|
+
## Explicit limitations
|
|
48
|
+
|
|
49
|
+
- axe is automated DOM analysis and cannot replace manual keyboard, screen-reader, magnification,
|
|
50
|
+
voice-control, or other assistive-technology review.
|
|
51
|
+
- jsdom does not establish behavior across browser engines, devices, touch/pointer combinations, or
|
|
52
|
+
operating-system accessibility modes.
|
|
53
|
+
- forced-color-adjust and reduced-transition host fixtures prove that a real slot renders under
|
|
54
|
+
those bounded DOM inputs, not that a browser activated forced-colors/reduced-motion media modes,
|
|
55
|
+
visual contrast, or the absence of all motion. Repository Storybook light/dark axe runs remain a
|
|
56
|
+
separate gate.
|
|
57
|
+
- ownership checks count declared interactive semantic roots. They do not instrument a vendor's
|
|
58
|
+
internal focus trap, dismissal listener, or scroll lock.
|
|
59
|
+
- slot-local SSR output checks do not establish concurrent-request isolation across processes or
|
|
60
|
+
application server runtimes.
|
|
61
|
+
- renderer-vendor focus, collection, and overlay behavior outside the fourteen public slots is not
|
|
62
|
+
exercised.
|
|
63
|
+
- adapter package licensing, security, performance, and upstream support policy remain the adapter
|
|
64
|
+
author's responsibility.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Cratis
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,121 @@
|
|
|
1
|
+
<!-- Copyright (c) Cratis. All rights reserved. -->
|
|
2
|
+
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
|
|
3
|
+
|
|
1
4
|
# @cratis/components.conformance
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
Development-only verification for authors of `@cratis/components` renderer adapters. Ordinary
|
|
7
|
+
applications do not install this package. Adapter authors use it to prove a renderer manifest
|
|
8
|
+
against the Components behavior, parts, state, SSR, and accessibility contract.
|
|
9
|
+
|
|
10
|
+
The package shares the Components repository release version while renderer ABI major `1` remains a
|
|
11
|
+
separate protocol version. It is neither an application runtime dependency nor an adapter discovery
|
|
12
|
+
mechanism.
|
|
13
|
+
|
|
14
|
+
> **Publication status:** The install example targets the owner-authorized 4.0.0 npm release. When
|
|
15
|
+
> reading this README from repository source before that release, verify availability with
|
|
16
|
+
> `npm view @cratis/components.conformance@4.0.0 version`; source contributors use the workspace
|
|
17
|
+
> commands below.
|
|
18
|
+
|
|
19
|
+
## Requirements
|
|
20
|
+
|
|
21
|
+
- Node.js 23 or newer.
|
|
22
|
+
- `@cratis/components >=4 <5`.
|
|
23
|
+
- React and ReactDOM 19.
|
|
24
|
+
- A DOM test environment. The runner defaults to `globalThis.document`; plain Node without a
|
|
25
|
+
supplied `Document` deliberately fails the `runtime.domAvailable` check.
|
|
26
|
+
|
|
27
|
+
Install it only in an adapter project:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
npm install --save-dev \
|
|
31
|
+
@cratis/components.conformance@^4 \
|
|
32
|
+
@cratis/components@^4 \
|
|
33
|
+
react@^19 react-dom@^19
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Run it in a DOM test
|
|
37
|
+
|
|
38
|
+
This Vitest example uses jsdom explicitly and passes its `document` to make the environment
|
|
39
|
+
requirement visible:
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
// @vitest-environment jsdom
|
|
43
|
+
|
|
44
|
+
import { expect, it } from 'vitest';
|
|
45
|
+
import {
|
|
46
|
+
ConformanceStatus,
|
|
47
|
+
runConformance,
|
|
48
|
+
type ConformanceReport,
|
|
49
|
+
} from '@cratis/components.conformance';
|
|
50
|
+
import { myLibrary } from '@example/components-adapter';
|
|
51
|
+
import packageJson from '@example/components-adapter/package.json' with { type: 'json' };
|
|
52
|
+
|
|
53
|
+
it('conforms to its declared renderer profile', async () => {
|
|
54
|
+
const report: ConformanceReport = await runConformance(myLibrary, {
|
|
55
|
+
metadata: packageJson.cratis,
|
|
56
|
+
document,
|
|
57
|
+
axe: true,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
const failures = report.checks.filter(
|
|
61
|
+
(check) => check.status === ConformanceStatus.Failed,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
expect(
|
|
65
|
+
failures,
|
|
66
|
+
failures.map((check) => `${check.id}: ${check.message}`).join('\n'),
|
|
67
|
+
).toEqual([]);
|
|
68
|
+
expect(report.passed).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
An adapter that requires an application-owned outer provider passes it through `wrapper`. The
|
|
73
|
+
wrapper receives `children`; it is the correct place for a vendor theme, cache, or licensed provider.
|
|
74
|
+
Credentials and license keys must remain application-owned and must not enter adapter metadata.
|
|
75
|
+
|
|
76
|
+
## Options
|
|
77
|
+
|
|
78
|
+
| Option | Purpose |
|
|
79
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| `metadata` | The adapter package's static `package.json#cratis` metadata. Runtime and static declarations must agree. |
|
|
81
|
+
| `document` | DOM document for runtime checks. Defaults to `globalThis.document`. |
|
|
82
|
+
| `axe` | Enables axe-core evidence. Defaults to `true`. |
|
|
83
|
+
| `wrapper` | Optional application-owned provider mounted around runtime fixtures. |
|
|
84
|
+
| `skips` | Explicit `ConformanceSkipRequest[]`. A skip is accepted only when declared fidelity or a missing capability justifies it. |
|
|
85
|
+
|
|
86
|
+
Do not use skips to make a failing implementation green. Every skip names a check and, when
|
|
87
|
+
applicable, a slot or missing capability. The returned report records accepted omissions as
|
|
88
|
+
limitations.
|
|
89
|
+
|
|
90
|
+
## Report and public types
|
|
91
|
+
|
|
92
|
+
`runConformance()` returns a `ConformanceReport` containing:
|
|
93
|
+
|
|
94
|
+
- `passed` plus a `ConformanceSummary` of passed, failed, and skipped checks;
|
|
95
|
+
- individual `ConformanceCheck` records with family, status, slot, message, evidence, and skip basis;
|
|
96
|
+
- explicit `ConformanceLimitation` records describing what the report does not establish.
|
|
97
|
+
|
|
98
|
+
The package also exports:
|
|
99
|
+
|
|
100
|
+
- `AdapterPackageMetadata` for the public adapter schema shape;
|
|
101
|
+
- `ConformanceLibrary`, the renderer-library structure accepted by the runner;
|
|
102
|
+
- `ConformanceFamily` and `ConformanceStatus` enums;
|
|
103
|
+
- `ConformanceOptions`, `ConformanceSkipRequest`, `ConformanceCheck`, `ConformanceSummary`,
|
|
104
|
+
`ConformanceLimitation`, and `ConformanceReport` types.
|
|
105
|
+
|
|
106
|
+
The stable `stable-presentation/v1` profile covers exactly nine primitive slots. The broader
|
|
107
|
+
fourteen-slot inventory remains experimental. Checks cover static/runtime metadata consistency,
|
|
108
|
+
stable parts and canonical states, pass-through routing, native elements and refs, bounded form and
|
|
109
|
+
callback behavior, behavior ownership, SSR/hydration, axe, RTL/forced-color/reduced-motion inputs,
|
|
110
|
+
and skip discipline. See [CONFORMANCE.md](./CONFORMANCE.md) for the precise evidence boundary.
|
|
111
|
+
|
|
112
|
+
## Repository commands
|
|
113
|
+
|
|
114
|
+
```sh
|
|
115
|
+
yarn workspace @cratis/components.conformance build
|
|
116
|
+
yarn workspace @cratis/components.conformance test
|
|
117
|
+
yarn workspace @cratis/components.conformance verify-package
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
`verify-package` packs the real archive, rejects tests/cache files and forbidden declaration types,
|
|
121
|
+
and compiles an external consumer under both Bundler and NodeNext with `skipLibCheck: false`.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Static `package.json#cratis` metadata validated against the public adapter schema. */
|
|
2
|
+
export interface AdapterPackageMetadata {
|
|
3
|
+
readonly kind: 'ui-adapter';
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly displayName: string;
|
|
6
|
+
readonly abi: string;
|
|
7
|
+
readonly level: 'full' | 'primitive' | 'behavior' | 'portal' | 'theme';
|
|
8
|
+
readonly profile: string;
|
|
9
|
+
readonly category: string;
|
|
10
|
+
readonly entry: string;
|
|
11
|
+
readonly export: string;
|
|
12
|
+
readonly slots: readonly string[];
|
|
13
|
+
readonly modes: Readonly<Record<string, 'presentation' | 'atomic'>>;
|
|
14
|
+
readonly capabilities: readonly string[];
|
|
15
|
+
readonly ssr: 'safe' | 'client-only' | 'hydration-risk';
|
|
16
|
+
readonly a11y: {
|
|
17
|
+
readonly axeProfile: 'wcag21a' | 'wcag21aa' | 'wcag22a' | 'wcag22aa';
|
|
18
|
+
readonly evidence: string;
|
|
19
|
+
};
|
|
20
|
+
readonly license: {
|
|
21
|
+
readonly spdx: string;
|
|
22
|
+
readonly requiresKey: boolean;
|
|
23
|
+
readonly keyEnv?: string;
|
|
24
|
+
readonly url?: string;
|
|
25
|
+
};
|
|
26
|
+
readonly upstream: Readonly<Record<string, string>>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=AdapterPackageMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdapterPackageMetadata.d.ts","sourceRoot":"","sources":["../src/AdapterPackageMetadata.ts"],"names":[],"mappings":"AAGA,yFAAyF;AACzF,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,gBAAgB,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE;QACX,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;QACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdapterPackageMetadata.js","sourceRoot":"","sources":["../src/AdapterPackageMetadata.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ConformanceFamily } from './ConformanceFamily.js';
|
|
2
|
+
import type { ConformanceStatus } from './ConformanceStatus.js';
|
|
3
|
+
/** Result of one bounded, reproducible conformance assertion. */
|
|
4
|
+
export interface ConformanceCheck {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly family: ConformanceFamily;
|
|
7
|
+
readonly status: ConformanceStatus;
|
|
8
|
+
readonly slotId?: string;
|
|
9
|
+
readonly message: string;
|
|
10
|
+
readonly evidence?: Readonly<Record<string, unknown>>;
|
|
11
|
+
readonly skipBasis?: 'unsupported-fidelity' | 'emulated-fidelity' | 'missing-capability';
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ConformanceCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceCheck.d.ts","sourceRoot":"","sources":["../src/ConformanceCheck.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;CAC5F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceCheck.js","sourceRoot":"","sources":["../src/ConformanceCheck.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Evidence families emitted by the renderer conformance runner. */
|
|
2
|
+
export declare enum ConformanceFamily {
|
|
3
|
+
Manifest = "manifest",
|
|
4
|
+
Contract = "contract",
|
|
5
|
+
Behavior = "behavior",
|
|
6
|
+
BehaviorOwnership = "behaviorOwnership",
|
|
7
|
+
ReactNormalization = "reactNormalization",
|
|
8
|
+
ServerRendering = "ssr",
|
|
9
|
+
Accessibility = "a11y",
|
|
10
|
+
TypePurity = "typePurity"
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ConformanceFamily.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceFamily.d.ts","sourceRoot":"","sources":["../src/ConformanceFamily.ts"],"names":[],"mappings":"AAGA,oEAAoE;AACpE,oBAAY,iBAAiB;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,eAAe,QAAQ;IACvB,aAAa,SAAS;IACtB,UAAU,eAAe;CAC5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
/** Evidence families emitted by the renderer conformance runner. */
|
|
4
|
+
export var ConformanceFamily;
|
|
5
|
+
(function (ConformanceFamily) {
|
|
6
|
+
ConformanceFamily["Manifest"] = "manifest";
|
|
7
|
+
ConformanceFamily["Contract"] = "contract";
|
|
8
|
+
ConformanceFamily["Behavior"] = "behavior";
|
|
9
|
+
ConformanceFamily["BehaviorOwnership"] = "behaviorOwnership";
|
|
10
|
+
ConformanceFamily["ReactNormalization"] = "reactNormalization";
|
|
11
|
+
ConformanceFamily["ServerRendering"] = "ssr";
|
|
12
|
+
ConformanceFamily["Accessibility"] = "a11y";
|
|
13
|
+
ConformanceFamily["TypePurity"] = "typePurity";
|
|
14
|
+
})(ConformanceFamily || (ConformanceFamily = {}));
|
|
15
|
+
//# sourceMappingURL=ConformanceFamily.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceFamily.js","sourceRoot":"","sources":["../src/ConformanceFamily.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,oEAAoE;AACpE,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IACzB,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,4DAAuC,CAAA;IACvC,8DAAyC,CAAA;IACzC,4CAAuB,CAAA;IACvB,2CAAsB,CAAA;IACtB,8CAAyB,CAAA;AAC7B,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public structural view accepted by the conformance runner.
|
|
3
|
+
*
|
|
4
|
+
* `unstable_UiLibrary` satisfies this shape without leaking Components component or renderer-vendor
|
|
5
|
+
* declarations through the conformance package's separately packaged public types.
|
|
6
|
+
*/
|
|
7
|
+
export interface ConformanceLibrary {
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly displayName: string;
|
|
10
|
+
readonly abi: number;
|
|
11
|
+
readonly level: 'full' | 'primitive' | 'behavior' | 'portal' | 'theme';
|
|
12
|
+
readonly profile: string;
|
|
13
|
+
readonly profileSlots?: readonly string[];
|
|
14
|
+
readonly capabilities: readonly string[];
|
|
15
|
+
readonly slots: object;
|
|
16
|
+
readonly Provider?: unknown;
|
|
17
|
+
readonly preflight?: unknown;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ConformanceLibrary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceLibrary.d.ts","sourceRoot":"","sources":["../src/ConformanceLibrary.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceLibrary.js","sourceRoot":"","sources":["../src/ConformanceLibrary.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceLimitation.d.ts","sourceRoot":"","sources":["../src/ConformanceLimitation.ts"],"names":[],"mappings":"AAGA,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceLimitation.js","sourceRoot":"","sources":["../src/ConformanceLimitation.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ComponentType, ReactNode } from 'react';
|
|
2
|
+
import type { AdapterPackageMetadata } from './AdapterPackageMetadata.js';
|
|
3
|
+
import type { ConformanceSkipRequest } from './ConformanceSkipRequest.js';
|
|
4
|
+
/** Options for a bounded conformance run. */
|
|
5
|
+
export interface ConformanceOptions {
|
|
6
|
+
/** Static `package.json#cratis` metadata for runtime/static consistency checks. */
|
|
7
|
+
readonly metadata?: AdapterPackageMetadata | Readonly<Record<string, unknown>>;
|
|
8
|
+
/** DOM document used for runtime checks. Defaults to `globalThis.document`. */
|
|
9
|
+
readonly document?: Document;
|
|
10
|
+
/** Enables axe-core evidence. Defaults to `true`. */
|
|
11
|
+
readonly axe?: boolean;
|
|
12
|
+
/** Optional application-owned outer provider required by a vendor renderer. */
|
|
13
|
+
readonly wrapper?: ComponentType<{
|
|
14
|
+
readonly children: ReactNode;
|
|
15
|
+
}>;
|
|
16
|
+
/** Explicit omissions, accepted only when fidelity/capability declarations justify them. */
|
|
17
|
+
readonly skips?: readonly ConformanceSkipRequest[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ConformanceOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceOptions.d.ts","sourceRoot":"","sources":["../src/ConformanceOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IACnE,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceOptions.js","sourceRoot":"","sources":["../src/ConformanceOptions.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ConformanceCheck } from './ConformanceCheck.js';
|
|
2
|
+
import type { ConformanceLimitation } from './ConformanceLimitation.js';
|
|
3
|
+
import type { ConformanceSummary } from './ConformanceSummary.js';
|
|
4
|
+
/** Bounded evidence returned for one renderer library. */
|
|
5
|
+
export interface ConformanceReport {
|
|
6
|
+
readonly adapterId: string;
|
|
7
|
+
readonly abi: number;
|
|
8
|
+
readonly passed: boolean;
|
|
9
|
+
readonly summary: ConformanceSummary;
|
|
10
|
+
readonly checks: readonly ConformanceCheck[];
|
|
11
|
+
readonly limitations: readonly ConformanceLimitation[];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ConformanceReport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceReport.d.ts","sourceRoot":"","sources":["../src/ConformanceReport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceReport.js","sourceRoot":"","sources":["../src/ConformanceReport.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Explicit request to omit one check when the manifest truthfully declares the reason. */
|
|
2
|
+
export interface ConformanceSkipRequest {
|
|
3
|
+
readonly checkId: string;
|
|
4
|
+
readonly slotId?: string;
|
|
5
|
+
readonly missingCapability?: string;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=ConformanceSkipRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceSkipRequest.d.ts","sourceRoot":"","sources":["../src/ConformanceSkipRequest.ts"],"names":[],"mappings":"AAGA,2FAA2F;AAC3F,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceSkipRequest.js","sourceRoot":"","sources":["../src/ConformanceSkipRequest.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceStatus.d.ts","sourceRoot":"","sources":["../src/ConformanceStatus.ts"],"names":[],"mappings":"AAGA,uDAAuD;AACvD,oBAAY,iBAAiB;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;CACtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
/** Result status for one bounded conformance check. */
|
|
4
|
+
export var ConformanceStatus;
|
|
5
|
+
(function (ConformanceStatus) {
|
|
6
|
+
ConformanceStatus["Passed"] = "passed";
|
|
7
|
+
ConformanceStatus["Failed"] = "failed";
|
|
8
|
+
ConformanceStatus["Skipped"] = "skipped";
|
|
9
|
+
})(ConformanceStatus || (ConformanceStatus = {}));
|
|
10
|
+
//# sourceMappingURL=ConformanceStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceStatus.js","sourceRoot":"","sources":["../src/ConformanceStatus.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,uDAAuD;AACvD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;AACvB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceSummary.d.ts","sourceRoot":"","sources":["../src/ConformanceSummary.ts"],"names":[],"mappings":"AAGA,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConformanceSummary.js","sourceRoot":"","sources":["../src/ConformanceSummary.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type { AdapterPackageMetadata } from './AdapterPackageMetadata.js';
|
|
2
|
+
export type { ConformanceCheck } from './ConformanceCheck.js';
|
|
3
|
+
export { ConformanceFamily } from './ConformanceFamily.js';
|
|
4
|
+
export type { ConformanceLibrary } from './ConformanceLibrary.js';
|
|
5
|
+
export type { ConformanceLimitation } from './ConformanceLimitation.js';
|
|
6
|
+
export type { ConformanceOptions } from './ConformanceOptions.js';
|
|
7
|
+
export type { ConformanceReport } from './ConformanceReport.js';
|
|
8
|
+
export type { ConformanceSkipRequest } from './ConformanceSkipRequest.js';
|
|
9
|
+
export { ConformanceStatus } from './ConformanceStatus.js';
|
|
10
|
+
export type { ConformanceSummary } from './ConformanceSummary.js';
|
|
11
|
+
export { runConformance } from './runConformance.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
export { ConformanceFamily } from './ConformanceFamily.js';
|
|
4
|
+
export { ConformanceStatus } from './ConformanceStatus.js';
|
|
5
|
+
export { runConformance } from './runConformance.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
import type { unstable_SlotId } from '@cratis/components/renderer';
|
|
3
|
+
import type { CratisPartsManifest } from '@cratis/components/types';
|
|
4
|
+
/** Internal fixture for one public renderer slot. */
|
|
5
|
+
export interface SlotProfile {
|
|
6
|
+
readonly slotId: unstable_SlotId;
|
|
7
|
+
readonly partsKey: keyof CratisPartsManifest;
|
|
8
|
+
readonly createProps: () => Readonly<Record<string, unknown>>;
|
|
9
|
+
readonly createStateProps?: () => Readonly<Record<string, unknown>>;
|
|
10
|
+
readonly createPartVariants?: () => readonly Readonly<Record<string, unknown>>[];
|
|
11
|
+
readonly conditionallyAbsentParts?: readonly string[];
|
|
12
|
+
readonly ptKeys: readonly string[];
|
|
13
|
+
readonly nativeSelector: string;
|
|
14
|
+
readonly nativeTag: string;
|
|
15
|
+
readonly refCapable: boolean;
|
|
16
|
+
readonly ownershipSelectors: readonly string[];
|
|
17
|
+
readonly activate?: (document: Document, container: HTMLElement) => Promise<void>;
|
|
18
|
+
readonly exercise?: (document: Document, container: HTMLElement, ref: RefObject<Element | null>) => Promise<Readonly<Record<string, unknown>>>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SlotProfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlotProfile.d.ts","sourceRoot":"","sources":["../../src/internal/SlotProfile.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,qDAAqD;AACrD,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,mBAAmB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACjF,QAAQ,CAAC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,WAAW,EACtB,GAAG,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlotProfile.js","sourceRoot":"","sources":["../../src/internal/SlotProfile.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { unstable_UiLibrary } from '@cratis/components/renderer';
|
|
2
|
+
import type { AdapterPackageMetadata } from '../AdapterPackageMetadata.js';
|
|
3
|
+
/** Validates package metadata against the actual published adapter schema. */
|
|
4
|
+
export declare const validateMetadata: (value: unknown) => readonly string[];
|
|
5
|
+
/** Compares static package metadata to the immutable runtime manifest. */
|
|
6
|
+
export declare const compareMetadata: (metadata: AdapterPackageMetadata | Readonly<Record<string, unknown>>, library: unstable_UiLibrary) => readonly string[];
|
|
7
|
+
/** Rejects capability claims that this bounded harness cannot support with the declared slots. */
|
|
8
|
+
export declare const overDeclaredCapabilities: (library: unstable_UiLibrary) => readonly string[];
|
|
9
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/internal/metadata.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAoL3E,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,SAAS,MAAM,EACzB,CAAC;AAEzC,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GACxB,UAAU,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpE,SAAS,kBAAkB,KAC5B,SAAS,MAAM,EAoCjB,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,wBAAwB,GACjC,SAAS,kBAAkB,KAC5B,SAAS,MAAM,EAmCjB,CAAC"}
|