@es-joy/jsoe 0.20.6 → 0.22.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.
- package/CHANGES.md +8 -0
- package/badges/coverage-badge.svg +1 -1
- package/dist/formats/structuredCloning.d.ts.map +1 -1
- package/dist/index.js +34 -35
- package/dist/index.js.map +1 -0
- package/package.json +2 -2
- package/rollup.config.js +2 -0
- package/src/deepEqual.js +1 -0
- package/src/deepEqual.js.map +1 -0
- package/src/formats/structuredCloning.js +33 -35
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@es-joy/jsoe",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@rollup/plugin-commonjs": "^26.0.1",
|
|
43
43
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
44
44
|
"@types/jsdom": "^21.1.7",
|
|
45
|
-
"@types/node": "^22.
|
|
45
|
+
"@types/node": "^22.5.0",
|
|
46
46
|
"axe-core": "^4.10.0",
|
|
47
47
|
"coveradge": "^0.8.2",
|
|
48
48
|
"cypress": "^13.13.3",
|
package/rollup.config.js
CHANGED
|
@@ -10,6 +10,7 @@ export default [{
|
|
|
10
10
|
input: 'src/index.js',
|
|
11
11
|
external: ['react'], // Todo: remove when removed from Zodex
|
|
12
12
|
output: {
|
|
13
|
+
sourcemap: true,
|
|
13
14
|
file: 'dist/index.js',
|
|
14
15
|
format: 'es'
|
|
15
16
|
},
|
|
@@ -70,6 +71,7 @@ export default [{
|
|
|
70
71
|
output: {
|
|
71
72
|
file: 'src/deepEqual.js',
|
|
72
73
|
format: 'es',
|
|
74
|
+
sourcemap: true,
|
|
73
75
|
name: 'deepEqual'
|
|
74
76
|
},
|
|
75
77
|
plugins: [
|
package/src/deepEqual.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepEqual.js","sources":["../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/es6/index.js"],"sourcesContent":["'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n if ((a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n for (i of a.entries())\n if (!equal(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if ((a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -484,47 +484,45 @@ const canonicalTypeToAvailableTypeAndSchema = (
|
|
|
484
484
|
|
|
485
485
|
/** @type {import('../formats.js').Format} */
|
|
486
486
|
const structuredCloning = {
|
|
487
|
-
iterate (records, stateObj) {
|
|
487
|
+
async iterate (records, stateObj) {
|
|
488
488
|
/* istanbul ignore if -- Just a guard */
|
|
489
489
|
if (!stateObj.format) {
|
|
490
490
|
stateObj.format = 'structuredCloning';
|
|
491
491
|
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
return Object.hasOwn(typeSpecSet, prop);
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
);
|
|
508
|
-
structuredCloningFixed.splice(
|
|
509
|
-
// Add after userObjects
|
|
510
|
-
1,
|
|
511
|
-
0,
|
|
512
|
-
noneditable
|
|
513
|
-
);
|
|
514
|
-
const typeson = new Typeson({
|
|
515
|
-
encapsulateObserver: encapsulateObserver(stateObj)
|
|
516
|
-
}).register(structuredCloningFixed);
|
|
517
|
-
typeson.encapsulate(records);
|
|
518
|
-
// Todo (low): We might want to run async encapsulate for
|
|
519
|
-
// async types (and put this after Promise resolves)
|
|
520
|
-
if (stateObj.error) {
|
|
521
|
-
reject(stateObj.error);
|
|
522
|
-
} else {
|
|
523
|
-
resolve(/** @type {Required<import('../types.js').StateObject>} */ (
|
|
524
|
-
stateObj
|
|
525
|
-
));
|
|
492
|
+
|
|
493
|
+
const structuredCloningFixed = structuredCloningThrowing.filter(
|
|
494
|
+
(typeSpecSet) => {
|
|
495
|
+
return ![
|
|
496
|
+
// Not yet supported within JSOE
|
|
497
|
+
'imagedata',
|
|
498
|
+
'imagebitmap',
|
|
499
|
+
'cryptokey',
|
|
500
|
+
'domquad'
|
|
501
|
+
].some((prop) => {
|
|
502
|
+
return Object.hasOwn(typeSpecSet, prop);
|
|
503
|
+
});
|
|
526
504
|
}
|
|
505
|
+
);
|
|
506
|
+
structuredCloningFixed.splice(
|
|
507
|
+
// Add after userObjects
|
|
508
|
+
1,
|
|
509
|
+
0,
|
|
510
|
+
noneditable
|
|
511
|
+
);
|
|
512
|
+
const typeson = new Typeson({
|
|
513
|
+
encapsulateObserver: encapsulateObserver(stateObj)
|
|
514
|
+
}).register(structuredCloningFixed);
|
|
515
|
+
|
|
516
|
+
await typeson.encapsulateAsync(records, null, {
|
|
517
|
+
throwOnBadSyncType: false
|
|
527
518
|
});
|
|
519
|
+
|
|
520
|
+
if (stateObj.error) {
|
|
521
|
+
throw stateObj.error;
|
|
522
|
+
}
|
|
523
|
+
return (/** @type {Required<import('../types.js').StateObject>} */ (
|
|
524
|
+
stateObj
|
|
525
|
+
));
|
|
528
526
|
},
|
|
529
527
|
getTypesAndSchemasForState (types, state) {
|
|
530
528
|
if (state && types.getContextInfo('structuredCloning', state)) {
|