lib0 0.2.73 → 0.2.75

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 (120) hide show
  1. package/.github/workflows/node.js.yml +9 -14
  2. package/array.d.ts +2 -0
  3. package/array.d.ts.map +1 -1
  4. package/array.js +24 -1
  5. package/array.test.d.ts +2 -0
  6. package/array.test.d.ts.map +1 -1
  7. package/bin/0serve.js +1 -1
  8. package/bin/gentesthtml.js +4 -3
  9. package/coverage/tmp/coverage-22315-1684922536229-0.json +1 -0
  10. package/crypto.test.d.ts.map +1 -1
  11. package/dist/{array-a1682de6.cjs → array-fd99bc23.cjs} +29 -2
  12. package/dist/array-fd99bc23.cjs.map +1 -0
  13. package/dist/array.cjs +3 -1
  14. package/dist/array.cjs.map +1 -1
  15. package/dist/array.d.ts +2 -0
  16. package/dist/array.d.ts.map +1 -1
  17. package/dist/array.test.d.ts +2 -0
  18. package/dist/array.test.d.ts.map +1 -1
  19. package/dist/{broadcastchannel-7df8ec2d.cjs → broadcastchannel-7cabee75.cjs} +2 -2
  20. package/dist/{broadcastchannel-7df8ec2d.cjs.map → broadcastchannel-7cabee75.cjs.map} +1 -1
  21. package/dist/broadcastchannel.cjs +7 -7
  22. package/dist/{buffer-c2f560d5.cjs → buffer-1008178b.cjs} +18 -6
  23. package/dist/buffer-1008178b.cjs.map +1 -0
  24. package/dist/buffer.cjs +7 -7
  25. package/dist/cache.cjs +2 -2
  26. package/dist/component.cjs +5 -5
  27. package/dist/crypto.test.d.ts.map +1 -1
  28. package/dist/decoding.cjs +7 -7
  29. package/dist/{diff-6b03292e.cjs → diff-e0bf81f9.cjs} +2 -2
  30. package/dist/{diff-6b03292e.cjs.map → diff-e0bf81f9.cjs.map} +1 -1
  31. package/dist/diff.cjs +3 -3
  32. package/dist/encoding.cjs +8 -7
  33. package/dist/encoding.cjs.map +1 -1
  34. package/dist/encoding.d.ts +1 -0
  35. package/dist/encoding.d.ts.map +1 -1
  36. package/dist/encoding.test.d.ts.map +1 -1
  37. package/dist/{environment-7991e0f6.cjs → environment-01f6fae6.cjs} +3 -3
  38. package/dist/{environment-7991e0f6.cjs.map → environment-01f6fae6.cjs.map} +1 -1
  39. package/dist/environment.cjs +4 -4
  40. package/dist/eventloop.test.d.ts +1 -1
  41. package/dist/eventloop.test.d.ts.map +1 -1
  42. package/dist/{function-35e8ddea.cjs → function-b07b935b.cjs} +47 -4
  43. package/dist/function-b07b935b.cjs.map +1 -0
  44. package/dist/function.cjs +7 -2
  45. package/dist/function.cjs.map +1 -1
  46. package/dist/function.d.ts +5 -0
  47. package/dist/function.d.ts.map +1 -1
  48. package/dist/function.test.d.ts.map +1 -1
  49. package/dist/index.cjs +12 -12
  50. package/dist/{indexeddb-38ee46bd.cjs → indexeddb-2dd34f7d.cjs} +2 -2
  51. package/dist/{indexeddb-38ee46bd.cjs.map → indexeddb-2dd34f7d.cjs.map} +1 -1
  52. package/dist/indexeddb.cjs +2 -2
  53. package/dist/list.cjs +2 -2
  54. package/dist/logging.cjs +4 -4
  55. package/dist/logging.common.cjs +5 -5
  56. package/dist/logging.node.cjs +5 -5
  57. package/dist/math.test.d.ts.map +1 -1
  58. package/dist/{number-f97e141a.cjs → number-dc113762.cjs} +4 -8
  59. package/dist/number-dc113762.cjs.map +1 -0
  60. package/dist/number.cjs +2 -1
  61. package/dist/number.cjs.map +1 -1
  62. package/dist/number.d.ts +1 -6
  63. package/dist/number.d.ts.map +1 -1
  64. package/dist/observable.cjs +1 -1
  65. package/dist/performance.node.cjs +2 -2
  66. package/dist/{prng-efc9a091.cjs → prng-6a674599.cjs} +3 -3
  67. package/dist/{prng-efc9a091.cjs.map → prng-6a674599.cjs.map} +1 -1
  68. package/dist/prng.cjs +8 -8
  69. package/dist/{promise-a4f32c85.cjs → promise-afe9dfc3.cjs} +6 -5
  70. package/dist/promise-afe9dfc3.cjs.map +1 -0
  71. package/dist/promise.cjs +1 -1
  72. package/dist/promise.d.ts +11 -1
  73. package/dist/promise.d.ts.map +1 -1
  74. package/dist/promise.test.d.ts +3 -2
  75. package/dist/promise.test.d.ts.map +1 -1
  76. package/dist/{string-b1bee84b.cjs → string-e7eb0c1d.cjs} +12 -2
  77. package/dist/string-e7eb0c1d.cjs.map +1 -0
  78. package/dist/string.cjs +4 -1
  79. package/dist/string.cjs.map +1 -1
  80. package/dist/string.d.ts +1 -0
  81. package/dist/string.d.ts.map +1 -1
  82. package/dist/string.test.d.ts +1 -0
  83. package/dist/string.test.d.ts.map +1 -1
  84. package/dist/testing.cjs +9 -9
  85. package/dist/{websocket-e861ab50.cjs → websocket-0632cb8c.cjs} +1 -1
  86. package/dist/{websocket-e861ab50.cjs.map → websocket-0632cb8c.cjs.map} +1 -1
  87. package/dist/websocket.cjs +2 -2
  88. package/encoding.d.ts +1 -0
  89. package/encoding.d.ts.map +1 -1
  90. package/encoding.js +11 -1
  91. package/encoding.test.d.ts.map +1 -1
  92. package/eventloop.test.d.ts +1 -1
  93. package/eventloop.test.d.ts.map +1 -1
  94. package/function.d.ts +5 -0
  95. package/function.d.ts.map +1 -1
  96. package/function.js +34 -1
  97. package/function.test.d.ts.map +1 -1
  98. package/math.test.d.ts.map +1 -1
  99. package/number.d.ts +1 -6
  100. package/number.d.ts.map +1 -1
  101. package/number.js +1 -7
  102. package/package.json +2 -2
  103. package/promise.d.ts +11 -1
  104. package/promise.d.ts.map +1 -1
  105. package/promise.js +5 -4
  106. package/promise.test.d.ts +3 -2
  107. package/promise.test.d.ts.map +1 -1
  108. package/string.d.ts +1 -0
  109. package/string.d.ts.map +1 -1
  110. package/string.js +8 -0
  111. package/string.test.d.ts +1 -0
  112. package/string.test.d.ts.map +1 -1
  113. package/test.html +7 -3
  114. package/coverage/tmp/coverage-39199-1679575192523-0.json +0 -1
  115. package/dist/array-a1682de6.cjs.map +0 -1
  116. package/dist/buffer-c2f560d5.cjs.map +0 -1
  117. package/dist/function-35e8ddea.cjs.map +0 -1
  118. package/dist/number-f97e141a.cjs.map +0 -1
  119. package/dist/promise-a4f32c85.cjs.map +0 -1
  120. package/dist/string-b1bee84b.cjs.map +0 -1
@@ -1,29 +1,24 @@
1
1
  # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2
2
  # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3
3
 
4
- name: Node.js CI
5
-
4
+ name: Testing Lib0
6
5
  on:
7
6
  push:
8
7
  branches: [ main ]
9
8
  pull_request:
10
9
  branches: [ main ]
11
-
12
10
  jobs:
13
11
  build:
14
-
15
12
  runs-on: ubuntu-latest
16
-
17
13
  strategy:
18
14
  matrix:
19
- node-version: [18.x]
15
+ node-version: [16.x, 18.x]
20
16
 
21
17
  steps:
22
- - uses: actions/checkout@v2
23
- - name: Use Node.js ${{ matrix.node-version }}
24
- uses: actions/setup-node@v1
25
- with:
26
- node-version: ${{ matrix.node-version }}
27
- - run: npm ci
28
- - run: npm run build --if-present
29
- - run: npm test
18
+ - uses: actions/checkout@v3
19
+ - name: Use Node.js ${{ matrix.node-version }}
20
+ uses: actions/setup-node@v3
21
+ with:
22
+ node-version: ${{ matrix.node-version }}
23
+ - run: npm ci
24
+ - run: npm test
package/array.d.ts CHANGED
@@ -20,6 +20,8 @@ export function every<ITEM, ARR extends ArrayLike<ITEM>>(arr: ARR, f: (arg0: ITE
20
20
  export function some<S, ARR extends ArrayLike<S>>(arr: ARR, f: (arg0: S, arg1: number, arg2: ARR) => boolean): boolean;
21
21
  export function equalFlat<ELEM>(a: ArrayLike<ELEM>, b: ArrayLike<ELEM>): boolean;
22
22
  export function flatten<ELEM>(arr: ELEM[][]): ELEM[];
23
+ export function unfold<T_1>(len: number, f: (arg0: number, arg1: T_1[]) => T_1): T_1[];
24
+ export function fold<T_1, RESULT>(arr: T_1[], seed: RESULT, folder: (arg0: RESULT, arg1: T_1, arg2: number) => RESULT): RESULT;
23
25
  export const isArray: (arg: any) => arg is any[];
24
26
  export function unique<T_1>(arr: T_1[]): T_1[];
25
27
  export function uniqueBy<T_1, M>(arr: ArrayLike<T_1>, mapper: (arg0: T_1) => M): T_1[];
package/array.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["array.js"],"names":[],"mappings":"AAeO,8CAAuC;AAMvC,iCAAiD;AAOjD,qCAAqD;AASrD,uDAIN;AAED;;;;;;;GAOG;AACH;;;;;EAA8B;AAavB,yFAHmB,MAAM,gBAAO,OAAO,GAClC,OAAO,CASlB;AAYM,+EAHgB,MAAM,gBAAO,OAAO,GAC/B,OAAO,CASlB;AASM,yEAFK,OAAO,CAEqF;AAOjG,qDAAoE;AAE3E,iDAAoC;AAO7B,+CAAyC;AASzC,uFAkBN"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["array.js"],"names":[],"mappings":"AAeO,8CAAuC;AAMvC,iCAAiD;AAOjD,qCAAqD;AASrD,uDAIN;AAED;;;;;;;GAOG;AACH;;;;;EAA8B;AAavB,yFAHmB,MAAM,gBAAO,OAAO,GAClC,OAAO,CASlB;AAYM,+EAHgB,MAAM,gBAAO,OAAO,GAC/B,OAAO,CASlB;AASM,yEAFK,OAAO,CAEqF;AAOjG,qDAAgG;AAQhG,iCAJI,MAAM,YACG,MAAM,8BASzB;AASM,oGAFwB,MAAM,qBAE8B;AAEnE,iDAAoC;AAO7B,+CAAyC;AASzC,uFAkBN"}
package/array.js CHANGED
@@ -104,7 +104,30 @@ export const equalFlat = (a, b) => a.length === b.length && every(a, (item, inde
104
104
  * @param {Array<Array<ELEM>>} arr
105
105
  * @return {Array<ELEM>}
106
106
  */
107
- export const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])
107
+ export const flatten = arr => fold(arr, /** @type {Array<ELEM>} */ ([]), (acc, val) => acc.concat(val))
108
+
109
+ /**
110
+ * @template T
111
+ * @param {number} len
112
+ * @param {function(number, Array<T>):T} f
113
+ * @return {Array<T>}
114
+ */
115
+ export const unfold = (len, f) => {
116
+ const array = new Array(len)
117
+ for (let i = 0; i < len; i++) {
118
+ array[i] = f(i, array)
119
+ }
120
+ return array
121
+ }
122
+
123
+ /**
124
+ * @template T
125
+ * @template RESULT
126
+ * @param {Array<T>} arr
127
+ * @param {RESULT} seed
128
+ * @param {function(RESULT, T, number):RESULT} folder
129
+ */
130
+ export const fold = (arr, seed, folder) => arr.reduce(folder, seed)
108
131
 
109
132
  export const isArray = Array.isArray
110
133
 
package/array.test.d.ts CHANGED
@@ -1,6 +1,8 @@
1
+ export function testIsarrayPerformance(_tc: t.TestCase): void;
1
2
  export function testAppend(_tc: t.TestCase): void;
2
3
  export function testBasic(_tc: t.TestCase): void;
3
4
  export function testflatten(_tc: t.TestCase): void;
5
+ export function testFolding(_tc: t.TestCase): void;
4
6
  export function testEvery(_tc: t.TestCase): void;
5
7
  export function testIsArray(_tc: t.TestCase): void;
6
8
  export function testUnique(_tc: t.TestCase): void;
@@ -1 +1 @@
1
- {"version":3,"file":"array.test.d.ts","sourceRoot":"","sources":["array.test.js"],"names":[],"mappings":"AAMO,gCAFI,EAAE,QAAQ,QAMpB;AAKM,+BAFI,EAAE,QAAQ,QAMpB;AAKM,iCAFI,EAAE,QAAQ,QAKpB;AAKM,+BAFI,EAAE,QAAQ,QAQpB;AAKM,iCAFI,EAAE,QAAQ,QASpB;AAKM,gCAFI,EAAE,QAAQ,QAOpB;mBA3DkB,cAAc"}
1
+ {"version":3,"file":"array.test.d.ts","sourceRoot":"","sources":["array.test.js"],"names":[],"mappings":"AAMO,4CAFI,EAAE,QAAQ,QAkCpB;AAKM,gCAFI,EAAE,QAAQ,QAMpB;AAKM,+BAFI,EAAE,QAAQ,QAMpB;AAKM,iCAFI,EAAE,QAAQ,QAKpB;AAKM,iCAFI,EAAE,QAAQ,QAkBpB;AAKM,+BAFI,EAAE,QAAQ,QAQpB;AAKM,iCAFI,EAAE,QAAQ,QASpB;AAKM,gCAFI,EAAE,QAAQ,QAOpB;mBArHkB,cAAc"}
package/bin/0serve.js CHANGED
@@ -29,7 +29,7 @@ const types = {
29
29
  const root = path.normalize(path.resolve('./'))
30
30
 
31
31
  const server = http.createServer((req, res) => {
32
- const url = req.url || '/index.html'
32
+ const url = (req.url || '/index.html').split('?')[0]
33
33
  logging.print(logging.ORANGE, logging.BOLD, req.method || '', ' ', logging.GREY, logging.UNBOLD, url)
34
34
  const extension = path.extname(url).slice(1)
35
35
  /**
@@ -24,7 +24,7 @@ const scopes = {}
24
24
  const extractModMap = (v, k, pkgName, pathPrefix, importMap) => {
25
25
  if (k[0] !== '.') return
26
26
  if (typeof v === 'object') {
27
- extractModMap(v.browser || v.module || v.import, k, pkgName, pathPrefix, importMap)
27
+ extractModMap(v.browser || v.module || v.default || v.import, k, pkgName, pathPrefix, importMap)
28
28
  } else if (v && v[0] === '.') {
29
29
  importMap[pkgName + k.slice(1)] = pathPrefix + v.slice(1)
30
30
  }
@@ -45,13 +45,14 @@ const readPkg = (pkgJson, pathPrefix, importMap) => {
45
45
  })
46
46
  }
47
47
 
48
- readPkg(JSON.parse(fs.readFileSync('./package.json', { encoding: 'utf8' })), '.', exports)
48
+ const rootPkgJson = JSON.parse(fs.readFileSync('./package.json', { encoding: 'utf8' }))
49
+ readPkg(rootPkgJson, '.', exports)
49
50
 
50
51
  const testHtml = `
51
52
  <!DOCTYPE html>
52
53
  <html>
53
54
  <head>
54
- <title>Testing lib0</title>
55
+ <title>Testing ${rootPkgJson.name}</title>
55
56
  <script type="importmap">
56
57
  {
57
58
  "imports": ${JSON.stringify(exports, null, 2)},