@barefootjs/xslate 0.16.0 → 0.17.1

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 (50) hide show
  1. package/dist/adapter/analysis/component-tree.d.ts +30 -0
  2. package/dist/adapter/analysis/component-tree.d.ts.map +1 -0
  3. package/dist/adapter/emit-context.d.ts +94 -0
  4. package/dist/adapter/emit-context.d.ts.map +1 -0
  5. package/dist/adapter/expr/array-method.d.ts +73 -0
  6. package/dist/adapter/expr/array-method.d.ts.map +1 -0
  7. package/dist/adapter/expr/emitters.d.ts +96 -0
  8. package/dist/adapter/expr/emitters.d.ts.map +1 -0
  9. package/dist/adapter/expr/operand.d.ts +25 -0
  10. package/dist/adapter/expr/operand.d.ts.map +1 -0
  11. package/dist/adapter/index.js +1412 -1323
  12. package/dist/adapter/lib/constants.d.ts +22 -0
  13. package/dist/adapter/lib/constants.d.ts.map +1 -0
  14. package/dist/adapter/lib/ir-scope.d.ts +29 -0
  15. package/dist/adapter/lib/ir-scope.d.ts.map +1 -0
  16. package/dist/adapter/lib/kolon-naming.d.ts +22 -0
  17. package/dist/adapter/lib/kolon-naming.d.ts.map +1 -0
  18. package/dist/adapter/lib/types.d.ts +27 -0
  19. package/dist/adapter/lib/types.d.ts.map +1 -0
  20. package/dist/adapter/memo/seed.d.ts +38 -0
  21. package/dist/adapter/memo/seed.d.ts.map +1 -0
  22. package/dist/adapter/props/prop-classes.d.ts +32 -0
  23. package/dist/adapter/props/prop-classes.d.ts.map +1 -0
  24. package/dist/adapter/spread/spread-codegen.d.ts +69 -0
  25. package/dist/adapter/spread/spread-codegen.d.ts.map +1 -0
  26. package/dist/adapter/value/parsed-literal.d.ts +32 -0
  27. package/dist/adapter/value/parsed-literal.d.ts.map +1 -0
  28. package/dist/adapter/xslate-adapter.d.ts +38 -92
  29. package/dist/adapter/xslate-adapter.d.ts.map +1 -1
  30. package/dist/build.js +1412 -1323
  31. package/dist/index.js +1412 -1323
  32. package/lib/BarefootJS/Backend/Xslate.pm +1 -1
  33. package/package.json +3 -3
  34. package/src/__tests__/query-href.test.ts +96 -0
  35. package/src/__tests__/xslate-adapter.test.ts +200 -8
  36. package/src/adapter/analysis/component-tree.ts +123 -0
  37. package/src/adapter/emit-context.ts +104 -0
  38. package/src/adapter/expr/array-method.ts +332 -0
  39. package/src/adapter/expr/emitters.ts +548 -0
  40. package/src/adapter/expr/operand.ts +35 -0
  41. package/src/adapter/lib/constants.ts +34 -0
  42. package/src/adapter/lib/ir-scope.ts +53 -0
  43. package/src/adapter/lib/kolon-naming.ts +27 -0
  44. package/src/adapter/lib/types.ts +30 -0
  45. package/src/adapter/memo/seed.ts +78 -0
  46. package/src/adapter/props/prop-classes.ts +64 -0
  47. package/src/adapter/spread/spread-codegen.ts +179 -0
  48. package/src/adapter/value/parsed-literal.ts +80 -0
  49. package/src/adapter/xslate-adapter.ts +190 -1236
  50. package/src/test-render.ts +3 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Compile-time constant tables for the Text::Xslate (Kolon) template adapter.
3
+ *
4
+ * Extracted from `xslate-adapter.ts` (domain-module refactor, issue #2018
5
+ * track D).
6
+ */
7
+ import type { PrimitiveSpec } from './types.ts';
8
+ /**
9
+ * Single source of truth for the Xslate adapter's template-primitive
10
+ * surface. Each entry pairs the expected arity with the emit function.
11
+ *
12
+ * The emit fn returns a Kolon expression (no surrounding `<: :>`) suitable
13
+ * for embedding inside an interpolation — `$bf.json($val)`,
14
+ * `$bf.floor($val)`, etc. The same primitive names as the Mojo adapter, but
15
+ * invoked as `$bf.NAME(args)` on the runtime instance instead of `bf->NAME`.
16
+ */
17
+ export declare const XSLATE_TEMPLATE_PRIMITIVES: Record<string, PrimitiveSpec>;
18
+ /**
19
+ * Module-scope `templatePrimitives` map derived once from the spec record.
20
+ */
21
+ export declare const XSLATE_PRIMITIVE_EMIT_MAP: Record<string, (args: string[]) => string>;
22
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/adapter/lib/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAOpE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAG9E,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * IR traversal helpers for the Text::Xslate (Kolon) template adapter.
3
+ *
4
+ * Extracted from `xslate-adapter.ts` (domain-module refactor, issue #2018
5
+ * track D). Pure functions over the IR tree — no adapter instance state.
6
+ *
7
+ * SHARED CANDIDATE: the bodies here are byte-identical to the Mojo
8
+ * adapter's `lib/ir-scope.ts`. They are adapter-agnostic (no Perl/Kolon
9
+ * specifics), so they are the obvious first extraction into a shared
10
+ * Perl-family codegen module once one exists — the groundwork for the
11
+ * future Perl evaluator integration (issue #2018 track D). Kept per-adapter
12
+ * for now, matching the repo convention (the Go adapter keeps its own copy).
13
+ */
14
+ import type { IRNode, IRProp } from '@barefootjs/jsx';
15
+ /**
16
+ * Find the `children` prop's `jsx-children` payload. Narrowed via the
17
+ * AttrValue `kind` discriminator so adapter code stays type-safe if the IR
18
+ * shape evolves.
19
+ */
20
+ export declare function resolveJsxChildrenProp(props: readonly IRProp[]): IRNode[];
21
+ /**
22
+ * Collect the component's root scope element node(s) — the elements that
23
+ * become the rendered root and so carry `data-key` for a keyed loop item. A
24
+ * plain element root is itself; an `if-statement` (early-return) root
25
+ * contributes the top element of each branch, since exactly one renders at
26
+ * runtime. (#1297)
27
+ */
28
+ export declare function collectRootScopeNodes(node: IRNode): Set<IRNode>;
29
+ //# sourceMappingURL=ir-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-scope.d.ts","sourceRoot":"","sources":["../../../src/adapter/lib/ir-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAA6B,MAAM,iBAAiB,CAAA;AAEhF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAKzE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAiB/D"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Kolon identifier / hash-key conventions for the Text::Xslate adapter.
3
+ *
4
+ * Pure helpers extracted from `xslate-adapter.ts` (domain-module refactor,
5
+ * issue #2018 track D): none read adapter instance state, so they live at
6
+ * module scope as the single source of truth for Kolon-literal escaping and
7
+ * hashref-key quoting.
8
+ */
9
+ /**
10
+ * Escape a string for a Kolon/Perl single-quoted literal: backslash first
11
+ * (so it doesn't double-escape the quote we add next), then the quote. Used
12
+ * by every `'…'` hashref key/value emitter.
13
+ */
14
+ export declare function escapeKolonSingleQuoted(s: string): string;
15
+ /**
16
+ * Quote a hashref KEY for Kolon when it isn't a bare-identifier-safe name.
17
+ * Kolon parses `data-slot` as `data - slot` (subtraction) and faults on the
18
+ * undefined `data` symbol, so a hyphenated key (`data-slot`, `aria-label`)
19
+ * must be single-quoted: `'data-slot'`. Bare identifiers pass through unquoted.
20
+ */
21
+ export declare function kolonHashKey(name: string): string;
22
+ //# sourceMappingURL=kolon-naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kolon-naming.d.ts","sourceRoot":"","sources":["../../../src/adapter/lib/kolon-naming.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared type aliases for the Text::Xslate (Kolon) template adapter.
3
+ *
4
+ * Extracted from `xslate-adapter.ts` (domain-module refactor, issue #2018
5
+ * track D). Pure type declarations — no runtime behaviour — so the
6
+ * extracted emit modules and the main adapter share one definition rather
7
+ * than re-declaring the render context / options shape.
8
+ */
9
+ /** A template-primitive spec: expected call arity + the emit fn. */
10
+ export interface PrimitiveSpec {
11
+ arity: number;
12
+ emit: (args: string[]) => string;
13
+ }
14
+ /**
15
+ * Xslate adapter's IRNode render context. Like the Mojo adapter, Kolon's
16
+ * lowering doesn't consume any render-position flags, so the Ctx is empty.
17
+ * Kept as a named alias so future flags can extend it without changing the
18
+ * `IRNodeEmitter` interface.
19
+ */
20
+ export type XslateRenderCtx = Record<string, never>;
21
+ export interface XslateAdapterOptions {
22
+ /** Base path for client JS files (default: '/static/components/') */
23
+ clientJsBasePath?: string;
24
+ /** Path to barefoot.js runtime (default: '/static/components/barefoot.js') */
25
+ barefootJsPath?: string;
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapter/lib/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CACjC;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * In-template memo / context seeding for the Text::Xslate template adapter.
3
+ *
4
+ * Extracted from `xslate-adapter.ts` (domain-module refactor, issue #2018
5
+ * track D). Free functions taking a `XslateMemoContext` (built by the adapter's
6
+ * `memoCtx` getter) so the cluster depends only on the recursive expression entry, not
7
+ * the whole adapter class. These emit the `: my $x = ...;` line-statements
8
+ * that let the body's bare `$x` resolve to a derived signal/memo value or an
9
+ * active context value at SSR time. Mirror of the Go / Mojo adapter's `memo/*`.
10
+ */
11
+ import { type ComponentIR, type ContextConsumer } from '@barefootjs/jsx';
12
+ import type { XslateMemoContext } from '../emit-context.ts';
13
+ /** Kolon literal for a context-consumer's `createContext` default. */
14
+ export declare function contextDefaultKolon(c: ContextConsumer): string;
15
+ /**
16
+ * Emit one `: my $<local> = $bf.use_context(...)` line-statement per
17
+ * context consumer so the body's bare `$<local>` resolves to the active
18
+ * provider value (or the `createContext` default). (#1297)
19
+ */
20
+ export declare function generateContextConsumerSeed(ir: ComponentIR): string;
21
+ /**
22
+ * Emit `: my $<name> = <kolon>;` line-statements for every `derived` step of
23
+ * the backend-neutral SSR seed plan — the scope/availability/ordering
24
+ * analysis lives in `computeSsrSeedPlan` (packages/jsx/src/ssr-seed-plan.ts);
25
+ * this only lowers each step's expression to Kolon and applies the
26
+ * backend-specific emit guards: skip an empty lowering, skip a lowering that
27
+ * references no `$var` at all (a constant init/body — e.g. a `derived` step
28
+ * with empty `frees` — keeps the existing static ssr-defaults seed instead),
29
+ * and skip a self-referencing lowering (Kolon's `my` shadows the RHS, so
30
+ * `: my $x = … $x …` would read the just-declared undefined lexical rather
31
+ * than the render var — the plan rules out SOURCE-level self-refs, but a
32
+ * lowered canonical name could still collide, so this stays as the cheap
33
+ * defense it always was). `env-reader` and `opaque` steps emit nothing (the
34
+ * runtime supplies the reader, or the adapter's ssr-defaults path already
35
+ * covers it). (#1297, #2075)
36
+ */
37
+ export declare function generateDerivedMemoSeed(ctx: XslateMemoContext, ir: ComponentIR): string;
38
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/adapter/memo/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAWnE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,WAAW,GAAG,MAAM,CAcvF"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Prop classification for the Text::Xslate (Kolon) template adapter.
3
+ *
4
+ * Extracted from `xslate-adapter.ts` (domain-module refactor, issue #2018
5
+ * track D). Pure functions over `ir.metadata` that derive the per-compile
6
+ * prop/name sets the adapter consults during lowering. Mirror of the Go
7
+ * adapter's `props/prop-types.ts`. No adapter instance state.
8
+ */
9
+ import type { ComponentIR } from '@barefootjs/jsx';
10
+ /**
11
+ * Props whose declared TS type is boolean — a bare binding of one
12
+ * (`data-active={props.isActive}`) must stringify as JS `String(boolean)`
13
+ * ("true"/"false"), not Perl's native `1`/`''` (#1897, pagination's
14
+ * data-active).
15
+ */
16
+ export declare function collectBooleanTypedProps(ir: ComponentIR): Set<string>;
17
+ /**
18
+ * Bare references to optional, no-default, non-primitive props (e.g.
19
+ * textarea's `rows`) are `undef` when omitted → `defined`-guarded in
20
+ * `emitExpression`. See the `nullableOptionalProps` field docstring.
21
+ */
22
+ export declare function collectNullableOptionalProps(ir: ComponentIR): Set<string>;
23
+ /**
24
+ * String-typed signals and props. A signal is string-typed when its inferred
25
+ * type is `string` (or, defensively, when its initial value is a bare string
26
+ * literal); a prop when its annotated type is `string`. In the Mojo adapter
27
+ * this drives `eq`/`ne` selection for string equality; the Kolon emitters
28
+ * don't consume the distinction (Kolon's `==`/`!=` compare strings and numbers
29
+ * correctly), so this set is carried for parity with the Mojo adapter.
30
+ */
31
+ export declare function collectStringValueNames(ir: ComponentIR): Set<string>;
32
+ //# sourceMappingURL=prop-classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop-classes.d.ts","sourceRoot":"","sources":["../../../src/adapter/props/prop-classes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAMrE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAWzE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAWpE"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Object-literal / conditional-spread → Kolon hashref lowering for the
3
+ * Text::Xslate template adapter.
4
+ *
5
+ * Extracted from `xslate-adapter.ts` (domain-module refactor, issue #2018
6
+ * track D). Free functions taking a `XslateSpreadContext` (built by the adapter's
7
+ * `spreadCtx` getter) so the cluster depends on the narrow seam — the recursive
8
+ * expression entry plus per-compile bookkeeping — rather than the whole
9
+ * adapter class. Mirror of the Go / Mojo adapter's `spread/spread-codegen.ts`.
10
+ *
11
+ * The conditional-spread / object-literal entries read the IR-carried
12
+ * structured `ParsedExpr` tree (#2018, mirroring go-template's U5/U6) instead
13
+ * of re-parsing the source with `ts.createSourceFile`. The condition and scalar
14
+ * values are threaded straight into `ctx.convertExpressionToKolon` as its
15
+ * `preParsed` argument (cf. go-template's
16
+ * `convertExpressionToGo(jsExpr, out?, preParsed?)`), so no stringify→re-parse
17
+ * round-trip occurs — the emitted Kolon is byte-identical to the former path
18
+ * because the carried tree is exactly what re-parsing the stringified text
19
+ * produced. The `ts.factory` rebuild in `recordIndexAccessToKolon` only
20
+ * reconstructs the `IDENT[KEY]` node the shared `parseRecordIndexAccess` parser
21
+ * accepts; no source-text re-parse. `stringifyParsedExpr` is retained solely for
22
+ * the BF101 diagnostic message (display purposes).
23
+ */
24
+ import type { ParsedExpr } from '@barefootjs/jsx';
25
+ import type { XslateSpreadContext } from '../emit-context.ts';
26
+ /**
27
+ * Lower a conditional inline-object spread
28
+ * `COND ? { 'aria-describedby': describedBy } : {}`
29
+ * to a Kolon inline ternary of hashrefs
30
+ * `$describedBy ? { 'aria-describedby' => $describedBy } : {}`.
31
+ * Reads the IR-carried structured `ParsedExpr` tree; both branches must be
32
+ * object literals; the condition + values route through
33
+ * `convertExpressionToKolon`. Returns `null` for any other shape so the caller
34
+ * falls back to its normal lowering. Mirror of `conditionalSpreadToPerl`.
35
+ * `parseExpression` already strips redundant parentheses, so the conditional /
36
+ * object-literal shapes surface directly.
37
+ */
38
+ export declare function conditionalSpreadToKolon(ctx: XslateSpreadContext, expr: ParsedExpr | undefined): string | null;
39
+ /**
40
+ * (#1971 Perl) Lower a bare object-literal expression (`{ align: 'start' }`),
41
+ * carried as the IR's structured `ParsedExpr` tree, to a Kolon hashref via
42
+ * `objectLiteralToKolonHashref`, or null when it isn't a plain object literal.
43
+ * Used for inline object-literal child props (carousel `opts`).
44
+ */
45
+ export declare function objectLiteralExprToKolonHashref(ctx: XslateSpreadContext, expr: ParsedExpr | undefined): string | null;
46
+ /**
47
+ * Convert a static object literal into a Kolon hashref string for a
48
+ * conditional spread. Only static string/identifier keys are allowed; values
49
+ * resolve via `convertExpressionToKolon` (or the `Record[propKey]` index
50
+ * lowering). Returns `null` for any computed/spread/dynamic key. Empty object
51
+ * → `{}`. Mirror of `objectLiteralToPerlHashref`.
52
+ */
53
+ export declare function objectLiteralToKolonHashref(ctx: XslateSpreadContext, obj: Extract<ParsedExpr, {
54
+ kind: 'object-literal';
55
+ }>): string | null;
56
+ /**
57
+ * Lower a spread-object VALUE of the form `IDENT[KEY]` (CheckIcon's
58
+ * `sizeMap[size]`) to an inline indexed Kolon hashref
59
+ * `{ 'sm' => 16, 'md' => 20, ... }[$size]`.
60
+ * Reuses the shared structural parse (`parseRecordIndexAccess`) — rebuilding
61
+ * the `IDENT[KEY]` node from the carried tree via `ts.factory` rather than
62
+ * re-parsing source text; this wrapper only does the single-quote escaping +
63
+ * Kolon index emit. NB: Kolon indexes a hashref literal with bracket syntax
64
+ * `{…}[$key]`, NOT Perl's arrow-deref `{…}->{$key}` (which Kolon's parser
65
+ * rejects) — this is the one divergence from the Mojo `recordIndexAccessToPerl`
66
+ * emit.
67
+ */
68
+ export declare function recordIndexAccessToKolon(ctx: XslateSpreadContext, val: ParsedExpr): string | null;
69
+ //# sourceMappingURL=spread-codegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spread-codegen.d.ts","sourceRoot":"","sources":["../../../src/adapter/spread/spread-codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAG7D;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,MAAM,GAAG,IAAI,CAef;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,MAAM,GAAG,IAAI,CAGf;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,mBAAmB,EACxB,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,GACnD,MAAM,GAAG,IAAI,CA6Cf;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAwBjG"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * String-literal value lowering for the Text::Xslate (Kolon) template adapter.
3
+ *
4
+ * Extracted from `xslate-adapter.ts` (domain-module refactor, issue #2018
5
+ * track D). Pure functions over const-initializer source text and analyzer
6
+ * type info — no adapter instance state.
7
+ *
8
+ * SHARED CANDIDATE: `isStringTypeInfo` and `isBareStringLiteral` are
9
+ * byte-identical to the Mojo adapter's copies and adapter-agnostic —
10
+ * extraction candidates for a shared Perl-family codegen module (groundwork
11
+ * for the future Perl evaluator integration, issue #2018 track D).
12
+ * `parsePureStringLiteral` deliberately differs (Xslate hand-parses; Mojo
13
+ * uses the TS parser), so it stays per-adapter.
14
+ */
15
+ import { type TypeInfo } from '@barefootjs/jsx';
16
+ /**
17
+ * Parse a const initializer's source text. Returns the unescaped string value
18
+ * when the whole initializer is a single pure string literal — single/double
19
+ * quoted, or a no-substitution backtick template (no `${}`) — else `null`.
20
+ * Only such a value can be inlined byte-for-byte; template literals with
21
+ * interpolation, numbers, objects, and `Record<T,string>` maps are excluded.
22
+ */
23
+ export declare function parsePureStringLiteral(source: string): string | null;
24
+ /** Whether `s` contains an unescaped occurrence of `ch`. */
25
+ export declare function containsUnescaped(s: string, ch: string): boolean;
26
+ /** Unescape a JS string-literal body's common escape sequences. */
27
+ export declare function unescapeStringLiteralBody(s: string): string;
28
+ /** True when `type` is the `string` primitive. */
29
+ export declare function isStringTypeInfo(type: TypeInfo | undefined): boolean;
30
+ /** True when `initialValue` is a bare string-literal expression. */
31
+ export declare function isBareStringLiteral(initialValue: string | undefined): boolean;
32
+ //# sourceMappingURL=parsed-literal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsed-literal.d.ts","sourceRoot":"","sources":["../../../src/adapter/value/parsed-literal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAEpE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBpE;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAMhE;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3D;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI7E"}
@@ -21,20 +21,9 @@
21
21
  */
22
22
  import type { ComponentIR, IRNode, IRElement, IRText, IRExpression, IRConditional, IRLoop, IRComponent, IRFragment, IRSlot, IRIfStatement, IRProvider, IRAsync, TemplatePrimitiveRegistry } from '@barefootjs/jsx';
23
23
  import { BaseAdapter, type AdapterOutput, type AdapterGenerateOptions, type IRNodeEmitter, type EmitIRNode } from '@barefootjs/jsx';
24
- /**
25
- * Xslate adapter's IRNode render context. Like the Mojo adapter, Kolon's
26
- * lowering doesn't consume any render-position flags, so the Ctx is empty.
27
- * Kept as a named alias so future flags can extend it without changing the
28
- * `IRNodeEmitter` interface.
29
- */
30
- type XslateRenderCtx = Record<string, never>;
31
- import type { ParsedExpr } from '@barefootjs/jsx';
32
- export interface XslateAdapterOptions {
33
- /** Base path for client JS files (default: '/static/components/') */
34
- clientJsBasePath?: string;
35
- /** Path to barefoot.js runtime (default: '/static/components/barefoot.js') */
36
- barefootJsPath?: string;
37
- }
24
+ import type { XslateRenderCtx } from './lib/types.ts';
25
+ export type { XslateAdapterOptions } from './lib/types.ts';
26
+ import type { XslateAdapterOptions } from './lib/types.ts';
38
27
  export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<XslateRenderCtx> {
39
28
  name: string;
40
29
  extension: string;
@@ -66,10 +55,13 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
66
55
  private propsParams;
67
56
  private booleanTypedProps;
68
57
  /**
69
- * Names (signal getters + props) whose value is a string, so `===`/`!==`
70
- * against them lowers to Perl `eq`/`ne` rather than numeric `==`/`!=`.
71
- * Kolon comparison operators delegate to Perl semantics, so the same
72
- * string-vs-numeric distinction the Mojo adapter makes applies here.
58
+ * Names (signal getters + props) whose value is a string. In the Mojo
59
+ * adapter this drives choosing Perl `eq`/`ne` over numeric `==`/`!=` for a
60
+ * string `===`/`!==`. The Kolon emitters do NOT consume this: Kolon's
61
+ * `==`/`!=` are value-equality operators that compare strings and numbers
62
+ * correctly, so `===`/`!==` always map to `==`/`!=`. The set is populated
63
+ * and threaded for parity with the Mojo adapter (and as groundwork for a
64
+ * shared Perl-family codegen surface), not because Kolon needs it today.
73
65
  */
74
66
  private stringValueNames;
75
67
  /**
@@ -89,7 +81,14 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
89
81
  * the generic dot deref. Set at `generate()` entry from `ir.metadata.imports`;
90
82
  * read by the top-level ParsedExpr emitter.
91
83
  */
92
- _searchParamsLocals: Set<string>;
84
+ private _searchParamsLocals;
85
+ /**
86
+ * Call-lowering matchers active for this component (#2057). Bound at
87
+ * `generate()` entry via `prepareLoweringMatchers` and read by the top-level
88
+ * emitter. Covers both userland plugins and the compiler's built-in plugins
89
+ * (e.g. `queryHref` → `$bf.query`, #2042) — one uniform path, no per-API branch.
90
+ */
91
+ private _loweringMatchers;
93
92
  /**
94
93
  * Local + module constants from the IR, used by the conditional-spread and
95
94
  * `Record<staticKeys, scalar>[propKey]` lowering paths (#textarea / #checkbox).
@@ -108,7 +107,6 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
108
107
  constructor(options?: XslateAdapterOptions);
109
108
  generate(ir: ComponentIR, options?: AdapterGenerateOptions): AdapterOutput;
110
109
  private generateScriptRegistrations;
111
- private hasClientInteractivity;
112
110
  /**
113
111
  * Public entry point for node rendering. Delegates to the shared
114
112
  * `IRNodeEmitter` dispatcher; per-kind logic lives in the `IRNodeEmitter`
@@ -146,31 +144,6 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
146
144
  * the whole-expression path, which refuses those shapes with BF101.
147
145
  */
148
146
  private providerObjectLiteralKolon;
149
- /** Kolon literal for a context-consumer's `createContext` default. */
150
- private contextDefaultKolon;
151
- /**
152
- * Emit one `: my $<local> = $bf.use_context(...)` line-statement per
153
- * context consumer so the body's bare `$<local>` resolves to the active
154
- * provider value (or the `createContext` default). (#1297)
155
- */
156
- private generateContextConsumerSeed;
157
- /**
158
- * Seed memos whose SSR default is `null` (not statically evaluable) by
159
- * computing them in-template from the already-seeded prop / signal vars
160
- * (`createMemo(() => props.value * 10)` → `: my $x = $value * 10;`). Without
161
- * this the memo's `$x` renders empty — the reason
162
- * `props-reactivity-comparison` was skipped. Only emitted when every var the
163
- * lowering references is already in scope. (#1297)
164
- */
165
- private generateDerivedMemoSeed;
166
- /**
167
- * Lower a signal init / memo body to Kolon for an in-template SSR seed, or
168
- * `null` when it shouldn't be seeded this way: not a supported shape
169
- * (`isSupported` pre-check, so object/array literals don't fail the build),
170
- * references no in-scope var (a constant — keep ssr-defaults seeding), or
171
- * references an out-of-scope binding. (#1297)
172
- */
173
- private tryLowerToKolon;
174
147
  emitAsync(node: IRAsync, _ctx: XslateRenderCtx, _emit: EmitIRNode<XslateRenderCtx>): string;
175
148
  renderElement(element: IRElement): string;
176
149
  renderExpression(expr: IRExpression): string;
@@ -181,13 +154,6 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
181
154
  * If no element found, wrap with comment markers.
182
155
  */
183
156
  private addCondMarkerToFirstElement;
184
- /**
185
- * Push a `BF103` diagnostic for every component reference inside a loop body
186
- * whose name is imported from a relative-path module. Mirror of the Mojo
187
- * adapter's check — the Xslate adapter has the same cross-template-
188
- * registration constraint at request time.
189
- */
190
- private checkImportedLoopChildComponents;
191
157
  renderLoop(loop: IRLoop): string;
192
158
  /**
193
159
  * AttrValue lowering for component invocation props (Kolon hashref-entry
@@ -233,14 +199,6 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
233
199
  * block-body local var aliases.
234
200
  */
235
201
  private renderKolonFilterExpr;
236
- /**
237
- * Render a complex block body filter into a Kolon condition.
238
- * Handles patterns like: filter(t => { const f = filter(); if (...) return ...; })
239
- */
240
- private renderBlockBodyCondition;
241
- private collectReturnPaths;
242
- private buildSinglePathCondition;
243
- private renderConditionsAnd;
244
202
  private convertTemplateLiteralPartsToKolon;
245
203
  /**
246
204
  * Translate `${EXPR}` interpolations in a static template-part string into
@@ -256,34 +214,23 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
256
214
  */
257
215
  private refuseUnsupportedAttrExpression;
258
216
  /**
259
- * Lower a conditional inline-object spread
260
- * `COND ? { 'aria-describedby': describedBy } : {}`
261
- * to a Kolon inline ternary of hashrefs
262
- * `$describedBy ? { 'aria-describedby' => $describedBy } : {}`.
263
- * Both branches must be object literals; the condition + values route through
264
- * `convertExpressionToKolon`. Returns `null` for any other shape so the caller
265
- * falls back to its normal lowering. Mirror of `conditionalSpreadToPerl`.
266
- */
267
- private conditionalSpreadToKolon;
268
- /**
269
- * Convert a static object literal into a Kolon hashref string for a
270
- * conditional spread. Only static string/identifier keys are allowed; values
271
- * resolve via `convertExpressionToKolon` (or the `Record[propKey]` index
272
- * lowering). Returns `null` for any computed/spread/dynamic key. Empty object
273
- * → `{}`. Mirror of `objectLiteralToPerlHashref`.
217
+ * Build the EmitContext seam the top-level `ParsedExpr` emitter depends on.
218
+ * Built as a private object (the adapter does NOT `implements XslateEmitContext`)
219
+ * so the wrapped bookkeeping `_searchParamsLocals`, the const/record
220
+ * resolvers, BF101 recording, the filter-predicate entry stays private and
221
+ * off the exported adapter's public type, matching the Go adapter's
222
+ * `emitCtx` and the `spreadCtx` / `memoCtx` seams below.
274
223
  */
275
- private objectLiteralToKolonHashref;
224
+ private get emitCtx();
276
225
  /**
277
- * Lower a spread-object VALUE of the form `IDENT[KEY]` (CheckIcon's
278
- * `sizeMap[size]`) to an inline indexed Kolon hashref
279
- * `{ 'sm' => 16, 'md' => 20, ... }[$size]`.
280
- * Reuses the shared structural parse (`parseRecordIndexAccess`); this wrapper
281
- * only does the single-quote escaping + Kolon index emit. NB: Kolon indexes a
282
- * hashref literal with bracket syntax `{…}[$key]`, NOT Perl's arrow-deref
283
- * `{…}->{$key}` (which Kolon's parser rejects) — this is the one divergence
284
- * from the Mojo `recordIndexAccessToPerl` emit.
226
+ * Build the narrow context the extracted spread lowering depends on. Passing
227
+ * a purpose-built object (rather than `this`) keeps the adapter's bookkeeping
228
+ * members private they stay internal implementation detail, not part of the
229
+ * exported class's public surface.
285
230
  */
286
- private recordIndexAccessToKolon;
231
+ private get spreadCtx();
232
+ /** Build the narrow context the extracted memo seeding depends on. */
233
+ private get memoCtx();
287
234
  private convertExpressionToKolon;
288
235
  /**
289
236
  * Render a full ParsedExpr tree to Kolon for top-level (non-filter)
@@ -292,7 +239,7 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
292
239
  private renderParsedExprToKolon;
293
240
  /** Whether `name` (a signal getter or prop) holds a string value, so an
294
241
  * equality comparison against it should use Perl `eq`/`ne`. */
295
- _isStringValueName(name: string): boolean;
242
+ private _isStringValueName;
296
243
  /**
297
244
  * Resolve an identifier to its inlined Kolon single-quoted literal when it
298
245
  * names a module pure-string const, else `null` (caller falls back to the
@@ -327,13 +274,12 @@ export declare class XslateAdapter extends BaseAdapter implements IRNodeEmitter<
327
274
  * pagination) — function-scope consts never reach the per-render
328
275
  * stash, so a bare `$totalPages` renders empty.
329
276
  */
330
- _resolveLiteralConst(name: string): string | null;
331
- _resolveStaticRecordLiteral(objectName: string, key: string): string | null;
332
- _resolveModuleStringConst(name: string): string | null;
333
- _recordExprBF101(message: string, reason?: string): void;
277
+ private _resolveLiteralConst;
278
+ private _resolveStaticRecordLiteral;
279
+ private _resolveModuleStringConst;
280
+ private _recordExprBF101;
334
281
  /** Internal hook for higher-order: predicate body re-uses the filter emitter. */
335
- _renderKolonFilterExprPublic(expr: ParsedExpr, param: string): string;
282
+ private _renderKolonFilterExprPublic;
336
283
  }
337
284
  export declare const xslateAdapter: XslateAdapter;
338
- export {};
339
285
  //# sourceMappingURL=xslate-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xslate-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/xslate-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,aAAa,EACb,MAAM,EACN,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EAKP,yBAAyB,EAE1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAM3B,KAAK,aAAa,EAClB,KAAK,UAAU,EAuBhB,MAAM,iBAAiB,CAAA;AAIxB;;;;;GAKG;AACH,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAiF,MAAM,iBAAiB,CAAA;AAsGhI,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,aAAc,SAAQ,WAAY,YAAW,aAAa,CAAC,eAAe,CAAC;IACtF,IAAI,SAAW;IACf,SAAS,SAAQ;IACjB,qBAAqB,UAAO;IAG5B,kBAAkB,EAAG,cAAc,CAAS;IAE5C;;;;;OAKG;IACH,kBAAkB,EAAE,yBAAyB,CAA4B;IAEzE,OAAO,CAAC,aAAa,CAAa;IAClC;;;uCAGmC;IACnC,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAiB;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,iBAAiB,CAAyB;IAClD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAyB;IAEjD;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAAiC;IAE3D;;;;;;;OAOG;IACH,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAY;IAE5C;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAmC;IAEzD;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB,CAAyB;IAEtD,YAAY,OAAO,GAAE,oBAAyB,EAM7C;IAED,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,aAAa,CAuGzE;IAMD,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/B;IAMD,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAE9F;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEzC;IAED,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAEtG;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAExF;IAED,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAElG;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAEhG;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAEtG;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAehG;IAED,uEAAuE;IACvE,OAAO,CAAC,kBAAkB;IAiB1B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,0BAA0B;IAclC,sEAAsE;IACtE,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAanC;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAgD/B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IASvB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAE1F;IAMD,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAoCxC;IAMD,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAe3C;IAMD,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAuC7C;IAED,OAAO,CAAC,gBAAgB;IAOxB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAcnC;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAyExC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoI/B;IAMD;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAwBpC;IAED,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CA+DzC;IAED,OAAO,CAAC,sBAAsB,CAAI;IAElC;+DAC2D;IAC3D,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,UAAU;IAWT,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAQ1C;IAMD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA4IlC;IAED;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAmB3B,8EAA8E;IAC9E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;IA2BxB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAIjD;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAMD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,kCAAkC;IAwB1C;;;;OAIG;IACH,OAAO,CAAC,iCAAiC;IAmBzC;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAuBvC;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAuDnC;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,wBAAwB;IA8BhC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAI/B;oEACgE;IAChE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExC;IAED;;;;;OAKG;IACH;;;;;OAKG;IACH;;;;;OAKG;IACH;;;;OAIG;IACH,8BAA8B,CAC5B,IAAI,EAAE,MAAM,GACX;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAgBlD;IAED,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO3C;IAED;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQhD;IAED,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1E;IAED,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOrD;IAED,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAYvD;IAED,iFAAiF;IACjF,4BAA4B,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;CACF;AA4pBD,eAAO,MAAM,aAAa,eAAsB,CAAA"}
1
+ {"version":3,"file":"xslate-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/xslate-adapter.ts"],"names":[],"mappings":"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"}