@mmnto/totem 1.118.1 → 1.120.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 (118) hide show
  1. package/dist/artifacts/admission.d.ts +12 -12
  2. package/dist/artifacts/verdict.d.ts +16 -16
  3. package/dist/compile-manifest.d.ts +89 -0
  4. package/dist/compile-manifest.d.ts.map +1 -1
  5. package/dist/compile-manifest.js +180 -31
  6. package/dist/compile-manifest.js.map +1 -1
  7. package/dist/compile-manifest.test.js +169 -1
  8. package/dist/compile-manifest.test.js.map +1 -1
  9. package/dist/compile-smoke-gate.d.ts +23 -0
  10. package/dist/compile-smoke-gate.d.ts.map +1 -1
  11. package/dist/compile-smoke-gate.js +139 -8
  12. package/dist/compile-smoke-gate.js.map +1 -1
  13. package/dist/compile-smoke-gate.test.js +431 -0
  14. package/dist/compile-smoke-gate.test.js.map +1 -1
  15. package/dist/compiler-schema.d.ts +1067 -0
  16. package/dist/compiler-schema.d.ts.map +1 -1
  17. package/dist/compiler-schema.js +204 -1
  18. package/dist/compiler-schema.js.map +1 -1
  19. package/dist/compiler-schema.test.js +92 -0
  20. package/dist/compiler-schema.test.js.map +1 -1
  21. package/dist/compiler.d.ts +2 -6
  22. package/dist/compiler.d.ts.map +1 -1
  23. package/dist/compiler.js +6 -17
  24. package/dist/compiler.js.map +1 -1
  25. package/dist/freeze.d.ts +3 -3
  26. package/dist/index.d.ts +12 -3
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +6 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/ledger.d.ts +12 -12
  31. package/dist/recurrence-stats.d.ts +10 -10
  32. package/dist/regex-safety/apply-rules-bounded.d.ts +11 -0
  33. package/dist/regex-safety/apply-rules-bounded.d.ts.map +1 -1
  34. package/dist/regex-safety/apply-rules-bounded.js +59 -5
  35. package/dist/regex-safety/apply-rules-bounded.js.map +1 -1
  36. package/dist/regex-validation.d.ts +7 -0
  37. package/dist/regex-validation.d.ts.map +1 -0
  38. package/dist/regex-validation.js +32 -0
  39. package/dist/regex-validation.js.map +1 -0
  40. package/dist/rule-engine.d.ts +11 -1
  41. package/dist/rule-engine.d.ts.map +1 -1
  42. package/dist/rule-engine.js +125 -18
  43. package/dist/rule-engine.js.map +1 -1
  44. package/dist/spine/authored-rule.d.ts +687 -263
  45. package/dist/spine/authored-rule.d.ts.map +1 -1
  46. package/dist/spine/authored-rule.js +113 -27
  47. package/dist/spine/authored-rule.js.map +1 -1
  48. package/dist/spine/authored-rule.test.js +170 -4
  49. package/dist/spine/authored-rule.test.js.map +1 -1
  50. package/dist/spine/authoring-ledger.d.ts +83 -24
  51. package/dist/spine/authoring-ledger.d.ts.map +1 -1
  52. package/dist/spine/authoring-ledger.js +46 -25
  53. package/dist/spine/authoring-ledger.js.map +1 -1
  54. package/dist/spine/authoring-ledger.test.js +20 -7
  55. package/dist/spine/authoring-ledger.test.js.map +1 -1
  56. package/dist/spine/candidate-rule.d.ts +18 -1
  57. package/dist/spine/candidate-rule.d.ts.map +1 -1
  58. package/dist/spine/candidate-rule.js.map +1 -1
  59. package/dist/spine/cert-corpus-seed.d.ts +14 -14
  60. package/dist/spine/compile.d.ts +4 -1
  61. package/dist/spine/compile.d.ts.map +1 -1
  62. package/dist/spine/compile.js +50 -3
  63. package/dist/spine/compile.js.map +1 -1
  64. package/dist/spine/compile.test.js +189 -23
  65. package/dist/spine/compile.test.js.map +1 -1
  66. package/dist/spine/frozen-split.d.ts +18 -18
  67. package/dist/spine/ledgers.d.ts +62 -62
  68. package/dist/spine/lf-normalize.d.ts +9 -0
  69. package/dist/spine/lf-normalize.d.ts.map +1 -0
  70. package/dist/spine/lf-normalize.js +38 -0
  71. package/dist/spine/lf-normalize.js.map +1 -0
  72. package/dist/spine/preimage-differential.d.ts +3 -1
  73. package/dist/spine/preimage-differential.d.ts.map +1 -1
  74. package/dist/spine/preimage-differential.js +9 -6
  75. package/dist/spine/preimage-differential.js.map +1 -1
  76. package/dist/spine/preimage-differential.test.js +59 -0
  77. package/dist/spine/preimage-differential.test.js.map +1 -1
  78. package/dist/spine/record-exemplars.fixture.d.ts +5 -0
  79. package/dist/spine/record-exemplars.fixture.d.ts.map +1 -0
  80. package/dist/spine/record-exemplars.fixture.js +61 -0
  81. package/dist/spine/record-exemplars.fixture.js.map +1 -0
  82. package/dist/spine/record-lower.d.ts +90 -0
  83. package/dist/spine/record-lower.d.ts.map +1 -0
  84. package/dist/spine/record-lower.js +418 -0
  85. package/dist/spine/record-lower.js.map +1 -0
  86. package/dist/spine/record-lower.test.d.ts +2 -0
  87. package/dist/spine/record-lower.test.d.ts.map +1 -0
  88. package/dist/spine/record-lower.test.js +562 -0
  89. package/dist/spine/record-lower.test.js.map +1 -0
  90. package/dist/spine/record-runtime.d.ts +215 -0
  91. package/dist/spine/record-runtime.d.ts.map +1 -0
  92. package/dist/spine/record-runtime.js +330 -0
  93. package/dist/spine/record-runtime.js.map +1 -0
  94. package/dist/spine/record-runtime.test.d.ts +2 -0
  95. package/dist/spine/record-runtime.test.d.ts.map +1 -0
  96. package/dist/spine/record-runtime.test.js +814 -0
  97. package/dist/spine/record-runtime.test.js.map +1 -0
  98. package/dist/spine/rule-record.d.ts +864 -0
  99. package/dist/spine/rule-record.d.ts.map +1 -0
  100. package/dist/spine/rule-record.js +781 -0
  101. package/dist/spine/rule-record.js.map +1 -0
  102. package/dist/spine/rule-record.test.d.ts +2 -0
  103. package/dist/spine/rule-record.test.d.ts.map +1 -0
  104. package/dist/spine/rule-record.test.js +1262 -0
  105. package/dist/spine/rule-record.test.js.map +1 -0
  106. package/dist/spine/windtunnel-firing.d.ts.map +1 -1
  107. package/dist/spine/windtunnel-firing.js +28 -1
  108. package/dist/spine/windtunnel-firing.js.map +1 -1
  109. package/dist/spine/windtunnel-lock.d.ts +26 -26
  110. package/dist/stage4-verifier.d.ts.map +1 -1
  111. package/dist/stage4-verifier.js +61 -17
  112. package/dist/stage4-verifier.js.map +1 -1
  113. package/dist/sys/glob.d.ts +30 -0
  114. package/dist/sys/glob.d.ts.map +1 -1
  115. package/dist/sys/glob.js +62 -1
  116. package/dist/sys/glob.js.map +1 -1
  117. package/dist/types.d.ts +1 -1
  118. package/package.json +1 -1
@@ -210,6 +210,65 @@ describe('evaluatePreimageDifferential — commit source is a typed deferral (sl
210
210
  expect(result.reason).toContain('slice C2');
211
211
  });
212
212
  });
213
+ // ─── Prop 310 § Design 10 — the record source classifies exactly as `lesson` ──
214
+ describe('evaluatePreimageDifferential — record source (Prop 310 slice 3)', () => {
215
+ /** The DERIVED record fixture: same inline exemplars, the (ruleId, ordinal) join. */
216
+ function recordFixture(badExample, goodExample) {
217
+ return {
218
+ pr: 130,
219
+ preimageSource: {
220
+ kind: 'record',
221
+ ruleId: '0123456789abcdef',
222
+ ordinal: 0,
223
+ pairHash: 'f'.repeat(64),
224
+ badExample,
225
+ goodExample,
226
+ },
227
+ filePath: 'src/sim/level.rs',
228
+ matchedSpan: 'L10-L12',
229
+ contentHash: 'abc123def456',
230
+ };
231
+ }
232
+ it('classifies a record source EXACTLY as the lesson source does, for every outcome', async () => {
233
+ // The design's word is "evaluated exactly as `lesson`". Asserted as an EQUALITY
234
+ // against the lesson result (modulo the `sourceKind` label), across the whole
235
+ // outcome vocabulary — a per-outcome spot check would let one branch drift.
236
+ const cases = [
237
+ ['console.log("debug")', 'logger.info("ok")'], // differential-holds
238
+ ['logger.info("ok")', 'console.log("debug")'], // fix-shaped
239
+ ['console.log("a")', 'console.log("b")'], // over-match
240
+ ['logger.info("a")', 'logger.warn("b")'], // vacuous-silent
241
+ ];
242
+ for (const [bad, good] of cases) {
243
+ const viaLesson = await evaluatePreimageDifferential(regexRule(), lessonFixture(bad, good));
244
+ const viaRecord = await evaluatePreimageDifferential(regexRule(), recordFixture(bad, good));
245
+ expect(viaRecord).toEqual({ ...viaLesson, sourceKind: 'record' });
246
+ }
247
+ // …and the four cases really did cover four DISTINCT outcomes, so the equality
248
+ // above is not four repetitions of one branch.
249
+ const outcomes = new Set();
250
+ for (const [bad, good] of cases) {
251
+ outcomes.add((await evaluatePreimageDifferential(regexRule(), recordFixture(bad, good))).outcome);
252
+ }
253
+ expect(outcomes).toEqual(new Set(['differential-holds', 'fix-shaped', 'over-match', 'vacuous-silent']));
254
+ });
255
+ it('reports sourceKind `record`, never the lesson label', async () => {
256
+ const result = await evaluatePreimageDifferential(regexRule(), recordFixture('console.log("debug")', 'logger.info("ok")'));
257
+ expect(result.outcome).toBe('differential-holds');
258
+ expect(result.sourceKind).toBe('record');
259
+ });
260
+ it('carries the § Design 8 exemplar through an ast-grep rule identically', async () => {
261
+ const result = await evaluatePreimageDifferential(astGrepRule(), recordFixture('debugger;\n', 'const x = 1;\n'));
262
+ expect(result.outcome).toBe('differential-holds');
263
+ expect(result.sourceKind).toBe('record');
264
+ });
265
+ it('a whitespace-only side is needs-adjudication on the record source too', async () => {
266
+ const result = await evaluatePreimageDifferential(regexRule(), recordFixture('console.log("bad")', ' \n '));
267
+ expect(result.outcome).toBe('needs-adjudication');
268
+ expect(result.sourceKind).toBe('record');
269
+ expect(result.reason).toContain('goodExample');
270
+ });
271
+ });
213
272
  // ─── determinism (Tenet-15) ─────────────────────────
214
273
  describe('evaluatePreimageDifferential — determinism', () => {
215
274
  it('is a pure function of (rule, fixture): identical inputs yield identical results', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"preimage-differential.test.js","sourceRoot":"","sources":["../../src/spine/preimage-differential.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preimage-differential.test.js","sourceRoot":"","sources":["../../src/spine/preimage-differential.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Prop 310 § Design 4's exemplar — a compound ast-grep record with every optional block. */
2
+ export declare function design4ExemplarRecord(): Record<string, unknown>;
3
+ /** Prop 310 § Design 8's exemplar — the absence / must-contain shape (the census's rule (c)). */
4
+ export declare function design8ExemplarRecord(): Record<string, unknown>;
5
+ //# sourceMappingURL=record-exemplars.fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-exemplars.fixture.d.ts","sourceRoot":"","sources":["../../src/spine/record-exemplars.fixture.ts"],"names":[],"mappings":"AAkBA,6FAA6F;AAC7F,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0B/D;AAED,iGAAiG;AACjG,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa/D"}
@@ -0,0 +1,61 @@
1
+ // ─── Prop 310's two spec exemplars, transcribed ONCE ─────────────────────────
2
+ //
3
+ // § Design 4's coherent record and § Design 8's `requires:` record are the
4
+ // spec's own worked examples, and § Design 14's normativity flip makes them
5
+ // normative: an implementation that cannot round-trip them is the bug. Both the
6
+ // lowering suite and the runtime suite exercise them, so they are single-homed
7
+ // here rather than transcribed twice (Tenet 20 — two hand-maintained copies of a
8
+ // normative fixture is how one silently drifts from the spec).
9
+ //
10
+ // NOT a test file (`*.fixture.ts` is outside vitest's `src/**\/*.test.ts`
11
+ // include) and deliberately NOT barrel-exported: this is conformance material,
12
+ // not public API. It is a plain module rather than a test-file export so that
13
+ // importing it cannot re-register another suite's `describe` blocks.
14
+ //
15
+ // Comments are stripped and YAML block scalars are resolved to their parsed
16
+ // values, since these are the PARSED shapes; slice 1's suite carries the same
17
+ // two records in their literal YAML form.
18
+ /** Prop 310 § Design 4's exemplar — a compound ast-grep record with every optional block. */
19
+ export function design4ExemplarRecord() {
20
+ return {
21
+ schemaVersion: 1,
22
+ severity: 'error',
23
+ message: 'Catch blocks must re-throw or route the error — fail-open catch is banned.',
24
+ recoveryHint: 'Re-throw after logging, or route to the error channel.',
25
+ target: {
26
+ type: 'ast-grep',
27
+ language: 'typescript',
28
+ rule: { kind: 'catch_clause', not: { has: { kind: 'throw_statement', stopBy: 'end' } } },
29
+ scope: { fileGlobs: ['packages/**/*.ts'], excludeGlobs: ['**/*.test.ts'] },
30
+ },
31
+ examples: [
32
+ {
33
+ bad: 'try { risky() } catch (e) { log(e) }',
34
+ good: 'try { risky() } catch (e) { log(e); throw e }',
35
+ },
36
+ ],
37
+ curation: {
38
+ sourceLesson: 'lesson-77c5e668389fb1a2',
39
+ curatedBy: 'strategy-gemini',
40
+ curatedAt: '2026-06-15T14:00:00Z',
41
+ baseline5Phase: 3,
42
+ },
43
+ verification_shadow: { type: 'rego', source: 'package totem.rules.example\n' },
44
+ };
45
+ }
46
+ /** Prop 310 § Design 8's exemplar — the absence / must-contain shape (the census's rule (c)). */
47
+ export function design8ExemplarRecord() {
48
+ return {
49
+ schemaVersion: 1,
50
+ severity: 'warning',
51
+ message: 'git output-consuming commands must pin LC_ALL=C on the same line.',
52
+ target: {
53
+ type: 'regex',
54
+ pattern: '\\bgit\\s+(log|diff|status)\\b',
55
+ scope: { fileGlobs: ['**/*.sh', '**/*.cjs'] },
56
+ },
57
+ requires: { pattern: 'LC_ALL=C', scope: 'line' },
58
+ examples: [{ bad: 'git log --oneline', good: 'LC_ALL=C git log --oneline' }],
59
+ };
60
+ }
61
+ //# sourceMappingURL=record-exemplars.fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-exemplars.fixture.js","sourceRoot":"","sources":["../../src/spine/record-exemplars.fixture.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,+DAA+D;AAC/D,EAAE;AACF,0EAA0E;AAC1E,+EAA+E;AAC/E,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,0CAA0C;AAE1C,6FAA6F;AAC7F,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,4EAA4E;QACrF,YAAY,EAAE,wDAAwD;QACtE,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YACxF,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE;SAC3E;QACD,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,sCAAsC;gBAC3C,IAAI,EAAE,+CAA+C;aACtD;SACF;QACD,QAAQ,EAAE;YACR,YAAY,EAAE,yBAAyB;YACvC,SAAS,EAAE,iBAAiB;YAC5B,SAAS,EAAE,sBAAsB;YACjC,cAAc,EAAE,CAAC;SAClB;QACD,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,+BAA+B,EAAE;KAC/E,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,mEAAmE;QAC5E,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,gCAAgC;YACzC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;SAC9C;QACD,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;QAChD,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;KAC7E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,90 @@
1
+ import type { CompileOutcome } from './compile.js';
2
+ import type { ParsedRuleRecord } from './rule-record.js';
3
+ /** A `target.language` token resolved against the registry, or the reason it did not. */
4
+ export type RecordLanguageResolution = {
5
+ resolved: true;
6
+ /** The declared token, confirmed registered. Resolution is MEMBERSHIP, so this equals `target.language`. */
7
+ language: string;
8
+ /**
9
+ * A registered extension mapping to `language`, used to pin the ast-grep
10
+ * validator to exactly this grammar (see `languageProbeGlobs`).
11
+ */
12
+ extension: string;
13
+ } | {
14
+ resolved: false;
15
+ reason: string;
16
+ };
17
+ /**
18
+ * Resolve `target.language` against the registry, using `extensionToLanguage` as
19
+ * the authority verbatim (§ Design 6). Deterministic: `registeredExtensions()`
20
+ * returns a sorted snapshot, so the representative extension for a language with
21
+ * several (`.ts`/`.mts`/`.cts` → `typescript`) is always the same one — and every
22
+ * extension of one language maps to the same napi grammar anyway, so the pick
23
+ * cannot change the validation verdict, only the diagnostic.
24
+ *
25
+ * An unresolvable language FAILS LOUD (§ Design 6 / § Failure modes: "Unresolvable
26
+ * `language:` at compile — hard error"). It is surfaced as a `rejected` outcome
27
+ * rather than a throw, matching the incumbent's treatment of every other
28
+ * authored-content validation failure: `rejected` is a counted, reported,
29
+ * NON-silent state, while throws are reserved for producer-contract violations
30
+ * (a malformed id, a payload/type divergence) — see `compileRuleRecord`.
31
+ */
32
+ export declare function resolveRecordLanguage(language: string): RecordLanguageResolution;
33
+ /**
34
+ * The glob list handed to `validateAstGrepPattern` so it resolves to EXACTLY the
35
+ * declared language.
36
+ *
37
+ * The shipped validator's language input is a glob list (`resolveAstGrepLangs`
38
+ * derives Langs from trailing extensions), so pinning it to one grammar means
39
+ * handing it one glob carrying one registered extension. These globs are a
40
+ * VALIDATOR PROBE and nothing else — they are never the record's globs, never
41
+ * reach the compiled rule, and never touch `sanitizeFileGlobs`.
42
+ *
43
+ * The coupling to `resolveAstGrepLangs`' derivation is pinned by a conformance
44
+ * test (`record-lower.test.ts`: the probe resolves to exactly one Lang, and that
45
+ * Lang equals `extensionToLang(extension)`), so a change to the shipped
46
+ * derivation fails loud here instead of silently un-pinning the record path.
47
+ */
48
+ export declare function languageProbeGlobs(extension: string): string[];
49
+ /**
50
+ * Check the § Design 6 one-declared-language rule against a record's positive
51
+ * globs. Returns `null` when the scope is consistent, or the rejection reason.
52
+ * ast-grep targets only — the caller does not invoke it for regex.
53
+ */
54
+ export declare function checkLanguageGlobConsistency(language: string, fileGlobs: readonly string[]): string | null;
55
+ /**
56
+ * NapiConfig siblings of `rule` that V1 cannot express. Named explicitly so the
57
+ * author is told the truth — a typed construct-gap awaiting a version bump with
58
+ * its own sibling home under `target:` — instead of napi's generic
59
+ * "unknown field" error, which would read as a typo in the rule tree.
60
+ */
61
+ export declare const V1_INEXPRESSIBLE_NAPI_KEYS: readonly ["constraints", "utils"];
62
+ /** Inputs the lowering needs that the record deliberately does not carry (§ Design 1/§ Design 3). */
63
+ export interface CompileRuleRecordOptions {
64
+ /**
65
+ * The ADR-112 §8 producer-minted rule id, supplied at the intake seam. NEVER
66
+ * minted here and never author-set — identity is producer-owned (R17).
67
+ */
68
+ ruleId: string;
69
+ /** Injected timestamp — no `new Date()` in core (Tenet 15 determinism). */
70
+ now: string;
71
+ }
72
+ /**
73
+ * Lower a parsed Prop 310 record into a `CompiledRule`.
74
+ *
75
+ * PURE (no IO). Returns a `CompileOutcome`:
76
+ * - `{kind: 'compiled'}` — the record lowered totally.
77
+ * - `{kind: 'rejected', reason}` — an authored-content gate failed (bad regex
78
+ * in the target or in `requires`, an unresolvable `language`, a malformed
79
+ * ast-grep tree, a V1-inexpressible NapiConfig key). Loud and counted, never
80
+ * silent; the reason names the governing § so the author is sent to the spec.
81
+ *
82
+ * THROWS on a producer-contract violation — a missing/malformed `ruleId`, a key
83
+ * with no defined lowering, or an engine-binding divergence. These are bugs in
84
+ * the code that CALLED this function, not defects in the author's record, and
85
+ * they carry the incumbent's fail-loud idiom (`compile.ts: compileCandidate`)
86
+ * verbatim: assert up front, before any validation work, so a violation can
87
+ * never be masked by a coincidental `rejected` outcome.
88
+ */
89
+ export declare function compileRuleRecord(parsed: ParsedRuleRecord, opts: CompileRuleRecordOptions): CompileOutcome;
90
+ //# sourceMappingURL=record-lower.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-lower.d.ts","sourceRoot":"","sources":["../../src/spine/record-lower.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAqC,MAAM,kBAAkB,CAAC;AAW5F,yFAAyF;AACzF,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,4GAA4G;IAC5G,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CAahF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAkCD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,GAAG,IAAI,CAiBf;AAID;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,mCAAoC,CAAC;AAoH5E,qGAAqG;AACrG,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,wBAAwB,GAC7B,cAAc,CAyKhB"}