lib0 0.2.51 → 0.2.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/node.js.yml +1 -1
- package/README.md +22 -20
- package/decoding.d.ts +2 -0
- package/decoding.d.ts.map +1 -1
- package/decoding.js +39 -14
- package/dist/{broadcastchannel-1e999014.cjs → broadcastchannel-a5969a44.cjs} +2 -2
- package/dist/{broadcastchannel-1e999014.cjs.map → broadcastchannel-a5969a44.cjs.map} +1 -1
- package/dist/broadcastchannel.cjs +6 -3
- package/dist/broadcastchannel.cjs.map +1 -1
- package/dist/{buffer-c98f67d5.cjs → buffer-9c449d1d.cjs} +93 -29
- package/dist/buffer-9c449d1d.cjs.map +1 -0
- package/dist/buffer.cjs +5 -2
- package/dist/buffer.cjs.map +1 -1
- package/dist/cache.cjs +3 -0
- package/dist/cache.cjs.map +1 -1
- package/dist/component.cjs +2 -2
- package/dist/decoding.cjs +8 -3
- package/dist/decoding.cjs.map +1 -1
- package/dist/decoding.d.ts +2 -0
- package/dist/decoding.d.ts.map +1 -1
- package/dist/{diff-2593547b.cjs → diff-642271b1.cjs} +2 -2
- package/dist/{diff-2593547b.cjs.map → diff-642271b1.cjs.map} +1 -1
- package/dist/diff.cjs +2 -2
- package/dist/encoding.cjs +8 -2
- package/dist/encoding.cjs.map +1 -1
- package/dist/encoding.d.ts +3 -0
- package/dist/encoding.d.ts.map +1 -1
- package/dist/encoding.test.d.ts +6 -1
- package/dist/encoding.test.d.ts.map +1 -1
- package/dist/{environment-60b83194.cjs → environment-3c81ab2f.cjs} +36 -13
- package/dist/environment-3c81ab2f.cjs.map +1 -0
- package/dist/environment.cjs +5 -1
- package/dist/environment.cjs.map +1 -1
- package/dist/environment.d.ts +1 -0
- package/dist/environment.d.ts.map +1 -1
- package/dist/{function-e4045b1d.cjs → function-3410854f.cjs} +14 -2
- package/dist/{function-e4045b1d.cjs.map → function-3410854f.cjs.map} +1 -1
- package/dist/function.cjs +2 -1
- package/dist/function.cjs.map +1 -1
- package/dist/function.d.ts +1 -0
- package/dist/function.d.ts.map +1 -1
- package/dist/index.cjs +7 -7
- package/dist/list.cjs +52 -1
- package/dist/list.cjs.map +1 -1
- package/dist/list.d.ts +5 -0
- package/dist/list.d.ts.map +1 -1
- package/dist/list.test.d.ts.map +1 -1
- package/dist/{logging-0a4d8595.cjs → logging-a2dc7e43.cjs} +131 -34
- package/dist/logging-a2dc7e43.cjs.map +1 -0
- package/dist/logging.cjs +3 -3
- package/dist/logging.d.ts.map +1 -1
- package/dist/number.test.d.ts +1 -0
- package/dist/number.test.d.ts.map +1 -1
- package/dist/{prng-bbec83e2.cjs → prng-c71ea8ea.cjs} +2 -2
- package/dist/{prng-bbec83e2.cjs.map → prng-c71ea8ea.cjs.map} +1 -1
- package/dist/prng.cjs +6 -3
- package/dist/prng.cjs.map +1 -1
- package/dist/testing.cjs +9 -9
- package/dist/testing.cjs.map +1 -1
- package/encoding.d.ts +3 -0
- package/encoding.d.ts.map +1 -1
- package/encoding.js +46 -14
- package/encoding.test.d.ts +6 -1
- package/encoding.test.d.ts.map +1 -1
- package/environment.d.ts +1 -0
- package/environment.d.ts.map +1 -1
- package/environment.js +32 -11
- package/function.d.ts +1 -0
- package/function.d.ts.map +1 -1
- package/function.js +10 -0
- package/list.d.ts +5 -0
- package/list.d.ts.map +1 -1
- package/list.js +46 -1
- package/list.test.d.ts.map +1 -1
- package/logging.d.ts.map +1 -1
- package/logging.js +128 -31
- package/number.test.d.ts +1 -0
- package/number.test.d.ts.map +1 -1
- package/package.json +2 -2
- package/testing.js +3 -3
- package/.circleci/config.yml +0 -7
- package/dist/buffer-c98f67d5.cjs.map +0 -1
- package/dist/environment-60b83194.cjs.map +0 -1
- package/dist/logging-0a4d8595.cjs.map +0 -1
- package/dist/test.cjs +0 -7637
- package/dist/test.cjs.map +0 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -7664
- package/dist/test.js.map +0 -1
|
@@ -4,6 +4,7 @@ var map = require('./map-28a001c9.cjs');
|
|
|
4
4
|
var string = require('./string-ad04f734.cjs');
|
|
5
5
|
var conditions = require('./conditions-fb475c70.cjs');
|
|
6
6
|
var storage = require('./storage.cjs');
|
|
7
|
+
var _function = require('./function-3410854f.cjs');
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Isomorphic module to work access the environment (query params, env variables).
|
|
@@ -13,11 +14,14 @@ var storage = require('./storage.cjs');
|
|
|
13
14
|
|
|
14
15
|
/* istanbul ignore next */
|
|
15
16
|
// @ts-ignore
|
|
16
|
-
const isNode = typeof process !== 'undefined' && process.release &&
|
|
17
|
+
const isNode = typeof process !== 'undefined' && process.release &&
|
|
18
|
+
/node|io\.js/.test(process.release.name);
|
|
17
19
|
/* istanbul ignore next */
|
|
18
20
|
const isBrowser = typeof window !== 'undefined' && !isNode;
|
|
19
21
|
/* istanbul ignore next */
|
|
20
|
-
const isMac = typeof navigator !== 'undefined'
|
|
22
|
+
const isMac = typeof navigator !== 'undefined'
|
|
23
|
+
? /Mac/.test(navigator.platform)
|
|
24
|
+
: false;
|
|
21
25
|
|
|
22
26
|
/**
|
|
23
27
|
* @type {Map<string,string>}
|
|
@@ -49,11 +53,10 @@ const computeParams = () => {
|
|
|
49
53
|
if (currParamName !== null) {
|
|
50
54
|
params.set(currParamName, '');
|
|
51
55
|
}
|
|
52
|
-
|
|
56
|
+
// in ReactNative for example this would not be true (unless connected to the Remote Debugger)
|
|
53
57
|
} else if (typeof location === 'object') {
|
|
54
|
-
params = map.create()
|
|
55
|
-
|
|
56
|
-
;(location.search || '?').slice(1).split('&').forEach(kv => {
|
|
58
|
+
params = map.create(); // eslint-disable-next-line no-undef
|
|
59
|
+
(location.search || '?').slice(1).split('&').forEach((kv) => {
|
|
57
60
|
if (kv.length !== 0) {
|
|
58
61
|
const [key, value] = kv.split('=');
|
|
59
62
|
params.set(`--${string.fromCamelCase(key, '-')}`, value);
|
|
@@ -72,7 +75,7 @@ const computeParams = () => {
|
|
|
72
75
|
* @return {boolean}
|
|
73
76
|
*/
|
|
74
77
|
/* istanbul ignore next */
|
|
75
|
-
const hasParam = name => computeParams().has(name);
|
|
78
|
+
const hasParam = (name) => computeParams().has(name);
|
|
76
79
|
|
|
77
80
|
/**
|
|
78
81
|
* @param {string} name
|
|
@@ -80,7 +83,8 @@ const hasParam = name => computeParams().has(name);
|
|
|
80
83
|
* @return {string}
|
|
81
84
|
*/
|
|
82
85
|
/* istanbul ignore next */
|
|
83
|
-
const getParam = (name, defaultVal) =>
|
|
86
|
+
const getParam = (name, defaultVal) =>
|
|
87
|
+
computeParams().get(name) || defaultVal;
|
|
84
88
|
// export const getArgs = name => computeParams() && args
|
|
85
89
|
|
|
86
90
|
/**
|
|
@@ -88,24 +92,41 @@ const getParam = (name, defaultVal) => computeParams().get(name) || defaultVal;
|
|
|
88
92
|
* @return {string|null}
|
|
89
93
|
*/
|
|
90
94
|
/* istanbul ignore next */
|
|
91
|
-
const getVariable =
|
|
95
|
+
const getVariable = (name) =>
|
|
96
|
+
isNode
|
|
97
|
+
? conditions.undefinedToNull(process.env[name.toUpperCase()])
|
|
98
|
+
: conditions.undefinedToNull(storage.varStorage.getItem(name));
|
|
92
99
|
|
|
93
100
|
/**
|
|
94
101
|
* @param {string} name
|
|
95
102
|
* @return {string|null}
|
|
96
103
|
*/
|
|
97
|
-
const getConf =
|
|
104
|
+
const getConf = (name) =>
|
|
105
|
+
computeParams().get('--' + name) || getVariable(name);
|
|
98
106
|
|
|
99
107
|
/**
|
|
100
108
|
* @param {string} name
|
|
101
109
|
* @return {boolean}
|
|
102
110
|
*/
|
|
103
111
|
/* istanbul ignore next */
|
|
104
|
-
const hasConf =
|
|
112
|
+
const hasConf = (name) =>
|
|
113
|
+
hasParam('--' + name) || getVariable(name) !== null;
|
|
105
114
|
|
|
106
115
|
/* istanbul ignore next */
|
|
107
116
|
const production = hasConf('production');
|
|
108
117
|
|
|
118
|
+
/* istanbul ignore next */
|
|
119
|
+
const forceColor = isNode &&
|
|
120
|
+
_function.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2']);
|
|
121
|
+
|
|
122
|
+
/* istanbul ignore next */
|
|
123
|
+
const supportsColor = !hasParam('no-colors') &&
|
|
124
|
+
(!isNode || process.stdout.isTTY || forceColor) && (
|
|
125
|
+
!isNode || hasParam('color') || forceColor ||
|
|
126
|
+
getVariable('COLORTERM') !== null ||
|
|
127
|
+
(getVariable('TERM') || '').includes('color')
|
|
128
|
+
);
|
|
129
|
+
|
|
109
130
|
var environment = /*#__PURE__*/Object.freeze({
|
|
110
131
|
__proto__: null,
|
|
111
132
|
isNode: isNode,
|
|
@@ -116,7 +137,8 @@ var environment = /*#__PURE__*/Object.freeze({
|
|
|
116
137
|
getVariable: getVariable,
|
|
117
138
|
getConf: getConf,
|
|
118
139
|
hasConf: hasConf,
|
|
119
|
-
production: production
|
|
140
|
+
production: production,
|
|
141
|
+
supportsColor: supportsColor
|
|
120
142
|
});
|
|
121
143
|
|
|
122
144
|
exports.environment = environment;
|
|
@@ -129,4 +151,5 @@ exports.isBrowser = isBrowser;
|
|
|
129
151
|
exports.isMac = isMac;
|
|
130
152
|
exports.isNode = isNode;
|
|
131
153
|
exports.production = production;
|
|
132
|
-
|
|
154
|
+
exports.supportsColor = supportsColor;
|
|
155
|
+
//# sourceMappingURL=environment-3c81ab2f.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-3c81ab2f.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'\nimport * as f from './function.js'\n\n/* istanbul ignore next */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release &&\n /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'\n ? /Mac/.test(navigator.platform)\n : 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(); // 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) =>\n 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) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase()])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* istanbul ignore next */\nexport const production = hasConf('production')\n\n/* istanbul ignore next */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* istanbul ignore next */\nexport const supportsColor = !hasParam('no-colors') &&\n (!isNode || process.stdout.isTTY || forceColor) && (\n !isNode || hasParam('color') || forceColor ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n)\n"],"names":["map.create","string.fromCamelCase","conditions.undefinedToNull","storage.varStorage","f.isOneOf"],"mappings":"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"}
|
package/dist/environment.cjs
CHANGED
|
@@ -6,7 +6,10 @@ require('./map-28a001c9.cjs');
|
|
|
6
6
|
require('./string-ad04f734.cjs');
|
|
7
7
|
require('./conditions-fb475c70.cjs');
|
|
8
8
|
require('./storage.cjs');
|
|
9
|
-
|
|
9
|
+
require('./function-3410854f.cjs');
|
|
10
|
+
var environment = require('./environment-3c81ab2f.cjs');
|
|
11
|
+
require('./array-acefe0f2.cjs');
|
|
12
|
+
require('./object-dcdd6eed.cjs');
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
|
|
@@ -19,4 +22,5 @@ exports.isBrowser = environment.isBrowser;
|
|
|
19
22
|
exports.isMac = environment.isMac;
|
|
20
23
|
exports.isNode = environment.isNode;
|
|
21
24
|
exports.production = environment.production;
|
|
25
|
+
exports.supportsColor = environment.supportsColor;
|
|
22
26
|
//# sourceMappingURL=environment.cjs.map
|
package/dist/environment.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/environment.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export function getVariable(name: string): string | null;
|
|
|
7
7
|
export function getConf(name: string): string | null;
|
|
8
8
|
export function hasConf(name: string): boolean;
|
|
9
9
|
export const production: boolean;
|
|
10
|
+
export const supportsColor: boolean;
|
|
10
11
|
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../environment.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../environment.js"],"names":[],"mappings":"AAcA,6BAC0C;AAE1C,gCAAiE;AAEjE,4BAES;AAyDF,+BAJI,MAAM,GACL,OAAO,CAGwC;AAQpD,+BALI,MAAM,cACN,MAAM,GACL,MAAM,CAIuB;AAQlC,kCAJI,MAAM,GACL,MAAM,GAAC,IAAI,CAM2C;AAM3D,8BAHI,MAAM,GACL,MAAM,GAAC,IAAI,CAGgC;AAOhD,8BAJI,MAAM,GACL,OAAO,CAIkC;AAGrD,iCAA+C;AAO/C,oCAKC"}
|
|
@@ -141,6 +141,16 @@ const equalityDeep = (a, b) => {
|
|
|
141
141
|
return true
|
|
142
142
|
};
|
|
143
143
|
|
|
144
|
+
/**
|
|
145
|
+
* @template V
|
|
146
|
+
* @template {V} OPTS
|
|
147
|
+
*
|
|
148
|
+
* @param {V} value
|
|
149
|
+
* @param {Array<OPTS>} options
|
|
150
|
+
*/
|
|
151
|
+
// @ts-ignore
|
|
152
|
+
const isOneOf = (value, options) => options.includes(value);
|
|
153
|
+
|
|
144
154
|
var _function = /*#__PURE__*/Object.freeze({
|
|
145
155
|
__proto__: null,
|
|
146
156
|
callAll: callAll,
|
|
@@ -149,7 +159,8 @@ var _function = /*#__PURE__*/Object.freeze({
|
|
|
149
159
|
id: id,
|
|
150
160
|
equalityStrict: equalityStrict,
|
|
151
161
|
equalityFlat: equalityFlat,
|
|
152
|
-
equalityDeep: equalityDeep
|
|
162
|
+
equalityDeep: equalityDeep,
|
|
163
|
+
isOneOf: isOneOf
|
|
153
164
|
});
|
|
154
165
|
|
|
155
166
|
exports._function = _function;
|
|
@@ -159,5 +170,6 @@ exports.equalityDeep = equalityDeep;
|
|
|
159
170
|
exports.equalityFlat = equalityFlat;
|
|
160
171
|
exports.equalityStrict = equalityStrict;
|
|
161
172
|
exports.id = id;
|
|
173
|
+
exports.isOneOf = isOneOf;
|
|
162
174
|
exports.nop = nop;
|
|
163
|
-
//# sourceMappingURL=function-
|
|
175
|
+
//# sourceMappingURL=function-3410854f.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-
|
|
1
|
+
{"version":3,"file":"function-3410854f.cjs","sources":["../function.js"],"sourcesContent":["/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array<function>} fs\n * @param {Array<any>} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array<T>|object} a\n * @param {Array<T>|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array<T>} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array<OPTS>} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n"],"names":["array.equalFlat","object.equalFlat","object.length","object.hasProperty"],"mappings":"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"}
|
package/dist/function.cjs
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
require('./array-acefe0f2.cjs');
|
|
6
6
|
require('./object-dcdd6eed.cjs');
|
|
7
|
-
var _function = require('./function-
|
|
7
|
+
var _function = require('./function-3410854f.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -14,5 +14,6 @@ exports.equalityDeep = _function.equalityDeep;
|
|
|
14
14
|
exports.equalityFlat = _function.equalityFlat;
|
|
15
15
|
exports.equalityStrict = _function.equalityStrict;
|
|
16
16
|
exports.id = _function.id;
|
|
17
|
+
exports.isOneOf = _function.isOneOf;
|
|
17
18
|
exports.nop = _function.nop;
|
|
18
19
|
//# sourceMappingURL=function.cjs.map
|
package/dist/function.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"function.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
package/dist/function.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export function id<A>(a: A): A;
|
|
|
5
5
|
export function equalityStrict<T>(a: T, b: T): boolean;
|
|
6
6
|
export function equalityFlat<T>(a: object | T[], b: object | T[]): boolean;
|
|
7
7
|
export function equalityDeep(a: any, b: any): boolean;
|
|
8
|
+
export function isOneOf<V, OPTS extends V>(value: V, options: OPTS[]): boolean;
|
|
8
9
|
//# sourceMappingURL=function.d.ts.map
|
package/dist/function.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../function.js"],"names":[],"mappings":"AAeO,4BAHI,eAAe,QACf,MAAM,GAAG,CAAC,oBAYpB;AAEM,4BAAoB;AAOpB,wCAAsB;AAQtB,+BAAiB;AASjB,+CAFK,OAAO,CAE4B;AASxC,mEAFK,OAAO,CAE2N;AAOvO,gCAJI,GAAG,KACH,GAAG,GACF,OAAO,CA0ElB"}
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../function.js"],"names":[],"mappings":"AAeO,4BAHI,eAAe,QACf,MAAM,GAAG,CAAC,oBAYpB;AAEM,4BAAoB;AAOpB,wCAAsB;AAQtB,+BAAiB;AASjB,+CAFK,OAAO,CAE4B;AASxC,mEAFK,OAAO,CAE2N;AAOvO,gCAJI,GAAG,KACH,GAAG,GACF,OAAO,CA0ElB;AAUM,+EAA2D"}
|
package/dist/index.cjs
CHANGED
|
@@ -4,26 +4,26 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var array = require('./array-acefe0f2.cjs');
|
|
6
6
|
var binary = require('./binary-ac8e39e2.cjs');
|
|
7
|
-
var broadcastchannel = require('./broadcastchannel-
|
|
8
|
-
var encoding = require('./buffer-
|
|
7
|
+
var broadcastchannel = require('./broadcastchannel-a5969a44.cjs');
|
|
8
|
+
var encoding = require('./buffer-9c449d1d.cjs');
|
|
9
9
|
var conditions = require('./conditions-fb475c70.cjs');
|
|
10
|
-
var diff = require('./diff-
|
|
10
|
+
var diff = require('./diff-642271b1.cjs');
|
|
11
11
|
var dom = require('./dom-58958c04.cjs');
|
|
12
|
-
var environment = require('./environment-
|
|
12
|
+
var environment = require('./environment-3c81ab2f.cjs');
|
|
13
13
|
var error = require('./error-873c9cbf.cjs');
|
|
14
14
|
var eventloop = require('./eventloop-c60b5658.cjs');
|
|
15
|
-
var _function = require('./function-
|
|
15
|
+
var _function = require('./function-3410854f.cjs');
|
|
16
16
|
var indexeddb = require('./indexeddb-5b4b0e13.cjs');
|
|
17
17
|
var iterator = require('./iterator-9fc627c1.cjs');
|
|
18
18
|
var json = require('./json-092190a1.cjs');
|
|
19
|
-
var logging = require('./logging-
|
|
19
|
+
var logging = require('./logging-a2dc7e43.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
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-
|
|
26
|
+
var prng = require('./prng-c71ea8ea.cjs');
|
|
27
27
|
var promise = require('./promise-1a9fe712.cjs');
|
|
28
28
|
var set = require('./set-b596ef38.cjs');
|
|
29
29
|
var sort = require('./sort-b8702761.cjs');
|
package/dist/list.cjs
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _function = require('./function-3410854f.cjs');
|
|
5
6
|
var error = require('./error-873c9cbf.cjs');
|
|
7
|
+
require('./array-acefe0f2.cjs');
|
|
8
|
+
require('./object-dcdd6eed.cjs');
|
|
6
9
|
|
|
7
10
|
class ListNode {
|
|
8
11
|
constructor () {
|
|
@@ -30,6 +33,7 @@ class List {
|
|
|
30
33
|
* @type {N | null}
|
|
31
34
|
*/
|
|
32
35
|
this.end = null;
|
|
36
|
+
this.len = 0;
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
|
|
@@ -58,7 +62,7 @@ const isEmpty = queue => queue.start === null;
|
|
|
58
62
|
* @param {List<N>} queue
|
|
59
63
|
* @param {N} node
|
|
60
64
|
*/
|
|
61
|
-
const
|
|
65
|
+
const remove = (queue, node) => {
|
|
62
66
|
const prev = node.prev;
|
|
63
67
|
const next = node.next;
|
|
64
68
|
if (prev) {
|
|
@@ -71,9 +75,15 @@ const removeNode = (queue, node) => {
|
|
|
71
75
|
} else {
|
|
72
76
|
queue.end = prev;
|
|
73
77
|
}
|
|
78
|
+
queue.len--;
|
|
74
79
|
return node
|
|
75
80
|
};
|
|
76
81
|
|
|
82
|
+
/**
|
|
83
|
+
* @deprecated @todo remove in next major release
|
|
84
|
+
*/
|
|
85
|
+
const removeNode = remove;
|
|
86
|
+
|
|
77
87
|
/**
|
|
78
88
|
* @template {ListNode} N
|
|
79
89
|
*
|
|
@@ -99,6 +109,21 @@ const insertBetween = (queue, left, right, node) => {
|
|
|
99
109
|
}
|
|
100
110
|
node.prev = left;
|
|
101
111
|
node.next = right;
|
|
112
|
+
queue.len++;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.
|
|
117
|
+
*
|
|
118
|
+
* @template {ListNode} N
|
|
119
|
+
*
|
|
120
|
+
* @param {List<N>} queue
|
|
121
|
+
* @param {N} node
|
|
122
|
+
* @param {N} newNode
|
|
123
|
+
*/
|
|
124
|
+
const replace = (queue, node, newNode) => {
|
|
125
|
+
insertBetween(queue, node, node.next, newNode);
|
|
126
|
+
remove(queue, node);
|
|
102
127
|
};
|
|
103
128
|
|
|
104
129
|
/**
|
|
@@ -158,9 +183,32 @@ const map = (list, f) => {
|
|
|
158
183
|
return arr
|
|
159
184
|
};
|
|
160
185
|
|
|
186
|
+
/**
|
|
187
|
+
* @template {ListNode} N
|
|
188
|
+
*
|
|
189
|
+
* @param {List<N>} list
|
|
190
|
+
*/
|
|
191
|
+
const toArray = list => map(list, _function.id);
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* @template {ListNode} N
|
|
195
|
+
* @template M
|
|
196
|
+
*
|
|
197
|
+
* @param {List<N>} list
|
|
198
|
+
* @param {function(N):M} f
|
|
199
|
+
*/
|
|
200
|
+
const forEach = (list, f) => {
|
|
201
|
+
let n = list.start;
|
|
202
|
+
while (n) {
|
|
203
|
+
f(n);
|
|
204
|
+
n = n.next;
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
|
|
161
208
|
exports.List = List;
|
|
162
209
|
exports.ListNode = ListNode;
|
|
163
210
|
exports.create = create;
|
|
211
|
+
exports.forEach = forEach;
|
|
164
212
|
exports.insertBetween = insertBetween;
|
|
165
213
|
exports.isEmpty = isEmpty;
|
|
166
214
|
exports.map = map;
|
|
@@ -168,5 +216,8 @@ exports.popEnd = popEnd;
|
|
|
168
216
|
exports.popFront = popFront;
|
|
169
217
|
exports.pushEnd = pushEnd;
|
|
170
218
|
exports.pushFront = pushFront;
|
|
219
|
+
exports.remove = remove;
|
|
171
220
|
exports.removeNode = removeNode;
|
|
221
|
+
exports.replace = replace;
|
|
222
|
+
exports.toArray = toArray;
|
|
172
223
|
//# sourceMappingURL=list.cjs.map
|
package/dist/list.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.cjs","sources":["../list.js"],"sourcesContent":["import * as error from './error.js'\n\nexport class ListNode {\n constructor () {\n /**\n * @type {this|null}\n */\n this.next = null\n /**\n * @type {this|null}\n */\n this.prev = null\n }\n}\n\n/**\n * @template {ListNode} N\n */\nexport class List {\n constructor () {\n /**\n * @type {N | null}\n */\n this.start = null\n /**\n * @type {N | null}\n */\n this.end = null\n }\n}\n\n/**\n * @note The queue implementation is experimental and unfinished.\n * Don't use this in production yet.\n *\n * @template {ListNode} N\n *\n * @return {List<N>}\n */\nexport const create = () => new List()\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n */\nexport const isEmpty = queue => queue.start === null\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} node\n */\nexport const
|
|
1
|
+
{"version":3,"file":"list.cjs","sources":["../list.js"],"sourcesContent":["import { id } from './function.js'\nimport * as error from './error.js'\n\nexport class ListNode {\n constructor () {\n /**\n * @type {this|null}\n */\n this.next = null\n /**\n * @type {this|null}\n */\n this.prev = null\n }\n}\n\n/**\n * @template {ListNode} N\n */\nexport class List {\n constructor () {\n /**\n * @type {N | null}\n */\n this.start = null\n /**\n * @type {N | null}\n */\n this.end = null\n this.len = 0\n }\n}\n\n/**\n * @note The queue implementation is experimental and unfinished.\n * Don't use this in production yet.\n *\n * @template {ListNode} N\n *\n * @return {List<N>}\n */\nexport const create = () => new List()\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n */\nexport const isEmpty = queue => queue.start === null\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} node\n */\nexport const remove = (queue, node) => {\n const prev = node.prev\n const next = node.next\n if (prev) {\n prev.next = next\n } else {\n queue.start = next\n }\n if (next) {\n next.prev = prev\n } else {\n queue.end = prev\n }\n queue.len--\n return node\n}\n\n/**\n * @deprecated @todo remove in next major release\n */\nexport const removeNode = remove\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N| null} left\n * @param {N| null} right\n * @param {N} node\n */\nexport const insertBetween = (queue, left, right, node) => {\n /* istanbul ignore if */\n if (left != null && left.next !== right) {\n throw error.unexpectedCase()\n }\n if (left) {\n left.next = node\n } else {\n queue.start = node\n }\n if (right) {\n right.prev = node\n } else {\n queue.end = node\n }\n node.prev = left\n node.next = right\n queue.len++\n}\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} node\n * @param {N} newNode\n */\nexport const replace = (queue, node, newNode) => {\n insertBetween(queue, node, node.next, newNode)\n remove(queue, node)\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushEnd = (queue, n) =>\n insertBetween(queue, queue.end, null, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushFront = (queue, n) =>\n insertBetween(queue, null, queue.start, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popFront = list =>\n list.start ? removeNode(list, list.start) : null\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popEnd = list =>\n list.end ? removeNode(list, list.end) : null\n\n/**\n * @template {ListNode} N\n * @template M\n *\n * @param {List<N>} list\n * @param {function(N):M} f\n * @return {Array<M>}\n */\nexport const map = (list, f) => {\n /**\n * @type {Array<M>}\n */\n const arr = []\n let n = list.start\n while (n) {\n arr.push(f(n))\n n = n.next\n }\n return arr\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n */\nexport const toArray = list => map(list, id)\n\n/**\n * @template {ListNode} N\n * @template M\n *\n * @param {List<N>} list\n * @param {function(N):M} f\n */\nexport const forEach = (list, f) => {\n let n = list.start\n while (n) {\n f(n)\n n = n.next\n }\n}\n"],"names":["error.unexpectedCase","id"],"mappings":"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"}
|
package/dist/list.d.ts
CHANGED
|
@@ -20,14 +20,19 @@ export class List<N extends ListNode> {
|
|
|
20
20
|
* @type {N | null}
|
|
21
21
|
*/
|
|
22
22
|
end: N | null;
|
|
23
|
+
len: number;
|
|
23
24
|
}
|
|
24
25
|
export function create<N extends ListNode>(): List<N>;
|
|
25
26
|
export function isEmpty<N extends ListNode>(queue: List<N>): boolean;
|
|
27
|
+
export function remove<N extends ListNode>(queue: List<N>, node: N): N;
|
|
26
28
|
export function removeNode<N extends ListNode>(queue: List<N>, node: N): N;
|
|
27
29
|
export function insertBetween<N extends ListNode>(queue: List<N>, left: N | null, right: N | null, node: N): void;
|
|
30
|
+
export function replace<N extends ListNode>(queue: List<N>, node: N, newNode: N): void;
|
|
28
31
|
export function pushEnd<N extends ListNode>(queue: List<N>, n: N): void;
|
|
29
32
|
export function pushFront<N extends ListNode>(queue: List<N>, n: N): void;
|
|
30
33
|
export function popFront<N extends ListNode>(list: List<N>): N | null;
|
|
31
34
|
export function popEnd<N extends ListNode>(list: List<N>): N | null;
|
|
32
35
|
export function map<N extends ListNode, M>(list: List<N>, f: (arg0: N) => M): M[];
|
|
36
|
+
export function toArray<N extends ListNode>(list: List<N>): N[];
|
|
37
|
+
export function forEach<N extends ListNode, M>(list: List<N>, f: (arg0: N) => M): void;
|
|
33
38
|
//# sourceMappingURL=list.d.ts.map
|
package/dist/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../list.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../list.js"],"names":[],"mappings":"AAGA;IAEI;;OAEG;IACH,sBAAgB;IAChB;;OAEG;IACH,sBAAgB;CAEnB;AAED;;GAEG;AACH;IAEI;;OAEG;IACH,OAFU,CAAC,GAAG,IAAI,CAED;IACjB;;OAEG;IACH,KAFU,CAAC,GAAG,IAAI,CAEH;IACf,YAAY;CAEf;AAUM,sDAA+B;AAO/B,qEAA6C;AAU7C,uEAeN;AAfM,2EAeN;AAeM,kHAkBN;AAWM,uFAGN;AAQM,wEACmC;AAQnC,0EACqC;AAQrC,sEAC2C;AAQ3C,oEACuC;AAUvC,kFAWN;AAOM,gEAAqC;AASrC,uFAMN"}
|
package/dist/list.test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.test.d.ts","sourceRoot":"","sources":["../list.test.js"],"names":[],"mappings":"AAgBO,uCAFI,EAAE,QAAQ,QA8BpB;AAKM,qCAFI,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"list.test.d.ts","sourceRoot":"","sources":["../list.test.js"],"names":[],"mappings":"AAgBO,uCAFI,EAAE,QAAQ,QA8BpB;AAKM,qCAFI,EAAE,QAAQ,QA0BpB"}
|