@productbrain/cli 0.1.0-beta.2140 → 0.1.0-beta.2149
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/dist/__tests__/entry-formatter.test.js +30 -0
- package/dist/__tests__/entry-formatter.test.js.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.generated.js +9 -0
- package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.test.d.ts +4 -2
- package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.test.js +29 -8
- package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -1
- package/dist/formatters/entry.d.ts +7 -0
- package/dist/formatters/entry.d.ts.map +1 -1
- package/dist/formatters/entry.js +4 -1
- package/dist/formatters/entry.js.map +1 -1
- package/package.json +1 -1
|
@@ -49,4 +49,34 @@ describe('formatEntry — Verification line', () => {
|
|
|
49
49
|
expect(output).not.toContain('— by legacy — unclassified');
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
|
+
// WP-D (attestation spec §7.2): the ledger stays append-only — the false history
|
|
53
|
+
// sentence stays as written; the server-derived qualifier renders BESIDE it.
|
|
54
|
+
describe('formatEntry — History legacy qualifier', () => {
|
|
55
|
+
it('renders the server-shipped qualifier beside a legacy verified event', () => {
|
|
56
|
+
const output = formatEntry(baseEntry({
|
|
57
|
+
history: [
|
|
58
|
+
{
|
|
59
|
+
timestamp: Date.UTC(2026, 2, 1),
|
|
60
|
+
event: 'verified',
|
|
61
|
+
changedBy: 'Randy Hereman',
|
|
62
|
+
note: 'Entry verified by Randy Hereman',
|
|
63
|
+
legacyQualifier: 'legacy record — reads as delegated (assumed delegated — never attributed)',
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
}));
|
|
67
|
+
// The original sentence is preserved…
|
|
68
|
+
expect(output).toContain('Entry verified by Randy Hereman');
|
|
69
|
+
// …and the honest qualifier renders beside it.
|
|
70
|
+
expect(output).toContain('[legacy record — reads as delegated (assumed delegated — never attributed)]');
|
|
71
|
+
});
|
|
72
|
+
it('adds no qualifier when the server ships none (genuine attestation / old server)', () => {
|
|
73
|
+
const output = formatEntry(baseEntry({
|
|
74
|
+
history: [
|
|
75
|
+
{ timestamp: Date.UTC(2026, 6, 1), event: 'verified', changedBy: 'agent:sess1', note: 'Entry verified by agent for Randy Hereman' },
|
|
76
|
+
],
|
|
77
|
+
}));
|
|
78
|
+
expect(output).toContain('Entry verified by agent for Randy Hereman');
|
|
79
|
+
expect(output).not.toContain('[legacy');
|
|
80
|
+
});
|
|
81
|
+
});
|
|
52
82
|
//# sourceMappingURL=entry-formatter.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-formatter.test.js","sourceRoot":"","sources":["../../src/__tests__/entry-formatter.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAC;AAExE,SAAS,SAAS,CAAC,YAAmC,EAAE;IACvD,OAAO;QACN,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,eAAe;QACrB,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,QAAQ;QAChB,GAAG,SAAS;KACZ,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC/E,MAAM,MAAM,GAAG,WAAW,CACzB,SAAS,CAAC;YACT,kBAAkB,EAAE,UAAU;YAC9B,UAAU,EAAE,yBAAyB;YACrC,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;SACtC,CAAC,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iEAAiE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6FAA6F,EAAE,GAAG,EAAE;QACtG,MAAM,MAAM,GAAG,WAAW,CACzB,SAAS,CAAC;YACT,kBAAkB,EAAE,UAAU;SAC9B,CAAC,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC7E,MAAM,MAAM,GAAG,WAAW,CACzB,SAAS,CAAC;YACT,kBAAkB,EAAE,YAAY;SAChC,CAAC,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,iFAAiF;IACjF,4EAA4E;IAC5E,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,WAAW,CACzB,SAAS,CAAC;YACT,kBAAkB,EAAE,UAAU;YAC9B,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,EAAE;SACpE,CAAC,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"entry-formatter.test.js","sourceRoot":"","sources":["../../src/__tests__/entry-formatter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seedRegistryEntries.generated.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC/D,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,WAAW,EAAE,aAAa,CACzB,WAAW,GAAG,WAAW,GAAG,oBAAoB,GAAG,kBAAkB,CACrE,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,6BAA6B,EAAE,SAAS,uBAAuB,
|
|
1
|
+
{"version":3,"file":"seedRegistryEntries.generated.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC/D,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,WAAW,EAAE,aAAa,CACzB,WAAW,GAAG,WAAW,GAAG,oBAAoB,GAAG,kBAAkB,CACrE,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,6BAA6B,EAAE,SAAS,uBAAuB,EAiJ3E,CAAC"}
|
|
@@ -77,6 +77,15 @@ export const REGISTRY_SEED_COMMAND_ENTRIES = [
|
|
|
77
77
|
triggerKind: ['on-create', 'on-demand'],
|
|
78
78
|
runnable: true,
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
name: 'seed-build-authorization-rule',
|
|
82
|
+
description: 'Seed the build-authorization business rule ("Builds point at their authorization") into the business-rules collection — the workspace copy the pre-build librarian gate cites.',
|
|
83
|
+
requiresWorkspaceId: true,
|
|
84
|
+
dryRunSupported: false,
|
|
85
|
+
level: 'platform',
|
|
86
|
+
triggerKind: ['on-create', 'on-demand'],
|
|
87
|
+
runnable: true,
|
|
88
|
+
},
|
|
80
89
|
{
|
|
81
90
|
name: 'migrate-setup-skill-entryid',
|
|
82
91
|
description: 'Repair (S1a): rename legacy SETUP-SKILL-PRODUCTBRAIN → SKILL-pb-setup and stamp canonicalKey="skill".',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seedRegistryEntries.generated.js","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.generated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seedRegistryEntries.generated.js","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Tests for the WP-433 S1b D13 generated CLI bridge.
|
|
3
3
|
*
|
|
4
4
|
* Verifies:
|
|
5
|
-
* - generated file
|
|
5
|
+
* - the committed generated file matches the codegen output re-run against the
|
|
6
|
+
* registry source (REAL drift detection — WP-480 S4, FEAT-1361; the prior
|
|
7
|
+
* header claimed this but no test diffed the source, and the committed file
|
|
8
|
+
* had gone stale by one whole entry, caught live during S4)
|
|
6
9
|
* - the prestep is marked runnable=false (transactional ops cannot run from action ctx)
|
|
7
10
|
* - all repair ops are present and surfaced via the generated list
|
|
8
|
-
* - the codegen script's output matches what's committed (drift detection)
|
|
9
11
|
*/
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=seedRegistryEntries.test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seedRegistryEntries.test.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"seedRegistryEntries.test.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -2,18 +2,38 @@
|
|
|
2
2
|
* Tests for the WP-433 S1b D13 generated CLI bridge.
|
|
3
3
|
*
|
|
4
4
|
* Verifies:
|
|
5
|
-
* - generated file
|
|
5
|
+
* - the committed generated file matches the codegen output re-run against the
|
|
6
|
+
* registry source (REAL drift detection — WP-480 S4, FEAT-1361; the prior
|
|
7
|
+
* header claimed this but no test diffed the source, and the committed file
|
|
8
|
+
* had gone stale by one whole entry, caught live during S4)
|
|
6
9
|
* - the prestep is marked runnable=false (transactional ops cannot run from action ctx)
|
|
7
10
|
* - all repair ops are present and surfaced via the generated list
|
|
8
|
-
* - the codegen script's output matches what's committed (drift detection)
|
|
9
11
|
*/
|
|
10
12
|
import { describe, it, expect } from 'vitest';
|
|
13
|
+
import { readFileSync } from 'node:fs';
|
|
14
|
+
import { join, dirname } from 'node:path';
|
|
15
|
+
import { fileURLToPath } from 'node:url';
|
|
16
|
+
// The extraction+emit pipeline is imported from the generator itself so test and
|
|
17
|
+
// codegen can never disagree about what the rule is (INS-2177 rule-fingerprint).
|
|
18
|
+
// @ts-expect-error — plain .mjs module without type declarations
|
|
19
|
+
import { extractEntries, emit } from '../../../scripts/generate-seed-commands.mjs';
|
|
11
20
|
import { REGISTRY_SEED_COMMAND_ENTRIES } from './seedRegistryEntries.generated.js';
|
|
21
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
|
+
const REGISTRY_PATH = join(__dirname, '..', '..', '..', '..', '..', 'convex', 'admin', 'seed', 'registry.ts');
|
|
23
|
+
const GENERATED_PATH = join(__dirname, 'seedRegistryEntries.generated.ts');
|
|
12
24
|
describe('REGISTRY_SEED_COMMAND_ENTRIES', () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
25
|
+
// WP-480 S4 (FEAT-1361): the drift check this file always claimed to have.
|
|
26
|
+
// On failure: `npm run codegen` from packages/cli, commit the regenerated file.
|
|
27
|
+
it('committed generated file matches codegen re-run against convex/admin/seed/registry.ts — on failure, run `npm run codegen`', () => {
|
|
28
|
+
const source = readFileSync(REGISTRY_PATH, 'utf-8');
|
|
29
|
+
const entries = extractEntries(source);
|
|
30
|
+
// The extraction rule itself failing is drift too (registry shape changed).
|
|
31
|
+
expect(entries.length).toBeGreaterThanOrEqual(11);
|
|
32
|
+
expect(readFileSync(GENERATED_PATH, 'utf-8')).toBe(emit(entries));
|
|
33
|
+
});
|
|
34
|
+
it('entry count matches the registry source total (derived, not pinned)', () => {
|
|
35
|
+
const source = readFileSync(REGISTRY_PATH, 'utf-8');
|
|
36
|
+
expect(REGISTRY_SEED_COMMAND_ENTRIES.length).toBe(extractEntries(source).length);
|
|
17
37
|
});
|
|
18
38
|
it('marks the transactional-prestep as runnable=false', () => {
|
|
19
39
|
// WP-433 S1b M1 fix: generated names are bare slugs (no seed: prefix) to avoid
|
|
@@ -53,8 +73,9 @@ describe('REGISTRY_SEED_COMMAND_ENTRIES', () => {
|
|
|
53
73
|
});
|
|
54
74
|
it('all platform ops are level=platform', () => {
|
|
55
75
|
const platform = REGISTRY_SEED_COMMAND_ENTRIES.filter((e) => e.level === 'platform');
|
|
56
|
-
// 1 prestep +
|
|
57
|
-
|
|
76
|
+
// 1 prestep + 8 scheduled platform (WP-441 added seed-import-flow-defaults;
|
|
77
|
+
// WP-480 S4 caught the stale file missing seed-build-authorization-rule) = 9
|
|
78
|
+
expect(platform.length).toBe(9);
|
|
58
79
|
});
|
|
59
80
|
it('every entry has a non-empty description', () => {
|
|
60
81
|
for (const e of REGISTRY_SEED_COMMAND_ENTRIES) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seedRegistryEntries.test.js","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"seedRegistryEntries.test.js","sourceRoot":"","sources":["../../../src/commands/admin/seedRegistryEntries.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,13 @@ export interface EntryHistoryEvent {
|
|
|
9
9
|
event: string;
|
|
10
10
|
changedBy?: string;
|
|
11
11
|
note?: string;
|
|
12
|
+
/**
|
|
13
|
+
* WP-D (attestation spec §7.2): server-derived honest qualifier on legacy 'verified'
|
|
14
|
+
* rows. The ledger note may carry a false attribution — this renders beside it.
|
|
15
|
+
* Optional — old server omits it (spec §11 rollout rule). Shipped rendered; the
|
|
16
|
+
* published CLI never re-derives (spec §5).
|
|
17
|
+
*/
|
|
18
|
+
legacyQualifier?: string;
|
|
12
19
|
}
|
|
13
20
|
export interface EntryFromApi {
|
|
14
21
|
entryId?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/formatters/entry.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/formatters/entry.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IACxC,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAC/C,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,eAAe,GAAG,aAAa,GAAG,OAAO,CAAC;IACvD,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAUD,iHAAiH;AACjH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA6HvD"}
|
package/dist/formatters/entry.js
CHANGED
|
@@ -125,7 +125,10 @@ export function formatEntry(entry) {
|
|
|
125
125
|
lines.push('History (last 10):');
|
|
126
126
|
for (const h of last10) {
|
|
127
127
|
const date = new Date(h.timestamp).toISOString().split('T')[0];
|
|
128
|
-
|
|
128
|
+
// WP-D (spec §7.2): the qualifier renders beside a legacy verify event — the ledger
|
|
129
|
+
// sentence stays as written (append-only), the display stops lying.
|
|
130
|
+
const qualifier = h.legacyQualifier ? ` [${s(h.legacyQualifier)}]` : '';
|
|
131
|
+
lines.push(` ${date}: ${s(h.event)}${h.changedBy ? ` (${s(h.changedBy)})` : ''}${h.note ? ` — ${s(h.note)}` : ''}${qualifier}`);
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
return lines.join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/formatters/entry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/formatters/entry.ts"],"names":[],"mappings":"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"}
|