lib0 0.2.115-3 → 0.2.115-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/coverage/tmp/coverage-42121-1764767245409-0.json +1 -0
- package/coverage/tmp/{coverage-32703-1763495370274-0.json → coverage-42122-1764767192180-0.json} +1 -1
- package/delta/binding.d.ts +11 -9
- package/delta/binding.d.ts.map +1 -1
- package/delta/binding.js +5 -2
- package/delta/binding.test.d.ts.map +1 -1
- package/delta/delta-pitch.test.d.ts +5 -0
- package/delta/delta-pitch.test.d.ts.map +1 -0
- package/delta/{d2.d.ts → delta.d.ts} +117 -34
- package/delta/delta.d.ts.map +1 -0
- package/delta/{d2.js → delta.js} +247 -55
- package/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
- package/delta/delta.test.d.ts.map +1 -0
- package/delta/t3.test.d.ts +1 -1
- package/delta/t3.test.d.ts.map +1 -1
- package/dist/array.cjs +17 -60
- package/dist/array.cjs.map +1 -1
- package/dist/binding.cjs +114 -28
- package/dist/binding.cjs.map +1 -1
- package/dist/{broadcastchannel-d0c108a2.cjs → broadcastchannel-94897809.cjs} +2 -2
- package/dist/{broadcastchannel-d0c108a2.cjs.map → broadcastchannel-94897809.cjs.map} +1 -1
- package/dist/broadcastchannel.cjs +6 -6
- package/dist/{buffer-7f6fa8fa.cjs → buffer-8d110bf4.cjs} +2 -2
- package/dist/{buffer-7f6fa8fa.cjs.map → buffer-8d110bf4.cjs.map} +1 -1
- package/dist/buffer.cjs +5 -5
- package/dist/cache.cjs +3 -3
- package/dist/component.cjs +12 -8
- package/dist/component.cjs.map +1 -1
- package/dist/delta/binding.d.ts +11 -9
- package/dist/delta/binding.d.ts.map +1 -1
- package/dist/delta/binding.test.d.ts.map +1 -1
- package/dist/delta/delta-pitch.test.d.ts +5 -0
- package/dist/delta/delta-pitch.test.d.ts.map +1 -0
- package/dist/delta/{d2.d.ts → delta.d.ts} +117 -34
- package/dist/delta/delta.d.ts.map +1 -0
- package/dist/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
- package/dist/delta/delta.test.d.ts.map +1 -0
- package/dist/delta/t3.test.d.ts +1 -1
- package/dist/delta/t3.test.d.ts.map +1 -1
- package/dist/{d2.cjs → delta.cjs} +256 -60
- package/dist/delta.cjs.map +1 -0
- package/dist/{diff-1832cb43.cjs → diff-dc7bdc65.cjs} +2 -2
- package/dist/{diff-1832cb43.cjs.map → diff-dc7bdc65.cjs.map} +1 -1
- package/dist/diff.cjs +4 -4
- package/dist/{dom-f5047a64.cjs → dom-cad267af.cjs} +1 -1
- package/dist/{dom-f5047a64.cjs.map → dom-cad267af.cjs.map} +1 -1
- package/dist/dom.cjs +12 -5
- package/dist/dom.cjs.map +1 -1
- package/dist/{environment-90227ead.cjs → environment-98bcf64f.cjs} +2 -2
- package/dist/{environment-90227ead.cjs.map → environment-98bcf64f.cjs.map} +1 -1
- package/dist/environment.cjs +4 -4
- package/dist/equality.cjs +34 -0
- package/dist/equality.cjs.map +1 -0
- package/dist/fingerprint.cjs +44 -0
- package/dist/fingerprint.cjs.map +1 -0
- package/dist/{function-e7d18feb.cjs → function-b4e49016.cjs} +6 -6
- package/dist/function-b4e49016.cjs.map +1 -0
- package/dist/function.cjs +3 -3
- package/dist/index.cjs +9 -9
- package/dist/indexeddbV2.cjs +2 -2
- package/dist/jwt.cjs +5 -5
- package/dist/list.cjs +18 -5
- package/dist/list.cjs.map +1 -1
- package/dist/list.d.ts +9 -2
- package/dist/list.d.ts.map +1 -1
- package/dist/list.test.d.ts.map +1 -1
- package/dist/logging.cjs +11 -5
- package/dist/logging.cjs.map +1 -1
- package/dist/logging.common.cjs +4 -4
- package/dist/logging.node.cjs +4 -4
- package/dist/map.cjs +7 -314
- package/dist/map.cjs.map +1 -1
- package/dist/{object-18980796.cjs → object-dec41ef9.cjs} +3 -3
- package/dist/object-dec41ef9.cjs.map +1 -0
- package/dist/object.cjs +2 -2
- package/dist/object.d.ts.map +1 -1
- package/dist/performance.node.cjs +3 -3
- package/dist/pledge.cjs +2 -2
- package/dist/{prng-99204216.cjs → prng-aa81e812.cjs} +2 -2
- package/dist/{prng-99204216.cjs.map → prng-aa81e812.cjs.map} +1 -1
- package/dist/prng.cjs +6 -6
- package/dist/rabin-gf2-polynomial.cjs +5 -5
- package/dist/rabin-uncached.cjs +5 -5
- package/dist/rabin.cjs +5 -5
- package/dist/schema.cjs +202 -22
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.ts +86 -29
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.test.d.ts +4 -0
- package/dist/schema.test.d.ts.map +1 -1
- package/dist/testing.cjs +9 -9
- package/dist/testing.cjs.map +1 -1
- package/dist/{traits.d.ts → trait/equality.d.ts} +1 -1
- package/dist/trait/equality.d.ts.map +1 -0
- package/dist/trait/fingerprint.d.ts +13 -0
- package/dist/trait/fingerprint.d.ts.map +1 -0
- package/dist/trait/traits.d.ts +3 -0
- package/dist/trait/traits.d.ts.map +1 -0
- package/dist/trait/traits.test.d.ts +5 -0
- package/dist/trait/traits.test.d.ts.map +1 -0
- package/dist/traits.cjs +23 -26
- package/dist/traits.cjs.map +1 -1
- package/dist/url.cjs +2 -2
- package/function.js +4 -4
- package/list.d.ts +9 -2
- package/list.d.ts.map +1 -1
- package/list.js +17 -3
- package/list.test.d.ts.map +1 -1
- package/object.d.ts.map +1 -1
- package/object.js +2 -2
- package/package.json +8 -10
- package/schema.d.ts +86 -29
- package/schema.d.ts.map +1 -1
- package/schema.js +191 -20
- package/schema.test.d.ts +4 -0
- package/schema.test.d.ts.map +1 -1
- package/test.html +2 -4
- package/test.js +7 -13
- package/testing.js +3 -3
- package/{traits.d.ts → trait/equality.d.ts} +1 -1
- package/trait/equality.d.ts.map +1 -0
- package/trait/fingerprint.d.ts +13 -0
- package/trait/fingerprint.d.ts.map +1 -0
- package/trait/fingerprint.js +21 -0
- package/trait/traits.d.ts +3 -0
- package/trait/traits.d.ts.map +1 -0
- package/trait/traits.js +2 -0
- package/trait/traits.test.d.ts +5 -0
- package/{traits.test.d.ts.map → trait/traits.test.d.ts.map} +1 -1
- package/delta/abstract-array.d.ts +0 -166
- package/delta/abstract-array.d.ts.map +0 -1
- package/delta/abstract-array.js +0 -421
- package/delta/abstract.d.ts +0 -69
- package/delta/abstract.d.ts.map +0 -1
- package/delta/abstract.js +0 -102
- package/delta/array.d.ts +0 -23
- package/delta/array.d.ts.map +0 -1
- package/delta/array.js +0 -45
- package/delta/array.test.d.ts +0 -2
- package/delta/array.test.d.ts.map +0 -1
- package/delta/d2.d.ts.map +0 -1
- package/delta/d2.test.d.ts.map +0 -1
- package/delta/index.d.ts +0 -14
- package/delta/index.d.ts.map +0 -1
- package/delta/index.js +0 -79
- package/delta/map.d.ts +0 -226
- package/delta/map.d.ts.map +0 -1
- package/delta/map.js +0 -304
- package/delta/node.d.ts +0 -117
- package/delta/node.d.ts.map +0 -1
- package/delta/node.js +0 -183
- package/delta/node.test.d.ts +0 -4
- package/delta/node.test.d.ts.map +0 -1
- package/delta/ops.d.ts +0 -464
- package/delta/ops.d.ts.map +0 -1
- package/delta/ops.js +0 -544
- package/delta/t2.d.ts +0 -184
- package/delta/t2.d.ts.map +0 -1
- package/delta/t2.js +0 -890
- package/delta/text.d.ts +0 -43
- package/delta/text.d.ts.map +0 -1
- package/delta/text.js +0 -54
- package/delta/text.test.d.ts +0 -6
- package/delta/text.test.d.ts.map +0 -1
- package/delta/transformer.d.ts +0 -164
- package/delta/transformer.d.ts.map +0 -1
- package/delta/transformer.js +0 -888
- package/delta/transformer.test.d.ts +0 -13
- package/delta/transformer.test.d.ts.map +0 -1
- package/delta/value.d.ts +0 -84
- package/delta/value.d.ts.map +0 -1
- package/delta/value.js +0 -168
- package/dist/abstract-array.cjs +0 -433
- package/dist/abstract-array.cjs.map +0 -1
- package/dist/abstract.cjs +0 -122
- package/dist/abstract.cjs.map +0 -1
- package/dist/array2.cjs +0 -26
- package/dist/array2.cjs.map +0 -1
- package/dist/d2.cjs.map +0 -1
- package/dist/delta/abstract-array.d.ts +0 -166
- package/dist/delta/abstract-array.d.ts.map +0 -1
- package/dist/delta/abstract.d.ts +0 -69
- package/dist/delta/abstract.d.ts.map +0 -1
- package/dist/delta/array.d.ts +0 -23
- package/dist/delta/array.d.ts.map +0 -1
- package/dist/delta/array.test.d.ts +0 -2
- package/dist/delta/array.test.d.ts.map +0 -1
- package/dist/delta/d2.d.ts.map +0 -1
- package/dist/delta/d2.test.d.ts.map +0 -1
- package/dist/delta/index.d.ts +0 -14
- package/dist/delta/index.d.ts.map +0 -1
- package/dist/delta/map.d.ts +0 -226
- package/dist/delta/map.d.ts.map +0 -1
- package/dist/delta/node.d.ts +0 -117
- package/dist/delta/node.d.ts.map +0 -1
- package/dist/delta/node.test.d.ts +0 -4
- package/dist/delta/node.test.d.ts.map +0 -1
- package/dist/delta/ops.d.ts +0 -464
- package/dist/delta/ops.d.ts.map +0 -1
- package/dist/delta/t2.d.ts +0 -184
- package/dist/delta/t2.d.ts.map +0 -1
- package/dist/delta/text.d.ts +0 -43
- package/dist/delta/text.d.ts.map +0 -1
- package/dist/delta/text.test.d.ts +0 -6
- package/dist/delta/text.test.d.ts.map +0 -1
- package/dist/delta/transformer.d.ts +0 -164
- package/dist/delta/transformer.d.ts.map +0 -1
- package/dist/delta/transformer.test.d.ts +0 -13
- package/dist/delta/transformer.test.d.ts.map +0 -1
- package/dist/delta/value.d.ts +0 -84
- package/dist/delta/value.d.ts.map +0 -1
- package/dist/function-e7d18feb.cjs.map +0 -1
- package/dist/index2.cjs +0 -71
- package/dist/index2.cjs.map +0 -1
- package/dist/map2.cjs +0 -15
- package/dist/map2.cjs.map +0 -1
- package/dist/node.cjs +0 -206
- package/dist/node.cjs.map +0 -1
- package/dist/object-18980796.cjs.map +0 -1
- package/dist/ops.cjs +0 -575
- package/dist/ops.cjs.map +0 -1
- package/dist/t2.cjs +0 -932
- package/dist/t2.cjs.map +0 -1
- package/dist/text.cjs +0 -79
- package/dist/text.cjs.map +0 -1
- package/dist/traits.d.ts.map +0 -1
- package/dist/traits.test.d.ts +0 -4
- package/dist/traits.test.d.ts.map +0 -1
- package/dist/transformer.cjs +0 -930
- package/dist/transformer.cjs.map +0 -1
- package/dist/value.cjs +0 -187
- package/dist/value.cjs.map +0 -1
- package/traits.d.ts.map +0 -1
- package/traits.test.d.ts +0 -4
- /package/{traits.js → trait/equality.js} +0 -0
package/dist/transformer.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.cjs","sources":["../delta/transformer.js"],"sourcesContent":["import * as error from '../error.js'\nimport * as delta from './index.js'\nimport * as s from '../schema.js'\n\n/**\n * Creates a transformer template after receiving schema for DeltaA.\n *\n * @template {delta.AbstractDelta} DeltaA\n * @typedef {<DA extends DeltaA> ($deltaA: s.Schema<DA>) => Template<any,DA,any>} TransformerFactory\n */\n\n/**\n * @template {TransformerFactory<any>} T\n * @template {delta.AbstractDelta} DeltaA\n * @typedef {T extends (($deltaA: s.Schema<DeltaA>) => Template<any,DeltaA,infer DeltaB>) ? DeltaB : never } DeltaBFromTransformerFactory\n */\n\n/**\n * @template {s.Unwrap<delta.$delta>|null} [DeltaA=s.Unwrap<delta.$delta>|null]\n * @template {s.Unwrap<delta.$delta>|null} [DeltaB=s.Unwrap<delta.$delta>|null]\n * @typedef {{ a: DeltaA, b: DeltaB }} TransformResult\n */\n\n/**\n * @template {s.Unwrap<delta.$delta>|null} DeltaA\n * @template {s.Unwrap<delta.$delta>|null} DeltaB\n * @param {DeltaA} a\n * @param {DeltaB} b\n * @return {TransformResult<DeltaA,DeltaB>}\n */\nexport const transformResult = (a, b) => ({ a, b })\nexport const transformResultEmpty = transformResult(null, null)\n\n/**\n * @template {any} State\n * @template {s.Unwrap<delta.$delta>} DeltaA\n * @template {s.Unwrap<delta.$delta>} DeltaB\n * @typedef {object} TransformerDef\n * @property {s.Schema<DeltaA>} TransformerDef.$in\n * @property {s.Schema<DeltaB>} TransformerDef.$out\n * @property {function (this: Template<State,DeltaA,DeltaB>): State} TransformerDef.state\n * @property {(deltaIn:NoInfer<DeltaA>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyA\n * @property {(deltaOut:NoInfer<DeltaB>,s:NoInfer<State>) => TransformResult<NoInfer<DeltaA>?,NoInfer<DeltaB>?>} TransformerDef.applyB\n */\n\n/**\n * A Delta Transformer ensures that it keeps two sources A and B in-sync, even if they use a\n * different update format.\n *\n * @template {any} State\n * @template {s.Unwrap<typeof delta.$delta>} DeltaA\n * @template {s.Unwrap<typeof delta.$delta>} DeltaB\n */\nexport class Transformer {\n /**\n * @param {Template<State,DeltaA,DeltaB>} t\n * @param {State} s\n */\n constructor (t, s) {\n this.t = t\n this._state = s\n /**\n * Pending a op, for internal use only\n * @type {DeltaA?}\n */\n this._pa = null\n /**\n * Pending a op, for internal use only\n * @type {DeltaB?}\n */\n this._pb = null\n /**\n * Whether this transformer value has been initially consumebd by the parent transformer.\n */\n this._init = false\n /**\n * @type {Transformer<any,any,any>?}\n */\n this.parent = null\n }\n\n /**\n * @param {DeltaA} deltaA\n * @return {TransformResult<DeltaA?,DeltaB?>}\n */\n applyA (deltaA) {\n return this.t._applyA(deltaA, this._state)\n }\n\n /**\n * @param {DeltaB} deltaB\n * @return {TransformResult<DeltaA?,DeltaB?>}\n */\n applyB (deltaB) {\n return this.t._applyB(deltaB, this._state)\n }\n}\n\n/**\n * @param {Array<Transformer<any,delta.AbstractDelta,delta.AbstractDelta>>} trs\n * @param {TransformResult} output\n * @return {boolean}\n */\nconst _forwardPipe = (trs, output) => {\n let again = false\n for (let i = 0; i < trs.length; i++) {\n const tr = trs[i]\n if (tr._pa === null) continue\n const { a, b } = tr.applyA(tr._pa)\n tr._pa = null\n if (a !== null) {\n if (i === 0) {\n output.a = delta.mergeDeltas(output.a, a)\n } else {\n // need to interate back to integrate the produced backwards-change\n again = true\n trs[i - 1]._pb = a\n }\n }\n if (b !== null) {\n if (i === trs.length - 1) {\n output.b = delta.mergeDeltas(output.b, b)\n } else {\n trs[i + 1]._pa = b\n }\n }\n }\n return again\n}\n\n/**\n * @param {Array<Transformer<any,delta.AbstractDelta,delta.AbstractDelta>>} trs\n * @param {TransformResult} output\n * @return {boolean}\n */\nconst _backwardPipe = (trs, output) => {\n let again = false\n for (let i = trs.length - 1; i >= 0; i--) {\n const tr = trs[i]\n if (tr._pb === null) continue\n const { a, b } = tr.applyA(tr._pb)\n tr._pb = null\n if (a !== null) {\n if (i === 0) {\n output.a = delta.mergeDeltas(output.a, a)\n } else {\n // need to interate back to integrate the produced backwards-change\n trs[i - 1]._pb = a\n }\n }\n if (b !== null) {\n if (i === trs.length - 1) {\n output.b = delta.mergeDeltas(output.b, b)\n } else {\n // need to interate back to integrate the produced backwards-change\n again = true\n trs[i + 1]._pa = a\n }\n }\n }\n return again\n}\n\n/**\n * @template State\n * @template {s.Unwrap<typeof delta.$delta>} DeltaA\n * @template {s.Unwrap<typeof delta.$delta>} DeltaB\n */\nexport class Template {\n /**\n * @param {TransformerDef<State,DeltaA,DeltaB>} def\n */\n constructor ({ $in, $out, state, applyA, applyB }) {\n /**\n * @type {s.Schema<DeltaA>}\n */\n this.$in = $in\n /**\n * @type {s.Schema<DeltaB>}\n */\n this.$out = $out\n /**\n * @type {() => State}\n */\n this._state = state\n /**\n * @type {typeof applyA}\n */\n this._applyA = applyA\n /**\n * @type {typeof applyB}\n */\n this._applyB = applyB\n /**\n * Cache for stateless transformers.\n *\n * @type {Transformer<State,DeltaA,DeltaB>?}\n */\n this._tr = null\n }\n\n /**\n * @template {delta.AbstractDelta} R\n * @param {($d: s.Schema<DeltaB>) => Template<any,DeltaB,R>} t\n * @return {Template<any,DeltaA,R>}\n */\n pipe (t) {\n /**\n * @type {TransformerPipeTemplate<any,any>}\n */\n const tpipe = new TransformerPipeTemplate()\n tpipe.templates.push(this, t(this.$out))\n return tpipe\n }\n\n init () {\n if (this._tr != null) return this._tr\n // reuse stateless transformers\n const s = this._state()\n if (s === null) {\n return (this._tr = new Transformer(this, s))\n }\n return new Transformer(this, s)\n }\n}\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n * @param {s.Schema<DeltaA>} $deltaA\n * @param {s.Schema<DeltaB>} $deltaB\n * @return {s.Schema<Template<any,DeltaA,DeltaB>>}\n */\nexport const $template = ($deltaA, $deltaB) => /** @type {s.Schema<Template<any,any,any>>} */ (s.$instanceOf(Template, o => o.$in.extends($deltaA) && o.$out.extends($deltaB)))\nexport const $templateAny = /** @type {s.Schema<Template<any,any,any>>} */ (s.$instanceOf(Template))\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n * @typedef {Template<any,DeltaA,DeltaB>|(\n * DeltaB extends delta.Map<infer MKV>\n * ? (MKV|DeltaB)\n * : (DeltaB extends delta.Array<infer MArr> ? (MArr|DeltaB) : DeltaB))\n * } MaybeFixedTemplate\n */\n\n/**\n * @template X\n * @typedef {X extends Template<any,any,infer D> ? (D extends delta.Value<infer V> ? V : D) : X} UnwrapTemplateForArray\n */\n\n/**\n * @template {any} MaybeFixed\n * @typedef {MaybeFixed extends Template<any,any,any>\n * ? MaybeFixed\n * : Template<any,any,\n * MaybeFixed extends delta.AbstractDelta\n * ? MaybeFixed\n * : (MaybeFixed extends Array<any>\n * ? delta.Array<UnwrapTemplateForArray<MaybeFixed[number]>>\n * : (MaybeFixed extends {[key:string]:any} ? delta.Map<MaybeFixed> : never))\n * >\n * } MaybeFixedTemplateToTemplate\n */\n\n/**\n * @template MaybeFixed\n * @param {MaybeFixed} maybeFixed\n * @return {MaybeFixed extends Template<any,any,delta.Delta> ? (Extract<MaybeFixed,Template<any,any,any>>) : Template<any,any,MaybeFixed extends delta.Delta ? Extract<MaybeFixed,delta.Delta> : delta.Array<MaybeFixed[keyof MaybeFixed]>>}\n */\nexport const maybeFixedToTemplate = maybeFixed => $templateAny.check(maybeFixed)\n ? /** @type {any} */ (maybeFixed)\n : (delta.$delta.check(maybeFixed)\n ? /** @type {any} */ (fixed(maybeFixed))\n : (s.$arrayAny.check(maybeFixed)\n ? /** @type {any} */ (fixed(delta.array().insert(maybeFixed).done()))\n : (s.$objectAny.check(maybeFixed) ? /** @type {any} */ (fixed(delta.map().setMany(maybeFixed).done())) : error.unexpectedCase())\n )\n )\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {Template<any,DeltaA,any>} Tr\n * @param {s.Schema<DeltaA>} _$deltaA\n * @param {Tr} transformer\n * @return {<DA extends DeltaA>($d:s.Schema<DA>) => Tr extends Template<any,any,infer DeltaB> ? Template<any,DA,DeltaB> : never}\n */\nexport const transformStatic = (_$deltaA, transformer) => () => /** @type {any} */ (transformer)\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {<DA extends DeltaA> ($deltaA: s.Schema<DA>) => Template<any,DA,any>} TF\n * @param {s.Schema<DeltaA>} _$deltaA\n * @param {TF} transformerFactory\n * @return {TF}\n */\nexport const transform = (_$deltaA, transformerFactory) => transformerFactory\n\n/**\n * @type {TransformerDef<any,any,any>}\n */\nconst pipeTemplateDef = {\n $in: s.$any,\n $out: s.$any,\n state: function () { return /** @type {TransformerPipeTemplate<any,any>} */ (/** @type {unknown} */ (this)).templates.map(t => t.init()) },\n applyA: (dchange, trs) => {\n const output = transformResult(null, null)\n let again = true\n trs[0]._pa = dchange\n while (again) {\n // apply forwards\n again = _forwardPipe(trs, output)\n // iterate back\n if (again) {\n again = _backwardPipe(trs, output)\n }\n }\n return output\n },\n applyB: (dchange, trs) => {\n const output = transformResult(null, null)\n let again = true\n trs[trs.length - 1]._pb = dchange\n while (again) {\n // iterate back\n again = _backwardPipe(trs, output)\n // apply forwards\n if (again) {\n again = _forwardPipe(trs, output)\n }\n }\n return output\n }\n}\n\n/**\n * @todo just have something like \"previousTemplate\" to implement pipe. This can be assembled when\n * init the template.\n * @template {s.Unwrap<typeof delta.$delta>} DeltaA\n * @template {s.Unwrap<typeof delta.$delta>} DeltaB\n * @extends {Template<any,DeltaA,DeltaB>}\n */\nclass TransformerPipeTemplate extends Template {\n constructor () {\n super(pipeTemplateDef)\n /**\n * @type {Array<Template<any,DeltaA,DeltaB>>}\n */\n this.templates = []\n }\n\n /**\n * @template {delta.AbstractDelta} R\n * @param {($d: s.Schema<DeltaB>) => Template<any,DeltaB,R>} t\n * @return {Template<any,DeltaA,R>}\n */\n pipe (t) {\n /**\n * @type {TransformerPipeTemplate<any,any>}\n */\n const tpipe = new TransformerPipeTemplate()\n tpipe.templates = this.templates.slice()\n tpipe.templates.push(t(this.$out))\n return /** @type {any} */ (tpipe)\n }\n}\n\n/**\n * @template {delta.AbstractDelta} DeltaA\n * @template {delta.AbstractDelta} DeltaB\n * @template {delta.AbstractDelta} DeltaC\n * @param {($s: s.Schema<DeltaA>) => Template<any,DeltaA,DeltaB>} t1\n * @param {($s: s.Schema<DeltaB>) => Template<any,DeltaB,DeltaC>} t2\n * @return {($d: s.Schema<DeltaA>) => Template<any,DeltaA,DeltaC>}\n */\nexport const pipe = (t1, t2) => ($d) => {\n /**\n * @type {TransformerPipeTemplate<any,any>}\n */\n const tpipe = new TransformerPipeTemplate()\n const t1t = t1($d)\n tpipe.templates.push(t1t, t2(t1t.$out))\n return tpipe\n}\n\n/**\n * @template {any} State\n * @template {s.Unwrap<typeof delta.$delta>} DeltaIn\n * @template {s.Unwrap<typeof delta.$delta>} DeltaOut\n * @param {TransformerDef<State,DeltaIn,DeltaOut>} def\n * @return {Template<State,DeltaIn,DeltaOut>}\n */\nexport const template = def => new Template(/** @type {any} */ (def))\n\n/**\n * @template FixedContent\n * @param {FixedContent} fixedContent\n * @return {Template<any,any,FixedContent extends delta.AbstractDelta ? FixedContent : delta.Value<FixedContent>>}\n */\nexport const fixed = fixedContent => {\n const staticDelta = delta.$delta.check(fixedContent) ? fixedContent : delta.value().set(fixedContent).done()\n return template({\n $in: s.$any,\n $out: s.$any,\n state: () => ({ e: false }),\n applyA: (_d, s) => {\n if (!s.e) {\n s.e = true\n return transformResult(null, staticDelta)\n }\n return transformResultEmpty\n },\n applyB: () => {\n // @todo should reverse the change and give back\n error.unexpectedCase()\n }\n })\n}\n\n/**\n * @template MaybeTemplate\n * @typedef {[MaybeTemplate] extends [Template<any,any,any>] ? MaybeTemplate : Template<any,any,\n * [MaybeTemplate] extends [delta.AbstractDelta] ? MaybeTemplate : delta.Value<MaybeTemplate>\n * >} AnyToTemplate\n */\n\n/**\n * @template {{ [key: string]: any }} MaybeTemplateMap\n * @typedef {{ [K in keyof MaybeTemplateMap]: AnyToTemplate<MaybeTemplateMap[K]> }} AnyMapToTemplate\n */\n\n/**\n * @template {Array<any>} MaybeTemplateArray\n * @typedef {{ [K in keyof MaybeTemplateArray]: AnyToTemplate<MaybeTemplateArray[K]> }} AnyArrayToTemplate\n */\n\n/**\n * @template {{ [key:string]: any }} T\n * @typedef {Template<\n * any,\n * AnyMapToTemplate<T>[keyof T] extends Template<any, infer DeltaA,any> ? DeltaA : never,\n * delta.Map<{ [K in keyof T]: AnyToTemplate<T[K]> extends Template<any, any, infer DeltaB>\n * ? (DeltaB extends delta.Value<infer V> ? V : DeltaB) : AnyToTemplate<T[K]> }>\n * >} MapDefToTemplate\n */\n\n/**\n * @template {{ [key:string]: any }} T\n * @param {T} definition\n * @return {MapDefToTemplate<T> extends Template<any,infer A,infer B> ? Template<any,A,B> : never}\n */\nexport const map = (definition) => {\n /**\n * @type {{ [key:string]: Template<any,any,any> }}\n */\n const def = {}\n for (const key in definition) {\n const d = definition[key]\n def[key] = $templateAny.check(d) ? d : fixed(d)\n }\n return template({\n $in: s.$any,\n $out: s.$any,\n state: () => {\n const mapState = /** @type {{ [key: string]: Transformer<any,any,any> }} */ ({})\n for (const key in def) {\n mapState[key] = def[key].init()\n }\n return /** @type {{ [key in keyof T]: T extends Template<any,infer SDIn, infer SDOut> ? Transformer<any, SDIn, SDOut>: never }} */ (mapState)\n },\n applyA: (d, state) => {\n return _applyMapOpHelper(state, [{ d, src: null }])\n },\n applyB: (d, state) => {\n s.assert(d, delta.$mapAny)\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n const reverseAChanges = []\n d.forEach(op => {\n if (delta.$deleteOp.check(op)) {\n error.unexpectedCase()\n }\n const src = state[op.key]\n // src expects a delta value\n const res = src.applyB(delta.$modifyOp.check(op) ? delta.value().modify(op.value) : delta.value().set(op.value))\n src._pa = res.a\n src._pb = res.b\n if (res.a != null) {\n reverseAChanges.push({ d: res.a, src })\n }\n })\n return _applyMapOpHelper(state, reverseAChanges)\n }\n })\n}\n\n/**\n * @param {{ [key: string]: Transformer<any, any, any> }} state\n * @param {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>} reverseAChanges\n * @return {TransformResult<delta.AbstractDelta?,delta.Map<any>?>}\n */\nconst _applyMapOpHelper = (state, reverseAChanges) => {\n /**\n * @type {TransformResult<delta.AbstractDelta?,delta.Map<any>?>}\n */\n const applyResult = transformResult(null, null)\n while (reverseAChanges.length > 0) {\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n let nextReverseAChanges = []\n for (const key in state) {\n const s = state[key]\n let transformPriority = false // false until own is found\n for (let i = 0; i < reverseAChanges.length; i++) {\n // changes are applied in reverseAChanges order.\n // rebase against all concurrent (the op stored on transformer), then apply\n const r = reverseAChanges[i]\n if (r.src === s) {\n transformPriority = true // own has less priority, concurrent is applied with higher prio\n continue // don't apply own\n }\n let rd = r.d\n if (s._pa != null) {\n rd = rd.clone()\n rd.rebase(s._pa, transformPriority)\n }\n const res = s.applyA(rd)\n s._pa = res.a\n s._pb = delta.mergeDeltas(s._pb, res.b)\n if (res.a != null) {\n nextReverseAChanges.push({ d: res.a, src: s })\n }\n }\n }\n // merge changes for output\n for (let i = 0; i < reverseAChanges.length; i++) {\n const rc = reverseAChanges[i]\n if (rc.src != null) { // don't apply received deltas\n applyResult.a = delta.mergeDeltas(applyResult.a, rc.d)\n }\n }\n reverseAChanges = nextReverseAChanges\n nextReverseAChanges = []\n }\n // accumulate b changes stored on transformers\n const bRes = delta.map()\n for (const key in state) {\n const s = state[key]\n if (s._pb) {\n if (s._init) {\n bRes.modify(key, s._pb)\n } else {\n s._init = true\n bRes.set(key, s._pb)\n }\n }\n }\n if (bRes._changes.size > 0) {\n // opt values (iff delta is of type DeltaValue, map the change to the map)\n bRes._changes.forEach((change, key) => {\n if (delta.$valueAny.check(change.value)) {\n const changeOp = change.value.change\n if (delta.$insertOp.check(changeOp) || delta.$modifyOp.check(changeOp)) {\n bRes.set(key, changeOp.value)\n } else if (delta.$deleteOp.check(changeOp)) {\n bRes.delete(key)\n } else {\n error.unexpectedCase()\n }\n }\n })\n applyResult.b = bRes\n }\n return applyResult\n}\n\n/**\n * @todo This is similar to dt.map. Consider the similarities and try to merge them.\n *\n * @template {Array<any>} T\n * @param {T} definition\n * @return {Template<\n * any,\n * AnyArrayToTemplate<T>[number] extends Template<any, infer DeltaA, any> ? DeltaA : never,\n * delta.Array<AnyArrayToTemplate<T>[number] extends Template<any, any, infer DeltaB> ? delta.ValueUnwrap<DeltaB> : never>\n * >}\n */\nexport const array = (definition) => {\n /**\n * @type {Array<Template<any,any,any>>}\n */\n const def = []\n for (let i = 0; i < definition.length; i++) {\n const d = definition[i]\n def[i] = $templateAny.check(d) ? d : fixed(d)\n }\n return /** @type {any} */ (template({\n $in: s.$any,\n $out: delta.$arrayAny,\n state: () => {\n const arrState = /** @type {Transformer<any,any,any>[]} */ ([])\n for (let i = 0; i < def.length; i++) {\n arrState[i] = def[i].init()\n }\n return /** @type {(T extends Template<any,infer SDIn, infer SDOut> ? Transformer<any, SDIn, SDOut>: never)[]} */ (arrState)\n },\n applyA: (d, state) => {\n return _applyArrayOpHelper(state, [{ d, src: null }])\n },\n applyB: (d, state) => {\n s.assert(d, delta.$arrayAny)\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n const reverseAChanges = []\n d.forEach((op, index) => {\n if (delta.$deleteOp.check(op) || delta.$insertOp.check(op)) {\n error.unexpectedCase()\n } else if (delta.$modifyOp.check(op)) {\n const src = state[index]\n const res = src.applyB(op.modify)\n src._pa = res.a\n src._pb = res.b\n if (res.a != null) {\n reverseAChanges.push({ d: res.a, src })\n }\n }\n })\n return _applyArrayOpHelper(state, reverseAChanges)\n }\n }))\n}\n\n/**\n * @param {Transformer<any, any, any>[]} state\n * @param {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>} reverseAChanges\n * @return {TransformResult<delta.AbstractDelta?,delta.Array<any>?>}\n */\nconst _applyArrayOpHelper = (state, reverseAChanges) => {\n /**\n * @type {TransformResult<delta.AbstractDelta?,delta.Array<any>?>}\n */\n const applyResult = transformResult(null, null)\n while (reverseAChanges.length > 0) {\n /**\n * @type {Array<{ d: delta.AbstractDelta, src: Transformer<any,any,any>? }>}\n */\n let nextReverseAChanges = []\n for (let i = 0; i < state.length; i++) {\n const s = state[i]\n let transformPriority = false // false until own is found\n for (let i = 0; i < reverseAChanges.length; i++) {\n // changes are applied in reverseAChanges order.\n // rebase against all concurrent (the op stored on transformer), then apply\n const r = reverseAChanges[i]\n if (r.src === s) {\n transformPriority = true // own has less priority, concurrent is applied with higher prio\n continue // don't apply own\n }\n let rd = r.d\n if (s._pa != null) {\n rd = rd.clone()\n rd.rebase(s._pa, transformPriority)\n }\n const res = s.applyA(rd)\n s._pa = res.a\n s._pb = delta.mergeDeltas(s._pb, res.b)\n if (res.a != null) {\n nextReverseAChanges.push({ d: res.a, src: s })\n }\n }\n }\n // merge changes for output\n for (let i = 0; i < nextReverseAChanges.length; i++) {\n applyResult.a = delta.mergeDeltas(applyResult.a, nextReverseAChanges[i].d)\n }\n reverseAChanges = nextReverseAChanges\n nextReverseAChanges = []\n }\n // accumulate b changes stored on transformers\n const bRes = delta.array()\n let performedChange = false\n for (let i = 0; i < state.length; i++) {\n const s = state[i]\n let spb = s._pb\n if (spb) {\n if (delta.$valueAny.check(spb)) {\n spb = spb.get()\n }\n if (s._init) {\n bRes.modify(spb)\n } else {\n s._init = true\n bRes.insert([spb])\n }\n performedChange = true\n } else {\n bRes.retain(1)\n }\n }\n if (performedChange) {\n applyResult.b = bRes.done()\n }\n return applyResult\n}\n\n/**\n * @param {TransformResult<delta.AbstractDelta?, delta.Node<any,any,any>>} res\n * @param {{ attrs: Transformer<any,any,any>, children: Transformer<any,any,any> }} state\n * @param {delta.AbstractDelta?} nextAAttrs apply this in reverse!\n * @param {delta.AbstractDelta?} nextAChildren\n */\nconst _nodeApplyA = (res, state, nextAAttrs, nextAChildren) => {\n while (nextAAttrs != null || nextAChildren != null) {\n const resChildren = nextAChildren && state.children.applyA(nextAChildren)\n const resAttrs = (nextAAttrs || resChildren?.a) ? state.attrs.applyA(delta.mergeDeltas(nextAAttrs, resChildren?.a)) : null\n nextAChildren = resAttrs?.a\n nextAAttrs = null\n res.a = delta.mergeDeltas(delta.mergeDeltas(res.a, resChildren?.a), resAttrs?.a)\n resChildren?.b && res.b.children.apply(resChildren.b)\n resAttrs?.b && res.b.attributes.apply(resAttrs.b)\n }\n}\n\n/**\n * @template {{ [key:string]: any } | Template<any,any,delta.Map<any>>} T\n * @typedef {T extends Template<any,any,any> ? T : MapDefToTemplate<T>} MapOrMapDefToTemplate\n */\n\n/**\n * @template {string} NodeName\n * @template {{ [key:string]:any } | Template<any,any,delta.Map<{[key:string]:any}>>} Attrs - accepts map or map definition\n * @template {Template<any,any,delta.Array<any,any>> | Array<any>} Children\n * @param {NodeName} name\n * @param {Attrs} attributes\n * @param {Children} children\n * @return {Template<\n * any,\n * MapOrMapDefToTemplate<Attrs> extends Template<any, infer A, any> ? A : never,\n * delta.Node<\n * NodeName,\n * MapOrMapDefToTemplate<Attrs> extends Template<any,any,delta.Map<infer M>> ? M : never,\n * MaybeFixedTemplateToTemplate<Children> extends Template<any,any,delta.Array<infer BChildren,any>> ? BChildren : never,\n * any\n * >\n * >}\n */\nexport const node = (name, attributes, children) => {\n const attrs = /** @type {Template<any,any,delta.Map<any>>} */ ($templateAny.check(attributes) ? attributes : map(attributes))\n const childs = /** @type {Template<any,any,delta.Array<any>>} */ (maybeFixedToTemplate(children))\n // @todo this should be properly inferred\n return /** @type {any} */ (template({\n $in: s.$any,\n $out: delta.$node(s.$literal(name), s.$any, s.$any),\n state: () => ({\n attrs: attrs.init(),\n children: childs.init()\n }),\n applyA: (d, state) => {\n const res = transformResult(null, /** @type {delta.Node<NodeName,any,any,any>} */ (delta.node(name)))\n _nodeApplyA(res, state, d, d)\n return res\n },\n applyB: (d, state) => {\n s.assert(d, delta.$nodeAny)\n const res = transformResult(null, /** @type {delta.Node<NodeName,any,any,any>} */ (delta.node(name)))\n const childrenRes = d.children.ops.length === 0 ? transformResultEmpty : state.children.applyB(/** @type {delta.Array<any,any>} */(d.children))\n const attrsRes = d.attributes._changes.size === 0 ? transformResultEmpty : state.attrs.applyB(d.attributes)\n attrsRes.b && res.b.attributes.apply(attrsRes.b)\n childrenRes.b && res.b.children.apply(/** @type {delta.Array<any,false>} */ (childrenRes.b))\n res.a = delta.mergeDeltas(attrsRes.a, childrenRes.a)\n _nodeApplyA(res, state, childrenRes.a, attrsRes.a)\n return res\n }\n }))\n}\n\n/**\n * @template {{[k:string]:any}} KV\n * @typedef {delta.Map<KV> | delta.Node<any,KV,any,any>} _FollowPath\n */\n\n/**\n * @template {any} D\n * @template {string[]} Path\n * @typedef {Path extends []\n * ? D\n * : Path extends [infer P, ...infer PRest]\n * ? (\n * P extends string ? (D extends _AttrDeltaType<{ [K in P]: infer V }> ? QueryFollowPath<V,PRest extends string[] ? PRest : never> : never) : never\n * )\n * : never\n * } QueryFollowPath\n */\n\n/**\n * @template {{[k:string]:any}} Attrs\n * @typedef {delta.Map<Partial<Attrs>> | delta.Node<any,Partial<Attrs>,any,any>} _AttrDeltaType\n */\n\n/**\n * @template {Array<string>} Path\n * @typedef {Path extends [infer P, ...infer PRest] ? (_AttrDeltaType<{ [K in (P extends string ? P : any)]: PathToDelta<PRest extends Array<string> ? PRest : any> }>) : any} PathToDelta\n */\n\n/**\n * @template {Array<string>} Path\n * @param {Path} path\n * @return {<DA extends PathToDelta<Path>>($in: s.Schema<DA>) => Template<any, DA, delta.Value<QueryFollowPath<DA,Path>>>}\n */\nexport const query = (...path) => transformStatic(s.$any, template({\n $in: delta.$delta,\n $out: delta.$valueAny,\n state: () => null,\n applyA: d => {\n d = delta.$nodeAny.check(d) ? d.attributes : d\n let cd = /** @type {delta.Map<any>?} */ (delta.$mapAny.cast(d))\n let overwritten = false\n for (let i = 0; i < path.length && cd != null; i++) {\n if (delta.$mapAny.check(cd)) {\n const c = cd.get(path[i])\n if (delta.$insertOp.check(c)) {\n overwritten = true\n cd = c.value\n } else if (delta.$deleteOp.check(c)) {\n overwritten = true\n cd = null\n break\n } else if (delta.$modifyOp.check(c)) {\n cd = c.value\n }\n } else {\n cd = null\n }\n }\n const dv = delta.value()\n if (overwritten) {\n // @todo implement some kind of \"ValueDelta\" with insert, delete, modify ops. dmap is supposed\n // to automatically translate this.\n if (cd == null) {\n dv.delete()\n } else {\n dv.set(cd)\n }\n } else {\n dv.modify(cd)\n }\n return transformResult(null, dv)\n },\n applyB: (d) => {\n const dop = d.change\n let resD = delta.map()\n let i = path.length - 1\n const p = path[i]\n if (delta.$modifyOp.check(dop)) {\n resD.modify(p, dop.value)\n } else if (delta.$insertOp.check(dop)) {\n resD.set(p, dop.value)\n } else if (delta.$deleteOp.check(dop)) {\n resD.delete(p)\n }\n for (i--; i >= 0; i--) {\n const tmpDmap = delta.map()\n tmpDmap.modify(p, resD)\n resD = tmpDmap\n }\n return /** @type {TransformResult<any,null>} */ (transformResult(resD, null))\n }\n}))\n\n/**\n * @template {delta.AbstractDelta} Delta\n * @param {s.Schema<Delta>} $in\n * @return {Template<null,Delta,Delta>}\n */\nexport const id = $in => template({\n $in,\n $out: $in,\n state: () => null,\n applyA: d => {\n return transformResult(null, d)\n },\n applyB: d => {\n return transformResult(d, null)\n }\n})\n"],"names":["delta.mergeDeltas","s.$instanceOf","delta.$delta","s.$arrayAny","delta.array","s.$objectAny","delta.map","error.unexpectedCase","s.$any","delta.value","s.assert","delta.$mapAny","delta.$deleteOp","delta.$modifyOp","delta.$valueAny","delta.$insertOp","delta.$arrayAny","delta.$node","s.$literal","delta.node","delta.$nodeAny"],"mappings":"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"}
|
package/dist/value.cjs
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _function = require('./function-e7d18feb.cjs');
|
|
6
|
-
var traits = require('./traits.cjs');
|
|
7
|
-
var schema = require('./schema.cjs');
|
|
8
|
-
var ops = require('./ops.cjs');
|
|
9
|
-
var abstract = require('./abstract.cjs');
|
|
10
|
-
require('./array-78849c95.cjs');
|
|
11
|
-
require('./set-5b47859e.cjs');
|
|
12
|
-
require('./object-18980796.cjs');
|
|
13
|
-
require('./error-0c1f634f.cjs');
|
|
14
|
-
require('./environment-90227ead.cjs');
|
|
15
|
-
require('./map-24d263c0.cjs');
|
|
16
|
-
require('./string-fddc5f8b.cjs');
|
|
17
|
-
require('./conditions-f5c0c102.cjs');
|
|
18
|
-
require('./storage.cjs');
|
|
19
|
-
require('./list.cjs');
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @template {any} Vals
|
|
23
|
-
* @typedef {Vals extends AbstractDelta ? ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>|ops.MapModifyOp<Extract<Vals,AbstractDelta>,''> : ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>} ValueOpsFromValues
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @template Vals
|
|
28
|
-
* @extends {AbstractDelta}
|
|
29
|
-
*/
|
|
30
|
-
class DeltaValue extends abstract.AbstractDelta {
|
|
31
|
-
/**
|
|
32
|
-
* @param {s.Schema<Vals>} $vals
|
|
33
|
-
*/
|
|
34
|
-
constructor ($vals) {
|
|
35
|
-
super();
|
|
36
|
-
this.$vals = $vals;
|
|
37
|
-
/**
|
|
38
|
-
* @type {ValueOpsFromValues<Vals>?}
|
|
39
|
-
*/
|
|
40
|
-
this.change = null;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
get () {
|
|
44
|
-
return ops.$insertOp.check(this.change) ? this.change.value : undefined
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @param {DeltaValue<Vals>} other
|
|
49
|
-
* @return {boolean}
|
|
50
|
-
*/
|
|
51
|
-
equals (other) {
|
|
52
|
-
return this[traits.EqualityTraitSymbol](other)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @param {DeltaValue<Vals>} other
|
|
57
|
-
*/
|
|
58
|
-
[traits.EqualityTraitSymbol] (other) {
|
|
59
|
-
return _function.equalityDeep(this.change, other.change)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* @template Vals
|
|
65
|
-
* @extends DeltaValue<Vals>
|
|
66
|
-
*/
|
|
67
|
-
class DeltaValueBuilder extends DeltaValue {
|
|
68
|
-
/**
|
|
69
|
-
* @param {Extract<Vals, AbstractDelta>} delta
|
|
70
|
-
*/
|
|
71
|
-
modify (delta) {
|
|
72
|
-
this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapModifyOp('', delta));
|
|
73
|
-
return this
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* @param {Vals} newVal
|
|
78
|
-
* @param {Vals|undefined} prevValue
|
|
79
|
-
* @param {import('./abstract.js').Attribution?} attribution
|
|
80
|
-
*/
|
|
81
|
-
set (newVal, prevValue = undefined, attribution = null) {
|
|
82
|
-
this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapInsertOp('', this.$vals.cast(newVal), prevValue && this.$vals.cast(prevValue), attribution));
|
|
83
|
-
return this
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @param {Vals|undefined} prevValue
|
|
88
|
-
* @param {import('./abstract.js').Attribution?} attribution
|
|
89
|
-
*/
|
|
90
|
-
delete (prevValue = undefined, attribution = null) {
|
|
91
|
-
this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapDeleteOp('', prevValue && this.$vals.cast(prevValue), attribution));
|
|
92
|
-
return this
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
*
|
|
97
|
-
* - insert vs delete ⇒ insert takes precedence
|
|
98
|
-
* - insert vs modify ⇒ insert takes precedence
|
|
99
|
-
* - insert vs insert ⇒ priority decides
|
|
100
|
-
* - delete vs modify ⇒ delete takes precedence
|
|
101
|
-
* - delete vs delete ⇒ current delete op is removed because item has already been deleted
|
|
102
|
-
* - modify vs modify ⇒ rebase using priority
|
|
103
|
-
*
|
|
104
|
-
* @param {DeltaValueBuilder<Vals>} other
|
|
105
|
-
* @param {boolean} priority
|
|
106
|
-
*/
|
|
107
|
-
rebase (other, priority) {
|
|
108
|
-
const c = this.change;
|
|
109
|
-
if (ops.$insertOp.check(c)) {
|
|
110
|
-
if (other.change?.constructor === ops.MapInsertOp && !priority) {
|
|
111
|
-
this.change = null;
|
|
112
|
-
}
|
|
113
|
-
} else if (ops.$deleteOp.check(c)) {
|
|
114
|
-
const otherOp = other.change;
|
|
115
|
-
if (otherOp?.constructor === ops.MapInsertOp) {
|
|
116
|
-
this.change = null;
|
|
117
|
-
}
|
|
118
|
-
} else if (ops.$modifyOp.check(c)) {
|
|
119
|
-
const otherOp = other.change;
|
|
120
|
-
if (otherOp == null) ; else if (otherOp.constructor === ops.MapModifyOp) {
|
|
121
|
-
c.value.rebase(otherOp.value, priority);
|
|
122
|
-
} else {
|
|
123
|
-
this.change = null;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* @param {DeltaValue<Vals>} other
|
|
130
|
-
*/
|
|
131
|
-
apply (other) {
|
|
132
|
-
const oop = other.change;
|
|
133
|
-
const c = this.change;
|
|
134
|
-
if (ops.$modifyOp.check(oop)) {
|
|
135
|
-
if (c != null && (ops.$modifyOp.check(c) || ops.$insertOp.check(c)) && $valueAny.check(c.value)) {
|
|
136
|
-
/** @type {DeltaValue<any>} */ (c.value).apply(oop.value);
|
|
137
|
-
} else {
|
|
138
|
-
// then this is a simple modify
|
|
139
|
-
this.change = oop;
|
|
140
|
-
}
|
|
141
|
-
} else if (oop != null) {
|
|
142
|
-
oop.prevValue = c?.value;
|
|
143
|
-
this.change = oop;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* @return {this}
|
|
149
|
-
*/
|
|
150
|
-
clone () {
|
|
151
|
-
const d = /** @type {this} */ (new DeltaValueBuilder(this.$vals));
|
|
152
|
-
d.change = /** @type {ValueOpsFromValues<Vals>} */ (this.change?.clone());
|
|
153
|
-
d.origin = this.origin;
|
|
154
|
-
d.isDiff = this.isDiff;
|
|
155
|
-
return d
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
done () {
|
|
159
|
-
return /** @type {DeltaValue<Vals>} */ (this)
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* @template [Vals=any]
|
|
165
|
-
* @param {s.Schema<Vals>} $vals
|
|
166
|
-
* @return {DeltaValueBuilder<Vals>}
|
|
167
|
-
*/
|
|
168
|
-
const value = ($vals = schema.$any) => /** @type {any} */ (new DeltaValueBuilder($vals));
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* @template {any} Vals
|
|
172
|
-
* @param {s.Schema<Vals>} $vals
|
|
173
|
-
* @return {s.Schema<DeltaValue<Vals>>}
|
|
174
|
-
*/
|
|
175
|
-
const $value = $vals => /** @type {any} */ (schema.$instanceOf(DeltaValue, o => $vals.extends(o.$vals)));
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* @type {s.Schema<DeltaValue<any>>}
|
|
179
|
-
*/
|
|
180
|
-
const $valueAny = schema.$instanceOf(DeltaValue);
|
|
181
|
-
|
|
182
|
-
exports.$value = $value;
|
|
183
|
-
exports.$valueAny = $valueAny;
|
|
184
|
-
exports.DeltaValue = DeltaValue;
|
|
185
|
-
exports.DeltaValueBuilder = DeltaValueBuilder;
|
|
186
|
-
exports.value = value;
|
|
187
|
-
//# sourceMappingURL=value.cjs.map
|
package/dist/value.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value.cjs","sources":["../delta/value.js"],"sourcesContent":["import * as fun from '../function.js'\nimport * as traits from '../traits.js'\nimport * as s from '../schema.js'\nimport * as ops from './ops.js'\nimport { AbstractDelta } from './abstract.js'\n\n/**\n * @template {any} Vals\n * @typedef {Vals extends AbstractDelta ? ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>|ops.MapModifyOp<Extract<Vals,AbstractDelta>,''> : ops.MapInsertOp<Vals,''>|ops.MapDeleteOp<Vals,''>} ValueOpsFromValues\n */\n\n/**\n * @template Vals\n * @extends {AbstractDelta}\n */\nexport class DeltaValue extends AbstractDelta {\n /**\n * @param {s.Schema<Vals>} $vals\n */\n constructor ($vals) {\n super()\n this.$vals = $vals\n /**\n * @type {ValueOpsFromValues<Vals>?}\n */\n this.change = null\n }\n\n get () {\n return ops.$insertOp.check(this.change) ? this.change.value : undefined\n }\n\n /**\n * @param {DeltaValue<Vals>} other\n * @return {boolean}\n */\n equals (other) {\n return this[traits.EqualityTraitSymbol](other)\n }\n\n /**\n * @param {DeltaValue<Vals>} other\n */\n [traits.EqualityTraitSymbol] (other) {\n return fun.equalityDeep(this.change, other.change)\n }\n}\n\n/**\n * @template Vals\n * @extends DeltaValue<Vals>\n */\nexport class DeltaValueBuilder extends DeltaValue {\n /**\n * @param {Extract<Vals, AbstractDelta>} delta\n */\n modify (delta) {\n this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapModifyOp('', delta))\n return this\n }\n\n /**\n * @param {Vals} newVal\n * @param {Vals|undefined} prevValue\n * @param {import('./abstract.js').Attribution?} attribution\n */\n set (newVal, prevValue = undefined, attribution = null) {\n this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapInsertOp('', this.$vals.cast(newVal), prevValue && this.$vals.cast(prevValue), attribution))\n return this\n }\n\n /**\n * @param {Vals|undefined} prevValue\n * @param {import('./abstract.js').Attribution?} attribution\n */\n delete (prevValue = undefined, attribution = null) {\n this.change = /** @type {ValueOpsFromValues<Vals>} */ (new ops.MapDeleteOp('', prevValue && this.$vals.cast(prevValue), attribution))\n return this\n }\n\n /**\n *\n * - insert vs delete ⇒ insert takes precedence\n * - insert vs modify ⇒ insert takes precedence\n * - insert vs insert ⇒ priority decides\n * - delete vs modify ⇒ delete takes precedence\n * - delete vs delete ⇒ current delete op is removed because item has already been deleted\n * - modify vs modify ⇒ rebase using priority\n *\n * @param {DeltaValueBuilder<Vals>} other\n * @param {boolean} priority\n */\n rebase (other, priority) {\n const c = this.change\n if (ops.$insertOp.check(c)) {\n if (other.change?.constructor === ops.MapInsertOp && !priority) {\n this.change = null\n }\n } else if (ops.$deleteOp.check(c)) {\n const otherOp = other.change\n if (otherOp?.constructor === ops.MapInsertOp) {\n this.change = null\n }\n } else if (ops.$modifyOp.check(c)) {\n const otherOp = other.change\n if (otherOp == null) {\n // nop\n } else if (otherOp.constructor === ops.MapModifyOp) {\n c.value.rebase(otherOp.value, priority)\n } else {\n this.change = null\n }\n }\n }\n\n /**\n * @param {DeltaValue<Vals>} other\n */\n apply (other) {\n const oop = other.change\n const c = this.change\n if (ops.$modifyOp.check(oop)) {\n if (c != null && (ops.$modifyOp.check(c) || ops.$insertOp.check(c)) && $valueAny.check(c.value)) {\n /** @type {DeltaValue<any>} */ (c.value).apply(oop.value)\n } else {\n // then this is a simple modify\n this.change = oop\n }\n } else if (oop != null) {\n oop.prevValue = c?.value\n this.change = oop\n }\n }\n\n /**\n * @return {this}\n */\n clone () {\n const d = /** @type {this} */ (new DeltaValueBuilder(this.$vals))\n d.change = /** @type {ValueOpsFromValues<Vals>} */ (this.change?.clone())\n d.origin = this.origin\n d.isDiff = this.isDiff\n return d\n }\n\n done () {\n return /** @type {DeltaValue<Vals>} */ (this)\n }\n}\n\n/**\n * @template [Vals=any]\n * @param {s.Schema<Vals>} $vals\n * @return {DeltaValueBuilder<Vals>}\n */\nexport const value = ($vals = s.$any) => /** @type {any} */ (new DeltaValueBuilder($vals))\n\n/**\n * @template {any} Vals\n * @param {s.Schema<Vals>} $vals\n * @return {s.Schema<DeltaValue<Vals>>}\n */\nexport const $value = $vals => /** @type {any} */ (s.$instanceOf(DeltaValue, o => $vals.extends(o.$vals)))\n\n/**\n * @type {s.Schema<DeltaValue<any>>}\n */\nexport const $valueAny = s.$instanceOf(DeltaValue)\n"],"names":["AbstractDelta","ops.$insertOp","traits.EqualityTraitSymbol","fun.equalityDeep","ops.MapModifyOp","ops.MapInsertOp","ops.MapDeleteOp","ops.$deleteOp","ops.$modifyOp","s.$any","s.$instanceOf"],"mappings":"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"}
|
package/traits.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traits.d.ts","sourceRoot":"","sources":["traits.js"],"names":[],"mappings":"AAAA,gDAAqD;AAyB9C,uBALsB,CAAC,SAAhB,aAAc,KACjB,OAAO,CAAC,CAAC,CAAC,KACV,CAAC,GACA,OAAO,CAE4D;4BAtBlE;IAAE,CAAC,mBAAmB,CAAC,EAAC,CAAC,KAAK,EAAC,aAAa,KAAG,OAAO,CAAA;CAAE"}
|
package/traits.test.d.ts
DELETED
|
File without changes
|