@nice2dev/ui-graphics 1.0.4 → 1.0.5
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/dist/cjs/animation/AnimationEditor.js +1 -1
- package/dist/cjs/animation/Audience.js +1 -1
- package/dist/cjs/core/LocalUI.js +1 -1
- package/dist/cjs/core/yjsCollaboration.js +2 -2
- package/dist/cjs/core/yjsCollaboration.js.map +1 -1
- package/dist/cjs/game/GameAsset2dEditor.js +1 -1
- package/dist/cjs/node_modules/lib0/array.js +103 -0
- package/dist/cjs/node_modules/lib0/array.js.map +1 -0
- package/dist/cjs/node_modules/lib0/binary.js +42 -0
- package/dist/cjs/node_modules/lib0/binary.js.map +1 -0
- package/dist/cjs/node_modules/lib0/broadcastchannel.js +121 -0
- package/dist/cjs/node_modules/lib0/broadcastchannel.js.map +1 -0
- package/dist/cjs/node_modules/lib0/buffer.js +103 -0
- package/dist/cjs/node_modules/lib0/buffer.js.map +1 -0
- package/dist/cjs/node_modules/lib0/conditions.js +18 -0
- package/dist/cjs/node_modules/lib0/conditions.js.map +1 -0
- package/dist/cjs/node_modules/lib0/decoding.js +460 -0
- package/dist/cjs/node_modules/lib0/decoding.js.map +1 -0
- package/dist/cjs/node_modules/lib0/dom.js +55 -0
- package/dist/cjs/node_modules/lib0/dom.js.map +1 -0
- package/dist/cjs/node_modules/lib0/encoding.js +688 -0
- package/dist/cjs/node_modules/lib0/encoding.js.map +1 -0
- package/dist/cjs/node_modules/lib0/environment.js +129 -0
- package/dist/cjs/node_modules/lib0/environment.js.map +1 -0
- package/dist/cjs/node_modules/lib0/error.js +37 -0
- package/dist/cjs/node_modules/lib0/error.js.map +1 -0
- package/dist/cjs/node_modules/lib0/function.js +135 -0
- package/dist/cjs/node_modules/lib0/function.js.map +1 -0
- package/dist/cjs/node_modules/lib0/iterator.js +52 -0
- package/dist/cjs/node_modules/lib0/iterator.js.map +1 -0
- package/dist/cjs/node_modules/lib0/logging.common.js +63 -0
- package/dist/cjs/node_modules/lib0/logging.common.js.map +1 -0
- package/dist/cjs/node_modules/lib0/logging.js +128 -0
- package/dist/cjs/node_modules/lib0/logging.js.map +1 -0
- package/dist/cjs/node_modules/lib0/map.js +108 -0
- package/dist/cjs/node_modules/lib0/map.js.map +1 -0
- package/dist/cjs/node_modules/lib0/math.js +44 -0
- package/dist/cjs/node_modules/lib0/math.js.map +1 -0
- package/dist/cjs/node_modules/lib0/number.js +21 -0
- package/dist/cjs/node_modules/lib0/number.js.map +1 -0
- package/dist/cjs/node_modules/lib0/object.js +132 -0
- package/dist/cjs/node_modules/lib0/object.js.map +1 -0
- package/dist/cjs/node_modules/lib0/observable.js +168 -0
- package/dist/cjs/node_modules/lib0/observable.js.map +1 -0
- package/dist/cjs/node_modules/lib0/pair.js +33 -0
- package/dist/cjs/node_modules/lib0/pair.js.map +1 -0
- package/dist/cjs/node_modules/lib0/prng.js +95 -0
- package/dist/cjs/node_modules/lib0/prng.js.map +1 -0
- package/dist/cjs/node_modules/lib0/promise.js +33 -0
- package/dist/cjs/node_modules/lib0/promise.js.map +1 -0
- package/dist/cjs/node_modules/lib0/random.js +28 -0
- package/dist/cjs/node_modules/lib0/random.js.map +1 -0
- package/dist/cjs/node_modules/lib0/schema.js +1168 -0
- package/dist/cjs/node_modules/lib0/schema.js.map +1 -0
- package/dist/cjs/node_modules/lib0/set.js +12 -0
- package/dist/cjs/node_modules/lib0/set.js.map +1 -0
- package/dist/cjs/node_modules/lib0/storage.js +79 -0
- package/dist/cjs/node_modules/lib0/storage.js.map +1 -0
- package/dist/cjs/node_modules/lib0/string.js +94 -0
- package/dist/cjs/node_modules/lib0/string.js.map +1 -0
- package/dist/cjs/node_modules/lib0/symbol.js +15 -0
- package/dist/cjs/node_modules/lib0/symbol.js.map +1 -0
- package/dist/cjs/node_modules/lib0/time.js +18 -0
- package/dist/cjs/node_modules/lib0/time.js.map +1 -0
- package/dist/cjs/node_modules/lib0/trait/equality.js +32 -0
- package/dist/cjs/node_modules/lib0/trait/equality.js.map +1 -0
- package/dist/cjs/node_modules/lib0/url.js +20 -0
- package/dist/cjs/node_modules/lib0/url.js.map +1 -0
- package/dist/cjs/node_modules/lib0/webcrypto.js +8 -0
- package/dist/cjs/node_modules/lib0/webcrypto.js.map +1 -0
- package/dist/cjs/node_modules/y-protocols/auth.js +27 -0
- package/dist/cjs/node_modules/y-protocols/auth.js.map +1 -0
- package/dist/cjs/node_modules/y-protocols/awareness.js +277 -0
- package/dist/cjs/node_modules/y-protocols/awareness.js.map +1 -0
- package/dist/cjs/node_modules/y-protocols/sync.js +149 -0
- package/dist/cjs/node_modules/y-protocols/sync.js.map +1 -0
- package/dist/cjs/node_modules/y-websocket/src/y-websocket.js +521 -0
- package/dist/cjs/node_modules/y-websocket/src/y-websocket.js.map +1 -0
- package/dist/cjs/node_modules/yjs/dist/yjs.js +10399 -0
- package/dist/cjs/node_modules/yjs/dist/yjs.js.map +1 -0
- package/dist/cjs/packages/ui/dist/index.js +65997 -0
- package/dist/cjs/packages/ui/dist/index.js.map +1 -0
- package/dist/cjs/pixel/PixelEditor.js +1 -1
- package/dist/cjs/pixel/PixelEditorMenuBar.js +1 -1
- package/dist/cjs/pixel/PixelEditorRightPanel.js +1 -1
- package/dist/cjs/pixel/PixelEditorTimeline.js +1 -1
- package/dist/cjs/pixel/PixelEditorToolbar.js +1 -1
- package/dist/cjs/pixel/SpriteGeneratorPanel.js +1 -1
- package/dist/cjs/vector/VectorEditor.js +1 -1
- package/dist/cjs/vector/VectorEditorMenuBar.js +1 -1
- package/dist/cjs/vector/VectorEditorRightPanel.js +1 -1
- package/dist/esm/animation/AnimationEditor.js +5 -5
- package/dist/esm/animation/Audience.js +2 -2
- package/dist/esm/core/LocalUI.js +4 -4
- package/dist/esm/core/yjsCollaboration.js +2 -2
- package/dist/esm/core/yjsCollaboration.js.map +1 -1
- package/dist/esm/game/GameAsset2dEditor.js +19 -19
- package/dist/esm/node_modules/lib0/array.js +95 -0
- package/dist/esm/node_modules/lib0/array.js.map +1 -0
- package/dist/esm/node_modules/lib0/binary.js +30 -0
- package/dist/esm/node_modules/lib0/binary.js.map +1 -0
- package/dist/esm/node_modules/lib0/broadcastchannel.js +117 -0
- package/dist/esm/node_modules/lib0/broadcastchannel.js.map +1 -0
- package/dist/esm/node_modules/lib0/buffer.js +96 -0
- package/dist/esm/node_modules/lib0/buffer.js.map +1 -0
- package/dist/esm/node_modules/lib0/conditions.js +16 -0
- package/dist/esm/node_modules/lib0/conditions.js.map +1 -0
- package/dist/esm/node_modules/lib0/decoding.js +439 -0
- package/dist/esm/node_modules/lib0/decoding.js.map +1 -0
- package/dist/esm/node_modules/lib0/dom.js +48 -0
- package/dist/esm/node_modules/lib0/dom.js.map +1 -0
- package/dist/esm/node_modules/lib0/encoding.js +663 -0
- package/dist/esm/node_modules/lib0/encoding.js.map +1 -0
- package/dist/esm/node_modules/lib0/environment.js +121 -0
- package/dist/esm/node_modules/lib0/environment.js.map +1 -0
- package/dist/esm/node_modules/lib0/error.js +33 -0
- package/dist/esm/node_modules/lib0/error.js.map +1 -0
- package/dist/esm/node_modules/lib0/function.js +130 -0
- package/dist/esm/node_modules/lib0/function.js.map +1 -0
- package/dist/esm/node_modules/lib0/iterator.js +48 -0
- package/dist/esm/node_modules/lib0/iterator.js.map +1 -0
- package/dist/esm/node_modules/lib0/logging.common.js +52 -0
- package/dist/esm/node_modules/lib0/logging.common.js.map +1 -0
- package/dist/esm/node_modules/lib0/logging.js +115 -0
- package/dist/esm/node_modules/lib0/logging.js.map +1 -0
- package/dist/esm/node_modules/lib0/map.js +102 -0
- package/dist/esm/node_modules/lib0/map.js.map +1 -0
- package/dist/esm/node_modules/lib0/math.js +37 -0
- package/dist/esm/node_modules/lib0/math.js.map +1 -0
- package/dist/esm/node_modules/lib0/number.js +17 -0
- package/dist/esm/node_modules/lib0/number.js.map +1 -0
- package/dist/esm/node_modules/lib0/object.js +119 -0
- package/dist/esm/node_modules/lib0/object.js.map +1 -0
- package/dist/esm/node_modules/lib0/observable.js +165 -0
- package/dist/esm/node_modules/lib0/observable.js.map +1 -0
- package/dist/esm/node_modules/lib0/pair.js +30 -0
- package/dist/esm/node_modules/lib0/pair.js.map +1 -0
- package/dist/esm/node_modules/lib0/prng.js +87 -0
- package/dist/esm/node_modules/lib0/prng.js.map +1 -0
- package/dist/esm/node_modules/lib0/promise.js +31 -0
- package/dist/esm/node_modules/lib0/promise.js.map +1 -0
- package/dist/esm/node_modules/lib0/random.js +25 -0
- package/dist/esm/node_modules/lib0/random.js.map +1 -0
- package/dist/esm/node_modules/lib0/schema.js +1113 -0
- package/dist/esm/node_modules/lib0/schema.js.map +1 -0
- package/dist/esm/node_modules/lib0/set.js +10 -0
- package/dist/esm/node_modules/lib0/set.js.map +1 -0
- package/dist/esm/node_modules/lib0/storage.js +75 -0
- package/dist/esm/node_modules/lib0/storage.js.map +1 -0
- package/dist/esm/node_modules/lib0/string.js +85 -0
- package/dist/esm/node_modules/lib0/string.js.map +1 -0
- package/dist/esm/node_modules/lib0/symbol.js +13 -0
- package/dist/esm/node_modules/lib0/symbol.js.map +1 -0
- package/dist/esm/node_modules/lib0/time.js +16 -0
- package/dist/esm/node_modules/lib0/time.js.map +1 -0
- package/dist/esm/node_modules/lib0/trait/equality.js +29 -0
- package/dist/esm/node_modules/lib0/trait/equality.js.map +1 -0
- package/dist/esm/node_modules/lib0/url.js +18 -0
- package/dist/esm/node_modules/lib0/url.js.map +1 -0
- package/dist/esm/node_modules/lib0/webcrypto.js +6 -0
- package/dist/esm/node_modules/lib0/webcrypto.js.map +1 -0
- package/dist/esm/node_modules/y-protocols/auth.js +24 -0
- package/dist/esm/node_modules/y-protocols/auth.js.map +1 -0
- package/dist/esm/node_modules/y-protocols/awareness.js +271 -0
- package/dist/esm/node_modules/y-protocols/awareness.js.map +1 -0
- package/dist/esm/node_modules/y-protocols/sync.js +138 -0
- package/dist/esm/node_modules/y-protocols/sync.js.map +1 -0
- package/dist/esm/node_modules/y-websocket/src/y-websocket.js +515 -0
- package/dist/esm/node_modules/y-websocket/src/y-websocket.js.map +1 -0
- package/dist/esm/node_modules/yjs/dist/yjs.js +10295 -0
- package/dist/esm/node_modules/yjs/dist/yjs.js.map +1 -0
- package/dist/esm/packages/ui/dist/index.js +65571 -0
- package/dist/esm/packages/ui/dist/index.js.map +1 -0
- package/dist/esm/pixel/PixelEditor.js +3 -3
- package/dist/esm/pixel/PixelEditorMenuBar.js +2 -2
- package/dist/esm/pixel/PixelEditorRightPanel.js +3 -3
- package/dist/esm/pixel/PixelEditorTimeline.js +2 -2
- package/dist/esm/pixel/PixelEditorToolbar.js +2 -2
- package/dist/esm/pixel/SpriteGeneratorPanel.js +8 -8
- package/dist/esm/vector/VectorEditor.js +3 -3
- package/dist/esm/vector/VectorEditorMenuBar.js +3 -3
- package/dist/esm/vector/VectorEditorRightPanel.js +13 -13
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../../../../../node_modules/lib0/schema.js"],"sourcesContent":["/**\n * @experimental WIP\n *\n * Simple & efficient schemas for your data.\n */\n\nimport * as obj from './object.js'\nimport * as arr from './array.js'\nimport * as error from './error.js'\nimport * as env from './environment.js'\nimport * as equalityTraits from './trait/equality.js'\nimport * as fun from './function.js'\nimport * as string from './string.js'\nimport * as prng from './prng.js'\nimport * as number from './number.js'\n\n/**\n * @typedef {string|number|bigint|boolean|null|undefined|symbol} Primitive\n */\n\n/**\n * @typedef {{ [k:string|number|symbol]: any }} AnyObject\n */\n\n/**\n * @template T\n * @typedef {T extends Schema<infer X> ? X : T} Unwrap\n */\n\n/**\n * @template T\n * @typedef {T extends Schema<infer X> ? X : T} TypeOf\n */\n\n/**\n * @template {readonly unknown[]} T\n * @typedef {T extends readonly [Schema<infer First>, ...infer Rest] ? [First, ...UnwrapArray<Rest>] : [] } UnwrapArray\n */\n\n/**\n * @template T\n * @typedef {T extends Schema<infer S> ? Schema<S> : never} CastToSchema\n */\n\n/**\n * @template {unknown[]} Arr\n * @typedef {Arr extends [...unknown[], infer L] ? L : never} TupleLast\n */\n\n/**\n * @template {unknown[]} Arr\n * @typedef {Arr extends [...infer Fs, unknown] ? Fs : never} TuplePop\n */\n\n/**\n * @template {readonly unknown[]} T\n * @typedef {T extends []\n * ? {}\n * : T extends [infer First]\n * ? First\n * : T extends [infer First, ...infer Rest]\n * ? First & Intersect<Rest>\n * : never\n * } Intersect\n */\n\nconst schemaSymbol = Symbol('0schema')\n\nexport class ValidationError {\n constructor () {\n /**\n * Reverse errors\n * @type {Array<{ path: string?, expected: string, has: string, message: string? }>}\n */\n this._rerrs = []\n }\n\n /**\n * @param {string?} path\n * @param {string} expected\n * @param {string} has\n * @param {string?} message\n */\n extend (path, expected, has, message = null) {\n this._rerrs.push({ path, expected, has, message })\n }\n\n toString () {\n const s = []\n for (let i = this._rerrs.length - 1; i > 0; i--) {\n const r = this._rerrs[i]\n /* c8 ignore next */\n s.push(string.repeat(' ', (this._rerrs.length - i) * 2) + `${r.path != null ? `[${r.path}] ` : ''}${r.has} doesn't match ${r.expected}. ${r.message}`)\n }\n return s.join('\\n')\n }\n}\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nconst shapeExtends = (a, b) => {\n if (a === b) return true\n if (a == null || b == null || a.constructor !== b.constructor) return false\n if (a[equalityTraits.EqualityTraitSymbol]) return equalityTraits.equals(a, b) // last resort: check equality (do this before array and obj check which don't implement the equality trait)\n if (arr.isArray(a)) {\n return arr.every(a, aitem =>\n arr.some(b, bitem => shapeExtends(aitem, bitem))\n )\n } else if (obj.isObject(a)) {\n return obj.every(a, (aitem, akey) =>\n shapeExtends(aitem, b[akey])\n )\n }\n /* c8 ignore next */\n return false\n}\n\n/**\n * @template T\n * @implements {equalityTraits.EqualityTrait}\n */\nexport class Schema {\n // this.shape must not be defined on Schema. Otherwise typecheck on metatypes (e.g. $$object) won't work as expected anymore\n /**\n * If true, the more things are added to the shape the more objects this schema will accept (e.g.\n * union). By default, the more objects are added, the the fewer objects this schema will accept.\n * @protected\n */\n static _dilutes = false\n\n /**\n * @param {Schema<any>} other\n */\n extends (other) {\n let [a, b] = [/** @type {any} */(this).shape, /** @type {any} */ (other).shape]\n if (/** @type {typeof Schema<any>} */ (this.constructor)._dilutes) [b, a] = [a, b]\n return shapeExtends(a, b)\n }\n\n /**\n * Overwrite this when necessary. By default, we only check the `shape` property which every shape\n * should have.\n * @param {Schema<any>} other\n */\n equals (other) {\n // @ts-ignore\n return this.constructor === other.constructor && fun.equalityDeep(this.shape, other.shape)\n }\n\n [schemaSymbol] () { return true }\n\n /**\n * @param {object} other\n */\n [equalityTraits.EqualityTraitSymbol] (other) {\n return this.equals(/** @type {any} */ (other))\n }\n\n /**\n * Use `schema.validate(obj)` with a typed parameter that is already of typed to be an instance of\n * Schema. Validate will check the structure of the parameter and return true iff the instance\n * really is an instance of Schema.\n *\n * @param {T} o\n * @return {boolean}\n */\n validate (o) {\n return this.check(o)\n }\n\n /* c8 ignore start */\n /**\n * Similar to validate, but this method accepts untyped parameters.\n *\n * @param {any} _o\n * @param {ValidationError} [_err]\n * @return {_o is T}\n */\n check (_o, _err) {\n error.methodUnimplemented()\n }\n /* c8 ignore stop */\n\n /**\n * @type {Schema<T?>}\n */\n get nullable () {\n // @ts-ignore\n return $union(this, $null)\n }\n\n /**\n * @type {$Optional<Schema<T>>}\n */\n get optional () {\n return new $Optional(/** @type {Schema<T>} */ (this))\n }\n\n /**\n * Cast a variable to a specific type. Returns the casted value, or throws an exception otherwise.\n * Use this if you know that the type is of a specific type and you just want to convince the type\n * system.\n *\n * **Do not rely on these error messages!**\n * Performs an assertion check only if not in a production environment.\n *\n * @template OO\n * @param {OO} o\n * @return {Extract<OO, T> extends never ? T : (OO extends Array<never> ? T : Extract<OO,T>)}\n */\n cast (o) {\n assert(o, this)\n return /** @type {any} */ (o)\n }\n\n /**\n * EXPECTO PATRONUM!! 🪄\n * This function protects against type errors. Though it may not work in the real world.\n *\n * \"After all this time?\"\n * \"Always.\" - Snape, talking about type safety\n *\n * Ensures that a variable is a a specific type. Returns the value, or throws an exception if the assertion check failed.\n * Use this if you know that the type is of a specific type and you just want to convince the type\n * system.\n *\n * Can be useful when defining lambdas: `s.lambda(s.$number, s.$void).expect((n) => n + 1)`\n *\n * **Do not rely on these error messages!**\n * Performs an assertion check if not in a production environment.\n *\n * @param {T} o\n * @return {o extends T ? T : never}\n */\n expect (o) {\n assert(o, this)\n return o\n }\n}\n\n/**\n * @template {(new (...args:any[]) => any) | ((...args:any[]) => any)} Constr\n * @typedef {Constr extends ((...args:any[]) => infer T) ? T : (Constr extends (new (...args:any[]) => any) ? InstanceType<Constr> : never)} Instance\n */\n\n/**\n * @template {(new (...args:any[]) => any) | ((...args:any[]) => any)} C\n * @extends {Schema<Instance<C>>}\n */\nexport class $ConstructedBy extends Schema {\n /**\n * @param {C} c\n * @param {((o:Instance<C>)=>boolean)|null} check\n */\n constructor (c, check) {\n super()\n this.shape = c\n this._c = check\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is C extends ((...args:any[]) => infer T) ? T : (C extends (new (...args:any[]) => any) ? InstanceType<C> : never)} o\n */\n check (o, err = undefined) {\n const c = o?.constructor === this.shape && (this._c == null || this._c(o))\n /* c8 ignore next */\n !c && err?.extend(null, this.shape.name, o?.constructor.name, o?.constructor !== this.shape ? 'Constructor match failed' : 'Check failed')\n return c\n }\n}\n\n/**\n * @template {(new (...args:any[]) => any) | ((...args:any[]) => any)} C\n * @param {C} c\n * @param {((o:Instance<C>) => boolean)|null} check\n * @return {CastToSchema<$ConstructedBy<C>>}\n */\nexport const $constructedBy = (c, check = null) => new $ConstructedBy(c, check)\nexport const $$constructedBy = $constructedBy($ConstructedBy)\n\n/**\n * Check custom properties on any object. You may want to overwrite the generated Schema<any>.\n *\n * @extends {Schema<any>}\n */\nexport class $Custom extends Schema {\n /**\n * @param {(o:any) => boolean} check\n */\n constructor (check) {\n super()\n /**\n * @type {(o:any) => boolean}\n */\n this.shape = check\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is any}\n */\n check (o, err) {\n const c = this.shape(o)\n /* c8 ignore next */\n !c && err?.extend(null, 'custom prop', o?.constructor.name, 'failed to check custom prop')\n return c\n }\n}\n\n/**\n * @param {(o:any) => boolean} check\n * @return {Schema<any>}\n */\nexport const $custom = (check) => new $Custom(check)\nexport const $$custom = $constructedBy($Custom)\n\n/**\n * @template {Primitive} T\n * @extends {Schema<T>}\n */\nexport class $Literal extends Schema {\n /**\n * @param {Array<T>} literals\n */\n constructor (literals) {\n super()\n this.shape = literals\n }\n\n /**\n *\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is T}\n */\n check (o, err) {\n const c = this.shape.some(a => a === o)\n /* c8 ignore next */\n !c && err?.extend(null, this.shape.join(' | '), o.toString())\n return c\n }\n}\n\n/**\n * @template {Primitive[]} T\n * @param {T} literals\n * @return {CastToSchema<$Literal<T[number]>>}\n */\nexport const $literal = (...literals) => new $Literal(literals)\nexport const $$literal = $constructedBy($Literal)\n\n/**\n * @template {Array<string|Schema<string|number>>} Ts\n * @typedef {Ts extends [] ? `` : (Ts extends [infer T] ? (Unwrap<T> extends (string|number) ? Unwrap<T> : never) : (Ts extends [infer T1, ...infer Rest] ? `${Unwrap<T1> extends (string|number) ? Unwrap<T1> : never}${Rest extends Array<string|Schema<string|number>> ? CastStringTemplateArgsToTemplate<Rest> : never}` : never))} CastStringTemplateArgsToTemplate\n */\n\n/**\n * @param {string} str\n * @return {string}\n */\nconst _regexEscape = /** @type {any} */ (RegExp).escape || /** @type {(str:string) => string} */ (str =>\n str.replace(/[().|&,$^[\\]]/g, s => '\\\\' + s)\n)\n\n/**\n * @param {string|Schema<any>} s\n * @return {string[]}\n */\nconst _schemaStringTemplateToRegex = s => {\n if ($string.check(s)) {\n return [_regexEscape(s)]\n }\n if ($$literal.check(s)) {\n return /** @type {Array<string|number>} */ (s.shape).map(v => v + '')\n }\n if ($$number.check(s)) {\n return ['[+-]?\\\\d+.?\\\\d*']\n }\n if ($$string.check(s)) {\n return ['.*']\n }\n if ($$union.check(s)) {\n return s.shape.map(_schemaStringTemplateToRegex).flat(1)\n }\n /* c8 ignore next 2 */\n // unexpected schema structure (only supports unions and string in literal types)\n error.unexpectedCase()\n}\n\n/**\n * @template {Array<string|Schema<string|number>>} T\n * @extends {Schema<CastStringTemplateArgsToTemplate<T>>}\n */\nexport class $StringTemplate extends Schema {\n /**\n * @param {T} shape\n */\n constructor (shape) {\n super()\n this.shape = shape\n this._r = new RegExp('^' + shape.map(_schemaStringTemplateToRegex).map(opts => `(${opts.join('|')})`).join('') + '$')\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is CastStringTemplateArgsToTemplate<T>}\n */\n check (o, err) {\n const c = this._r.exec(o) != null\n /* c8 ignore next */\n !c && err?.extend(null, this._r.toString(), o.toString(), 'String doesn\\'t match string template.')\n return c\n }\n}\n\n/**\n * @template {Array<string|Schema<string|number>>} T\n * @param {T} literals\n * @return {CastToSchema<$StringTemplate<T>>}\n */\nexport const $stringTemplate = (...literals) => new $StringTemplate(literals)\nexport const $$stringTemplate = $constructedBy($StringTemplate)\n\nconst isOptionalSymbol = Symbol('optional')\n/**\n * @template {Schema<any>} S\n * @extends Schema<Unwrap<S>|undefined>\n */\nclass $Optional extends Schema {\n /**\n * @param {S} shape\n */\n constructor (shape) {\n super()\n this.shape = shape\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is (Unwrap<S>|undefined)}\n */\n check (o, err) {\n const c = o === undefined || this.shape.check(o)\n /* c8 ignore next */\n !c && err?.extend(null, 'undefined (optional)', '()')\n return c\n }\n\n get [isOptionalSymbol] () { return true }\n}\nexport const $$optional = $constructedBy($Optional)\n\n/**\n * @extends Schema<never>\n */\nclass $Never extends Schema {\n /**\n * @param {any} _o\n * @param {ValidationError} [err]\n * @return {_o is never}\n */\n check (_o, err) {\n /* c8 ignore next */\n err?.extend(null, 'never', typeof _o)\n return false\n }\n}\n\n/**\n * @type {Schema<never>}\n */\nexport const $never = new $Never()\nexport const $$never = $constructedBy($Never)\n\n/**\n * @template {{ [key: string|symbol|number]: Schema<any> }} S\n * @typedef {{ [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? Key : never]?: S[Key] extends $Optional<Schema<infer Type>> ? Type : never } & { [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? never : Key]: S[Key] extends Schema<infer Type> ? Type : never }} $ObjectToType\n */\n\n/**\n * @template {{[key:string|symbol|number]: Schema<any>}} S\n * @extends {Schema<$ObjectToType<S>>}\n */\nexport class $Object extends Schema {\n /**\n * @param {S} shape\n * @param {boolean} partial\n */\n constructor (shape, partial = false) {\n super()\n /**\n * @type {S}\n */\n this.shape = shape\n this._isPartial = partial\n }\n\n static _dilutes = true\n\n /**\n * @type {Schema<Partial<$ObjectToType<S>>>}\n */\n get partial () {\n return new $Object(this.shape, true)\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is $ObjectToType<S>}\n */\n check (o, err) {\n if (o == null) {\n /* c8 ignore next */\n err?.extend(null, 'object', 'null')\n return false\n }\n return obj.every(this.shape, (vv, vk) => {\n const c = (this._isPartial && !obj.hasProperty(o, vk)) || vv.check(o[vk], err)\n !c && err?.extend(vk.toString(), vv.toString(), typeof o[vk], 'Object property does not match')\n return c\n })\n }\n}\n\n/**\n * @template S\n * @typedef {Schema<{ [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? Key : never]?: S[Key] extends $Optional<Schema<infer Type>> ? Type : never } & { [Key in keyof S as S[Key] extends $Optional<Schema<any>> ? never : Key]: S[Key] extends Schema<infer Type> ? Type : never }>} _ObjectDefToSchema\n */\n\n// I used an explicit type annotation instead of $ObjectToType, so that the user doesn't see the\n// weird type definitions when inspecting type definions.\n/**\n * @template {{ [key:string|symbol|number]: Schema<any> }} S\n * @param {S} def\n * @return {_ObjectDefToSchema<S> extends Schema<infer S> ? Schema<{ [K in keyof S]: S[K] }> : never}\n */\nexport const $object = def => /** @type {any} */ (new $Object(def))\nexport const $$object = $constructedBy($Object)\n/**\n * @type {Schema<{[key:string]: any}>}\n */\nexport const $objectAny = $custom(o => o != null && (o.constructor === Object || o.constructor == null))\n\n/**\n * @template {Schema<string|number|symbol>} Keys\n * @template {Schema<any>} Values\n * @extends {Schema<{ [key in Unwrap<Keys>]: Unwrap<Values> }>}\n */\nexport class $Record extends Schema {\n /**\n * @param {Keys} keys\n * @param {Values} values\n */\n constructor (keys, values) {\n super()\n this.shape = {\n keys, values\n }\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is { [key in Unwrap<Keys>]: Unwrap<Values> }}\n */\n check (o, err) {\n return o != null && obj.every(o, (vv, vk) => {\n const ck = this.shape.keys.check(vk, err)\n /* c8 ignore next */\n !ck && err?.extend(vk + '', 'Record', typeof o, ck ? 'Key doesn\\'t match schema' : 'Value doesn\\'t match value')\n return ck && this.shape.values.check(vv, err)\n })\n }\n}\n\n/**\n * @template {Schema<string|number|symbol>} Keys\n * @template {Schema<any>} Values\n * @param {Keys} keys\n * @param {Values} values\n * @return {CastToSchema<$Record<Keys,Values>>}\n */\nexport const $record = (keys, values) => new $Record(keys, values)\nexport const $$record = $constructedBy($Record)\n\n/**\n * @template {Schema<any>[]} S\n * @extends {Schema<{ [Key in keyof S]: S[Key] extends Schema<infer Type> ? Type : never }>}\n */\nexport class $Tuple extends Schema {\n /**\n * @param {S} shape\n */\n constructor (shape) {\n super()\n this.shape = shape\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is { [K in keyof S]: S[K] extends Schema<infer Type> ? Type : never }}\n */\n check (o, err) {\n return o != null && obj.every(this.shape, (vv, vk) => {\n const c = /** @type {Schema<any>} */ (vv).check(o[vk], err)\n /* c8 ignore next */\n !c && err?.extend(vk.toString(), 'Tuple', typeof vv)\n return c\n })\n }\n}\n\n/**\n * @template {Array<Schema<any>>} T\n * @param {T} def\n * @return {CastToSchema<$Tuple<T>>}\n */\nexport const $tuple = (...def) => new $Tuple(def)\nexport const $$tuple = $constructedBy($Tuple)\n\n/**\n * @template {Schema<any>} S\n * @extends {Schema<Array<S extends Schema<infer T> ? T : never>>}\n */\nexport class $Array extends Schema {\n /**\n * @param {Array<S>} v\n */\n constructor (v) {\n super()\n /**\n * @type {Schema<S extends Schema<infer T> ? T : never>}\n */\n this.shape = v.length === 1 ? v[0] : new $Union(v)\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is Array<S extends Schema<infer T> ? T : never>} o\n */\n check (o, err) {\n const c = arr.isArray(o) && arr.every(o, oi => this.shape.check(oi))\n /* c8 ignore next */\n !c && err?.extend(null, 'Array', '')\n return c\n }\n}\n\n/**\n * @template {Array<Schema<any>>} T\n * @param {T} def\n * @return {Schema<Array<T extends Array<Schema<infer S>> ? S : never>>}\n */\nexport const $array = (...def) => new $Array(def)\nexport const $$array = $constructedBy($Array)\n/**\n * @type {Schema<Array<any>>}\n */\nexport const $arrayAny = $custom(o => arr.isArray(o))\n\n/**\n * @template T\n * @extends {Schema<T>}\n */\nexport class $InstanceOf extends Schema {\n /**\n * @param {new (...args:any) => T} constructor\n * @param {((o:T) => boolean)|null} check\n */\n constructor (constructor, check) {\n super()\n this.shape = constructor\n this._c = check\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} err\n * @return {o is T}\n */\n check (o, err) {\n const c = o instanceof this.shape && (this._c == null || this._c(o))\n /* c8 ignore next */\n !c && err?.extend(null, this.shape.name, o?.constructor.name)\n return c\n }\n}\n\n/**\n * @template T\n * @param {new (...args:any) => T} c\n * @param {((o:T) => boolean)|null} check\n * @return {Schema<T>}\n */\nexport const $instanceOf = (c, check = null) => new $InstanceOf(c, check)\nexport const $$instanceOf = $constructedBy($InstanceOf)\n\nexport const $$schema = $instanceOf(Schema)\n\n/**\n * @template {Schema<any>[]} Args\n * @typedef {(...args:UnwrapArray<TuplePop<Args>>)=>Unwrap<TupleLast<Args>>} _LArgsToLambdaDef\n */\n\n/**\n * @template {Array<Schema<any>>} Args\n * @extends {Schema<_LArgsToLambdaDef<Args>>}\n */\nexport class $Lambda extends Schema {\n /**\n * @param {Args} args\n */\n constructor (args) {\n super()\n this.len = args.length - 1\n this.args = $tuple(...args.slice(-1))\n this.res = args[this.len]\n }\n\n /**\n * @param {any} f\n * @param {ValidationError} err\n * @return {f is _LArgsToLambdaDef<Args>}\n */\n check (f, err) {\n const c = f.constructor === Function && f.length <= this.len\n /* c8 ignore next */\n !c && err?.extend(null, 'function', typeof f)\n return c\n }\n}\n\n/**\n * @template {Schema<any>[]} Args\n * @param {Args} args\n * @return {Schema<(...args:UnwrapArray<TuplePop<Args>>)=>Unwrap<TupleLast<Args>>>}\n */\nexport const $lambda = (...args) => new $Lambda(args.length > 0 ? args : [$void])\nexport const $$lambda = $constructedBy($Lambda)\n\n/**\n * @type {Schema<Function>}\n */\nexport const $function = $custom(o => typeof o === 'function')\n\n/**\n * @template {Array<Schema<any>>} T\n * @extends {Schema<Intersect<UnwrapArray<T>>>}\n */\nexport class $Intersection extends Schema {\n /**\n * @param {T} v\n */\n constructor (v) {\n super()\n /**\n * @type {T}\n */\n this.shape = v\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is Intersect<UnwrapArray<T>>}\n */\n check (o, err) {\n // @ts-ignore\n const c = arr.every(this.shape, check => check.check(o, err))\n /* c8 ignore next */\n !c && err?.extend(null, 'Intersectinon', typeof o)\n return c\n }\n}\n\n/**\n * @template {Schema<any>[]} T\n * @param {T} def\n * @return {CastToSchema<$Intersection<T>>}\n */\nexport const $intersect = (...def) => new $Intersection(def)\nexport const $$intersect = $constructedBy($Intersection, o => o.shape.length > 0) // Intersection with length=0 is considered \"any\"\n\n/**\n * @template S\n * @extends {Schema<S>}\n */\nexport class $Union extends Schema {\n static _dilutes = true\n\n /**\n * @param {Array<Schema<S>>} v\n */\n constructor (v) {\n super()\n this.shape = v\n }\n\n /**\n * @param {any} o\n * @param {ValidationError} [err]\n * @return {o is S}\n */\n check (o, err) {\n const c = arr.some(this.shape, (vv) => vv.check(o, err))\n err?.extend(null, 'Union', typeof o)\n return c\n }\n}\n\n/**\n * @template {Array<any>} T\n * @param {T} schemas\n * @return {CastToSchema<$Union<Unwrap<ReadSchema<T>>>>}\n */\nexport const $union = (...schemas) => schemas.findIndex($s => $$union.check($s)) >= 0\n ? $union(...schemas.map($s => $($s)).map($s => $$union.check($s) ? $s.shape : [$s]).flat(1))\n : (schemas.length === 1\n ? schemas[0]\n : new $Union(schemas))\nexport const $$union = /** @type {Schema<$Union<any>>} */ ($constructedBy($Union))\n\nconst _t = () => true\n/**\n * @type {Schema<any>}\n */\nexport const $any = $custom(_t)\nexport const $$any = /** @type {Schema<Schema<any>>} */ ($constructedBy($Custom, o => o.shape === _t))\n\n/**\n * @type {Schema<bigint>}\n */\nexport const $bigint = $custom(o => typeof o === 'bigint')\nexport const $$bigint = /** @type {Schema<Schema<BigInt>>} */ ($custom(o => o === $bigint))\n\n/**\n * @type {Schema<symbol>}\n */\nexport const $symbol = $custom(o => typeof o === 'symbol')\nexport const $$symbol = /** @type {Schema<Schema<Symbol>>} */ ($custom(o => o === $symbol))\n\n/**\n * @type {Schema<number>}\n */\nexport const $number = $custom(o => typeof o === 'number')\nexport const $$number = /** @type {Schema<Schema<number>>} */ ($custom(o => o === $number))\n\n/**\n * @type {Schema<string>}\n */\nexport const $string = $custom(o => typeof o === 'string')\nexport const $$string = /** @type {Schema<Schema<string>>} */ ($custom(o => o === $string))\n\n/**\n * @type {Schema<boolean>}\n */\nexport const $boolean = $custom(o => typeof o === 'boolean')\nexport const $$boolean = /** @type {Schema<Schema<Boolean>>} */ ($custom(o => o === $boolean))\n\n/**\n * @type {Schema<undefined>}\n */\nexport const $undefined = $literal(undefined)\nexport const $$undefined = /** @type {Schema<Schema<undefined>>} */ ($constructedBy($Literal, o => o.shape.length === 1 && o.shape[0] === undefined))\n\n/**\n * @type {Schema<void>}\n */\nexport const $void = $literal(undefined)\nexport const $$void = /** @type {Schema<Schema<void>>} */ ($$undefined)\n\nexport const $null = $literal(null)\nexport const $$null = /** @type {Schema<Schema<null>>} */ ($constructedBy($Literal, o => o.shape.length === 1 && o.shape[0] === null))\n\nexport const $uint8Array = $constructedBy(Uint8Array)\nexport const $$uint8Array = /** @type {Schema<Schema<Uint8Array>>} */ ($constructedBy($ConstructedBy, o => o.shape === Uint8Array))\n\n/**\n * @type {Schema<Primitive>}\n */\nexport const $primitive = $union($number, $string, $null, $undefined, $bigint, $boolean, $symbol)\n\n/**\n * @typedef {JSON[]} JSONArray\n */\n/**\n * @typedef {Primitive|JSONArray|{ [key:string]:JSON }} JSON\n */\n/**\n * @type {Schema<null|number|string|boolean|JSON[]|{[key:string]:JSON}>}\n */\nexport const $json = (() => {\n const $jsonArr = /** @type {$Array<$any>} */ ($array($any))\n const $jsonRecord = /** @type {$Record<$string,$any>} */ ($record($string, $any))\n const $json = $union($number, $string, $null, $boolean, $jsonArr, $jsonRecord)\n $jsonArr.shape = $json\n $jsonRecord.shape.values = $json\n return $json\n})()\n\n/**\n * @template {any} IN\n * @typedef {IN extends Schema<any> ? IN\n * : (IN extends string|number|boolean|null ? Schema<IN>\n * : (IN extends new (...args:any[])=>any ? Schema<InstanceType<IN>>\n * : (IN extends any[] ? Schema<{ [K in keyof IN]: Unwrap<ReadSchema<IN[K]>> }[number]>\n * : (IN extends object ? (_ObjectDefToSchema<{[K in keyof IN]:ReadSchema<IN[K]>}> extends Schema<infer S> ? Schema<{ [K in keyof S]: S[K] }> : never)\n * : never)\n * )\n * )\n * )\n * } ReadSchemaOld\n */\n\n/**\n * @template {any} IN\n * @typedef {[Extract<IN,Schema<any>>,Extract<IN,string|number|boolean|null>,Extract<IN,new (...args:any[])=>any>,Extract<IN,any[]>,Extract<Exclude<IN,Schema<any>|string|number|boolean|null|(new (...args:any[])=>any)|any[]>,object>] extends [infer Schemas, infer Primitives, infer Constructors, infer Arrs, infer Obj]\n * ? Schema<\n * (Schemas extends Schema<infer S> ? S : never)\n * | Primitives\n * | (Constructors extends new (...args:any[])=>any ? InstanceType<Constructors> : never)\n * | (Arrs extends any[] ? { [K in keyof Arrs]: Unwrap<ReadSchema<Arrs[K]>> }[number] : never)\n * | (Obj extends object ? Unwrap<(_ObjectDefToSchema<{[K in keyof Obj]:ReadSchema<Obj[K]>}> extends Schema<infer S> ? Schema<{ [K in keyof S]: S[K] }> : never)> : never)>\n * : never\n * } ReadSchema\n */\n\n/**\n * @typedef {ReadSchema<{x:42}|{y:99}|Schema<string>|[1,2,{}]>} Q\n */\n\n/**\n * @template IN\n * @param {IN} o\n * @return {ReadSchema<IN>}\n */\nexport const $ = o => {\n if ($$schema.check(o)) {\n return /** @type {any} */ (o)\n } else if ($objectAny.check(o)) {\n /**\n * @type {any}\n */\n const o2 = {}\n for (const k in o) {\n o2[k] = $(o[k])\n }\n return /** @type {any} */ ($object(o2))\n } else if ($arrayAny.check(o)) {\n return /** @type {any} */ ($union(...o.map($)))\n } else if ($primitive.check(o)) {\n return /** @type {any} */ ($literal(o))\n } else if ($function.check(o)) {\n return /** @type {any} */ ($constructedBy(/** @type {any} */ (o)))\n }\n /* c8 ignore next */\n error.unexpectedCase()\n}\n\n/* c8 ignore start */\n/**\n * Assert that a variable is of this specific type.\n * The assertion check is only performed in non-production environments.\n *\n * @type {<T>(o:any,schema:Schema<T>) => asserts o is T}\n */\nexport const assert = env.production\n ? () => {}\n : (o, schema) => {\n const err = new ValidationError()\n if (!schema.check(o, err)) {\n throw error.create(`Expected value to be of type ${schema.constructor.name}.\\n${err.toString()}`)\n }\n }\n/* c8 ignore end */\n\n/**\n * @template In\n * @template Out\n * @typedef {{ if: Schema<In>, h: (o:In,state?:any)=>Out }} Pattern\n */\n\n/**\n * @template {Pattern<any,any>} P\n * @template In\n * @typedef {ReturnType<Extract<P,Pattern<In extends number ? number : (In extends string ? string : In),any>>['h']>} PatternMatchResult\n */\n\n/**\n * @todo move this to separate library\n * @template {any} [State=undefined]\n * @template {Pattern<any,any>} [Patterns=never]\n */\nexport class PatternMatcher {\n /**\n * @param {Schema<State>} [$state]\n */\n constructor ($state) {\n /**\n * @type {Array<Patterns>}\n */\n this.patterns = []\n this.$state = $state\n }\n\n /**\n * @template P\n * @template R\n * @param {P} pattern\n * @param {(o:NoInfer<Unwrap<ReadSchema<P>>>,s:State)=>R} handler\n * @return {PatternMatcher<State,Patterns|Pattern<Unwrap<ReadSchema<P>>,R>>}\n */\n if (pattern, handler) {\n // @ts-ignore\n this.patterns.push({ if: $(pattern), h: handler })\n // @ts-ignore\n return this\n }\n\n /**\n * @template R\n * @param {(o:any,s:State)=>R} h\n */\n else (h) {\n return this.if($any, h)\n }\n\n /**\n * @return {State extends undefined\n * ? <In extends Unwrap<Patterns['if']>>(o:In,state?:undefined)=>PatternMatchResult<Patterns,In>\n * : <In extends Unwrap<Patterns['if']>>(o:In,state:State)=>PatternMatchResult<Patterns,In>}\n */\n done () {\n // @ts-ignore\n return /** @type {any} */ (o, s) => {\n for (let i = 0; i < this.patterns.length; i++) {\n const p = this.patterns[i]\n if (p.if.check(o)) {\n // @ts-ignore\n return p.h(o, s)\n }\n }\n throw error.create('Unhandled pattern')\n }\n }\n}\n\n/**\n * @template [State=undefined]\n * @param {State} [state]\n * @return {PatternMatcher<State extends undefined ? undefined : Unwrap<ReadSchema<State>>>}\n */\nexport const match = state => new PatternMatcher(/** @type {any} */ (state))\n\n/**\n * Helper function to generate a (non-exhaustive) sample set from a gives schema.\n *\n * @type {<T>(o:T,gen:prng.PRNG)=>T}\n */\nconst _random = /** @type {any} */ (match(/** @type {Schema<prng.PRNG>} */ ($any))\n .if($$number, (_o, gen) => prng.int53(gen, number.MIN_SAFE_INTEGER, number.MAX_SAFE_INTEGER))\n .if($$string, (_o, gen) => prng.word(gen))\n .if($$boolean, (_o, gen) => prng.bool(gen))\n .if($$bigint, (_o, gen) => BigInt(prng.int53(gen, number.MIN_SAFE_INTEGER, number.MAX_SAFE_INTEGER)))\n .if($$union, (o, gen) => random(gen, prng.oneOf(gen, o.shape)))\n .if($$object, (o, gen) => {\n /**\n * @type {any}\n */\n const res = {}\n for (const k in o.shape) {\n let prop = o.shape[k]\n if ($$optional.check(prop)) {\n if (prng.bool(gen)) { continue }\n prop = prop.shape\n }\n res[k] = _random(prop, gen)\n }\n return res\n })\n .if($$array, (o, gen) => {\n const arr = []\n const n = prng.int32(gen, 0, 42)\n for (let i = 0; i < n; i++) {\n arr.push(random(gen, o.shape))\n }\n return arr\n })\n .if($$literal, (o, gen) => {\n return prng.oneOf(gen, o.shape)\n })\n .if($$null, (o, gen) => {\n return null\n })\n .if($$lambda, (o, gen) => {\n const res = random(gen, o.res)\n return () => res\n })\n .if($$any, (o, gen) => random(gen, prng.oneOf(gen, [\n $number, $string, $null, $undefined, $bigint, $boolean,\n $array($number),\n $record($union('a', 'b', 'c'), $number)\n ])))\n .if($$record, (o, gen) => {\n /**\n * @type {any}\n */\n const res = {}\n const keysN = prng.int53(gen, 0, 3)\n for (let i = 0; i < keysN; i++) {\n const key = random(gen, o.shape.keys)\n const val = random(gen, o.shape.values)\n res[key] = val\n }\n return res\n })\n .done())\n\n/**\n * @template S\n * @param {prng.PRNG} gen\n * @param {S} schema\n * @return {Unwrap<ReadSchema<S>>}\n */\nexport const random = (gen, schema) => /** @type {any} */ (_random($(schema), gen))\n"],"names":["string.repeat","equalityTraits.EqualityTraitSymbol","equalityTraits.equals","arr.isArray","arr.every","arr.some","obj.isObject","obj.every","fun.equalityDeep","error.methodUnimplemented","error.unexpectedCase","obj.hasProperty","env.production","error.create","prng.int53","number.MIN_SAFE_INTEGER","number.MAX_SAFE_INTEGER","prng.word","prng.bool","prng.oneOf","prng.int32"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sources":["../../../../../../node_modules/lib0/set.js"],"sourcesContent":["/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set<T>} set\n * @return {Array<T>}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set<T>} set\n * @return {T|undefined}\n */\nexport const first = set => set.values().next().value\n\n/**\n * @template T\n * @param {Iterable<T>} entries\n * @return {Set<T>}\n */\nexport const from = entries => new Set(entries)\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEY,MAAC,MAAM,GAAG,MAAM,IAAI,GAAG;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* eslint-env browser */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Isomorphic variable storage.
|
|
5
|
+
*
|
|
6
|
+
* Uses LocalStorage in the browser and falls back to in-memory storage.
|
|
7
|
+
*
|
|
8
|
+
* @module storage
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/* c8 ignore start */
|
|
12
|
+
class VarStoragePolyfill {
|
|
13
|
+
constructor () {
|
|
14
|
+
this.map = new Map();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param {string} key
|
|
19
|
+
* @param {any} newValue
|
|
20
|
+
*/
|
|
21
|
+
setItem (key, newValue) {
|
|
22
|
+
this.map.set(key, newValue);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @param {string} key
|
|
27
|
+
*/
|
|
28
|
+
getItem (key) {
|
|
29
|
+
return this.map.get(key)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/* c8 ignore stop */
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @type {any}
|
|
36
|
+
*/
|
|
37
|
+
let _localStorage = new VarStoragePolyfill();
|
|
38
|
+
let usePolyfill = true;
|
|
39
|
+
|
|
40
|
+
/* c8 ignore start */
|
|
41
|
+
try {
|
|
42
|
+
// if the same-origin rule is violated, accessing localStorage might thrown an error
|
|
43
|
+
if (typeof localStorage !== 'undefined' && localStorage) {
|
|
44
|
+
_localStorage = localStorage;
|
|
45
|
+
usePolyfill = false;
|
|
46
|
+
}
|
|
47
|
+
} catch (e) { }
|
|
48
|
+
/* c8 ignore stop */
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* This is basically localStorage in browser, or a polyfill in nodejs
|
|
52
|
+
*/
|
|
53
|
+
/* c8 ignore next */
|
|
54
|
+
const varStorage = _localStorage;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.
|
|
58
|
+
*
|
|
59
|
+
* @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler
|
|
60
|
+
* @function
|
|
61
|
+
*/
|
|
62
|
+
/* c8 ignore next */
|
|
63
|
+
const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler));
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* A polyfill for `removeEventListener('storage', event => {..})` that does nothing if the polyfill is being used.
|
|
67
|
+
*
|
|
68
|
+
* @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler
|
|
69
|
+
* @function
|
|
70
|
+
*/
|
|
71
|
+
/* c8 ignore next */
|
|
72
|
+
const offChange = eventHandler => usePolyfill || removeEventListener('storage', /** @type {any} */ (eventHandler));
|
|
73
|
+
|
|
74
|
+
export { offChange, onChange, varStorage };
|
|
75
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sources":["../../../../../../node_modules/lib0/storage.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* c8 ignore start */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n/* c8 ignore stop */\n\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\n/* c8 ignore start */\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n if (typeof localStorage !== 'undefined' && localStorage) {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n/* c8 ignore stop */\n\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\n/* c8 ignore next */\nexport const varStorage = _localStorage\n\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n\n/**\n * A polyfill for `removeEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const offChange = eventHandler => usePolyfill || removeEventListener('storage', /** @type {any} */ (eventHandler))\n"],"names":[],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,kBAAkB,CAAC;AACzB,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG;AACtB,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE;AAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ;AAC9B,EAAE;;AAEF;AACA;AACA;AACA,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG;AAC3B,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,IAAI,aAAa,GAAG,IAAI,kBAAkB;AAC1C,IAAI,WAAW,GAAG;;AAElB;AACA,IAAI;AACJ;AACA,EAAE,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,YAAY,EAAE;AAC3D,IAAI,aAAa,GAAG;AACpB,IAAI,WAAW,GAAG;AAClB,EAAE;AACF,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;AACd;;AAEA;AACA;AACA;AACA;AACY,MAAC,UAAU,GAAG;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,YAAY,IAAI,WAAW,IAAI,gBAAgB,CAAC,SAAS,sBAAsB,YAAY;;AAEnH;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,SAAS,GAAG,YAAY,IAAI,WAAW,IAAI,mBAAmB,CAAC,SAAS,sBAAsB,YAAY;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { unfold } from './array.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Utility module to work with strings.
|
|
5
|
+
*
|
|
6
|
+
* @module string
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const fromCharCode = String.fromCharCode;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @param {string} s
|
|
13
|
+
* @return {string}
|
|
14
|
+
*/
|
|
15
|
+
const toLowerCase = s => s.toLowerCase();
|
|
16
|
+
|
|
17
|
+
const trimLeftRegex = /^\s*/g;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @param {string} s
|
|
21
|
+
* @return {string}
|
|
22
|
+
*/
|
|
23
|
+
const trimLeft = s => s.replace(trimLeftRegex, '');
|
|
24
|
+
|
|
25
|
+
const fromCamelCaseRegex = /([A-Z])/g;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @param {string} s
|
|
29
|
+
* @param {string} separator
|
|
30
|
+
* @return {string}
|
|
31
|
+
*/
|
|
32
|
+
const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`));
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @param {string} str
|
|
36
|
+
* @return {Uint8Array<ArrayBuffer>}
|
|
37
|
+
*/
|
|
38
|
+
const _encodeUtf8Polyfill = str => {
|
|
39
|
+
const encodedString = unescape(encodeURIComponent(str));
|
|
40
|
+
const len = encodedString.length;
|
|
41
|
+
const buf = new Uint8Array(len);
|
|
42
|
+
for (let i = 0; i < len; i++) {
|
|
43
|
+
buf[i] = /** @type {number} */ (encodedString.codePointAt(i));
|
|
44
|
+
}
|
|
45
|
+
return buf
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/* c8 ignore next */
|
|
49
|
+
const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @param {string} str
|
|
53
|
+
* @return {Uint8Array<ArrayBuffer>}
|
|
54
|
+
*/
|
|
55
|
+
const _encodeUtf8Native = str => utf8TextEncoder.encode(str);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @param {string} str
|
|
59
|
+
* @return {Uint8Array}
|
|
60
|
+
*/
|
|
61
|
+
/* c8 ignore next */
|
|
62
|
+
const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill;
|
|
63
|
+
|
|
64
|
+
/* c8 ignore next */
|
|
65
|
+
let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });
|
|
66
|
+
|
|
67
|
+
/* c8 ignore start */
|
|
68
|
+
if (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {
|
|
69
|
+
// Safari doesn't handle BOM correctly.
|
|
70
|
+
// This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.
|
|
71
|
+
// utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and
|
|
72
|
+
// utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call
|
|
73
|
+
// Another issue is that from then on no BOM chars are recognized anymore
|
|
74
|
+
/* c8 ignore next */
|
|
75
|
+
utf8TextDecoder = null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @param {string} source
|
|
80
|
+
* @param {number} n
|
|
81
|
+
*/
|
|
82
|
+
const repeat = (source, n) => unfold(n, () => source).join('');
|
|
83
|
+
|
|
84
|
+
export { _encodeUtf8Native, _encodeUtf8Polyfill, encodeUtf8, fromCamelCase, fromCharCode, repeat, trimLeft, utf8TextDecoder, utf8TextEncoder };
|
|
85
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sources":["../../../../../../node_modules/lib0/string.js"],"sourcesContent":["import * as array from './array.js'\n\n/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * The largest utf16 character.\n * Corresponds to Uint8Array([255, 255]) or charcodeof(2x2^8)\n */\nexport const MAX_UTF16_CHARACTER = fromCharCode(65535)\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array<ArrayBuffer>}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* c8 ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array<ArrayBuffer>}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* c8 ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* c8 ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* c8 ignore start */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* c8 ignore next */\n utf8TextDecoder = null\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* c8 ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n\n/**\n * @param {string} source\n * @param {number} n\n */\nexport const repeat = (source, n) => array.unfold(n, () => source).join('')\n\n/**\n * Escape HTML characters &,<,>,',\" to their respective HTML entities &,<,>,',"\n *\n * @param {string} str\n */\nexport const escapeHTML = str =>\n str.replace(/[&<>'\"]/g, r => /** @type {string} */ ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"'\n }[r]))\n\n/**\n * Reverse of `escapeHTML`\n *\n * @param {string} str\n */\nexport const unescapeHTML = str =>\n str.replace(/&|<|>|'|"/g, r => /** @type {string} */ ({\n '&': '&',\n '<': '<',\n '>': '>',\n ''': \"'\",\n '"': '\"'\n }[r]))\n"],"names":["array.unfold"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;;AAEY,MAAC,YAAY,GAAG,MAAM,CAAC;;AASnC;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW;;AAEtC,MAAM,aAAa,GAAG;;AAEtB;AACA;AACA;AACA;AACY,MAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;;AAExD,MAAM,kBAAkB,GAAG;;AAE3B;AACA;AACA;AACA;AACA;AACY,MAAC,aAAa,GAAG,CAAC,CAAC,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AASnI;AACA;AACA;AACA;AACY,MAAC,mBAAmB,GAAG,GAAG,IAAI;AAC1C,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC;AACxD,EAAE,MAAM,GAAG,GAAG,aAAa,CAAC;AAC5B,EAAE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG;AAChC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAChC,IAAI,GAAG,CAAC,CAAC,CAAC,0BAA0B,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;AAChE,EAAE;AACF,EAAE,OAAO;AACT;;AAEA;AACY,MAAC,eAAe,+BAA+B,OAAO,WAAW,KAAK,WAAW,GAAG,IAAI,WAAW,EAAE,GAAG,IAAI;;AAExH;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG;;AAElE;AACA;AACA;AACA;AACA;AACY,MAAC,UAAU,GAAG,eAAe,GAAG,iBAAiB,GAAG;;AAqBhE;AACU,IAAC,eAAe,GAAG,OAAO,WAAW,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;;AAElI;AACA,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe,GAAG;AACpB;;AAwBA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,KAAKA,MAAY,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol.js","sources":["../../../../../../node_modules/lib0/symbol.js"],"sourcesContent":["/**\n * Utility module to work with EcmaScript Symbols.\n *\n * @module symbol\n */\n\n/**\n * Return fresh symbol.\n */\nexport const create = Symbol\n\n/**\n * @param {any} s\n * @return {boolean}\n */\nexport const isSymbol = s => typeof s === 'symbol'\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACY,MAAC,MAAM,GAAG;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sources":["../../../../../../node_modules/lib0/time.js"],"sourcesContent":["/**\n * Utility module to work with time.\n *\n * @module time\n */\n\nimport * as metric from './metric.js'\nimport * as math from './math.js'\n\n/**\n * Return current time.\n *\n * @return {Date}\n */\nexport const getDate = () => new Date()\n\n/**\n * Return current unix time.\n *\n * @return {number}\n */\nexport const getUnixTime = Date.now\n\n/**\n * Transform time (in ms) to a human readable format. E.g. 1100 => 1.1s. 60s => 1min. .001 => 10μs.\n *\n * @param {number} d duration in milliseconds\n * @return {string} humanized approximation of time\n */\nexport const humanizeDuration = d => {\n if (d < 60000) {\n const p = metric.prefix(d, -1)\n return math.round(p.n * 100) / 100 + p.prefix + 's'\n }\n d = math.floor(d / 1000)\n const seconds = d % 60\n const minutes = math.floor(d / 60) % 60\n const hours = math.floor(d / 3600) % 24\n const days = math.floor(d / 86400)\n if (days > 0) {\n return days + 'd' + ((hours > 0 || minutes > 30) ? ' ' + (minutes > 30 ? hours + 1 : hours) + 'h' : '')\n }\n if (hours > 0) {\n /* c8 ignore next */\n return hours + 'h' + ((minutes > 0 || seconds > 30) ? ' ' + (seconds > 30 ? minutes + 1 : minutes) + 'min' : '')\n }\n return minutes + 'min' + (seconds > 0 ? ' ' + seconds + 's' : '')\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;;;AAYA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,IAAI,CAAC;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const EqualityTraitSymbol = Symbol('Equality');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {{ [EqualityTraitSymbol]:(other:EqualityTrait)=>boolean }} EqualityTrait
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* Utility function to compare any two objects.
|
|
10
|
+
*
|
|
11
|
+
* Note that it is expected that the first parameter is more specific than the latter one.
|
|
12
|
+
*
|
|
13
|
+
* @example js
|
|
14
|
+
* class X { [traits.EqualityTraitSymbol] (other) { return other === this } }
|
|
15
|
+
* class X2 { [traits.EqualityTraitSymbol] (other) { return other === this }, x2 () { return 2 } }
|
|
16
|
+
* // this is fine
|
|
17
|
+
* traits.equals(new X2(), new X())
|
|
18
|
+
* // this is not, because the left type is less specific than the right one
|
|
19
|
+
* traits.equals(new X(), new X2())
|
|
20
|
+
*
|
|
21
|
+
* @template {EqualityTrait} T
|
|
22
|
+
* @param {NoInfer<T>} a
|
|
23
|
+
* @param {T} b
|
|
24
|
+
* @return {boolean}
|
|
25
|
+
*/
|
|
26
|
+
const equals = (a, b) => a === b || !!a?.[EqualityTraitSymbol]?.(b) || false;
|
|
27
|
+
|
|
28
|
+
export { EqualityTraitSymbol, equals };
|
|
29
|
+
//# sourceMappingURL=equality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equality.js","sources":["../../../../../../../node_modules/lib0/trait/equality.js"],"sourcesContent":["export const EqualityTraitSymbol = Symbol('Equality')\n\n/**\n * @typedef {{ [EqualityTraitSymbol]:(other:EqualityTrait)=>boolean }} EqualityTrait\n */\n\n/**\n *\n * Utility function to compare any two objects.\n *\n * Note that it is expected that the first parameter is more specific than the latter one.\n *\n * @example js\n * class X { [traits.EqualityTraitSymbol] (other) { return other === this } }\n * class X2 { [traits.EqualityTraitSymbol] (other) { return other === this }, x2 () { return 2 } }\n * // this is fine\n * traits.equals(new X2(), new X())\n * // this is not, because the left type is less specific than the right one\n * traits.equals(new X(), new X2())\n *\n * @template {EqualityTrait} T\n * @param {NoInfer<T>} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equals = (a, b) => a === b || !!a?.[EqualityTraitSymbol]?.(b) || false\n"],"names":[],"mappings":"AAAY,MAAC,mBAAmB,GAAG,MAAM,CAAC,UAAU;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { map } from './object.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Utility module to work with urls.
|
|
5
|
+
*
|
|
6
|
+
* @module url
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @param {Object<string,string>} params
|
|
12
|
+
* @return {string}
|
|
13
|
+
*/
|
|
14
|
+
const encodeQueryParams = params =>
|
|
15
|
+
map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&');
|
|
16
|
+
|
|
17
|
+
export { encodeQueryParams };
|
|
18
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sources":["../../../../../../node_modules/lib0/url.js"],"sourcesContent":["/**\n * Utility module to work with urls.\n *\n * @module url\n */\n\nimport * as object from './object.js'\n\n/**\n * Parse query parameters from an url.\n *\n * @param {string} url\n * @return {Object<string,string>}\n */\nexport const decodeQueryParams = url => {\n /**\n * @type {Object<string,string>}\n */\n const query = {}\n const urlQuerySplit = url.split('?')\n const pairs = urlQuerySplit[urlQuerySplit.length - 1].split('&')\n for (let i = 0; i < pairs.length; i++) {\n const item = pairs[i]\n if (item.length > 0) {\n const pair = item.split('=')\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '')\n }\n }\n return query\n}\n\n/**\n * @param {Object<string,string>} params\n * @return {string}\n */\nexport const encodeQueryParams = params =>\n object.map(params, (val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&')\n"],"names":["object.map"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;;AA2BA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,MAAM;AACvC,EAAEA,GAAU,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webcrypto.js","sources":["../../../../../../node_modules/lib0/webcrypto.js"],"sourcesContent":["/* eslint-env browser */\n\nexport const subtle = crypto.subtle\nexport const getRandomValues = crypto.getRandomValues.bind(crypto)\n"],"names":[],"mappings":"AAAA;;AAGY,MAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { readVarUint, readVarString } from '../lib0/decoding.js';
|
|
2
|
+
|
|
3
|
+
const messagePermissionDenied = 0;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @callback PermissionDeniedHandler
|
|
7
|
+
* @param {any} y
|
|
8
|
+
* @param {string} reason
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param {decoding.Decoder} decoder
|
|
14
|
+
* @param {Y.Doc} y
|
|
15
|
+
* @param {PermissionDeniedHandler} permissionDeniedHandler
|
|
16
|
+
*/
|
|
17
|
+
const readAuthMessage = (decoder, y, permissionDeniedHandler) => {
|
|
18
|
+
switch (readVarUint(decoder)) {
|
|
19
|
+
case messagePermissionDenied: permissionDeniedHandler(y, readVarString(decoder));
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { messagePermissionDenied, readAuthMessage };
|
|
24
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../../../../../node_modules/y-protocols/auth.js"],"sourcesContent":["\nimport * as Y from 'yjs' // eslint-disable-line\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\n\nexport const messagePermissionDenied = 0\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {string} reason\n */\nexport const writePermissionDenied = (encoder, reason) => {\n encoding.writeVarUint(encoder, messagePermissionDenied)\n encoding.writeVarString(encoder, reason)\n}\n\n/**\n * @callback PermissionDeniedHandler\n * @param {any} y\n * @param {string} reason\n */\n\n/**\n *\n * @param {decoding.Decoder} decoder\n * @param {Y.Doc} y\n * @param {PermissionDeniedHandler} permissionDeniedHandler\n */\nexport const readAuthMessage = (decoder, y, permissionDeniedHandler) => {\n switch (decoding.readVarUint(decoder)) {\n case messagePermissionDenied: permissionDeniedHandler(y, decoding.readVarString(decoder))\n }\n}\n"],"names":["decoding.readVarUint","decoding.readVarString"],"mappings":";;AAKY,MAAC,uBAAuB,GAAG;;AAWvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,uBAAuB,KAAK;AACxE,EAAE,QAAQA,WAAoB,CAAC,OAAO,CAAC;AACvC,IAAI,KAAK,uBAAuB,EAAE,uBAAuB,CAAC,CAAC,EAAEC,aAAsB,CAAC,OAAO,CAAC;AAC5F;AACA;;;;","x_google_ignoreList":[0]}
|