json-to-spec 20.1.1 → 21.1.1

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/docs/dist/min.js CHANGED
@@ -1,326 +1,116 @@
1
- const f = {
2
- version: "19.0.0",
3
- name: "json-to-spec/v19",
4
- description: "Minimalist 2-layer compiler: pure value replace + jsonToSpec iterate"
5
- }, b = (n) => {
6
- typeof globalThis > "u" || !n || (globalThis.ks ?? (globalThis.ks = {}), globalThis.ks["json-to-spec"] = {
7
- meta: f,
8
- compile: n
1
+ const u = {
2
+ version: "v21.0",
3
+ description: "Pure spec engine no document at all"
4
+ }, i = (e) => {
5
+ typeof globalThis > "u" || !e || (globalThis.ks ?? (globalThis.ks = {}), globalThis.ks["json-to-spec"] = {
6
+ meta: u,
7
+ buildSpecElement: e
9
8
  });
10
- }, d = ({ inData: n, inDataKey: r }) => {
11
- const t = r;
12
- if (t === "") return n;
13
- let e = n[t];
14
- return t.includes(".") && (e = t.split(".").reduce(
15
- (c, a) => c == null ? void 0 : c[a],
16
- n
17
- )), e;
18
- }, O = ({
19
- inNode: n,
20
- inData: r
21
- } = {}) => {
22
- const t = n, e = r;
23
- if (!(t != null && t.textContent)) return "no-textContent";
24
- if (typeof t.textContent != "string") return "not-a-string";
25
- if (!t.textContent.includes("${")) return "no-template-token";
26
- const o = t.textContent.replace(/^\$\{/, "").replace(/\}$/, "");
27
- t.textContent = d({
28
- inData: e,
29
- inDataKey: o
30
- });
31
- }, C = ({
32
- inNode: n,
33
- inData: r
34
- } = {}) => {
35
- const t = n, e = r;
36
- if ("attributes" in t) {
37
- const o = Object.fromEntries(
38
- Object.entries(t.attributes || {}).map(([s, c]) => [
39
- s,
40
- typeof c == "string" && c.includes("${") ? d({
41
- inData: e,
42
- inDataKey: c.replace(/^\$\{/, "").replace(/\}$/, "")
43
- }) : c
44
- ])
45
- );
46
- t.attributes = { ...o };
9
+ }, f = ({ inSpec: e }) => {
10
+ const t = e;
11
+ return t == null;
12
+ }, d = ({ inSpec: e }) => typeof Node < "u" && e instanceof Node, p = ({ inSpecJson: e }) => Array.isArray(e), y = ({ inArray: e = [], inShowLog: t = !1, inDataJson: o }) => {
13
+ const r = e, l = t, n = o;
14
+ return Array.isArray(r) ? r.map((c) => a({
15
+ inSpecJson: c,
16
+ inShowLog: l,
17
+ inDataJson: n
18
+ })).flat().filter(Boolean) : [];
19
+ }, s = (e, t) => typeof e != "string" ? e : e.replace(/\$\{([^}]+)\}/g, (o, r) => {
20
+ const l = r.trim().split(".");
21
+ let n = t;
22
+ for (const c of l) {
23
+ if (n == null)
24
+ return "";
25
+ n = n[c];
47
26
  }
48
- }, $ = ({
49
- inNode: n,
50
- inData: r
51
- } = {}) => {
52
- const t = n, e = r;
53
- O({ inNode: t, inData: e }), C({ inNode: t, inData: e });
54
- }, T = ({
55
- inTemplate: n,
56
- inSourceValues: r
57
- } = {}) => {
58
- const t = r;
59
- return t === void 0 ? void 0 : t.map((o) => {
60
- const s = structuredClone(n);
61
- return l({
62
- inNode: s,
63
- inData: o,
64
- inOperation: "replace"
27
+ return n === null || typeof n == "string" || typeof n == "number" || typeof n == "boolean" ? String(n ?? "") : n;
28
+ }), m = ({ inSpecJson: e, inData: t, inShowLog: o }) => ("key" in t && "value" in t ? "textContent" in e && (e.textContent = s(
29
+ e.textContent,
30
+ t
31
+ )) : ("textContent" in e && (e.textContent = s(
32
+ e.textContent,
33
+ t
34
+ )), "attributes" in e && (e.attributes = Object.fromEntries(
35
+ Object.entries(e.attributes).map(
36
+ ([r, l]) => [
37
+ r,
38
+ s(l, t)
39
+ ]
40
+ )
41
+ )), "children" in e && (e.children = e.children.map((r) => a({
42
+ inSpecJson: r,
43
+ inShowLog: o,
44
+ inDataJson: t
45
+ })))), e), b = ({ inTemplate: e, inDataAsArray: t }) => {
46
+ const o = t, r = e;
47
+ return o.map((n) => {
48
+ const c = structuredClone(r);
49
+ return a({
50
+ inSpecJson: c,
51
+ inDataJson: n
65
52
  });
66
53
  });
67
- }, k = ({
68
- inNode: n,
69
- inData: r,
70
- inShowLog: t
71
- } = {}) => {
72
- const e = n, o = r;
73
- if (!("jsonToSpec" in e) || !("operation" in e.jsonToSpec) || e.jsonToSpec.operation !== "iterate" || !("source" in e.jsonToSpec)) return;
74
- const s = o[e.jsonToSpec.source], c = T({
75
- inTemplate: e.jsonToSpec.template,
76
- inSourceValues: s
77
- });
78
- e.children = c;
79
- }, x = ({
80
- inNode: n,
81
- inData: r
82
- } = {}) => {
83
- const t = n;
84
- if (!(t != null && t.textContent)) return "no-textContent";
85
- if (typeof t.textContent != "string") return "not-a-string";
86
- if (!t.textContent.includes("${")) return "no-template-token";
87
- t.textContent === "${key}" && (t.textContent = r.key), t.textContent === "${value}" && (t.textContent = r.value);
88
- }, A = ({
89
- inNode: n,
90
- inData: r
91
- } = {}) => {
92
- const t = n;
93
- if ("attributes" in t) {
94
- const e = Object.fromEntries(
95
- Object.entries(t.attributes).map(([o, s]) => {
96
- let c = s;
97
- return s === "${key}" ? c = r.key : s === "${value}" && (c = r.value), [o, c];
98
- })
99
- );
100
- t.attributes = { ...e };
101
- }
102
- }, j = ({
103
- inNode: n,
104
- inData: r
105
- } = {}) => {
106
- const t = n, e = r;
107
- x({ inNode: t, inData: e }), A({ inNode: t, inData: e });
108
- };
109
- function m(n) {
110
- return n !== null && typeof n == "object" && Object.getPrototypeOf(n) === Object.prototype;
111
- }
112
- const h = ({
113
- inTemplate: n,
114
- inSourceValues: r,
115
- inShowLog: t
116
- } = {}) => {
117
- const e = r;
118
- if (e === void 0 || !m(e)) return;
119
- t && console.log("loopObject:createChildren:1 ", n, r);
54
+ }, h = ({ inTemplate: e, inDataAsObject: t }) => {
120
55
  let o = [];
121
- for (const [s, c] of Object.entries(e)) {
122
- const a = structuredClone(n);
123
- j({ inNode: a, inData: { key: s, value: c } }), o.push(a);
56
+ console.log("11111111--------loopObject : ", t);
57
+ for (const [r, l] of Object.entries(t)) {
58
+ const n = structuredClone(e), c = a({
59
+ inSpecJson: n,
60
+ inDataJson: { key: r, value: l }
61
+ });
62
+ o.push(c);
124
63
  }
125
64
  return o;
126
- }, D = ({
127
- inNode: n,
128
- inData: r,
129
- inShowLog: t
130
- } = {}) => {
131
- const e = n, o = r;
132
- if (t && console.log("loopObject:1 ", n, r), !("jsonToSpec" in e) || !("operation" in e.jsonToSpec) || e.jsonToSpec.operation !== "loopObject" || !("source" in e.jsonToSpec)) return;
133
- t && console.log("loopObject:2 ", n, r);
134
- const s = o[e.jsonToSpec.source], c = h({
135
- inTemplate: e.jsonToSpec.template,
136
- inSourceValues: s,
137
- inShowLog: t
138
- });
139
- e.children = c;
140
- };
141
- function S(n) {
142
- return n !== null && typeof n == "object" && Object.getPrototypeOf(n) === Object.prototype;
143
- }
144
- const N = ({
145
- inNode: n,
146
- inData: r
147
- } = {}) => {
148
- if (Object.keys(r).map((o) => `\${${o}}`).includes(n.textContent)) {
149
- const o = n.textContent.slice(2, -1);
150
- n.textContent = r[o];
151
- }
152
- }, F = ({
153
- inNode: n,
154
- inData: r
155
- } = {}) => {
156
- const t = n, e = r;
157
- if (!(t != null && t.textContent)) return "no-textContent";
158
- if (typeof t.textContent != "string") return "not-a-string";
159
- if (!t.textContent.includes("${")) return "no-template-token";
160
- S(e) ? N({ inNode: n, inData: r }) : t.textContent === "${}" && (t.textContent = e);
161
- }, g = ({
162
- inNode: n,
163
- inData: r
164
- } = {}) => {
165
- const t = n;
166
- if ("attributes" in t) {
167
- const e = Object.fromEntries(
168
- Object.entries(t.attributes).map(([o, s]) => {
169
- let c = s;
170
- return s === "${}" && (c = r.key), [o, c];
171
- })
172
- );
173
- t.attributes = { ...e };
174
- }
175
- }, V = ({
176
- inNode: n,
177
- inData: r
178
- } = {}) => {
179
- const t = n, e = r;
180
- F({ inNode: t, inData: e }), g({ inNode: t, inData: e });
181
- }, w = ({
182
- inTemplate: n,
183
- inSourceValuesAsArray: r,
184
- inShowLog: t
185
- } = {}) => {
186
- const e = r;
187
- if (e === void 0 || !Array.isArray(e)) return;
188
- t && console.log("loopObject:createChildren:1 ", n, inSourceValues);
189
- let o = [];
190
- return e.forEach((s) => {
191
- var a, i;
192
- const c = structuredClone(n);
193
- if ("jsonToSpec" in c) {
194
- const y = (a = c == null ? void 0 : c.jsonToSpec) == null ? void 0 : a.source;
195
- let u = {};
196
- u[y] = s, l({
197
- inNode: c,
198
- inData: u,
199
- inOperation: (i = c == null ? void 0 : c.jsonToSpec) == null ? void 0 : i.operation,
200
- inShowLog: t
65
+ }, a = ({ inSpecJson: e, inShowLog: t = !1, inDataJson: o } = {}) => {
66
+ if (f({ inSpec: e })) return null;
67
+ if (d({ inSpec: e })) return e;
68
+ if (p({ inSpecJson: e }))
69
+ return y({
70
+ inArray: e,
71
+ inShowLog: t,
72
+ inDataJson: o
73
+ });
74
+ if ("jsonToSpec" in e) {
75
+ if ("isSpecBuilt" in e)
76
+ return e;
77
+ if (e.jsonToSpec.operation === "loopArray") {
78
+ const r = b({
79
+ inTemplate: e.jsonToSpec.template,
80
+ inDataAsArray: o[e.jsonToSpec.source]
201
81
  });
82
+ e.children = r;
202
83
  }
203
- l({
204
- inNode: c,
205
- inData: s,
206
- inOperation: "replace",
207
- inShowLog: t
208
- }), V({ inNode: c, inData: s }), o.push(c);
209
- }), o;
210
- }, K = ({
211
- inNode: n,
212
- inData: r,
213
- inShowLog: t
214
- } = {}) => {
215
- const e = n, o = r;
216
- if (t && console.log("loopObject:1 ", n, r), !("jsonToSpec" in e) || !("operation" in e.jsonToSpec) || e.jsonToSpec.operation !== "loopArray" || !("source" in e.jsonToSpec)) return;
217
- const s = o[e.jsonToSpec.source];
218
- if (!Array.isArray(s)) return;
219
- t && console.log("loopObject:2 ", n, r);
220
- const c = w({
221
- inTemplate: e.jsonToSpec.template,
222
- inSourceValuesAsArray: s,
223
- inShowLog: t
224
- });
225
- e.children = c;
226
- }, p = ({ inNode: n, inData: r, inOperation: t }) => {
227
- const e = n, o = r, s = t;
228
- if (Array.isArray(e)) {
229
- const c = [];
230
- for (const a of e) {
231
- const i = l({
232
- inNode: a,
233
- inData: o,
234
- inOperation: s
84
+ if (e.jsonToSpec.operation === "loopObject") {
85
+ const r = h({
86
+ inTemplate: e.jsonToSpec.template,
87
+ inDataAsObject: o
235
88
  });
236
- Array.isArray(i) ? c.push(...i) : i != null && c.push(i);
89
+ e.children = r;
237
90
  }
238
- return c;
91
+ e.isSpecBuilt = !0;
239
92
  }
240
- }, l = ({
241
- inNode: n,
242
- inData: r = {},
243
- inOperation: t,
244
- inShowLog: e = !1
245
- } = {}) => {
246
- const o = n, s = r, c = t;
247
- if (e && console.log("walk ", n, r, t), o == null)
248
- return o;
249
- if (Array.isArray(o))
250
- return p({
251
- inNode: o,
252
- inData: r,
253
- inOperation: c
254
- });
255
- if ("children" in o && Array.isArray(o == null ? void 0 : o.children) && (o.children = p({
256
- inNode: o == null ? void 0 : o.children,
257
- inData: r,
258
- inOperation: c
259
- })), typeof o != "object")
260
- return o;
261
- switch (e && console.log("localOperation ", c), c) {
262
- case "replace":
263
- typeof o == "object" && $({
264
- inNode: o,
265
- inData: r
266
- });
267
- break;
268
- case "replaceObject":
269
- typeof o == "object" && j({
270
- inNode: o,
271
- inData: r
272
- });
273
- break;
274
- case "iterateDo":
275
- k({
276
- inNode: o,
277
- inData: s,
278
- inShowLog: e
279
- });
280
- break;
281
- case "loopObject":
282
- D({
283
- inNode: o,
284
- inData: s,
285
- inShowLog: e
286
- });
287
- break;
288
- case "loopArray":
289
- K({
290
- inNode: o,
291
- inData: s,
292
- inShowLog: e
293
- });
294
- break;
295
- }
296
- return o;
297
- }, E = ({ inStructureAsJson: n, inDataAsJson: r, inOperation: t, inShowLog: e }) => {
298
- try {
299
- return l({
300
- inNode: n,
301
- inData: r,
302
- inOperation: t,
303
- inShowLog: e
304
- });
305
- } catch (o) {
306
- throw console.error("[json-to-spec/v17] replace error:", o), o;
307
- }
308
- }, P = (n, r = {}, t = !1) => {
309
- let e = n, o = r;
310
- t && console.log(f.name, e, o);
93
+ return m({
94
+ inSpecJson: e,
95
+ inShowLog: t,
96
+ inData: o
97
+ });
98
+ }, A = ({
99
+ specJson: e,
100
+ showLog: t,
101
+ dataJson: o
102
+ }) => {
311
103
  try {
312
- return E({
313
- inStructureAsJson: e,
314
- inDataAsJson: o,
315
- inOperation: "loopArray",
316
- inShowLog: t
104
+ return a({
105
+ inSpecJson: e,
106
+ inShowLog: t,
107
+ inDataJson: o
317
108
  });
318
- } catch (s) {
319
- throw console.error("[json-to-spec/v19] compile error:", s), s;
109
+ } catch (r) {
110
+ console.log("error : ", r);
320
111
  }
321
112
  };
322
- b(P);
113
+ i(A);
323
114
  export {
324
- P as compile,
325
- P as default
115
+ A as default
326
116
  };