@walkeros/cli 0.4.2 → 0.5.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/CHANGELOG.md +13 -0
- package/README.md +140 -9
- package/dist/__tests__/bundle/bundler-helpers.test.js +0 -134
- package/dist/__tests__/bundle/bundler-helpers.test.js.map +1 -1
- package/dist/__tests__/bundle/bundler.test.js +121 -61
- package/dist/__tests__/bundle/bundler.test.js.map +1 -1
- package/dist/__tests__/bundle/programmatic.test.js +0 -2
- package/dist/__tests__/bundle/programmatic.test.js.map +1 -1
- package/dist/__tests__/config-loader.test.js +0 -2
- package/dist/__tests__/config-loader.test.js.map +1 -1
- package/dist/__tests__/simulate/server-simulate.integration.test.js +0 -1
- package/dist/__tests__/simulate/server-simulate.integration.test.js.map +1 -1
- package/dist/commands/bundle/bundler.d.ts +18 -0
- package/dist/commands/bundle/bundler.d.ts.map +1 -1
- package/dist/commands/bundle/bundler.js +193 -77
- package/dist/commands/bundle/bundler.js.map +1 -1
- package/dist/commands/run/execution.d.ts.map +1 -1
- package/dist/commands/run/execution.js +6 -2
- package/dist/commands/run/execution.js.map +1 -1
- package/dist/config/build-defaults.d.ts.map +1 -1
- package/dist/config/build-defaults.js +0 -2
- package/dist/config/build-defaults.js.map +1 -1
- package/dist/core/asset-resolver.d.ts +4 -4
- package/dist/core/asset-resolver.d.ts.map +1 -1
- package/dist/core/asset-resolver.js +6 -10
- package/dist/core/asset-resolver.js.map +1 -1
- package/dist/core/docker.d.ts.map +1 -1
- package/dist/core/docker.js +6 -2
- package/dist/core/docker.js.map +1 -1
- package/dist/examples/README.md +13 -1
- package/dist/examples/flow-order-complete.json +1 -2
- package/dist/examples/flow-simple.json +1 -2
- package/dist/examples/server-collect.json +4 -4
- package/dist/index.d.ts +1 -114
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +321 -386
- package/dist/index.js.map +1 -1
- package/dist/types/bundle.d.ts +0 -5
- package/dist/types/bundle.d.ts.map +1 -1
- package/dist/walker.js +1 -1
- package/examples/README.md +13 -1
- package/examples/flow-order-complete.json +1 -2
- package/examples/flow-simple.json +1 -2
- package/examples/server-collect.json +4 -4
- package/package.json +2 -4
- package/dist/__tests__/bundle/serializer.test.d.ts +0 -2
- package/dist/__tests__/bundle/serializer.test.d.ts.map +0 -1
- package/dist/__tests__/bundle/serializer.test.js +0 -173
- package/dist/__tests__/bundle/serializer.test.js.map +0 -1
- package/dist/__tests__/bundle/template-engine.test.d.ts +0 -2
- package/dist/__tests__/bundle/template-engine.test.d.ts.map +0 -1
- package/dist/__tests__/bundle/template-engine.test.js +0 -107
- package/dist/__tests__/bundle/template-engine.test.js.map +0 -1
- package/dist/commands/bundle/serializer.d.ts +0 -23
- package/dist/commands/bundle/serializer.d.ts.map +0 -1
- package/dist/commands/bundle/serializer.js +0 -127
- package/dist/commands/bundle/serializer.js.map +0 -1
- package/dist/commands/bundle/template-engine.d.ts +0 -20
- package/dist/commands/bundle/template-engine.d.ts.map +0 -1
- package/dist/commands/bundle/template-engine.js +0 -54
- package/dist/commands/bundle/template-engine.js.map +0 -1
- package/dist/templates/server.hbs +0 -29
- package/dist/templates/web.hbs +0 -45
- package/dist/types/template.d.ts +0 -108
- package/dist/types/template.d.ts.map +0 -1
- package/dist/types/template.js +0 -10
- package/dist/types/template.js.map +0 -1
- package/templates/server.hbs +0 -29
- package/templates/web.hbs +0 -45
package/dist/types/bundle.d.ts
CHANGED
|
@@ -31,11 +31,6 @@ export interface CLIBuildOptions extends Pick<ESBuildOptions, 'external'> {
|
|
|
31
31
|
* @default ".tmp"
|
|
32
32
|
*/
|
|
33
33
|
tempDir?: string;
|
|
34
|
-
/**
|
|
35
|
-
* Custom template file path.
|
|
36
|
-
* @default undefined (uses platform-specific default)
|
|
37
|
-
*/
|
|
38
|
-
template?: string;
|
|
39
34
|
/**
|
|
40
35
|
* Enable package caching.
|
|
41
36
|
* @default true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/types/bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9D,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,cAAc,EACd,UAAU,CACX;IACD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/types/bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9D,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,cAAc,EACd,UAAU,CACX;IACD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IAExB;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IAE/B;;OAEG;IACH,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAE7B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;CACnE"}
|
package/dist/walker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{(
|
|
1
|
+
"use strict";(()=>{var o=Object.defineProperty;var s={};((t,e)=>{for(var n in e)o(t,n,{get:e[n],enumerable:!0})})(s,{Level:()=>r});var r=(t=>(t[t.ERROR=0]="ERROR",t[t.INFO=1]="INFO",t[t.DEBUG=2]="DEBUG",t))(r||{});})();
|
package/examples/README.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# walkerOS Flow Examples
|
|
2
2
|
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
These are example configurations - see the main [CLI README](../README.md) for
|
|
6
|
+
installation.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
|
|
10
|
+
Use `walkeros bundle <example>.json` to build any example, then `walkeros run`
|
|
11
|
+
to execute.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
3
15
|
This directory contains example flow configurations demonstrating various
|
|
4
16
|
walkerOS use cases.
|
|
5
17
|
|
|
@@ -340,4 +352,4 @@ The event name is parsed as: `const [entity, action] = event.split(' ')`
|
|
|
340
352
|
1. Try each example with `walkeros bundle` and `walkeros simulate`
|
|
341
353
|
2. Modify examples to match your tracking requirements
|
|
342
354
|
3. Create custom flow files for your use case
|
|
343
|
-
4. Deploy to production
|
|
355
|
+
4. Deploy to production
|
|
@@ -9,17 +9,16 @@
|
|
|
9
9
|
"imports": ["startFlow"]
|
|
10
10
|
},
|
|
11
11
|
"@walkeros/server-source-express": {
|
|
12
|
-
"version": "latest"
|
|
13
|
-
"imports": ["sourceExpress"]
|
|
12
|
+
"version": "latest"
|
|
14
13
|
},
|
|
15
14
|
"@walkeros/destination-demo": {
|
|
16
|
-
"version": "latest"
|
|
17
|
-
"imports": ["destinationDemo"]
|
|
15
|
+
"version": "latest"
|
|
18
16
|
}
|
|
19
17
|
},
|
|
20
18
|
"sources": {
|
|
21
19
|
"http": {
|
|
22
20
|
"package": "@walkeros/server-source-express",
|
|
21
|
+
"code": "sourceExpress",
|
|
23
22
|
"config": {
|
|
24
23
|
"settings": {
|
|
25
24
|
"path": "/collect",
|
|
@@ -33,6 +32,7 @@
|
|
|
33
32
|
"destinations": {
|
|
34
33
|
"demo": {
|
|
35
34
|
"package": "@walkeros/destination-demo",
|
|
35
|
+
"code": "destinationDemo",
|
|
36
36
|
"config": {
|
|
37
37
|
"settings": {
|
|
38
38
|
"name": "Server Collection Demo",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walkeros/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "walkerOS CLI - Bundle and deploy walkerOS components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist/**",
|
|
20
|
-
"templates/**",
|
|
21
20
|
"examples/**",
|
|
22
21
|
"README.md",
|
|
23
22
|
"CHANGELOG.md"
|
|
@@ -34,14 +33,13 @@
|
|
|
34
33
|
"docker:publish": "bash scripts/publish-docker.sh"
|
|
35
34
|
},
|
|
36
35
|
"dependencies": {
|
|
37
|
-
"@walkeros/core": "^0.
|
|
36
|
+
"@walkeros/core": "^0.5.0",
|
|
38
37
|
"@walkeros/docker": "*",
|
|
39
38
|
"@walkeros/server-core": "*",
|
|
40
39
|
"chalk": "^5.3.0",
|
|
41
40
|
"commander": "^11.0.0",
|
|
42
41
|
"esbuild": "^0.19.0",
|
|
43
42
|
"fs-extra": "^11.0.0",
|
|
44
|
-
"handlebars": "^4.7.8",
|
|
45
43
|
"jsdom": "^22.1.0",
|
|
46
44
|
"pacote": "^17.0.0"
|
|
47
45
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bundle/serializer.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { serializeToJS, serializeConfig, processTemplateVariables, } from '../../commands/bundle/serializer.js';
|
|
2
|
-
describe('Serializer', () => {
|
|
3
|
-
describe('serializeToJS', () => {
|
|
4
|
-
it('should serialize primitives correctly', () => {
|
|
5
|
-
expect(serializeToJS(null)).toBe('null');
|
|
6
|
-
expect(serializeToJS(undefined)).toBe('undefined');
|
|
7
|
-
expect(serializeToJS(true)).toBe('true');
|
|
8
|
-
expect(serializeToJS(false)).toBe('false');
|
|
9
|
-
expect(serializeToJS(42)).toBe('42');
|
|
10
|
-
expect(serializeToJS('hello')).toBe('"hello"');
|
|
11
|
-
});
|
|
12
|
-
it('should serialize strings with single quotes when specified', () => {
|
|
13
|
-
expect(serializeToJS('test', { singleQuotes: true })).toBe("'test'");
|
|
14
|
-
});
|
|
15
|
-
it('should detect and preserve arrow functions', () => {
|
|
16
|
-
const fn1 = '(x) => x * 2';
|
|
17
|
-
const fn2 = 'entity => entity.type === "product"';
|
|
18
|
-
const fn3 = '() => { return true; }';
|
|
19
|
-
expect(serializeToJS(fn1)).toBe(fn1);
|
|
20
|
-
expect(serializeToJS(fn2)).toBe(fn2);
|
|
21
|
-
expect(serializeToJS(fn3)).toBe(fn3);
|
|
22
|
-
});
|
|
23
|
-
it('should serialize arrays correctly', () => {
|
|
24
|
-
expect(serializeToJS([])).toBe('[]');
|
|
25
|
-
expect(serializeToJS([1, 2, 3])).toBe('[\n 1,\n 2,\n 3\n]');
|
|
26
|
-
expect(serializeToJS(['a', 'b'])).toBe('[\n "a",\n "b"\n]');
|
|
27
|
-
});
|
|
28
|
-
it('should serialize objects correctly', () => {
|
|
29
|
-
expect(serializeToJS({})).toBe('{}');
|
|
30
|
-
const simple = { name: 'test', value: 42 };
|
|
31
|
-
expect(serializeToJS(simple)).toBe('{\n name: "test",\n value: 42\n}');
|
|
32
|
-
});
|
|
33
|
-
it('should handle nested objects and arrays', () => {
|
|
34
|
-
const complex = {
|
|
35
|
-
settings: {
|
|
36
|
-
ga4: {
|
|
37
|
-
measurementId: 'G-123',
|
|
38
|
-
enabled: true,
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
items: [
|
|
42
|
-
{ id: 1, name: 'item1' },
|
|
43
|
-
{ id: 2, name: 'item2' },
|
|
44
|
-
],
|
|
45
|
-
};
|
|
46
|
-
const result = serializeToJS(complex);
|
|
47
|
-
expect(result).toContain('settings: {');
|
|
48
|
-
expect(result).toContain('ga4: {');
|
|
49
|
-
expect(result).toContain('measurementId: "G-123"');
|
|
50
|
-
expect(result).toContain('items: [');
|
|
51
|
-
});
|
|
52
|
-
it('should handle keys that need quotes', () => {
|
|
53
|
-
const obj = {
|
|
54
|
-
'key-with-dash': 'value1',
|
|
55
|
-
'123numeric': 'value2',
|
|
56
|
-
'key with space': 'value3',
|
|
57
|
-
normalKey: 'value4',
|
|
58
|
-
};
|
|
59
|
-
const result = serializeToJS(obj);
|
|
60
|
-
expect(result).toContain('"key-with-dash": "value1"');
|
|
61
|
-
expect(result).toContain('"123numeric": "value2"');
|
|
62
|
-
expect(result).toContain('"key with space": "value3"');
|
|
63
|
-
expect(result).toContain('normalKey: "value4"');
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
describe('serializeConfig', () => {
|
|
67
|
-
it('should handle empty config', () => {
|
|
68
|
-
expect(serializeConfig({})).toBe('{}');
|
|
69
|
-
});
|
|
70
|
-
it('should serialize config with single quotes', () => {
|
|
71
|
-
const config = {
|
|
72
|
-
settings: {
|
|
73
|
-
endpoint: 'https://api.example.com',
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
const result = serializeConfig(config);
|
|
77
|
-
expect(result).toContain("endpoint: 'https://api.example.com'");
|
|
78
|
-
});
|
|
79
|
-
it('should handle complex mapping configurations', () => {
|
|
80
|
-
const config = {
|
|
81
|
-
mapping: {
|
|
82
|
-
order: {
|
|
83
|
-
complete: {
|
|
84
|
-
name: 'purchase',
|
|
85
|
-
data: {
|
|
86
|
-
map: {
|
|
87
|
-
transaction_id: 'data.id',
|
|
88
|
-
condition: '(entity) => entity.entity === "product"',
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
const result = serializeConfig(config);
|
|
96
|
-
expect(result).toContain("name: 'purchase'");
|
|
97
|
-
expect(result).toContain("transaction_id: 'data.id'");
|
|
98
|
-
expect(result).toContain('(entity) => entity.entity === "product"');
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('processTemplateVariables', () => {
|
|
102
|
-
it('should process sources and destinations config objects', () => {
|
|
103
|
-
const variables = {
|
|
104
|
-
sources: {
|
|
105
|
-
browser: {
|
|
106
|
-
code: 'sourceBrowser',
|
|
107
|
-
config: { debug: true },
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
destinations: {
|
|
111
|
-
gtag: {
|
|
112
|
-
code: 'destinationGtag',
|
|
113
|
-
config: {
|
|
114
|
-
settings: {
|
|
115
|
-
ga4: { measurementId: 'G-123' },
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
const result = processTemplateVariables(variables);
|
|
122
|
-
expect(result.sources?.browser?.config).toBe('{\n debug: true\n}');
|
|
123
|
-
expect(result.destinations?.gtag?.config).toContain("measurementId: 'G-123'");
|
|
124
|
-
});
|
|
125
|
-
it('should handle string configs (pass through)', () => {
|
|
126
|
-
const variables = {
|
|
127
|
-
sources: {
|
|
128
|
-
test: {
|
|
129
|
-
code: 'source',
|
|
130
|
-
config: '{ debug: true }',
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
|
-
const result = processTemplateVariables(variables);
|
|
135
|
-
expect(result.sources?.test?.config).toBe('{ debug: true }');
|
|
136
|
-
});
|
|
137
|
-
it('should handle undefined env values', () => {
|
|
138
|
-
const variables = {
|
|
139
|
-
sources: {
|
|
140
|
-
test: {
|
|
141
|
-
code: 'source',
|
|
142
|
-
config: {},
|
|
143
|
-
env: undefined,
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
const result = processTemplateVariables(variables);
|
|
148
|
-
expect(result.sources?.test?.env).toBeUndefined();
|
|
149
|
-
expect('env' in result.sources.test).toBe(false);
|
|
150
|
-
});
|
|
151
|
-
it('should handle collector configuration', () => {
|
|
152
|
-
const variables = {
|
|
153
|
-
collector: {
|
|
154
|
-
settings: {
|
|
155
|
-
debug: true,
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
|
-
};
|
|
159
|
-
const result = processTemplateVariables(variables);
|
|
160
|
-
expect(result.collector).toContain('debug: true');
|
|
161
|
-
});
|
|
162
|
-
it('should preserve other variables', () => {
|
|
163
|
-
const variables = {
|
|
164
|
-
title: 'My App',
|
|
165
|
-
version: '1.0.0',
|
|
166
|
-
};
|
|
167
|
-
const result = processTemplateVariables(variables);
|
|
168
|
-
expect(result.title).toBe('My App');
|
|
169
|
-
expect(result.version).toBe('1.0.0');
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
//# sourceMappingURL=serializer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/serializer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bundle/template-engine.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import fs from 'fs-extra';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { TemplateEngine } from '../../commands/bundle/template-engine.js';
|
|
4
|
-
import { getId } from '@walkeros/core';
|
|
5
|
-
describe('TemplateEngine', () => {
|
|
6
|
-
const testOutputDir = path.join('.tmp', `template-${Date.now()}-${getId()}`);
|
|
7
|
-
const engine = new TemplateEngine();
|
|
8
|
-
beforeEach(async () => {
|
|
9
|
-
await fs.ensureDir(testOutputDir);
|
|
10
|
-
});
|
|
11
|
-
afterEach(async () => {
|
|
12
|
-
await fs.remove(testOutputDir);
|
|
13
|
-
});
|
|
14
|
-
describe('Templates', () => {
|
|
15
|
-
it('should process template with sources and destinations', async () => {
|
|
16
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
17
|
-
await fs.writeFile(templatePath, '{{{CODE}}}\nSources: {{#each sources}}{{@key}} {{/each}}\nDestinations: {{#each destinations}}{{@key}} {{/each}}');
|
|
18
|
-
const sources = {
|
|
19
|
-
browser: { code: 'sourceBrowser', config: {} },
|
|
20
|
-
};
|
|
21
|
-
const destinations = {
|
|
22
|
-
gtag: { code: 'destinationGtag', config: {} },
|
|
23
|
-
};
|
|
24
|
-
const collector = {};
|
|
25
|
-
const result = await engine.process(templatePath, 'console.log("test");', sources, destinations, collector, {});
|
|
26
|
-
expect(result).toContain('console.log("test");');
|
|
27
|
-
expect(result).toContain('Sources: browser');
|
|
28
|
-
expect(result).toContain('Destinations: gtag');
|
|
29
|
-
});
|
|
30
|
-
it('should replace bundle placeholder', async () => {
|
|
31
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
32
|
-
await fs.writeFile(templatePath, 'Start\n{{{CODE}}}\nEnd');
|
|
33
|
-
const result = await engine.process(templatePath, 'const x = 42;', {}, {}, {}, {});
|
|
34
|
-
expect(result).toBe('Start\nconst x = 42;\nEnd');
|
|
35
|
-
});
|
|
36
|
-
it('should handle missing variables gracefully', async () => {
|
|
37
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
38
|
-
await fs.writeFile(templatePath, '{{{CODE}}} - {{MISSING}}');
|
|
39
|
-
const result = await engine.process(templatePath, 'code', {}, {}, {}, {});
|
|
40
|
-
expect(result).toBe('code - ');
|
|
41
|
-
});
|
|
42
|
-
it('should handle config serialization', async () => {
|
|
43
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
44
|
-
await fs.writeFile(templatePath, '{{{CODE}}}\n{{#each sources}}Code: {{{code}}}, Config: {{{config}}}\n{{/each}}');
|
|
45
|
-
const sources = {
|
|
46
|
-
browser: {
|
|
47
|
-
code: 'sourceBrowser',
|
|
48
|
-
config: { settings: { prefix: 'data-elb' } },
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
const result = await engine.process(templatePath, 'const test = true;', sources, {}, {}, {});
|
|
52
|
-
expect(result).toContain('Code: sourceBrowser');
|
|
53
|
-
expect(result).toContain('Config: {');
|
|
54
|
-
expect(result).toContain('prefix');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe('Object Iteration', () => {
|
|
58
|
-
it('should iterate over sources and destinations objects', async () => {
|
|
59
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
60
|
-
await fs.writeFile(templatePath, '{{#each sources}}Source {{@key}}: {{code}}\n{{/each}}{{#each destinations}}Destination {{@key}}: {{code}}\n{{/each}}{{{CODE}}}');
|
|
61
|
-
const sources = {
|
|
62
|
-
browser: { code: 'sourceBrowser' },
|
|
63
|
-
dataLayer: { code: 'sourceDataLayer' },
|
|
64
|
-
};
|
|
65
|
-
const destinations = {
|
|
66
|
-
gtag: { code: 'destinationGtag' },
|
|
67
|
-
api: { code: 'destinationAPI' },
|
|
68
|
-
};
|
|
69
|
-
const result = await engine.process(templatePath, 'const bundle = true;', sources, destinations, {});
|
|
70
|
-
expect(result).toContain('Source browser: sourceBrowser');
|
|
71
|
-
expect(result).toContain('Source dataLayer: sourceDataLayer');
|
|
72
|
-
expect(result).toContain('Destination gtag: destinationGtag');
|
|
73
|
-
expect(result).toContain('Destination api: destinationAPI');
|
|
74
|
-
expect(result).toContain('const bundle = true;');
|
|
75
|
-
});
|
|
76
|
-
it('should handle collector configuration', async () => {
|
|
77
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
78
|
-
await fs.writeFile(templatePath, '{{{CODE}}}{{#if collector}}\nCollector: {{{collector}}}{{/if}}');
|
|
79
|
-
const collector = { settings: { debug: true } };
|
|
80
|
-
const result = await engine.process(templatePath, 'const code = 1;', {}, {}, collector, {});
|
|
81
|
-
expect(result).toContain('const code = 1;');
|
|
82
|
-
expect(result).toContain('Collector: {');
|
|
83
|
-
expect(result).toContain('debug');
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
describe('Edge Cases', () => {
|
|
87
|
-
it('should handle template without CODE placeholder', async () => {
|
|
88
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
89
|
-
await fs.writeFile(templatePath, 'Header only');
|
|
90
|
-
const result = await engine.process(templatePath, 'const code = true;', {}, {}, {}, {});
|
|
91
|
-
expect(result).toBe('Header only');
|
|
92
|
-
});
|
|
93
|
-
it('should handle minimal template content', async () => {
|
|
94
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
95
|
-
await fs.writeFile(templatePath, '{{{CODE}}}');
|
|
96
|
-
const result = await engine.process(templatePath, 'just code', {}, {}, {}, {});
|
|
97
|
-
expect(result).toBe('just code');
|
|
98
|
-
});
|
|
99
|
-
it('should handle empty bundle code', async () => {
|
|
100
|
-
const templatePath = path.join(testOutputDir, 'test.hbs');
|
|
101
|
-
await fs.writeFile(templatePath, 'Template: {{{CODE}}}');
|
|
102
|
-
const result = await engine.process(templatePath, '', {}, {}, {}, {});
|
|
103
|
-
expect(result).toBe('Template: ');
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
//# sourceMappingURL=template-engine.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/template-engine.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON to JavaScript serializer for config objects
|
|
3
|
-
* Converts JSON objects to valid JavaScript code for use in templates
|
|
4
|
-
*/
|
|
5
|
-
import type { ProcessedTemplateVariables } from '../../types/template.js';
|
|
6
|
-
export interface SerializerOptions {
|
|
7
|
-
indent?: number;
|
|
8
|
-
singleQuotes?: boolean;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Serialize a value to JavaScript code
|
|
12
|
-
*/
|
|
13
|
-
export declare function serializeToJS(value: unknown, options?: SerializerOptions): string;
|
|
14
|
-
/**
|
|
15
|
-
* Serialize config object for template usage
|
|
16
|
-
* Handles special cases for walkerOS configurations
|
|
17
|
-
*/
|
|
18
|
-
export declare function serializeConfig(config: Record<string, unknown>): string;
|
|
19
|
-
/**
|
|
20
|
-
* Process template variables to serialize config objects
|
|
21
|
-
*/
|
|
22
|
-
export declare function processTemplateVariables(variables: Record<string, unknown>): ProcessedTemplateVariables;
|
|
23
|
-
//# sourceMappingURL=serializer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/serializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAGV,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAyER;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAOvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,0BAA0B,CAmD5B"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON to JavaScript serializer for config objects
|
|
3
|
-
* Converts JSON objects to valid JavaScript code for use in templates
|
|
4
|
-
*/
|
|
5
|
-
import { isObject } from '../../config/index.js';
|
|
6
|
-
/**
|
|
7
|
-
* Serialize a value to JavaScript code
|
|
8
|
-
*/
|
|
9
|
-
export function serializeToJS(value, options = {}) {
|
|
10
|
-
const { indent = 2, singleQuotes = false } = options;
|
|
11
|
-
const quote = singleQuotes ? "'" : '"';
|
|
12
|
-
function serialize(val, currentIndent = 0) {
|
|
13
|
-
if (val === null)
|
|
14
|
-
return 'null';
|
|
15
|
-
if (val === undefined)
|
|
16
|
-
return 'undefined';
|
|
17
|
-
if (typeof val === 'boolean' || typeof val === 'number') {
|
|
18
|
-
return String(val);
|
|
19
|
-
}
|
|
20
|
-
if (typeof val === 'string') {
|
|
21
|
-
// Check if string contains arrow function syntax
|
|
22
|
-
if (val.includes('=>')) {
|
|
23
|
-
// More comprehensive check for arrow function patterns
|
|
24
|
-
const arrowPatterns = [
|
|
25
|
-
/^\s*\([^)]*\)\s*=>/, // (param) => or () =>
|
|
26
|
-
/^\s*\w+\s*=>/, // param =>
|
|
27
|
-
/^\s*\([^)]*\)\s*=>\s*\{/, // (param) => {
|
|
28
|
-
/^\s*\w+\s*=>\s*\{/, // param => {
|
|
29
|
-
];
|
|
30
|
-
if (arrowPatterns.some((pattern) => pattern.test(val))) {
|
|
31
|
-
// Likely a function - return as-is without quotes
|
|
32
|
-
return val;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
// Regular string - escape and quote
|
|
36
|
-
return (quote +
|
|
37
|
-
val.replace(/\\/g, '\\\\').replace(/'/g, "\\'").replace(/"/g, '\\"') +
|
|
38
|
-
quote);
|
|
39
|
-
}
|
|
40
|
-
if (Array.isArray(val)) {
|
|
41
|
-
if (val.length === 0)
|
|
42
|
-
return '[]';
|
|
43
|
-
const nextIndent = currentIndent + indent;
|
|
44
|
-
const spacing = ' '.repeat(nextIndent);
|
|
45
|
-
const items = val
|
|
46
|
-
.map((item) => spacing + serialize(item, nextIndent))
|
|
47
|
-
.join(',\n');
|
|
48
|
-
return `[\n${items}\n${' '.repeat(currentIndent)}]`;
|
|
49
|
-
}
|
|
50
|
-
if (isObject(val)) {
|
|
51
|
-
const entries = Object.entries(val);
|
|
52
|
-
if (entries.length === 0)
|
|
53
|
-
return '{}';
|
|
54
|
-
const nextIndent = currentIndent + indent;
|
|
55
|
-
const spacing = ' '.repeat(nextIndent);
|
|
56
|
-
const props = entries
|
|
57
|
-
.map(([key, value]) => {
|
|
58
|
-
// Check if key needs quotes (contains special characters or starts with number)
|
|
59
|
-
const needsQuotes = /[^a-zA-Z0-9_$]/.test(key) || /^[0-9]/.test(key);
|
|
60
|
-
const keyStr = needsQuotes ? quote + key + quote : key;
|
|
61
|
-
return spacing + keyStr + ': ' + serialize(value, nextIndent);
|
|
62
|
-
})
|
|
63
|
-
.join(',\n');
|
|
64
|
-
return `{\n${props}\n${' '.repeat(currentIndent)}}`;
|
|
65
|
-
}
|
|
66
|
-
// Fallback for other types
|
|
67
|
-
return String(val);
|
|
68
|
-
}
|
|
69
|
-
return serialize(value);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Serialize config object for template usage
|
|
73
|
-
* Handles special cases for walkerOS configurations
|
|
74
|
-
*/
|
|
75
|
-
export function serializeConfig(config) {
|
|
76
|
-
// Handle empty config
|
|
77
|
-
if (!config || Object.keys(config).length === 0) {
|
|
78
|
-
return '{}';
|
|
79
|
-
}
|
|
80
|
-
return serializeToJS(config, { indent: 2, singleQuotes: true });
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Process template variables to serialize config objects
|
|
84
|
-
*/
|
|
85
|
-
export function processTemplateVariables(variables) {
|
|
86
|
-
const processed = { ...variables };
|
|
87
|
-
// Process sources object
|
|
88
|
-
if (isObject(processed.sources)) {
|
|
89
|
-
const sourcesObj = processed.sources;
|
|
90
|
-
const processedSources = {};
|
|
91
|
-
for (const [name, source] of Object.entries(sourcesObj)) {
|
|
92
|
-
const typedSource = source;
|
|
93
|
-
const { env: _, ...sourceWithoutEnv } = typedSource;
|
|
94
|
-
processedSources[name] = {
|
|
95
|
-
...sourceWithoutEnv,
|
|
96
|
-
config: isObject(typedSource.config)
|
|
97
|
-
? serializeConfig(typedSource.config)
|
|
98
|
-
: typedSource.config, // Pass through string configs unchanged
|
|
99
|
-
...(typedSource.env !== undefined && { env: typedSource.env }),
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
processed.sources = processedSources;
|
|
103
|
-
}
|
|
104
|
-
// Process destinations object
|
|
105
|
-
if (isObject(processed.destinations)) {
|
|
106
|
-
const destinationsObj = processed.destinations;
|
|
107
|
-
const processedDestinations = {};
|
|
108
|
-
for (const [name, dest] of Object.entries(destinationsObj)) {
|
|
109
|
-
const typedDest = dest;
|
|
110
|
-
const { env: _, ...destWithoutEnv } = typedDest;
|
|
111
|
-
processedDestinations[name] = {
|
|
112
|
-
...destWithoutEnv,
|
|
113
|
-
config: isObject(typedDest.config)
|
|
114
|
-
? serializeConfig(typedDest.config)
|
|
115
|
-
: typedDest.config,
|
|
116
|
-
...(typedDest.env !== undefined && { env: typedDest.env }),
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
processed.destinations = processedDestinations;
|
|
120
|
-
}
|
|
121
|
-
// Process collector object (if present)
|
|
122
|
-
if (isObject(processed.collector)) {
|
|
123
|
-
processed.collector = serializeConfig(processed.collector);
|
|
124
|
-
}
|
|
125
|
-
return processed;
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=serializer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/commands/bundle/serializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAYjD;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,UAA6B,EAAE;IAE/B,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEvC,SAAS,SAAS,CAAC,GAAY,EAAE,aAAa,GAAG,CAAC;QAChD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAChC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC;QAE1C,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,iDAAiD;YACjD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,uDAAuD;gBACvD,MAAM,aAAa,GAAG;oBACpB,oBAAoB,EAAE,sBAAsB;oBAC5C,cAAc,EAAE,WAAW;oBAC3B,yBAAyB,EAAE,eAAe;oBAC1C,mBAAmB,EAAE,aAAa;iBACnC,CAAC;gBAEF,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACvD,kDAAkD;oBAClD,OAAO,GAAG,CAAC;gBACb,CAAC;YACH,CAAC;YACD,oCAAoC;YACpC,OAAO,CACL,KAAK;gBACL,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;gBACpE,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAElC,MAAM,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;YAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,GAAG;iBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;iBACpD,IAAI,CAAC,KAAK,CAAC,CAAC;YAEf,OAAO,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;QACtD,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,MAAM,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;YAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,KAAK,GAAG,OAAO;iBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpB,gFAAgF;gBAChF,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;gBAEvD,OAAO,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC,CAAC;iBACD,IAAI,CAAC,KAAK,CAAC,CAAC;YAEf,OAAO,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;QACtD,CAAC;QAED,2BAA2B;QAC3B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,sBAAsB;IACtB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAkC;IAElC,MAAM,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;IAEnC,yBAAyB;IACzB,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAkC,CAAC;QAChE,MAAM,gBAAgB,GAAmC,EAAE,CAAC;QAE5D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,MAAwB,CAAC;YAC7C,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,gBAAgB,EAAE,GAAG,WAAW,CAAC;YACpD,gBAAgB,CAAC,IAAI,CAAC,GAAG;gBACvB,GAAG,gBAAgB;gBACnB,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;oBAClC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC;oBACrC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,wCAAwC;gBAChE,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,OAAO,GAAG,gBAAgB,CAAC;IACvC,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,SAAS,CAAC,YAAuC,CAAC;QAC1E,MAAM,qBAAqB,GAAwC,EAAE,CAAC;QAEtE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3D,MAAM,SAAS,GAAG,IAA2B,CAAC;YAC9C,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC;YAChD,qBAAqB,CAAC,IAAI,CAAC,GAAG;gBAC5B,GAAG,cAAc;gBACjB,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;oBAChC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC;oBACnC,CAAC,CAAC,SAAS,CAAC,MAAM;gBACpB,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;aAC3D,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,YAAY,GAAG,qBAAqB,CAAC;IACjD,CAAC;IAED,wCAAwC;IACxC,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,SAAS,CAAC,SAAS,GAAG,eAAe,CACnC,SAAS,CAAC,SAAoC,CAC/C,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { SourceDestinationItem } from '../../types/template.js';
|
|
2
|
-
export declare class TemplateEngine {
|
|
3
|
-
private handlebars;
|
|
4
|
-
constructor();
|
|
5
|
-
/**
|
|
6
|
-
* Load template content from file path
|
|
7
|
-
*
|
|
8
|
-
* @param templatePath - Template path (bare name, relative, or absolute)
|
|
9
|
-
*/
|
|
10
|
-
loadTemplate(templatePath: string): Promise<string>;
|
|
11
|
-
/**
|
|
12
|
-
* Apply template with user code and variable substitution
|
|
13
|
-
*/
|
|
14
|
-
applyTemplate(template: string, userCode: string, sources: Record<string, SourceDestinationItem>, destinations: Record<string, SourceDestinationItem>, collector: Record<string, unknown>, build?: Record<string, unknown>): string;
|
|
15
|
-
/**
|
|
16
|
-
* Process template with user code
|
|
17
|
-
*/
|
|
18
|
-
process(templatePath: string, userCode: string, sources: Record<string, SourceDestinationItem>, destinations: Record<string, SourceDestinationItem>, collector: Record<string, unknown>, build?: Record<string, unknown>): Promise<string>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=template-engine.d.ts.map
|