@design-edito/tools 0.1.32 → 0.1.34

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 (184) hide show
  1. package/agnostic/css/index.js +5 -5
  2. package/agnostic/html/hyper-json/cast/index.js +2 -2
  3. package/agnostic/html/hyper-json/index.js +3 -3
  4. package/agnostic/html/hyper-json/transformers/append/index.js +2 -2
  5. package/agnostic/html/hyper-json/transformers/classList/index.js +2 -2
  6. package/agnostic/html/hyper-json/transformers/index.js +2 -2
  7. package/agnostic/html/hyper-json/transformers/join/index.js +2 -2
  8. package/agnostic/html/hyper-json/transformers/length/index.js +2 -2
  9. package/agnostic/html/hyper-json/transformers/print/index.js +2 -2
  10. package/agnostic/html/hyper-json/transformers/push/index.js +2 -2
  11. package/agnostic/html/hyper-json/transformers/querySelector/index.js +2 -2
  12. package/agnostic/html/hyper-json/transformers/ref/index.js +2 -2
  13. package/agnostic/html/hyper-json/transformers/replace/index.js +2 -2
  14. package/agnostic/html/hyper-json/transformers/split/index.js +2 -2
  15. package/agnostic/html/hyper-json/transformers/toArray/index.js +2 -2
  16. package/agnostic/html/hyper-json/transformers/toBoolean/index.js +2 -2
  17. package/agnostic/html/hyper-json/transformers/toElement/index.js +2 -2
  18. package/agnostic/html/hyper-json/transformers/toNodeList/index.js +2 -2
  19. package/agnostic/html/hyper-json/transformers/toNull/index.js +2 -2
  20. package/agnostic/html/hyper-json/transformers/toNumber/index.js +2 -2
  21. package/agnostic/html/hyper-json/transformers/toRecord/index.js +2 -2
  22. package/agnostic/html/hyper-json/transformers/toRef/index.js +2 -2
  23. package/agnostic/html/hyper-json/transformers/toString/index.js +2 -2
  24. package/agnostic/html/hyper-json/transformers/toText/index.js +2 -2
  25. package/agnostic/html/hyper-json/transformers/toTransformer/index.js +2 -2
  26. package/agnostic/html/hyper-json/transformers/transformSelected/index.js +2 -2
  27. package/agnostic/html/hyper-json/transformers/trim/index.js +2 -2
  28. package/agnostic/html/hyper-json/tree/index.js +2 -2
  29. package/agnostic/html/hyper-json/utils/index.js +2 -2
  30. package/agnostic/html/index.js +13 -13
  31. package/agnostic/misc/index.js +11 -11
  32. package/agnostic/misc/lorem-ipsum/index.js +6 -6
  33. package/agnostic/numbers/index.js +3 -3
  34. package/agnostic/objects/index.d.ts +3 -1
  35. package/agnostic/objects/index.js +13 -9
  36. package/agnostic/objects/record-map/index.d.ts +3 -0
  37. package/agnostic/objects/record-map/index.js +6 -0
  38. package/agnostic/optim/index.js +3 -3
  39. package/agnostic/strings/index.js +4 -4
  40. package/agnostic/time/index.js +3 -3
  41. package/chunks/chunk-XNF5MLCQ.js +14 -0
  42. package/node/files/index.js +3 -3
  43. package/package.json +1 -2
  44. package/agnostic/html/hyper-json/crossenv/index.d.ts +0 -13
  45. package/agnostic/html/hyper-json/crossenv/index.js +0 -6
  46. package/agnostic/misc/crossenv/get-document/index.d.ts +0 -2
  47. package/agnostic/misc/crossenv/get-document/index.js +0 -7
  48. package/agnostic/misc/crossenv/get-window/browser.d.ts +0 -2
  49. package/agnostic/misc/crossenv/get-window/index.d.ts +0 -2
  50. package/agnostic/misc/crossenv/get-window/index.js +0 -6
  51. package/agnostic/misc/crossenv/types.d.ts +0 -3
  52. package/chunks/chunk-2DMWYLFG.js +0 -16
  53. package/chunks/chunk-2PI5AZIL.js +0 -211
  54. package/chunks/chunk-2UYTYTX4.js +0 -31
  55. package/chunks/chunk-3KQRMKQJ.js +0 -27
  56. package/chunks/chunk-3LVR6KZH.js +0 -22
  57. package/chunks/chunk-3PHPA25U.js +0 -18
  58. package/chunks/chunk-3PM7GZ6B.js +0 -33
  59. package/chunks/chunk-3SQJEEBK.js +0 -642
  60. package/chunks/chunk-3UQJFMBN.js +0 -27
  61. package/chunks/chunk-3UURICGY.js +0 -211
  62. package/chunks/chunk-3X6RXJBR.js +0 -37
  63. package/chunks/chunk-4F7ZVE7T.js +0 -332
  64. package/chunks/chunk-4GUDL44X.js +0 -13
  65. package/chunks/chunk-4QQBKBYH.js +0 -59
  66. package/chunks/chunk-4RDW62CU.js +0 -36
  67. package/chunks/chunk-5IR2PWO6.js +0 -211
  68. package/chunks/chunk-6CM2SWSX.js +0 -35
  69. package/chunks/chunk-6EYBQHJS.js +0 -33
  70. package/chunks/chunk-6NZCBAT4.js +0 -19
  71. package/chunks/chunk-6R54C426.js +0 -35
  72. package/chunks/chunk-6V23XMYE.js +0 -982
  73. package/chunks/chunk-73V5RDSG.js +0 -13
  74. package/chunks/chunk-7IGZP4TV.js +0 -30
  75. package/chunks/chunk-7QMAYGNV.js +0 -25
  76. package/chunks/chunk-7YW5HL6N.js +0 -168
  77. package/chunks/chunk-AFFLZUW5.js +0 -33
  78. package/chunks/chunk-AMS3FB24.js +0 -85
  79. package/chunks/chunk-APWPG7BU.js +0 -647
  80. package/chunks/chunk-AXMPRLPI.js +0 -35
  81. package/chunks/chunk-B2O7PFSF.js +0 -1108
  82. package/chunks/chunk-B6CSCX7J.js +0 -278
  83. package/chunks/chunk-B74HAAS6.js +0 -35
  84. package/chunks/chunk-BDHNULU7.js +0 -211
  85. package/chunks/chunk-BEJSITDG.js +0 -31
  86. package/chunks/chunk-BNB7LEMQ.js +0 -35
  87. package/chunks/chunk-CB52KVOZ.js +0 -22
  88. package/chunks/chunk-CECF6UZV.js +0 -29
  89. package/chunks/chunk-DBAJ66BR.js +0 -18
  90. package/chunks/chunk-DGQLPQS2.js +0 -33
  91. package/chunks/chunk-DLLTITVO.js +0 -33
  92. package/chunks/chunk-DMDOCC72.js +0 -18
  93. package/chunks/chunk-DRH7Q4FL.js +0 -127
  94. package/chunks/chunk-DRNK3RLE.js +0 -64
  95. package/chunks/chunk-EAY65ZP6.js +0 -22
  96. package/chunks/chunk-EVOTJ7SU.js +0 -35
  97. package/chunks/chunk-EW46EXFB.js +0 -8
  98. package/chunks/chunk-F5YMP5WU.js +0 -18
  99. package/chunks/chunk-F7EVMWVG.js +0 -27
  100. package/chunks/chunk-F7XWUG2V.js +0 -18
  101. package/chunks/chunk-FFOATPL4.js +0 -211
  102. package/chunks/chunk-FSCSFZOD.js +0 -647
  103. package/chunks/chunk-FWHUASVA.js +0 -22
  104. package/chunks/chunk-G2NZXHW6.js +0 -21
  105. package/chunks/chunk-GDYVCEWA.js +0 -38
  106. package/chunks/chunk-GNBIAWSY.js +0 -278
  107. package/chunks/chunk-GQSPY2CV.js +0 -19
  108. package/chunks/chunk-HDALT7XM.js +0 -620
  109. package/chunks/chunk-HEJV6JIO.js +0 -133
  110. package/chunks/chunk-HENMQK5Y.js +0 -647
  111. package/chunks/chunk-HFEOHBYG.js +0 -647
  112. package/chunks/chunk-HGECIEKD.js +0 -35
  113. package/chunks/chunk-HUKHWFVL.js +0 -19
  114. package/chunks/chunk-IGD53YL5.js +0 -870
  115. package/chunks/chunk-ILEM73XB.js +0 -981
  116. package/chunks/chunk-IPB3U2PD.js +0 -278
  117. package/chunks/chunk-JAST3E5G.js +0 -647
  118. package/chunks/chunk-JY3QZ2YO.js +0 -211
  119. package/chunks/chunk-K3OQEJI3.js +0 -33
  120. package/chunks/chunk-KN4RZPDY.js +0 -211
  121. package/chunks/chunk-KXBKJ3GS.js +0 -642
  122. package/chunks/chunk-L7SL3MND.js +0 -35
  123. package/chunks/chunk-LCFDDWJR.js +0 -278
  124. package/chunks/chunk-LFUY5AWK.js +0 -1108
  125. package/chunks/chunk-LGECI2WL.js +0 -306
  126. package/chunks/chunk-LGUEB5L5.js +0 -211
  127. package/chunks/chunk-LI6QDZCA.js +0 -211
  128. package/chunks/chunk-LYMZZ4BB.js +0 -22
  129. package/chunks/chunk-MDEDNPU5.js +0 -38
  130. package/chunks/chunk-MQHKEGP4.js +0 -33
  131. package/chunks/chunk-NF5ACCXZ.js +0 -211
  132. package/chunks/chunk-NFUY7SLX.js +0 -211
  133. package/chunks/chunk-NK557MKV.js +0 -35
  134. package/chunks/chunk-NTBSGBV2.js +0 -1108
  135. package/chunks/chunk-NWFX6TEY.js +0 -28
  136. package/chunks/chunk-NWMEWFTK.js +0 -33
  137. package/chunks/chunk-O5OTBN22.js +0 -35
  138. package/chunks/chunk-O7MDUYEF.js +0 -211
  139. package/chunks/chunk-OO5SJJDW.js +0 -35
  140. package/chunks/chunk-OVG5RGI3.js +0 -29
  141. package/chunks/chunk-OWRQ3QBI.js +0 -211
  142. package/chunks/chunk-PO3V3I57.js +0 -23
  143. package/chunks/chunk-PXB7U2DH.js +0 -31
  144. package/chunks/chunk-Q52UJOBC.js +0 -18
  145. package/chunks/chunk-QFEF4EET.js +0 -211
  146. package/chunks/chunk-QHSVCGLD.js +0 -280
  147. package/chunks/chunk-QO64L4KB.js +0 -97
  148. package/chunks/chunk-R6KCN6CK.js +0 -40
  149. package/chunks/chunk-RHYLRLKT.js +0 -211
  150. package/chunks/chunk-RJ5E22H5.js +0 -15
  151. package/chunks/chunk-RWUPHV54.js +0 -25
  152. package/chunks/chunk-S2757FI3.js +0 -36
  153. package/chunks/chunk-S42P73SC.js +0 -30
  154. package/chunks/chunk-S5XDYLJH.js +0 -18
  155. package/chunks/chunk-S7MJLTCR.js +0 -211
  156. package/chunks/chunk-SCM6NACT.js +0 -15
  157. package/chunks/chunk-SFV2NYY4.js +0 -211
  158. package/chunks/chunk-SH3Y2I5P.js +0 -18
  159. package/chunks/chunk-SMLKMOAX.js +0 -18
  160. package/chunks/chunk-SQZGZ3VT.js +0 -15
  161. package/chunks/chunk-T5CGXYST.js +0 -647
  162. package/chunks/chunk-TATRVKBS.js +0 -211
  163. package/chunks/chunk-TRB6DPKJ.js +0 -35
  164. package/chunks/chunk-UFKH5WD2.js +0 -21
  165. package/chunks/chunk-UODQZRY2.js +0 -620
  166. package/chunks/chunk-UOULDS6J.js +0 -33
  167. package/chunks/chunk-UPHVZROF.js +0 -35
  168. package/chunks/chunk-UUDXUSI5.js +0 -211
  169. package/chunks/chunk-UWAMSJ2X.js +0 -28
  170. package/chunks/chunk-UZUXLD2Q.js +0 -35
  171. package/chunks/chunk-VA6HXRX4.js +0 -211
  172. package/chunks/chunk-VRUJR6WR.js +0 -39
  173. package/chunks/chunk-W6YBEEZM.js +0 -211
  174. package/chunks/chunk-WABWQCFE.js +0 -127
  175. package/chunks/chunk-WECTUHS5.js +0 -127
  176. package/chunks/chunk-YE5HI3RK.js +0 -211
  177. package/chunks/chunk-YEBOL67V.js +0 -32
  178. package/chunks/chunk-YRGOY5YU.js +0 -1108
  179. package/chunks/chunk-YYE2MVZO.js +0 -211
  180. package/chunks/chunk-ZB73RE7P.js +0 -35
  181. package/chunks/chunk-ZONKYNKA.js +0 -28
  182. package/chunks/{chunk-GPWFYPER.js → chunk-5HWYTIYR.js} +3 -3
  183. package/chunks/{chunk-MCW3JX25.js → chunk-FWZSMFVA.js} +9 -9
  184. package/chunks/{chunk-MUGIN5OW.js → chunk-MZSIKE3H.js} +3 -3
@@ -1,620 +0,0 @@
1
- import {
2
- toNull
3
- } from "./chunk-RJ5E22H5.js";
4
- import {
5
- toRecord
6
- } from "./chunk-F5YMP5WU.js";
7
- import {
8
- toString
9
- } from "./chunk-DMDOCC72.js";
10
- import {
11
- toRef
12
- } from "./chunk-4RDW62CU.js";
13
- import {
14
- toTransformer
15
- } from "./chunk-SMLKMOAX.js";
16
- import {
17
- toText
18
- } from "./chunk-3PHPA25U.js";
19
- import {
20
- replace
21
- } from "./chunk-MDEDNPU5.js";
22
- import {
23
- querySelector
24
- } from "./chunk-BNB7LEMQ.js";
25
- import {
26
- split
27
- } from "./chunk-6CM2SWSX.js";
28
- import {
29
- toArray
30
- } from "./chunk-Q52UJOBC.js";
31
- import {
32
- toBoolean
33
- } from "./chunk-SH3Y2I5P.js";
34
- import {
35
- toElement
36
- } from "./chunk-S5XDYLJH.js";
37
- import {
38
- toNumber
39
- } from "./chunk-F7XWUG2V.js";
40
- import {
41
- toNodeList
42
- } from "./chunk-DBAJ66BR.js";
43
- import {
44
- append
45
- } from "./chunk-K3OQEJI3.js";
46
- import {
47
- classList
48
- } from "./chunk-VRUJR6WR.js";
49
- import {
50
- join
51
- } from "./chunk-RWUPHV54.js";
52
- import {
53
- print
54
- } from "./chunk-2DMWYLFG.js";
55
- import {
56
- length
57
- } from "./chunk-S42P73SC.js";
58
- import {
59
- push
60
- } from "./chunk-FWHUASVA.js";
61
- import {
62
- ref
63
- } from "./chunk-3X6RXJBR.js";
64
- import {
65
- Cast
66
- } from "./chunk-QO64L4KB.js";
67
- import {
68
- Serialize
69
- } from "./chunk-DRNK3RLE.js";
70
- import {
71
- Crossenv
72
- } from "./chunk-3LVR6KZH.js";
73
- import {
74
- Types
75
- } from "./chunk-7QMAYGNV.js";
76
- import {
77
- Utils
78
- } from "./chunk-YEBOL67V.js";
79
- import {
80
- insertNode
81
- } from "./chunk-XA4HVHJ4.js";
82
- import {
83
- replaceInElement
84
- } from "./chunk-GBMHGF7P.js";
85
- import {
86
- isRecord
87
- } from "./chunk-YDIBNEGA.js";
88
-
89
- // src/agnostic/html/hyper-json/transformers/transformSelected/index.ts
90
- var transformSelected = (callerTagName, ...args) => {
91
- return Utils.toNamedTransformer(callerTagName, (currentValue, callerTree) => {
92
- const { NodeList, Element, Text } = Crossenv.getWindow();
93
- if (!(currentValue instanceof Element) && !(currentValue instanceof NodeList)) return Utils.makeTransformerError({
94
- message: "Current value must be Element or NodeList",
95
- input: currentValue
96
- });
97
- const [selector, ...transformerDescriptors] = args;
98
- if (typeof selector !== "string" && !(selector instanceof Text)) return Utils.makeTransformerError({
99
- message: "Selector argument must be string or text",
100
- input: selector !== void 0 ? selector : "<undefined>"
101
- });
102
- if (transformerDescriptors.length === 0) return Utils.makeTransformerError("No transformer descriptor provided");
103
- let transformers = [];
104
- for (const descriptor of transformerDescriptors) {
105
- const errorResponse = Utils.makeTransformerError({
106
- message: "Transformer descriptors must be of shape { name: string, arguments: Value[] }",
107
- input: descriptor
108
- });
109
- if (!isRecord(descriptor)) return errorResponse;
110
- if (!("name" in descriptor) || typeof descriptor.name !== "string") return errorResponse;
111
- if (!("arguments" in descriptor) || !Array.isArray(descriptor.arguments)) return errorResponse;
112
- const { name, arguments: args2 } = descriptor;
113
- const generator = callerTree.getGenerator(name);
114
- if (generator === void 0) return Utils.makeTransformerError(`No transformer found under the name ${name}`);
115
- transformers.push(generator(name, ...args2));
116
- }
117
- const elementInput = Cast.toElement(currentValue);
118
- const strSelector = Cast.toString(selector);
119
- const selected = Array.from(elementInput.querySelectorAll(strSelector));
120
- const transformationErrors = [];
121
- const transformed = selected.map((input) => {
122
- const output = transformers.reduce((reduced, transformer, transformerPos) => {
123
- const result = transformer(reduced, callerTree);
124
- if (result.action === "REPLACE") return result.value;
125
- else if (result.action === "MERGE") {
126
- const merged = Tree.mergeValues(
127
- reduced,
128
- result.value,
129
- transformerPos,
130
- callerTree
131
- );
132
- return merged;
133
- }
134
- if (result.action === "ERROR") transformationErrors.push({
135
- message: result.value,
136
- transformerName: transformer.transformerName,
137
- transformerPos,
138
- transforming: reduced
139
- });
140
- return reduced;
141
- }, input);
142
- return { input, output };
143
- });
144
- if (transformationErrors.length !== 0) return Utils.makeTransformerError({
145
- message: "Some nested transformers returned an error",
146
- errors: transformationErrors
147
- });
148
- const nonElementTransformResult = transformed.find((item) => !(item.output instanceof Element));
149
- if (nonElementTransformResult !== void 0) return Utils.makeTransformerError({
150
- message: "Some transformations resulted in a non Element output",
151
- inputElement: nonElementTransformResult.input,
152
- outputValue: nonElementTransformResult.output
153
- });
154
- const transformMap = new Map(transformed.map((e) => [e.input, e.output]));
155
- const elementOutput = replaceInElement(elementInput, transformMap);
156
- return {
157
- action: "REPLACE",
158
- value: elementOutput
159
- };
160
- });
161
- };
162
-
163
- // src/agnostic/html/hyper-json/transformers/index.ts
164
- var Transformers;
165
- ((Transformers2) => {
166
- Transformers2.defaultGeneratorsMap = /* @__PURE__ */ new Map([
167
- ["append", append],
168
- ["classList", classList],
169
- ["join", join],
170
- ["length", length],
171
- ["print", print],
172
- ["push", push],
173
- ["querySelector", querySelector],
174
- ["ref", ref],
175
- ["replace", replace],
176
- ["split", split],
177
- ["toArray", toArray],
178
- ["toBoolean", toBoolean],
179
- ["toElement", toElement],
180
- ["toNodeList", toNodeList],
181
- ["toNull", toNull],
182
- ["toNumber", toNumber],
183
- ["toRecord", toRecord],
184
- ["toRef", toRef],
185
- ["toString", toString],
186
- ["toText", toText],
187
- ["toTransformer", toTransformer],
188
- ["transformSelected", transformSelected]
189
- // ['trim', trim]
190
- ]);
191
- })(Transformers || (Transformers = {}));
192
-
193
- // src/agnostic/html/hyper-json/tree/index.ts
194
- var getWindow = Crossenv.getWindow;
195
- var isElement = (node) => node.nodeType === getWindow().Node.ELEMENT_NODE;
196
- var isText = (node) => node.nodeType === getWindow().Node.TEXT_NODE;
197
- var Tree;
198
- ((_Tree) => {
199
- _Tree.defaultOptions = {
200
- generatorsMap: Transformers.defaultGeneratorsMap,
201
- keyAttribute: "_name",
202
- actionAttribute: "_action"
203
- };
204
- function fillOptions(options) {
205
- return {
206
- ..._Tree.defaultOptions,
207
- ...options
208
- };
209
- }
210
- _Tree.fillOptions = fillOptions;
211
- function mergeValues(currentValue, incomingValue, mergeKey, initiatorTree) {
212
- const { Element, Text, NodeList, document: document2 } = getWindow();
213
- if (typeof incomingValue === "function") {
214
- const evaluated = incomingValue(currentValue, initiatorTree);
215
- if (evaluated.action === null) return currentValue;
216
- if (evaluated.action === "REPLACE") return evaluated.value;
217
- if (evaluated.action === "ERROR") {
218
- const errorMessage = `Tranformer error:
219
- from: ${incomingValue.transformerName}
220
- at: ${initiatorTree.pathString.slice(1)}/${mergeKey}
221
- message:`;
222
- console.warn(errorMessage, evaluated.value);
223
- return currentValue;
224
- }
225
- return mergeValues(
226
- currentValue,
227
- evaluated.value,
228
- mergeKey,
229
- initiatorTree
230
- );
231
- }
232
- if (Array.isArray(currentValue)) {
233
- if (typeof mergeKey === "string") return currentValue;
234
- return [...currentValue, incomingValue];
235
- }
236
- if (currentValue === null || typeof currentValue === "boolean" || typeof currentValue === "number" || typeof currentValue === "string" || typeof currentValue === "function" || currentValue instanceof Text || currentValue instanceof Element) {
237
- if (incomingValue === null || typeof incomingValue === "boolean" || typeof incomingValue === "number" || typeof incomingValue === "string" || Array.isArray(incomingValue) || isRecord(incomingValue)) {
238
- return incomingValue;
239
- }
240
- const frag = document2.createDocumentFragment();
241
- if (currentValue instanceof Element || currentValue instanceof Text) frag.append(currentValue.cloneNode(true));
242
- else frag.append(`${currentValue}`);
243
- if (incomingValue instanceof Element || incomingValue instanceof Text) {
244
- frag.append(incomingValue.cloneNode(true));
245
- return frag.childNodes;
246
- }
247
- frag.append(...Array.from(incomingValue).map((e) => e.cloneNode(true)));
248
- return frag.childNodes;
249
- }
250
- if (currentValue instanceof NodeList) {
251
- if (incomingValue instanceof Element || incomingValue instanceof Text) {
252
- const frag = document2.createDocumentFragment();
253
- frag.append(...Array.from(currentValue).map((e) => e.cloneNode(true)), incomingValue);
254
- return frag.childNodes;
255
- }
256
- if (incomingValue instanceof NodeList) {
257
- const frag = document2.createDocumentFragment();
258
- frag.append(
259
- ...Array.from(currentValue).map((e) => e.cloneNode(true)),
260
- ...Array.from(incomingValue).map((e) => e.cloneNode(true))
261
- );
262
- return frag.childNodes;
263
- }
264
- if (incomingValue === null || typeof incomingValue === "string" || typeof incomingValue === "number" || typeof incomingValue === "boolean") {
265
- const frag = document2.createDocumentFragment();
266
- frag.append(...Array.from(currentValue).map((e) => e.cloneNode(true)), `${incomingValue}`);
267
- return frag.childNodes;
268
- }
269
- if (Array.isArray(incomingValue)) return [
270
- ...Array.from(currentValue),
271
- ...incomingValue
272
- ];
273
- return { ...incomingValue };
274
- }
275
- if (typeof mergeKey === "number") return currentValue;
276
- return {
277
- ...currentValue,
278
- [mergeKey]: incomingValue
279
- };
280
- }
281
- _Tree.mergeValues = mergeValues;
282
- function mergeRootElements(...rootElements) {
283
- const output = document.createElement("data");
284
- rootElements.forEach((rootElement) => {
285
- const nodes = [...Array.from(rootElement.cloneNode(true).childNodes)];
286
- output.append(...nodes);
287
- });
288
- return output;
289
- }
290
- _Tree.mergeRootElements = mergeRootElements;
291
- function reduceRootElement(rootElement, options) {
292
- const { Element, Text, document: document2 } = getWindow();
293
- const _options = fillOptions(options ?? {});
294
- const { keyAttribute, actionAttribute } = _options;
295
- const outputRootElement = rootElement.cloneNode();
296
- let positionnedChildrenCount = 0;
297
- const childrenMap = /* @__PURE__ */ new Map();
298
- const children = Array.from(rootElement.childNodes).filter((e) => {
299
- if (e instanceof Element) return true;
300
- if (e instanceof Text) return true;
301
- return false;
302
- });
303
- children.forEach((child) => {
304
- if (child instanceof Text) {
305
- childrenMap.set(positionnedChildrenCount, child);
306
- outputRootElement.appendChild(child);
307
- positionnedChildrenCount += 1;
308
- return;
309
- }
310
- const foundKey = child.getAttribute(keyAttribute);
311
- const actionType = child.getAttribute(actionAttribute);
312
- const targetKey = foundKey ?? positionnedChildrenCount;
313
- if (foundKey === null) {
314
- positionnedChildrenCount += 1;
315
- }
316
- const existingElement = childrenMap.get(targetKey);
317
- if (existingElement === void 0) {
318
- childrenMap.set(targetKey, child);
319
- outputRootElement.appendChild(child);
320
- return;
321
- }
322
- if (actionType === Types.ReductionAction.APPEND || actionType === Types.ReductionAction.PREPEND) {
323
- if (existingElement instanceof Text) {
324
- if (child instanceof Text) {
325
- const newTextNode = actionType === Types.ReductionAction.APPEND ? document2.createTextNode(`${existingElement.textContent}${child.textContent}`) : document2.createTextNode(`${child.textContent}${existingElement.textContent}`);
326
- childrenMap.set(targetKey, newTextNode);
327
- insertNode(newTextNode, "after", existingElement);
328
- existingElement.remove();
329
- return;
330
- } else {
331
- childrenMap.set(targetKey, child);
332
- insertNode(child, "after", existingElement);
333
- existingElement.remove();
334
- return;
335
- }
336
- } else {
337
- if (child instanceof Text) {
338
- childrenMap.set(targetKey, child);
339
- insertNode(child, "after", existingElement);
340
- existingElement.remove();
341
- } else {
342
- if (actionType === Types.ReductionAction.APPEND) existingElement.append(...Array.from(child.childNodes));
343
- else existingElement.prepend(...Array.from(child.childNodes));
344
- }
345
- }
346
- }
347
- insertNode(child, "after", existingElement);
348
- existingElement.remove();
349
- childrenMap.set(targetKey, child);
350
- });
351
- const outputChildren = Array.from(outputRootElement.childNodes);
352
- outputChildren.forEach((outputChild) => {
353
- if (outputChild instanceof Element) {
354
- const reduced = reduceRootElement(outputChild);
355
- insertNode(reduced, "after", outputChild);
356
- outputChild.remove();
357
- }
358
- });
359
- return outputRootElement;
360
- }
361
- _Tree.reduceRootElement = reduceRootElement;
362
- class Tree2 {
363
- node;
364
- name;
365
- parent;
366
- root;
367
- isRoot;
368
- path;
369
- pathString;
370
- tagName;
371
- attributes;
372
- subtrees = /* @__PURE__ */ new Map();
373
- children;
374
- type;
375
- generators;
376
- keyAttribute;
377
- actionAttribute;
378
- constructor(node, parentOrOptions, pathFromParent, options) {
379
- this.resolve = this.resolve.bind(this);
380
- this.getGenerator = this.getGenerator.bind(this);
381
- this.initValue = this.initValue.bind(this);
382
- this.getInnerValue = this.getInnerValue.bind(this);
383
- this.wrapInnerValue = this.wrapInnerValue.bind(this);
384
- this.setCache = this.setCache.bind(this);
385
- this.getPerfCounters = this.getPerfCounters.bind(this);
386
- this.printPerfCounters = this.printPerfCounters.bind(this);
387
- this.pushToEvalCallStack = this.pushToEvalCallStack.bind(this);
388
- this.flushEvalCallStack = this.flushEvalCallStack.bind(this);
389
- this.evaluate = this.evaluate.bind(this);
390
- const { Element, Text } = getWindow();
391
- const _node = node;
392
- const _parent = parentOrOptions instanceof Tree2 ? parentOrOptions : void 0;
393
- this.node = _node;
394
- this.parent = _parent ?? null;
395
- this.root = this.parent === null ? this : this.parent.root;
396
- this.isRoot = this.root === this;
397
- const _options = options ?? parentOrOptions instanceof Tree2 ? fillOptions({}) : fillOptions(parentOrOptions ?? {});
398
- this.keyAttribute = _options.keyAttribute;
399
- this.actionAttribute = _options.actionAttribute;
400
- this.generators = this.isRoot ? _options.generatorsMap : this.root.generators;
401
- this.name = this.node instanceof Element ? this.node.getAttribute(this.keyAttribute) : null;
402
- const _pathFromParent = pathFromParent !== void 0 ? pathFromParent : void 0;
403
- if (this.parent === null) this.path = [];
404
- else if (_pathFromParent === void 0) {
405
- this.path = [...this.parent.path, 0];
406
- } else {
407
- this.path = [...this.parent.path, _pathFromParent];
408
- }
409
- this.pathString = `/${this.path.join("/")}`;
410
- this.tagName = node instanceof Element ? node.tagName.toLowerCase() : null;
411
- this.attributes = isElement(node) ? Array.from(node.attributes) : null;
412
- const { childNodes } = node;
413
- let positionnedChildrenCount = 0;
414
- const mutableSubtrees = /* @__PURE__ */ new Map();
415
- Array.from(childNodes).filter((node2, _, nodes) => {
416
- if (isElement(node2)) return true;
417
- if (isText(node2)) {
418
- const hasContent = (node2.textContent ?? "").trim() !== "";
419
- if (hasContent) return true;
420
- if (nodes.some((n) => n instanceof Element)) return false;
421
- return true;
422
- }
423
- return false;
424
- }).forEach((childNode) => {
425
- if (childNode instanceof Text) {
426
- mutableSubtrees.set(
427
- positionnedChildrenCount,
428
- new Tree2(childNode, this, positionnedChildrenCount)
429
- );
430
- positionnedChildrenCount += 1;
431
- } else {
432
- const propertyName = childNode.getAttribute(this.keyAttribute);
433
- if (propertyName === null) {
434
- mutableSubtrees.set(
435
- positionnedChildrenCount,
436
- new Tree2(childNode, this, positionnedChildrenCount)
437
- );
438
- positionnedChildrenCount += 1;
439
- } else {
440
- mutableSubtrees.set(
441
- propertyName,
442
- new Tree2(childNode, this, propertyName)
443
- );
444
- }
445
- }
446
- });
447
- this.subtrees = mutableSubtrees;
448
- this.children = Array.from(this.subtrees.values());
449
- if (this.tagName === null) {
450
- this.type = "text";
451
- } else if (this.tagName === Types.TyperTagName.NULL) {
452
- this.type = "null";
453
- } else if (this.tagName === Types.TyperTagName.BOOLEAN) {
454
- this.type = "boolean";
455
- } else if (this.tagName === Types.TyperTagName.NUMBER) {
456
- this.type = "number";
457
- } else if (this.tagName === Types.TyperTagName.STRING) {
458
- this.type = "string";
459
- } else if (this.tagName === Types.TyperTagName.TEXT) {
460
- this.type = "text";
461
- } else if (this.tagName === Types.TyperTagName.NODELIST) {
462
- this.type = "nodelist";
463
- } else if (this.tagName === Types.TyperTagName.ARRAY) {
464
- this.type = "array";
465
- } else if (this.tagName === Types.TyperTagName.RECORD) {
466
- this.type = "record";
467
- } else if (this.generators.get(this.tagName) !== void 0) {
468
- this.type = "transformer";
469
- } else {
470
- this.type = "element";
471
- }
472
- }
473
- resolve = function(path) {
474
- let currentTree = this.root;
475
- for (const chunk of path) {
476
- const { subtrees } = currentTree;
477
- const foundSubtree = subtrees.get(chunk);
478
- if (foundSubtree === void 0) return void 0;
479
- currentTree = foundSubtree;
480
- }
481
- return currentTree;
482
- };
483
- getGenerator(name) {
484
- return this.generators.get(name);
485
- }
486
- initValue() {
487
- const { type } = this;
488
- let currentValue;
489
- if (type === "null") {
490
- currentValue = null;
491
- } else if (type === "boolean") {
492
- currentValue = false;
493
- } else if (type === "number") {
494
- currentValue = 0;
495
- } else if (type === "string") {
496
- currentValue = "";
497
- } else if (type === "text") {
498
- currentValue = this.node.textContent;
499
- } else if (type === "element") {
500
- currentValue = getWindow().document.createDocumentFragment().childNodes;
501
- } else if (type === "nodelist") {
502
- currentValue = getWindow().document.createDocumentFragment().childNodes;
503
- } else if (type === "array") {
504
- currentValue = [];
505
- } else if (type === "record") {
506
- currentValue = {};
507
- } else if (type === "transformer") {
508
- currentValue = [];
509
- } else {
510
- currentValue = null;
511
- }
512
- return currentValue;
513
- }
514
- getInnerValue(initialValue) {
515
- const { subtrees } = this;
516
- const innerValue = Array.from(subtrees.entries()).reduce((currentValue, [subpath, subtree]) => mergeValues(
517
- currentValue,
518
- subtree.evaluate(),
519
- subpath,
520
- this
521
- ), initialValue);
522
- return innerValue;
523
- }
524
- wrapInnerValue(innerValue) {
525
- const { type } = this;
526
- if (type === "transformer") {
527
- const transformerName = this.tagName;
528
- if (transformerName === null) return innerValue;
529
- const generator = this.getGenerator(transformerName);
530
- if (generator === void 0) return innerValue;
531
- const transformer = Array.isArray(innerValue) ? generator(transformerName, ...innerValue) : generator(transformerName, innerValue);
532
- return transformer;
533
- }
534
- if (type === "null") return Cast.toNull();
535
- if (type === "boolean") return Cast.toBoolean(innerValue);
536
- if (type === "number") return Cast.toNumber(innerValue);
537
- if (type === "string") return Cast.toString(innerValue);
538
- if (type === "array") return Cast.toArray(innerValue);
539
- if (type === "record") return Cast.toRecord(innerValue);
540
- if (type === "text") return Cast.toText(innerValue);
541
- if (type === "element") return Cast.toElement(innerValue);
542
- if (type === "nodelist") return Cast.toNodeList(innerValue);
543
- return Cast.toNull();
544
- }
545
- cache = void 0;
546
- setCache(value) {
547
- this.cache = Serialize.serialize(value);
548
- }
549
- perfCounters = {
550
- computed: 0,
551
- computeTime: 0,
552
- computeTimeAvg: 0,
553
- cached: 0,
554
- cacheTime: 0,
555
- cacheTimeAvg: 0,
556
- totalTime: 0
557
- };
558
- getPerfCounters() {
559
- const { subtrees } = this;
560
- const subCounters = [];
561
- subCounters.push([this.pathString, this.perfCounters]);
562
- subtrees.forEach((subtree) => subCounters.push(...subtree.getPerfCounters()));
563
- return subCounters;
564
- }
565
- printPerfCounters() {
566
- const perfCounters = this.getPerfCounters().sort((a, b) => b[1].totalTime - a[1].totalTime).map((e) => ({
567
- path: e[0],
568
- totalMs: e[1].totalTime,
569
- computeMs: e[1].computeTime,
570
- cacheMs: e[1].cacheTime,
571
- ops: `${e[1].computed}/${e[1].cached}`
572
- }));
573
- console.table(perfCounters);
574
- }
575
- callstack = [];
576
- pushToEvalCallStack(path) {
577
- this.callstack.push(path);
578
- this.parent?.pushToEvalCallStack(path);
579
- }
580
- flushEvalCallStack() {
581
- this.callstack.length = 0;
582
- }
583
- evaluate() {
584
- const start = Date.now();
585
- const circularPatternDetected = this.callstack.some((p) => p.startsWith(this.pathString));
586
- if (circularPatternDetected) throw new Error(`Circular reference pattern detected @ ${this.pathString}`);
587
- this.pushToEvalCallStack(this.pathString);
588
- const { perfCounters, cache } = this;
589
- if (cache !== void 0) {
590
- const deserialized = Serialize.deserialize(cache);
591
- const end2 = Date.now();
592
- const time2 = end2 - start;
593
- perfCounters.cached++;
594
- perfCounters.cacheTime += time2;
595
- perfCounters.cacheTimeAvg = perfCounters.cacheTime / perfCounters.cached;
596
- perfCounters.totalTime = perfCounters.computeTime + perfCounters.cacheTime;
597
- return deserialized;
598
- }
599
- const init = this.initValue();
600
- const inner = this.getInnerValue(init);
601
- const wrapped = this.wrapInnerValue(inner);
602
- this.setCache(wrapped);
603
- const end = Date.now();
604
- const time = end - start;
605
- perfCounters.computed++;
606
- perfCounters.computeTime += time;
607
- perfCounters.computeTimeAvg = perfCounters.computeTime / perfCounters.computed;
608
- perfCounters.totalTime = perfCounters.computeTime + perfCounters.cacheTime;
609
- this.flushEvalCallStack();
610
- return wrapped;
611
- }
612
- }
613
- _Tree.Tree = Tree2;
614
- })(Tree || (Tree = {}));
615
-
616
- export {
617
- Tree,
618
- transformSelected,
619
- Transformers
620
- };
@@ -1,33 +0,0 @@
1
- import {
2
- Cast,
3
- Transformers,
4
- Tree
5
- } from "./chunk-ILEM73XB.js";
6
- import {
7
- Serialize
8
- } from "./chunk-DRNK3RLE.js";
9
- import {
10
- Crossenv
11
- } from "./chunk-3LVR6KZH.js";
12
- import {
13
- Utils
14
- } from "./chunk-F7EVMWVG.js";
15
- import {
16
- Types
17
- } from "./chunk-7QMAYGNV.js";
18
-
19
- // src/agnostic/html/hyper-json/index.ts
20
- var HyperJson;
21
- ((HyperJson2) => {
22
- HyperJson2.Cast = Cast;
23
- HyperJson2.Crossenv = Crossenv;
24
- HyperJson2.Serialize = Serialize;
25
- HyperJson2.Transformers = Transformers;
26
- HyperJson2.Tree = Tree;
27
- HyperJson2.Types = Types;
28
- HyperJson2.Utils = Utils;
29
- })(HyperJson || (HyperJson = {}));
30
-
31
- export {
32
- HyperJson
33
- };
@@ -1,35 +0,0 @@
1
- import {
2
- Transformers,
3
- Tree
4
- } from "./chunk-T5CGXYST.js";
5
- import {
6
- Cast
7
- } from "./chunk-QO64L4KB.js";
8
- import {
9
- Types
10
- } from "./chunk-7QMAYGNV.js";
11
- import {
12
- Serialize
13
- } from "./chunk-DRNK3RLE.js";
14
- import {
15
- Crossenv
16
- } from "./chunk-3LVR6KZH.js";
17
- import {
18
- Utils
19
- } from "./chunk-YEBOL67V.js";
20
-
21
- // src/agnostic/html/hyper-json/index.ts
22
- var HyperJson;
23
- ((HyperJson2) => {
24
- HyperJson2.Cast = Cast;
25
- HyperJson2.Crossenv = Crossenv;
26
- HyperJson2.Serialize = Serialize;
27
- HyperJson2.Transformers = Transformers;
28
- HyperJson2.Tree = Tree;
29
- HyperJson2.Types = Types;
30
- HyperJson2.Utils = Utils;
31
- })(HyperJson || (HyperJson = {}));
32
-
33
- export {
34
- HyperJson
35
- };