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.
Files changed (235) hide show
  1. package/coverage/tmp/coverage-42121-1764767245409-0.json +1 -0
  2. package/coverage/tmp/{coverage-32703-1763495370274-0.json → coverage-42122-1764767192180-0.json} +1 -1
  3. package/delta/binding.d.ts +11 -9
  4. package/delta/binding.d.ts.map +1 -1
  5. package/delta/binding.js +5 -2
  6. package/delta/binding.test.d.ts.map +1 -1
  7. package/delta/delta-pitch.test.d.ts +5 -0
  8. package/delta/delta-pitch.test.d.ts.map +1 -0
  9. package/delta/{d2.d.ts → delta.d.ts} +117 -34
  10. package/delta/delta.d.ts.map +1 -0
  11. package/delta/{d2.js → delta.js} +247 -55
  12. package/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
  13. package/delta/delta.test.d.ts.map +1 -0
  14. package/delta/t3.test.d.ts +1 -1
  15. package/delta/t3.test.d.ts.map +1 -1
  16. package/dist/array.cjs +17 -60
  17. package/dist/array.cjs.map +1 -1
  18. package/dist/binding.cjs +114 -28
  19. package/dist/binding.cjs.map +1 -1
  20. package/dist/{broadcastchannel-d0c108a2.cjs → broadcastchannel-94897809.cjs} +2 -2
  21. package/dist/{broadcastchannel-d0c108a2.cjs.map → broadcastchannel-94897809.cjs.map} +1 -1
  22. package/dist/broadcastchannel.cjs +6 -6
  23. package/dist/{buffer-7f6fa8fa.cjs → buffer-8d110bf4.cjs} +2 -2
  24. package/dist/{buffer-7f6fa8fa.cjs.map → buffer-8d110bf4.cjs.map} +1 -1
  25. package/dist/buffer.cjs +5 -5
  26. package/dist/cache.cjs +3 -3
  27. package/dist/component.cjs +12 -8
  28. package/dist/component.cjs.map +1 -1
  29. package/dist/delta/binding.d.ts +11 -9
  30. package/dist/delta/binding.d.ts.map +1 -1
  31. package/dist/delta/binding.test.d.ts.map +1 -1
  32. package/dist/delta/delta-pitch.test.d.ts +5 -0
  33. package/dist/delta/delta-pitch.test.d.ts.map +1 -0
  34. package/dist/delta/{d2.d.ts → delta.d.ts} +117 -34
  35. package/dist/delta/delta.d.ts.map +1 -0
  36. package/dist/delta/{d2.test.d.ts → delta.test.d.ts} +6 -1
  37. package/dist/delta/delta.test.d.ts.map +1 -0
  38. package/dist/delta/t3.test.d.ts +1 -1
  39. package/dist/delta/t3.test.d.ts.map +1 -1
  40. package/dist/{d2.cjs → delta.cjs} +256 -60
  41. package/dist/delta.cjs.map +1 -0
  42. package/dist/{diff-1832cb43.cjs → diff-dc7bdc65.cjs} +2 -2
  43. package/dist/{diff-1832cb43.cjs.map → diff-dc7bdc65.cjs.map} +1 -1
  44. package/dist/diff.cjs +4 -4
  45. package/dist/{dom-f5047a64.cjs → dom-cad267af.cjs} +1 -1
  46. package/dist/{dom-f5047a64.cjs.map → dom-cad267af.cjs.map} +1 -1
  47. package/dist/dom.cjs +12 -5
  48. package/dist/dom.cjs.map +1 -1
  49. package/dist/{environment-90227ead.cjs → environment-98bcf64f.cjs} +2 -2
  50. package/dist/{environment-90227ead.cjs.map → environment-98bcf64f.cjs.map} +1 -1
  51. package/dist/environment.cjs +4 -4
  52. package/dist/equality.cjs +34 -0
  53. package/dist/equality.cjs.map +1 -0
  54. package/dist/fingerprint.cjs +44 -0
  55. package/dist/fingerprint.cjs.map +1 -0
  56. package/dist/{function-e7d18feb.cjs → function-b4e49016.cjs} +6 -6
  57. package/dist/function-b4e49016.cjs.map +1 -0
  58. package/dist/function.cjs +3 -3
  59. package/dist/index.cjs +9 -9
  60. package/dist/indexeddbV2.cjs +2 -2
  61. package/dist/jwt.cjs +5 -5
  62. package/dist/list.cjs +18 -5
  63. package/dist/list.cjs.map +1 -1
  64. package/dist/list.d.ts +9 -2
  65. package/dist/list.d.ts.map +1 -1
  66. package/dist/list.test.d.ts.map +1 -1
  67. package/dist/logging.cjs +11 -5
  68. package/dist/logging.cjs.map +1 -1
  69. package/dist/logging.common.cjs +4 -4
  70. package/dist/logging.node.cjs +4 -4
  71. package/dist/map.cjs +7 -314
  72. package/dist/map.cjs.map +1 -1
  73. package/dist/{object-18980796.cjs → object-dec41ef9.cjs} +3 -3
  74. package/dist/object-dec41ef9.cjs.map +1 -0
  75. package/dist/object.cjs +2 -2
  76. package/dist/object.d.ts.map +1 -1
  77. package/dist/performance.node.cjs +3 -3
  78. package/dist/pledge.cjs +2 -2
  79. package/dist/{prng-99204216.cjs → prng-aa81e812.cjs} +2 -2
  80. package/dist/{prng-99204216.cjs.map → prng-aa81e812.cjs.map} +1 -1
  81. package/dist/prng.cjs +6 -6
  82. package/dist/rabin-gf2-polynomial.cjs +5 -5
  83. package/dist/rabin-uncached.cjs +5 -5
  84. package/dist/rabin.cjs +5 -5
  85. package/dist/schema.cjs +202 -22
  86. package/dist/schema.cjs.map +1 -1
  87. package/dist/schema.d.ts +86 -29
  88. package/dist/schema.d.ts.map +1 -1
  89. package/dist/schema.test.d.ts +4 -0
  90. package/dist/schema.test.d.ts.map +1 -1
  91. package/dist/testing.cjs +9 -9
  92. package/dist/testing.cjs.map +1 -1
  93. package/dist/{traits.d.ts → trait/equality.d.ts} +1 -1
  94. package/dist/trait/equality.d.ts.map +1 -0
  95. package/dist/trait/fingerprint.d.ts +13 -0
  96. package/dist/trait/fingerprint.d.ts.map +1 -0
  97. package/dist/trait/traits.d.ts +3 -0
  98. package/dist/trait/traits.d.ts.map +1 -0
  99. package/dist/trait/traits.test.d.ts +5 -0
  100. package/dist/trait/traits.test.d.ts.map +1 -0
  101. package/dist/traits.cjs +23 -26
  102. package/dist/traits.cjs.map +1 -1
  103. package/dist/url.cjs +2 -2
  104. package/function.js +4 -4
  105. package/list.d.ts +9 -2
  106. package/list.d.ts.map +1 -1
  107. package/list.js +17 -3
  108. package/list.test.d.ts.map +1 -1
  109. package/object.d.ts.map +1 -1
  110. package/object.js +2 -2
  111. package/package.json +8 -10
  112. package/schema.d.ts +86 -29
  113. package/schema.d.ts.map +1 -1
  114. package/schema.js +191 -20
  115. package/schema.test.d.ts +4 -0
  116. package/schema.test.d.ts.map +1 -1
  117. package/test.html +2 -4
  118. package/test.js +7 -13
  119. package/testing.js +3 -3
  120. package/{traits.d.ts → trait/equality.d.ts} +1 -1
  121. package/trait/equality.d.ts.map +1 -0
  122. package/trait/fingerprint.d.ts +13 -0
  123. package/trait/fingerprint.d.ts.map +1 -0
  124. package/trait/fingerprint.js +21 -0
  125. package/trait/traits.d.ts +3 -0
  126. package/trait/traits.d.ts.map +1 -0
  127. package/trait/traits.js +2 -0
  128. package/trait/traits.test.d.ts +5 -0
  129. package/{traits.test.d.ts.map → trait/traits.test.d.ts.map} +1 -1
  130. package/delta/abstract-array.d.ts +0 -166
  131. package/delta/abstract-array.d.ts.map +0 -1
  132. package/delta/abstract-array.js +0 -421
  133. package/delta/abstract.d.ts +0 -69
  134. package/delta/abstract.d.ts.map +0 -1
  135. package/delta/abstract.js +0 -102
  136. package/delta/array.d.ts +0 -23
  137. package/delta/array.d.ts.map +0 -1
  138. package/delta/array.js +0 -45
  139. package/delta/array.test.d.ts +0 -2
  140. package/delta/array.test.d.ts.map +0 -1
  141. package/delta/d2.d.ts.map +0 -1
  142. package/delta/d2.test.d.ts.map +0 -1
  143. package/delta/index.d.ts +0 -14
  144. package/delta/index.d.ts.map +0 -1
  145. package/delta/index.js +0 -79
  146. package/delta/map.d.ts +0 -226
  147. package/delta/map.d.ts.map +0 -1
  148. package/delta/map.js +0 -304
  149. package/delta/node.d.ts +0 -117
  150. package/delta/node.d.ts.map +0 -1
  151. package/delta/node.js +0 -183
  152. package/delta/node.test.d.ts +0 -4
  153. package/delta/node.test.d.ts.map +0 -1
  154. package/delta/ops.d.ts +0 -464
  155. package/delta/ops.d.ts.map +0 -1
  156. package/delta/ops.js +0 -544
  157. package/delta/t2.d.ts +0 -184
  158. package/delta/t2.d.ts.map +0 -1
  159. package/delta/t2.js +0 -890
  160. package/delta/text.d.ts +0 -43
  161. package/delta/text.d.ts.map +0 -1
  162. package/delta/text.js +0 -54
  163. package/delta/text.test.d.ts +0 -6
  164. package/delta/text.test.d.ts.map +0 -1
  165. package/delta/transformer.d.ts +0 -164
  166. package/delta/transformer.d.ts.map +0 -1
  167. package/delta/transformer.js +0 -888
  168. package/delta/transformer.test.d.ts +0 -13
  169. package/delta/transformer.test.d.ts.map +0 -1
  170. package/delta/value.d.ts +0 -84
  171. package/delta/value.d.ts.map +0 -1
  172. package/delta/value.js +0 -168
  173. package/dist/abstract-array.cjs +0 -433
  174. package/dist/abstract-array.cjs.map +0 -1
  175. package/dist/abstract.cjs +0 -122
  176. package/dist/abstract.cjs.map +0 -1
  177. package/dist/array2.cjs +0 -26
  178. package/dist/array2.cjs.map +0 -1
  179. package/dist/d2.cjs.map +0 -1
  180. package/dist/delta/abstract-array.d.ts +0 -166
  181. package/dist/delta/abstract-array.d.ts.map +0 -1
  182. package/dist/delta/abstract.d.ts +0 -69
  183. package/dist/delta/abstract.d.ts.map +0 -1
  184. package/dist/delta/array.d.ts +0 -23
  185. package/dist/delta/array.d.ts.map +0 -1
  186. package/dist/delta/array.test.d.ts +0 -2
  187. package/dist/delta/array.test.d.ts.map +0 -1
  188. package/dist/delta/d2.d.ts.map +0 -1
  189. package/dist/delta/d2.test.d.ts.map +0 -1
  190. package/dist/delta/index.d.ts +0 -14
  191. package/dist/delta/index.d.ts.map +0 -1
  192. package/dist/delta/map.d.ts +0 -226
  193. package/dist/delta/map.d.ts.map +0 -1
  194. package/dist/delta/node.d.ts +0 -117
  195. package/dist/delta/node.d.ts.map +0 -1
  196. package/dist/delta/node.test.d.ts +0 -4
  197. package/dist/delta/node.test.d.ts.map +0 -1
  198. package/dist/delta/ops.d.ts +0 -464
  199. package/dist/delta/ops.d.ts.map +0 -1
  200. package/dist/delta/t2.d.ts +0 -184
  201. package/dist/delta/t2.d.ts.map +0 -1
  202. package/dist/delta/text.d.ts +0 -43
  203. package/dist/delta/text.d.ts.map +0 -1
  204. package/dist/delta/text.test.d.ts +0 -6
  205. package/dist/delta/text.test.d.ts.map +0 -1
  206. package/dist/delta/transformer.d.ts +0 -164
  207. package/dist/delta/transformer.d.ts.map +0 -1
  208. package/dist/delta/transformer.test.d.ts +0 -13
  209. package/dist/delta/transformer.test.d.ts.map +0 -1
  210. package/dist/delta/value.d.ts +0 -84
  211. package/dist/delta/value.d.ts.map +0 -1
  212. package/dist/function-e7d18feb.cjs.map +0 -1
  213. package/dist/index2.cjs +0 -71
  214. package/dist/index2.cjs.map +0 -1
  215. package/dist/map2.cjs +0 -15
  216. package/dist/map2.cjs.map +0 -1
  217. package/dist/node.cjs +0 -206
  218. package/dist/node.cjs.map +0 -1
  219. package/dist/object-18980796.cjs.map +0 -1
  220. package/dist/ops.cjs +0 -575
  221. package/dist/ops.cjs.map +0 -1
  222. package/dist/t2.cjs +0 -932
  223. package/dist/t2.cjs.map +0 -1
  224. package/dist/text.cjs +0 -79
  225. package/dist/text.cjs.map +0 -1
  226. package/dist/traits.d.ts.map +0 -1
  227. package/dist/traits.test.d.ts +0 -4
  228. package/dist/traits.test.d.ts.map +0 -1
  229. package/dist/transformer.cjs +0 -930
  230. package/dist/transformer.cjs.map +0 -1
  231. package/dist/value.cjs +0 -187
  232. package/dist/value.cjs.map +0 -1
  233. package/traits.d.ts.map +0 -1
  234. package/traits.test.d.ts +0 -4
  235. /package/{traits.js → trait/equality.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delta.cjs","sources":["../delta/delta.js"],"sourcesContent":["/**\n * @beta this API is about to change\n *\n * ## Mutability\n *\n * Deltas are mutable by default. But references are often shared, by marking a Delta as \"done\". You\n * may only modify deltas by applying other deltas to them. Casting a Delta to a DeltaBuilder\n * manually, will likely modify \"shared\" state.\n */\n\nimport * as list from '../list.js'\nimport * as object from '../object.js'\nimport * as equalityTrait from '../trait/equality.js'\nimport * as fingerprintTrait from '../trait/fingerprint.js'\nimport * as arr from '../array.js'\nimport * as fun from '../function.js'\nimport * as s from '../schema.js'\nimport * as error from '../error.js'\nimport * as math from '../math.js'\nimport * as rabin from '../hash/rabin.js'\nimport * as encoding from '../encoding.js'\nimport * as buffer from '../buffer.js'\nimport * as patience from '../diff/patience.js'\nimport * as prng from '../prng.js'\n\n/**\n * @typedef {{\n * insert?: string[]\n * insertAt?: number\n * delete?: string[]\n * deleteAt?: number\n * format?: Record<string,string[]>\n * formatAt?: number\n * }} Attribution\n */\n\n/**\n * @type {s.Schema<Attribution>}\n */\nexport const $attribution = s.$object({\n insert: s.$array(s.$string).optional,\n insertAt: s.$number.optional,\n delete: s.$array(s.$string).optional,\n deleteAt: s.$number.optional,\n format: s.$record(s.$string, s.$array(s.$string)).optional,\n formatAt: s.$number.optional\n})\n\n/**\n * @typedef {s.Unwrap<$anyOp>} DeltaOps\n */\n\n/**\n * @typedef {{ [key: string]: any }} FormattingAttributes\n */\n\n/**\n * @typedef {{\n * type: 'delta',\n * name?: string,\n * attrs?: { [Key in string|number]: DeltaAttrOpJSON },\n * children?: Array<DeltaListOpJSON>\n * }} DeltaJSON\n */\n\n/**\n * @typedef {{ type: 'insert', insert: string|Array<any>, format?: { [key: string]: any }, attribution?: Attribution } | { delete: number } | { type: 'retain', retain: number, format?: { [key:string]: any }, attribution?: Attribution } | { type: 'modify', value: object }} DeltaListOpJSON\n */\n\n/**\n * @typedef {{ type: 'insert', value: any, prevValue?: any, attribution?: Attribution } | { type: 'delete', prevValue?: any, attribution?: Attribution } | { type: 'modify', value: DeltaJSON }} DeltaAttrOpJSON\n */\n\n/**\n * @typedef {TextOp|InsertOp<any>|DeleteOp|RetainOp|ModifyOp<any>} ChildrenOpAny\n */\n\n/**\n * @typedef {AttrInsertOp<any>|AttrDeleteOp<any>|AttrModifyOp} AttrOpAny\n */\n\n/**\n * @typedef {ChildrenOpAny|AttrOpAny} _OpAny\n */\n\n/**\n * @type {s.Schema<DeltaAttrOpJSON>}\n */\nexport const $deltaMapChangeJson = s.$union(\n s.$object({ type: s.$literal('insert'), value: s.$any, prevValue: s.$any.optional, attribution: $attribution.optional }),\n s.$object({ type: s.$literal('modify'), value: s.$any }),\n s.$object({ type: s.$literal('delete'), prevValue: s.$any.optional, attribution: $attribution.optional })\n)\n\n/**\n * @template {{[key:string]: any} | null} Attrs\n * @param {Attrs} attrs\n * @return {Attrs}\n */\nconst _cloneAttrs = attrs => attrs == null ? attrs : { ...attrs }\n/**\n * @template {any} MaybeDelta\n * @param {MaybeDelta} maybeDelta\n * @return {MaybeDelta}\n */\nconst _markMaybeDeltaAsDone = maybeDelta => $deltaAny.check(maybeDelta) ? /** @type {MaybeDelta} */ (maybeDelta.done()) : maybeDelta\n\nexport class TextOp extends list.ListNode {\n /**\n * @param {string} insert\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (insert, format, attribution) {\n super()\n // Whenever this is modified, make sure to clear _fingerprint\n /**\n * @readonly\n * @type {string}\n */\n this.insert = insert\n /**\n * @readonly\n * @type {FormattingAttributes|null}\n */\n this.format = format\n this.attribution = attribution\n /**\n * @type {string?}\n */\n this._fingerprint = null\n }\n\n /**\n * @param {string} newVal\n */\n _updateInsert (newVal) {\n // @ts-ignore\n this.insert = newVal\n this._fingerprint = null\n }\n\n /**\n * @return {'insert'}\n */\n get type () {\n return 'insert'\n }\n\n get length () {\n return this.insert.length\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 0) // textOp type: 0\n encoding.writeVarString(encoder, this.insert)\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} offset\n * @param {number} len\n */\n _splice (offset, len) {\n this._fingerprint = null\n // @ts-ignore\n this.insert = this.insert.slice(0, offset) + this.insert.slice(offset + len)\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { insert, format, attribution } = this\n return object.assign(/** @type {{type: 'insert', insert: string}} */ ({ type: 'insert', insert }), format != null ? { format } : ({}), attribution != null ? { attribution } : ({}))\n }\n\n /**\n * @param {TextOp} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return fun.equalityDeep(this.insert, other.insert) && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {TextOp}\n */\n clone (start = 0, end = this.length) {\n return new TextOp(this.insert.slice(start, end), _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {fingerprintTrait.Fingerprintable} ArrayContent\n */\nexport class InsertOp extends list.ListNode {\n /**\n * @param {Array<ArrayContent>} insert\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (insert, format, attribution) {\n super()\n /**\n * @readonly\n * @type {Array<ArrayContent>}\n */\n this.insert = insert\n /**\n * @readonly\n * @type {FormattingAttributes?}\n */\n this.format = format\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string?}\n */\n this._fingerprint = null\n }\n\n /**\n * @param {ArrayContent} newVal\n */\n _updateInsert (newVal) {\n // @ts-ignore\n this.insert = newVal\n this._fingerprint = null\n }\n\n /**\n * @return {'insert'}\n */\n get type () {\n return 'insert'\n }\n\n get length () {\n return this.insert.length\n }\n\n /**\n * @param {number} i\n * @return {Extract<ArrayContent,DeltaAny>}\n */\n _modValue (i) {\n /**\n * @type {any}\n */\n let d = this.insert[i]\n this._fingerprint = null\n $deltaAny.expect(d)\n if (d.isDone) {\n // @ts-ignore\n this.insert[i] = (d = clone(d))\n return d\n }\n return d\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 1) // insertOp type: 1\n encoding.writeVarUint(encoder, this.insert.length)\n this.insert.forEach(ins => {\n encoding.writeVarString(encoder, fingerprintTrait.fingerprint(ins))\n })\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} offset\n * @param {number} len\n */\n _splice (offset, len) {\n this._fingerprint = null\n this.insert.splice(offset, len)\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { insert, format, attribution } = this\n return object.assign({ type: /** @type {'insert'} */ ('insert'), insert: insert.map(ins => $deltaAny.check(ins) ? ins.toJSON() : ins) }, format ? { format } : ({}), attribution != null ? { attribution } : ({}))\n }\n\n /**\n * @param {InsertOp<ArrayContent>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return fun.equalityDeep(this.insert, other.insert) && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {InsertOp<ArrayContent>}\n */\n clone (start = 0, end = this.length) {\n return new InsertOp(this.insert.slice(start, end).map(_markMaybeDeltaAsDone), _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {fingerprintTrait.Fingerprintable} [Children=never]\n * @template {string} [Text=never]\n */\nexport class DeleteOp extends list.ListNode {\n /**\n * @param {number} len\n */\n constructor (len) {\n super()\n this.delete = len\n /**\n * @type {(Children|Text) extends never ? null : (Delta<any,{},Children,Text>?)}\n */\n this.prevValue = null\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'delete'}\n */\n get type () {\n return 'delete'\n }\n\n get length () {\n return 0\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 2) // deleteOp type: 2\n encoding.writeVarUint(encoder, this.delete)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} _offset\n * @param {number} len\n */\n _splice (_offset, len) {\n this.prevValue = /** @type {any} */ (this.prevValue?.slice(_offset, len) || null)\n this._fingerprint = null\n this.delete -= len\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n return { delete: this.delete }\n }\n\n /**\n * @param {DeleteOp} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.delete === other.delete\n }\n\n clone (start = 0, end = this.delete) {\n return new DeleteOp(end - start)\n }\n}\n\nexport class RetainOp extends list.ListNode {\n /**\n * @param {number} retain\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (retain, format, attribution) {\n super()\n /**\n * @readonly\n * @type {number}\n */\n this.retain = retain\n /**\n * @readonly\n * @type {FormattingAttributes?}\n */\n this.format = format\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'retain'}\n */\n get type () {\n return 'retain'\n }\n\n get length () {\n return this.retain\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 3) // retainOp type: 3\n encoding.writeVarUint(encoder, this.retain)\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} _offset\n * @param {number} len\n */\n _splice (_offset, len) {\n // @ts-ignore\n this.retain -= len\n this._fingerprint = null\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { retain, format, attribution } = this\n return object.assign({ type: /** @type {'retain'} */ ('retain'), retain }, format ? { format } : {}, attribution != null ? { attribution } : {})\n }\n\n /**\n * @param {RetainOp} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.retain === other.retain && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n clone (start = 0, end = this.retain) {\n return new RetainOp(end - start, _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * Delta that can be applied on a YType Embed\n *\n * @template {DeltaAny} [DTypes=DeltaAny]\n */\nexport class ModifyOp extends list.ListNode {\n /**\n * @param {DTypes} delta\n * @param {FormattingAttributes|null} format\n * @param {Attribution?} attribution\n */\n constructor (delta, format, attribution) {\n super()\n /**\n * @readonly\n * @type {DTypes}\n */\n this.value = delta\n /**\n * @readonly\n * @type {FormattingAttributes?}\n */\n this.format = format\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'modify'}\n */\n get type () {\n return 'modify'\n }\n\n get length () {\n return 1\n }\n\n /**\n * @type {DeltaBuilderAny}\n */\n get _modValue () {\n /**\n * @type {any}\n */\n const d = this.value\n this._fingerprint = null\n if (d.isDone) {\n // @ts-ignore\n return (this.value = clone(d))\n }\n return d\n }\n\n get fingerprint () {\n // don't cache fingerprint because we don't know when delta changes\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 4) // modifyOp type: 4\n encoding.writeVarString(encoder, this.value.fingerprint)\n encoding.writeAny(encoder, this.format)\n })))\n }\n\n /**\n * Remove a part of the operation (similar to Array.splice)\n *\n * @param {number} _offset\n * @param {number} _len\n */\n _splice (_offset, _len) {\n return this\n }\n\n /**\n * @return {DeltaListOpJSON}\n */\n toJSON () {\n const { value, attribution, format } = this\n return object.assign({ type: /** @type {'modify'} */ ('modify'), value: value.toJSON() }, format ? { format } : {}, attribution != null ? { attribution } : {})\n }\n\n /**\n * @param {ModifyOp<any>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.value[equalityTrait.EqualityTraitSymbol](other.value) && fun.equalityDeep(this.format, other.format) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {ModifyOp<DTypes>}\n */\n clone () {\n return new ModifyOp(/** @type {DTypes} */ (this.value.done()), _cloneAttrs(this.format), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {fingerprintTrait.Fingerprintable} V\n * @template {string|number} [K=any]\n */\nexport class AttrInsertOp {\n /**\n * @param {K} key\n * @param {V} value\n * @param {V|undefined} prevValue\n * @param {Attribution?} attribution\n */\n constructor (key, value, prevValue, attribution) {\n /**\n * @readonly\n * @type {K}\n */\n this.key = key\n /**\n * @readonly\n * @type {V}\n */\n this.value = value\n /**\n * @readonly\n * @type {V|undefined}\n */\n this.prevValue = prevValue\n /**\n * @readonly\n * @type {Attribution?}\n */\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @return {'insert'}\n */\n get type () { return 'insert' }\n\n /**\n * @type {DeltaBuilderAny}\n */\n get _modValue () {\n /**\n * @type {any}\n */\n const v = this.value\n this._fingerprint = null\n if ($deltaAny.check(v) && v.isDone) {\n // @ts-ignore\n return (this.value = clone(v))\n }\n return v\n }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 5) // map insert type: 5\n encoding.writeAny(encoder, this.key)\n if ($deltaAny.check(this.value)) {\n encoding.writeUint8(encoder, 0)\n encoding.writeVarString(encoder, this.value.fingerprint)\n } else {\n encoding.writeUint8(encoder, 1)\n encoding.writeAny(encoder, this.value)\n }\n })))\n }\n\n toJSON () {\n const v = this.value\n const prevValue = this.prevValue\n const attribution = this.attribution\n return object.assign({\n type: this.type,\n value: $deltaAny.check(v) ? v.toJSON() : v\n }, attribution != null ? { attribution } : {}, prevValue !== undefined ? { prevValue } : {})\n }\n\n /**\n * @param {AttrInsertOp<V>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.key === other.key && fun.equalityDeep(this.value, other.value) && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n /**\n * @return {AttrInsertOp<V,K>}\n */\n clone () {\n return new AttrInsertOp(this.key, _markMaybeDeltaAsDone(this.value), _markMaybeDeltaAsDone(this.prevValue), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template V\n * @template {string|number} [K=string]\n */\nexport class AttrDeleteOp {\n /**\n * @param {K} key\n * @param {V|undefined} prevValue\n * @param {Attribution?} attribution\n */\n constructor (key, prevValue, attribution) {\n /**\n * @type {K}\n */\n this.key = key\n /**\n * @type {V|undefined}\n */\n this.prevValue = prevValue\n this.attribution = attribution\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n get value () { return undefined }\n\n /**\n * @type {'delete'}\n */\n get type () { return 'delete' }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 6) // map delete type: 6\n encoding.writeAny(encoder, this.key)\n })))\n }\n\n /**\n * @return {DeltaAttrOpJSON}\n */\n toJSON () {\n const {\n type, attribution, prevValue\n } = this\n return object.assign({ type }, attribution != null ? { attribution } : {}, prevValue !== undefined ? { prevValue } : {})\n }\n\n /**\n * @param {AttrDeleteOp<V>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.key === other.key && fun.equalityDeep(this.attribution, other.attribution)\n }\n\n clone () {\n return new AttrDeleteOp(this.key, _markMaybeDeltaAsDone(this.prevValue), _cloneAttrs(this.attribution))\n }\n}\n\n/**\n * @template {DeltaAny} [Modifier=DeltaAny]\n * @template {string|number} [K=string]\n */\nexport class AttrModifyOp {\n /**\n * @param {K} key\n * @param {Modifier} delta\n */\n constructor (key, delta) {\n /**\n * @readonly\n * @type {K}\n */\n this.key = key\n /**\n * @readonly\n * @type {Modifier}\n */\n this.value = delta\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n }\n\n /**\n * @type {'modify'}\n */\n get type () { return 'modify' }\n\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeVarUint(encoder, 7) // map modify type: 7\n encoding.writeAny(encoder, this.key)\n encoding.writeVarString(encoder, this.value.fingerprint)\n })))\n }\n\n /**\n * @return {DeltaBuilder}\n */\n get _modValue () {\n this._fingerprint = null\n if (this.value.isDone) {\n // @ts-ignore\n this.value = /** @type {any} */ (clone(this.value))\n }\n // @ts-ignore\n return this.value\n }\n\n /**\n * @return {DeltaAttrOpJSON}\n */\n toJSON () {\n return {\n type: this.type,\n value: this.value.toJSON()\n }\n }\n\n /**\n * @param {AttrModifyOp<Modifier>} other\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n return this.key === other.key && this.value[equalityTrait.EqualityTraitSymbol](other.value)\n }\n\n /**\n * @return {AttrModifyOp<Modifier,K>}\n */\n clone () {\n return new AttrModifyOp(this.key, /** @type {Modifier} */ (this.value.done()))\n }\n}\n\n/**\n * @type {s.Schema<AttrDeleteOp<any> | DeleteOp>}\n */\nexport const $deleteOp = s.$custom(o => o != null && (o.constructor === DeleteOp || o.constructor === AttrDeleteOp))\n\n/**\n * @type {s.Schema<AttrInsertOp<any> | InsertOp<any>>}\n */\nexport const $insertOp = s.$custom(o => o != null && (o.constructor === AttrInsertOp || o.constructor === InsertOp))\n\n/**\n * @template {fingerprintTrait.Fingerprintable} Content\n * @param {s.Schema<Content>} $content\n * @return {s.Schema<AttrInsertOp<Content> | InsertOp<Content>>}\n */\nexport const $insertOpWith = $content => s.$custom(o =>\n o != null && (\n (o.constructor === AttrInsertOp && $content.check(/** @type {AttrInsertOp<Content>} */ (o).value)) ||\n (o.constructor === InsertOp && /** @type {InsertOp<Content>} */ (o).insert.every(ins => $content.check(ins)))\n )\n)\n\n/**\n * @type {s.Schema<TextOp>}\n */\nexport const $textOp = s.$constructedBy(TextOp)\n\n/**\n * @type {s.Schema<RetainOp>}\n */\nexport const $retainOp = s.$constructedBy(RetainOp)\n\n/**\n * @type {s.Schema<AttrModifyOp | ModifyOp>}\n */\nexport const $modifyOp = s.$custom(o => o != null && (o.constructor === AttrModifyOp || o.constructor === ModifyOp))\n\n/**\n * @template {DeltaAny} Modify\n * @param {s.Schema<Modify>} $content\n * @return {s.Schema<AttrModifyOp<Modify> | ModifyOp<Modify>>}\n */\nexport const $modifyOpWith = $content => s.$custom(o =>\n o != null && (\n (o.constructor === AttrModifyOp && $content.check(/** @type {AttrModifyOp<Modify>} */ (o).value)) ||\n (o.constructor === ModifyOp && $content.check(/** @type {ModifyOp<Modify>} */ (o).value))\n )\n)\n\nexport const $anyOp = s.$union($insertOp, $deleteOp, $textOp, $modifyOp)\n\n/**\n * @template {Array<any>|string} C1\n * @template {Array<any>|string} C2\n * @typedef {Extract<C1 | C2, Array<any>> extends never\n * ? never\n * : (Array<(Extract<C1 | C2,Array<any>> extends Array<infer AC1> ? (unknown extends AC1 ? never : AC1) : never)>)} MergeListArrays\n */\n\n/**\n * @template {{[Key in string|number]: any}} Attrs\n * @template {string|number} Key\n * @template {any} Val\n * @typedef {{ [K in (Key | keyof Attrs)]: (unknown extends Attrs[K] ? never : Attrs[K]) | (Key extends K ? Val : never) }} AddToAttrs\n */\n\n/**\n * @template {{[Key in string|number|symbol]: any}} Attrs\n * @template {{[Key in string|number|symbol]: any}} NewAttrs\n * @typedef {{ [K in (keyof NewAttrs | keyof Attrs)]: (unknown extends Attrs[K] ? never : Attrs[K]) | (unknown extends NewAttrs[K] ? never : NewAttrs[K]) }} MergeAttrs\n */\n\n/**\n * @template X\n * @typedef {0 extends (1 & X) ? null : X} _AnyToNull\n */\n\n/**\n * @template {s.Schema<Delta<any,any,any,any,any>>|null} Schema\n * @typedef {_AnyToNull<Schema> extends null ? Delta<any,{[key:string|number]:any},any,string> : (Schema extends s.Schema<infer D> ? D : never)} AllowedDeltaFromSchema\n */\n\n/**\n * @typedef {Delta<any,{ [k:string|number]: any },any,any,any>} DeltaAny\n */\n/**\n * @typedef {DeltaBuilder<any,{ [k:string|number]: any },any,any,any>} DeltaBuilderAny\n */\n\n/**\n * @template {string} [NodeName=any]\n * @template {{[k:string|number]:any}} [Attrs={}]\n * @template {fingerprintTrait.Fingerprintable} [Children=never]\n * @template {string} [Text=never]\n * @template {s.Schema<Delta<any,any,any,any,any>>|null} [Schema=any]\n */\nexport class Delta {\n /**\n * @param {NodeName} [name]\n * @param {Schema} [$schema]\n */\n constructor (name, $schema) {\n this.name = name || null\n this.$schema = $schema || null\n /**\n * @type {{ [K in keyof Attrs]?: K extends string|number ? (AttrInsertOp<Attrs[K],K>|AttrDeleteOp<Attrs[K],K>|(Delta extends Attrs[K] ? AttrModifyOp<Extract<Attrs[K],DeltaAny>,K> : never)) : never }\n * & { [Symbol.iterator]: () => Iterator<{ [K in keyof Attrs]: K extends string|number ? (AttrInsertOp<Attrs[K],K>|AttrDeleteOp<Attrs[K],K>|(Delta extends Attrs[K] ? AttrModifyOp<Extract<Attrs[K],DeltaAny>,K> : never)) : never }[keyof Attrs]> }\n * }\n */\n this.attrs = /** @type {any} */ ({\n * [Symbol.iterator] () {\n for (const k in this) {\n yield this[k]\n }\n }\n })\n\n /**\n * @type {list.List<\n * RetainOp\n * | DeleteOp\n * | (Text extends never ? never : TextOp)\n * | (Children extends never ? never : InsertOp<Children>)\n * | (Delta extends Children ? ModifyOp<Extract<Children,Delta<any,any,any,any,any>>> : never)\n * >}\n */\n this.children = /** @type {any} */ (list.create())\n this.childCnt = 0\n /**\n * @type {any}\n */\n this.origin = null\n /**\n * @type {string|null}\n */\n this._fingerprint = null\n this.isDone = false\n }\n\n /**\n * @type {string}\n */\n get fingerprint () {\n return this._fingerprint || (this._fingerprint = buffer.toBase64(encoding.encode(encoder => {\n encoding.writeUint32(encoder, 0xf2ae5680) // \"magic number\" that ensures that different types of content don't yield the same fingerprint\n encoding.writeAny(encoder, this.name)\n /**\n * @type {Array<number|string>}\n */\n const keys = []\n for (const attr of this.attrs) {\n keys.push(attr.key)\n }\n keys.sort((a, b) => {\n const aIsString = s.$string.check(a)\n const bIsString = s.$string.check(b)\n // numbers first\n // in ascending order\n return (aIsString && bIsString)\n ? a.localeCompare(b)\n : (aIsString ? 1 : (bIsString ? -1 : (a - b)))\n })\n encoding.writeVarUint(encoder, keys.length)\n for (const key of keys) {\n encoding.writeVarString(encoder, /** @type {any} */ (this.attrs[/** @type {keyof Attrs} */ (key)]).fingerprint)\n }\n encoding.writeVarUint(encoder, this.children.len)\n for (const child of this.children) {\n encoding.writeVarString(encoder, child.fingerprint)\n }\n return buffer.toBase64(rabin.fingerprint(rabin.StandardIrreducible128, encoding.toUint8Array(encoder)))\n })))\n }\n\n [fingerprintTrait.FingerprintTraitSymbol] () {\n return this.fingerprint\n }\n\n isEmpty () {\n return object.isEmpty(this.attrs) && list.isEmpty(this.children)\n }\n\n /**\n * @return {DeltaJSON}\n */\n toJSON () {\n const name = this.name\n /**\n * @type {any}\n */\n const attrs = {}\n /**\n * @type {any}\n */\n const children = []\n for (const attr of this.attrs) {\n attrs[attr.key] = attr.toJSON()\n }\n this.children.forEach(val => {\n children.push(val.toJSON())\n })\n return object.assign(\n { type: /** @type {'delta'} */ ('delta') },\n (name != null ? { name } : {}),\n (object.isEmpty(attrs) ? {} : { attrs }),\n (children.length > 0 ? { children } : {})\n )\n }\n\n /**\n * @param {Delta<any,any,any,any,any>} other\n * @return {boolean}\n */\n equals (other) {\n return this[equalityTrait.EqualityTraitSymbol](other)\n }\n\n /**\n * @param {any} other\n * @return {boolean}\n */\n [equalityTrait.EqualityTraitSymbol] (other) {\n // @todo it is only necessary to compare finrerprints OR do a deep equality check (remove\n // childCnt as well)\n return this.name === other.name && fun.equalityDeep(this.attrs, other.attrs) && fun.equalityDeep(this.children, other.children) && this.childCnt === other.childCnt\n }\n\n /**\n * @param {number} start\n * @param {number} end\n * @return {Delta<NodeName,Attrs,Children,Text,Schema>}\n */\n slice (start = 0, end = this.childCnt) {\n const cpy = /** @type {DeltaAny} */ (new DeltaBuilder(/** @type {any} */ (this.name), this.$schema))\n cpy.origin = this.origin\n // copy attrs\n for (const op of this.attrs) {\n cpy.attrs[op.key] = /** @type {any} */ (op.clone())\n }\n // copy children\n const slicedLen = end - start\n let remainingLen = slicedLen\n /**\n * @type {ChildrenOpAny?}\n */\n let currNode = this.children.start\n let currNodeOffset = 0\n while (start > 0 && currNode != null) {\n if (currNode.length <= start) {\n start -= currNode.length\n currNode = currNode.next\n } else {\n currNodeOffset = start\n start = 0\n }\n }\n if (currNodeOffset > 0 && currNode) {\n const ncpy = currNode.clone(currNodeOffset, currNodeOffset + math.min(remainingLen, currNode.length - currNodeOffset))\n list.pushEnd(cpy.children, ncpy)\n remainingLen -= ncpy.length\n currNode = currNode.next\n }\n while (currNode != null && currNode.length <= remainingLen) {\n list.pushEnd(cpy.children, currNode.clone())\n currNode = currNode.next\n }\n if (currNode != null && remainingLen > 0) {\n list.pushEnd(cpy.children, currNode.clone(0, remainingLen))\n }\n cpy.childCnt = slicedLen - remainingLen\n // @ts-ignore\n return cpy\n }\n\n /**\n * Mark this delta as done and perform some cleanup (e.g. remove appended retains without\n * formats&attributions). In the future, there might be additional merge operations that can be\n * performed to result in smaller deltas. Set `markAsDone=false` to only perform the cleanup.\n *\n * @return {Delta<NodeName,Attrs,Children,Text,Schema>}\n */\n done (markAsDone = true) {\n if (!this.isDone) {\n this.isDone = markAsDone\n const cs = this.children\n for (let end = cs.end; end !== null && $retainOp.check(end) && end.format == null && end.attribution == null; end = cs.end) {\n this.childCnt -= end.length\n list.popEnd(cs)\n }\n }\n return this\n }\n}\n\n/**\n * @template {DeltaAny} D\n * @param {D} d\n * @return {D extends Delta<infer NodeName,infer Attrs,infer Children,infer Text,infer Schema> ? DeltaBuilder<NodeName,Attrs,Children,Text,Schema> : never}\n */\nexport const clone = d => /** @type {any} */ (d.slice(0, d.childCnt))\n\n/**\n * Try merging this op with the previous op\n * @param {list.List<any>} parent\n * @param {InsertOp<any>|RetainOp|DeleteOp|TextOp|ModifyOp<any>} op\n */\nconst tryMergeWithPrev = (parent, op) => {\n const prevOp = op.prev\n if (\n prevOp?.constructor !== op.constructor ||\n (\n (!$deleteOp.check(op) && !$modifyOp.check(op)) && (!fun.equalityDeep(op.format, /** @type {InsertOp<any>} */ (prevOp).format) || !fun.equalityDeep(op.attribution, /** @type {InsertOp<any>} */ (prevOp).attribution))\n )\n ) {\n // constructor mismatch or format/attribution mismatch\n return\n }\n // can be merged\n if ($insertOp.check(op)) {\n /** @type {InsertOp<any>} */ (prevOp).insert.push(...op.insert)\n } else if ($retainOp.check(op)) {\n // @ts-ignore\n /** @type {RetainOp} */ (prevOp).retain += op.retain\n } else if ($deleteOp.check(op)) {\n /** @type {DeleteOp} */ (prevOp).delete += op.delete\n } else if ($textOp.check(op)) {\n /** @type {TextOp} */ (prevOp)._updateInsert(/** @type {TextOp} */ (prevOp).insert + op.insert)\n } else {\n error.unexpectedCase()\n }\n list.remove(parent, op)\n}\n\n/**\n * Ensures that the delta can be edited. clears _fingerprint cache.\n *\n * @param {any} d\n */\nconst modDeltaCheck = d => {\n if (d.isDone) {\n /**\n * You tried to modify a delta after it has been marked as \"done\".\n */\n throw error.create(\"Readonly Delta can't be modified\")\n }\n d._fingerprint = null\n}\n\n/**\n * @template {string} [NodeName=any]\n * @template {{[key:string|number]:any}} [Attrs={}]\n * @template {fingerprintTrait.Fingerprintable} [Children=never]\n * @template {string} [Text=never]\n * @template {s.Schema<Delta<any,any,any,any,any>>|null} [Schema=any]\n * @extends {Delta<NodeName,Attrs,Children,Text,Schema>}\n */\nexport class DeltaBuilder extends Delta {\n /**\n * @param {NodeName} [name]\n * @param {Schema} [$schema]\n */\n constructor (name, $schema) {\n super(name, $schema)\n /**\n * @type {FormattingAttributes?}\n */\n this.usedAttributes = null\n /**\n * @type {Attribution?}\n */\n this.usedAttribution = null\n }\n\n /**\n * @param {Attribution?} attribution\n */\n useAttribution (attribution) {\n modDeltaCheck(this)\n this.usedAttribution = attribution\n return this\n }\n\n /**\n * @param {FormattingAttributes?} attributes\n * @return {this}\n */\n useAttributes (attributes) {\n modDeltaCheck(this)\n this.usedAttributes = attributes\n return this\n }\n\n /**\n * @param {string} name\n * @param {any} value\n */\n updateUsedAttributes (name, value) {\n modDeltaCheck(this)\n if (value == null) {\n this.usedAttributes = object.assign({}, this.usedAttributes)\n delete this.usedAttributes?.[name]\n if (object.isEmpty(this.usedAttributes)) {\n this.usedAttributes = null\n }\n } else if (!fun.equalityDeep(this.usedAttributes?.[name], value)) {\n this.usedAttributes = object.assign({}, this.usedAttributes)\n this.usedAttributes[name] = value\n }\n return this\n }\n\n /**\n * @template {keyof Attribution} NAME\n * @param {NAME} name\n * @param {Attribution[NAME]?} value\n */\n updateUsedAttribution (name, value) {\n modDeltaCheck(this)\n if (value == null) {\n this.usedAttribution = object.assign({}, this.usedAttribution)\n delete this.usedAttribution?.[name]\n if (object.isEmpty(this.usedAttribution)) {\n this.usedAttribution = null\n }\n } else if (!fun.equalityDeep(this.usedAttribution?.[name], value)) {\n this.usedAttribution = object.assign({}, this.usedAttribution)\n this.usedAttribution[name] = value\n }\n return this\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,any,infer Children,infer Text,infer Schema> ? ((Children extends never ? never : Array<Children>) | Text) : never} NewContent\n * @param {NewContent} insert\n * @param {FormattingAttributes?} [formatting]\n * @param {Attribution?} [attribution]\n * @return {DeltaBuilder<\n * NodeName,\n * Attrs,\n * Exclude<NewContent,string>[number]|Children,\n * (Extract<NewContent,string>|Text) extends never ? never : string,\n * Schema\n * >}\n */\n insert (insert, formatting = null, attribution = null) {\n modDeltaCheck(this)\n const mergedAttributes = mergeAttrs(this.usedAttributes, formatting)\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n /**\n * @param {TextOp | InsertOp<any>} lastOp\n */\n const checkMergedEquals = lastOp => (mergedAttributes === lastOp.format || fun.equalityDeep(mergedAttributes, lastOp.format)) && (mergedAttribution === lastOp.attribution || fun.equalityDeep(mergedAttribution, lastOp.attribution))\n const end = this.children.end\n if (s.$string.check(insert)) {\n if ($textOp.check(end) && checkMergedEquals(end)) {\n end._updateInsert(end.insert + insert)\n } else if (insert.length > 0) {\n list.pushEnd(this.children, new TextOp(insert, object.isEmpty(mergedAttributes) ? null : mergedAttributes, object.isEmpty(mergedAttribution) ? null : mergedAttribution))\n }\n this.childCnt += insert.length\n } else if (arr.isArray(insert)) {\n if ($insertOp.check(end) && checkMergedEquals(end)) {\n // @ts-ignore\n end.insert.push(...insert)\n end._fingerprint = null\n } else if (insert.length > 0) {\n list.pushEnd(this.children, new InsertOp(insert, object.isEmpty(mergedAttributes) ? null : mergedAttributes, object.isEmpty(mergedAttribution) ? null : mergedAttribution))\n }\n this.childCnt += insert.length\n }\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,any,infer Children,any,any> ? Extract<Children,Delta<any,any,any,any,any>> : never} NewContent\n * @param {NewContent} modify\n * @param {FormattingAttributes?} formatting\n * @param {Attribution?} attribution\n * @return {DeltaBuilder<\n * NodeName,\n * Attrs,\n * Exclude<NewContent,string>[number]|Children,\n * (Extract<NewContent,string>|Text) extends string ? string : never,\n * Schema\n * >}\n */\n modify (modify, formatting = null, attribution = null) {\n modDeltaCheck(this)\n const mergedAttributes = mergeAttrs(this.usedAttributes, formatting)\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n list.pushEnd(this.children, new ModifyOp(modify, object.isEmpty(mergedAttributes) ? null : mergedAttributes, object.isEmpty(mergedAttribution) ? null : mergedAttribution))\n this.childCnt += 1\n return /** @type {any} */ (this)\n }\n\n /**\n * @param {number} len\n * @param {FormattingAttributes?} [format]\n * @param {Attribution?} [attribution]\n */\n retain (len, format = null, attribution = null) {\n modDeltaCheck(this)\n const mergedFormats = mergeAttrs(this.usedAttributes, format)\n const mergedAttribution = mergeAttrs(this.usedAttribution, attribution)\n const lastOp = /** @type {RetainOp|InsertOp<any>} */ (this.children.end)\n if (lastOp instanceof RetainOp && fun.equalityDeep(mergedFormats, lastOp.format) && fun.equalityDeep(mergedAttribution, lastOp.attribution)) {\n // @ts-ignore\n lastOp.retain += len\n } else if (len > 0) {\n list.pushEnd(this.children, new RetainOp(len, mergedFormats, mergedAttribution))\n }\n this.childCnt += len\n return this\n }\n\n /**\n * @param {number} len\n */\n delete (len) {\n modDeltaCheck(this)\n const lastOp = /** @type {DeleteOp|InsertOp<any>} */ (this.children.end)\n if (lastOp instanceof DeleteOp) {\n lastOp.delete += len\n } else if (len > 0) {\n list.pushEnd(this.children, new DeleteOp(len))\n }\n this.childCnt += len\n return this\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer Attrs,any,any,any> ? (keyof Attrs) : never} Key\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer Attrs,any,any,any> ? (Attrs[Key]) : never} Val\n * @param {Key} key\n * @param {Val} val\n * @param {Attribution?} attribution\n * @param {Val|undefined} [prevValue]\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof AddToAttrs<Attrs,Key,Val>]: AddToAttrs<Attrs,Key,Val>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n set (key, val, attribution = null, prevValue) {\n modDeltaCheck(this)\n this.attrs[key] = /** @type {any} */ (new AttrInsertOp(key, val, prevValue, mergeAttrs(this.usedAttribution, attribution)))\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer Attrs,any,any,any> ? Attrs : never} NewAttrs\n * @param {NewAttrs} attrs\n * @param {Attribution?} attribution\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof MergeAttrs<Attrs,NewAttrs>]: MergeAttrs<Attrs,NewAttrs>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n setMany (attrs, attribution = null) {\n modDeltaCheck(this)\n for (const k in attrs) {\n this.set(/** @type {any} */ (k), attrs[k], attribution)\n }\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer As,any,any,any> ? keyof As : never} Key\n * @param {Key} key\n * @param {Attribution?} attribution\n * @param {any} [prevValue]\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof AddToAttrs<Attrs,Key,never>]: AddToAttrs<Attrs,Key,never>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n unset (key, attribution = null, prevValue) {\n modDeltaCheck(this)\n this.attrs[key] = /** @type {any} */ (new AttrDeleteOp(key, prevValue, mergeAttrs(this.usedAttribution, attribution)))\n return /** @type {any} */ (this)\n }\n\n /**\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer As,any,any,any> ? { [K in keyof As]: Extract<As[K],Delta<any,any,any,any,any>> extends never ? never : K }[keyof As] : never} Key\n * @template {AllowedDeltaFromSchema<Schema> extends Delta<any,infer As,any,any,any> ? Extract<As[Key],Delta<any,any,any,any,any>> : never} D\n * @param {Key} key\n * @param {D} modify\n * @return {DeltaBuilder<\n * NodeName,\n * { [K in keyof AddToAttrs<Attrs,Key,D>]: AddToAttrs<Attrs,Key,D>[K] },\n * Children,\n * Text,\n * Schema\n * >}\n */\n update (key, modify) {\n modDeltaCheck(this)\n this.attrs[key] = /** @type {any} */ (new AttrModifyOp(key, modify))\n return /** @type {any} */ (this)\n }\n\n /**\n * @param {Delta<NodeName,Attrs,Children,Text,any>} other\n */\n apply (other) {\n modDeltaCheck(this)\n this.$schema?.expect(other)\n // apply attrs\n for (const op of other.attrs) {\n const c = /** @type {AttrInsertOp<any,any>|AttrDeleteOp<any>|AttrModifyOp<any,any>} */ (this.attrs[op.key])\n if ($modifyOp.check(op)) {\n if ($deltaAny.check(c?.value)) {\n c._modValue.apply(op.value)\n } else {\n // then this is a simple modify\n // @ts-ignore\n this.attrs[op.key] = op.clone()\n }\n } else if ($insertOp.check(op)) {\n // @ts-ignore\n op.prevValue = c?.value\n // @ts-ignore\n this.attrs[op.key] = op.clone()\n } else if ($deleteOp.check(op)) {\n op.prevValue = c?.value\n delete this.attrs[op.key]\n }\n }\n // apply children\n /**\n * @type {ChildrenOpAny?}\n */\n let opsI = this.children.start\n let offset = 0\n /**\n * At the end, we will try to merge this op, and op.next op with their respective previous op.\n *\n * Hence, anytime an op is cloned, deleted, or inserted (anytime list.* api is used) we must add\n * an op to maybeMergeable.\n *\n * @type {Array<InsertOp<any>|RetainOp|DeleteOp|TextOp|ModifyOp<any>>}\n */\n const maybeMergeable = []\n /**\n * @template {InsertOp<any>|RetainOp|DeleteOp|TextOp|ModifyOp<any>|null} OP\n * @param {OP} op\n * @return {OP}\n */\n const scheduleForMerge = op => {\n op && maybeMergeable.push(op)\n return op\n }\n other.children.forEach(op => {\n if ($textOp.check(op) || $insertOp.check(op)) {\n if (offset === 0) {\n list.insertBetween(this.children, opsI == null ? this.children.end : opsI.prev, opsI, scheduleForMerge(op.clone()))\n } else {\n if (opsI == null) error.unexpectedCase()\n const cpy = scheduleForMerge(opsI.clone(offset))\n opsI._splice(offset, opsI.length - offset)\n list.insertBetween(this.children, opsI, opsI.next || null, cpy)\n list.insertBetween(this.children, opsI, cpy || null, scheduleForMerge(op.clone()))\n offset = 0\n }\n this.childCnt += op.insert.length\n } else if ($retainOp.check(op)) {\n let skipLen = op.length\n while (opsI != null && opsI.length - offset <= skipLen) {\n skipLen -= opsI.length - offset\n opsI = opsI?.next || null\n offset = 0\n }\n if (opsI != null) {\n offset += skipLen\n } else {\n list.pushEnd(this.children, scheduleForMerge(new RetainOp(skipLen, op.format, op.attribution)))\n this.childCnt += skipLen\n }\n } else if ($deleteOp.check(op)) {\n let remainingLen = op.delete\n while (remainingLen > 0) {\n if (opsI == null) {\n list.pushEnd(this.children, scheduleForMerge(new DeleteOp(remainingLen)))\n this.childCnt += remainingLen\n break\n } else if (opsI instanceof DeleteOp) {\n const delLen = opsI.length - offset\n // the same content can't be deleted twice, remove duplicated deletes\n if (delLen >= remainingLen) {\n offset = 0\n opsI = opsI.next\n } else {\n offset += remainingLen\n }\n remainingLen -= delLen\n } else { // insert / embed / retain / modify ⇒ replace\n // case1: delete o fully\n // case2: delete some part of beginning\n // case3: delete some part of end\n // case4: delete some part of center\n const delLen = math.min(opsI.length - offset, remainingLen)\n this.childCnt -= delLen\n if (opsI.length === delLen) {\n // case 1\n offset = 0\n scheduleForMerge(opsI.next)\n list.remove(this.children, opsI)\n opsI = opsI.next\n } else if (offset === 0) {\n // case 2\n offset = 0\n opsI._splice(0, delLen)\n } else if (offset + delLen === opsI.length) {\n // case 3\n opsI._splice(offset, delLen)\n offset = 0\n opsI = opsI.next\n } else {\n // case 4\n opsI._splice(offset, delLen)\n }\n remainingLen -= delLen\n }\n }\n } else if ($modifyOp.check(op)) {\n if (opsI == null) {\n list.pushEnd(this.children, op.clone())\n this.childCnt += 1\n return\n }\n if ($modifyOp.check(opsI)) {\n opsI._modValue.apply(op.value)\n } else if ($insertOp.check(opsI)) {\n opsI._modValue(offset).apply(op.value)\n } else if ($retainOp.check(opsI)) {\n if (offset > 0) {\n const cpy = scheduleForMerge(opsI.clone(0, offset)) // skipped len\n opsI._splice(0, offset) // new remainder\n list.insertBetween(this.children, opsI.prev, opsI, cpy) // insert skipped len\n offset = 0\n }\n list.insertBetween(this.children, opsI.prev, opsI, scheduleForMerge(op.clone())) // insert skipped len\n if (opsI.length === 1) {\n list.remove(this.children, opsI)\n } else {\n opsI._splice(0, 1)\n scheduleForMerge(opsI)\n }\n } else if ($deleteOp.check(opsI)) {\n // nop\n } else {\n error.unexpectedCase()\n }\n } else {\n error.unexpectedCase()\n }\n })\n maybeMergeable.forEach(op => {\n // check if this is still integrated\n if (op.prev?.next === op) {\n tryMergeWithPrev(this.children, op)\n op.next && tryMergeWithPrev(this.children, op.next)\n }\n })\n return this\n }\n\n /**\n * @param {DeltaAny} other\n * @param {boolean} priority\n */\n rebase (other, priority) {\n modDeltaCheck(this)\n /**\n * Rebase attributes\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 for (const op of this.attrs) {\n if ($insertOp.check(op)) {\n if ($insertOp.check(other.attrs[op.key]) && !priority) {\n delete this.attrs[op.key]\n }\n } else if ($deleteOp.check(op)) {\n const otherOp = other.attrs[/** @type {any} */ (op.key)]\n if ($insertOp.check(otherOp)) {\n delete this.attrs[otherOp.key]\n }\n } else if ($modifyOp.check(op)) {\n const otherOp = other.attrs[/** @type {any} */ (op.key)]\n if (otherOp == null) {\n // nop\n } else if ($modifyOp.check(otherOp)) {\n op._modValue.rebase(otherOp.value, priority)\n } else {\n delete this.attrs[otherOp.key]\n }\n }\n }\n /**\n * Rebase children.\n *\n * Precedence: insert with higher priority comes first. Op with less priority is transformed to\n * be inserted later.\n *\n * @todo always check if inser OR text\n */\n /**\n * @type {ChildrenOpAny?}\n */\n let currChild = this.children.start\n let currOffset = 0\n /**\n * @type {ChildrenOpAny?}\n */\n let otherChild = other.children.start\n let otherOffset = 0\n while (currChild != null && otherChild != null) {\n if ($insertOp.check(currChild) || $textOp.check(currChild)) {\n /**\n * Transforming *insert*. If other is..\n * - insert: transform based on priority\n * - retain/delete/modify: transform next op against other\n */\n if ($insertOp.check(otherChild) || $modifyOp.check(otherChild) || $textOp.check(otherChild)) {\n if (!priority) {\n list.insertBetween(this.children, currChild.prev, currChild, new RetainOp(otherChild.length, null, null))\n this.childCnt += otherChild.length\n // curr is transformed against other, transform curr against next\n otherOffset = otherChild.length\n } else {\n // curr stays as is, transform next op\n currOffset = currChild.length\n }\n } else { // otherChild = delete | retain | modify - curr stays as is, transform next op\n currOffset = currChild.length\n }\n } else if ($modifyOp.check(currChild)) {\n /**\n * Transforming *modify*. If other is..\n * - insert: adjust position\n * - modify: rebase curr modify on other modify\n * - delete: remove modify\n * - retain: adjust offset\n */\n if ($insertOp.check(otherChild) || $textOp.check(otherChild)) {\n // @todo: with all list changes (retain insertions, removal), try to merge the surrounding\n // ops later\n list.insertBetween(this.children, currChild.prev, currChild, new RetainOp(otherChild.length, null, null))\n this.childCnt += otherChild.length\n // curr is transformed against other, transform curr against next\n otherOffset = otherChild.length\n } else {\n if ($modifyOp.check(otherChild)) {\n /** @type {any} */ (currChild.value).rebase(otherChild, priority)\n } else if ($deleteOp.check(otherChild)) {\n list.remove(this.children, currChild)\n this.childCnt -= 1\n }\n currOffset += 1\n otherOffset += 1\n }\n } else { // DeleteOp | RetainOp\n const maxCommonLen = math.min(currChild.length - currOffset, otherChild.length - otherOffset)\n /**\n * Transforming *retain* OR *delete*. If other is..\n * - retain / modify: adjust offsets\n * - delete: shorten curr op\n * - insert: split curr op and insert retain\n */\n if ($retainOp.check(otherChild) || $modifyOp.check(otherChild)) {\n currOffset += maxCommonLen\n otherOffset += maxCommonLen\n } else if ($deleteOp.check(otherChild)) {\n if ($retainOp.check(currChild)) {\n // @ts-ignore\n currChild.retain -= maxCommonLen\n } else if ($deleteOp.check(currChild)) {\n currChild.delete -= maxCommonLen\n }\n this.childCnt -= maxCommonLen\n } else { // insert/text.check(currOp)\n if (currOffset > 0) {\n const leftPart = currChild.clone(currOffset)\n list.insertBetween(this.children, currChild.prev, currChild, leftPart)\n currChild._splice(currOffset, currChild.length - currOffset)\n currOffset = 0\n }\n list.insertBetween(this.children, currChild.prev, currChild, new RetainOp(otherChild.length, null, null))\n this.childCnt += otherChild.length\n otherOffset = otherChild.length\n }\n }\n if (currOffset >= currChild.length) {\n currChild = currChild.next\n currOffset = 0\n }\n if (otherOffset >= otherChild.length) {\n otherChild = otherChild.next\n otherOffset = 0\n }\n }\n return this\n }\n\n /**\n * Same as doing `delta.rebase(other.inverse())`, without creating a temporary delta.\n *\n * @param {DeltaAny} other\n * @param {boolean} priority\n */\n rebaseOnInverse (other, priority) {\n modDeltaCheck(this)\n // @todo\n console.info('method rebaseOnInverse unimplemented')\n return this\n }\n\n /**\n * Append child ops from one op to the other.\n *\n * delta.create().insert('a').append(delta.create().insert('b')) // => insert \"ab\"\n *\n * @template {DeltaAny} OtherDelta\n * @param {OtherDelta} other\n * @return {CastToDelta<OtherDelta> extends Delta<any,any,infer OtherChildren,infer OtherText,any> ? DeltaBuilder<NodeName,Attrs,Children|OtherChildren,Text|OtherText,Schema> : never}\n */\n append (other) {\n // @todo Investigate. Above is a typescript issue. It is necessary to cast OtherDelta to a Delta first before\n // inferring type, otherwise Children will contain Text.\n for (const child of other.children) {\n list.pushEnd(this.children, child.clone())\n }\n // @ts-ignore\n return this\n }\n}\n\n/**\n * @template {DeltaAny} D\n * @typedef {D extends DeltaBuilder<infer N,infer Attrs,infer Children,infer Text,infer Schema> ? Delta<N,Attrs,Children,Text,Schema> : D} CastToDelta\n */\n\n/**\n * @template {string} NodeName\n * @template {{ [key: string|number]: any }} [Attrs={}]\n * @template {fingerprintTrait.Fingerprintable|never} [Children=never]\n * @template {string|never} [Text=never]\n * @typedef {Delta<NodeName,Attrs,Children|Delta<NodeName,Attrs,Children,Text>|RecursiveDelta<NodeName,Attrs,Children,Text>,Text>} RecursiveDelta\n */\n\n/**\n * @template {string} Name\n * @template {{[k:string|number]:any}} Attrs\n * @template {fingerprintTrait.Fingerprintable} Children\n * @template {boolean} HasText\n * @template {{ [k:string]:any }} Formats\n * @template {boolean} Recursive\n * @extends {s.Schema<Delta<\n * Name,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<Name,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never,\n * any>>}\n */\nexport class $Delta extends s.Schema {\n /**\n * @param {s.Schema<Name>} $name\n * @param {s.Schema<Attrs>} $attrs\n * @param {s.Schema<Children>} $children\n * @param {HasText} hasText\n * @param {s.Schema<Formats>} $formats\n * @param {Recursive} recursive\n */\n constructor ($name, $attrs, $children, hasText, $formats, recursive) {\n super()\n const $attrsPartial = s.$$object.check($attrs) ? $attrs.partial : $attrs\n if (recursive) {\n // @ts-ignore\n $children = s.$union($children, this)\n }\n this.shape = { $name, $attrs: $attrsPartial, $children, hasText, $formats }\n }\n\n /**\n * @param {any} o\n * @param {s.ValidationError} [err]\n * @return {o is Delta<\n * Name,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<Name,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never,\n * any>}\n */\n check (o, err = undefined) {\n const { $name, $attrs, $children, hasText, $formats } = this.shape\n if (!(o instanceof Delta)) {\n err?.extend(null, 'Delta', o?.constructor.name, 'Constructor match failed')\n } else if (!$name.check(o.name, err)) {\n err?.extend('Delta.name', $name.toString(), o.name, 'Constructor match failed')\n } else if (list.toArray(o.children).some(c => (!hasText && $textOp.check(c)) || (hasText && $textOp.check(c) && c.format != null && !$formats.check(c.format)) || ($insertOp.check(c) && !c.insert.every(ins => $children.check(ins))))) {\n err?.extend('Delta.children', '', '', 'Children don\\'t match the schema')\n } else if (object.some(o.attrs, (op, k) => $insertOp.check(op) && !$attrs.check({ [k]: op.value }, err))) {\n err?.extend('Delta.attrs', '', '', 'Attrs don\\'t match the schema')\n } else {\n return true\n }\n return false\n }\n}\n\n/**\n * @template {s.Schema<string>|string|Array<string>} [NodeNameSchema=s.Schema<any>]\n * @template {s.Schema<{ [key: string|number]: any }>|{ [key:string|number]:any }} [AttrsSchema=s.Schema<{}>]\n * @template {any} [ChildrenSchema=s.Schema<never>]\n * @template {boolean} [HasText=false]\n * @template {boolean} [Recursive=false]\n * @template {{ [k:string]:any }} [Formats={[k:string]:any}]\n * @param {object} opts\n * @param {NodeNameSchema?} [opts.name]\n * @param {AttrsSchema?} [opts.attrs] What key-value pairs are included.\n * @param {ChildrenSchema?} [opts.children] The type of content in `insertOp`\n * @param {HasText} [opts.text] Whether this delta contains text using `textOp`\n * @param {Formats} [opts.formats]\n * @param {Recursive} [opts.recursive]\n * @return {[s.Unwrap<s.ReadSchema<NodeNameSchema>>,s.Unwrap<s.ReadSchema<AttrsSchema>>,s.Unwrap<s.ReadSchema<ChildrenSchema>>] extends [infer NodeName, infer Attrs, infer Children] ? s.Schema<Delta<\n * NodeName,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<NodeName,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never\n * >> : never}\n */\nexport const $delta = ({ name, attrs, children, text, formats, recursive }) => /** @type {any} */ (new $Delta(\n name == null ? s.$any : s.$(name),\n /** @type {any} */ (attrs == null ? s.$object({}) : s.$(attrs)),\n /** @type {any} */ (children == null ? s.$never : s.$(children)),\n text ?? false,\n formats == null ? s.$any : s.$(formats),\n recursive ?? false\n))\n\nexport const $$delta = s.$constructedBy($Delta)\n\n/**\n * @todo remove this\n *\n * @template {s.Schema<string>|string|Array<string>} [NodeNameSchema=s.Schema<any>]\n * @template {s.Schema<{ [key: string|number]: any }>|{ [key:string|number]:any }} [AttrsSchema=s.Schema<{}>]\n * @template {any} [ChildrenSchema=s.Schema<never>]\n * @template {boolean} [HasText=false]\n * @template {boolean} [Recursive=false]\n * @param {object} opts\n * @param {NodeNameSchema?} [opts.name]\n * @param {AttrsSchema?} [opts.attrs]\n * @param {ChildrenSchema?} [opts.children]\n * @param {HasText} [opts.text]\n * @param {Recursive} [opts.recursive]\n * @return {[s.Unwrap<s.ReadSchema<NodeNameSchema>>,s.Unwrap<s.ReadSchema<AttrsSchema>>,s.Unwrap<s.ReadSchema<ChildrenSchema>>] extends [infer NodeName, infer Attrs, infer Children] ? s.Schema<Delta<\n * NodeName,\n * Attrs,\n * Children|(Recursive extends true ? RecursiveDelta<NodeName,Attrs,Children,HasText extends true ? string : never> : never),\n * HasText extends true ? string : never\n * >> : never}\n */\nexport const _$delta = ({ name, attrs, children, text, recursive }) => {\n /**\n * @type {s.Schema<Array<any>>}\n */\n let $arrContent = children == null ? s.$never : s.$array(s.$(children))\n const $name = name == null ? s.$any : s.$(name)\n const $attrsPartial = attrs == null ? s.$object({}) : (s.$$record.check(attrs) ? attrs : /** @type {any} */ (s.$(attrs)).partial)\n const $d = s.$instanceOf(Delta, /** @param {Delta<any,any,any,any,any>} d */ d => {\n if (\n !$name.check(d.name) ||\n object.some(d.attrs,\n (op, k) => $insertOp.check(op) && !$attrsPartial.check({ [k]: op.value })\n )\n ) return false\n for (const op of d.children) {\n if ((!text && $textOp.check(op)) || ($insertOp.check(op) && !$arrContent.check(op.insert))) {\n return false\n }\n }\n return true\n })\n if (recursive) {\n $arrContent = children == null ? s.$array($d) : s.$array(s.$(children), $d)\n }\n return /** @type {any} */ ($d)\n}\n\n/**\n * @type {s.Schema<DeltaAny>}\n */\nexport const $deltaAny = /** @type {any} */ (s.$instanceOf(Delta))\n\n/**\n * Helper function to merge attribution and attributes. The latter input \"wins\".\n *\n * @template {{ [key: string]: any }} T\n * @param {T | null} a\n * @param {T | null} b\n */\nexport const mergeAttrs = (a, b) => object.isEmpty(a) ? b : (object.isEmpty(b) ? a : object.assign({}, a, b))\n\n/**\n * @template {DeltaAny|null} D\n * @param {D} a\n * @param {D} b\n * @return {D}\n */\nexport const mergeDeltas = (a, b) => {\n if (a != null && b != null) {\n const c = clone(a)\n c.apply(b)\n return /** @type {any} */ (c)\n }\n return a == null ? b : (a || null)\n}\n\n/**\n * @template {DeltaAny} D\n * @param {prng.PRNG} gen\n * @param {s.Schema<D>} $d\n * @return {D extends Delta<infer NodeName,infer Attrs,infer Children,infer Text,infer Schema> ? DeltaBuilder<NodeName,Attrs,Children,Text,Schema> : never}\n */\nexport const random = (gen, $d) => {\n const { $name, $attrs, $children, hasText, $formats: $formats_ } = /** @type {$Delta<any,any,any,boolean,any,any>} */ (/** @type {any} */ ($d)).shape\n const d = s.$$any.check($name) ? create($deltaAny) : create(s.random(gen, $name), $deltaAny)\n const $formats = s.$$any.check($formats_) ? s.$null : $formats_\n prng.bool(gen) && d.setMany(s.random(gen, $attrs))\n for (let i = prng.uint32(gen, 0, 5); i > 0; i--) {\n if (hasText && prng.bool(gen)) {\n d.insert(prng.word(gen), s.random(gen, $formats))\n } else if (!s.$$never.check($children)) {\n /**\n * @type {Array<any>}\n */\n const ins = []\n let insN = prng.int32(gen, 0, 5)\n while (insN--) {\n ins.push(s.random(gen, $children))\n }\n d.insert(ins, s.random(gen, $formats))\n }\n }\n return /** @type {any} */ (d)\n}\n\n/**\n * @overload\n * @return {DeltaBuilder<any,{},never,never,null>}\n */\n/**\n * @template {string} NodeName\n * @overload\n * @param {NodeName} nodeName\n * @return {DeltaBuilder<NodeName,{},never,never,null>}\n */\n/**\n * @template {string} NodeName\n * @template {s.Schema<DeltaAny>} Schema\n * @overload\n * @param {NodeName} nodeName\n * @param {Schema} schema\n * @return {Schema extends s.Schema<Delta<infer N,infer Attrs,infer Children,infer Text,any>> ? DeltaBuilder<NodeName,Attrs,Children,Text,Schema> : never}\n */\n/**\n * @template {s.Schema<DeltaAny>} Schema\n * @overload\n * @param {Schema} schema\n * @return {Schema extends s.Schema<Delta<infer N,infer Attrs,infer Children,infer Text,any>> ? DeltaBuilder<N,Attrs,Children,Text,Schema> : never}\n */\n/**\n * @template {string|null} NodeName\n * @template {{[k:string|number]:any}|null} Attrs\n * @template {Array<any>|string} [Children=never]\n * @overload\n * @param {NodeName} nodeName\n * @param {Attrs} attrs\n * @param {Children} [children]\n * @return {DeltaBuilder<\n * NodeName extends null ? any : NodeName,\n * Attrs extends null ? {} : Attrs,\n * Extract<Children,Array<any>> extends Array<infer Ac> ? (unknown extends Ac ? never : Ac) : never,\n * Extract<Children,string>,\n * null\n * >}\n */\n/**\n * @param {string|s.Schema<DeltaAny>} [nodeNameOrSchema]\n * @param {{[K:string|number]:any}|s.Schema<DeltaAny>} [attrsOrSchema]\n * @param {(Array<any>|string)} [children]\n * @return {DeltaBuilder<any,any,any,any,any>}\n */\nexport const create = (nodeNameOrSchema, attrsOrSchema, children) => {\n const nodeName = /** @type {any} */ (s.$string.check(nodeNameOrSchema) ? nodeNameOrSchema : null)\n const schema = /** @type {any} */ (s.$$schema.check(nodeNameOrSchema) ? nodeNameOrSchema : (s.$$schema.check(attrsOrSchema) ? attrsOrSchema : null))\n const d = /** @type {DeltaBuilder<any,any,any,string,null>} */ (new DeltaBuilder(nodeName, schema))\n if (s.$objectAny.check(attrsOrSchema)) {\n d.setMany(attrsOrSchema)\n }\n children && d.insert(children)\n return d\n}\n\n// DELTA TEXT\n\n/**\n * @template {fingerprintTrait.Fingerprintable} [Embeds=never]\n * @typedef {Delta<any,{},Embeds,string>} TextDelta\n */\n\n/**\n * @template {fingerprintTrait.Fingerprintable} [Embeds=never]\n * @typedef {DeltaBuilder<any,{},Embeds,string>} TextDeltaBuilder\n */\n\n/**\n * @template {Array<s.Schema<any>>} [$Embeds=any]\n * @param {$Embeds} $embeds\n * @return {s.Schema<TextDelta<_AnyToNull<$Embeds> extends null ? never : ($Embeds extends Array<s.Schema<infer $C>> ? $C : never)>>}\n */\nexport const $text = (...$embeds) => /** @type {any} */ ($delta({ children: s.$union(...$embeds), text: true }))\nexport const $textOnly = $text()\n\n/**\n * @template {s.Schema<Delta<any,{},any,any,null>>} [Schema=s.Schema<Delta<any,{},never,string,null>>]\n * @param {Schema} [$schema]\n * @return {Schema extends s.Schema<Delta<infer N,infer Attrs,infer Children,infer Text,any>> ? DeltaBuilder<N,Attrs,Children,Text,Schema> : never}\n */\nexport const text = $schema => /** @type {any} */ (create($schema || $textOnly))\n\n/**\n * @template {fingerprintTrait.Fingerprintable} Children\n * @typedef {Delta<any,{},Children,never>} ArrayDelta\n */\n\n/**\n * @template {fingerprintTrait.Fingerprintable} Children\n * @typedef {DeltaBuilder<any,{},Children,never>} ArrayDeltaBuilder\n */\n\n/**\n * @template {any|s.Schema<any>} $Children\n * @param {$Children} [$children]\n * @return {s.Schema<ArrayDelta<s.Unwrap<s.ReadSchema<$Children>>>>}\n */\nexport const $array = $children => /** @type {any} */ ($delta({ children: $children }))\n\n/**\n * @template {s.Schema<ArrayDelta<any>>} [$Schema=never]\n * @param {$Schema} $schema\n * @return {$Schema extends never ? ArrayDeltaBuilder<never> : DeltaBuilder<any,{},never,never,$Schema>}\n */\nexport const array = $schema => /** @type {any} */ ($schema ? create($schema) : create())\n\n/**\n * @template {{ [K: string|number]: any }} Attrs\n * @typedef {Delta<any,Attrs,never,never>} MapDelta\n */\n\n/**\n * @template {{ [K: string|number]: any }} Attrs\n * @typedef {DeltaBuilder<any,Attrs,never,never>} MapDeltaBuilder\n */\n\n/**\n * @template {{ [K: string|number]: any }} $Attrs\n * @param {s.Schema<$Attrs>} $attrs\n * @return {s.Schema<MapDelta<$Attrs>>}\n */\nexport const $map = $attrs => /** @type {any} */ ($delta({ attrs: $attrs }))\n\n/**\n * @template {s.Schema<MapDelta<any>>|undefined} [$Schema=undefined]\n * @param {$Schema} [$schema]\n * @return {$Schema extends s.Schema<MapDelta<infer Attrs>> ? DeltaBuilder<any,Attrs,never,never,$Schema> : MapDeltaBuilder<{}>}\n */\nexport const map = $schema => /** @type {any} */ (create(/** @type {any} */ ($schema)))\n\n/**\n * @template {DeltaAny} D\n * @param {D} d1\n * @param {NoInfer<D>} d2\n * @return {D}\n */\nexport const diff = (d1, d2) => {\n /**\n * @type {DeltaBuilderAny}\n */\n const d = create()\n if (d1.fingerprint !== d2.fingerprint) {\n let left1 = d1.children.start\n let left2 = d2.children.start\n let right1 = d1.children.end\n let right2 = d2.children.end\n let commonPrefixOffset = 0\n // perform a patience sort\n // 1) remove common prefix and suffix\n while (left1 != null && left1.fingerprint === left2?.fingerprint) {\n if (!$deleteOp.check(left1)) {\n commonPrefixOffset += left1.length\n }\n left1 = left1.next\n left2 = left2.next\n }\n while (right1 !== null && right1 !== left1 && right1.fingerprint === right2?.fingerprint) {\n right1 = right1.prev\n right2 = right2.prev\n }\n /**\n * @type {Array<ChildrenOpAny>}\n */\n const ops1 = []\n /**\n * @type {Array<ChildrenOpAny>}\n */\n const ops2 = []\n while (left1 !== null && left1 !== right1?.next) {\n ops1.push(left1)\n left1 = left1.next\n }\n while (left2 !== null && left2 !== right2?.next) {\n ops2.push(left2)\n left2 = left2.next\n }\n const fprints1 = ops1.map(op => op.fingerprint)\n const fprints2 = ops2.map(op => op.fingerprint)\n const changeset = patience.diff(fprints1, fprints2)\n d.retain(commonPrefixOffset)\n for (let i = 0, lastIndex1 = 0, currIndexOffset2 = 0; i < changeset.length; i++) {\n const change = changeset[i]\n d.retain(change.index - lastIndex1)\n // insert minimal diff at curred position in d\n /**\n * @param {DeltaBuilderAny} d\n * @param {ChildrenOpAny[]} opsIs\n * @param {ChildrenOpAny[]} opsShould\n */\n const diffAndApply = (d, opsIs, opsShould) => {\n // @todo unoptimized implementation. Convert content to array and diff that based on\n // generated fingerprints. We probably could do better and cache more information.\n // - benchmark\n // - cache fingerprints in ops\n /**\n * @type {Array<string|DeltaAny|fingerprintTrait.Fingerprintable>}\n */\n const isContent = opsIs.flatMap(op => $insertOp.check(op) ? op.insert : ($textOp.check(op) ? op.insert.split('') : error.unexpectedCase()))\n /**\n * @type {Array<string|DeltaAny|fingerprintTrait.Fingerprintable>}\n */\n const shouldContent = opsShould.flatMap(op => $insertOp.check(op) ? op.insert : ($textOp.check(op) ? op.insert.split('') : error.unexpectedCase()))\n const isContentFingerprinted = isContent.map(c => s.$string.check(c) ? c : fingerprintTrait.fingerprint(c))\n const shouldContentFingerprinted = shouldContent.map(c => s.$string.check(c) ? c : fingerprintTrait.fingerprint(c))\n /**\n * @type {{ index: number, insert: Array<string|DeltaAny|fingerprintTrait.Fingerprintable>, remove: Array<string|DeltaAny|fingerprintTrait.Fingerprintable> }[]}\n */\n const cdiff = patience.diff(isContentFingerprinted, shouldContentFingerprinted)\n // overwrite fingerprinted content with actual content\n for (let i = 0, adj = 0; i < cdiff.length; i++) {\n const cd = cdiff[i]\n cd.remove = isContent.slice(cd.index, cd.index + cd.remove.length)\n cd.insert = shouldContent.slice(cd.index + adj, cd.index + adj + cd.insert.length)\n adj += cd.remove.length - cd.insert.length\n }\n for (let i = 0, lastIndex = 0; i < cdiff.length; i++) {\n const cd = cdiff[i]\n d.retain(cd.index - lastIndex)\n let cdii = 0\n let cdri = 0\n // try to match as much content as possible, preferring to skip over non-deltas\n for (; cdii < cd.insert.length && cdri < cd.remove.length;) {\n const a = cd.insert[cdii]\n const b = cd.remove[cdri]\n if ($deltaAny.check(a) && $deltaAny.check(b) && a.name === b.name) {\n d.modify(diff(a, b))\n cdii++\n cdri++\n } else if ($deltaAny.check(b)) {\n d.insert(s.$string.check(a) ? a : [a])\n cdii++\n } else {\n d.delete(1)\n cdri++\n }\n }\n for (; cdii < cd.insert.length; cdii++) {\n const a = cd.insert[cdii]\n d.insert(s.$string.check(a) ? a : [a])\n }\n d.delete(cd.remove.length - cdri)\n }\n }\n diffAndApply(d, ops1.slice(change.index, change.index + change.remove.length), ops2.slice(change.index + currIndexOffset2, change.index + currIndexOffset2 + change.insert.length))\n lastIndex1 = change.index + change.remove.length\n currIndexOffset2 += change.insert.length - change.remove.length\n }\n for (const attr2 of d2.attrs) {\n const attr1 = d1.attrs[attr2.key]\n if (attr1 == null || (attr1.fingerprint !== attr2.fingerprint)) {\n /* c8 ignore else */\n if ($insertOp.check(attr2)) {\n d.set(attr2.key, attr2.value)\n } else {\n /* c8 ignore next 2 */\n error.unexpectedCase()\n }\n }\n }\n for (const attr1 of d1.attrs) {\n if (d2.attrs[attr1.key] == null) {\n d.unset(attr1.key)\n }\n }\n }\n return /** @type {D} */ (d.done(false))\n}\n"],"names":["s.$object","s.$array","s.$string","s.$number","s.$record","s.$union","s.$literal","s.$any","list.ListNode","buffer.toBase64","encoding.encode","encoding.writeVarUint","encoding.writeVarString","encoding.writeAny","object.assign","equalityTrait.EqualityTraitSymbol","fun.equalityDeep","fingerprintTrait.fingerprint","encoding.writeUint8","s.$custom","s.$constructedBy","list.create","encoding.writeUint32","rabin.fingerprint","rabin.StandardIrreducible128","encoding.toUint8Array","fingerprintTrait.FingerprintTraitSymbol","object.isEmpty","list.isEmpty","math.min","list.pushEnd","list.popEnd","error.unexpectedCase","list.remove","error.create","arr.isArray","list.insertBetween","s.Schema","s.$$object","list.toArray","object.some","s.$","s.$never","s.$$record","s.$instanceOf","s.$$any","s.random","s.$null","prng.bool","prng.uint32","prng.word","s.$$never","prng.int32","schema","s.$$schema","s.$objectAny","patience.diff"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var _function = require('./function-e7d18feb.cjs');
3
+ var _function = require('./function-b4e49016.cjs');
4
4
 
5
5
  /**
6
6
  * Efficient diffs.
@@ -159,4 +159,4 @@ exports.simpleDiff = simpleDiff;
159
159
  exports.simpleDiffArray = simpleDiffArray;
160
160
  exports.simpleDiffString = simpleDiffString;
161
161
  exports.simpleDiffStringWithCursor = simpleDiffStringWithCursor;
162
- //# sourceMappingURL=diff-1832cb43.cjs.map
162
+ //# sourceMappingURL=diff-dc7bdc65.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-1832cb43.cjs","sources":["../diff.js"],"sourcesContent":["/**\n * Efficient diffs.\n *\n * @module diff\n */\n\nimport { equalityStrict } from './function.js'\n\n/**\n * A SimpleDiff describes a change on a String.\n *\n * ```js\n * console.log(a) // the old value\n * console.log(b) // the updated value\n * // Apply changes of diff (pseudocode)\n * a.remove(diff.index, diff.remove) // Remove `diff.remove` characters\n * a.insert(diff.index, diff.insert) // Insert `diff.insert`\n * a === b // values match\n * ```\n *\n * @template {string|Array<any>} T\n * @typedef {Object} SimpleDiff\n * @property {Number} index The index where changes were applied\n * @property {Number} remove The number of characters to delete starting\n * at `index`.\n * @property {T} insert The new text to insert at `index` after applying\n */\n\nconst highSurrogateRegex = /[\\uD800-\\uDBFF]/\nconst lowSurrogateRegex = /[\\uDC00-\\uDFFF]/\n\n/**\n * Create a diff between two strings. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * @function\n *\n * @param {string} a The old version of the string\n * @param {string} b The updated version of the string\n * @return {SimpleDiff<string>} The diff description.\n */\nexport const simpleDiffString = (a, b) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && a[left] === b[left]) {\n left++\n }\n // If the last same character is a high surrogate, we need to rollback to the previous character\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {\n right++\n }\n // If the last same character is a low surrogate, we need to rollback to the previous character\n if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * @todo Remove in favor of simpleDiffString\n * @deprecated\n */\nexport const simpleDiff = simpleDiffString\n\n/**\n * Create a diff between two arrays. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * Note: This is basically the same function as above. Another function was created so that the runtime\n * can better optimize these function calls.\n *\n * @function\n * @template T\n *\n * @param {Array<T>} a The old version of the array\n * @param {Array<T>} b The updated version of the array\n * @param {function(T, T):boolean} [compare]\n * @return {SimpleDiff<Array<T>>} The diff description.\n */\nexport const simpleDiffArray = (a, b, compare = equalityStrict) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && compare(a[left], b[left])) {\n left++\n }\n while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {\n right++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * Diff text and try to diff at the current cursor position.\n *\n * @param {string} a\n * @param {string} b\n * @param {number} cursor This should refer to the current left cursor-range position\n */\nexport const simpleDiffStringWithCursor = (a, b, cursor) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n // Iterate left to the right until we find a changed character\n // First iteration considers the current cursor position\n while (\n left < a.length &&\n left < b.length &&\n a[left] === b[left] &&\n left < cursor\n ) {\n left++\n }\n // If the last same character is a high surrogate, we need to rollback to the previous character\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n // Iterate right to the left until we find a changed character\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[a.length - right - 1] === b[b.length - right - 1]\n ) {\n right++\n }\n // If the last same character is a low surrogate, we need to rollback to the previous character\n if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--\n // Try to iterate left further to the right without caring about the current cursor position\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[left] === b[left]\n ) {\n left++\n }\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n"],"names":["equalityStrict"],"mappings":"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"}
1
+ {"version":3,"file":"diff-dc7bdc65.cjs","sources":["../diff.js"],"sourcesContent":["/**\n * Efficient diffs.\n *\n * @module diff\n */\n\nimport { equalityStrict } from './function.js'\n\n/**\n * A SimpleDiff describes a change on a String.\n *\n * ```js\n * console.log(a) // the old value\n * console.log(b) // the updated value\n * // Apply changes of diff (pseudocode)\n * a.remove(diff.index, diff.remove) // Remove `diff.remove` characters\n * a.insert(diff.index, diff.insert) // Insert `diff.insert`\n * a === b // values match\n * ```\n *\n * @template {string|Array<any>} T\n * @typedef {Object} SimpleDiff\n * @property {Number} index The index where changes were applied\n * @property {Number} remove The number of characters to delete starting\n * at `index`.\n * @property {T} insert The new text to insert at `index` after applying\n */\n\nconst highSurrogateRegex = /[\\uD800-\\uDBFF]/\nconst lowSurrogateRegex = /[\\uDC00-\\uDFFF]/\n\n/**\n * Create a diff between two strings. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * @function\n *\n * @param {string} a The old version of the string\n * @param {string} b The updated version of the string\n * @return {SimpleDiff<string>} The diff description.\n */\nexport const simpleDiffString = (a, b) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && a[left] === b[left]) {\n left++\n }\n // If the last same character is a high surrogate, we need to rollback to the previous character\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {\n right++\n }\n // If the last same character is a low surrogate, we need to rollback to the previous character\n if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * @todo Remove in favor of simpleDiffString\n * @deprecated\n */\nexport const simpleDiff = simpleDiffString\n\n/**\n * Create a diff between two arrays. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * Note: This is basically the same function as above. Another function was created so that the runtime\n * can better optimize these function calls.\n *\n * @function\n * @template T\n *\n * @param {Array<T>} a The old version of the array\n * @param {Array<T>} b The updated version of the array\n * @param {function(T, T):boolean} [compare]\n * @return {SimpleDiff<Array<T>>} The diff description.\n */\nexport const simpleDiffArray = (a, b, compare = equalityStrict) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && compare(a[left], b[left])) {\n left++\n }\n while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {\n right++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * Diff text and try to diff at the current cursor position.\n *\n * @param {string} a\n * @param {string} b\n * @param {number} cursor This should refer to the current left cursor-range position\n */\nexport const simpleDiffStringWithCursor = (a, b, cursor) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n // Iterate left to the right until we find a changed character\n // First iteration considers the current cursor position\n while (\n left < a.length &&\n left < b.length &&\n a[left] === b[left] &&\n left < cursor\n ) {\n left++\n }\n // If the last same character is a high surrogate, we need to rollback to the previous character\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n // Iterate right to the left until we find a changed character\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[a.length - right - 1] === b[b.length - right - 1]\n ) {\n right++\n }\n // If the last same character is a low surrogate, we need to rollback to the previous character\n if (right > 0 && lowSurrogateRegex.test(a[a.length - right])) right--\n // Try to iterate left further to the right without caring about the current cursor position\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[left] === b[left]\n ) {\n left++\n }\n if (left > 0 && highSurrogateRegex.test(a[left - 1])) left--\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n"],"names":["equalityStrict"],"mappings":"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"}
package/dist/diff.cjs CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./function-e7d18feb.cjs');
6
- var diff = require('./diff-1832cb43.cjs');
5
+ require('./function-b4e49016.cjs');
6
+ var diff = require('./diff-dc7bdc65.cjs');
7
7
  require('./array-78849c95.cjs');
8
8
  require('./set-5b47859e.cjs');
9
- require('./object-18980796.cjs');
10
- require('./traits.cjs');
9
+ require('./object-dec41ef9.cjs');
10
+ require('./equality.cjs');
11
11
 
12
12
 
13
13
 
@@ -368,4 +368,4 @@ exports.replaceWith = replaceWith;
368
368
  exports.setAttributes = setAttributes;
369
369
  exports.setAttributesMap = setAttributesMap;
370
370
  exports.text = text;
371
- //# sourceMappingURL=dom-f5047a64.cjs.map
371
+ //# sourceMappingURL=dom-cad267af.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom-f5047a64.cjs","sources":["../dom.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Utility module to work with the DOM.\n *\n * @module dom\n */\n\nimport * as pair from './pair.js'\nimport * as map from './map.js'\nimport * as $ from './schema.js'\n\n/* c8 ignore start */\n/**\n * @type {Document}\n */\nexport const doc = /** @type {Document} */ (typeof document !== 'undefined' ? document : {})\n\n/**\n * @param {string} name\n * @return {HTMLElement}\n */\nexport const createElement = name => doc.createElement(name)\n\n/**\n * @return {DocumentFragment}\n */\nexport const createDocumentFragment = () => doc.createDocumentFragment()\n\n/**\n * @type {$.Schema<DocumentFragment>}\n */\nexport const $fragment = $.$custom(el => el.nodeType === DOCUMENT_FRAGMENT_NODE)\n\n/**\n * @param {string} text\n * @return {Text}\n */\nexport const createTextNode = text => doc.createTextNode(text)\n\nexport const domParser = /** @type {DOMParser} */ (typeof DOMParser !== 'undefined' ? new DOMParser() : null)\n\n/**\n * @param {HTMLElement} el\n * @param {string} name\n * @param {Object} opts\n */\nexport const emitCustomEvent = (el, name, opts) => el.dispatchEvent(new CustomEvent(name, opts))\n\n/**\n * @param {Element} el\n * @param {Array<pair.Pair<string,string|boolean>>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributes = (el, attrs) => {\n pair.forEach(attrs, (key, value) => {\n if (value === false) {\n el.removeAttribute(key)\n } else if (value === true) {\n el.setAttribute(key, '')\n } else {\n // @ts-ignore\n el.setAttribute(key, value)\n }\n })\n return el\n}\n\n/**\n * @param {Element} el\n * @param {Map<string, string>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributesMap = (el, attrs) => {\n attrs.forEach((value, key) => { el.setAttribute(key, value) })\n return el\n}\n\n/**\n * @param {Array<Node>|HTMLCollection} children\n * @return {DocumentFragment}\n */\nexport const fragment = children => {\n const fragment = createDocumentFragment()\n for (let i = 0; i < children.length; i++) {\n appendChild(fragment, children[i])\n }\n return fragment\n}\n\n/**\n * @param {Element} parent\n * @param {Array<Node>} nodes\n * @return {Element}\n */\nexport const append = (parent, nodes) => {\n appendChild(parent, fragment(nodes))\n return parent\n}\n\n/**\n * @param {HTMLElement} el\n */\nexport const remove = el => el.remove()\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const addEventListener = (el, name, f) => el.addEventListener(name, f)\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const removeEventListener = (el, name, f) => el.removeEventListener(name, f)\n\n/**\n * @param {Node} node\n * @param {Array<pair.Pair<string,EventListener>>} listeners\n * @return {Node}\n */\nexport const addEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => addEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {Node} node\n * @param {Array<pair.Pair<string,EventListener>>} listeners\n * @return {Node}\n */\nexport const removeEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => removeEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {string} name\n * @param {Array<pair.Pair<string,string>|pair.Pair<string,boolean>>} attrs Array of key-value pairs\n * @param {Array<Node>} children\n * @return {Element}\n */\nexport const element = (name, attrs = [], children = []) =>\n append(setAttributes(createElement(name), attrs), children)\n\n/**\n * @type {$.Schema<Element>}\n */\nexport const $element = $.$custom(el => el.nodeType === ELEMENT_NODE)\n\n/**\n * @param {number} width\n * @param {number} height\n */\nexport const canvas = (width, height) => {\n const c = /** @type {HTMLCanvasElement} */ (createElement('canvas'))\n c.height = height\n c.width = width\n return c\n}\n\n/**\n * @param {string} t\n * @return {Text}\n */\nexport const text = createTextNode\n\n/**\n * @type {$.Schema<Text>}\n */\nexport const $text = $.$custom(el => el.nodeType === TEXT_NODE)\n\n/**\n * @param {pair.Pair<string,string>} pair\n */\nexport const pairToStyleString = pair => `${pair.left}:${pair.right};`\n\n/**\n * @param {Array<pair.Pair<string,string>>} pairs\n * @return {string}\n */\nexport const pairsToStyleString = pairs => pairs.map(pairToStyleString).join('')\n\n/**\n * @param {Map<string,string>} m\n * @return {string}\n */\nexport const mapToStyleString = m => map.map(m, (value, key) => `${key}:${value};`).join('')\n\n/**\n * @todo should always query on a dom element\n *\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {HTMLElement | null}\n */\nexport const querySelector = (el, query) => el.querySelector(query)\n\n/**\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {NodeListOf<HTMLElement>}\n */\nexport const querySelectorAll = (el, query) => el.querySelectorAll(query)\n\n/**\n * @param {string} id\n * @return {HTMLElement}\n */\nexport const getElementById = id => /** @type {HTMLElement} */ (doc.getElementById(id))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nconst _parse = html => domParser.parseFromString(`<html><body>${html}</body></html>`, 'text/html').body\n\n/**\n * @param {string} html\n * @return {DocumentFragment}\n */\nexport const parseFragment = html => fragment(/** @type {any} */ (_parse(html).childNodes))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nexport const parseElement = html => /** @type HTMLElement */ (_parse(html).firstElementChild)\n\n/**\n * @param {HTMLElement} oldEl\n * @param {HTMLElement|DocumentFragment} newEl\n */\nexport const replaceWith = (oldEl, newEl) => oldEl.replaceWith(newEl)\n\n/**\n * @param {HTMLElement} parent\n * @param {HTMLElement} el\n * @param {Node|null} ref\n * @return {HTMLElement}\n */\nexport const insertBefore = (parent, el, ref) => parent.insertBefore(el, ref)\n\n/**\n * @param {Node} parent\n * @param {Node} child\n * @return {Node}\n */\nexport const appendChild = (parent, child) => parent.appendChild(child)\n\nexport const ELEMENT_NODE = doc.ELEMENT_NODE\nexport const TEXT_NODE = doc.TEXT_NODE\nexport const CDATA_SECTION_NODE = doc.CDATA_SECTION_NODE\nexport const COMMENT_NODE = doc.COMMENT_NODE\nexport const DOCUMENT_NODE = doc.DOCUMENT_NODE\nexport const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE\nexport const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE\n\n/**\n * @type {$.Schema<Node>}\n */\nexport const $node = $.$custom(el => el.nodeType === DOCUMENT_NODE)\n\n/**\n * @param {any} node\n * @param {number} type\n */\nexport const checkNodeType = (node, type) => node.nodeType === type\n\n/**\n * @param {Node} parent\n * @param {HTMLElement} child\n */\nexport const isParentOf = (parent, child) => {\n let p = child.parentNode\n while (p && p !== parent) {\n p = p.parentNode\n }\n return p === parent\n}\n/* c8 ignore stop */\n"],"names":["$.$custom","pair.forEach","map.map"],"mappings":"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"}
1
+ {"version":3,"file":"dom-cad267af.cjs","sources":["../dom.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Utility module to work with the DOM.\n *\n * @module dom\n */\n\nimport * as pair from './pair.js'\nimport * as map from './map.js'\nimport * as $ from './schema.js'\n\n/* c8 ignore start */\n/**\n * @type {Document}\n */\nexport const doc = /** @type {Document} */ (typeof document !== 'undefined' ? document : {})\n\n/**\n * @param {string} name\n * @return {HTMLElement}\n */\nexport const createElement = name => doc.createElement(name)\n\n/**\n * @return {DocumentFragment}\n */\nexport const createDocumentFragment = () => doc.createDocumentFragment()\n\n/**\n * @type {$.Schema<DocumentFragment>}\n */\nexport const $fragment = $.$custom(el => el.nodeType === DOCUMENT_FRAGMENT_NODE)\n\n/**\n * @param {string} text\n * @return {Text}\n */\nexport const createTextNode = text => doc.createTextNode(text)\n\nexport const domParser = /** @type {DOMParser} */ (typeof DOMParser !== 'undefined' ? new DOMParser() : null)\n\n/**\n * @param {HTMLElement} el\n * @param {string} name\n * @param {Object} opts\n */\nexport const emitCustomEvent = (el, name, opts) => el.dispatchEvent(new CustomEvent(name, opts))\n\n/**\n * @param {Element} el\n * @param {Array<pair.Pair<string,string|boolean>>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributes = (el, attrs) => {\n pair.forEach(attrs, (key, value) => {\n if (value === false) {\n el.removeAttribute(key)\n } else if (value === true) {\n el.setAttribute(key, '')\n } else {\n // @ts-ignore\n el.setAttribute(key, value)\n }\n })\n return el\n}\n\n/**\n * @param {Element} el\n * @param {Map<string, string>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributesMap = (el, attrs) => {\n attrs.forEach((value, key) => { el.setAttribute(key, value) })\n return el\n}\n\n/**\n * @param {Array<Node>|HTMLCollection} children\n * @return {DocumentFragment}\n */\nexport const fragment = children => {\n const fragment = createDocumentFragment()\n for (let i = 0; i < children.length; i++) {\n appendChild(fragment, children[i])\n }\n return fragment\n}\n\n/**\n * @param {Element} parent\n * @param {Array<Node>} nodes\n * @return {Element}\n */\nexport const append = (parent, nodes) => {\n appendChild(parent, fragment(nodes))\n return parent\n}\n\n/**\n * @param {HTMLElement} el\n */\nexport const remove = el => el.remove()\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const addEventListener = (el, name, f) => el.addEventListener(name, f)\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const removeEventListener = (el, name, f) => el.removeEventListener(name, f)\n\n/**\n * @param {Node} node\n * @param {Array<pair.Pair<string,EventListener>>} listeners\n * @return {Node}\n */\nexport const addEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => addEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {Node} node\n * @param {Array<pair.Pair<string,EventListener>>} listeners\n * @return {Node}\n */\nexport const removeEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => removeEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {string} name\n * @param {Array<pair.Pair<string,string>|pair.Pair<string,boolean>>} attrs Array of key-value pairs\n * @param {Array<Node>} children\n * @return {Element}\n */\nexport const element = (name, attrs = [], children = []) =>\n append(setAttributes(createElement(name), attrs), children)\n\n/**\n * @type {$.Schema<Element>}\n */\nexport const $element = $.$custom(el => el.nodeType === ELEMENT_NODE)\n\n/**\n * @param {number} width\n * @param {number} height\n */\nexport const canvas = (width, height) => {\n const c = /** @type {HTMLCanvasElement} */ (createElement('canvas'))\n c.height = height\n c.width = width\n return c\n}\n\n/**\n * @param {string} t\n * @return {Text}\n */\nexport const text = createTextNode\n\n/**\n * @type {$.Schema<Text>}\n */\nexport const $text = $.$custom(el => el.nodeType === TEXT_NODE)\n\n/**\n * @param {pair.Pair<string,string>} pair\n */\nexport const pairToStyleString = pair => `${pair.left}:${pair.right};`\n\n/**\n * @param {Array<pair.Pair<string,string>>} pairs\n * @return {string}\n */\nexport const pairsToStyleString = pairs => pairs.map(pairToStyleString).join('')\n\n/**\n * @param {Map<string,string>} m\n * @return {string}\n */\nexport const mapToStyleString = m => map.map(m, (value, key) => `${key}:${value};`).join('')\n\n/**\n * @todo should always query on a dom element\n *\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {HTMLElement | null}\n */\nexport const querySelector = (el, query) => el.querySelector(query)\n\n/**\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {NodeListOf<HTMLElement>}\n */\nexport const querySelectorAll = (el, query) => el.querySelectorAll(query)\n\n/**\n * @param {string} id\n * @return {HTMLElement}\n */\nexport const getElementById = id => /** @type {HTMLElement} */ (doc.getElementById(id))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nconst _parse = html => domParser.parseFromString(`<html><body>${html}</body></html>`, 'text/html').body\n\n/**\n * @param {string} html\n * @return {DocumentFragment}\n */\nexport const parseFragment = html => fragment(/** @type {any} */ (_parse(html).childNodes))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nexport const parseElement = html => /** @type HTMLElement */ (_parse(html).firstElementChild)\n\n/**\n * @param {HTMLElement} oldEl\n * @param {HTMLElement|DocumentFragment} newEl\n */\nexport const replaceWith = (oldEl, newEl) => oldEl.replaceWith(newEl)\n\n/**\n * @param {HTMLElement} parent\n * @param {HTMLElement} el\n * @param {Node|null} ref\n * @return {HTMLElement}\n */\nexport const insertBefore = (parent, el, ref) => parent.insertBefore(el, ref)\n\n/**\n * @param {Node} parent\n * @param {Node} child\n * @return {Node}\n */\nexport const appendChild = (parent, child) => parent.appendChild(child)\n\nexport const ELEMENT_NODE = doc.ELEMENT_NODE\nexport const TEXT_NODE = doc.TEXT_NODE\nexport const CDATA_SECTION_NODE = doc.CDATA_SECTION_NODE\nexport const COMMENT_NODE = doc.COMMENT_NODE\nexport const DOCUMENT_NODE = doc.DOCUMENT_NODE\nexport const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE\nexport const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE\n\n/**\n * @type {$.Schema<Node>}\n */\nexport const $node = $.$custom(el => el.nodeType === DOCUMENT_NODE)\n\n/**\n * @param {any} node\n * @param {number} type\n */\nexport const checkNodeType = (node, type) => node.nodeType === type\n\n/**\n * @param {Node} parent\n * @param {HTMLElement} child\n */\nexport const isParentOf = (parent, child) => {\n let p = child.parentNode\n while (p && p !== parent) {\n p = p.parentNode\n }\n return p === parent\n}\n/* c8 ignore stop */\n"],"names":["$.$custom","pair.forEach","map.map"],"mappings":"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"}
package/dist/dom.cjs CHANGED
@@ -5,17 +5,24 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  require('./pair-ab022bc3.cjs');
6
6
  require('./map-24d263c0.cjs');
7
7
  require('./schema.cjs');
8
- var dom = require('./dom-f5047a64.cjs');
9
- require('./object-18980796.cjs');
10
- require('./traits.cjs');
8
+ var dom = require('./dom-cad267af.cjs');
9
+ require('./object-dec41ef9.cjs');
10
+ require('./equality.cjs');
11
11
  require('./array-78849c95.cjs');
12
12
  require('./set-5b47859e.cjs');
13
13
  require('./error-0c1f634f.cjs');
14
- require('./environment-90227ead.cjs');
14
+ require('./environment-98bcf64f.cjs');
15
15
  require('./string-fddc5f8b.cjs');
16
16
  require('./conditions-f5c0c102.cjs');
17
17
  require('./storage.cjs');
18
- require('./function-e7d18feb.cjs');
18
+ require('./function-b4e49016.cjs');
19
+ require('./prng-aa81e812.cjs');
20
+ require('./binary-ac8e39e2.cjs');
21
+ require('./math-96d5e8c4.cjs');
22
+ require('./buffer-8d110bf4.cjs');
23
+ require('./encoding-1a745c43.cjs');
24
+ require('./number-1fb57bba.cjs');
25
+ require('./decoding-76e75827.cjs');
19
26
 
20
27
 
21
28
 
package/dist/dom.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dom.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,7 @@ var map = require('./map-24d263c0.cjs');
4
4
  var string = require('./string-fddc5f8b.cjs');
5
5
  var conditions = require('./conditions-f5c0c102.cjs');
6
6
  var storage = require('./storage.cjs');
7
- var _function = require('./function-e7d18feb.cjs');
7
+ var _function = require('./function-b4e49016.cjs');
8
8
 
9
9
  /**
10
10
  * Isomorphic module to work access the environment (query params, env variables).
@@ -177,4 +177,4 @@ exports.isMac = isMac;
177
177
  exports.isNode = isNode;
178
178
  exports.production = production;
179
179
  exports.supportsColor = supportsColor;
180
- //# sourceMappingURL=environment-90227ead.cjs.map
180
+ //# sourceMappingURL=environment-98bcf64f.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-90227ead.cjs","sources":["../environment.js"],"sourcesContent":["/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module environment\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n\n/* c8 ignore next */\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && !isNode\n/* c8 ignore next 3 */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map<string,string>}\n */\nlet params\nconst args = []\n\n/* c8 ignore start */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* c8 ignore next 2 */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 4 */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase().replaceAll('-', '_')])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 2 */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {string}\n */\n/* c8 ignore next 5 */\nexport const ensureConf = (name) => {\n const c = getConf(name)\n if (c == null) throw new Error(`Expected configuration \"${name.toUpperCase().replaceAll('-', '_')}\"`)\n return c\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next 2 */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* c8 ignore next */\nexport const production = hasConf('production')\n\n/* c8 ignore next 2 */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* c8 ignore start */\n/**\n * Color is enabled by default if the terminal supports it.\n *\n * Explicitly enable color using `--color` parameter\n * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.\n * `FORCE_COLOR=1` enables color and takes precedence over all.\n */\nexport const supportsColor = forceColor || (\n !hasParam('--no-colors') && // @todo deprecate --no-colors\n !hasConf('no-color') &&\n (!isNode || process.stdout.isTTY) && (\n !isNode ||\n hasParam('--color') ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n )\n)\n/* c8 ignore stop */\n"],"names":["map.create","string.fromCamelCase","conditions.undefinedToNull","storage.varStorage","f.isOneOf"],"mappings":"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"}
1
+ {"version":3,"file":"environment-98bcf64f.cjs","sources":["../environment.js"],"sourcesContent":["/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module environment\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n\n/* c8 ignore next */\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && !isNode\n/* c8 ignore next 3 */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map<string,string>}\n */\nlet params\nconst args = []\n\n/* c8 ignore start */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* c8 ignore next 2 */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 4 */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase().replaceAll('-', '_')])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 2 */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {string}\n */\n/* c8 ignore next 5 */\nexport const ensureConf = (name) => {\n const c = getConf(name)\n if (c == null) throw new Error(`Expected configuration \"${name.toUpperCase().replaceAll('-', '_')}\"`)\n return c\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next 2 */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* c8 ignore next */\nexport const production = hasConf('production')\n\n/* c8 ignore next 2 */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* c8 ignore start */\n/**\n * Color is enabled by default if the terminal supports it.\n *\n * Explicitly enable color using `--color` parameter\n * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.\n * `FORCE_COLOR=1` enables color and takes precedence over all.\n */\nexport const supportsColor = forceColor || (\n !hasParam('--no-colors') && // @todo deprecate --no-colors\n !hasConf('no-color') &&\n (!isNode || process.stdout.isTTY) && (\n !isNode ||\n hasParam('--color') ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n )\n)\n/* c8 ignore stop */\n"],"names":["map.create","string.fromCamelCase","conditions.undefinedToNull","storage.varStorage","f.isOneOf"],"mappings":"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"}
@@ -6,12 +6,12 @@ require('./map-24d263c0.cjs');
6
6
  require('./string-fddc5f8b.cjs');
7
7
  require('./conditions-f5c0c102.cjs');
8
8
  require('./storage.cjs');
9
- require('./function-e7d18feb.cjs');
10
- var environment = require('./environment-90227ead.cjs');
9
+ require('./function-b4e49016.cjs');
10
+ var environment = require('./environment-98bcf64f.cjs');
11
11
  require('./array-78849c95.cjs');
12
12
  require('./set-5b47859e.cjs');
13
- require('./object-18980796.cjs');
14
- require('./traits.cjs');
13
+ require('./object-dec41ef9.cjs');
14
+ require('./equality.cjs');
15
15
 
16
16
 
17
17