lib0 0.2.41 → 0.2.44

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 (156) hide show
  1. package/README.md +127 -72
  2. package/bin/gendocs.js +1 -1
  3. package/cache.d.ts +50 -0
  4. package/cache.d.ts.map +1 -0
  5. package/cache.js +178 -0
  6. package/cache.test.d.ts +3 -0
  7. package/cache.test.d.ts.map +1 -0
  8. package/component.d.ts +4 -1
  9. package/component.d.ts.map +1 -1
  10. package/component.js +4 -1
  11. package/diff.d.ts +5 -0
  12. package/diff.d.ts.map +1 -1
  13. package/diff.js +47 -10
  14. package/diff.test.d.ts +1 -0
  15. package/diff.test.d.ts.map +1 -1
  16. package/dist/{broadcastchannel-8a61b21a.cjs → broadcastchannel-7da37795.cjs} +2 -2
  17. package/dist/{broadcastchannel-8a61b21a.cjs.map → broadcastchannel-7da37795.cjs.map} +1 -1
  18. package/dist/broadcastchannel.cjs +5 -5
  19. package/dist/{buffer-ac2cdedf.cjs → buffer-b0dea3b0.cjs} +4 -4
  20. package/dist/{buffer-ac2cdedf.cjs.map → buffer-b0dea3b0.cjs.map} +1 -1
  21. package/dist/buffer.cjs +4 -4
  22. package/dist/cache.cjs +185 -0
  23. package/dist/cache.cjs.map +1 -0
  24. package/dist/cache.d.ts +50 -0
  25. package/dist/cache.d.ts.map +1 -0
  26. package/dist/cache.test.d.ts +3 -0
  27. package/dist/cache.test.d.ts.map +1 -0
  28. package/dist/component.cjs +7 -4
  29. package/dist/component.cjs.map +1 -1
  30. package/dist/component.d.ts +4 -1
  31. package/dist/component.d.ts.map +1 -1
  32. package/dist/decoding.cjs +4 -4
  33. package/dist/{diff-75787d87.cjs → diff-233747fa.cjs} +51 -12
  34. package/dist/diff-233747fa.cjs.map +1 -0
  35. package/dist/diff.cjs +2 -1
  36. package/dist/diff.cjs.map +1 -1
  37. package/dist/diff.d.ts +5 -0
  38. package/dist/diff.d.ts.map +1 -1
  39. package/dist/diff.test.d.ts +1 -0
  40. package/dist/diff.test.d.ts.map +1 -1
  41. package/dist/dom.d.ts.map +1 -1
  42. package/dist/encoding.cjs +4 -4
  43. package/dist/{environment-7e2ffaea.cjs → environment-60b83194.cjs} +2 -2
  44. package/dist/{environment-7e2ffaea.cjs.map → environment-60b83194.cjs.map} +1 -1
  45. package/dist/environment.cjs +2 -2
  46. package/dist/{error-55a9a8c8.cjs → error-873c9cbf.cjs} +4 -4
  47. package/dist/error-873c9cbf.cjs.map +1 -0
  48. package/dist/error.cjs +1 -1
  49. package/dist/error.d.ts.map +1 -1
  50. package/dist/index.cjs +13 -13
  51. package/dist/{indexeddb-44227700.cjs → indexeddb-5b4b0e13.cjs} +27 -25
  52. package/dist/indexeddb-5b4b0e13.cjs.map +1 -0
  53. package/dist/indexeddb.cjs +3 -3
  54. package/dist/indexeddb.d.ts +2 -2
  55. package/dist/indexeddb.d.ts.map +1 -1
  56. package/dist/isomorphic.cjs +2 -6
  57. package/dist/isomorphic.cjs.map +1 -1
  58. package/dist/list.cjs +172 -0
  59. package/dist/list.cjs.map +1 -0
  60. package/dist/list.d.ts +33 -0
  61. package/dist/list.d.ts.map +1 -0
  62. package/dist/list.test.d.ts +4 -0
  63. package/dist/list.test.d.ts.map +1 -0
  64. package/dist/{logging-7cc36806.cjs → logging-f6d41f58.cjs} +2 -2
  65. package/dist/{logging-7cc36806.cjs.map → logging-f6d41f58.cjs.map} +1 -1
  66. package/dist/logging.cjs +3 -3
  67. package/dist/{number-24f1eabe.cjs → number-e62129bc.cjs} +5 -2
  68. package/dist/number-e62129bc.cjs.map +1 -0
  69. package/dist/number.cjs +2 -1
  70. package/dist/number.cjs.map +1 -1
  71. package/dist/number.d.ts +1 -0
  72. package/dist/number.d.ts.map +1 -1
  73. package/dist/observable.cjs +1 -1
  74. package/dist/{prng-695120cc.cjs → prng-25602bac.cjs} +3 -3
  75. package/dist/{prng-695120cc.cjs.map → prng-25602bac.cjs.map} +1 -1
  76. package/dist/prng.cjs +5 -5
  77. package/dist/{promise-f0a086b2.cjs → promise-1a9fe712.cjs} +10 -1
  78. package/dist/{promise-f0a086b2.cjs.map → promise-1a9fe712.cjs.map} +1 -1
  79. package/dist/promise.cjs +2 -1
  80. package/dist/promise.cjs.map +1 -1
  81. package/dist/promise.d.ts +1 -0
  82. package/dist/promise.d.ts.map +1 -1
  83. package/dist/queue.cjs +3 -0
  84. package/dist/queue.cjs.map +1 -1
  85. package/dist/queue.d.ts.map +1 -1
  86. package/dist/queue.test.d.ts.map +1 -1
  87. package/dist/set-b596ef38.cjs +49 -0
  88. package/dist/set-b596ef38.cjs.map +1 -0
  89. package/dist/set.cjs +3 -1
  90. package/dist/set.cjs.map +1 -1
  91. package/dist/set.d.ts +2 -0
  92. package/dist/set.d.ts.map +1 -1
  93. package/dist/set.test.d.ts +2 -0
  94. package/dist/set.test.d.ts.map +1 -1
  95. package/dist/{string-f3c3d805.cjs → string-ad04f734.cjs} +12 -2
  96. package/dist/{string-f3c3d805.cjs.map → string-ad04f734.cjs.map} +1 -1
  97. package/dist/string.cjs +3 -4
  98. package/dist/string.cjs.map +1 -1
  99. package/dist/string.d.ts +1 -0
  100. package/dist/string.d.ts.map +1 -1
  101. package/dist/string.test.d.ts +1 -0
  102. package/dist/string.test.d.ts.map +1 -1
  103. package/dist/test.cjs +750 -125
  104. package/dist/test.cjs.map +1 -1
  105. package/dist/test.js +751 -126
  106. package/dist/test.js.map +1 -1
  107. package/dist/testing.cjs +12 -9
  108. package/dist/testing.cjs.map +1 -1
  109. package/dist/testing.d.ts.map +1 -1
  110. package/dist/{websocket-bfe7f545.cjs → websocket-08bd4c7b.cjs} +1 -1
  111. package/dist/{websocket-bfe7f545.cjs.map → websocket-08bd4c7b.cjs.map} +1 -1
  112. package/dist/websocket.cjs +2 -2
  113. package/dist/websocket.d.ts +1 -1
  114. package/dist/websocket.d.ts.map +1 -1
  115. package/dom.d.ts.map +1 -1
  116. package/error.d.ts.map +1 -1
  117. package/error.js +3 -3
  118. package/indexeddb.d.ts +2 -2
  119. package/indexeddb.d.ts.map +1 -1
  120. package/indexeddb.js +25 -23
  121. package/list.d.ts +33 -0
  122. package/list.d.ts.map +1 -0
  123. package/list.js +155 -0
  124. package/list.test.d.ts +4 -0
  125. package/list.test.d.ts.map +1 -0
  126. package/number.d.ts +1 -0
  127. package/number.d.ts.map +1 -1
  128. package/number.js +1 -0
  129. package/package.json +16 -4
  130. package/promise.d.ts +1 -0
  131. package/promise.d.ts.map +1 -1
  132. package/promise.js +7 -0
  133. package/queue.d.ts.map +1 -1
  134. package/queue.js +3 -0
  135. package/queue.test.d.ts.map +1 -1
  136. package/set.d.ts +2 -0
  137. package/set.d.ts.map +1 -1
  138. package/set.js +18 -0
  139. package/set.test.d.ts +2 -0
  140. package/set.test.d.ts.map +1 -1
  141. package/string.d.ts +1 -0
  142. package/string.d.ts.map +1 -1
  143. package/string.js +8 -0
  144. package/string.test.d.ts +1 -0
  145. package/string.test.d.ts.map +1 -1
  146. package/test.js +7 -1
  147. package/testing.d.ts.map +1 -1
  148. package/testing.js +5 -2
  149. package/websocket.d.ts +1 -1
  150. package/websocket.d.ts.map +1 -1
  151. package/dist/diff-75787d87.cjs.map +0 -1
  152. package/dist/error-55a9a8c8.cjs.map +0 -1
  153. package/dist/indexeddb-44227700.cjs.map +0 -1
  154. package/dist/number-24f1eabe.cjs.map +0 -1
  155. package/dist/set-7ae96d21.cjs +0 -27
  156. package/dist/set-7ae96d21.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../cache.js"],"names":[],"mappings":"AAsCA;;GAEG;AACH;IACE;;OAEG;IACH,qBAFW,MAAM,EAYhB;IATC,gBAAsB;IACtB;;OAEG;IACH,IAFS,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAER;IACvB;;OAEG;IACH,MAFU,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAEL;CAE3B;AAQM,uDAFK,MAAM,CAUjB;AASM,sEAcN;AA4BM,qEAGN;AAYM,uFAGN;AAUM,yGAqBN;AAKM,gCAFI,MAAM,mBAEkC;;AApKnD;;;;GAIG;AACH,qCAFgB,IAAI,CAAC,QAAQ;IAG3B;;;OAGG;IACH,iBAHW,CAAC,OACD,CAAC,GAAG,QAAQ,CAAC,CAAC,EAcxB;IAXC;;OAEG;IACH,yBAAgB;IAChB;;OAEG;IACH,yBAAgB;IAChB,gBAAiC;IACjC,oBAAc;IACd,OAAc;CAEjB"}
@@ -0,0 +1,3 @@
1
+ export function testCache(tc: t.TestCase): Promise<void>;
2
+ import * as t from "./testing.js";
3
+ //# sourceMappingURL=cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.d.ts","sourceRoot":"","sources":["../cache.test.js"],"names":[],"mappings":"AAQO,8BAFI,EAAE,QAAQ,iBAuDpB"}
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var dom = require('./dom-58958c04.cjs');
6
- var diff = require('./diff-75787d87.cjs');
6
+ var diff = require('./diff-233747fa.cjs');
7
7
  var object = require('./object-dcdd6eed.cjs');
8
8
  var json = require('./json-092190a1.cjs');
9
- var string = require('./string-f3c3d805.cjs');
9
+ var string = require('./string-ad04f734.cjs');
10
10
  var array = require('./array-b2d24238.cjs');
11
- var number = require('./number-24f1eabe.cjs');
11
+ var number = require('./number-e62129bc.cjs');
12
12
  var _function = require('./function-f8acb5f5.cjs');
13
13
  require('./pair-ab022bc3.cjs');
14
14
  require('./map-28a001c9.cjs');
@@ -17,6 +17,9 @@ require('./binary-ac8e39e2.cjs');
17
17
 
18
18
  /* eslint-env browser */
19
19
 
20
+ /**
21
+ * @type {CustomElementRegistry}
22
+ */
20
23
  const registry = customElements;
21
24
 
22
25
  /**
@@ -28,7 +31,7 @@ const define = (name, constr, opts) => registry.define(name, constr, opts);
28
31
 
29
32
  /**
30
33
  * @param {string} name
31
- * @return {Promise<void>}
34
+ * @return {Promise<CustomElementConstructor>}
32
35
  */
33
36
  const whenDefined = name => registry.whenDefined(name);
34
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"component.cjs","sources":["../component.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Web components.\n *\n * @module component\n */\n\nimport * as dom from './dom.js'\nimport * as diff from './diff.js'\nimport * as object from './object.js'\nimport * as json from './json.js'\nimport * as string from './string.js'\nimport * as array from './array.js'\nimport * as number from './number.js'\nimport * as func from './function.js'\n\nexport const registry = customElements\n\n/**\n * @param {string} name\n * @param {any} constr\n * @param {ElementDefinitionOptions} [opts]\n */\nexport const define = (name, constr, opts) => registry.define(name, constr, opts)\n\n/**\n * @param {string} name\n * @return {Promise<void>}\n */\nexport const whenDefined = name => registry.whenDefined(name)\n\nconst upgradedEventName = 'upgraded'\nconst connectedEventName = 'connected'\nconst disconnectedEventName = 'disconnected'\n\n/**\n * @template S\n */\nexport class Lib0Component extends HTMLElement {\n /**\n * @param {S} [state]\n */\n constructor (state) {\n super()\n /**\n * @type {S|null}\n */\n this.state = /** @type {any} */ (state)\n /**\n * @type {any}\n */\n this._internal = {}\n }\n\n /**\n * @param {S} state\n * @param {boolean} [forceStateUpdate] Force that the state is rerendered even if state didn't change\n */\n setState (state, forceStateUpdate = true) {}\n /**\n * @param {any} stateUpdate\n */\n updateState (stateUpdate) { }\n}\n\n/**\n * @param {any} val\n * @param {\"json\"|\"string\"|\"number\"} type\n * @return {string}\n */\nconst encodeAttrVal = (val, type) => {\n if (type === 'json') {\n val = json.stringify(val)\n }\n return val + ''\n}\n\n/**\n * @param {any} val\n * @param {\"json\"|\"string\"|\"number\"|\"bool\"} type\n * @return {any}\n */\nconst parseAttrVal = (val, type) => {\n switch (type) {\n case 'json':\n return json.parse(val)\n case 'number':\n return Number.parseFloat(val)\n case 'string':\n return val\n case 'bool':\n return val != null\n default:\n return null\n }\n}\n\n/**\n * @typedef {Object} CONF\n * @property {string?} [CONF.template] Template for the shadow dom.\n * @property {string} [CONF.style] shadow dom style. Is only used when\n * `CONF.template` is defined\n * @property {S} [CONF.state] Initial component state.\n * @property {function(S,S|null,Lib0Component<S>):void} [CONF.onStateChange] Called when\n * the state changes.\n * @property {Object<string,function(any, any):Object>} [CONF.childStates] maps from\n * CSS-selector to transformer function. The first element that matches the\n * CSS-selector receives state updates via the transformer function.\n * @property {Object<string,\"json\"|\"number\"|\"string\"|\"bool\">} [CONF.attrs]\n * attrs-keys and state-keys should be camelCase, but the DOM uses kebap-case. I.e.\n * `attrs = { myAttr: 4 }` is represeted as `<my-elem my-attr=\"4\" />` in the DOM\n * @property {Object<string, function(CustomEvent, Lib0Component<any>):boolean|void>} [CONF.listeners] Maps from dom-event-name\n * to event listener.\n * @property {function(S, S, Lib0Component<S>):Object<string,string>} [CONF.slots] Fill slots\n * automatically when state changes. Maps from slot-name to slot-html.\n * @template S\n */\n\n/**\n * @template T\n * @param {string} name\n * @param {CONF<T>} cnf\n * @return {typeof Lib0Component}\n */\nexport const createComponent = (name, { template, style = '', state: defaultState, onStateChange = () => {}, childStates = { }, attrs = {}, listeners = {}, slots = () => ({}) }) => {\n /**\n * Maps from camelCase attribute name to kebap-case attribute name.\n * @type {Object<string,string>}\n */\n const normalizedAttrs = {}\n for (const key in attrs) {\n normalizedAttrs[string.fromCamelCase(key, '-')] = key\n }\n const templateElement = template ? /** @type {HTMLTemplateElement} */ (dom.parseElement(`\n <template>\n <style>${style}</style>\n ${template}\n </template>\n `)) : null\n\n class _Lib0Component extends HTMLElement {\n /**\n * @param {T} [state]\n */\n constructor (state) {\n super()\n /**\n * @type {Array<{d:Lib0Component<T>, s:function(any, any):Object}>}\n */\n this._childStates = []\n /**\n * @type {Object<string,string>}\n */\n this._slots = {}\n this._init = false\n /**\n * @type {any}\n */\n this._internal = {}\n /**\n * @type {any}\n */\n this.state = state || null\n this.connected = false\n // init shadow dom\n if (templateElement) {\n const shadow = /** @type {ShadowRoot} */ (this.attachShadow({ mode: 'open' }))\n shadow.appendChild(templateElement.content.cloneNode(true))\n // fill child states\n for (const key in childStates) {\n this._childStates.push({\n d: /** @type {Lib0Component<T>} */ (dom.querySelector(/** @type {any} */ (shadow), key)),\n s: childStates[key]\n })\n }\n }\n dom.emitCustomEvent(this, upgradedEventName, { bubbles: true })\n }\n\n connectedCallback () {\n this.connected = true\n if (!this._init) {\n this._init = true\n const shadow = this.shadowRoot\n if (shadow) {\n dom.addEventListener(shadow, upgradedEventName, event => {\n this.setState(this.state, true)\n event.stopPropagation()\n })\n }\n /**\n * @type {Object<string, any>}\n */\n const startState = this.state || object.assign({}, defaultState)\n if (attrs) {\n for (const key in attrs) {\n const normalizedKey = string.fromCamelCase(key, '-')\n const val = parseAttrVal(this.getAttribute(normalizedKey), attrs[key])\n if (val) {\n startState[key] = val\n }\n }\n }\n // add event listeners\n for (const key in listeners) {\n dom.addEventListener(shadow || this, key, event => {\n if (listeners[key](/** @type {CustomEvent} */ (event), this) !== false) {\n event.stopPropagation()\n event.preventDefault()\n return false\n }\n })\n }\n // first setState call\n this.state = null\n this.setState(startState)\n }\n dom.emitCustomEvent(/** @type {any} */ (this.shadowRoot || this), connectedEventName, { bubbles: true })\n }\n\n disconnectedCallback () {\n this.connected = false\n dom.emitCustomEvent(/** @type {any} */ (this.shadowRoot || this), disconnectedEventName, { bubbles: true })\n this.setState(null)\n }\n\n static get observedAttributes () {\n return object.keys(normalizedAttrs)\n }\n\n /**\n * @param {string} name\n * @param {string} oldVal\n * @param {string} newVal\n *\n * @private\n */\n attributeChangedCallback (name, oldVal, newVal) {\n const curState = /** @type {any} */ (this.state)\n const camelAttrName = normalizedAttrs[name]\n const type = attrs[camelAttrName]\n const parsedVal = parseAttrVal(newVal, type)\n if (curState && (type !== 'json' || json.stringify(curState[camelAttrName]) !== newVal) && curState[camelAttrName] !== parsedVal && !number.isNaN(parsedVal)) {\n this.updateState({ [camelAttrName]: parsedVal })\n }\n }\n\n /**\n * @param {any} stateUpdate\n */\n updateState (stateUpdate) {\n this.setState(object.assign({}, this.state, stateUpdate))\n }\n\n /**\n * @param {any} state\n */\n setState (state, forceStateUpdates = false) {\n const prevState = this.state\n this.state = state\n if (this._init && (!func.equalityFlat(state, prevState) || forceStateUpdates)) {\n // fill slots\n if (state) {\n const slotElems = slots(state, prevState, this)\n for (const key in slotElems) {\n const slotContent = slotElems[key]\n if (this._slots[key] !== slotContent) {\n this._slots[key] = slotContent\n const currentSlots = /** @type {Array<any>} */ (key !== 'default' ? array.from(dom.querySelectorAll(this, `[slot=\"${key}\"]`)) : array.from(this.childNodes).filter(/** @param {any} child */ child => !dom.checkNodeType(child, dom.ELEMENT_NODE) || !child.hasAttribute('slot')))\n currentSlots.slice(1).map(dom.remove)\n const nextSlot = dom.parseFragment(slotContent)\n if (key !== 'default') {\n array.from(nextSlot.children).forEach(c => c.setAttribute('slot', key))\n }\n if (currentSlots.length > 0) {\n dom.replaceWith(currentSlots[0], nextSlot)\n } else {\n dom.appendChild(this, nextSlot)\n }\n }\n }\n }\n onStateChange(state, prevState, this)\n if (state != null) {\n this._childStates.forEach(cnf => {\n const d = cnf.d\n if (d.updateState) {\n d.updateState(cnf.s(state, this))\n }\n })\n }\n for (const key in attrs) {\n const normalizedKey = string.fromCamelCase(key, '-')\n if (state == null) {\n this.removeAttribute(normalizedKey)\n } else {\n const stateVal = state[key]\n const attrsType = attrs[key]\n if (!prevState || prevState[key] !== stateVal) {\n if (attrsType === 'bool') {\n if (stateVal) {\n this.setAttribute(normalizedKey, '')\n } else {\n this.removeAttribute(normalizedKey)\n }\n } else if (stateVal == null && (attrsType === 'string' || attrsType === 'number')) {\n this.removeAttribute(normalizedKey)\n } else {\n this.setAttribute(normalizedKey, encodeAttrVal(stateVal, attrsType))\n }\n }\n }\n }\n }\n }\n }\n define(name, _Lib0Component)\n // @ts-ignore\n return _Lib0Component\n}\n\n/**\n * @param {function} definer function that defines a component when executed\n */\nexport const createComponentDefiner = definer => {\n /**\n * @type {any}\n */\n let defined = null\n return () => {\n if (!defined) {\n defined = definer()\n }\n return defined\n }\n}\n\nexport const defineListComponent = createComponentDefiner(() => {\n const ListItem = createComponent('lib0-list-item', {\n template: '<slot name=\"content\"></slot>',\n slots: state => ({\n content: `<div>${state}</div>`\n })\n })\n return createComponent('lib0-list', {\n state: { list: /** @type {Array<string>} */ ([]), Item: ListItem },\n onStateChange: (state, prevState, component) => {\n if (state == null) {\n return\n }\n const { list = /** @type {Array<any>} */ ([]), Item = ListItem } = state\n // @todo deep compare here by providing another parameter to simpleDiffArray\n let { index, remove, insert } = diff.simpleDiffArray(prevState ? prevState.list : [], list, func.equalityFlat)\n if (remove === 0 && insert.length === 0) {\n return\n }\n let child = /** @type {Lib0Component<any>} */ (component.firstChild)\n while (index-- > 0) {\n child = /** @type {Lib0Component<any>} */ (child.nextElementSibling)\n }\n let insertStart = 0\n while (insertStart < insert.length && remove-- > 0) {\n // update existing state\n child.setState(insert[insertStart++])\n child = /** @type {Lib0Component<any>} */ (child.nextElementSibling)\n }\n while (remove-- > 0) {\n // remove remaining\n const prevChild = child\n child = /** @type {Lib0Component<any>} */ (child.nextElementSibling)\n component.removeChild(prevChild)\n }\n // insert remaining\n component.insertBefore(dom.fragment(insert.slice(insertStart).map(insState => {\n const el = new Item()\n el.setState(insState)\n return el\n })), child)\n }\n })\n})\n\nexport const defineLazyLoadingComponent = createComponentDefiner(() => createComponent('lib0-lazy', {\n state: /** @type {{component:null|String,import:null|function():Promise<any>,state:null|object}} */ ({\n component: null, import: null, state: null\n }),\n attrs: {\n component: 'string'\n },\n onStateChange: ({ component, state, import: getImport }, prevState, componentEl) => {\n if (component !== null) {\n if (getImport) {\n getImport()\n }\n if (!prevState || component !== prevState.component) {\n const el = /** @type {any} */ (dom.createElement(component))\n componentEl.innerHTML = ''\n componentEl.insertBefore(el, null)\n }\n const el = /** @type {any} */ (componentEl.firstElementChild)\n // @todo generalize setting state and check if setState is defined\n if (el.setState) {\n el.setState(state)\n }\n }\n }\n}))\n"],"names":["json.stringify","json.parse","string.fromCamelCase","dom.parseElement","dom.querySelector","dom.emitCustomEvent","dom.addEventListener","object.assign","object.keys","number.isNaN","func.equalityFlat","array.from","dom.querySelectorAll","dom.checkNodeType","dom.ELEMENT_NODE","dom.remove","dom.parseFragment","dom.replaceWith","dom.appendChild","diff.simpleDiffArray","dom.fragment","dom.createElement"],"mappings":"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"}
1
+ {"version":3,"file":"component.cjs","sources":["../component.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Web components.\n *\n * @module component\n */\n\nimport * as dom from './dom.js'\nimport * as diff from './diff.js'\nimport * as object from './object.js'\nimport * as json from './json.js'\nimport * as string from './string.js'\nimport * as array from './array.js'\nimport * as number from './number.js'\nimport * as func from './function.js'\n\n/**\n * @type {CustomElementRegistry}\n */\nexport const registry = customElements\n\n/**\n * @param {string} name\n * @param {any} constr\n * @param {ElementDefinitionOptions} [opts]\n */\nexport const define = (name, constr, opts) => registry.define(name, constr, opts)\n\n/**\n * @param {string} name\n * @return {Promise<CustomElementConstructor>}\n */\nexport const whenDefined = name => registry.whenDefined(name)\n\nconst upgradedEventName = 'upgraded'\nconst connectedEventName = 'connected'\nconst disconnectedEventName = 'disconnected'\n\n/**\n * @template S\n */\nexport class Lib0Component extends HTMLElement {\n /**\n * @param {S} [state]\n */\n constructor (state) {\n super()\n /**\n * @type {S|null}\n */\n this.state = /** @type {any} */ (state)\n /**\n * @type {any}\n */\n this._internal = {}\n }\n\n /**\n * @param {S} state\n * @param {boolean} [forceStateUpdate] Force that the state is rerendered even if state didn't change\n */\n setState (state, forceStateUpdate = true) {}\n /**\n * @param {any} stateUpdate\n */\n updateState (stateUpdate) { }\n}\n\n/**\n * @param {any} val\n * @param {\"json\"|\"string\"|\"number\"} type\n * @return {string}\n */\nconst encodeAttrVal = (val, type) => {\n if (type === 'json') {\n val = json.stringify(val)\n }\n return val + ''\n}\n\n/**\n * @param {any} val\n * @param {\"json\"|\"string\"|\"number\"|\"bool\"} type\n * @return {any}\n */\nconst parseAttrVal = (val, type) => {\n switch (type) {\n case 'json':\n return json.parse(val)\n case 'number':\n return Number.parseFloat(val)\n case 'string':\n return val\n case 'bool':\n return val != null\n default:\n return null\n }\n}\n\n/**\n * @typedef {Object} CONF\n * @property {string?} [CONF.template] Template for the shadow dom.\n * @property {string} [CONF.style] shadow dom style. Is only used when\n * `CONF.template` is defined\n * @property {S} [CONF.state] Initial component state.\n * @property {function(S,S|null,Lib0Component<S>):void} [CONF.onStateChange] Called when\n * the state changes.\n * @property {Object<string,function(any, any):Object>} [CONF.childStates] maps from\n * CSS-selector to transformer function. The first element that matches the\n * CSS-selector receives state updates via the transformer function.\n * @property {Object<string,\"json\"|\"number\"|\"string\"|\"bool\">} [CONF.attrs]\n * attrs-keys and state-keys should be camelCase, but the DOM uses kebap-case. I.e.\n * `attrs = { myAttr: 4 }` is represeted as `<my-elem my-attr=\"4\" />` in the DOM\n * @property {Object<string, function(CustomEvent, Lib0Component<any>):boolean|void>} [CONF.listeners] Maps from dom-event-name\n * to event listener.\n * @property {function(S, S, Lib0Component<S>):Object<string,string>} [CONF.slots] Fill slots\n * automatically when state changes. Maps from slot-name to slot-html.\n * @template S\n */\n\n/**\n * @template T\n * @param {string} name\n * @param {CONF<T>} cnf\n * @return {typeof Lib0Component}\n */\nexport const createComponent = (name, { template, style = '', state: defaultState, onStateChange = () => {}, childStates = { }, attrs = {}, listeners = {}, slots = () => ({}) }) => {\n /**\n * Maps from camelCase attribute name to kebap-case attribute name.\n * @type {Object<string,string>}\n */\n const normalizedAttrs = {}\n for (const key in attrs) {\n normalizedAttrs[string.fromCamelCase(key, '-')] = key\n }\n const templateElement = template ? /** @type {HTMLTemplateElement} */ (dom.parseElement(`\n <template>\n <style>${style}</style>\n ${template}\n </template>\n `)) : null\n\n class _Lib0Component extends HTMLElement {\n /**\n * @param {T} [state]\n */\n constructor (state) {\n super()\n /**\n * @type {Array<{d:Lib0Component<T>, s:function(any, any):Object}>}\n */\n this._childStates = []\n /**\n * @type {Object<string,string>}\n */\n this._slots = {}\n this._init = false\n /**\n * @type {any}\n */\n this._internal = {}\n /**\n * @type {any}\n */\n this.state = state || null\n this.connected = false\n // init shadow dom\n if (templateElement) {\n const shadow = /** @type {ShadowRoot} */ (this.attachShadow({ mode: 'open' }))\n shadow.appendChild(templateElement.content.cloneNode(true))\n // fill child states\n for (const key in childStates) {\n this._childStates.push({\n d: /** @type {Lib0Component<T>} */ (dom.querySelector(/** @type {any} */ (shadow), key)),\n s: childStates[key]\n })\n }\n }\n dom.emitCustomEvent(this, upgradedEventName, { bubbles: true })\n }\n\n connectedCallback () {\n this.connected = true\n if (!this._init) {\n this._init = true\n const shadow = this.shadowRoot\n if (shadow) {\n dom.addEventListener(shadow, upgradedEventName, event => {\n this.setState(this.state, true)\n event.stopPropagation()\n })\n }\n /**\n * @type {Object<string, any>}\n */\n const startState = this.state || object.assign({}, defaultState)\n if (attrs) {\n for (const key in attrs) {\n const normalizedKey = string.fromCamelCase(key, '-')\n const val = parseAttrVal(this.getAttribute(normalizedKey), attrs[key])\n if (val) {\n startState[key] = val\n }\n }\n }\n // add event listeners\n for (const key in listeners) {\n dom.addEventListener(shadow || this, key, event => {\n if (listeners[key](/** @type {CustomEvent} */ (event), this) !== false) {\n event.stopPropagation()\n event.preventDefault()\n return false\n }\n })\n }\n // first setState call\n this.state = null\n this.setState(startState)\n }\n dom.emitCustomEvent(/** @type {any} */ (this.shadowRoot || this), connectedEventName, { bubbles: true })\n }\n\n disconnectedCallback () {\n this.connected = false\n dom.emitCustomEvent(/** @type {any} */ (this.shadowRoot || this), disconnectedEventName, { bubbles: true })\n this.setState(null)\n }\n\n static get observedAttributes () {\n return object.keys(normalizedAttrs)\n }\n\n /**\n * @param {string} name\n * @param {string} oldVal\n * @param {string} newVal\n *\n * @private\n */\n attributeChangedCallback (name, oldVal, newVal) {\n const curState = /** @type {any} */ (this.state)\n const camelAttrName = normalizedAttrs[name]\n const type = attrs[camelAttrName]\n const parsedVal = parseAttrVal(newVal, type)\n if (curState && (type !== 'json' || json.stringify(curState[camelAttrName]) !== newVal) && curState[camelAttrName] !== parsedVal && !number.isNaN(parsedVal)) {\n this.updateState({ [camelAttrName]: parsedVal })\n }\n }\n\n /**\n * @param {any} stateUpdate\n */\n updateState (stateUpdate) {\n this.setState(object.assign({}, this.state, stateUpdate))\n }\n\n /**\n * @param {any} state\n */\n setState (state, forceStateUpdates = false) {\n const prevState = this.state\n this.state = state\n if (this._init && (!func.equalityFlat(state, prevState) || forceStateUpdates)) {\n // fill slots\n if (state) {\n const slotElems = slots(state, prevState, this)\n for (const key in slotElems) {\n const slotContent = slotElems[key]\n if (this._slots[key] !== slotContent) {\n this._slots[key] = slotContent\n const currentSlots = /** @type {Array<any>} */ (key !== 'default' ? array.from(dom.querySelectorAll(this, `[slot=\"${key}\"]`)) : array.from(this.childNodes).filter(/** @param {any} child */ child => !dom.checkNodeType(child, dom.ELEMENT_NODE) || !child.hasAttribute('slot')))\n currentSlots.slice(1).map(dom.remove)\n const nextSlot = dom.parseFragment(slotContent)\n if (key !== 'default') {\n array.from(nextSlot.children).forEach(c => c.setAttribute('slot', key))\n }\n if (currentSlots.length > 0) {\n dom.replaceWith(currentSlots[0], nextSlot)\n } else {\n dom.appendChild(this, nextSlot)\n }\n }\n }\n }\n onStateChange(state, prevState, this)\n if (state != null) {\n this._childStates.forEach(cnf => {\n const d = cnf.d\n if (d.updateState) {\n d.updateState(cnf.s(state, this))\n }\n })\n }\n for (const key in attrs) {\n const normalizedKey = string.fromCamelCase(key, '-')\n if (state == null) {\n this.removeAttribute(normalizedKey)\n } else {\n const stateVal = state[key]\n const attrsType = attrs[key]\n if (!prevState || prevState[key] !== stateVal) {\n if (attrsType === 'bool') {\n if (stateVal) {\n this.setAttribute(normalizedKey, '')\n } else {\n this.removeAttribute(normalizedKey)\n }\n } else if (stateVal == null && (attrsType === 'string' || attrsType === 'number')) {\n this.removeAttribute(normalizedKey)\n } else {\n this.setAttribute(normalizedKey, encodeAttrVal(stateVal, attrsType))\n }\n }\n }\n }\n }\n }\n }\n define(name, _Lib0Component)\n // @ts-ignore\n return _Lib0Component\n}\n\n/**\n * @param {function} definer function that defines a component when executed\n */\nexport const createComponentDefiner = definer => {\n /**\n * @type {any}\n */\n let defined = null\n return () => {\n if (!defined) {\n defined = definer()\n }\n return defined\n }\n}\n\nexport const defineListComponent = createComponentDefiner(() => {\n const ListItem = createComponent('lib0-list-item', {\n template: '<slot name=\"content\"></slot>',\n slots: state => ({\n content: `<div>${state}</div>`\n })\n })\n return createComponent('lib0-list', {\n state: { list: /** @type {Array<string>} */ ([]), Item: ListItem },\n onStateChange: (state, prevState, component) => {\n if (state == null) {\n return\n }\n const { list = /** @type {Array<any>} */ ([]), Item = ListItem } = state\n // @todo deep compare here by providing another parameter to simpleDiffArray\n let { index, remove, insert } = diff.simpleDiffArray(prevState ? prevState.list : [], list, func.equalityFlat)\n if (remove === 0 && insert.length === 0) {\n return\n }\n let child = /** @type {Lib0Component<any>} */ (component.firstChild)\n while (index-- > 0) {\n child = /** @type {Lib0Component<any>} */ (child.nextElementSibling)\n }\n let insertStart = 0\n while (insertStart < insert.length && remove-- > 0) {\n // update existing state\n child.setState(insert[insertStart++])\n child = /** @type {Lib0Component<any>} */ (child.nextElementSibling)\n }\n while (remove-- > 0) {\n // remove remaining\n const prevChild = child\n child = /** @type {Lib0Component<any>} */ (child.nextElementSibling)\n component.removeChild(prevChild)\n }\n // insert remaining\n component.insertBefore(dom.fragment(insert.slice(insertStart).map(insState => {\n const el = new Item()\n el.setState(insState)\n return el\n })), child)\n }\n })\n})\n\nexport const defineLazyLoadingComponent = createComponentDefiner(() => createComponent('lib0-lazy', {\n state: /** @type {{component:null|String,import:null|function():Promise<any>,state:null|object}} */ ({\n component: null, import: null, state: null\n }),\n attrs: {\n component: 'string'\n },\n onStateChange: ({ component, state, import: getImport }, prevState, componentEl) => {\n if (component !== null) {\n if (getImport) {\n getImport()\n }\n if (!prevState || component !== prevState.component) {\n const el = /** @type {any} */ (dom.createElement(component))\n componentEl.innerHTML = ''\n componentEl.insertBefore(el, null)\n }\n const el = /** @type {any} */ (componentEl.firstElementChild)\n // @todo generalize setting state and check if setState is defined\n if (el.setState) {\n el.setState(state)\n }\n }\n }\n}))\n"],"names":["json.stringify","json.parse","string.fromCamelCase","dom.parseElement","dom.querySelector","dom.emitCustomEvent","dom.addEventListener","object.assign","object.keys","number.isNaN","func.equalityFlat","array.from","dom.querySelectorAll","dom.checkNodeType","dom.ELEMENT_NODE","dom.remove","dom.parseFragment","dom.replaceWith","dom.appendChild","diff.simpleDiffArray","dom.fragment","dom.createElement"],"mappings":"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"}
@@ -1,6 +1,9 @@
1
+ /**
2
+ * @type {CustomElementRegistry}
3
+ */
1
4
  export const registry: CustomElementRegistry;
2
5
  export function define(name: string, constr: any, opts?: ElementDefinitionOptions | undefined): void;
3
- export function whenDefined(name: string): Promise<void>;
6
+ export function whenDefined(name: string): Promise<CustomElementConstructor>;
4
7
  /**
5
8
  * @template S
6
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../component.js"],"names":[],"mappings":"AAiBA,6CAAsC;AAO/B,6BAJI,MAAM,UACN,GAAG,qDAGmE;AAM1E,kCAHI,MAAM,GACL,QAAQ,IAAI,CAAC,CAEoC;AAM7D;;GAEG;AACH;IACE;;OAEG;IACH,mCAUC;IARC;;OAEG;IACH,OAFU,CAAC,GAAC,IAAI,CAEuB;IACvC;;OAEG;IACH,WAFU,GAAG,CAEM;IAGrB;;;OAGG;IACH,gBAHW,CAAC,gDAGgC;IAC5C;;QAEI;IACJ,yBAFY,GAAG,QAEc;CAC9B;AA6DM,yCAJI,MAAM,2GAEL,oBAAoB,CAqM/B;AAKM,qEAWN;AANQ,2CAKN;AALM,kDAKN;;;;;;;;;;;;;;;;;;;4BAvOoB,CAAC,QAAC,CAAC,GAAC,IAAI,QAAC,cAAc,CAAC,CAAC,KAAE,IAAI;;;;;;;4BAEjB,GAAG,QAAE,GAAG,KAAE,MAAM;;;;;;;;;;;;;;4BAMf,WAAW,QAAE,cAAc,GAAG,CAAC,KAAE,OAAO,GAAC,IAAI;;;;;;oBAE5D,CAAC,QAAE,CAAC,QAAE,cAAc,CAAC,CAAC;YAAS,MAAM,GAAC,MAAM"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../component.js"],"names":[],"mappings":"AAiBA;;GAEG;AACH,uBAFU,qBAAqB,CAEO;AAO/B,6BAJI,MAAM,UACN,GAAG,qDAGmE;AAM1E,kCAHI,MAAM,GACL,QAAQ,wBAAwB,CAAC,CAEgB;AAM7D;;GAEG;AACH;IACE;;OAEG;IACH,mCAUC;IARC;;OAEG;IACH,OAFU,CAAC,GAAC,IAAI,CAEuB;IACvC;;OAEG;IACH,WAFU,GAAG,CAEM;IAGrB;;;OAGG;IACH,gBAHW,CAAC,gDAGgC;IAC5C;;QAEI;IACJ,yBAFY,GAAG,QAEc;CAC9B;AA6DM,yCAJI,MAAM,2GAEL,oBAAoB,CAqM/B;AAKM,qEAWN;AANQ,2CAKN;AALM,kDAKN;;;;;;;;;;;;;;;;;;;4BAvOoB,CAAC,QAAC,CAAC,GAAC,IAAI,QAAC,cAAc,CAAC,CAAC,KAAE,IAAI;;;;;;;4BAEjB,GAAG,QAAE,GAAG,KAAE,MAAM;;;;;;;;;;;;;;4BAMf,WAAW,QAAE,cAAc,GAAG,CAAC,KAAE,OAAO,GAAC,IAAI;;;;;;oBAE5D,CAAC,QAAE,CAAC,QAAE,cAAc,CAAC,CAAC;YAAS,MAAM,GAAC,MAAM"}
package/dist/decoding.cjs CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var encoding = require('./buffer-ac2cdedf.cjs');
5
+ var encoding = require('./buffer-b0dea3b0.cjs');
6
6
  require('./binary-ac8e39e2.cjs');
7
7
  require('./math-08e068f9.cjs');
8
- require('./string-f3c3d805.cjs');
9
- require('./environment-7e2ffaea.cjs');
8
+ require('./string-ad04f734.cjs');
9
+ require('./environment-60b83194.cjs');
10
10
  require('./map-28a001c9.cjs');
11
11
  require('./conditions-fb475c70.cjs');
12
12
  require('./storage.cjs');
13
- require('./number-24f1eabe.cjs');
13
+ require('./number-e62129bc.cjs');
14
14
 
15
15
 
16
16
 
@@ -46,11 +46,8 @@ const simpleDiffString = (a, b) => {
46
46
  while (left < a.length && left < b.length && a[left] === b[left]) {
47
47
  left++;
48
48
  }
49
- if (left !== a.length || left !== b.length) {
50
- // Only check right if a !== b
51
- while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {
52
- right++;
53
- }
49
+ while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {
50
+ right++;
54
51
  }
55
52
  return {
56
53
  index: left,
@@ -86,11 +83,51 @@ const simpleDiffArray = (a, b, compare = _function.equalityStrict) => {
86
83
  while (left < a.length && left < b.length && compare(a[left], b[left])) {
87
84
  left++;
88
85
  }
89
- if (left !== a.length || left !== b.length) {
90
- // Only check right if a !== b
91
- while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {
92
- right++;
93
- }
86
+ while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {
87
+ right++;
88
+ }
89
+ return {
90
+ index: left,
91
+ remove: a.length - left - right,
92
+ insert: b.slice(left, b.length - right)
93
+ }
94
+ };
95
+
96
+ /**
97
+ * Diff text and try to diff at the current cursor position.
98
+ *
99
+ * @param {string} a
100
+ * @param {string} b
101
+ * @param {number} cursor This should refer to the current left cursor-range position
102
+ */
103
+ const simpleDiffStringWithCursor = (a, b, cursor) => {
104
+ let left = 0; // number of same characters counting from left
105
+ let right = 0; // number of same characters counting from right
106
+ // Iterate left to the right until we find a changed character
107
+ // First iteration considers the current cursor position
108
+ while (
109
+ left < a.length &&
110
+ left < b.length &&
111
+ a[left] === b[left] &&
112
+ left < cursor
113
+ ) {
114
+ left++;
115
+ }
116
+ // Iterate right to the left until we find a changed character
117
+ while (
118
+ right + left < a.length &&
119
+ right + left < b.length &&
120
+ a[a.length - right - 1] === b[b.length - right - 1]
121
+ ) {
122
+ right++;
123
+ }
124
+ // Try to iterate left further to the right without caring about the current cursor position
125
+ while (
126
+ right + left < a.length &&
127
+ right + left < b.length &&
128
+ a[left] === b[left]
129
+ ) {
130
+ left++;
94
131
  }
95
132
  return {
96
133
  index: left,
@@ -103,11 +140,13 @@ var diff = /*#__PURE__*/Object.freeze({
103
140
  __proto__: null,
104
141
  simpleDiffString: simpleDiffString,
105
142
  simpleDiff: simpleDiff,
106
- simpleDiffArray: simpleDiffArray
143
+ simpleDiffArray: simpleDiffArray,
144
+ simpleDiffStringWithCursor: simpleDiffStringWithCursor
107
145
  });
108
146
 
109
147
  exports.diff = diff;
110
148
  exports.simpleDiff = simpleDiff;
111
149
  exports.simpleDiffArray = simpleDiffArray;
112
150
  exports.simpleDiffString = simpleDiffString;
113
- //# sourceMappingURL=diff-75787d87.cjs.map
151
+ exports.simpleDiffStringWithCursor = simpleDiffStringWithCursor;
152
+ //# sourceMappingURL=diff-233747fa.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-233747fa.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 * @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 * `delete`\n *\n * @template T\n */\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 while (right + left < a.length && right + left < b.length && 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 * @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 // 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 // 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 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
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./function-f8acb5f5.cjs');
6
- var diff = require('./diff-75787d87.cjs');
6
+ var diff = require('./diff-233747fa.cjs');
7
7
  require('./array-b2d24238.cjs');
8
8
  require('./object-dcdd6eed.cjs');
9
9
 
@@ -12,4 +12,5 @@ require('./object-dcdd6eed.cjs');
12
12
  exports.simpleDiff = diff.simpleDiff;
13
13
  exports.simpleDiffArray = diff.simpleDiffArray;
14
14
  exports.simpleDiffString = diff.simpleDiffString;
15
+ exports.simpleDiffStringWithCursor = diff.simpleDiffStringWithCursor;
15
16
  //# sourceMappingURL=diff.cjs.map
package/dist/diff.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"diff.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
1
+ {"version":3,"file":"diff.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
package/dist/diff.d.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  export function simpleDiffString(a: string, b: string): SimpleDiff<string>;
2
2
  export function simpleDiff(a: string, b: string): SimpleDiff<string>;
3
3
  export function simpleDiffArray<T>(a: T[], b: T[], compare?: ((arg0: T, arg1: T) => boolean) | undefined): SimpleDiff<T[]>;
4
+ export function simpleDiffStringWithCursor(a: string, b: string, cursor: number): {
5
+ index: number;
6
+ remove: number;
7
+ insert: string;
8
+ };
4
9
  /**
5
10
  * A SimpleDiff describes a change on a String.
6
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../diff.js"],"names":[],"mappings":"AAwCO,oCAJI,MAAM,KACN,MAAM,GACL,WAAW,MAAM,CAAC,CAmB7B;AAjBM,8BAJI,MAAM,KACN,MAAM,GACL,WAAW,MAAM,CAAC,CAmB7B;AAuBM,oFAHmB,OAAO,gCAoBhC;;;;;;;;;;;;;;;;;;;;;;;;;;;YAzEa,CAAC"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../diff.js"],"names":[],"mappings":"AAwCO,oCAJI,MAAM,KACN,MAAM,GACL,WAAW,MAAM,CAAC,CAgB7B;AAdM,8BAJI,MAAM,KACN,MAAM,GACL,WAAW,MAAM,CAAC,CAgB7B;AAuBM,oFAHmB,OAAO,gCAiBhC;AASM,8CAJI,MAAM,KACN,MAAM,UACN,MAAM;;;;EAoChB;;;;;;;;;;;;;;;;;;;;;;;;;;;YA9Ga,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export function testDiffing(tc: t.TestCase): void;
2
2
  export function testRepeatDiffing(tc: t.TestCase): void;
3
+ export function testSimpleDiffWithCursor(tc: t.TestCase): void;
3
4
  export function testArrayDiffing(tc: t.TestCase): void;
4
5
  import * as t from "./testing.js";
5
6
  //# sourceMappingURL=diff.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.test.d.ts","sourceRoot":"","sources":["../diff.test.js"],"names":[],"mappings":"AAqBO,gCAFI,EAAE,QAAQ,QAWpB;AAKM,sCAFI,EAAE,QAAQ,QAQpB;AAKM,qCAFI,EAAE,QAAQ,QAQpB"}
1
+ {"version":3,"file":"diff.test.d.ts","sourceRoot":"","sources":["../diff.test.js"],"names":[],"mappings":"AAuBO,gCAFI,EAAE,QAAQ,QAWpB;AAKM,sCAFI,EAAE,QAAQ,QAQpB;AAKM,6CAFI,EAAE,QAAQ,QA8BpB;AAKM,qCAFI,EAAE,QAAQ,QAQpB"}
package/dist/dom.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../dom.js"],"names":[],"mappings":"AAYA;;GAEG;AACH,kBAA8B,QAAQ,CAAsD;AAOrF,oCAJI,MAAM,GACL,WAAW,CAGqC;AAMrD,0CAHK,gBAAgB,CAG4C;AAOjE,qCAJI,MAAM,GACL,IAAI,CAG8C;AAG9D,wBAAoC,SAAS,CAAgE;AAQtG,oCALI,WAAW,QACX,MAAM,QACN,MAAM,WAG+E;AAQzF,kCALI,OAAO,SACP,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,GAAC,OAAO,CAAC,CAAC,GACtC,OAAO,CAelB;AAQM,qCALI,OAAO,SACP,IAAI,MAAM,EAAE,MAAM,CAAC,GAClB,OAAO,CAMlB;AAOM,mCAJI,MAAM,IAAI,CAAC,GAAC,cAAc,GACzB,gBAAgB,CAS3B;AAQM,+BALI,OAAO,SACP,MAAM,IAAI,CAAC,GACV,OAAO,CAMlB;AAMM,2BAHI,WAAW,QAGiB;AAQhC,qCALI,WAAW,QACX,MAAM,KACN,aAAa,QAGqD;AAQtE,wCALI,WAAW,QACX,MAAM,KACN,aAAa,QAG2D;AAQ5E,wCALI,IAAI,aACJ,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAMf;AAQM,2CALI,IAAI,aACJ,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAMf;AASM,8BANI,MAAM,UACN,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,GAAC,KAAK,IAAI,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC,aACzD,MAAM,IAAI,CAAC,GACV,OAAO,CAI0C;AAOtD,8BAJI,MAAM,UACN,MAAM,qBAQhB;AApIM,2BAJI,MAAM,GACL,IAAI,CAG8C;AAiJvD,wCAHI,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,UAGmC;AAO/D,0CAJI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC,GAC9B,MAAM,CAG8D;AAOzE,oCAJI,IAAI,MAAM,EAAC,MAAM,CAAC,GACjB,MAAM,CAG0E;AAUrF,kCALI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,WAAW,GAAG,IAAI,CAGqC;AAQ5D,qCALI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,WAAW,WAAW,CAAC,CAGsC;AAOlE,mCAJI,MAAM,GACL,WAAW,CAGgE;AAchF,oCAJI,MAAM,GACL,gBAAgB,CAG+D;AAOpF,mCAJI,MAAM,GACL,WAAW,CAGsE;AAOtF,mCAJI,WAAW,SACX,WAAW,GAAC,gBAAgB,QAG8B;AAS9D,qCANI,WAAW,MACX,WAAW,OACX,IAAI,GAAC,IAAI,GACR,WAAW,CAGsD;AAQtE,oCALI,IAAI,SACJ,IAAI,GACH,IAAI,CAGuD;AAEvE,kCAA4C;AAC5C,+BAAsC;AACtC,wCAAwD;AACxD,kCAA4C;AAC5C,mCAA8C;AAC9C,wCAAwD;AACxD,4CAAgE;AAMzD,oCAHI,GAAG,QACH,MAAM,WAEkD;AAM5D,mCAHI,IAAI,SACJ,WAAW,WAQrB"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../dom.js"],"names":[],"mappings":"AAYA;;GAEG;AACH,kBAFU,QAAQ,CAE0E;AAOrF,oCAJI,MAAM,GACL,WAAW,CAGqC;AAMrD,0CAHK,gBAAgB,CAG4C;AAOjE,qCAJI,MAAM,GACL,IAAI,CAG8C;AAG9D,kCAA6G;AAQtG,oCALI,WAAW,QACX,MAAM,QACN,MAAM,WAG+E;AAQzF,kCALI,OAAO,SACP,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,GAAC,OAAO,CAAC,CAAC,GACtC,OAAO,CAelB;AAQM,qCALI,OAAO,SACP,IAAI,MAAM,EAAE,MAAM,CAAC,GAClB,OAAO,CAMlB;AAOM,mCAJI,MAAM,IAAI,CAAC,GAAC,cAAc,GACzB,gBAAgB,CAS3B;AAQM,+BALI,OAAO,SACP,MAAM,IAAI,CAAC,GACV,OAAO,CAMlB;AAMM,2BAHI,WAAW,QAGiB;AAQhC,qCALI,WAAW,QACX,MAAM,KACN,aAAa,QAGqD;AAQtE,wCALI,WAAW,QACX,MAAM,KACN,aAAa,QAG2D;AAQ5E,wCALI,IAAI,aACJ,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAMf;AAQM,2CALI,IAAI,aACJ,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC,GACrC,IAAI,CAMf;AASM,8BANI,MAAM,UACN,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,GAAC,KAAK,IAAI,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC,aACzD,MAAM,IAAI,CAAC,GACV,OAAO,CAI0C;AAOtD,8BAJI,MAAM,UACN,MAAM,qBAQhB;AApIM,2BAJI,MAAM,GACL,IAAI,CAG8C;AAiJvD,wCAHI,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,UAGmC;AAO/D,0CAJI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC,GAC9B,MAAM,CAG8D;AAOzE,oCAJI,IAAI,MAAM,EAAC,MAAM,CAAC,GACjB,MAAM,CAG0E;AAUrF,kCALI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,WAAW,GAAG,IAAI,CAGqC;AAQ5D,qCALI,WAAW,GAAC,UAAU,SACtB,MAAM,GACL,WAAW,WAAW,CAAC,CAGsC;AAOlE,mCAJI,MAAM,GACL,WAAW,CAGgE;AAchF,oCAJI,MAAM,GACL,gBAAgB,CAG+D;AAOpF,mCAJI,MAAM,GACL,WAAW,CAGsE;AAOtF,mCAJI,WAAW,SACX,WAAW,GAAC,gBAAgB,QAG8B;AAS9D,qCANI,WAAW,MACX,WAAW,OACX,IAAI,GAAC,IAAI,GACR,WAAW,CAGsD;AAQtE,oCALI,IAAI,SACJ,IAAI,GACH,IAAI,CAGuD;AAEvE,kCAA4C;AAC5C,+BAAsC;AACtC,wCAAwD;AACxD,kCAA4C;AAC5C,mCAA8C;AAC9C,wCAAwD;AACxD,4CAAgE;AAMzD,oCAHI,GAAG,QACH,MAAM,WAEkD;AAM5D,mCAHI,IAAI,SACJ,WAAW,WAQrB"}
package/dist/encoding.cjs CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var encoding = require('./buffer-ac2cdedf.cjs');
5
+ var encoding = require('./buffer-b0dea3b0.cjs');
6
6
  require('./math-08e068f9.cjs');
7
- require('./number-24f1eabe.cjs');
7
+ require('./number-e62129bc.cjs');
8
8
  require('./binary-ac8e39e2.cjs');
9
- require('./string-f3c3d805.cjs');
10
- require('./environment-7e2ffaea.cjs');
9
+ require('./string-ad04f734.cjs');
10
+ require('./environment-60b83194.cjs');
11
11
  require('./map-28a001c9.cjs');
12
12
  require('./conditions-fb475c70.cjs');
13
13
  require('./storage.cjs');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var map = require('./map-28a001c9.cjs');
4
- var string = require('./string-f3c3d805.cjs');
4
+ var string = require('./string-ad04f734.cjs');
5
5
  var conditions = require('./conditions-fb475c70.cjs');
6
6
  var storage = require('./storage.cjs');
7
7
 
@@ -129,4 +129,4 @@ exports.isBrowser = isBrowser;
129
129
  exports.isMac = isMac;
130
130
  exports.isNode = isNode;
131
131
  exports.production = production;
132
- //# sourceMappingURL=environment-7e2ffaea.cjs.map
132
+ //# sourceMappingURL=environment-60b83194.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-7e2ffaea.cjs","sources":["../environment.js"],"sourcesContent":["/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module map\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'\n\n/* istanbul ignore next */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name)\n/* istanbul ignore next */\nexport const isBrowser = typeof window !== 'undefined' && !isNode\n/* istanbul ignore next */\nexport const isMac = typeof navigator !== 'undefined' ? /Mac/.test(navigator.platform) : false\n\n/**\n * @type {Map<string,string>}\n */\nlet params\nconst args = []\n\n/* istanbul ignore next */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n /* istanbul ignore next */\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()\n // 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\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasParam = name => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* istanbul ignore next */\nexport const getParam = (name, defaultVal) => computeParams().get(name) || defaultVal\n// export const getArgs = name => computeParams() && args\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* istanbul ignore next */\nexport const getVariable = name => isNode ? conditions.undefinedToNull(process.env[name.toUpperCase()]) : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\nexport const getConf = name => computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasConf = name => hasParam('--' + name) || getVariable(name) !== null\n\n/* istanbul ignore next */\nexport const production = hasConf('production')\n"],"names":["map.create","string.fromCamelCase","conditions.undefinedToNull","storage.varStorage"],"mappings":"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"}
1
+ {"version":3,"file":"environment-60b83194.cjs","sources":["../environment.js"],"sourcesContent":["/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module map\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'\n\n/* istanbul ignore next */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name)\n/* istanbul ignore next */\nexport const isBrowser = typeof window !== 'undefined' && !isNode\n/* istanbul ignore next */\nexport const isMac = typeof navigator !== 'undefined' ? /Mac/.test(navigator.platform) : false\n\n/**\n * @type {Map<string,string>}\n */\nlet params\nconst args = []\n\n/* istanbul ignore next */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n /* istanbul ignore next */\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()\n // 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\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasParam = name => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* istanbul ignore next */\nexport const getParam = (name, defaultVal) => computeParams().get(name) || defaultVal\n// export const getArgs = name => computeParams() && args\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* istanbul ignore next */\nexport const getVariable = name => isNode ? conditions.undefinedToNull(process.env[name.toUpperCase()]) : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\nexport const getConf = name => computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasConf = name => hasParam('--' + name) || getVariable(name) !== null\n\n/* istanbul ignore next */\nexport const production = hasConf('production')\n"],"names":["map.create","string.fromCamelCase","conditions.undefinedToNull","storage.varStorage"],"mappings":"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"}
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./map-28a001c9.cjs');
6
- require('./string-f3c3d805.cjs');
6
+ require('./string-ad04f734.cjs');
7
7
  require('./conditions-fb475c70.cjs');
8
8
  require('./storage.cjs');
9
- var environment = require('./environment-7e2ffaea.cjs');
9
+ var environment = require('./environment-60b83194.cjs');
10
10
 
11
11
 
12
12
 
@@ -6,27 +6,27 @@
6
6
  * @module error
7
7
  */
8
8
 
9
+ /* istanbul ignore next */
9
10
  /**
10
11
  * @param {string} s
11
12
  * @return {Error}
12
13
  */
13
- /* istanbul ignore next */
14
14
  const create = s => new Error(s);
15
15
 
16
+ /* istanbul ignore next */
16
17
  /**
17
18
  * @throws {Error}
18
19
  * @return {never}
19
20
  */
20
- /* istanbul ignore next */
21
21
  const methodUnimplemented = () => {
22
22
  throw create('Method unimplemented')
23
23
  };
24
24
 
25
+ /* istanbul ignore next */
25
26
  /**
26
27
  * @throws {Error}
27
28
  * @return {never}
28
29
  */
29
- /* istanbul ignore next */
30
30
  const unexpectedCase = () => {
31
31
  throw create('Unexpected case')
32
32
  };
@@ -42,4 +42,4 @@ exports.create = create;
42
42
  exports.error = error;
43
43
  exports.methodUnimplemented = methodUnimplemented;
44
44
  exports.unexpectedCase = unexpectedCase;
45
- //# sourceMappingURL=error-55a9a8c8.cjs.map
45
+ //# sourceMappingURL=error-873c9cbf.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-873c9cbf.cjs","sources":["../error.js"],"sourcesContent":["/**\n * Error helpers.\n *\n * @module error\n */\n\n/* istanbul ignore next */\n/**\n * @param {string} s\n * @return {Error}\n */\nexport const create = s => new Error(s)\n\n/* istanbul ignore next */\n/**\n * @throws {Error}\n * @return {never}\n */\nexport const methodUnimplemented = () => {\n throw create('Method unimplemented')\n}\n\n/* istanbul ignore next */\n/**\n * @throws {Error}\n * @return {never}\n */\nexport const unexpectedCase = () => {\n throw create('Unexpected case')\n}\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,mBAAmB,GAAG,MAAM;AACzC,EAAE,MAAM,MAAM,CAAC,sBAAsB,CAAC;AACtC,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,MAAM;AACpC,EAAE,MAAM,MAAM,CAAC,iBAAiB,CAAC;AACjC;;;;;;;;;;;;;;"}
package/dist/error.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var error = require('./error-55a9a8c8.cjs');
5
+ var error = require('./error-873c9cbf.cjs');
6
6
 
7
7
 
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../error.js"],"names":[],"mappings":"AAWO,0BAJI,MAAM,GACL,KAAK,CAGsB;AAOhC,uCAHK,KAAK,CAKhB;AAOM,kCAHK,KAAK,CAKhB"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../error.js"],"names":[],"mappings":"AAWO,0BAHI,MAAM,GACL,KAAK,CAEsB;AAOhC,uCAFK,KAAK,CAIhB;AAOM,kCAFK,KAAK,CAIhB"}
package/dist/index.cjs CHANGED
@@ -4,35 +4,35 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var array = require('./array-b2d24238.cjs');
6
6
  var binary = require('./binary-ac8e39e2.cjs');
7
- var broadcastchannel = require('./broadcastchannel-8a61b21a.cjs');
8
- var encoding = require('./buffer-ac2cdedf.cjs');
7
+ var broadcastchannel = require('./broadcastchannel-7da37795.cjs');
8
+ var encoding = require('./buffer-b0dea3b0.cjs');
9
9
  var conditions = require('./conditions-fb475c70.cjs');
10
- var diff = require('./diff-75787d87.cjs');
10
+ var diff = require('./diff-233747fa.cjs');
11
11
  var dom = require('./dom-58958c04.cjs');
12
- var environment = require('./environment-7e2ffaea.cjs');
13
- var error = require('./error-55a9a8c8.cjs');
12
+ var environment = require('./environment-60b83194.cjs');
13
+ var error = require('./error-873c9cbf.cjs');
14
14
  var eventloop = require('./eventloop-c60b5658.cjs');
15
15
  var _function = require('./function-f8acb5f5.cjs');
16
- var indexeddb = require('./indexeddb-44227700.cjs');
16
+ var indexeddb = require('./indexeddb-5b4b0e13.cjs');
17
17
  var iterator = require('./iterator-fe01d209.cjs');
18
18
  var json = require('./json-092190a1.cjs');
19
- var logging = require('./logging-7cc36806.cjs');
19
+ var logging = require('./logging-f6d41f58.cjs');
20
20
  var map = require('./map-28a001c9.cjs');
21
21
  var math = require('./math-08e068f9.cjs');
22
22
  var mutex = require('./mutex-63f09c81.cjs');
23
- var number = require('./number-24f1eabe.cjs');
23
+ var number = require('./number-e62129bc.cjs');
24
24
  var object = require('./object-dcdd6eed.cjs');
25
25
  var pair = require('./pair-ab022bc3.cjs');
26
- var prng = require('./prng-695120cc.cjs');
27
- var promise = require('./promise-f0a086b2.cjs');
28
- var set = require('./set-7ae96d21.cjs');
26
+ var prng = require('./prng-25602bac.cjs');
27
+ var promise = require('./promise-1a9fe712.cjs');
28
+ var set = require('./set-b596ef38.cjs');
29
29
  var sort = require('./sort-b8702761.cjs');
30
30
  var statistics = require('./statistics-c2316dca.cjs');
31
- var string = require('./string-f3c3d805.cjs');
31
+ var string = require('./string-ad04f734.cjs');
32
32
  var symbol = require('./symbol-c5caa724.cjs');
33
33
  var time = require('./time-e00067da.cjs');
34
34
  var tree = require('./tree-92f764b3.cjs');
35
- var websocket = require('./websocket-bfe7f545.cjs');
35
+ var websocket = require('./websocket-08bd4c7b.cjs');
36
36
  require('./storage.cjs');
37
37
  require('./metric.cjs');
38
38
  require('./observable.cjs');