@yanib/reverb-adapter-sdk 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/admission-v2.d.ts +16 -0
- package/dist/admission-v2.d.ts.map +1 -0
- package/dist/admission-v2.js +28 -0
- package/dist/admission-v2.js.map +1 -0
- package/dist/harness-v2.d.ts +8 -0
- package/dist/harness-v2.d.ts.map +1 -0
- package/dist/harness-v2.js +23 -0
- package/dist/harness-v2.js.map +1 -0
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +10 -2
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/materialize-v2.d.ts +20 -0
- package/dist/materialize-v2.d.ts.map +1 -0
- package/dist/materialize-v2.js +103 -0
- package/dist/materialize-v2.js.map +1 -0
- package/dist/types-v2.d.ts +185 -0
- package/dist/types-v2.d.ts.map +1 -0
- package/dist/types-v2.js +2 -0
- package/dist/types-v2.js.map +1 -0
- package/dist/validation-v2.d.ts +6 -0
- package/dist/validation-v2.d.ts.map +1 -0
- package/dist/validation-v2.js +225 -0
- package/dist/validation-v2.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Contract-adapter interfaces, validation, and admission helpers for Reverb.
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
pnpm add --save-exact @yanib/reverb-adapter-sdk@0.
|
|
8
|
+
pnpm add --save-exact @yanib/reverb-adapter-sdk@0.5.0
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Import only the documented package root. See the
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AdapterAdmissionReport, AdmissionCheck } from './types.js';
|
|
2
|
+
import type { AdapterManifestV2 } from './types-v2.js';
|
|
3
|
+
export interface CreateAdmissionReportV2Input {
|
|
4
|
+
readonly manifest: AdapterManifestV2;
|
|
5
|
+
readonly demand: string;
|
|
6
|
+
readonly designPartner?: string;
|
|
7
|
+
readonly identitySummary: string;
|
|
8
|
+
readonly compatibilitySummary: string;
|
|
9
|
+
readonly evidenceRendering: string;
|
|
10
|
+
readonly latencyResourceSummary?: string;
|
|
11
|
+
readonly dependenciesAndLicenses?: readonly string[];
|
|
12
|
+
readonly checks: readonly AdmissionCheck[];
|
|
13
|
+
readonly realLabelledCorpusState?: 'absent' | 'available';
|
|
14
|
+
}
|
|
15
|
+
export declare function createAdmissionReportV2(input: CreateAdmissionReportV2Input): AdapterAdmissionReport;
|
|
16
|
+
//# sourceMappingURL=admission-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission-v2.d.ts","sourceRoot":"","sources":["../src/admission-v2.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;CAC3D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,sBAAsB,CAyBxB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { contentHash, hashCanonical } from '@yanib/reverb-domain';
|
|
2
|
+
import { validateAdapterManifestV2 } from './validation-v2.js';
|
|
3
|
+
export function createAdmissionReportV2(input) {
|
|
4
|
+
const manifest = validateAdapterManifestV2(input.manifest);
|
|
5
|
+
const withoutHash = {
|
|
6
|
+
schema: 'reverb.adapter-admission',
|
|
7
|
+
schemaVersion: '1.0',
|
|
8
|
+
adapterId: manifest.id,
|
|
9
|
+
adapterVersion: manifest.version,
|
|
10
|
+
identityVersion: manifest.identityVersion,
|
|
11
|
+
demand: input.demand,
|
|
12
|
+
designPartner: input.designPartner ?? 'none',
|
|
13
|
+
identitySummary: input.identitySummary,
|
|
14
|
+
compatibilitySummary: input.compatibilitySummary,
|
|
15
|
+
evidenceRendering: input.evidenceRendering,
|
|
16
|
+
latencyResourceSummary: input.latencyResourceSummary ??
|
|
17
|
+
`timeout=${manifest.resourceBudget.timeoutMs}ms memory=${manifest.resourceBudget.memoryMiB}MiB output=${manifest.resourceBudget.maximumOutputBytes}B`,
|
|
18
|
+
dependenciesAndLicenses: input.dependenciesAndLicenses ?? [],
|
|
19
|
+
limitations: manifest.limitations,
|
|
20
|
+
maintainer: manifest.maintainer,
|
|
21
|
+
checks: [...input.checks].sort((left, right) => left.id.localeCompare(right.id)),
|
|
22
|
+
realLabelledCorpusState: input.realLabelledCorpusState ?? 'absent',
|
|
23
|
+
promotionState: 'UNMEASURED',
|
|
24
|
+
deliveryReady: false,
|
|
25
|
+
};
|
|
26
|
+
return { ...withoutHash, outputHash: contentHash(hashCanonical(withoutHash)) };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=admission-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission-v2.js","sourceRoot":"","sources":["../src/admission-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAe/D,MAAM,UAAU,uBAAuB,CACrC,KAAmC;IAEnC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG;QAClB,MAAM,EAAE,0BAAmC;QAC3C,aAAa,EAAE,KAAc;QAC7B,SAAS,EAAE,QAAQ,CAAC,EAAE;QACtB,cAAc,EAAE,QAAQ,CAAC,OAAO;QAChC,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,MAAM;QAC5C,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,sBAAsB,EACpB,KAAK,CAAC,sBAAsB;YAC5B,WAAW,QAAQ,CAAC,cAAc,CAAC,SAAS,aAAa,QAAQ,CAAC,cAAc,CAAC,SAAS,cAAc,QAAQ,CAAC,cAAc,CAAC,kBAAkB,GAAG;QACvJ,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,IAAI,EAAE;QAC5D,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChF,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,IAAK,QAAkB;QAC7E,cAAc,EAAE,YAAqB;QACrC,aAAa,EAAE,KAAc;KAC9B,CAAC;IACF,OAAO,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AdapterExtractionResultV2, ContractAdapterV2, ExtractRequestV2 } from './types-v2.js';
|
|
2
|
+
export interface DeterminismReportV2 {
|
|
3
|
+
readonly stable: boolean;
|
|
4
|
+
readonly outputHash: AdapterExtractionResultV2['outputHash'];
|
|
5
|
+
readonly byteLength: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function verifyExtractionDeterminismV2(adapter: ContractAdapterV2, request: ExtractRequestV2): Promise<DeterminismReportV2>;
|
|
8
|
+
//# sourceMappingURL=harness-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-v2.d.ts","sourceRoot":"","sources":["../src/harness-v2.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIpG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAuB9B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { canonicalJson } from '@yanib/reverb-domain';
|
|
2
|
+
import { AdapterValidationError } from './validation.js';
|
|
3
|
+
import { validateAdapterManifestV2 } from './validation-v2.js';
|
|
4
|
+
export async function verifyExtractionDeterminismV2(adapter, request) {
|
|
5
|
+
validateAdapterManifestV2(adapter.manifest);
|
|
6
|
+
const first = await adapter.extract(request);
|
|
7
|
+
const second = await adapter.extract(request);
|
|
8
|
+
const firstJson = canonicalJson(first);
|
|
9
|
+
const secondJson = canonicalJson(second);
|
|
10
|
+
if (firstJson !== secondJson || first.outputHash !== second.outputHash) {
|
|
11
|
+
throw new AdapterValidationError('nondeterministic_output', 'Repeated v2 extraction produced different canonical output.');
|
|
12
|
+
}
|
|
13
|
+
const byteLength = Buffer.byteLength(firstJson);
|
|
14
|
+
if (byteLength > adapter.manifest.resourceBudget.maximumOutputBytes) {
|
|
15
|
+
throw new AdapterValidationError('output_limit', 'Adapter output exceeds its declared limit.');
|
|
16
|
+
}
|
|
17
|
+
if (first.definitions.length + first.references.length >
|
|
18
|
+
adapter.manifest.resourceBudget.maximumItems) {
|
|
19
|
+
throw new AdapterValidationError('item_limit', 'Adapter output exceeds its item limit.');
|
|
20
|
+
}
|
|
21
|
+
return { stable: true, outputHash: first.outputHash, byteLength };
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=harness-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-v2.js","sourceRoot":"","sources":["../src/harness-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAQ/D,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAA0B,EAC1B,OAAyB;IAEzB,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;QACvE,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;QACpE,MAAM,IAAI,sBAAsB,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAC;IACjG,CAAC;IACD,IACE,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM;QAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAC5C,CAAC;QACD,MAAM,IAAI,sBAAsB,CAAC,YAAY,EAAE,wCAAwC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;AACpE,CAAC"}
|
package/dist/harness.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG3F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG3F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAiC5B;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,EAC/D,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACzC,MAAM,CAUR"}
|
package/dist/harness.js
CHANGED
|
@@ -4,10 +4,18 @@ export async function verifyExtractionDeterminism(adapter, request) {
|
|
|
4
4
|
validateAdapterManifest(adapter.manifest);
|
|
5
5
|
const first = await adapter.extract(request);
|
|
6
6
|
const second = await adapter.extract(request);
|
|
7
|
+
const reordered = await adapter.extract({
|
|
8
|
+
...request,
|
|
9
|
+
artifacts: [...request.artifacts].reverse(),
|
|
10
|
+
});
|
|
7
11
|
const firstJson = canonicalJson(first);
|
|
8
12
|
const secondJson = canonicalJson(second);
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
const reorderedJson = canonicalJson(reordered);
|
|
14
|
+
if (firstJson !== secondJson ||
|
|
15
|
+
firstJson !== reorderedJson ||
|
|
16
|
+
first.outputHash !== second.outputHash ||
|
|
17
|
+
first.outputHash !== reordered.outputHash) {
|
|
18
|
+
throw new AdapterValidationError('nondeterministic_output', 'Repeated or reordered extraction produced different canonical output.');
|
|
11
19
|
}
|
|
12
20
|
const byteLength = Buffer.byteLength(firstJson);
|
|
13
21
|
if (byteLength > adapter.manifest.resourceBudget.maximumOutputBytes) {
|
package/dist/harness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAQlF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAwB,EACxB,OAAuB;IAEvB,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAQlF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAwB,EACxB,OAAuB;IAEvB,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;QACtC,GAAG,OAAO;QACV,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;KAC5C,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/C,IACE,SAAS,KAAK,UAAU;QACxB,SAAS,KAAK,aAAa;QAC3B,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;QACtC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EACzC,CAAC;QACD,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;QACpE,MAAM,IAAI,sBAAsB,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAC;IACjG,CAAC;IACD,IACE,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM;QAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAC5C,CAAC;QACD,MAAM,IAAI,sBAAsB,CAAC,YAAY,EAAE,wCAAwC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,YAA+D,EAC/D,QAA0C,EAC1C,QAA0C;IAE1C,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,sBAAsB,CAC9B,4BAA4B,EAC5B,sEAAsE,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
export * from './admission.js';
|
|
2
|
+
export * from './admission-v2.js';
|
|
2
3
|
export * from './harness.js';
|
|
4
|
+
export * from './harness-v2.js';
|
|
3
5
|
export * from './incremental.js';
|
|
4
6
|
export * from './identity.js';
|
|
5
7
|
export * from './materialize.js';
|
|
8
|
+
export * from './materialize-v2.js';
|
|
6
9
|
export * from './sandbox.js';
|
|
7
10
|
export * from './types.js';
|
|
11
|
+
export * from './types-v2.js';
|
|
8
12
|
export * from './validation.js';
|
|
13
|
+
export * from './validation-v2.js';
|
|
9
14
|
export declare const ADAPTER_SDK_PACKAGE_ID = "@yanib/reverb-adapter-sdk";
|
|
10
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,eAAO,MAAM,sBAAsB,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
export * from './admission.js';
|
|
2
|
+
export * from './admission-v2.js';
|
|
2
3
|
export * from './harness.js';
|
|
4
|
+
export * from './harness-v2.js';
|
|
3
5
|
export * from './incremental.js';
|
|
4
6
|
export * from './identity.js';
|
|
5
7
|
export * from './materialize.js';
|
|
8
|
+
export * from './materialize-v2.js';
|
|
6
9
|
export * from './sandbox.js';
|
|
7
10
|
export * from './types.js';
|
|
11
|
+
export * from './types-v2.js';
|
|
8
12
|
export * from './validation.js';
|
|
13
|
+
export * from './validation-v2.js';
|
|
9
14
|
export const ADAPTER_SDK_PACKAGE_ID = '@yanib/reverb-adapter-sdk';
|
|
10
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type CommitSha, type ContractGenerationObservationV2, type GenerationId, type IndexedContractChangeV2, type Instant, type RepositoryStableId, type WorkspaceId } from '@yanib/reverb-domain';
|
|
2
|
+
import type { AdapterDiffResultV2, AdapterExtractionResultV2 } from './types-v2.js';
|
|
3
|
+
export declare function materializeContractObservationV2(input: {
|
|
4
|
+
readonly workspaceId: WorkspaceId;
|
|
5
|
+
readonly repositoryId: RepositoryStableId;
|
|
6
|
+
readonly generationId: GenerationId;
|
|
7
|
+
readonly commitSha: CommitSha;
|
|
8
|
+
readonly observedAt: Instant;
|
|
9
|
+
readonly extraction: AdapterExtractionResultV2;
|
|
10
|
+
}): ContractGenerationObservationV2;
|
|
11
|
+
export declare function materializeContractChangesV2(input: {
|
|
12
|
+
readonly workspaceId: WorkspaceId;
|
|
13
|
+
readonly producerRepositoryId: RepositoryStableId;
|
|
14
|
+
readonly baseGenerationId: GenerationId;
|
|
15
|
+
readonly headGenerationId: GenerationId;
|
|
16
|
+
readonly baseSha: CommitSha;
|
|
17
|
+
readonly headSha: CommitSha;
|
|
18
|
+
readonly diff: AdapterDiffResultV2;
|
|
19
|
+
}): readonly IndexedContractChangeV2[];
|
|
20
|
+
//# sourceMappingURL=materialize-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materialize-v2.d.ts","sourceRoot":"","sources":["../src/materialize-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,+BAA+B,EACpC,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAG5B,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEpF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;CAChD,GAAG,+BAA+B,CA+ElC;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC,GAAG,SAAS,uBAAuB,EAAE,CA8BrC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { contentHash, deriveStableReferenceIdV2, hashCanonical, } from '@yanib/reverb-domain';
|
|
2
|
+
export function materializeContractObservationV2(input) {
|
|
3
|
+
const definitions = input.extraction.definitions.map((value) => ({
|
|
4
|
+
workspaceId: input.workspaceId,
|
|
5
|
+
repositoryId: input.repositoryId,
|
|
6
|
+
generationId: input.generationId,
|
|
7
|
+
commitSha: input.commitSha,
|
|
8
|
+
family: input.extraction.family,
|
|
9
|
+
contractKind: value.contractKind,
|
|
10
|
+
canonicalKey: value.canonicalKey,
|
|
11
|
+
path: value.path,
|
|
12
|
+
...(value.range === undefined ? {} : { range: value.range }),
|
|
13
|
+
contentHash: value.contentHash,
|
|
14
|
+
shapeHash: value.shapeHash,
|
|
15
|
+
adapterId: value.extractorId,
|
|
16
|
+
adapterVersion: value.extractorVersion,
|
|
17
|
+
extractionVersion: value.extractionVersion,
|
|
18
|
+
identityVersion: value.identityVersion,
|
|
19
|
+
partitioningVersion: value.partitioningVersion,
|
|
20
|
+
compatibilityVersion: value.compatibilityVersion,
|
|
21
|
+
configRevision: value.configRevision,
|
|
22
|
+
evidenceStratum: value.evidenceStratum,
|
|
23
|
+
}));
|
|
24
|
+
const references = input.extraction.references.map((value) => ({
|
|
25
|
+
workspaceId: input.workspaceId,
|
|
26
|
+
repositoryId: input.repositoryId,
|
|
27
|
+
generationId: input.generationId,
|
|
28
|
+
commitSha: input.commitSha,
|
|
29
|
+
family: input.extraction.family,
|
|
30
|
+
contractKind: value.contractKind,
|
|
31
|
+
...(value.canonicalKey === undefined ? {} : { canonicalKey: value.canonicalKey }),
|
|
32
|
+
...(value.unresolvedPattern === undefined
|
|
33
|
+
? {}
|
|
34
|
+
: {
|
|
35
|
+
unresolvedPattern: value.unresolvedPattern,
|
|
36
|
+
unresolvedReason: value.unresolvedReason,
|
|
37
|
+
}),
|
|
38
|
+
...(value.semanticOwner === undefined ? {} : { semanticOwner: value.semanticOwner }),
|
|
39
|
+
stableReferenceId: deriveStableReferenceIdV2({
|
|
40
|
+
family: input.extraction.family,
|
|
41
|
+
contractKind: value.contractKind,
|
|
42
|
+
...(value.canonicalKey === undefined
|
|
43
|
+
? { unresolvedPattern: value.unresolvedPattern }
|
|
44
|
+
: { canonicalKey: value.canonicalKey }),
|
|
45
|
+
...(value.semanticOwner === undefined ? {} : { semanticOwner: value.semanticOwner }),
|
|
46
|
+
evidenceStratum: value.evidenceStratum,
|
|
47
|
+
}),
|
|
48
|
+
path: value.path,
|
|
49
|
+
...(value.range === undefined ? {} : { range: value.range }),
|
|
50
|
+
contentHash: value.contentHash,
|
|
51
|
+
adapterId: value.extractorId,
|
|
52
|
+
adapterVersion: value.extractorVersion,
|
|
53
|
+
extractionVersion: value.extractionVersion,
|
|
54
|
+
identityVersion: value.identityVersion,
|
|
55
|
+
partitioningVersion: value.partitioningVersion,
|
|
56
|
+
compatibilityVersion: value.compatibilityVersion,
|
|
57
|
+
configRevision: value.configRevision,
|
|
58
|
+
evidenceStratum: value.evidenceStratum,
|
|
59
|
+
activation: value.activation,
|
|
60
|
+
}));
|
|
61
|
+
const canonical = {
|
|
62
|
+
schema: 'reverb.contract-observation',
|
|
63
|
+
schemaVersion: '2.0',
|
|
64
|
+
workspaceId: input.workspaceId,
|
|
65
|
+
repositoryId: input.repositoryId,
|
|
66
|
+
generationId: input.generationId,
|
|
67
|
+
commitSha: input.commitSha,
|
|
68
|
+
family: input.extraction.family,
|
|
69
|
+
coverageState: input.extraction.coverage.state,
|
|
70
|
+
definitions: definitions.sort((left, right) => `${left.contractKind}\0${left.canonicalKey}\0${left.path}`.localeCompare(`${right.contractKind}\0${right.canonicalKey}\0${right.path}`)),
|
|
71
|
+
references: references.sort((left, right) => left.stableReferenceId.localeCompare(right.stableReferenceId)),
|
|
72
|
+
observedAt: input.observedAt,
|
|
73
|
+
};
|
|
74
|
+
return { ...canonical, outputHash: contentHash(hashCanonical(canonical)) };
|
|
75
|
+
}
|
|
76
|
+
export function materializeContractChangesV2(input) {
|
|
77
|
+
return input.diff.changes
|
|
78
|
+
.map((value) => ({
|
|
79
|
+
workspaceId: input.workspaceId,
|
|
80
|
+
producerRepositoryId: input.producerRepositoryId,
|
|
81
|
+
baseGenerationId: input.baseGenerationId,
|
|
82
|
+
headGenerationId: input.headGenerationId,
|
|
83
|
+
baseSha: input.baseSha,
|
|
84
|
+
headSha: input.headSha,
|
|
85
|
+
family: input.diff.family,
|
|
86
|
+
contractKind: value.contractKind,
|
|
87
|
+
canonicalKey: value.canonicalKey,
|
|
88
|
+
changeKind: value.changeKind,
|
|
89
|
+
compatibility: value.compatibility,
|
|
90
|
+
activation: value.activation,
|
|
91
|
+
adapterId: input.diff.adapterId,
|
|
92
|
+
adapterVersion: input.diff.adapterVersion,
|
|
93
|
+
extractionVersion: input.diff.extractionVersion,
|
|
94
|
+
identityVersion: input.diff.identityVersion,
|
|
95
|
+
partitioningVersion: input.diff.partitioningVersion,
|
|
96
|
+
compatibilityVersion: input.diff.compatibilityVersion,
|
|
97
|
+
coverageState: input.diff.coverage.state,
|
|
98
|
+
coverageDependencies: value.coverageDependencies,
|
|
99
|
+
remedy: value.remedy,
|
|
100
|
+
}))
|
|
101
|
+
.sort((left, right) => `${left.contractKind}\0${left.canonicalKey}\0${left.changeKind}`.localeCompare(`${right.contractKind}\0${right.canonicalKey}\0${right.changeKind}`));
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=materialize-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materialize-v2.js","sourceRoot":"","sources":["../src/materialize-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { AdapterFamilyV2, AdapterId, AdapterSemanticPartition, BoundedDiagnostic, ConfigRevision, ContentHash, ContractKindV2, RepoPath } from '@yanib/reverb-domain';
|
|
2
|
+
import type { ActivationTiming, AdapterInvalidationPlan, AdapterPartitionDescriptor, AdapterPathChange, AdapterResourceBudget, ArtifactInput, CapabilityTier, CompatibilityResult, EvidenceStratumDeclaration, SourceRange } from './types.js';
|
|
3
|
+
export interface AdapterManifestV2 {
|
|
4
|
+
readonly schema: 'reverb.adapter-manifest';
|
|
5
|
+
readonly schemaVersion: '2.0';
|
|
6
|
+
readonly id: AdapterId;
|
|
7
|
+
readonly family: AdapterFamilyV2;
|
|
8
|
+
readonly version: string;
|
|
9
|
+
readonly extractionVersion: string;
|
|
10
|
+
readonly identityVersion: number;
|
|
11
|
+
readonly partitioningVersion: number;
|
|
12
|
+
readonly compatibilityVersion: string;
|
|
13
|
+
readonly contractKinds: readonly ContractKindV2[];
|
|
14
|
+
readonly capabilityTiers: readonly {
|
|
15
|
+
readonly input: string;
|
|
16
|
+
readonly tier: CapabilityTier;
|
|
17
|
+
}[];
|
|
18
|
+
readonly evidenceStrata: readonly EvidenceStratumDeclaration[];
|
|
19
|
+
readonly externalTools: readonly [];
|
|
20
|
+
readonly limitations: readonly string[];
|
|
21
|
+
readonly resourceBudget: AdapterResourceBudget;
|
|
22
|
+
readonly maintainer: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ContractDefinitionV2 {
|
|
25
|
+
readonly contractKind: ContractKindV2;
|
|
26
|
+
readonly canonicalKey: string;
|
|
27
|
+
readonly displayName: string;
|
|
28
|
+
readonly path: RepoPath;
|
|
29
|
+
readonly range?: SourceRange;
|
|
30
|
+
readonly contentHash: ContentHash;
|
|
31
|
+
readonly shapeHash: ContentHash;
|
|
32
|
+
readonly shape: Readonly<Record<string, unknown>>;
|
|
33
|
+
readonly extractorId: AdapterId;
|
|
34
|
+
readonly extractorVersion: string;
|
|
35
|
+
readonly extractionVersion: string;
|
|
36
|
+
readonly identityVersion: number;
|
|
37
|
+
readonly partitioningVersion: number;
|
|
38
|
+
readonly compatibilityVersion: string;
|
|
39
|
+
readonly configRevision: ConfigRevision;
|
|
40
|
+
readonly evidenceStratum: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ContractReferenceBaseV2 {
|
|
43
|
+
readonly contractKind: ContractKindV2;
|
|
44
|
+
readonly semanticOwner?: string;
|
|
45
|
+
readonly path: RepoPath;
|
|
46
|
+
readonly range?: SourceRange;
|
|
47
|
+
readonly contentHash: ContentHash;
|
|
48
|
+
readonly extractorId: AdapterId;
|
|
49
|
+
readonly extractorVersion: string;
|
|
50
|
+
readonly extractionVersion: string;
|
|
51
|
+
readonly identityVersion: number;
|
|
52
|
+
readonly partitioningVersion: number;
|
|
53
|
+
readonly compatibilityVersion: string;
|
|
54
|
+
readonly configRevision: ConfigRevision;
|
|
55
|
+
readonly evidenceStratum: string;
|
|
56
|
+
readonly activation: ActivationTiming;
|
|
57
|
+
}
|
|
58
|
+
export interface ResolvedContractReferenceV2 extends ContractReferenceBaseV2 {
|
|
59
|
+
readonly canonicalKey: string;
|
|
60
|
+
readonly unresolvedPattern?: never;
|
|
61
|
+
readonly unresolvedReason?: never;
|
|
62
|
+
}
|
|
63
|
+
export interface UnresolvedContractReferenceV2 extends ContractReferenceBaseV2 {
|
|
64
|
+
readonly canonicalKey?: never;
|
|
65
|
+
readonly unresolvedPattern: string;
|
|
66
|
+
readonly unresolvedReason: string;
|
|
67
|
+
}
|
|
68
|
+
export type ContractReferenceV2 = ResolvedContractReferenceV2 | UnresolvedContractReferenceV2;
|
|
69
|
+
export interface AdapterCoverageV2 {
|
|
70
|
+
readonly state: 'complete' | 'partial' | 'failed' | 'unsupported';
|
|
71
|
+
readonly eligibleArtifacts: number;
|
|
72
|
+
readonly processedArtifacts: number;
|
|
73
|
+
readonly skippedArtifacts: number;
|
|
74
|
+
readonly failedArtifacts: number;
|
|
75
|
+
readonly limitations: readonly {
|
|
76
|
+
readonly code: string;
|
|
77
|
+
readonly scope?: RepoPath;
|
|
78
|
+
}[];
|
|
79
|
+
}
|
|
80
|
+
export interface AdapterExtractionResultV2 {
|
|
81
|
+
readonly schema: 'reverb.adapter-extraction';
|
|
82
|
+
readonly schemaVersion: '2.0';
|
|
83
|
+
readonly family: AdapterFamilyV2;
|
|
84
|
+
readonly adapterId: AdapterId;
|
|
85
|
+
readonly adapterVersion: string;
|
|
86
|
+
readonly extractionVersion: string;
|
|
87
|
+
readonly identityVersion: number;
|
|
88
|
+
readonly partitioningVersion: number;
|
|
89
|
+
readonly compatibilityVersion: string;
|
|
90
|
+
readonly configRevision: ConfigRevision;
|
|
91
|
+
readonly definitions: readonly ContractDefinitionV2[];
|
|
92
|
+
readonly references: readonly ContractReferenceV2[];
|
|
93
|
+
readonly coverage: AdapterCoverageV2;
|
|
94
|
+
readonly diagnostics: readonly BoundedDiagnostic[];
|
|
95
|
+
readonly sourceFingerprint: ContentHash;
|
|
96
|
+
readonly outputHash: ContentHash;
|
|
97
|
+
}
|
|
98
|
+
export interface ContractChangeV2 {
|
|
99
|
+
readonly contractKind: ContractKindV2;
|
|
100
|
+
readonly canonicalKey: string;
|
|
101
|
+
readonly changeKind: string;
|
|
102
|
+
readonly compatibility: CompatibilityResult;
|
|
103
|
+
readonly activation: ActivationTiming;
|
|
104
|
+
readonly baseShapeHash?: ContentHash;
|
|
105
|
+
readonly headShapeHash?: ContentHash;
|
|
106
|
+
readonly coverageDependencies: readonly string[];
|
|
107
|
+
readonly remedy: {
|
|
108
|
+
readonly kind: string;
|
|
109
|
+
readonly text: string;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export interface AdapterDiffResultV2 {
|
|
113
|
+
readonly schema: 'reverb.adapter-diff';
|
|
114
|
+
readonly schemaVersion: '2.0';
|
|
115
|
+
readonly family: AdapterFamilyV2;
|
|
116
|
+
readonly adapterId: AdapterId;
|
|
117
|
+
readonly adapterVersion: string;
|
|
118
|
+
readonly extractionVersion: string;
|
|
119
|
+
readonly identityVersion: number;
|
|
120
|
+
readonly partitioningVersion: number;
|
|
121
|
+
readonly compatibilityVersion: string;
|
|
122
|
+
readonly changes: readonly ContractChangeV2[];
|
|
123
|
+
readonly coverage: AdapterCoverageV2;
|
|
124
|
+
readonly diagnostics: readonly BoundedDiagnostic[];
|
|
125
|
+
readonly outputHash: ContentHash;
|
|
126
|
+
}
|
|
127
|
+
export interface ExtractRequestV2 {
|
|
128
|
+
readonly artifacts: readonly ArtifactInput[];
|
|
129
|
+
readonly configRevision: ConfigRevision;
|
|
130
|
+
readonly context: Readonly<Record<string, unknown>>;
|
|
131
|
+
}
|
|
132
|
+
export interface DiffRequestV2 {
|
|
133
|
+
readonly base: AdapterExtractionResultV2;
|
|
134
|
+
readonly head: AdapterExtractionResultV2;
|
|
135
|
+
readonly configRevision: ConfigRevision;
|
|
136
|
+
readonly context: Readonly<Record<string, unknown>>;
|
|
137
|
+
}
|
|
138
|
+
export interface ContractAdapterV2 {
|
|
139
|
+
readonly manifest: AdapterManifestV2;
|
|
140
|
+
extract(request: ExtractRequestV2): Promise<AdapterExtractionResultV2>;
|
|
141
|
+
diff(request: DiffRequestV2): Promise<AdapterDiffResultV2>;
|
|
142
|
+
}
|
|
143
|
+
export type AdapterPartitionViewV2 = Pick<AdapterSemanticPartition, 'partitionKey' | 'ownedPaths' | 'dependencyKeys' | 'payload' | 'outputHash'>;
|
|
144
|
+
export interface AdapterPartitionBuildV2 {
|
|
145
|
+
readonly partitionKey: string;
|
|
146
|
+
readonly ownedPaths: readonly RepoPath[];
|
|
147
|
+
readonly dependencyKeys: readonly string[];
|
|
148
|
+
readonly payload: Readonly<Record<string, unknown>>;
|
|
149
|
+
readonly extraction: AdapterExtractionResultV2;
|
|
150
|
+
}
|
|
151
|
+
export interface AdapterPartitionBuildResultV2 {
|
|
152
|
+
readonly partitions: readonly AdapterPartitionBuildV2[];
|
|
153
|
+
readonly coverage: AdapterCoverageV2;
|
|
154
|
+
readonly diagnostics: readonly BoundedDiagnostic[];
|
|
155
|
+
readonly outputHash: ContentHash;
|
|
156
|
+
}
|
|
157
|
+
export interface AdapterPartitionUpdateResultV2 {
|
|
158
|
+
readonly replacements: readonly AdapterPartitionBuildV2[];
|
|
159
|
+
readonly tombstones: readonly string[];
|
|
160
|
+
readonly coverage: AdapterCoverageV2;
|
|
161
|
+
readonly diagnostics: readonly BoundedDiagnostic[];
|
|
162
|
+
readonly outputHash: ContentHash;
|
|
163
|
+
}
|
|
164
|
+
export interface IncrementalContractAdapterV2 extends ContractAdapterV2 {
|
|
165
|
+
buildPartitions(request: ExtractRequestV2): Promise<AdapterPartitionBuildResultV2>;
|
|
166
|
+
planInvalidation(request: {
|
|
167
|
+
readonly partitions: readonly AdapterPartitionDescriptor[];
|
|
168
|
+
readonly changes: readonly AdapterPathChange[];
|
|
169
|
+
readonly context: Readonly<Record<string, unknown>>;
|
|
170
|
+
}): AdapterInvalidationPlan;
|
|
171
|
+
updatePartitions(request: {
|
|
172
|
+
readonly basePartitions: readonly AdapterPartitionViewV2[];
|
|
173
|
+
readonly plan: AdapterInvalidationPlan;
|
|
174
|
+
readonly changes: readonly AdapterPathChange[];
|
|
175
|
+
readonly changedArtifacts: readonly ArtifactInput[];
|
|
176
|
+
readonly configRevision: ConfigRevision;
|
|
177
|
+
readonly context: Readonly<Record<string, unknown>>;
|
|
178
|
+
}): Promise<AdapterPartitionUpdateResultV2>;
|
|
179
|
+
materializePartitions(request: {
|
|
180
|
+
readonly partitions: readonly AdapterPartitionViewV2[];
|
|
181
|
+
readonly configRevision: ConfigRevision;
|
|
182
|
+
readonly context: Readonly<Record<string, unknown>>;
|
|
183
|
+
}): Promise<AdapterExtractionResultV2>;
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=types-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-v2.d.ts","sourceRoot":"","sources":["../src/types-v2.ts"],"names":[],"mappings":"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"}
|
package/dist/types-v2.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-v2.js","sourceRoot":"","sources":["../src/types-v2.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AdapterDiffResultV2, AdapterExtractionResultV2, AdapterManifestV2 } from './types-v2.js';
|
|
2
|
+
export declare function validateAdapterManifestV2(manifest: AdapterManifestV2): AdapterManifestV2;
|
|
3
|
+
export declare function finalizeExtractionV2(input: Omit<AdapterExtractionResultV2, 'outputHash'>): AdapterExtractionResultV2;
|
|
4
|
+
export declare function finalizeDiffV2(input: Omit<AdapterDiffResultV2, 'outputHash'>): AdapterDiffResultV2;
|
|
5
|
+
export declare function assertComparableExtractionsV2(manifest: AdapterManifestV2, base: AdapterExtractionResultV2, head: AdapterExtractionResultV2, expectedConfigRevision?: AdapterExtractionResultV2['configRevision']): void;
|
|
6
|
+
//# sourceMappingURL=validation-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-v2.d.ts","sourceRoot":"","sources":["../src/validation-v2.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAEV,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EAIlB,MAAM,eAAe,CAAC;AAqDvB,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,CAkExF;AAsJD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,GACnD,yBAAyB,CAkD3B;AA2BD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,GAC7C,mBAAmB,CAyBrB;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,yBAAyB,EAC/B,IAAI,EAAE,yBAAyB,EAC/B,sBAAsB,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,GACnE,IAAI,CAwBN"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { ADAPTER_FAMILIES_V2, CONTRACT_KINDS_V2, adapterId, configRevision, contentHash, hashCanonical, repoPath, } from '@yanib/reverb-domain';
|
|
2
|
+
import { ACTIVATION_TIMINGS, CAPABILITY_TIERS, COMPATIBILITY_RESULTS } from './types.js';
|
|
3
|
+
import { AdapterValidationError } from './validation.js';
|
|
4
|
+
const SEMVER = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?$/;
|
|
5
|
+
const VERSION = /^[0-9A-Za-z][0-9A-Za-z._-]{0,127}$/;
|
|
6
|
+
const TOKEN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
|
|
7
|
+
const FAMILY_PREFIX = {
|
|
8
|
+
events: 'event.',
|
|
9
|
+
database: 'database.',
|
|
10
|
+
implicit_http: 'http.',
|
|
11
|
+
configuration: 'configuration.',
|
|
12
|
+
infrastructure: 'infrastructure.',
|
|
13
|
+
};
|
|
14
|
+
function requireCondition(condition, code, message) {
|
|
15
|
+
if (!condition)
|
|
16
|
+
throw new AdapterValidationError(code, message);
|
|
17
|
+
}
|
|
18
|
+
function boundedText(value, name, maximum = 256) {
|
|
19
|
+
requireCondition(value.trim().length > 0, 'invalid_output', `${name} cannot be empty.`);
|
|
20
|
+
requireCondition(value.length <= maximum, 'invalid_output', `${name} exceeds its limit.`);
|
|
21
|
+
}
|
|
22
|
+
function positiveVersion(value, name) {
|
|
23
|
+
requireCondition(Number.isSafeInteger(value) && value > 0, 'invalid_output', `${name} must be a positive safe integer.`);
|
|
24
|
+
}
|
|
25
|
+
function validateProtocolVersions(input) {
|
|
26
|
+
requireCondition(SEMVER.test(input.adapterVersion), 'invalid_output', 'Version must be SemVer.');
|
|
27
|
+
requireCondition(VERSION.test(input.extractionVersion), 'invalid_output', 'Extraction version is invalid.');
|
|
28
|
+
requireCondition(VERSION.test(input.compatibilityVersion), 'invalid_output', 'Compatibility version is invalid.');
|
|
29
|
+
positiveVersion(input.identityVersion, 'Identity version');
|
|
30
|
+
positiveVersion(input.partitioningVersion, 'Partitioning version');
|
|
31
|
+
}
|
|
32
|
+
export function validateAdapterManifestV2(manifest) {
|
|
33
|
+
requireCondition(manifest.schema === 'reverb.adapter-manifest' && manifest.schemaVersion === '2.0', 'unsupported_manifest_schema', 'V2 adapter manifest schema is unsupported.');
|
|
34
|
+
adapterId(manifest.id);
|
|
35
|
+
requireCondition(ADAPTER_FAMILIES_V2.includes(manifest.family), 'invalid_manifest', 'Adapter family is invalid.');
|
|
36
|
+
validateProtocolVersions({
|
|
37
|
+
adapterVersion: manifest.version,
|
|
38
|
+
extractionVersion: manifest.extractionVersion,
|
|
39
|
+
identityVersion: manifest.identityVersion,
|
|
40
|
+
partitioningVersion: manifest.partitioningVersion,
|
|
41
|
+
compatibilityVersion: manifest.compatibilityVersion,
|
|
42
|
+
});
|
|
43
|
+
requireCondition(manifest.contractKinds.length > 0, 'invalid_manifest', 'Kinds are required.');
|
|
44
|
+
requireCondition(new Set(manifest.contractKinds).size === manifest.contractKinds.length &&
|
|
45
|
+
manifest.contractKinds.every((kind) => CONTRACT_KINDS_V2.includes(kind)), 'invalid_manifest', 'V2 contract kinds must be unique and closed.');
|
|
46
|
+
requireCondition(manifest.contractKinds.every((kind) => kind.startsWith(FAMILY_PREFIX[manifest.family])), 'invalid_manifest', 'V2 adapters can declare contract kinds only from their own family.');
|
|
47
|
+
requireCondition(manifest.capabilityTiers.length > 0 &&
|
|
48
|
+
manifest.capabilityTiers.every((entry) => entry.input.length > 0 && CAPABILITY_TIERS.includes(entry.tier)), 'invalid_manifest', 'Capability tiers are invalid.');
|
|
49
|
+
const strata = new Set();
|
|
50
|
+
for (const stratum of manifest.evidenceStrata) {
|
|
51
|
+
requireCondition(TOKEN.test(stratum.id), 'invalid_manifest', 'Stratum ID is invalid.');
|
|
52
|
+
requireCondition(!strata.has(stratum.id), 'invalid_manifest', 'Stratum ID is duplicated.');
|
|
53
|
+
requireCondition(stratum.promotionState === 'UNMEASURED' && stratum.requiredEvidence.length > 0, 'invalid_manifest', 'New strata must be unmeasured and declare required evidence.');
|
|
54
|
+
strata.add(stratum.id);
|
|
55
|
+
}
|
|
56
|
+
requireCondition(strata.size > 0, 'invalid_manifest', 'Evidence strata are required.');
|
|
57
|
+
requireCondition(manifest.externalTools.length === 0, 'invalid_manifest', 'Initial v2 deterministic adapters cannot execute external tools.');
|
|
58
|
+
manifest.limitations.forEach((value) => boundedText(value, 'Limitation', 512));
|
|
59
|
+
boundedText(manifest.maintainer, 'Maintainer');
|
|
60
|
+
for (const value of Object.values(manifest.resourceBudget)) {
|
|
61
|
+
requireCondition(Number.isSafeInteger(value) && value > 0, 'invalid_manifest', 'Resource budgets must be positive safe integers.');
|
|
62
|
+
}
|
|
63
|
+
return manifest;
|
|
64
|
+
}
|
|
65
|
+
function validateCoverage(coverage) {
|
|
66
|
+
requireCondition(['complete', 'partial', 'failed', 'unsupported'].includes(coverage.state), 'invalid_coverage', 'Coverage state is invalid.');
|
|
67
|
+
for (const value of [
|
|
68
|
+
coverage.eligibleArtifacts,
|
|
69
|
+
coverage.processedArtifacts,
|
|
70
|
+
coverage.skippedArtifacts,
|
|
71
|
+
coverage.failedArtifacts,
|
|
72
|
+
]) {
|
|
73
|
+
requireCondition(Number.isSafeInteger(value) && value >= 0, 'invalid_coverage', 'Coverage counts must be non-negative safe integers.');
|
|
74
|
+
}
|
|
75
|
+
requireCondition(coverage.processedArtifacts + coverage.skippedArtifacts + coverage.failedArtifacts <=
|
|
76
|
+
coverage.eligibleArtifacts, 'invalid_coverage', 'Coverage accounting exceeds eligible artifacts.');
|
|
77
|
+
if (coverage.state === 'complete') {
|
|
78
|
+
requireCondition(coverage.failedArtifacts === 0 &&
|
|
79
|
+
coverage.processedArtifacts + coverage.skippedArtifacts === coverage.eligibleArtifacts &&
|
|
80
|
+
coverage.limitations.length === 0, 'invalid_coverage', 'Complete coverage must account for every artifact without limitations.');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
requireCondition(coverage.limitations.length > 0, 'invalid_coverage', 'Incomplete coverage requires an explicit limitation.');
|
|
84
|
+
}
|
|
85
|
+
coverage.limitations.forEach((value) => {
|
|
86
|
+
boundedText(value.code, 'Coverage limitation', 192);
|
|
87
|
+
if (value.scope !== undefined)
|
|
88
|
+
repoPath(value.scope);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function validateRange(range) {
|
|
92
|
+
if (range === undefined)
|
|
93
|
+
return;
|
|
94
|
+
for (const value of [range.startLine, range.startColumn, range.endLine, range.endColumn]) {
|
|
95
|
+
requireCondition(Number.isSafeInteger(value) && value > 0, 'invalid_output', 'Source ranges must contain positive integers.');
|
|
96
|
+
}
|
|
97
|
+
requireCondition(range.endLine > range.startLine ||
|
|
98
|
+
(range.endLine === range.startLine && range.endColumn >= range.startColumn), 'invalid_output', 'Source range end precedes its start.');
|
|
99
|
+
}
|
|
100
|
+
function validateDiagnostic(value) {
|
|
101
|
+
boundedText(value.safeMessage, 'Diagnostic', 256);
|
|
102
|
+
if (value.scope !== undefined)
|
|
103
|
+
repoPath(value.scope);
|
|
104
|
+
if (value.detailHash !== undefined)
|
|
105
|
+
contentHash(value.detailHash);
|
|
106
|
+
}
|
|
107
|
+
function validateKey(value) {
|
|
108
|
+
requireCondition(value.length > 0 && value.length <= 2048 && !value.includes('\0'), 'invalid_output', 'Canonical contract key is not bounded.');
|
|
109
|
+
}
|
|
110
|
+
function validateDefinition(value) {
|
|
111
|
+
requireCondition(CONTRACT_KINDS_V2.includes(value.contractKind), 'invalid_output', 'V2 contract kind is invalid.');
|
|
112
|
+
validateKey(value.canonicalKey);
|
|
113
|
+
boundedText(value.displayName, 'Definition display name', 512);
|
|
114
|
+
repoPath(value.path);
|
|
115
|
+
validateRange(value.range);
|
|
116
|
+
contentHash(value.contentHash);
|
|
117
|
+
requireCondition(value.shapeHash === contentHash(hashCanonical(value.shape)), 'invalid_output', 'Definition shape hash does not match its shape.');
|
|
118
|
+
boundedText(value.evidenceStratum, 'Evidence stratum', 128);
|
|
119
|
+
}
|
|
120
|
+
function validateReference(value) {
|
|
121
|
+
requireCondition(CONTRACT_KINDS_V2.includes(value.contractKind), 'invalid_output', 'V2 contract kind is invalid.');
|
|
122
|
+
const resolved = value.canonicalKey !== undefined &&
|
|
123
|
+
value.unresolvedPattern === undefined &&
|
|
124
|
+
value.unresolvedReason === undefined;
|
|
125
|
+
const unresolved = value.canonicalKey === undefined &&
|
|
126
|
+
value.unresolvedPattern !== undefined &&
|
|
127
|
+
value.unresolvedReason !== undefined;
|
|
128
|
+
requireCondition(resolved !== unresolved, 'invalid_output', 'Reference must be exactly resolved or unresolved.');
|
|
129
|
+
if (value.canonicalKey !== undefined)
|
|
130
|
+
validateKey(value.canonicalKey);
|
|
131
|
+
if (value.unresolvedPattern !== undefined)
|
|
132
|
+
boundedText(value.unresolvedPattern, 'Unresolved pattern', 2048);
|
|
133
|
+
if (value.unresolvedReason !== undefined)
|
|
134
|
+
boundedText(value.unresolvedReason, 'Unresolved reason', 256);
|
|
135
|
+
repoPath(value.path);
|
|
136
|
+
validateRange(value.range);
|
|
137
|
+
contentHash(value.contentHash);
|
|
138
|
+
requireCondition(ACTIVATION_TIMINGS.includes(value.activation), 'invalid_output', 'Activation is invalid.');
|
|
139
|
+
boundedText(value.evidenceStratum, 'Evidence stratum', 128);
|
|
140
|
+
}
|
|
141
|
+
function stamp(input) {
|
|
142
|
+
return [
|
|
143
|
+
input.adapterId,
|
|
144
|
+
input.adapterVersion,
|
|
145
|
+
input.extractionVersion,
|
|
146
|
+
input.identityVersion,
|
|
147
|
+
input.partitioningVersion,
|
|
148
|
+
input.compatibilityVersion,
|
|
149
|
+
].join('@');
|
|
150
|
+
}
|
|
151
|
+
export function finalizeExtractionV2(input) {
|
|
152
|
+
requireCondition(input.schema === 'reverb.adapter-extraction' &&
|
|
153
|
+
input.schemaVersion === '2.0' &&
|
|
154
|
+
ADAPTER_FAMILIES_V2.includes(input.family), 'invalid_output', 'V2 extraction envelope is invalid.');
|
|
155
|
+
validateCoverage(input.coverage);
|
|
156
|
+
input.diagnostics.forEach(validateDiagnostic);
|
|
157
|
+
adapterId(input.adapterId);
|
|
158
|
+
validateProtocolVersions(input);
|
|
159
|
+
configRevision(input.configRevision);
|
|
160
|
+
contentHash(input.sourceFingerprint);
|
|
161
|
+
input.definitions.forEach(validateDefinition);
|
|
162
|
+
input.references.forEach(validateReference);
|
|
163
|
+
requireCondition([...input.definitions, ...input.references].every((value) => value.contractKind.startsWith(FAMILY_PREFIX[input.family])), 'invalid_output', 'V2 extraction evidence must belong to its declared family.');
|
|
164
|
+
const definitions = [...input.definitions].sort((left, right) => `${left.contractKind}\0${left.canonicalKey}\0${left.path}`.localeCompare(`${right.contractKind}\0${right.canonicalKey}\0${right.path}`));
|
|
165
|
+
const references = [...input.references].sort((left, right) => `${left.contractKind}\0${left.canonicalKey ?? left.unresolvedPattern}\0${left.path}`.localeCompare(`${right.contractKind}\0${right.canonicalKey ?? right.unresolvedPattern}\0${right.path}`));
|
|
166
|
+
const expected = stamp(input);
|
|
167
|
+
for (const value of [...definitions, ...references]) {
|
|
168
|
+
requireCondition(stamp({
|
|
169
|
+
adapterId: value.extractorId,
|
|
170
|
+
adapterVersion: value.extractorVersion,
|
|
171
|
+
extractionVersion: value.extractionVersion,
|
|
172
|
+
identityVersion: value.identityVersion,
|
|
173
|
+
partitioningVersion: value.partitioningVersion,
|
|
174
|
+
compatibilityVersion: value.compatibilityVersion,
|
|
175
|
+
}) === expected && value.configRevision === input.configRevision, 'incompatible_output_version', 'V2 evidence version stamps do not match its extraction.');
|
|
176
|
+
}
|
|
177
|
+
const withoutHash = { ...input, definitions, references };
|
|
178
|
+
return { ...withoutHash, outputHash: contentHash(hashCanonical(withoutHash)) };
|
|
179
|
+
}
|
|
180
|
+
function validateChange(value) {
|
|
181
|
+
requireCondition(CONTRACT_KINDS_V2.includes(value.contractKind), 'invalid_output', 'V2 contract kind is invalid.');
|
|
182
|
+
validateKey(value.canonicalKey);
|
|
183
|
+
boundedText(value.changeKind, 'Change kind', 128);
|
|
184
|
+
requireCondition(COMPATIBILITY_RESULTS.includes(value.compatibility), 'invalid_output', 'Compatibility is invalid.');
|
|
185
|
+
requireCondition(ACTIVATION_TIMINGS.includes(value.activation), 'invalid_output', 'Activation is invalid.');
|
|
186
|
+
if (value.baseShapeHash !== undefined)
|
|
187
|
+
contentHash(value.baseShapeHash);
|
|
188
|
+
if (value.headShapeHash !== undefined)
|
|
189
|
+
contentHash(value.headShapeHash);
|
|
190
|
+
value.coverageDependencies.forEach((item) => boundedText(item, 'Coverage dependency', 256));
|
|
191
|
+
boundedText(value.remedy.kind, 'Remedy kind', 128);
|
|
192
|
+
boundedText(value.remedy.text, 'Remedy text', 1024);
|
|
193
|
+
}
|
|
194
|
+
export function finalizeDiffV2(input) {
|
|
195
|
+
requireCondition(input.schema === 'reverb.adapter-diff' &&
|
|
196
|
+
input.schemaVersion === '2.0' &&
|
|
197
|
+
ADAPTER_FAMILIES_V2.includes(input.family), 'invalid_output', 'V2 diff envelope is invalid.');
|
|
198
|
+
validateCoverage(input.coverage);
|
|
199
|
+
input.diagnostics.forEach(validateDiagnostic);
|
|
200
|
+
adapterId(input.adapterId);
|
|
201
|
+
validateProtocolVersions(input);
|
|
202
|
+
input.changes.forEach(validateChange);
|
|
203
|
+
requireCondition(input.changes.every((value) => value.contractKind.startsWith(FAMILY_PREFIX[input.family])), 'invalid_output', 'V2 changes must belong to their declared family.');
|
|
204
|
+
const changes = [...input.changes].sort((left, right) => `${left.contractKind}\0${left.canonicalKey}\0${left.changeKind}`.localeCompare(`${right.contractKind}\0${right.canonicalKey}\0${right.changeKind}`));
|
|
205
|
+
const withoutHash = { ...input, changes };
|
|
206
|
+
return { ...withoutHash, outputHash: contentHash(hashCanonical(withoutHash)) };
|
|
207
|
+
}
|
|
208
|
+
export function assertComparableExtractionsV2(manifest, base, head, expectedConfigRevision) {
|
|
209
|
+
const expected = stamp({
|
|
210
|
+
adapterId: manifest.id,
|
|
211
|
+
adapterVersion: manifest.version,
|
|
212
|
+
extractionVersion: manifest.extractionVersion,
|
|
213
|
+
identityVersion: manifest.identityVersion,
|
|
214
|
+
partitioningVersion: manifest.partitioningVersion,
|
|
215
|
+
compatibilityVersion: manifest.compatibilityVersion,
|
|
216
|
+
});
|
|
217
|
+
for (const result of [base, head]) {
|
|
218
|
+
requireCondition(result.schemaVersion === '2.0' &&
|
|
219
|
+
result.family === manifest.family &&
|
|
220
|
+
stamp(result) === expected, 'incompatible_extraction', 'Extraction was produced by an incompatible v2 adapter protocol.');
|
|
221
|
+
}
|
|
222
|
+
requireCondition(base.configRevision === head.configRevision &&
|
|
223
|
+
(expectedConfigRevision === undefined || base.configRevision === expectedConfigRevision), 'incompatible_extraction', 'Extraction config revisions are incompatible.');
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=validation-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-v2.js","sourceRoot":"","sources":["../src/validation-v2.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yanib/reverb-adapter-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Contract adapter interfaces and validation for Reverb",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@yanib/reverb-domain": "0.
|
|
31
|
+
"@yanib/reverb-domain": "0.5.0"
|
|
32
32
|
},
|
|
33
33
|
"publishConfig": {
|
|
34
34
|
"access": "public",
|