@ldsg/workflow 0.3.10 → 0.3.17

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 (29) hide show
  1. package/dist/__tests__/unit/evaluate-variables.prefixItems.test.d.ts +2 -0
  2. package/dist/__tests__/unit/evaluate-variables.prefixItems.test.d.ts.map +1 -0
  3. package/dist/__tests__/unit/evaluate-variables.prefixItems.test.js +391 -0
  4. package/dist/__tests__/unit/resource.portId.test.d.ts +2 -0
  5. package/dist/__tests__/unit/resource.portId.test.d.ts.map +1 -0
  6. package/dist/__tests__/unit/resource.portId.test.js +275 -0
  7. package/dist/resource.d.ts.map +1 -1
  8. package/dist/resource.js +12 -72
  9. package/dist/types/json_schema_with_expression_extension.d.ts +1 -0
  10. package/dist/types/json_schema_with_expression_extension.d.ts.map +1 -1
  11. package/dist/types/node.d.ts +4 -0
  12. package/dist/types/node.d.ts.map +1 -1
  13. package/dist/types/workflow.d.ts +5 -0
  14. package/dist/types/workflow.d.ts.map +1 -1
  15. package/dist/utils/evaluate-variables/utils/get-data-with-json-schema-and-input/resolve-json-schema.d.ts.map +1 -1
  16. package/dist/utils/evaluate-variables/utils/get-data-with-json-schema-and-input/resolve-json-schema.js +25 -2
  17. package/dist/utils/execute-workflow.d.ts +22 -0
  18. package/dist/utils/execute-workflow.d.ts.map +1 -0
  19. package/dist/utils/execute-workflow.js +212 -0
  20. package/package.json +9 -7
  21. package/dist/utils/evaluate-variables/index.test.d.ts +0 -2
  22. package/dist/utils/evaluate-variables/index.test.d.ts.map +0 -1
  23. package/dist/utils/evaluate-variables/index.test.js +0 -219
  24. package/dist/utils/get-execution-levels.d.ts +0 -17
  25. package/dist/utils/get-execution-levels.d.ts.map +0 -1
  26. package/dist/utils/get-execution-levels.js +0 -136
  27. package/dist/utils/get-execution-levels.test.d.ts +0 -2
  28. package/dist/utils/get-execution-levels.test.d.ts.map +0 -1
  29. package/dist/utils/get-execution-levels.test.js +0 -228
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=evaluate-variables.prefixItems.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-variables.prefixItems.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/evaluate-variables.prefixItems.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,391 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const evaluate_variables_1 = require("../../utils/evaluate-variables");
4
+ describe('evaluateVariables with prefixItems', () => {
5
+ describe('basic prefixItems functionality', () => {
6
+ it('should return array with all evaluated expressions', async () => {
7
+ const variables = {
8
+ '694bf14e2af2addf73c8c849': {
9
+ data: {
10
+ suite_access_token: 'token_from_first_source'
11
+ }
12
+ },
13
+ '694c81a0f12010773020eafb': {
14
+ suite_access_token: 'token_from_second_source'
15
+ }
16
+ };
17
+ const jsonSchema = {
18
+ type: 'object',
19
+ properties: {
20
+ tokens: {
21
+ type: 'array',
22
+ prefixItems: [
23
+ {
24
+ 'x-expression': '$.\"694bf14e2af2addf73c8c849\".\"data\".\"suite_access_token\"'
25
+ },
26
+ {
27
+ 'x-expression': '$.\"694c81a0f12010773020eafb\".\"suite_access_token\"'
28
+ }
29
+ ]
30
+ }
31
+ }
32
+ };
33
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
34
+ expect(result.variables.tokens).toEqual(['token_from_first_source', 'token_from_second_source']);
35
+ });
36
+ it('should handle single prefixItem', async () => {
37
+ const variables = {
38
+ source1: {
39
+ value: 'test_value'
40
+ }
41
+ };
42
+ const jsonSchema = {
43
+ type: 'object',
44
+ properties: {
45
+ items: {
46
+ type: 'array',
47
+ prefixItems: [
48
+ {
49
+ 'x-expression': '$.source1.value'
50
+ }
51
+ ]
52
+ }
53
+ }
54
+ };
55
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
56
+ expect(result.variables.items).toEqual(['test_value']);
57
+ });
58
+ });
59
+ describe('handling different value types', () => {
60
+ it('should handle null values in prefixItems', async () => {
61
+ const variables = {
62
+ source1: {
63
+ value: null
64
+ },
65
+ source2: {
66
+ value: 'valid_value'
67
+ }
68
+ };
69
+ const jsonSchema = {
70
+ type: 'object',
71
+ properties: {
72
+ items: {
73
+ type: 'array',
74
+ prefixItems: [
75
+ {
76
+ 'x-expression': '$.source1.value'
77
+ },
78
+ {
79
+ 'x-expression': '$.source2.value'
80
+ }
81
+ ]
82
+ }
83
+ }
84
+ };
85
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
86
+ expect(result.variables.items).toEqual([null, 'valid_value']);
87
+ });
88
+ it('should handle undefined values in prefixItems', async () => {
89
+ const variables = {
90
+ source2: {
91
+ value: 'valid_value'
92
+ }
93
+ };
94
+ const jsonSchema = {
95
+ type: 'object',
96
+ properties: {
97
+ items: {
98
+ type: 'array',
99
+ prefixItems: [
100
+ {
101
+ 'x-expression': '$.source1.value'
102
+ },
103
+ {
104
+ 'x-expression': '$.source2.value'
105
+ }
106
+ ]
107
+ }
108
+ }
109
+ };
110
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
111
+ expect(result.variables.items).toEqual([undefined, 'valid_value']);
112
+ });
113
+ it('should handle number values', async () => {
114
+ const variables = {
115
+ source1: {
116
+ value: 42
117
+ },
118
+ source2: {
119
+ value: 100
120
+ }
121
+ };
122
+ const jsonSchema = {
123
+ type: 'object',
124
+ properties: {
125
+ numbers: {
126
+ type: 'array',
127
+ prefixItems: [
128
+ {
129
+ 'x-expression': '$.source1.value'
130
+ },
131
+ {
132
+ 'x-expression': '$.source2.value'
133
+ }
134
+ ]
135
+ }
136
+ }
137
+ };
138
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
139
+ expect(result.variables.numbers).toEqual([42, 100]);
140
+ });
141
+ it('should handle boolean values', async () => {
142
+ const variables = {
143
+ source1: {
144
+ value: true
145
+ },
146
+ source2: {
147
+ value: false
148
+ }
149
+ };
150
+ const jsonSchema = {
151
+ type: 'object',
152
+ properties: {
153
+ booleans: {
154
+ type: 'array',
155
+ prefixItems: [
156
+ {
157
+ 'x-expression': '$.source1.value'
158
+ },
159
+ {
160
+ 'x-expression': '$.source2.value'
161
+ }
162
+ ]
163
+ }
164
+ }
165
+ };
166
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
167
+ expect(result.variables.booleans).toEqual([true, false]);
168
+ });
169
+ it('should handle object values', async () => {
170
+ const variables = {
171
+ source1: {
172
+ data: {
173
+ name: 'Alice',
174
+ age: 30
175
+ }
176
+ },
177
+ source2: {
178
+ data: {
179
+ name: 'Bob',
180
+ age: 25
181
+ }
182
+ }
183
+ };
184
+ const jsonSchema = {
185
+ type: 'object',
186
+ properties: {
187
+ users: {
188
+ type: 'array',
189
+ prefixItems: [
190
+ {
191
+ 'x-expression': '$.source1.data'
192
+ },
193
+ {
194
+ 'x-expression': '$.source2.data'
195
+ }
196
+ ]
197
+ }
198
+ }
199
+ };
200
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
201
+ expect(result.variables.users).toEqual([
202
+ { name: 'Alice', age: 30 },
203
+ { name: 'Bob', age: 25 }
204
+ ]);
205
+ });
206
+ });
207
+ describe('complex expressions', () => {
208
+ it('should handle complex jsonata expressions', async () => {
209
+ const variables = {
210
+ Account: {
211
+ 'Account Name': 'TestAccount',
212
+ Order: [
213
+ { OrderID: 'order1', total: 100 },
214
+ { OrderID: 'order2', total: 200 }
215
+ ]
216
+ }
217
+ };
218
+ const jsonSchema = {
219
+ type: 'object',
220
+ properties: {
221
+ results: {
222
+ type: 'array',
223
+ prefixItems: [
224
+ {
225
+ 'x-expression': 'Account."Account Name"'
226
+ },
227
+ {
228
+ 'x-expression': '$sum(Account.Order.total)'
229
+ }
230
+ ]
231
+ }
232
+ }
233
+ };
234
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
235
+ expect(result.variables.results).toEqual(['TestAccount', 300]);
236
+ });
237
+ });
238
+ describe('mixed schema features', () => {
239
+ it('should work with nested objects', async () => {
240
+ const variables = {
241
+ source1: { value: 'first' },
242
+ source2: { value: 'second' }
243
+ };
244
+ const jsonSchema = {
245
+ type: 'object',
246
+ properties: {
247
+ nested: {
248
+ type: 'object',
249
+ properties: {
250
+ items: {
251
+ type: 'array',
252
+ prefixItems: [
253
+ {
254
+ 'x-expression': '$.source1.value'
255
+ },
256
+ {
257
+ 'x-expression': '$.source2.value'
258
+ }
259
+ ]
260
+ }
261
+ }
262
+ }
263
+ }
264
+ };
265
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
266
+ expect(result.variables.nested.items).toEqual(['first', 'second']);
267
+ });
268
+ it('should work alongside regular properties', async () => {
269
+ const variables = {
270
+ source1: { value: 'a' },
271
+ source2: { value: 'b' },
272
+ source3: { value: 'c' }
273
+ };
274
+ const jsonSchema = {
275
+ type: 'object',
276
+ properties: {
277
+ singleValue: {
278
+ 'x-expression': '$.source3.value'
279
+ },
280
+ arrayValue: {
281
+ type: 'array',
282
+ prefixItems: [
283
+ {
284
+ 'x-expression': '$.source1.value'
285
+ },
286
+ {
287
+ 'x-expression': '$.source2.value'
288
+ }
289
+ ]
290
+ }
291
+ }
292
+ };
293
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
294
+ expect(result.variables.singleValue).toBe('c');
295
+ expect(result.variables.arrayValue).toEqual(['a', 'b']);
296
+ });
297
+ });
298
+ describe('user schema example', () => {
299
+ it('should handle the exact schema from user requirement', async () => {
300
+ const variables = {
301
+ '694bf14e2af2addf73c8c849': {
302
+ data: {
303
+ suite_access_token: 'token_from_first_source'
304
+ }
305
+ },
306
+ '694c81a0f12010773020eafb': {
307
+ suite_access_token: 'token_from_second_source'
308
+ }
309
+ };
310
+ const jsonSchema = {
311
+ type: 'object',
312
+ properties: {
313
+ input: {
314
+ type: 'object',
315
+ properties: {
316
+ value: {
317
+ title: '值',
318
+ description: '取首个有效值',
319
+ type: 'array',
320
+ prefixItems: [
321
+ {
322
+ 'x-expression': '$.\"694bf14e2af2addf73c8c849\".\"data\".\"suite_access_token\"'
323
+ },
324
+ {
325
+ 'x-expression': '$.\"694c81a0f12010773020eafb\".\"suite_access_token\"'
326
+ }
327
+ ]
328
+ }
329
+ }
330
+ },
331
+ output: {
332
+ type: 'object',
333
+ properties: {
334
+ value: {
335
+ title: '值',
336
+ type: 'object'
337
+ }
338
+ },
339
+ 'x-expression': '$',
340
+ 'x-expression-const': '$'
341
+ }
342
+ }
343
+ };
344
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
345
+ expect(result.variables.input.value).toEqual(['token_from_first_source', 'token_from_second_source']);
346
+ expect(result.variables.output).toBeDefined();
347
+ });
348
+ });
349
+ describe('edge cases', () => {
350
+ it('should handle empty prefixItems array', async () => {
351
+ const variables = {};
352
+ const jsonSchema = {
353
+ type: 'object',
354
+ properties: {
355
+ items: {
356
+ type: 'array',
357
+ prefixItems: []
358
+ }
359
+ }
360
+ };
361
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
362
+ expect(result.variables.items).toEqual([]);
363
+ });
364
+ it('should handle multiple prefixItems with same expression', async () => {
365
+ const variables = {
366
+ source: { value: 'same_value' }
367
+ };
368
+ const jsonSchema = {
369
+ type: 'object',
370
+ properties: {
371
+ items: {
372
+ type: 'array',
373
+ prefixItems: [
374
+ {
375
+ 'x-expression': '$.source.value'
376
+ },
377
+ {
378
+ 'x-expression': '$.source.value'
379
+ },
380
+ {
381
+ 'x-expression': '$.source.value'
382
+ }
383
+ ]
384
+ }
385
+ }
386
+ };
387
+ const result = await (0, evaluate_variables_1.evaluateVariables)({ jsonSchema, variables });
388
+ expect(result.variables.items).toEqual(['same_value', 'same_value', 'same_value']);
389
+ });
390
+ });
391
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resource.portId.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.portId.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/resource.portId.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const resource_1 = require("../../resource");
4
+ // 创建测试节点
5
+ const createNode = (nodeId, inputSchema, outputSchema, execute) => ({
6
+ id: nodeId,
7
+ propertiesSchema: {
8
+ type: 'object',
9
+ properties: {
10
+ input: inputSchema,
11
+ output: outputSchema
12
+ }
13
+ },
14
+ execute
15
+ });
16
+ // 测试 portId 功能
17
+ test('WorkflowResource execute with portId', async () => {
18
+ // 创建节点
19
+ const startNode = createNode('start', {
20
+ type: 'object',
21
+ properties: {
22
+ value: {
23
+ type: 'string',
24
+ default: 'start'
25
+ }
26
+ }
27
+ }, {
28
+ type: 'object',
29
+ properties: {
30
+ value: {
31
+ type: 'string',
32
+ 'x-expression': 'value'
33
+ }
34
+ }
35
+ }, async ({ variables }) => ({
36
+ variables: { value: variables.value || 'start' }, // 确保输出有 value 字段
37
+ portId: 'port-success' // 返回成功端口
38
+ }));
39
+ const successNode = createNode('success', {
40
+ type: 'object',
41
+ properties: {
42
+ value: {
43
+ type: 'string',
44
+ 'x-expression': `$."start".value`
45
+ }
46
+ }
47
+ }, {
48
+ type: 'object',
49
+ properties: {
50
+ result: {
51
+ type: 'string',
52
+ 'x-expression': 'result'
53
+ }
54
+ }
55
+ }, async ({ variables }) => ({
56
+ variables: { result: `success: ${variables.value}` }
57
+ }));
58
+ const failureNode = createNode('failure', {
59
+ type: 'object',
60
+ properties: {
61
+ value: {
62
+ type: 'string',
63
+ 'x-expression': `$."start".value`
64
+ }
65
+ }
66
+ }, {
67
+ type: 'object',
68
+ properties: {
69
+ result: {
70
+ type: 'string',
71
+ 'x-expression': 'value'
72
+ }
73
+ }
74
+ }, async ({ variables }) => ({
75
+ variables: { result: `failure: ${variables.value}` }
76
+ }));
77
+ const endNode = createNode('end', {
78
+ type: 'object',
79
+ properties: {
80
+ result: {
81
+ type: 'string',
82
+ 'x-expression': '$."success".result'
83
+ }
84
+ }
85
+ }, {
86
+ type: 'object',
87
+ properties: {
88
+ result: {
89
+ type: 'string',
90
+ 'x-expression': 'result'
91
+ }
92
+ }
93
+ }, async ({ variables }) => ({
94
+ variables // 直接返回评估后的变量
95
+ }));
96
+ // 创建工作流数据
97
+ // start -> success -> end (使用 port-success)
98
+ // start -> failure (使用 port-failure, 不会被执行)
99
+ const workflowData = {
100
+ edges: [
101
+ {
102
+ sourceWorkflowNodeResourceId: 'start',
103
+ sourceWorkflowNodePortId: 'port-success',
104
+ targetWorkflowNodeResourceId: 'success'
105
+ },
106
+ {
107
+ sourceWorkflowNodeResourceId: 'start',
108
+ sourceWorkflowNodePortId: 'port-failure',
109
+ targetWorkflowNodeResourceId: 'failure'
110
+ },
111
+ {
112
+ sourceWorkflowNodeResourceId: 'success',
113
+ targetWorkflowNodeResourceId: 'end'
114
+ }
115
+ ],
116
+ nodes: [startNode, successNode, failureNode, endNode]
117
+ };
118
+ const getWorkflowDataRes = {
119
+ workflowData
120
+ };
121
+ class TestWorkflowResource extends resource_1.WorkflowResource {
122
+ constructor() {
123
+ super(...arguments);
124
+ this.getWorkflowData = () => {
125
+ return getWorkflowDataRes;
126
+ };
127
+ }
128
+ }
129
+ const testWorkflowResource = new TestWorkflowResource({
130
+ id: 'test',
131
+ kind: 'workflow',
132
+ parentId: 'root',
133
+ settings: {
134
+ title: '',
135
+ description: '',
136
+ startWorkflowNodeResourceId: 'start',
137
+ endWorkflowNodeResourceId: 'end'
138
+ }
139
+ });
140
+ const { variables } = await testWorkflowResource.execute({
141
+ context: {},
142
+ variables: {}
143
+ });
144
+ // 验证只有 success 分支被执行
145
+ expect(variables.result).toBe('success: start');
146
+ });
147
+ // 测试默认端口(无 portId)
148
+ test('WorkflowResource execute without portId', async () => {
149
+ const startNode = createNode('start', {
150
+ type: 'object',
151
+ properties: {
152
+ value: {
153
+ type: 'string',
154
+ default: 'default'
155
+ }
156
+ }
157
+ }, {
158
+ type: 'object',
159
+ properties: {
160
+ value: {
161
+ type: 'string',
162
+ 'x-expression': 'value'
163
+ }
164
+ }
165
+ }, async ({ variables }) => ({
166
+ variables: { value: variables.value || 'default' }
167
+ // 不返回 portId,使用默认端口
168
+ }));
169
+ const defaultNode = createNode('default', {
170
+ type: 'object',
171
+ properties: {
172
+ value: {
173
+ type: 'string',
174
+ 'x-expression': `$."start".value`
175
+ }
176
+ }
177
+ }, {
178
+ type: 'object',
179
+ properties: {
180
+ result: {
181
+ type: 'string',
182
+ 'x-expression': 'result'
183
+ }
184
+ }
185
+ }, async ({ variables }) => ({
186
+ variables: { result: `default: ${variables.value}` }
187
+ }));
188
+ const specificNode = createNode('specific', {
189
+ type: 'object',
190
+ properties: {
191
+ value: {
192
+ type: 'string',
193
+ 'x-expression': `$."start".value`
194
+ }
195
+ }
196
+ }, {
197
+ type: 'object',
198
+ properties: {
199
+ result: {
200
+ type: 'string',
201
+ 'x-expression': 'result'
202
+ }
203
+ }
204
+ }, async ({ variables }) => ({
205
+ variables: { result: `specific: ${variables.value}` }
206
+ }));
207
+ const endNode = createNode('end', {
208
+ type: 'object',
209
+ properties: {
210
+ result: {
211
+ type: 'string',
212
+ 'x-expression': '$."default".result'
213
+ }
214
+ }
215
+ }, {
216
+ type: 'object',
217
+ properties: {
218
+ result: {
219
+ type: 'string',
220
+ 'x-expression': 'result'
221
+ }
222
+ }
223
+ }, async ({ variables }) => ({
224
+ variables // 直接返回评估后的变量
225
+ }));
226
+ // start -> default -> end (默认端口,无 portId)
227
+ // start -> specific (使用 port-specific, 不会被执行)
228
+ const workflowData = {
229
+ edges: [
230
+ {
231
+ sourceWorkflowNodeResourceId: 'start',
232
+ // 无 sourceWorkflowNodePortId,表示默认端口
233
+ targetWorkflowNodeResourceId: 'default'
234
+ },
235
+ {
236
+ sourceWorkflowNodeResourceId: 'start',
237
+ sourceWorkflowNodePortId: 'port-specific',
238
+ targetWorkflowNodeResourceId: 'specific'
239
+ },
240
+ {
241
+ sourceWorkflowNodeResourceId: 'default',
242
+ targetWorkflowNodeResourceId: 'end'
243
+ }
244
+ ],
245
+ nodes: [startNode, defaultNode, specificNode, endNode]
246
+ };
247
+ const getWorkflowDataRes = {
248
+ workflowData
249
+ };
250
+ class TestWorkflowResource extends resource_1.WorkflowResource {
251
+ constructor() {
252
+ super(...arguments);
253
+ this.getWorkflowData = () => {
254
+ return getWorkflowDataRes;
255
+ };
256
+ }
257
+ }
258
+ const testWorkflowResource = new TestWorkflowResource({
259
+ id: 'test',
260
+ kind: 'workflow',
261
+ parentId: 'root',
262
+ settings: {
263
+ title: '',
264
+ description: '',
265
+ startWorkflowNodeResourceId: 'start',
266
+ endWorkflowNodeResourceId: 'end'
267
+ }
268
+ });
269
+ const { variables } = await testWorkflowResource.execute({
270
+ context: {},
271
+ variables: {}
272
+ });
273
+ // 验证只有默认分支被执行
274
+ expect(variables.result).toBe('default: default');
275
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAGL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EAEf,YAAY,EACZ,gBAAgB,EAChB,gCAAgC,EAGjC,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,0BAA0B;IACzC,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IACzC,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,qBAAa,gBAAiB,SAAQ,QAAQ,CAAC,gCAAgC,CAAC;IAC9E,uBAAuB,EAAE,uBAAuB,CAsB9C;IAEF,uBAAuB,EAAE,uBAAuB,CAsB9C;IAEF,eAAe,EAAE,eAAe,CAiB9B;IAEF,OAAO,EAAE,eAAe,CAgHtB;IAEF,eAAe,EAAE,eAAe,CAY9B;CACH"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAGL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,0BAA0B;IACzC,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IACzC,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,qBAAa,gBAAiB,SAAQ,QAAQ,CAAC,gCAAgC,CAAC;IAC9E,uBAAuB,EAAE,uBAAuB,CAsB9C;IAEF,uBAAuB,EAAE,uBAAuB,CAsB9C;IAEF,eAAe,EAAE,eAAe,CAiB9B;IAEF,OAAO,EAAE,eAAe,CAuBtB;IAEF,eAAe,EAAE,eAAe,CAY9B;CACH"}