@primust/verifier 1.0.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.
Files changed (46) hide show
  1. package/LICENSE +93 -0
  2. package/dist/bounded-trace.d.ts +46 -0
  3. package/dist/bounded-trace.d.ts.map +1 -0
  4. package/dist/bounded-trace.js +558 -0
  5. package/dist/bounded-trace.js.map +1 -0
  6. package/dist/cli.d.ts +18 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +391 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/index.d.ts +13 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +13 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/key-cache.d.ts +20 -0
  15. package/dist/key-cache.d.ts.map +1 -0
  16. package/dist/key-cache.js +68 -0
  17. package/dist/key-cache.js.map +1 -0
  18. package/dist/scoped.d.ts +35 -0
  19. package/dist/scoped.d.ts.map +1 -0
  20. package/dist/scoped.js +582 -0
  21. package/dist/scoped.js.map +1 -0
  22. package/dist/types.d.ts +60 -0
  23. package/dist/types.d.ts.map +1 -0
  24. package/dist/types.js +5 -0
  25. package/dist/types.js.map +1 -0
  26. package/dist/upstream_resolver.d.ts +60 -0
  27. package/dist/upstream_resolver.d.ts.map +1 -0
  28. package/dist/upstream_resolver.js +126 -0
  29. package/dist/upstream_resolver.js.map +1 -0
  30. package/dist/v29-envelope.d.ts +55 -0
  31. package/dist/v29-envelope.d.ts.map +1 -0
  32. package/dist/v29-envelope.js +450 -0
  33. package/dist/v29-envelope.js.map +1 -0
  34. package/dist/verifier.d.ts +36 -0
  35. package/dist/verifier.d.ts.map +1 -0
  36. package/dist/verifier.js +1235 -0
  37. package/dist/verifier.js.map +1 -0
  38. package/dist/verifier.test.d.ts +2 -0
  39. package/dist/verifier.test.d.ts.map +1 -0
  40. package/dist/verifier.test.js +395 -0
  41. package/dist/verifier.test.js.map +1 -0
  42. package/dist/verify-html-template.d.ts +45 -0
  43. package/dist/verify-html-template.d.ts.map +1 -0
  44. package/dist/verify-html-template.js +182 -0
  45. package/dist/verify-html-template.js.map +1 -0
  46. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=verifier.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifier.test.d.ts","sourceRoot":"","sources":["../src/verifier.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,395 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { verify } from './verifier.js';
3
+ import { main } from './cli.js';
4
+ import { generateKeyPair, sign, } from '@primust/artifact-core';
5
+ import { writeFileSync, mkdirSync } from 'node:fs';
6
+ import { join } from 'node:path';
7
+ import { tmpdir } from 'node:os';
8
+ /**
9
+ * Build a valid artifact body (without signature) that passes schema validation.
10
+ * This is the document that gets signed.
11
+ */
12
+ function buildArtifactBody(kid, publicKeyB64Url, overrides = {}) {
13
+ const base = {
14
+ vpec_id: 'vpec_00000000-0000-0000-0000-000000000001',
15
+ schema_version: '4.0.0',
16
+ org_id: 'org_test',
17
+ run_id: 'run_00000000-0000-0000-0000-000000000001',
18
+ workflow_id: 'wf_test',
19
+ process_context_hash: null,
20
+ policy_snapshot_hash: 'sha256:' + 'a'.repeat(64),
21
+ policy_basis: 'P1_self_declared',
22
+ partial: false,
23
+ surface_summary: [
24
+ {
25
+ surface_id: 'surf_1',
26
+ surface_type: 'in_process_adapter',
27
+ observation_mode: 'pre_action',
28
+ proof_ceiling: 'execution',
29
+ scope_type: 'full_workflow',
30
+ scope_description: 'Full workflow adapter',
31
+ surface_coverage_statement: 'All tool calls in graph scope',
32
+ },
33
+ ],
34
+ proof_level: 'execution',
35
+ proof_distribution: {
36
+ mathematical: 0,
37
+ verifiable_inference: 0,
38
+ execution: 5,
39
+ witnessed: 0,
40
+ attestation: 0,
41
+ weakest_link: 'execution',
42
+ weakest_link_explanation: 'All checks ran in execution mode',
43
+ },
44
+ state: 'signed',
45
+ coverage: {
46
+ records_total: 5,
47
+ records_pass: 4,
48
+ records_fail: 0,
49
+ records_degraded: 1,
50
+ records_not_applicable: 0,
51
+ policy_coverage_pct: 100,
52
+ instrumentation_surface_pct: 95.5,
53
+ instrumentation_surface_basis: 'LangGraph full_workflow adapter.',
54
+ },
55
+ gaps: [],
56
+ manifest_hashes: {
57
+ manifest_001: 'sha256:' + 'b'.repeat(64),
58
+ },
59
+ commitment_root: 'poseidon2:' + 'c'.repeat(64),
60
+ commitment_algorithm: 'poseidon2',
61
+ zk_proof: null,
62
+ issuer: {
63
+ signer_id: 'signer_test',
64
+ kid: kid,
65
+ algorithm: 'Ed25519',
66
+ public_key_url: 'https://primust.com/.well-known/primust-pubkeys/test.pem',
67
+ org_region: 'us',
68
+ },
69
+ timestamp_anchor: {
70
+ type: 'none',
71
+ tsa: 'none',
72
+ value: null,
73
+ },
74
+ transparency_log: {
75
+ rekor_log_id: null,
76
+ rekor_entry_url: null,
77
+ published_at: null,
78
+ },
79
+ issued_at: '2026-03-10T00:00:00Z',
80
+ pending_flags: {
81
+ signature_pending: false,
82
+ proof_pending: false,
83
+ zkml_proof_pending: false,
84
+ submission_pending: false,
85
+ rekor_pending: true,
86
+ },
87
+ test_mode: false,
88
+ };
89
+ return { ...base, ...overrides };
90
+ }
91
+ /**
92
+ * Create a fully signed artifact (body + signature field) using artifact-core.
93
+ * Returns the complete artifact as it would appear in a JSON file,
94
+ * plus the public key in base64url for verification.
95
+ */
96
+ function createSignedArtifact(overrides = {}) {
97
+ const { signerRecord, privateKey } = generateKeyPair('signer_test', 'org_test', 'artifact_signer');
98
+ const body = buildArtifactBody(signerRecord.kid, signerRecord.public_key_b64url, overrides);
99
+ // sign() returns { document, signatureEnvelope }
100
+ const { signatureEnvelope } = sign(body, privateKey, signerRecord);
101
+ // Assemble full artifact = body + signature field
102
+ const artifact = {
103
+ ...body,
104
+ signature: {
105
+ signer_id: signatureEnvelope.signer_id,
106
+ kid: signatureEnvelope.kid,
107
+ algorithm: signatureEnvelope.algorithm,
108
+ signature: signatureEnvelope.signature,
109
+ signed_at: signatureEnvelope.signed_at,
110
+ },
111
+ };
112
+ return { artifact, publicKeyB64Url: signerRecord.public_key_b64url };
113
+ }
114
+ // Temp directory for trust root PEMs
115
+ let tmpDir;
116
+ beforeEach(() => {
117
+ tmpDir = join(tmpdir(), `primust-test-${Date.now()}`);
118
+ mkdirSync(tmpDir, { recursive: true });
119
+ });
120
+ /**
121
+ * Write a trust root PEM file and return its path.
122
+ * For Ed25519, the "PEM" is just the raw base64url public key.
123
+ */
124
+ function writeTrustRoot(publicKeyB64Url) {
125
+ const pemPath = join(tmpDir, 'test-key.pem');
126
+ writeFileSync(pemPath, publicKeyB64Url, 'utf-8');
127
+ return pemPath;
128
+ }
129
+ // ── Verifier MUST PASS tests ──
130
+ describe('verify()', () => {
131
+ it('MUST PASS: valid signed artifact → valid: true', async () => {
132
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
133
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
134
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
135
+ expect(result.valid).toBe(true);
136
+ expect(result.errors).toHaveLength(0);
137
+ });
138
+ it('MUST PASS: tampered artifact → valid: false, integrity_check_failed', async () => {
139
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
140
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
141
+ // Tamper with a field after signing
142
+ artifact.org_id = 'org_tampered';
143
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
144
+ expect(result.valid).toBe(false);
145
+ expect(result.errors).toContain('integrity_check_failed');
146
+ });
147
+ it('MUST PASS: wrong kid → valid: false', async () => {
148
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
149
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
150
+ // Change issuer kid to something different from signature kid
151
+ const issuer = artifact.issuer;
152
+ issuer.kid = 'kid_wrong';
153
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
154
+ expect(result.valid).toBe(false);
155
+ expect(result.errors).toContain('kid_mismatch');
156
+ });
157
+ it('MUST PASS: reliance_mode in artifact → valid: false, banned_field_reliance_mode', async () => {
158
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
159
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
160
+ // Inject reliance_mode at top level
161
+ artifact.reliance_mode = 'full';
162
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
163
+ expect(result.valid).toBe(false);
164
+ expect(result.errors).toContain('banned_field_reliance_mode');
165
+ });
166
+ it('MUST PASS: proof_level != weakest_link → valid: false', async () => {
167
+ // Create artifact with mismatched proof_level (schema validation catches this)
168
+ const { artifact, publicKeyB64Url } = createSignedArtifact({
169
+ proof_level: 'mathematical',
170
+ // proof_distribution.weakest_link is still 'execution'
171
+ });
172
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
173
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
174
+ expect(result.valid).toBe(false);
175
+ // This is caught by schema validation as PROOF_LEVEL_MISMATCH
176
+ expect(result.errors.some((e) => e.includes('PROOF_LEVEL_MISMATCH'))).toBe(true);
177
+ });
178
+ it('MUST PASS: test_mode: true + production=true → valid: false', async () => {
179
+ const { artifact, publicKeyB64Url } = createSignedArtifact({ test_mode: true });
180
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
181
+ const result = await verify(artifact, {
182
+ skip_network: true,
183
+ trust_root: trustRoot,
184
+ production: true,
185
+ });
186
+ expect(result.valid).toBe(false);
187
+ expect(result.errors).toContain('test_mode_rejected_in_production');
188
+ });
189
+ it('MUST PASS: skip_network=true → zero HTTP calls', async () => {
190
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
191
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
192
+ // Spy on global fetch
193
+ const fetchSpy = vi.spyOn(globalThis, 'fetch');
194
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
195
+ expect(result.valid).toBe(true);
196
+ expect(fetchSpy).not.toHaveBeenCalled();
197
+ fetchSpy.mockRestore();
198
+ });
199
+ it('MUST PASS: all 5 proof levels parse correctly in VerificationResult', async () => {
200
+ const levels = ['mathematical', 'verifiable_inference', 'execution', 'witnessed', 'attestation'];
201
+ for (const level of levels) {
202
+ const { artifact, publicKeyB64Url } = createSignedArtifact({
203
+ proof_level: level,
204
+ proof_distribution: {
205
+ mathematical: 0,
206
+ verifiable_inference: 0,
207
+ execution: 0,
208
+ witnessed: 0,
209
+ attestation: 0,
210
+ [level]: 5,
211
+ weakest_link: level,
212
+ weakest_link_explanation: `All at ${level}`,
213
+ },
214
+ });
215
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
216
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
217
+ expect(result.proof_level).toBe(level);
218
+ }
219
+ });
220
+ it('MUST PASS: all 16 gap types parse correctly in gaps[]', async () => {
221
+ const gapTypes = [
222
+ 'check_not_executed', 'enforcement_override', 'engine_error', 'check_degraded',
223
+ 'external_boundary_traversal', 'lineage_token_missing', 'admission_gate_override',
224
+ 'check_timing_suspect', 'reviewer_credential_invalid', 'witnessed_display_missing',
225
+ 'witnessed_rationale_missing', 'deterministic_consistency_violation',
226
+ 'skip_rationale_missing', 'policy_config_drift', 'zkml_proof_pending_timeout',
227
+ 'zkml_proof_failed',
228
+ ];
229
+ const gaps = gapTypes.map((gt, i) => ({
230
+ gap_id: `gap_${i}`,
231
+ gap_type: gt,
232
+ severity: 'Medium',
233
+ }));
234
+ const { artifact, publicKeyB64Url } = createSignedArtifact({ gaps });
235
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
236
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
237
+ expect(result.valid).toBe(true);
238
+ expect(result.gaps).toHaveLength(16);
239
+ for (let i = 0; i < gapTypes.length; i++) {
240
+ expect(result.gaps[i].gap_type).toBe(gapTypes[i]);
241
+ }
242
+ });
243
+ it('MUST PASS: manifest_hashes as array → parse error', async () => {
244
+ const { artifact, publicKeyB64Url } = createSignedArtifact({
245
+ manifest_hashes: ['sha256:' + 'a'.repeat(64)],
246
+ });
247
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
248
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
249
+ expect(result.valid).toBe(false);
250
+ expect(result.errors).toContain('manifest_hashes_not_object');
251
+ });
252
+ it('MUST PASS: mathematical proof_level + missing ZK verifier → error', async () => {
253
+ const { artifact, publicKeyB64Url } = createSignedArtifact({
254
+ proof_level: 'mathematical',
255
+ proof_distribution: {
256
+ mathematical: 5,
257
+ verifiable_inference: 0,
258
+ execution: 0,
259
+ witnessed: 0,
260
+ attestation: 0,
261
+ weakest_link: 'mathematical',
262
+ weakest_link_explanation: 'All at mathematical',
263
+ },
264
+ zk_proof: {
265
+ proving_system: 'ultrahonk',
266
+ proof: 'dGVzdA==',
267
+ public_inputs: ['0x01'],
268
+ verification_key: 'dGVzdA==',
269
+ },
270
+ });
271
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
272
+ // bb.js is not installed — verifyUltraHonk returns null
273
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
274
+ expect(result.valid).toBe(true);
275
+ expect(result.warnings).toContain('zk_proof_verifier_unavailable');
276
+ });
277
+ it('test_mode: true + non-production → valid with warning', async () => {
278
+ const { artifact, publicKeyB64Url } = createSignedArtifact({ test_mode: true });
279
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
280
+ const result = await verify(artifact, { skip_network: true, trust_root: trustRoot });
281
+ expect(result.valid).toBe(true);
282
+ expect(result.warnings).toContain('test_credential');
283
+ });
284
+ });
285
+ // ── CLI MUST PASS tests ──
286
+ describe('CLI (main)', () => {
287
+ function writeArtifactFile(artifact) {
288
+ const filePath = join(tmpDir, 'artifact.json');
289
+ writeFileSync(filePath, JSON.stringify(artifact, null, 2), 'utf-8');
290
+ return filePath;
291
+ }
292
+ it('MUST PASS: valid artifact → exit 0', async () => {
293
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
294
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
295
+ const filePath = writeArtifactFile(artifact);
296
+ const code = await main([filePath, '--skip-network', '--trust-root', trustRoot]);
297
+ expect(code).toBe(0);
298
+ });
299
+ it('MUST PASS: tampered artifact → exit 1', async () => {
300
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
301
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
302
+ artifact.org_id = 'tampered';
303
+ const filePath = writeArtifactFile(artifact);
304
+ const code = await main([filePath, '--skip-network', '--trust-root', trustRoot]);
305
+ expect(code).toBe(1);
306
+ });
307
+ it('MUST PASS: file not found → exit 2', async () => {
308
+ const code = await main(['/nonexistent/file.json', '--skip-network']);
309
+ expect(code).toBe(2);
310
+ });
311
+ it('MUST PASS: --production + test_mode: true → exit 1', async () => {
312
+ const { artifact, publicKeyB64Url } = createSignedArtifact({ test_mode: true });
313
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
314
+ const filePath = writeArtifactFile(artifact);
315
+ const code = await main([filePath, '--production', '--skip-network', '--trust-root', trustRoot]);
316
+ expect(code).toBe(1);
317
+ });
318
+ it('MUST PASS: --json emits valid VerificationResult JSON', async () => {
319
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
320
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
321
+ const filePath = writeArtifactFile(artifact);
322
+ // Capture stdout
323
+ const logs = [];
324
+ const origLog = console.log;
325
+ console.log = (...args) => logs.push(args.join(' '));
326
+ const code = await main([filePath, '--json', '--skip-network', '--trust-root', trustRoot]);
327
+ console.log = origLog;
328
+ expect(code).toBe(0);
329
+ const output = JSON.parse(logs.join('\n'));
330
+ expect(output.valid).toBe(true);
331
+ expect(output.vpec_id).toBe('vpec_00000000-0000-0000-0000-000000000001');
332
+ expect(output.errors).toEqual([]);
333
+ });
334
+ it('MUST PASS: all 5 proof levels display correctly in human output', async () => {
335
+ const levels = ['mathematical', 'verifiable_inference', 'execution', 'witnessed', 'attestation'];
336
+ const expected = ['mathematical', 'verifiable_inference', 'execution', 'witnessed', 'attestation'];
337
+ for (let i = 0; i < levels.length; i++) {
338
+ const { artifact, publicKeyB64Url } = createSignedArtifact({
339
+ proof_level: levels[i],
340
+ proof_distribution: {
341
+ mathematical: 0,
342
+ verifiable_inference: 0,
343
+ execution: 0,
344
+ witnessed: 0,
345
+ attestation: 0,
346
+ [levels[i]]: 5,
347
+ weakest_link: levels[i],
348
+ weakest_link_explanation: `All at ${levels[i]}`,
349
+ },
350
+ });
351
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
352
+ const filePath = writeArtifactFile(artifact);
353
+ const logs = [];
354
+ const origLog = console.log;
355
+ console.log = (...args) => logs.push(args.join(' '));
356
+ await main([filePath, '--skip-network', '--trust-root', trustRoot]);
357
+ console.log = origLog;
358
+ const output = logs.join('\n');
359
+ expect(output).toContain(expected[i]);
360
+ }
361
+ });
362
+ it('MUST PASS: --skip-network → zero HTTP calls', async () => {
363
+ const { artifact, publicKeyB64Url } = createSignedArtifact();
364
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
365
+ const filePath = writeArtifactFile(artifact);
366
+ const fetchSpy = vi.spyOn(globalThis, 'fetch');
367
+ await main([filePath, '--skip-network', '--trust-root', trustRoot]);
368
+ expect(fetchSpy).not.toHaveBeenCalled();
369
+ fetchSpy.mockRestore();
370
+ });
371
+ it('MUST PASS: verifiable_inference renders as "verifiable_inference" in human output', async () => {
372
+ const { artifact, publicKeyB64Url } = createSignedArtifact({
373
+ proof_level: 'verifiable_inference',
374
+ proof_distribution: {
375
+ mathematical: 0,
376
+ verifiable_inference: 5,
377
+ execution: 0,
378
+ witnessed: 0,
379
+ attestation: 0,
380
+ weakest_link: 'verifiable_inference',
381
+ weakest_link_explanation: 'All at verifiable_inference',
382
+ },
383
+ });
384
+ const trustRoot = writeTrustRoot(publicKeyB64Url);
385
+ const filePath = writeArtifactFile(artifact);
386
+ const logs = [];
387
+ const origLog = console.log;
388
+ console.log = (...args) => logs.push(args.join(' '));
389
+ await main([filePath, '--skip-network', '--trust-root', trustRoot]);
390
+ console.log = origLog;
391
+ const output = logs.join('\n');
392
+ expect(output).toContain('verifiable_inference');
393
+ });
394
+ });
395
+ //# sourceMappingURL=verifier.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifier.test.js","sourceRoot":"","sources":["../src/verifier.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * verify.html template generator for Evidence Pack output.
3
+ *
4
+ * Generates a self-contained HTML file that:
5
+ * 1. Embeds the Ed25519 public key
6
+ * 2. Pre-loads the Evidence Pack summary
7
+ * 3. Verifies using WebCrypto API on page load
8
+ * 4. Works completely offline
9
+ * 5. Shows chain of VPECs with verification status
10
+ */
11
+ export interface VerifyHtmlOptions {
12
+ publicKeyB64: string;
13
+ packData: {
14
+ pack_id: string;
15
+ org_id: string;
16
+ period_start: string;
17
+ period_end: string;
18
+ vpec_count: number;
19
+ vpecs: Array<{
20
+ vpec_id: string;
21
+ proof_level_floor: string;
22
+ provable_surface: number;
23
+ gap_count: number;
24
+ issued_at: string;
25
+ environment: string;
26
+ signature: string;
27
+ signed_payload: string;
28
+ }>;
29
+ provable_surface_summary: {
30
+ mathematical: number;
31
+ execution: number;
32
+ witnessed: number;
33
+ attestation: number;
34
+ };
35
+ upstream_vpecs?: Array<{
36
+ vpec_id: string;
37
+ org_id: string;
38
+ proof_level_floor: string;
39
+ signature: string;
40
+ signed_payload: string;
41
+ }>;
42
+ };
43
+ }
44
+ export declare function generateVerifyHtml(options: VerifyHtmlOptions): string;
45
+ //# sourceMappingURL=verify-html-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-html-template.d.ts","sourceRoot":"","sources":["../src/verify-html-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,gBAAgB,EAAE,MAAM,CAAC;YACzB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC,CAAC;QACH,wBAAwB,EAAE;YACxB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,cAAc,CAAC,EAAE,KAAK,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,iBAAiB,EAAE,MAAM,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC;YAClB,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA2KrE"}