@highstate/designer 0.7.2 → 0.7.3

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 (131) hide show
  1. package/package.json +14 -7
  2. package/.output/nitro.json +0 -15
  3. package/.output/public/_nuxt/1_b4y8eQ.js +0 -1
  4. package/.output/public/_nuxt/BjOhMR1f.js +0 -242
  5. package/.output/public/_nuxt/CPAAHz3G.js +0 -1
  6. package/.output/public/_nuxt/CmGpyJTe.js +0 -1
  7. package/.output/public/_nuxt/builds/latest.json +0 -1
  8. package/.output/public/_nuxt/builds/meta/f777d22c-e958-4e7c-865d-11bb8a560858.json +0 -1
  9. package/.output/public/_nuxt/entry.Vs8IncyG.css +0 -5
  10. package/.output/public/_nuxt/error-404.BJkSn6RI.css +0 -1
  11. package/.output/public/_nuxt/error-500.TOCKLquH.css +0 -1
  12. package/.output/public/_nuxt/materialdesignicons-webfont.B6OSyW2I.woff2 +0 -0
  13. package/.output/public/_nuxt/materialdesignicons-webfont.BpRar1d5.ttf +0 -0
  14. package/.output/public/_nuxt/materialdesignicons-webfont.Bvl3VxMs.woff +0 -0
  15. package/.output/public/_nuxt/materialdesignicons-webfont.TEmAk13K.eot +0 -0
  16. package/.output/public/favicon.ico +0 -0
  17. package/.output/public/libavoid.wasm +0 -0
  18. package/.output/public/robots.txt +0 -1
  19. package/.output/server/index.mjs +0 -11426
  20. package/.output/server/index.mjs.map +0 -1
  21. package/.output/server/node_modules/@babel/parser/lib/index.js +0 -14246
  22. package/.output/server/node_modules/@babel/parser/package.json +0 -50
  23. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/fetchRequestHandler.mjs +0 -74
  24. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/index.mjs +0 -1
  25. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/incomingMessageToRequest.mjs +0 -119
  26. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/index.mjs +0 -2
  27. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +0 -92
  28. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/writeResponse.mjs +0 -79
  29. package/.output/server/node_modules/@trpc/server/dist/index.mjs +0 -12
  30. package/.output/server/node_modules/@trpc/server/dist/observable/observable.mjs +0 -175
  31. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/createProxy.mjs +0 -73
  32. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/TRPCError.mjs +0 -79
  33. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/formatter.mjs +0 -5
  34. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/getErrorShape.mjs +0 -29
  35. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/abortError.mjs +0 -10
  36. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/contentType.mjs +0 -229
  37. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +0 -76
  38. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +0 -39
  39. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/resolveResponse.mjs +0 -570
  40. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/initTRPC.mjs +0 -80
  41. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/middleware.mjs +0 -90
  42. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/parser.mjs +0 -52
  43. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/procedureBuilder.mjs +0 -198
  44. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rootConfig.mjs +0 -6
  45. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/router.mjs +0 -278
  46. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rpc/codes.mjs +0 -54
  47. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/jsonl.mjs +0 -603
  48. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/sse.mjs +0 -369
  49. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/tracked.mjs +0 -25
  50. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +0 -165
  51. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +0 -15
  52. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/disposable.mjs +0 -43
  53. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.mjs +0 -239
  54. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +0 -23
  55. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/timerResource.mjs +0 -23
  56. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +0 -127
  57. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/transformer.mjs +0 -101
  58. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/utils.mjs +0 -83
  59. package/.output/server/node_modules/@trpc/server/dist/vendor/standard-schema-v1/error.mjs +0 -26
  60. package/.output/server/node_modules/@trpc/server/dist/vendor/unpromise/unpromise.mjs +0 -289
  61. package/.output/server/node_modules/@trpc/server/package.json +0 -156
  62. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +0 -6690
  63. package/.output/server/node_modules/@vue/compiler-core/package.json +0 -58
  64. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +0 -686
  65. package/.output/server/node_modules/@vue/compiler-dom/package.json +0 -57
  66. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +0 -1404
  67. package/.output/server/node_modules/@vue/compiler-ssr/package.json +0 -34
  68. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +0 -1789
  69. package/.output/server/node_modules/@vue/reactivity/package.json +0 -55
  70. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +0 -6654
  71. package/.output/server/node_modules/@vue/runtime-core/package.json +0 -52
  72. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +0 -1669
  73. package/.output/server/node_modules/@vue/runtime-dom/package.json +0 -60
  74. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +0 -857
  75. package/.output/server/node_modules/@vue/server-renderer/package.json +0 -55
  76. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +0 -594
  77. package/.output/server/node_modules/@vue/shared/package.json +0 -47
  78. package/.output/server/node_modules/devalue/index.js +0 -3
  79. package/.output/server/node_modules/devalue/package.json +0 -34
  80. package/.output/server/node_modules/devalue/src/base64.js +0 -110
  81. package/.output/server/node_modules/devalue/src/constants.js +0 -6
  82. package/.output/server/node_modules/devalue/src/parse.js +0 -160
  83. package/.output/server/node_modules/devalue/src/stringify.js +0 -232
  84. package/.output/server/node_modules/devalue/src/uneval.js +0 -351
  85. package/.output/server/node_modules/devalue/src/utils.js +0 -113
  86. package/.output/server/node_modules/entities/lib/decode.js +0 -536
  87. package/.output/server/node_modules/entities/lib/decode_codepoint.js +0 -76
  88. package/.output/server/node_modules/entities/lib/generated/decode-data-html.js +0 -9
  89. package/.output/server/node_modules/entities/lib/generated/decode-data-xml.js +0 -9
  90. package/.output/server/node_modules/entities/package.json +0 -90
  91. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +0 -344
  92. package/.output/server/node_modules/estree-walker/package.json +0 -37
  93. package/.output/server/node_modules/hookable/dist/index.mjs +0 -290
  94. package/.output/server/node_modules/hookable/package.json +0 -49
  95. package/.output/server/node_modules/source-map-js/lib/array-set.js +0 -121
  96. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  97. package/.output/server/node_modules/source-map-js/lib/base64.js +0 -67
  98. package/.output/server/node_modules/source-map-js/lib/binary-search.js +0 -111
  99. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +0 -79
  100. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +0 -132
  101. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  102. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  103. package/.output/server/node_modules/source-map-js/lib/source-node.js +0 -413
  104. package/.output/server/node_modules/source-map-js/lib/util.js +0 -594
  105. package/.output/server/node_modules/source-map-js/package.json +0 -71
  106. package/.output/server/node_modules/source-map-js/source-map.js +0 -8
  107. package/.output/server/node_modules/ufo/dist/index.mjs +0 -630
  108. package/.output/server/node_modules/ufo/package.json +0 -47
  109. package/.output/server/node_modules/unhead/dist/plugins.mjs +0 -94
  110. package/.output/server/node_modules/unhead/dist/server.mjs +0 -220
  111. package/.output/server/node_modules/unhead/dist/shared/unhead.C13swrCa.mjs +0 -48
  112. package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +0 -148
  113. package/.output/server/node_modules/unhead/dist/shared/unhead.Cp0iF6eN.mjs +0 -177
  114. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +0 -196
  115. package/.output/server/node_modules/unhead/dist/shared/unhead.DZbvapt-.mjs +0 -70
  116. package/.output/server/node_modules/unhead/dist/shared/unhead.DeCxexjU.mjs +0 -166
  117. package/.output/server/node_modules/unhead/dist/shared/unhead.Txd0XTIP.mjs +0 -172
  118. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +0 -38
  119. package/.output/server/node_modules/unhead/dist/utils.mjs +0 -5
  120. package/.output/server/node_modules/unhead/package.json +0 -101
  121. package/.output/server/node_modules/vue/dist/vue.cjs.js +0 -80
  122. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +0 -66
  123. package/.output/server/node_modules/vue/index.js +0 -7
  124. package/.output/server/node_modules/vue/index.mjs +0 -1
  125. package/.output/server/node_modules/vue/package.json +0 -112
  126. package/.output/server/node_modules/vue/server-renderer/index.mjs +0 -1
  127. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +0 -196
  128. package/.output/server/node_modules/vue-bundle-renderer/package.json +0 -50
  129. package/.output/server/node_modules/zod/lib/index.mjs +0 -4405
  130. package/.output/server/node_modules/zod/package.json +0 -122
  131. package/.output/server/package.json +0 -1
@@ -1,351 +0,0 @@
1
- import {
2
- DevalueError,
3
- enumerable_symbols,
4
- escaped,
5
- get_type,
6
- is_plain_object,
7
- is_primitive,
8
- stringify_key,
9
- stringify_string
10
- } from './utils.js';
11
-
12
- const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$';
13
- const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
14
- const reserved =
15
- /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;
16
-
17
- /**
18
- * Turn a value into the JavaScript that creates an equivalent value
19
- * @param {any} value
20
- * @param {(value: any) => string | void} [replacer]
21
- */
22
- export function uneval(value, replacer) {
23
- const counts = new Map();
24
-
25
- /** @type {string[]} */
26
- const keys = [];
27
-
28
- const custom = new Map();
29
-
30
- /** @param {any} thing */
31
- function walk(thing) {
32
- if (typeof thing === 'function') {
33
- throw new DevalueError(`Cannot stringify a function`, keys);
34
- }
35
-
36
- if (!is_primitive(thing)) {
37
- if (counts.has(thing)) {
38
- counts.set(thing, counts.get(thing) + 1);
39
- return;
40
- }
41
-
42
- counts.set(thing, 1);
43
-
44
- if (replacer) {
45
- const str = replacer(thing);
46
-
47
- if (typeof str === 'string') {
48
- custom.set(thing, str);
49
- return;
50
- }
51
- }
52
-
53
- const type = get_type(thing);
54
-
55
- switch (type) {
56
- case 'Number':
57
- case 'BigInt':
58
- case 'String':
59
- case 'Boolean':
60
- case 'Date':
61
- case 'RegExp':
62
- return;
63
-
64
- case 'Array':
65
- /** @type {any[]} */ (thing).forEach((value, i) => {
66
- keys.push(`[${i}]`);
67
- walk(value);
68
- keys.pop();
69
- });
70
- break;
71
-
72
- case 'Set':
73
- Array.from(thing).forEach(walk);
74
- break;
75
-
76
- case 'Map':
77
- for (const [key, value] of thing) {
78
- keys.push(
79
- `.get(${is_primitive(key) ? stringify_primitive(key) : '...'})`
80
- );
81
- walk(value);
82
- keys.pop();
83
- }
84
- break;
85
-
86
- case "Int8Array":
87
- case "Uint8Array":
88
- case "Uint8ClampedArray":
89
- case "Int16Array":
90
- case "Uint16Array":
91
- case "Int32Array":
92
- case "Uint32Array":
93
- case "Float32Array":
94
- case "Float64Array":
95
- case "BigInt64Array":
96
- case "BigUint64Array":
97
- return;
98
-
99
- case "ArrayBuffer":
100
- return;
101
-
102
- default:
103
- if (!is_plain_object(thing)) {
104
- throw new DevalueError(
105
- `Cannot stringify arbitrary non-POJOs`,
106
- keys
107
- );
108
- }
109
-
110
- if (enumerable_symbols(thing).length > 0) {
111
- throw new DevalueError(
112
- `Cannot stringify POJOs with symbolic keys`,
113
- keys
114
- );
115
- }
116
-
117
- for (const key in thing) {
118
- keys.push(stringify_key(key));
119
- walk(thing[key]);
120
- keys.pop();
121
- }
122
- }
123
- }
124
- }
125
-
126
- walk(value);
127
-
128
- const names = new Map();
129
-
130
- Array.from(counts)
131
- .filter((entry) => entry[1] > 1)
132
- .sort((a, b) => b[1] - a[1])
133
- .forEach((entry, i) => {
134
- names.set(entry[0], get_name(i));
135
- });
136
-
137
- /**
138
- * @param {any} thing
139
- * @returns {string}
140
- */
141
- function stringify(thing) {
142
- if (names.has(thing)) {
143
- return names.get(thing);
144
- }
145
-
146
- if (is_primitive(thing)) {
147
- return stringify_primitive(thing);
148
- }
149
-
150
- if (custom.has(thing)) {
151
- return custom.get(thing);
152
- }
153
-
154
- const type = get_type(thing);
155
-
156
- switch (type) {
157
- case 'Number':
158
- case 'String':
159
- case 'Boolean':
160
- return `Object(${stringify(thing.valueOf())})`;
161
-
162
- case 'RegExp':
163
- return `new RegExp(${stringify_string(thing.source)}, "${
164
- thing.flags
165
- }")`;
166
-
167
- case 'Date':
168
- return `new Date(${thing.getTime()})`;
169
-
170
- case 'Array':
171
- const members = /** @type {any[]} */ (thing).map((v, i) =>
172
- i in thing ? stringify(v) : ''
173
- );
174
- const tail = thing.length === 0 || thing.length - 1 in thing ? '' : ',';
175
- return `[${members.join(',')}${tail}]`;
176
-
177
- case 'Set':
178
- case 'Map':
179
- return `new ${type}([${Array.from(thing).map(stringify).join(',')}])`;
180
-
181
- case "Int8Array":
182
- case "Uint8Array":
183
- case "Uint8ClampedArray":
184
- case "Int16Array":
185
- case "Uint16Array":
186
- case "Int32Array":
187
- case "Uint32Array":
188
- case "Float32Array":
189
- case "Float64Array":
190
- case "BigInt64Array":
191
- case "BigUint64Array": {
192
- /** @type {import("./types.js").TypedArray} */
193
- const typedArray = thing;
194
- return `new ${type}([${typedArray.toString()}])`;
195
- }
196
-
197
- case "ArrayBuffer": {
198
- const ui8 = new Uint8Array(thing);
199
- return `new Uint8Array([${ui8.toString()}]).buffer`;
200
- }
201
-
202
- default:
203
- const obj = `{${Object.keys(thing)
204
- .map((key) => `${safe_key(key)}:${stringify(thing[key])}`)
205
- .join(',')}}`;
206
- const proto = Object.getPrototypeOf(thing);
207
- if (proto === null) {
208
- return Object.keys(thing).length > 0
209
- ? `Object.assign(Object.create(null),${obj})`
210
- : `Object.create(null)`;
211
- }
212
-
213
- return obj;
214
- }
215
- }
216
-
217
- const str = stringify(value);
218
-
219
- if (names.size) {
220
- /** @type {string[]} */
221
- const params = [];
222
-
223
- /** @type {string[]} */
224
- const statements = [];
225
-
226
- /** @type {string[]} */
227
- const values = [];
228
-
229
- names.forEach((name, thing) => {
230
- params.push(name);
231
-
232
- if (custom.has(thing)) {
233
- values.push(/** @type {string} */ (custom.get(thing)));
234
- return;
235
- }
236
-
237
- if (is_primitive(thing)) {
238
- values.push(stringify_primitive(thing));
239
- return;
240
- }
241
-
242
- const type = get_type(thing);
243
-
244
- switch (type) {
245
- case 'Number':
246
- case 'String':
247
- case 'Boolean':
248
- values.push(`Object(${stringify(thing.valueOf())})`);
249
- break;
250
-
251
- case 'RegExp':
252
- values.push(thing.toString());
253
- break;
254
-
255
- case 'Date':
256
- values.push(`new Date(${thing.getTime()})`);
257
- break;
258
-
259
- case 'Array':
260
- values.push(`Array(${thing.length})`);
261
- /** @type {any[]} */ (thing).forEach((v, i) => {
262
- statements.push(`${name}[${i}]=${stringify(v)}`);
263
- });
264
- break;
265
-
266
- case 'Set':
267
- values.push(`new Set`);
268
- statements.push(
269
- `${name}.${Array.from(thing)
270
- .map((v) => `add(${stringify(v)})`)
271
- .join('.')}`
272
- );
273
- break;
274
-
275
- case 'Map':
276
- values.push(`new Map`);
277
- statements.push(
278
- `${name}.${Array.from(thing)
279
- .map(([k, v]) => `set(${stringify(k)}, ${stringify(v)})`)
280
- .join('.')}`
281
- );
282
- break;
283
-
284
- default:
285
- values.push(
286
- Object.getPrototypeOf(thing) === null ? 'Object.create(null)' : '{}'
287
- );
288
- Object.keys(thing).forEach((key) => {
289
- statements.push(
290
- `${name}${safe_prop(key)}=${stringify(thing[key])}`
291
- );
292
- });
293
- }
294
- });
295
-
296
- statements.push(`return ${str}`);
297
-
298
- return `(function(${params.join(',')}){${statements.join(
299
- ';'
300
- )}}(${values.join(',')}))`;
301
- } else {
302
- return str;
303
- }
304
- }
305
-
306
- /** @param {number} num */
307
- function get_name(num) {
308
- let name = '';
309
-
310
- do {
311
- name = chars[num % chars.length] + name;
312
- num = ~~(num / chars.length) - 1;
313
- } while (num >= 0);
314
-
315
- return reserved.test(name) ? `${name}0` : name;
316
- }
317
-
318
- /** @param {string} c */
319
- function escape_unsafe_char(c) {
320
- return escaped[c] || c;
321
- }
322
-
323
- /** @param {string} str */
324
- function escape_unsafe_chars(str) {
325
- return str.replace(unsafe_chars, escape_unsafe_char);
326
- }
327
-
328
- /** @param {string} key */
329
- function safe_key(key) {
330
- return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key)
331
- ? key
332
- : escape_unsafe_chars(JSON.stringify(key));
333
- }
334
-
335
- /** @param {string} key */
336
- function safe_prop(key) {
337
- return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key)
338
- ? `.${key}`
339
- : `[${escape_unsafe_chars(JSON.stringify(key))}]`;
340
- }
341
-
342
- /** @param {any} thing */
343
- function stringify_primitive(thing) {
344
- if (typeof thing === 'string') return stringify_string(thing);
345
- if (thing === void 0) return 'void 0';
346
- if (thing === 0 && 1 / thing < 0) return '-0';
347
- const str = String(thing);
348
- if (typeof thing === 'number') return str.replace(/^(-)?0\./, '$1.');
349
- if (typeof thing === 'bigint') return thing + 'n';
350
- return str;
351
- }
@@ -1,113 +0,0 @@
1
- /** @type {Record<string, string>} */
2
- export const escaped = {
3
- '<': '\\u003C',
4
- '\\': '\\\\',
5
- '\b': '\\b',
6
- '\f': '\\f',
7
- '\n': '\\n',
8
- '\r': '\\r',
9
- '\t': '\\t',
10
- '\u2028': '\\u2028',
11
- '\u2029': '\\u2029'
12
- };
13
-
14
- export class DevalueError extends Error {
15
- /**
16
- * @param {string} message
17
- * @param {string[]} keys
18
- */
19
- constructor(message, keys) {
20
- super(message);
21
- this.name = 'DevalueError';
22
- this.path = keys.join('');
23
- }
24
- }
25
-
26
- /** @param {any} thing */
27
- export function is_primitive(thing) {
28
- return Object(thing) !== thing;
29
- }
30
-
31
- const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(
32
- Object.prototype
33
- )
34
- .sort()
35
- .join('\0');
36
-
37
- /** @param {any} thing */
38
- export function is_plain_object(thing) {
39
- const proto = Object.getPrototypeOf(thing);
40
-
41
- return (
42
- proto === Object.prototype ||
43
- proto === null ||
44
- Object.getOwnPropertyNames(proto).sort().join('\0') === object_proto_names
45
- );
46
- }
47
-
48
- /** @param {any} thing */
49
- export function get_type(thing) {
50
- return Object.prototype.toString.call(thing).slice(8, -1);
51
- }
52
-
53
- /** @param {string} char */
54
- function get_escaped_char(char) {
55
- switch (char) {
56
- case '"':
57
- return '\\"';
58
- case '<':
59
- return '\\u003C';
60
- case '\\':
61
- return '\\\\';
62
- case '\n':
63
- return '\\n';
64
- case '\r':
65
- return '\\r';
66
- case '\t':
67
- return '\\t';
68
- case '\b':
69
- return '\\b';
70
- case '\f':
71
- return '\\f';
72
- case '\u2028':
73
- return '\\u2028';
74
- case '\u2029':
75
- return '\\u2029';
76
- default:
77
- return char < ' '
78
- ? `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`
79
- : '';
80
- }
81
- }
82
-
83
- /** @param {string} str */
84
- export function stringify_string(str) {
85
- let result = '';
86
- let last_pos = 0;
87
- const len = str.length;
88
-
89
- for (let i = 0; i < len; i += 1) {
90
- const char = str[i];
91
- const replacement = get_escaped_char(char);
92
- if (replacement) {
93
- result += str.slice(last_pos, i) + replacement;
94
- last_pos = i + 1;
95
- }
96
- }
97
-
98
- return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`;
99
- }
100
-
101
- /** @param {Record<string | symbol, any>} object */
102
- export function enumerable_symbols(object) {
103
- return Object.getOwnPropertySymbols(object).filter(
104
- (symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable
105
- );
106
- }
107
-
108
- const is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
109
-
110
- /** @param {string} key */
111
- export function stringify_key(key) {
112
- return is_identifier.test(key) ? '.' + key : '[' + JSON.stringify(key) + ']';
113
- }