@goreal-ai/echo-pdk 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +103 -0
- package/dist/context/index.d.ts +7 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +13 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/resolver.d.ts +152 -0
- package/dist/context/resolver.d.ts.map +1 -0
- package/dist/context/resolver.js +223 -0
- package/dist/context/resolver.js.map +1 -0
- package/dist/evaluator/evaluator.d.ts.map +1 -1
- package/dist/evaluator/evaluator.js +5 -0
- package/dist/evaluator/evaluator.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/parser/ast.d.ts +19 -1
- package/dist/parser/ast.d.ts.map +1 -1
- package/dist/parser/ast.js +28 -0
- package/dist/parser/ast.js.map +1 -1
- package/dist/parser/lexer.d.ts +29 -7
- package/dist/parser/lexer.d.ts.map +1 -1
- package/dist/parser/lexer.js +64 -8
- package/dist/parser/lexer.js.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +39 -3
- package/dist/parser/parser.js.map +1 -1
- package/dist/renderer/renderer.d.ts.map +1 -1
- package/dist/renderer/renderer.js +31 -0
- package/dist/renderer/renderer.js.map +1 -1
- package/dist/types.d.ts +28 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +24 -13
package/dist/index.js
CHANGED
|
@@ -25,12 +25,21 @@ import { evaluate } from './evaluator/evaluator.js';
|
|
|
25
25
|
import { render, formatErrors } from './renderer/renderer.js';
|
|
26
26
|
import { builtinOperators, getOperator } from './evaluator/operators.js';
|
|
27
27
|
import { createOpenAIProvider, withCache } from './ai-judge/index.js';
|
|
28
|
+
import { validateContextPath } from './context/index.js';
|
|
28
29
|
// Re-export utilities for advanced usage
|
|
29
30
|
export { parse } from './parser/parser.js';
|
|
30
31
|
export { evaluate, resolveVariable, } from './evaluator/evaluator.js';
|
|
31
32
|
export { render, renderTemplate, formatErrors } from './renderer/renderer.js';
|
|
32
33
|
export { builtinOperators, getOperator } from './evaluator/operators.js';
|
|
33
|
-
export { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, collectAiJudgeConditions, visitNode, visitNodes, prettyPrint, } from './parser/ast.js';
|
|
34
|
+
export { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, createContextNode, collectAiJudgeConditions, visitNode, visitNodes, prettyPrint, } from './parser/ast.js';
|
|
35
|
+
// Re-export context module
|
|
36
|
+
export {
|
|
37
|
+
// Validation
|
|
38
|
+
isPlpReference, extractAssetId, validateContextPath,
|
|
39
|
+
// AST Helpers
|
|
40
|
+
collectContextPaths, applyResolvedContext,
|
|
41
|
+
// Mock Resolver
|
|
42
|
+
MockContextResolver, } from './context/index.js';
|
|
34
43
|
/**
|
|
35
44
|
* Environment variable name for API key.
|
|
36
45
|
*/
|
|
@@ -356,6 +365,19 @@ function validateNodes(nodes, errors, warnings, knownSections, config, operators
|
|
|
356
365
|
});
|
|
357
366
|
break;
|
|
358
367
|
}
|
|
368
|
+
case 'context': {
|
|
369
|
+
// Validate context path
|
|
370
|
+
const validation = validateContextPath(node.path);
|
|
371
|
+
if (!validation.isValid) {
|
|
372
|
+
const error = {
|
|
373
|
+
code: 'INVALID_CONTEXT_PATH',
|
|
374
|
+
message: `Invalid context path: ${validation.error}`,
|
|
375
|
+
location: node.location,
|
|
376
|
+
};
|
|
377
|
+
errors.push(error);
|
|
378
|
+
}
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
359
381
|
}
|
|
360
382
|
}
|
|
361
383
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/ast.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* - Find nodes by type
|
|
21
21
|
* - Pretty print for debugging
|
|
22
22
|
*/
|
|
23
|
-
import type { ASTNode, TextNode, VariableNode, ConditionalNode, SectionNode, ImportNode, IncludeNode, SourceLocation, ConditionExpr } from '../types.js';
|
|
23
|
+
import type { ASTNode, TextNode, VariableNode, ConditionalNode, SectionNode, ImportNode, IncludeNode, ContextNode, SourceLocation, ConditionExpr } from '../types.js';
|
|
24
24
|
/**
|
|
25
25
|
* Create a TextNode.
|
|
26
26
|
*/
|
|
@@ -49,6 +49,23 @@ export declare function createImportNode(path: string, location: SourceLocation)
|
|
|
49
49
|
* Create an IncludeNode.
|
|
50
50
|
*/
|
|
51
51
|
export declare function createIncludeNode(name: string, location: SourceLocation): IncludeNode;
|
|
52
|
+
/**
|
|
53
|
+
* Create a ContextNode.
|
|
54
|
+
*
|
|
55
|
+
* @param path - The path to the context asset (e.g., "product-image" or "plp://logo-v2")
|
|
56
|
+
* @param location - Source location
|
|
57
|
+
* @returns A new ContextNode
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const node = createContextNode('product-image', location);
|
|
62
|
+
* // { type: 'context', path: 'product-image', location }
|
|
63
|
+
*
|
|
64
|
+
* const node2 = createContextNode('plp://logo-v2', location);
|
|
65
|
+
* // { type: 'context', path: 'plp://logo-v2', location }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function createContextNode(path: string, location: SourceLocation): ContextNode;
|
|
52
69
|
/**
|
|
53
70
|
* Visitor interface for AST traversal.
|
|
54
71
|
* Implement this interface to walk the AST.
|
|
@@ -60,6 +77,7 @@ export interface ASTVisitor<T = void> {
|
|
|
60
77
|
visitSection?(node: SectionNode): T;
|
|
61
78
|
visitImport?(node: ImportNode): T;
|
|
62
79
|
visitInclude?(node: IncludeNode): T;
|
|
80
|
+
visitContext?(node: ContextNode): T;
|
|
63
81
|
}
|
|
64
82
|
/**
|
|
65
83
|
* Walk an AST node with a visitor.
|
package/dist/parser/ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,GACvB,QAAQ,CAMV;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,YAAY,CAOd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,OAAO,EAAE,EACrB,QAAQ,EAAE,cAAc,EACxB,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,EAAE,GACtC,eAAe,CAQjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GACpC,aAAa,CAOf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EAAE,EACf,QAAQ,EAAE,cAAc,GACvB,WAAW,CAOb;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACvB,UAAU,CAMZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACvB,WAAW,CAMb;AAMD;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,IAAI;IAClC,SAAS,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC;IAC9B,aAAa,CAAC,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC;IACtC,gBAAgB,CAAC,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,CAAC;IAC5C,YAAY,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC;IAClC,YAAY,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/ast.js
CHANGED
|
@@ -98,6 +98,29 @@ export function createIncludeNode(name, location) {
|
|
|
98
98
|
location,
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Create a ContextNode.
|
|
103
|
+
*
|
|
104
|
+
* @param path - The path to the context asset (e.g., "product-image" or "plp://logo-v2")
|
|
105
|
+
* @param location - Source location
|
|
106
|
+
* @returns A new ContextNode
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const node = createContextNode('product-image', location);
|
|
111
|
+
* // { type: 'context', path: 'product-image', location }
|
|
112
|
+
*
|
|
113
|
+
* const node2 = createContextNode('plp://logo-v2', location);
|
|
114
|
+
* // { type: 'context', path: 'plp://logo-v2', location }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export function createContextNode(path, location) {
|
|
118
|
+
return {
|
|
119
|
+
type: 'context',
|
|
120
|
+
path,
|
|
121
|
+
location,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
101
124
|
/**
|
|
102
125
|
* Walk an AST node with a visitor.
|
|
103
126
|
*
|
|
@@ -119,6 +142,8 @@ export function visitNode(node, visitor) {
|
|
|
119
142
|
return visitor.visitImport?.(node);
|
|
120
143
|
case 'include':
|
|
121
144
|
return visitor.visitInclude?.(node);
|
|
145
|
+
case 'context':
|
|
146
|
+
return visitor.visitContext?.(node);
|
|
122
147
|
default: {
|
|
123
148
|
// Exhaustiveness check
|
|
124
149
|
const _exhaustive = node;
|
|
@@ -228,6 +253,9 @@ export function prettyPrint(ast, indent = 0) {
|
|
|
228
253
|
case 'include':
|
|
229
254
|
lines.push(`${pad}INCLUDE: ${node.name}`);
|
|
230
255
|
break;
|
|
256
|
+
case 'context':
|
|
257
|
+
lines.push(`${pad}CONTEXT: #context(${node.path})`);
|
|
258
|
+
break;
|
|
231
259
|
}
|
|
232
260
|
}
|
|
233
261
|
return lines.join('\n');
|
package/dist/parser/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/lexer.d.ts
CHANGED
|
@@ -72,6 +72,15 @@ export declare const Import: TokenType;
|
|
|
72
72
|
* [#INCLUDE - Include directive (followed by section name)
|
|
73
73
|
*/
|
|
74
74
|
export declare const Include: TokenType;
|
|
75
|
+
/**
|
|
76
|
+
* #context( - Context reference (pushes to CONTEXT_ARG_MODE to capture path)
|
|
77
|
+
*
|
|
78
|
+
* Used inline in text to reference files from the Context Store.
|
|
79
|
+
* Examples:
|
|
80
|
+
* #context(product-image) - Reference from prompt's context mapping
|
|
81
|
+
* #context(plp://logo-v2) - Direct Context Store reference
|
|
82
|
+
*/
|
|
83
|
+
export declare const ContextOpen: TokenType;
|
|
75
84
|
/**
|
|
76
85
|
* ] - End of directive (pops back to DEFAULT_MODE)
|
|
77
86
|
*/
|
|
@@ -107,6 +116,11 @@ export declare const RParen: TokenType;
|
|
|
107
116
|
* This allows natural text like "My Girlfriend" without quotes.
|
|
108
117
|
*/
|
|
109
118
|
export declare const OperatorArgText: TokenType;
|
|
119
|
+
/**
|
|
120
|
+
* Context argument text - captures the context path until closing paren.
|
|
121
|
+
* Supports: alphanumeric, hyphens, underscores, dots, and plp:// prefix.
|
|
122
|
+
*/
|
|
123
|
+
export declare const ContextArgText: TokenType;
|
|
110
124
|
/**
|
|
111
125
|
* , - Comma separator in argument lists
|
|
112
126
|
*/
|
|
@@ -131,12 +145,13 @@ export declare const WhiteSpace: TokenType;
|
|
|
131
145
|
* - `{{` (variable start)
|
|
132
146
|
* - `[#` (directive start: [#IF, [#SECTION, [#IMPORT, [#INCLUDE)
|
|
133
147
|
* - `[E` (branch/end markers: [ELSE], [ELSE IF, [END IF], [END SECTION])
|
|
148
|
+
* - `#context(` (context reference)
|
|
134
149
|
*
|
|
135
|
-
* REGEX BREAKDOWN: /(?:[^\[{]|\[(?![#E])|\{(?!\{))+/
|
|
150
|
+
* REGEX BREAKDOWN: /(?:[^\[{#]|\[(?![#E])|\{(?!\{)|#(?!context\())+/
|
|
136
151
|
*
|
|
137
|
-
* (?: Non-capturing group containing
|
|
152
|
+
* (?: Non-capturing group containing four alternatives:
|
|
138
153
|
* │
|
|
139
|
-
* ├─ [^\[{]
|
|
154
|
+
* ├─ [^\[{#] Alt 1: Any character EXCEPT '[', '{', or '#'
|
|
140
155
|
* │ These are safe - no special meaning
|
|
141
156
|
* │
|
|
142
157
|
* ├─ \[(?![#E]) Alt 2: A '[' NOT followed by '#' or 'E'
|
|
@@ -145,10 +160,15 @@ export declare const WhiteSpace: TokenType;
|
|
|
145
160
|
* │ - [# (directives like [#IF)
|
|
146
161
|
* │ - [E (branches like [ELSE], [END IF])
|
|
147
162
|
* │
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
163
|
+
* ├─ \{(?!\{) Alt 3: A '{' NOT followed by another '{'
|
|
164
|
+
* │ │ Allows: single { in text
|
|
165
|
+
* │ └─ (?!\{) Negative lookahead excludes:
|
|
166
|
+
* │ - {{ (variable start)
|
|
167
|
+
* │
|
|
168
|
+
* └─ #(?!context\() Alt 4: A '#' NOT followed by 'context('
|
|
169
|
+
* │ Allows: #1, #foo, #anything-else
|
|
170
|
+
* └─ (?!context\() Negative lookahead excludes:
|
|
171
|
+
* - #context( (context reference)
|
|
152
172
|
* )+ One or more matches (greedy)
|
|
153
173
|
*
|
|
154
174
|
* EXAMPLES:
|
|
@@ -157,6 +177,8 @@ export declare const WhiteSpace: TokenType;
|
|
|
157
177
|
* "Price: $[100]" → matches entirely ([1 is not [# or [E)
|
|
158
178
|
* "Use {braces}" → matches entirely (single { is allowed)
|
|
159
179
|
* "[#IF ..." → matches nothing (starts with [#)
|
|
180
|
+
* "Item #1" → matches entirely (#1 is not #context()
|
|
181
|
+
* "#context(x)" → matches nothing (starts with #context()
|
|
160
182
|
*/
|
|
161
183
|
export declare const Text: TokenType;
|
|
162
184
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAEL,KAAK,EACL,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAYpB;;GAEG;AACH,eAAO,MAAM,YAAY,WAGvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI,WAGf,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,WAItB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO,WAIlB,CAAC;AAoDH;;GAEG;AACH,eAAO,MAAM,YAAY,WAIvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,WAGnB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAYH;;;GAGG;AACH,eAAO,MAAM,eAAe,WAG1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,WAGpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAIrB,CAAC;AAMH
|
|
1
|
+
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAEL,KAAK,EACL,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAYpB;;GAEG;AACH,eAAO,MAAM,YAAY,WAGvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI,WAGf,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,WAItB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO,WAIlB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,WAItB,CAAC;AAoDH;;GAEG;AACH,eAAO,MAAM,YAAY,WAIvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,WAGnB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAYH;;;GAGG;AACH,eAAO,MAAM,eAAe,WAG1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,WAGzB,CAAC;AAYH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,WAGpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAIrB,CAAC;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,IAAI,WAIf,CAAC;AA2HH;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,EAmDhC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,SAAS,OAMpB,CAAC;AAMH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,sCAExC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAC5C,MAAM,EAAE,CAMV"}
|
package/dist/parser/lexer.js
CHANGED
|
@@ -121,6 +121,19 @@ export const Include = createToken({
|
|
|
121
121
|
pattern: /\[#INCLUDE/,
|
|
122
122
|
push_mode: 'DIRECTIVE_MODE',
|
|
123
123
|
});
|
|
124
|
+
/**
|
|
125
|
+
* #context( - Context reference (pushes to CONTEXT_ARG_MODE to capture path)
|
|
126
|
+
*
|
|
127
|
+
* Used inline in text to reference files from the Context Store.
|
|
128
|
+
* Examples:
|
|
129
|
+
* #context(product-image) - Reference from prompt's context mapping
|
|
130
|
+
* #context(plp://logo-v2) - Direct Context Store reference
|
|
131
|
+
*/
|
|
132
|
+
export const ContextOpen = createToken({
|
|
133
|
+
name: 'ContextOpen',
|
|
134
|
+
pattern: /#context\(/,
|
|
135
|
+
push_mode: 'CONTEXT_ARG_MODE',
|
|
136
|
+
});
|
|
124
137
|
// -----------------------------------------------------------------------------
|
|
125
138
|
// Variable Syntax - Mode-Specific Variants
|
|
126
139
|
// -----------------------------------------------------------------------------
|
|
@@ -235,6 +248,23 @@ export const OperatorArgText = createToken({
|
|
|
235
248
|
name: 'OperatorArgText',
|
|
236
249
|
pattern: /[^)]+/,
|
|
237
250
|
});
|
|
251
|
+
/**
|
|
252
|
+
* Context argument text - captures the context path until closing paren.
|
|
253
|
+
* Supports: alphanumeric, hyphens, underscores, dots, and plp:// prefix.
|
|
254
|
+
*/
|
|
255
|
+
export const ContextArgText = createToken({
|
|
256
|
+
name: 'ContextArgText',
|
|
257
|
+
pattern: /[^)]+/,
|
|
258
|
+
});
|
|
259
|
+
/**
|
|
260
|
+
* ) - Right parenthesis that pops from CONTEXT_ARG_MODE
|
|
261
|
+
*/
|
|
262
|
+
const RParenContextArg = createToken({
|
|
263
|
+
name: 'RParenContextArg',
|
|
264
|
+
pattern: /\)/,
|
|
265
|
+
pop_mode: true,
|
|
266
|
+
categories: [RParen], // Extends RParen so parser sees it the same
|
|
267
|
+
});
|
|
238
268
|
/**
|
|
239
269
|
* , - Comma separator in argument lists
|
|
240
270
|
*/
|
|
@@ -275,12 +305,13 @@ export const WhiteSpace = createToken({
|
|
|
275
305
|
* - `{{` (variable start)
|
|
276
306
|
* - `[#` (directive start: [#IF, [#SECTION, [#IMPORT, [#INCLUDE)
|
|
277
307
|
* - `[E` (branch/end markers: [ELSE], [ELSE IF, [END IF], [END SECTION])
|
|
308
|
+
* - `#context(` (context reference)
|
|
278
309
|
*
|
|
279
|
-
* REGEX BREAKDOWN: /(?:[^\[{]|\[(?![#E])|\{(?!\{))+/
|
|
310
|
+
* REGEX BREAKDOWN: /(?:[^\[{#]|\[(?![#E])|\{(?!\{)|#(?!context\())+/
|
|
280
311
|
*
|
|
281
|
-
* (?: Non-capturing group containing
|
|
312
|
+
* (?: Non-capturing group containing four alternatives:
|
|
282
313
|
* │
|
|
283
|
-
* ├─ [^\[{]
|
|
314
|
+
* ├─ [^\[{#] Alt 1: Any character EXCEPT '[', '{', or '#'
|
|
284
315
|
* │ These are safe - no special meaning
|
|
285
316
|
* │
|
|
286
317
|
* ├─ \[(?![#E]) Alt 2: A '[' NOT followed by '#' or 'E'
|
|
@@ -289,10 +320,15 @@ export const WhiteSpace = createToken({
|
|
|
289
320
|
* │ - [# (directives like [#IF)
|
|
290
321
|
* │ - [E (branches like [ELSE], [END IF])
|
|
291
322
|
* │
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
*
|
|
323
|
+
* ├─ \{(?!\{) Alt 3: A '{' NOT followed by another '{'
|
|
324
|
+
* │ │ Allows: single { in text
|
|
325
|
+
* │ └─ (?!\{) Negative lookahead excludes:
|
|
326
|
+
* │ - {{ (variable start)
|
|
327
|
+
* │
|
|
328
|
+
* └─ #(?!context\() Alt 4: A '#' NOT followed by 'context('
|
|
329
|
+
* │ Allows: #1, #foo, #anything-else
|
|
330
|
+
* └─ (?!context\() Negative lookahead excludes:
|
|
331
|
+
* - #context( (context reference)
|
|
296
332
|
* )+ One or more matches (greedy)
|
|
297
333
|
*
|
|
298
334
|
* EXAMPLES:
|
|
@@ -301,10 +337,12 @@ export const WhiteSpace = createToken({
|
|
|
301
337
|
* "Price: $[100]" → matches entirely ([1 is not [# or [E)
|
|
302
338
|
* "Use {braces}" → matches entirely (single { is allowed)
|
|
303
339
|
* "[#IF ..." → matches nothing (starts with [#)
|
|
340
|
+
* "Item #1" → matches entirely (#1 is not #context()
|
|
341
|
+
* "#context(x)" → matches nothing (starts with #context()
|
|
304
342
|
*/
|
|
305
343
|
export const Text = createToken({
|
|
306
344
|
name: 'Text',
|
|
307
|
-
pattern: /(?:[^\[{]|\[(?![#E])|\{(?!\{))+/,
|
|
345
|
+
pattern: /(?:[^\[{#]|\[(?![#E])|\{(?!\{)|#(?!context\())+/,
|
|
308
346
|
line_breaks: true,
|
|
309
347
|
});
|
|
310
348
|
// =============================================================================
|
|
@@ -325,6 +363,8 @@ const defaultModeTokens = [
|
|
|
325
363
|
SectionOpen,
|
|
326
364
|
Import,
|
|
327
365
|
Include,
|
|
366
|
+
// Context reference (push to CONTEXT_ARG_MODE)
|
|
367
|
+
ContextOpen,
|
|
328
368
|
// Variable (push to VARIABLE_MODE)
|
|
329
369
|
VariableOpenDefault,
|
|
330
370
|
// Plain text (catch-all - must be last)
|
|
@@ -378,6 +418,16 @@ const operatorArgModeTokens = [
|
|
|
378
418
|
// Free-form text content
|
|
379
419
|
OperatorArgText,
|
|
380
420
|
];
|
|
421
|
+
/**
|
|
422
|
+
* Tokens used inside context arguments #context( ... )
|
|
423
|
+
* Captures the context path until closing paren.
|
|
424
|
+
*/
|
|
425
|
+
const contextArgModeTokens = [
|
|
426
|
+
// End of context (pop mode)
|
|
427
|
+
RParenContextArg,
|
|
428
|
+
// Context path text
|
|
429
|
+
ContextArgText,
|
|
430
|
+
];
|
|
381
431
|
// =============================================================================
|
|
382
432
|
// MULTI-MODE LEXER DEFINITION
|
|
383
433
|
// =============================================================================
|
|
@@ -391,6 +441,7 @@ const multiModeLexerDefinition = {
|
|
|
391
441
|
DIRECTIVE_MODE: directiveModeTokens,
|
|
392
442
|
VARIABLE_MODE: variableModeTokens,
|
|
393
443
|
OPERATOR_ARG_MODE: operatorArgModeTokens,
|
|
444
|
+
CONTEXT_ARG_MODE: contextArgModeTokens,
|
|
394
445
|
},
|
|
395
446
|
defaultMode: 'DEFAULT_MODE',
|
|
396
447
|
};
|
|
@@ -414,6 +465,8 @@ export const allTokens = [
|
|
|
414
465
|
SectionOpen,
|
|
415
466
|
Import,
|
|
416
467
|
Include,
|
|
468
|
+
// Context reference
|
|
469
|
+
ContextOpen,
|
|
417
470
|
// Mode-specific variable tokens (extend categories)
|
|
418
471
|
VariableOpenDefault,
|
|
419
472
|
VariableOpenDirective,
|
|
@@ -427,9 +480,12 @@ export const allTokens = [
|
|
|
427
480
|
LParen,
|
|
428
481
|
RParen,
|
|
429
482
|
RParenOperatorArg,
|
|
483
|
+
RParenContextArg,
|
|
430
484
|
Comma,
|
|
431
485
|
// Operator argument mode tokens
|
|
432
486
|
OperatorArgText,
|
|
487
|
+
// Context argument mode tokens
|
|
488
|
+
ContextArgText,
|
|
433
489
|
// Literals
|
|
434
490
|
StringLiteral,
|
|
435
491
|
NumberLiteral,
|
package/dist/parser/lexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,WAAW,EACX,KAAK,GAGN,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,gFAAgF;AAChF,mBAAmB;AACnB,6DAA6D;AAC7D,iFAAiF;AACjF,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;IACtC,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,wBAAwB;CAC5C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;IACvC,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,wBAAwB;CAC5C,CAAC,CAAC;AAEH,gFAAgF;AAChF,wDAAwD;AACxD,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC/B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,YAAY;CACtB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;IACpC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,iBAAiB;CAC3B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;IAC9B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,UAAU;CACpB,CAAC,CAAC;AAEH,gFAAgF;AAChF,6CAA6C;AAC7C,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,gBAAgB;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,gBAAgB;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;IACrC,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,gBAAgB;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,gBAAgB;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC;IACjC,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,gBAAgB;CAC5B,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;IACrC,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,kBAAkB;CAC9B,CAAC,CAAC;AAEH,gFAAgF;AAChF,2CAA2C;AAC3C,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,mBAAmB,GAAG,WAAW,CAAC;IACtC,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,eAAe;IAC1B,UAAU,EAAE,CAAC,YAAY,CAAC;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,qBAAqB,GAAG,WAAW,CAAC;IACxC,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,CAAC,YAAY,CAAC;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,qBAAqB,GAAG,WAAW,CAAC;IACxC,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,CAAC,aAAa,CAAC;CAC5B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,sBAAsB,GAAG,WAAW,CAAC;IACzC,IAAI,EAAE,wBAAwB;IAC9B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,CAAC,aAAa,CAAC;CAC5B,CAAC,CAAC;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;IACtC,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC;IAClC,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,yBAAyB;CACnC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;IACpC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,6DAA6D;CACvE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;IACvC,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,iBAAiB;CAC3B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;IACvC,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,iBAAiB;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,mBAAmB;CAC/B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,iBAAiB,GAAG,WAAW,CAAC;IACpC,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,4CAA4C;CACnE,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACzC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;IACxC,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,gBAAgB,GAAG,WAAW,CAAC;IACnC,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,4CAA4C;CACnE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC/B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,GAAG;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,GAAG;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;IACnC,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM;CAChB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;IACpC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK,CAAC,OAAO;CACrB,CAAC,CAAC;AAEH,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;IAC9B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,iDAAiD;IAC1D,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,iBAAiB,GAAgB;IACrC,6CAA6C;IAC7C,KAAK;IACL,UAAU;IACV,IAAI;IAEJ,6CAA6C;IAC7C,MAAM;IACN,MAAM;IACN,WAAW;IACX,MAAM;IACN,OAAO;IAEP,+CAA+C;IAC/C,WAAW;IAEX,mCAAmC;IACnC,mBAAmB;IAEnB,wCAAwC;IACxC,IAAI;CACL,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAgB;IACvC,2BAA2B;IAC3B,YAAY;IAEZ,gCAAgC;IAChC,qBAAqB;IACrB,sBAAsB;IAEtB,4BAA4B;IAC5B,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IAEL,sDAAsD;IACtD,aAAa;IACb,aAAa;IACb,UAAU;IAEV,uBAAuB;IACvB,UAAU;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAgB;IACtC,0BAA0B;IAC1B,qBAAqB;IAErB,mBAAmB;IACnB,SAAS;IAET,WAAW;IACX,aAAa;IACb,aAAa;IACb,UAAU;IAEV,uBAAuB;IACvB,UAAU;CACX,CAAC;AAEF;;;GAGG;AACH,MAAM,qBAAqB,GAAgB;IACzC,6BAA6B;IAC7B,iBAAiB;IAEjB,yBAAyB;IACzB,eAAe;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAgB;IACxC,4BAA4B;IAC5B,gBAAgB;IAEhB,oBAAoB;IACpB,cAAc;CACf,CAAC;AAEF,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,wBAAwB,GAA8B;IAC1D,KAAK,EAAE;QACL,YAAY,EAAE,iBAAiB;QAC/B,cAAc,EAAE,mBAAmB;QACnC,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,qBAAqB;QACxC,gBAAgB,EAAE,oBAAoB;KACvC;IACD,WAAW,EAAE,cAAc;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgB;IACpC,qCAAqC;IACrC,YAAY;IACZ,aAAa;IAEb,qBAAqB;IACrB,KAAK;IACL,UAAU;IACV,IAAI;IACJ,MAAM;IACN,MAAM;IACN,WAAW;IACX,MAAM;IACN,OAAO;IAEP,oBAAoB;IACpB,WAAW;IAEX,oDAAoD;IACpD,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IAEtB,4BAA4B;IAC5B,QAAQ;IACR,SAAS;IACT,MAAM;IACN,YAAY;IACZ,MAAM;IACN,MAAM;IACN,iBAAiB;IACjB,gBAAgB;IAChB,KAAK;IAEL,gCAAgC;IAChC,eAAe;IAEf,+BAA+B;IAC/B,cAAc;IAEd,WAAW;IACX,aAAa;IACb,aAAa;IACb,UAAU;IAEV,aAAa;IACb,UAAU;IAEV,OAAO;IACP,IAAI;CACL,CAAC;AAEF,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,wBAAwB,EAAE;IAC3D,mEAAmE;IACnE,oEAAoE;IACpE,0EAA0E;IAC1E,mBAAmB,EAAE,KAAK;IAC1B,gBAAgB,EAAE,MAAM,EAAE,gCAAgC;CAC3D,CAAC,CAAC;AAEH,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA6C;IAE7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACjC,OAAO,uBAAuB,IAAI,YAAY,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EAIf,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EAIf,MAAM,aAAa,CAAC;AAyuBrB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQ9D;AA2CD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA6CnD"}
|
package/dist/parser/parser.js
CHANGED
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
* include := "[#INCLUDE" IDENTIFIER "]"
|
|
25
25
|
*/
|
|
26
26
|
import { CstParser } from 'chevrotain';
|
|
27
|
-
import { allTokens, tokenize, formatLexerErrors, Text, VariableOpen, VariableClose, IfOpen, ElseIf, Else, EndIf, SectionOpen, EndSection, Import, Include, Operator, Identifier, StringLiteral, NumberLiteral, LParen, RParen, CloseBracket, DefaultOp, Equals, OperatorArgText, } from './lexer.js';
|
|
28
|
-
import { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, } from './ast.js';
|
|
27
|
+
import { allTokens, tokenize, formatLexerErrors, Text, VariableOpen, VariableClose, IfOpen, ElseIf, Else, EndIf, SectionOpen, EndSection, Import, Include, ContextOpen, Operator, Identifier, StringLiteral, NumberLiteral, LParen, RParen, CloseBracket, DefaultOp, Equals, OperatorArgText, ContextArgText, } from './lexer.js';
|
|
28
|
+
import { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, createContextNode, } from './ast.js';
|
|
29
29
|
// =============================================================================
|
|
30
30
|
// PARSER CLASS
|
|
31
31
|
// =============================================================================
|
|
@@ -55,7 +55,7 @@ class EchoParser extends CstParser {
|
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
57
|
/**
|
|
58
|
-
* A node can be text, variable, conditional, section, import, or
|
|
58
|
+
* A node can be text, variable, conditional, section, import, include, or context
|
|
59
59
|
*/
|
|
60
60
|
node = this.RULE('node', () => {
|
|
61
61
|
this.OR([
|
|
@@ -65,6 +65,7 @@ class EchoParser extends CstParser {
|
|
|
65
65
|
{ ALT: () => this.SUBRULE(this.sectionNode) },
|
|
66
66
|
{ ALT: () => this.SUBRULE(this.importNode) },
|
|
67
67
|
{ ALT: () => this.SUBRULE(this.includeNode) },
|
|
68
|
+
{ ALT: () => this.SUBRULE(this.contextNode) },
|
|
68
69
|
]);
|
|
69
70
|
});
|
|
70
71
|
/**
|
|
@@ -183,6 +184,20 @@ class EchoParser extends CstParser {
|
|
|
183
184
|
this.CONSUME(Identifier);
|
|
184
185
|
this.CONSUME(CloseBracket);
|
|
185
186
|
});
|
|
187
|
+
/**
|
|
188
|
+
* Context reference: #context(path)
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* #context(product-image) - From prompt's context mapping
|
|
192
|
+
* #context(plp://logo-v2) - Direct Context Store reference
|
|
193
|
+
*/
|
|
194
|
+
contextNode = this.RULE('contextNode', () => {
|
|
195
|
+
this.CONSUME(ContextOpen);
|
|
196
|
+
this.OPTION(() => {
|
|
197
|
+
this.CONSUME(ContextArgText);
|
|
198
|
+
});
|
|
199
|
+
this.CONSUME(RParen);
|
|
200
|
+
});
|
|
186
201
|
}
|
|
187
202
|
// =============================================================================
|
|
188
203
|
// PARSER INSTANCE
|
|
@@ -249,6 +264,9 @@ class EchoAstVisitor extends BaseCstVisitor {
|
|
|
249
264
|
if (ctx.includeNode?.[0]) {
|
|
250
265
|
return this.visit(ctx.includeNode[0]);
|
|
251
266
|
}
|
|
267
|
+
if (ctx.contextNode?.[0]) {
|
|
268
|
+
return this.visit(ctx.contextNode[0]);
|
|
269
|
+
}
|
|
252
270
|
return undefined;
|
|
253
271
|
}
|
|
254
272
|
/**
|
|
@@ -474,6 +492,24 @@ class EchoAstVisitor extends BaseCstVisitor {
|
|
|
474
492
|
: defaultLocation;
|
|
475
493
|
return createIncludeNode(name, location);
|
|
476
494
|
}
|
|
495
|
+
/**
|
|
496
|
+
* Visit a context node.
|
|
497
|
+
*
|
|
498
|
+
* @example
|
|
499
|
+
* #context(product-image) - From prompt's context mapping
|
|
500
|
+
* #context(plp://logo-v2) - Direct Context Store reference
|
|
501
|
+
*/
|
|
502
|
+
contextNode(ctx) {
|
|
503
|
+
const contextOpenToken = ctx.ContextOpen?.[0];
|
|
504
|
+
const rparenToken = ctx.RParen?.[0];
|
|
505
|
+
const argTextToken = ctx.ContextArgText?.[0];
|
|
506
|
+
// Extract the path, trimming any whitespace
|
|
507
|
+
const path = argTextToken?.image?.trim() ?? '';
|
|
508
|
+
const location = contextOpenToken && rparenToken
|
|
509
|
+
? mergeLocations(getTokenLocation(contextOpenToken), getTokenLocation(rparenToken))
|
|
510
|
+
: defaultLocation;
|
|
511
|
+
return createContextNode(path, location);
|
|
512
|
+
}
|
|
477
513
|
}
|
|
478
514
|
// Create singleton visitor instance
|
|
479
515
|
const astVisitor = new EchoAstVisitor();
|