@nordcraft/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +5 -0
  2. package/dist/api/LegacyToddleApi.d.ts +34 -0
  3. package/dist/api/LegacyToddleApi.js +178 -0
  4. package/dist/api/LegacyToddleApi.js.map +1 -0
  5. package/dist/api/ToddleApiV2.d.ts +77 -0
  6. package/dist/api/ToddleApiV2.js +271 -0
  7. package/dist/api/ToddleApiV2.js.map +1 -0
  8. package/dist/api/api.d.ts +49 -0
  9. package/dist/api/api.js +276 -0
  10. package/dist/api/api.js.map +1 -0
  11. package/dist/api/apiTypes.d.ts +125 -0
  12. package/dist/api/apiTypes.js +11 -0
  13. package/dist/api/apiTypes.js.map +1 -0
  14. package/dist/api/headers.d.ts +10 -0
  15. package/dist/api/headers.js +36 -0
  16. package/dist/api/headers.js.map +1 -0
  17. package/dist/api/template.d.ts +5 -0
  18. package/dist/api/template.js +7 -0
  19. package/dist/api/template.js.map +1 -0
  20. package/dist/component/ToddleComponent.d.ts +45 -0
  21. package/dist/component/ToddleComponent.js +373 -0
  22. package/dist/component/ToddleComponent.js.map +1 -0
  23. package/dist/component/actionUtils.d.ts +2 -0
  24. package/dist/component/actionUtils.js +56 -0
  25. package/dist/component/actionUtils.js.map +1 -0
  26. package/dist/component/component.types.d.ts +313 -0
  27. package/dist/component/component.types.js +9 -0
  28. package/dist/component/component.types.js.map +1 -0
  29. package/dist/component/isPageComponent.d.ts +2 -0
  30. package/dist/component/isPageComponent.js +3 -0
  31. package/dist/component/isPageComponent.js.map +1 -0
  32. package/dist/formula/ToddleFormula.d.ts +15 -0
  33. package/dist/formula/ToddleFormula.js +20 -0
  34. package/dist/formula/ToddleFormula.js.map +1 -0
  35. package/dist/formula/formula.d.ts +103 -0
  36. package/dist/formula/formula.js +186 -0
  37. package/dist/formula/formula.js.map +1 -0
  38. package/dist/formula/formulaTypes.d.ts +30 -0
  39. package/dist/formula/formulaTypes.js +2 -0
  40. package/dist/formula/formulaTypes.js.map +1 -0
  41. package/dist/formula/formulaUtils.d.ts +18 -0
  42. package/dist/formula/formulaUtils.js +240 -0
  43. package/dist/formula/formulaUtils.js.map +1 -0
  44. package/dist/styling/className.d.ts +2 -0
  45. package/dist/styling/className.js +52 -0
  46. package/dist/styling/className.js.map +1 -0
  47. package/dist/styling/style.css.d.ts +5 -0
  48. package/dist/styling/style.css.js +242 -0
  49. package/dist/styling/style.css.js.map +1 -0
  50. package/dist/styling/theme.const.d.ts +3 -0
  51. package/dist/styling/theme.const.js +381 -0
  52. package/dist/styling/theme.const.js.map +1 -0
  53. package/dist/styling/theme.d.ts +72 -0
  54. package/dist/styling/theme.js +200 -0
  55. package/dist/styling/theme.js.map +1 -0
  56. package/dist/styling/variantSelector.d.ts +123 -0
  57. package/dist/styling/variantSelector.js +25 -0
  58. package/dist/styling/variantSelector.js.map +1 -0
  59. package/dist/types.d.ts +97 -0
  60. package/dist/types.js +2 -0
  61. package/dist/types.js.map +1 -0
  62. package/dist/utils/collections.d.ts +21 -0
  63. package/dist/utils/collections.js +75 -0
  64. package/dist/utils/collections.js.map +1 -0
  65. package/dist/utils/customElements.d.ts +6 -0
  66. package/dist/utils/customElements.js +15 -0
  67. package/dist/utils/customElements.js.map +1 -0
  68. package/dist/utils/hash.d.ts +1 -0
  69. package/dist/utils/hash.js +17 -0
  70. package/dist/utils/hash.js.map +1 -0
  71. package/dist/utils/json.d.ts +5 -0
  72. package/dist/utils/json.js +16 -0
  73. package/dist/utils/json.js.map +1 -0
  74. package/dist/utils/sha1.d.ts +2 -0
  75. package/dist/utils/sha1.js +13 -0
  76. package/dist/utils/sha1.js.map +1 -0
  77. package/dist/utils/url.d.ts +5 -0
  78. package/dist/utils/url.js +27 -0
  79. package/dist/utils/url.js.map +1 -0
  80. package/dist/utils/util.d.ts +3 -0
  81. package/dist/utils/util.js +4 -0
  82. package/dist/utils/util.js.map +1 -0
  83. package/package.json +18 -0
  84. package/src/api/LegacyToddleApi.ts +205 -0
  85. package/src/api/ToddleApiV2.ts +331 -0
  86. package/src/api/api.test.ts +319 -0
  87. package/src/api/api.ts +414 -0
  88. package/src/api/apiTypes.ts +145 -0
  89. package/src/api/headers.ts +41 -0
  90. package/src/api/template.ts +10 -0
  91. package/src/component/ToddleComponent.actionReferences.test.ts +75 -0
  92. package/src/component/ToddleComponent.formulasInComponent.test.ts +234 -0
  93. package/src/component/ToddleComponent.ts +470 -0
  94. package/src/component/actionUtils.ts +61 -0
  95. package/src/component/component.types.ts +362 -0
  96. package/src/component/isPageComponent.ts +6 -0
  97. package/src/formula/ToddleFormula.ts +30 -0
  98. package/src/formula/formula.ts +355 -0
  99. package/src/formula/formulaTypes.ts +45 -0
  100. package/src/formula/formulaUtils.ts +287 -0
  101. package/src/styling/className.test.ts +19 -0
  102. package/src/styling/className.ts +73 -0
  103. package/src/styling/style.css.ts +309 -0
  104. package/src/styling/theme.const.ts +390 -0
  105. package/src/styling/theme.ts +339 -0
  106. package/src/styling/variantSelector.ts +168 -0
  107. package/src/types.ts +158 -0
  108. package/src/utils/collections.test.ts +57 -0
  109. package/src/utils/collections.ts +122 -0
  110. package/src/utils/customElements.test.ts +40 -0
  111. package/src/utils/customElements.ts +16 -0
  112. package/src/utils/hash.test.ts +32 -0
  113. package/src/utils/hash.ts +18 -0
  114. package/src/utils/json.ts +18 -0
  115. package/src/utils/sha1.test.ts +50 -0
  116. package/src/utils/sha1.ts +17 -0
  117. package/src/utils/url.test.ts +17 -0
  118. package/src/utils/url.ts +33 -0
  119. package/src/utils/util.ts +8 -0
@@ -0,0 +1,373 @@
1
+ import { isLegacyApi } from '../api/api';
2
+ import { LegacyToddleApi } from '../api/LegacyToddleApi';
3
+ import { ToddleApiV2 } from '../api/ToddleApiV2';
4
+ import { getFormulasInAction, getFormulasInFormula, } from '../formula/formulaUtils';
5
+ import { isDefined } from '../utils/util';
6
+ import { getActionsInAction } from './actionUtils';
7
+ import { isPageComponent } from './isPageComponent';
8
+ export class ToddleComponent {
9
+ component;
10
+ globalFormulas;
11
+ getComponent;
12
+ packageName;
13
+ constructor({ component, getComponent, packageName, globalFormulas, }) {
14
+ this.component = component;
15
+ this.getComponent = getComponent;
16
+ this.packageName = packageName;
17
+ this.globalFormulas = globalFormulas;
18
+ }
19
+ get uniqueSubComponents() {
20
+ const components = new Map();
21
+ const visitNode = (packageName) => (node) => {
22
+ if (node.type !== 'component') {
23
+ return;
24
+ }
25
+ if (components.has(node.name)) {
26
+ return;
27
+ }
28
+ const component = this.getComponent(node.name, node.package ?? packageName);
29
+ if (!component) {
30
+ return;
31
+ }
32
+ components.set(component.name, new ToddleComponent({
33
+ component,
34
+ getComponent: this.getComponent,
35
+ packageName: node.package ?? packageName,
36
+ globalFormulas: this.globalFormulas,
37
+ }));
38
+ Object.values(component.nodes).forEach(visitNode(node.package ?? packageName));
39
+ };
40
+ Object.values(this.nodes).forEach(visitNode());
41
+ return [...components.values()];
42
+ }
43
+ get formulaReferences() {
44
+ return new Set(Array.from(this.formulasInComponent())
45
+ .filter((entry) => entry[1].type === 'function')
46
+ .map(([, f]) => [f.package, f.name].filter(isDefined).join('/')));
47
+ }
48
+ get actionReferences() {
49
+ return new Set(Array.from(this.actionModelsInComponent())
50
+ .filter((entry) => entry[1].type === 'Custom' || entry[1].type === undefined)
51
+ .map(([, a]) => [a.package, a.name].filter(isDefined).join('/')));
52
+ }
53
+ /**
54
+ * Traverse all formulas in the component.
55
+ * @returns An iterable that yields the path and formula.
56
+ */
57
+ *formulasInComponent() {
58
+ const globalFormulas = this.globalFormulas;
59
+ function* visitNode(node, path = []) {
60
+ switch (node.type) {
61
+ case 'text':
62
+ yield* getFormulasInFormula({
63
+ formula: node.condition,
64
+ globalFormulas,
65
+ path: [...path, 'condition'],
66
+ });
67
+ yield* getFormulasInFormula({
68
+ formula: node.repeat,
69
+ globalFormulas,
70
+ path: [...path, 'repeat'],
71
+ });
72
+ yield* getFormulasInFormula({
73
+ formula: node.repeatKey,
74
+ globalFormulas,
75
+ path: [...path, 'repeatKey'],
76
+ });
77
+ yield* getFormulasInFormula({
78
+ formula: node.value,
79
+ globalFormulas,
80
+ path: [...path, 'value'],
81
+ });
82
+ break;
83
+ case 'slot':
84
+ yield* getFormulasInFormula({
85
+ formula: node.condition,
86
+ globalFormulas,
87
+ path: [...path, 'condition'],
88
+ });
89
+ break;
90
+ case 'component':
91
+ yield* getFormulasInFormula({
92
+ formula: node.condition,
93
+ globalFormulas,
94
+ path: [...path, 'condition'],
95
+ });
96
+ yield* getFormulasInFormula({
97
+ formula: node.repeat,
98
+ globalFormulas,
99
+ path: [...path, 'repeat'],
100
+ });
101
+ yield* getFormulasInFormula({
102
+ formula: node.repeatKey,
103
+ globalFormulas,
104
+ path: [...path, 'repeatKey'],
105
+ });
106
+ for (const [attrKey, attr] of Object.entries(node.attrs ?? {})) {
107
+ yield* getFormulasInFormula({
108
+ formula: attr,
109
+ globalFormulas,
110
+ path: [...path, 'attrs', attrKey],
111
+ });
112
+ }
113
+ for (const [eventKey, event] of Object.entries(node.events ?? {})) {
114
+ for (const [actionKey, action] of Object.entries(event?.actions ?? {})) {
115
+ yield* getFormulasInAction({
116
+ action,
117
+ globalFormulas,
118
+ path: [...path, 'events', eventKey, 'actions', actionKey],
119
+ });
120
+ }
121
+ }
122
+ break;
123
+ case 'element':
124
+ yield* getFormulasInFormula({
125
+ formula: node.condition,
126
+ globalFormulas,
127
+ path: [...path, 'condition'],
128
+ });
129
+ yield* getFormulasInFormula({
130
+ formula: node.repeat,
131
+ globalFormulas,
132
+ path: [...path, 'repeat'],
133
+ });
134
+ yield* getFormulasInFormula({
135
+ formula: node.repeatKey,
136
+ globalFormulas,
137
+ path: [...path, 'repeatKey'],
138
+ });
139
+ for (const [attrKey, attr] of Object.entries(node.attrs ?? {})) {
140
+ yield* getFormulasInFormula({
141
+ formula: attr,
142
+ globalFormulas,
143
+ path: [...path, 'attrs', attrKey],
144
+ });
145
+ }
146
+ for (const [eventKey, event] of Object.entries(node.events ?? {})) {
147
+ for (const [actionKey, a] of Object.entries(event?.actions ?? {})) {
148
+ yield* getFormulasInAction({
149
+ action: a,
150
+ globalFormulas,
151
+ path: [...path, 'events', eventKey, 'actions', actionKey],
152
+ });
153
+ }
154
+ }
155
+ for (const [classKey, c] of Object.entries(node.classes ?? {})) {
156
+ yield* getFormulasInFormula({
157
+ formula: c.formula,
158
+ globalFormulas,
159
+ path: [...path, 'classes', classKey, 'formula'],
160
+ });
161
+ }
162
+ for (const [styleVariableKey, styleVariable] of Object.entries(node['style-variables'] ?? {})) {
163
+ yield* getFormulasInFormula({
164
+ formula: styleVariable.formula,
165
+ globalFormulas,
166
+ path: [...path, 'style-variables', styleVariableKey, 'formula'],
167
+ });
168
+ }
169
+ break;
170
+ }
171
+ }
172
+ yield* getFormulasInFormula({
173
+ formula: this.route?.info?.language?.formula,
174
+ globalFormulas,
175
+ path: ['route', 'info', 'language', 'formula'],
176
+ });
177
+ yield* getFormulasInFormula({
178
+ formula: this.route?.info?.title?.formula,
179
+ globalFormulas,
180
+ path: ['route', 'info', 'title', 'formula'],
181
+ });
182
+ yield* getFormulasInFormula({
183
+ formula: this.route?.info?.description?.formula,
184
+ globalFormulas,
185
+ path: ['route', 'info', 'description', 'formula'],
186
+ });
187
+ yield* getFormulasInFormula({
188
+ formula: this.route?.info?.icon?.formula,
189
+ globalFormulas,
190
+ path: ['route', 'info', 'icon', 'formula'],
191
+ });
192
+ yield* getFormulasInFormula({
193
+ formula: this.route?.info?.charset?.formula,
194
+ globalFormulas,
195
+ path: ['route', 'info', 'charset', 'formula'],
196
+ });
197
+ for (const [metaKey, meta] of Object.entries(this.route?.info?.meta ?? {})) {
198
+ yield* getFormulasInFormula({
199
+ formula: meta.content,
200
+ globalFormulas,
201
+ path: ['route', 'info', 'meta', metaKey, 'content'],
202
+ });
203
+ for (const [attrKey, a] of Object.entries(meta.attrs)) {
204
+ yield* getFormulasInFormula({
205
+ formula: a,
206
+ globalFormulas,
207
+ path: ['route', 'info', 'meta', metaKey, 'attrs', attrKey],
208
+ });
209
+ }
210
+ }
211
+ for (const [formulaKey, formula] of Object.entries(this.formulas ?? {})) {
212
+ yield* getFormulasInFormula({
213
+ formula: formula.formula,
214
+ globalFormulas,
215
+ path: ['formulas', formulaKey, 'formula'],
216
+ });
217
+ }
218
+ for (const [variableKey, variable] of Object.entries(this.variables ?? {})) {
219
+ yield* getFormulasInFormula({
220
+ formula: variable.initialValue,
221
+ globalFormulas,
222
+ path: ['variables', variableKey, 'initialValue'],
223
+ });
224
+ }
225
+ for (const [workflowKey, workflow] of Object.entries(this.workflows ?? {})) {
226
+ for (const [actionKey, action] of workflow.actions.entries()) {
227
+ yield* getFormulasInAction({
228
+ action,
229
+ globalFormulas,
230
+ path: ['workflows', workflowKey, 'actions', actionKey],
231
+ });
232
+ }
233
+ }
234
+ for (const [, api] of Object.entries(this.apis)) {
235
+ yield* api.formulasInApi();
236
+ }
237
+ for (const [actionKey, action] of Object.entries(this.component.onLoad?.actions ?? {})) {
238
+ yield* getFormulasInAction({
239
+ action,
240
+ globalFormulas,
241
+ path: ['onLoad', 'actions', actionKey],
242
+ });
243
+ }
244
+ for (const [actionKey, action] of Object.entries(this.component.onAttributeChange?.actions ?? {})) {
245
+ yield* getFormulasInAction({
246
+ action,
247
+ globalFormulas,
248
+ path: ['onAttributeChange', 'actions', actionKey],
249
+ });
250
+ }
251
+ for (const [nodeKey, node] of Object.entries(this.nodes ?? {})) {
252
+ yield* visitNode(node, ['nodes', nodeKey]);
253
+ }
254
+ }
255
+ /**
256
+ * Traverse all actions in the component.
257
+ * @returns An iterable that yields the path and action.
258
+ */
259
+ *actionModelsInComponent() {
260
+ function* visitNode(node, path = []) {
261
+ switch (node.type) {
262
+ case 'text':
263
+ case 'slot':
264
+ break;
265
+ case 'component':
266
+ case 'element':
267
+ for (const [eventKey, event] of Object.entries(node.events ?? {})) {
268
+ for (const [actionKey, a] of Object.entries(event?.actions ?? {})) {
269
+ yield* getActionsInAction(a, [
270
+ ...path,
271
+ 'events',
272
+ eventKey,
273
+ 'actions',
274
+ actionKey,
275
+ ]);
276
+ }
277
+ }
278
+ break;
279
+ }
280
+ }
281
+ for (const [workflowKey, workflow] of Object.entries(this.workflows ?? {})) {
282
+ for (const [key, a] of Object.entries(workflow?.actions ?? {})) {
283
+ yield* getActionsInAction(a, ['workflows', workflowKey, 'actions', key]);
284
+ }
285
+ }
286
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
287
+ for (const [apiKey, api] of Object.entries(this.apis ?? {})) {
288
+ if (!isLegacyApi(api)) {
289
+ yield* api.actionModelsInApi();
290
+ continue;
291
+ }
292
+ // Legacy API
293
+ for (const [actionKey, a] of Object.entries(api.onCompleted?.actions ?? {})) {
294
+ yield* getActionsInAction(a, [
295
+ 'apis',
296
+ apiKey,
297
+ 'onCompleted',
298
+ 'actions',
299
+ actionKey,
300
+ ]);
301
+ }
302
+ for (const [actionKey, a] of Object.entries(api.onFailed?.actions ?? {})) {
303
+ yield* getActionsInAction(a, [
304
+ 'apis',
305
+ apiKey,
306
+ 'onFailed',
307
+ 'actions',
308
+ actionKey,
309
+ ]);
310
+ }
311
+ }
312
+ for (const [actionKey, action] of Object.entries(this.component.onLoad?.actions ?? {})) {
313
+ yield* getActionsInAction(action, ['onLoad', 'actions', actionKey]);
314
+ }
315
+ for (const [actionKey, action] of Object.entries(this.component.onAttributeChange?.actions ?? {})) {
316
+ yield* getActionsInAction(action, [
317
+ 'onAttributeChange',
318
+ 'actions',
319
+ actionKey,
320
+ ]);
321
+ }
322
+ for (const [nodeKey, node] of Object.entries(this.nodes ?? {})) {
323
+ yield* visitNode(node, ['nodes', nodeKey]);
324
+ }
325
+ }
326
+ get formulas() {
327
+ return this.component.formulas;
328
+ }
329
+ get name() {
330
+ return this.component.name;
331
+ }
332
+ get route() {
333
+ return this.component.route;
334
+ }
335
+ get attributes() {
336
+ return this.component.attributes;
337
+ }
338
+ get variables() {
339
+ return this.component.variables;
340
+ }
341
+ get workflows() {
342
+ return this.component.workflows;
343
+ }
344
+ get apis() {
345
+ return Object.fromEntries(
346
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
347
+ Object.entries(this.component.apis ?? {}).map(([key, api]) => [
348
+ key,
349
+ isLegacyApi(api)
350
+ ? new LegacyToddleApi(api, key, this.globalFormulas)
351
+ : new ToddleApiV2(api, key, this.globalFormulas),
352
+ ]));
353
+ }
354
+ get nodes() {
355
+ return this.component.nodes;
356
+ }
357
+ get events() {
358
+ return this.component.events;
359
+ }
360
+ get onLoad() {
361
+ return this.component.onLoad;
362
+ }
363
+ get onAttributeChange() {
364
+ return this.component.onAttributeChange;
365
+ }
366
+ get isPage() {
367
+ return isPageComponent(this.component);
368
+ }
369
+ get contexts() {
370
+ return this.component.contexts;
371
+ }
372
+ }
373
+ //# sourceMappingURL=ToddleComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToddleComponent.js","sourceRoot":"","sources":["../../src/component/ToddleComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ActionModel } from './component.types';
2
+ export declare function getActionsInAction(action: ActionModel | null, path?: (string | number)[]): Generator<[(string | number)[], ActionModel]>;
@@ -0,0 +1,56 @@
1
+ import { isDefined } from '../utils/util';
2
+ export function* getActionsInAction(action, path = []) {
3
+ if (!isDefined(action)) {
4
+ return;
5
+ }
6
+ yield [path, action];
7
+ switch (action.type) {
8
+ case 'SetVariable':
9
+ case 'SetURLParameter':
10
+ case 'TriggerEvent':
11
+ case 'TriggerWorkflow':
12
+ break;
13
+ case 'Fetch':
14
+ for (const [key, a] of Object.entries(action.onSuccess?.actions ?? {})) {
15
+ yield* getActionsInAction(a, [...path, 'onSuccess', 'actions', key]);
16
+ }
17
+ for (const [key, a] of Object.entries(action.onError?.actions ?? {})) {
18
+ yield* getActionsInAction(a, [...path, 'onError', 'actions', key]);
19
+ }
20
+ for (const [key, a] of Object.entries(action.onMessage?.actions ?? {})) {
21
+ yield* getActionsInAction(a, [...path, 'onMessage', 'actions', key]);
22
+ }
23
+ break;
24
+ case 'Custom':
25
+ case undefined:
26
+ for (const [eventKey, event] of Object.entries(action.events ?? {})) {
27
+ for (const [key, a] of Object.entries(event?.actions ?? {})) {
28
+ yield* getActionsInAction(a, [
29
+ ...path,
30
+ 'events',
31
+ eventKey,
32
+ 'actions',
33
+ key,
34
+ ]);
35
+ }
36
+ }
37
+ break;
38
+ case 'Switch':
39
+ for (const [key, c] of action.cases.entries()) {
40
+ for (const [actionKey, a] of Object.entries(c?.actions ?? {})) {
41
+ yield* getActionsInAction(a, [
42
+ ...path,
43
+ 'cases',
44
+ key,
45
+ 'actions',
46
+ actionKey,
47
+ ]);
48
+ }
49
+ }
50
+ for (const [actionKey, a] of Object.entries(action.default.actions)) {
51
+ yield* getActionsInAction(a, [...path, 'default', 'actions', actionKey]);
52
+ }
53
+ break;
54
+ }
55
+ }
56
+ //# sourceMappingURL=actionUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionUtils.js","sourceRoot":"","sources":["../../src/component/actionUtils.ts"],"names":[],"mappings":"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"}