vestjs-runtime 1.0.6 → 1.2.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 (43) hide show
  1. package/dist/cjs/IsolateSerializer.development.js +12 -13
  2. package/dist/cjs/IsolateSerializer.development.js.map +1 -1
  3. package/dist/cjs/IsolateSerializer.production.js +1 -1
  4. package/dist/cjs/IsolateSerializer.production.js.map +1 -1
  5. package/dist/cjs/test-utils.development.js +43 -18
  6. package/dist/cjs/test-utils.development.js.map +1 -1
  7. package/dist/cjs/test-utils.production.js +1 -1
  8. package/dist/cjs/test-utils.production.js.map +1 -1
  9. package/dist/cjs/vestjs-runtime.development.js +43 -51
  10. package/dist/cjs/vestjs-runtime.development.js.map +1 -1
  11. package/dist/cjs/vestjs-runtime.production.js +1 -1
  12. package/dist/cjs/vestjs-runtime.production.js.map +1 -1
  13. package/dist/es/IsolateSerializer.development.js +12 -13
  14. package/dist/es/IsolateSerializer.development.js.map +1 -1
  15. package/dist/es/IsolateSerializer.production.js +1 -1
  16. package/dist/es/IsolateSerializer.production.js.map +1 -1
  17. package/dist/es/test-utils.development.js +43 -18
  18. package/dist/es/test-utils.development.js.map +1 -1
  19. package/dist/es/test-utils.production.js +1 -1
  20. package/dist/es/test-utils.production.js.map +1 -1
  21. package/dist/es/vestjs-runtime.development.js +43 -52
  22. package/dist/es/vestjs-runtime.development.js.map +1 -1
  23. package/dist/es/vestjs-runtime.production.js +1 -1
  24. package/dist/es/vestjs-runtime.production.js.map +1 -1
  25. package/dist/umd/IsolateSerializer.development.js +12 -13
  26. package/dist/umd/IsolateSerializer.development.js.map +1 -1
  27. package/dist/umd/IsolateSerializer.production.js +1 -1
  28. package/dist/umd/IsolateSerializer.production.js.map +1 -1
  29. package/dist/umd/test-utils.development.js +86 -61
  30. package/dist/umd/test-utils.development.js.map +1 -1
  31. package/dist/umd/test-utils.production.js +1 -1
  32. package/dist/umd/test-utils.production.js.map +1 -1
  33. package/dist/umd/vestjs-runtime.development.js +702 -710
  34. package/dist/umd/vestjs-runtime.development.js.map +1 -1
  35. package/dist/umd/vestjs-runtime.production.js +1 -1
  36. package/dist/umd/vestjs-runtime.production.js.map +1 -1
  37. package/package.json +3 -3
  38. package/types/IsolateSerializer.d.ts +6 -7
  39. package/types/IsolateSerializer.d.ts.map +1 -1
  40. package/types/test-utils.d.ts +7 -8
  41. package/types/test-utils.d.ts.map +1 -1
  42. package/types/vestjs-runtime.d.ts +29 -24
  43. package/types/vestjs-runtime.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IsolateSerializer.development.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n INVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n\n static setPending(isolate: TIsolate): void {\n isolate.status = IsolateStatus.PENDING;\n }\n\n static setDone(isolate: TIsolate): void {\n isolate.status = IsolateStatus.DONE;\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateKeys, KeyToMinified, MinifiedToKey } from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.INVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return [IsolateKeys.Parent, IsolateKeys.Keys].includes(key as IsolateKeys);\n}\n"],"names":["invariant","isNullish","isStringValue","isNotNullish","hasOwnProperty","text"],"mappings":"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"}
1
+ {"version":3,"file":"IsolateSerializer.development.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n INVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n AbortController = 'abortController',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\n];\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n\n static abort(isolate: TIsolate, reason?: string): void {\n if (isNullish(isolate.abortController)) {\n return;\n }\n isolate.abortController.abort(reason);\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport {\n ExcludedFromDump,\n IsolateKeys,\n KeyToMinified,\n MinifiedToKey,\n} from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.INVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return ExcludedFromDump.includes(key as IsolateKeys);\n}\n"],"names":["invariant","isNullish","isStringValue","isNotNullish","hasOwnProperty","text"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vest-utils")):"function"==typeof define&&define.amd?define(["exports","vest-utils"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).IsolateSerializer={},e["vest-utils"])}(this,(function(e,t){"use strict";var i,s,n;!function(e){e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.UNABLE_TO_PICK_NEXT_ISOLATE="Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.",e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same key "{key}" twice. This may lead to inconsistent or overriding of results.',e.INVALID_ISOLATE_CANNOT_PARSE="Invalid isolate was passed to IsolateSerializer. Cannot proceed."}(i||(i={})),function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder",e.Status="status"}(s||(s={})),function(e){e.Type="$",e.Keys="K",e.Key="k",e.Parent="P",e.Data="D",e.AllowReorder="aR",e.Status="S"}(n||(n={}));const a={[s.Type]:n.Type,[s.Keys]:n.Keys,[s.Parent]:n.Parent,[s.Data]:n.Data,[s.Key]:n.Key,[s.AllowReorder]:n.AllowReorder,[s.Status]:n.Status},r=Object.entries(a).reduce(((e,[t,i])=>Object.assign(e,{[i]:t})),{});var l;!function(e){e.PENDING="PENDING",e.DONE="DONE",e.INITIAL="INITIAL"}(l||(l={}));class o{static setParent(e,t){return e.parent=t,e}static saveOutput(e,t){return e.output=t,e}static setKey(e,t){return e.key=t,e}static addChild(e,i){var s;t.invariant(e),e.children=null!==(s=e.children)&&void 0!==s?s:[],e.children.push(i),o.setParent(i,e)}static removeChild(e,t){var i,s;e.children=null!==(s=null===(i=e.children)||void 0===i?void 0:i.filter((e=>e!==t)))&&void 0!==s?s:null}static addChildKey(e,i,s){var n;t.invariant(e),e.keys=null!==(n=e.keys)&&void 0!==n?n:{},e.keys[i]=s}static slice(e,i){t.isNullish(e.children)||(e.children.length=i)}static setData(e,t){e.data=t}static setPending(e){e.status=l.PENDING}static setDone(e){e.status=l.DONE}}class c{static deserialize(e){const i=t.isStringValue(e)?JSON.parse(e):Object.assign({},e);c.validateIsolate(i);const s=[i];for(;s.length;){const e=s.shift(),i=c.getChildren(e);for(const i in r){const s=e[i];t.isNotNullish(s)&&(e[r[i]]=s,delete e[i])}i&&(e.children=i.map((t=>{var i;const n=Object.assign({},t);o.setParent(n,e),s.push(n);const a=n.key;return a&&(e.keys=null!==(i=e.keys)&&void 0!==i?i:{},e.keys[a]=n),n})))}return i}static serialize(e){return t.isNullish(e)?"":JSON.stringify(d(e))}static getChildren(e){return e.children?[...e.children]:null}static validateIsolate(e){t.invariant(t.hasOwnProperty(e,s.Type)||t.hasOwnProperty(e,a[s.Type]),t.text(i.INVALID_ISOLATE_CANNOT_PARSE))}}function d(e){const i={};e.children&&(i.children=e.children.map(d));for(const s in e){if("children"===s)continue;if(u(s))continue;const n=e[s];t.isNullish(n)||(t.hasOwnProperty(a,s)?i[a[s]]=n:i[s]=n)}return i}function u(e){return[s.Parent,s.Keys].includes(e)}e.IsolateSerializer=c}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vest-utils")):"function"==typeof define&&define.amd?define(["exports","vest-utils"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).IsolateSerializer={},e["vest-utils"])}(this,(function(e,t){"use strict";var i,n,s;!function(e){e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.UNABLE_TO_PICK_NEXT_ISOLATE="Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.",e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same key "{key}" twice. This may lead to inconsistent or overriding of results.',e.INVALID_ISOLATE_CANNOT_PARSE="Invalid isolate was passed to IsolateSerializer. Cannot proceed."}(i||(i={})),function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder",e.Status="status",e.AbortController="abortController"}(n||(n={})),function(e){e.Type="$",e.Keys="K",e.Key="k",e.Parent="P",e.Data="D",e.AllowReorder="aR",e.Status="S"}(s||(s={}));const r={[n.Type]:s.Type,[n.Keys]:s.Keys,[n.Parent]:s.Parent,[n.Data]:s.Data,[n.Key]:s.Key,[n.AllowReorder]:s.AllowReorder,[n.Status]:s.Status},a=Object.entries(r).reduce(((e,[t,i])=>Object.assign(e,{[i]:t})),{}),l=[n.AbortController,n.Parent,n.Keys];class o{static setParent(e,t){return e.parent=t,e}static saveOutput(e,t){return e.output=t,e}static setKey(e,t){return e.key=t,e}static addChild(e,i){var n;t.invariant(e),e.children=null!==(n=e.children)&&void 0!==n?n:[],e.children.push(i),o.setParent(i,e)}static removeChild(e,t){var i,n;e.children=null!==(n=null===(i=e.children)||void 0===i?void 0:i.filter((e=>e!==t)))&&void 0!==n?n:null}static addChildKey(e,i,n){var s;t.invariant(e),e.keys=null!==(s=e.keys)&&void 0!==s?s:{},e.keys[i]=n}static slice(e,i){t.isNullish(e.children)||(e.children.length=i)}static setData(e,t){e.data=t}static abort(e,i){t.isNullish(e.abortController)||e.abortController.abort(i)}}class c{static deserialize(e){const i=t.isStringValue(e)?JSON.parse(e):Object.assign({},e);c.validateIsolate(i);const n=[i];for(;n.length;){const e=n.shift(),i=c.getChildren(e);for(const i in a){const n=e[i];t.isNotNullish(n)&&(e[a[i]]=n,delete e[i])}i&&(e.children=i.map((t=>{var i;const s=Object.assign({},t);o.setParent(s,e),n.push(s);const r=s.key;return r&&(e.keys=null!==(i=e.keys)&&void 0!==i?i:{},e.keys[r]=s),s})))}return i}static serialize(e){return t.isNullish(e)?"":JSON.stringify(d(e))}static getChildren(e){return e.children?[...e.children]:null}static validateIsolate(e){t.invariant(t.hasOwnProperty(e,n.Type)||t.hasOwnProperty(e,r[n.Type]),t.text(i.INVALID_ISOLATE_CANNOT_PARSE))}}function d(e){const i={};e.children&&(i.children=e.children.map(d));for(const n in e){if("children"===n)continue;if(u(n))continue;const s=e[n];t.isNullish(s)||(t.hasOwnProperty(r,n)?i[r[n]]=s:i[n]=s)}return i}function u(e){return l.includes(e)}e.IsolateSerializer=c}));
2
2
  //# sourceMappingURL=IsolateSerializer.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsolateSerializer.production.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n INVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n\n static setPending(isolate: TIsolate): void {\n isolate.status = IsolateStatus.PENDING;\n }\n\n static setDone(isolate: TIsolate): void {\n isolate.status = IsolateStatus.DONE;\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport { IsolateKeys, KeyToMinified, MinifiedToKey } from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.INVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return [IsolateKeys.Parent, IsolateKeys.Keys].includes(key as IsolateKeys);\n}\n"],"names":["ErrorStrings","IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","Status","MinifiedToKey","Object","entries","reduce","acc","key","minified","assign","IsolateStatus","IsolateMutator","static","isolate","parent","output","child","invariant","children","_a","push","setParent","node","_b","filter","keys","at","isNullish","length","data","status","PENDING","DONE","IsolateSerializer","root","isStringValue","JSON","parse","validateIsolate","queue","current","shift","getChildren","value","isNotNullish","map","nextChild","stringify","transformIsolate","hasOwnProperty","text","INVALID_ISOLATE_CANNOT_PARSE","next","isKeyExcluededFromDump","includes"],"mappings":"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"}
1
+ {"version":3,"file":"IsolateSerializer.production.js","sources":["../../src/errors/ErrorStrings.ts","../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateMutator.ts","../../src/exports/IsolateSerializer.ts"],"sourcesContent":["export enum ErrorStrings {\n NO_ACTIVE_ISOLATE = 'Not within an active isolate',\n UNABLE_TO_PICK_NEXT_ISOLATE = 'Unable to pick next isolate. This is a bug, please report it to the Vest maintainers.',\n ENCOUNTERED_THE_SAME_KEY_TWICE = `Encountered the same key \"{key}\" twice. This may lead to inconsistent or overriding of results.`,\n INVALID_ISOLATE_CANNOT_PARSE = `Invalid isolate was passed to IsolateSerializer. Cannot proceed.`,\n}\n","export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n AbortController = 'abortController',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\n];\n","import { Nullable, invariant, isNullish } from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\n\nexport class IsolateMutator {\n static setParent(isolate: TIsolate, parent: Nullable<TIsolate>): TIsolate {\n isolate.parent = parent;\n return isolate;\n }\n\n static saveOutput(isolate: TIsolate, output: any): TIsolate {\n isolate.output = output;\n return isolate;\n }\n\n static setKey(isolate: TIsolate, key: Nullable<string>): TIsolate {\n isolate.key = key;\n return isolate;\n }\n\n static addChild(isolate: TIsolate, child: TIsolate): void {\n invariant(isolate);\n\n isolate.children = isolate.children ?? [];\n\n isolate.children.push(child);\n IsolateMutator.setParent(child, isolate);\n }\n\n static removeChild(isolate: TIsolate, node: TIsolate): void {\n isolate.children =\n isolate.children?.filter(child => child !== node) ?? null;\n }\n\n static addChildKey(isolate: TIsolate, key: string, node: TIsolate): void {\n invariant(isolate);\n\n isolate.keys = isolate.keys ?? {};\n\n isolate.keys[key] = node;\n }\n\n static slice(isolate: TIsolate, at: number): void {\n if (isNullish(isolate.children)) {\n return;\n }\n isolate.children.length = at;\n }\n\n static setData(isolate: TIsolate, data: any): void {\n isolate.data = data;\n }\n\n static abort(isolate: TIsolate, reason?: string): void {\n if (isNullish(isolate.abortController)) {\n return;\n }\n isolate.abortController.abort(reason);\n }\n}\n","import { ErrorStrings } from 'ErrorStrings';\nimport {\n Nullable,\n hasOwnProperty,\n invariant,\n isNotNullish,\n isNullish,\n isStringValue,\n text,\n} from 'vest-utils';\n\nimport { TIsolate } from 'Isolate';\nimport {\n ExcludedFromDump,\n IsolateKeys,\n KeyToMinified,\n MinifiedToKey,\n} from 'IsolateKeys';\nimport { IsolateMutator } from 'IsolateMutator';\n\nexport class IsolateSerializer {\n // eslint-disable-next-line max-statements, complexity\n static deserialize(node: Record<string, any> | TIsolate | string): TIsolate {\n // the assumption is that the tree is built correctly,\n // but the children are missing the parent property to\n // avoid circular references during serialization.\n // in the same way, the parents are missing the `keys` property\n // to avoid circular references during serialization.\n // we need to rebuild the tree and add back the parent property to the children\n // and the keys property to the parents.\n\n const root = isStringValue(node)\n ? JSON.parse(node)\n : ({ ...node } as TIsolate);\n\n IsolateSerializer.validateIsolate(root);\n\n const queue = [root];\n\n while (queue.length) {\n const current = queue.shift();\n\n const children = IsolateSerializer.getChildren(current);\n\n for (const key in MinifiedToKey) {\n const value = current[key];\n if (isNotNullish(value)) {\n current[MinifiedToKey[key]] = value;\n delete current[key];\n }\n }\n\n if (!children) {\n continue;\n }\n\n current.children = children.map(child => {\n const nextChild = { ...child };\n\n IsolateMutator.setParent(nextChild, current);\n queue.push(nextChild);\n\n const key = nextChild.key;\n\n if (key) {\n current.keys = current.keys ?? {};\n current.keys[key] = nextChild;\n }\n\n return nextChild;\n });\n }\n\n return root as TIsolate;\n }\n\n static serialize(isolate: Nullable<TIsolate>): string {\n if (isNullish(isolate)) {\n return '';\n }\n\n return JSON.stringify(transformIsolate(isolate));\n }\n\n static getChildren(node: TIsolate): Nullable<TIsolate[]> {\n return node.children ? [...node.children] : null;\n }\n\n static validateIsolate(node: Record<string, any> | TIsolate): void {\n invariant(\n hasOwnProperty(node, IsolateKeys.Type) ||\n hasOwnProperty(node, KeyToMinified[IsolateKeys.Type]),\n text(ErrorStrings.INVALID_ISOLATE_CANNOT_PARSE)\n );\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction transformIsolate(isolate: TIsolate): Record<string, any> {\n const next: Record<string, any> = {};\n\n if (isolate.children) {\n next.children = isolate.children.map(transformIsolate);\n }\n\n for (const key in isolate) {\n if (key === 'children') {\n continue;\n }\n\n if (isKeyExcluededFromDump(key)) {\n continue;\n }\n const value = isolate[key as keyof TIsolate];\n\n if (isNullish(value)) {\n continue;\n }\n\n if (hasOwnProperty(KeyToMinified, key)) {\n next[KeyToMinified[key]] = value;\n } else {\n next[key] = value;\n }\n }\n\n return next;\n}\n\nfunction isKeyExcluededFromDump(key: string): boolean {\n return ExcludedFromDump.includes(key as IsolateKeys);\n}\n"],"names":["ErrorStrings","IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","Status","MinifiedToKey","Object","entries","reduce","acc","key","minified","assign","ExcludedFromDump","AbortController","IsolateMutator","static","isolate","parent","output","child","invariant","children","_a","push","setParent","node","_b","filter","keys","at","isNullish","length","data","reason","abortController","abort","IsolateSerializer","root","isStringValue","JSON","parse","validateIsolate","queue","current","shift","getChildren","value","isNotNullish","map","nextChild","stringify","transformIsolate","hasOwnProperty","text","INVALID_ISOLATE_CANNOT_PARSE","next","isKeyExcluededFromDump","includes"],"mappings":"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"}
@@ -1,70 +1,95 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["test-utils"] = {}));
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["test-utils"] = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- var IsolateKeys;
8
- (function (IsolateKeys) {
9
- IsolateKeys["Type"] = "$type";
10
- IsolateKeys["Keys"] = "keys";
11
- IsolateKeys["Key"] = "key";
12
- IsolateKeys["Parent"] = "parent";
13
- IsolateKeys["Data"] = "data";
14
- IsolateKeys["AllowReorder"] = "allowReorder";
15
- IsolateKeys["Status"] = "status";
16
- })(IsolateKeys || (IsolateKeys = {}));
17
- var MinifiedKeys;
18
- (function (MinifiedKeys) {
19
- MinifiedKeys["Type"] = "$";
20
- MinifiedKeys["Keys"] = "K";
21
- MinifiedKeys["Key"] = "k";
22
- MinifiedKeys["Parent"] = "P";
23
- MinifiedKeys["Data"] = "D";
24
- MinifiedKeys["AllowReorder"] = "aR";
25
- MinifiedKeys["Status"] = "S";
26
- })(MinifiedKeys || (MinifiedKeys = {}));
27
- const KeyToMinified = {
28
- [IsolateKeys.Type]: MinifiedKeys.Type,
29
- [IsolateKeys.Keys]: MinifiedKeys.Keys,
30
- [IsolateKeys.Parent]: MinifiedKeys.Parent,
31
- [IsolateKeys.Data]: MinifiedKeys.Data,
32
- [IsolateKeys.Key]: MinifiedKeys.Key,
33
- [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,
34
- [IsolateKeys.Status]: MinifiedKeys.Status,
35
- };
36
- // This const is an object that looks like this:
37
- // {
38
- // '$': '$type',
39
- // 'K': 'keys',
40
- // 'P': 'parent',
41
- // ...
42
- // }
43
- Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc, {
44
- [minified]: key,
45
- }), {});
7
+ /******************************************************************************
8
+ Copyright (c) Microsoft Corporation.
9
+
10
+ Permission to use, copy, modify, and/or distribute this software for any
11
+ purpose with or without fee is hereby granted.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
+ PERFORMANCE OF THIS SOFTWARE.
20
+ ***************************************************************************** */
21
+ /* global Reflect, Promise, SuppressedError, Symbol */
22
+
23
+
24
+ function __rest(s, e) {
25
+ var t = {};
26
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
27
+ t[p] = s[p];
28
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
29
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
30
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
31
+ t[p[i]] = s[p[i]];
32
+ }
33
+ return t;
34
+ }
35
+
36
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
37
+ var e = new Error(message);
38
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
39
+ };
46
40
 
47
- var IsolateStatus;
48
- (function (IsolateStatus) {
49
- IsolateStatus["PENDING"] = "PENDING";
50
- IsolateStatus["DONE"] = "DONE";
51
- IsolateStatus["INITIAL"] = "INITIAL";
52
- })(IsolateStatus || (IsolateStatus = {}));
41
+ var IsolateKeys;
42
+ (function (IsolateKeys) {
43
+ IsolateKeys["Type"] = "$type";
44
+ IsolateKeys["Keys"] = "keys";
45
+ IsolateKeys["Key"] = "key";
46
+ IsolateKeys["Parent"] = "parent";
47
+ IsolateKeys["Data"] = "data";
48
+ IsolateKeys["AllowReorder"] = "allowReorder";
49
+ IsolateKeys["Status"] = "status";
50
+ IsolateKeys["AbortController"] = "abortController";
51
+ })(IsolateKeys || (IsolateKeys = {}));
52
+ var MinifiedKeys;
53
+ (function (MinifiedKeys) {
54
+ MinifiedKeys["Type"] = "$";
55
+ MinifiedKeys["Keys"] = "K";
56
+ MinifiedKeys["Key"] = "k";
57
+ MinifiedKeys["Parent"] = "P";
58
+ MinifiedKeys["Data"] = "D";
59
+ MinifiedKeys["AllowReorder"] = "aR";
60
+ MinifiedKeys["Status"] = "S";
61
+ })(MinifiedKeys || (MinifiedKeys = {}));
62
+ const KeyToMinified = {
63
+ [IsolateKeys.Type]: MinifiedKeys.Type,
64
+ [IsolateKeys.Keys]: MinifiedKeys.Keys,
65
+ [IsolateKeys.Parent]: MinifiedKeys.Parent,
66
+ [IsolateKeys.Data]: MinifiedKeys.Data,
67
+ [IsolateKeys.Key]: MinifiedKeys.Key,
68
+ [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,
69
+ [IsolateKeys.Status]: MinifiedKeys.Status,
70
+ };
71
+ // This const is an object that looks like this:
72
+ // {
73
+ // '$': '$type',
74
+ // 'K': 'keys',
75
+ // 'P': 'parent',
76
+ // ...
77
+ // }
78
+ Object.entries(KeyToMinified).reduce((acc, [key, minified]) => Object.assign(acc, {
79
+ [minified]: key,
80
+ }), {});
81
+ [
82
+ IsolateKeys.AbortController,
83
+ IsolateKeys.Parent,
84
+ IsolateKeys.Keys,
85
+ ];
53
86
 
54
- function genTestIsolate(data = {}) {
55
- return {
56
- children: [],
57
- data,
58
- key: null,
59
- keys: {},
60
- output: null,
61
- parent: null,
62
- status: IsolateStatus.INITIAL,
63
- [IsolateKeys.Type]: 'UnitTest',
64
- };
65
- }
87
+ function genTestIsolate(payload = {}) {
88
+ const { status } = payload, data = __rest(payload, ["status"]);
89
+ return Object.assign({ children: [], data, key: null, keys: {}, output: null, parent: null, [IsolateKeys.Type]: 'UnitTest' }, (status && { status }));
90
+ }
66
91
 
67
- exports.genTestIsolate = genTestIsolate;
92
+ exports.genTestIsolate = genTestIsolate;
68
93
 
69
94
  }));
70
95
  //# sourceMappingURL=test-utils.development.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.development.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport function genTestIsolate(data: Record<string, any> = {}): TIsolate {\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n status: IsolateStatus.INITIAL,\n [IsolateKeys.Type]: 'UnitTest',\n };\n}\n"],"names":[],"mappings":";;;;;;EAAA,IAAY,WAQX,CAAA;EARD,CAAA,UAAY,WAAW,EAAA;EACrB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;EACd,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;EACb,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;EACX,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;EACjB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;EACb,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;EAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;EACnB,CAAC,EARW,WAAW,KAAX,WAAW,GAQtB,EAAA,CAAA,CAAA,CAAA;EAED,IAAK,YAQJ,CAAA;EARD,CAAA,UAAK,YAAY,EAAA;EACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;EACV,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;EACV,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;EACT,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;EACZ,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;EACV,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,IAAmB,CAAA;EACnB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;EACd,CAAC,EARI,YAAY,KAAZ,YAAY,GAQhB,EAAA,CAAA,CAAA,CAAA;EAEM,MAAM,aAAa,GAAG;EAC3B,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;EACrC,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;EACrC,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;EACzC,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;EACrC,IAAA,CAAC,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG;EACnC,IAAA,CAAC,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY;EACrD,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;GAC1C,CAAC;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EAC6B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAC/D,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,KACnB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;MACjB,CAAC,QAAQ,GAAG,GAAG;GAChB,CAAC,EACJ,EAAiC;;EC1CnC,IAAY,aAIX,CAAA;EAJD,CAAA,UAAY,aAAa,EAAA;EACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;EACnB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;EACb,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;EACrB,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;ECAe,SAAA,cAAc,CAAC,IAAA,GAA4B,EAAE,EAAA;MAC3D,OAAO;EACL,QAAA,QAAQ,EAAE,EAAE;UACZ,IAAI;EACJ,QAAA,GAAG,EAAE,IAAI;EACT,QAAA,IAAI,EAAE,EAAE;EACR,QAAA,MAAM,EAAE,IAAI;EACZ,QAAA,MAAM,EAAE,IAAI;UACZ,MAAM,EAAE,aAAa,CAAC,OAAO;EAC7B,QAAA,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU;OAC/B,CAAC;EACJ;;;;;;;;"}
1
+ {"version":3,"file":"test-utils.development.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n AbortController = 'abortController',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\n];\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\n\nexport function genTestIsolate(payload: Record<string, any> = {}): TIsolate {\n const { status, ...data } = payload;\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n [IsolateKeys.Type]: 'UnitTest',\n ...(status && { status }),\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,IAAY,WASX,CAAA;IATD,CAAA,UAAY,WAAW,EAAA;IACrB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;IACd,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;IACrC,CAAC,EATW,WAAW,KAAX,WAAW,GAStB,EAAA,CAAA,CAAA,CAAA;IAED,IAAK,YAQJ,CAAA;IARD,CAAA,UAAK,YAAY,EAAA;IACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;IACV,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;IACV,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;IACT,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;IACZ,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;IACV,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,IAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;IACd,CAAC,EARI,YAAY,KAAZ,YAAY,GAQhB,EAAA,CAAA,CAAA,CAAA;IAEM,MAAM,aAAa,GAAG;IAC3B,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;IACrC,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;IACrC,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;IACzC,IAAA,CAAC,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;IACrC,IAAA,CAAC,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG;IACnC,IAAA,CAAC,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY;IACrD,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;KAC1C,CAAC;IAEF;IACA;IACA;IACA;IACA;IACA;IACA;IAC6B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAC/D,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,KACnB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,CAAC,QAAQ,GAAG,GAAG;KAChB,CAAC,EACJ,EAAiC,EACjC;IAE8B;IAC9B,IAAA,WAAW,CAAC,eAAe;IAC3B,IAAA,WAAW,CAAC,MAAM;IAClB,IAAA,WAAW,CAAC,IAAI;;;IC9CF,SAAA,cAAc,CAAC,OAAA,GAA+B,EAAE,EAAA;QAC9D,MAAM,EAAE,MAAM,EAAA,GAAc,OAAO,EAAhB,IAAI,GAAA,MAAA,CAAK,OAAO,EAA7B,CAAmB,QAAA,CAAA,CAAU,CAAC;IACpC,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,EACE,QAAQ,EAAE,EAAE,EACZ,IAAI,EACJ,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,EAAE,EACR,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,EACZ,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,EAAA,GAC1B,MAAM,IAAI,EAAE,MAAM,EAAE,EACxB,CAAA;IACJ;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["test-utils"]={})}(this,(function(e){"use strict";var t,n;!function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder",e.Status="status"}(t||(t={})),function(e){e.Type="$",e.Keys="K",e.Key="k",e.Parent="P",e.Data="D",e.AllowReorder="aR",e.Status="S"}(n||(n={}));const a={[t.Type]:n.Type,[t.Keys]:n.Keys,[t.Parent]:n.Parent,[t.Data]:n.Data,[t.Key]:n.Key,[t.AllowReorder]:n.AllowReorder,[t.Status]:n.Status};var s;Object.entries(a).reduce(((e,[t,n])=>Object.assign(e,{[n]:t})),{}),function(e){e.PENDING="PENDING",e.DONE="DONE",e.INITIAL="INITIAL"}(s||(s={})),e.genTestIsolate=function(e={}){return{children:[],data:e,key:null,keys:{},output:null,parent:null,status:s.INITIAL,[t.Type]:"UnitTest"}}}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["test-utils"]={})}(this,(function(e){"use strict";var t,r;"function"==typeof SuppressedError&&SuppressedError,function(e){e.Type="$type",e.Keys="keys",e.Key="key",e.Parent="parent",e.Data="data",e.AllowReorder="allowReorder",e.Status="status",e.AbortController="abortController"}(t||(t={})),function(e){e.Type="$",e.Keys="K",e.Key="k",e.Parent="P",e.Data="D",e.AllowReorder="aR",e.Status="S"}(r||(r={}));const o={[t.Type]:r.Type,[t.Keys]:r.Keys,[t.Parent]:r.Parent,[t.Data]:r.Data,[t.Key]:r.Key,[t.AllowReorder]:r.AllowReorder,[t.Status]:r.Status};Object.entries(o).reduce(((e,[t,r])=>Object.assign(e,{[r]:t})),{}),t.AbortController,t.Parent,t.Keys,e.genTestIsolate=function(e={}){const{status:r}=e,o=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}(e,["status"]);return Object.assign({children:[],data:o,key:null,keys:{},output:null,parent:null,[t.Type]:"UnitTest"},r&&{status:r})}}));
2
2
  //# sourceMappingURL=test-utils.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.production.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/Isolate/IsolateStatus.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n","export enum IsolateStatus {\n PENDING = 'PENDING',\n DONE = 'DONE',\n INITIAL = 'INITIAL',\n}\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\nimport { IsolateStatus } from 'IsolateStatus';\n\nexport function genTestIsolate(data: Record<string, any> = {}): TIsolate {\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n status: IsolateStatus.INITIAL,\n [IsolateKeys.Type]: 'UnitTest',\n };\n}\n"],"names":["IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","Status","IsolateStatus","Object","entries","reduce","acc","key","minified","assign","data","children","keys","output","parent","status","INITIAL"],"mappings":"qPAAA,IAAYA,EAUPC,GAVL,SAAYD,GACVA,EAAA,KAAA,QACAA,EAAA,KAAA,OACAA,EAAA,IAAA,MACAA,EAAA,OAAA,SACAA,EAAA,KAAA,OACAA,EAAA,aAAA,eACAA,EAAA,OAAA,QACD,CARD,CAAYA,IAAAA,EAQX,CAAA,IAED,SAAKC,GACHA,EAAA,KAAA,IACAA,EAAA,KAAA,IACAA,EAAA,IAAA,IACAA,EAAA,OAAA,IACAA,EAAA,KAAA,IACAA,EAAA,aAAA,KACAA,EAAA,OAAA,GACD,CARD,CAAKA,IAAAA,EAQJ,CAAA,IAEM,MAAMC,EAAgB,CAC3B,CAACF,EAAYG,MAAOF,EAAaE,KACjC,CAACH,EAAYI,MAAOH,EAAaG,KACjC,CAACJ,EAAYK,QAASJ,EAAaI,OACnC,CAACL,EAAYM,MAAOL,EAAaK,KACjC,CAACN,EAAYO,KAAMN,EAAaM,IAChC,CAACP,EAAYQ,cAAeP,EAAaO,aACzC,CAACR,EAAYS,QAASR,EAAaQ,QC3BrC,IAAYC,EDqCiBC,OAAOC,QAAQV,GAAeW,QACzD,CAACC,GAAMC,EAAKC,KACVL,OAAOM,OAAOH,EAAK,CACjBE,CAACA,GAAWD,KAEhB,CAAiC,GC1CnC,SAAYL,GACVA,EAAA,QAAA,UACAA,EAAA,KAAA,OACAA,EAAA,QAAA,SACD,CAJD,CAAYA,IAAAA,EAIX,CAAA,qBCAe,SAAeQ,EAA4B,IACzD,MAAO,CACLC,SAAU,GACVD,OACAH,IAAK,KACLK,KAAM,CAAE,EACRC,OAAQ,KACRC,OAAQ,KACRC,OAAQb,EAAcc,QACtB,CAACxB,EAAYG,MAAO,WAExB"}
1
+ {"version":3,"file":"test-utils.production.js","sources":["../../src/Isolate/IsolateKeys.ts","../../src/exports/test-utils.ts"],"sourcesContent":["export enum IsolateKeys {\n Type = '$type',\n Keys = 'keys',\n Key = 'key',\n Parent = 'parent',\n Data = 'data',\n AllowReorder = 'allowReorder',\n Status = 'status',\n AbortController = 'abortController',\n}\n\nenum MinifiedKeys {\n Type = '$',\n Keys = 'K',\n Key = 'k',\n Parent = 'P',\n Data = 'D',\n AllowReorder = 'aR',\n Status = 'S',\n}\n\nexport const KeyToMinified = {\n [IsolateKeys.Type]: MinifiedKeys.Type,\n [IsolateKeys.Keys]: MinifiedKeys.Keys,\n [IsolateKeys.Parent]: MinifiedKeys.Parent,\n [IsolateKeys.Data]: MinifiedKeys.Data,\n [IsolateKeys.Key]: MinifiedKeys.Key,\n [IsolateKeys.AllowReorder]: MinifiedKeys.AllowReorder,\n [IsolateKeys.Status]: MinifiedKeys.Status,\n};\n\n// This const is an object that looks like this:\n// {\n// '$': '$type',\n// 'K': 'keys',\n// 'P': 'parent',\n// ...\n// }\nexport const MinifiedToKey = Object.entries(KeyToMinified).reduce(\n (acc, [key, minified]) =>\n Object.assign(acc, {\n [minified]: key,\n }),\n {} as Record<string, IsolateKeys>\n);\n\nexport const ExcludedFromDump = [\n IsolateKeys.AbortController,\n IsolateKeys.Parent,\n IsolateKeys.Keys,\n];\n","import { TIsolate } from 'Isolate';\nimport { IsolateKeys } from 'IsolateKeys';\n\nexport function genTestIsolate(payload: Record<string, any> = {}): TIsolate {\n const { status, ...data } = payload;\n return {\n children: [],\n data,\n key: null,\n keys: {},\n output: null,\n parent: null,\n [IsolateKeys.Type]: 'UnitTest',\n ...(status && { status }),\n };\n}\n"],"names":["IsolateKeys","MinifiedKeys","KeyToMinified","Type","Keys","Parent","Data","Key","AllowReorder","Status","Object","entries","reduce","acc","key","minified","assign","AbortController","payload","status","data","__rest","children","keys","output","parent"],"mappings":"qPAAA,IAAYA,EAWPC,sDAXL,SAAYD,GACVA,EAAA,KAAA,QACAA,EAAA,KAAA,OACAA,EAAA,IAAA,MACAA,EAAA,OAAA,SACAA,EAAA,KAAA,OACAA,EAAA,aAAA,eACAA,EAAA,OAAA,SACAA,EAAA,gBAAA,iBACD,CATD,CAAYA,IAAAA,EASX,CAAA,IAED,SAAKC,GACHA,EAAA,KAAA,IACAA,EAAA,KAAA,IACAA,EAAA,IAAA,IACAA,EAAA,OAAA,IACAA,EAAA,KAAA,IACAA,EAAA,aAAA,KACAA,EAAA,OAAA,GACD,CARD,CAAKA,IAAAA,EAQJ,CAAA,IAEM,MAAMC,EAAgB,CAC3B,CAACF,EAAYG,MAAOF,EAAaE,KACjC,CAACH,EAAYI,MAAOH,EAAaG,KACjC,CAACJ,EAAYK,QAASJ,EAAaI,OACnC,CAACL,EAAYM,MAAOL,EAAaK,KACjC,CAACN,EAAYO,KAAMN,EAAaM,IAChC,CAACP,EAAYQ,cAAeP,EAAaO,aACzC,CAACR,EAAYS,QAASR,EAAaQ,QAURC,OAAOC,QAAQT,GAAeU,QACzD,CAACC,GAAMC,EAAKC,KACVL,OAAOM,OAAOH,EAAK,CACjBE,CAACA,GAAWD,KAEhB,CAAA,GAIAd,EAAYiB,gBACZjB,EAAYK,OACZL,EAAYI,sBC9CE,SAAec,EAA+B,IAC5D,MAAMC,OAAEA,GAAoBD,EAATE,2UAAIC,CAAKH,EAAtB,CAAmB,WACzB,OAAAR,OAAAM,OAAA,CACEM,SAAU,GACVF,OACAN,IAAK,KACLS,KAAM,GACNC,OAAQ,KACRC,OAAQ,KACR,CAACzB,EAAYG,MAAO,YAChBgB,GAAU,CAAEA,UAEpB"}