pnpm 10.8.1 → 10.9.0
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/dist/node_modules/.modules.yaml +8 -6
- package/dist/node_modules/.pnpm/lock.yaml +8 -8
- package/dist/node_modules/.pnpm-workspace-state.json +1 -1
- package/dist/node_modules/fdir/dist/api/walker.js +3 -2
- package/dist/node_modules/fdir/dist/builder/index.js +1 -1
- package/dist/node_modules/fdir/dist/utils.js +5 -1
- package/dist/node_modules/fdir/package.json +3 -1
- package/dist/node_modules/minipass-flush/node_modules/yallist/package.json +29 -0
- package/dist/node_modules/minipass-pipeline/node_modules/yallist/LICENSE +15 -0
- package/dist/node_modules/minipass-pipeline/node_modules/yallist/iterator.js +8 -0
- package/dist/node_modules/minipass-pipeline/node_modules/yallist/package.json +29 -0
- package/dist/node_modules/minipass-pipeline/node_modules/yallist/yallist.js +426 -0
- package/dist/node_modules/minipass-sized/node_modules/yallist/LICENSE +15 -0
- package/dist/node_modules/minipass-sized/node_modules/yallist/iterator.js +8 -0
- package/dist/node_modules/minipass-sized/node_modules/yallist/package.json +29 -0
- package/dist/node_modules/minipass-sized/node_modules/yallist/yallist.js +426 -0
- package/dist/node_modules/tinyglobby/dist/index.js +2 -2
- package/dist/node_modules/tinyglobby/dist/index.mjs +2 -2
- package/dist/node_modules/tinyglobby/package.json +7 -7
- package/dist/node_modules/yallist/package.json +51 -12
- package/dist/pnpm.cjs +1463 -1313
- package/package.json +1 -1
- package/dist/node_modules/tar/node_modules/yallist/package.json +0 -68
- /package/dist/node_modules/{yallist → minipass-flush/node_modules/yallist}/LICENSE +0 -0
- /package/dist/node_modules/{yallist → minipass-flush/node_modules/yallist}/iterator.js +0 -0
- /package/dist/node_modules/{yallist → minipass-flush/node_modules/yallist}/yallist.js +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.d.ts.map +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js.map +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/package.json +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.d.ts.map +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js.map +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/package.json +0 -0
|
@@ -16,9 +16,9 @@ hoistedLocations:
|
|
|
16
16
|
agent-base@7.1.3:
|
|
17
17
|
- node_modules/agent-base
|
|
18
18
|
ansi-regex@5.0.1:
|
|
19
|
-
- node_modules/strip-ansi-cjs/node_modules/ansi-regex
|
|
20
19
|
- node_modules/wrap-ansi-cjs/node_modules/ansi-regex
|
|
21
20
|
- node_modules/string-width-cjs/node_modules/ansi-regex
|
|
21
|
+
- node_modules/strip-ansi-cjs/node_modules/ansi-regex
|
|
22
22
|
ansi-regex@6.1.0:
|
|
23
23
|
- node_modules/ansi-regex
|
|
24
24
|
ansi-styles@4.3.0:
|
|
@@ -56,7 +56,7 @@ hoistedLocations:
|
|
|
56
56
|
- node_modules/err-code
|
|
57
57
|
exponential-backoff@3.1.2:
|
|
58
58
|
- node_modules/exponential-backoff
|
|
59
|
-
fdir@6.4.
|
|
59
|
+
fdir@6.4.4(picomatch@4.0.2):
|
|
60
60
|
- node_modules/fdir
|
|
61
61
|
foreground-child@3.3.1:
|
|
62
62
|
- node_modules/foreground-child
|
|
@@ -171,7 +171,7 @@ hoistedLocations:
|
|
|
171
171
|
- node_modules/strip-ansi
|
|
172
172
|
tar@7.4.3:
|
|
173
173
|
- node_modules/tar
|
|
174
|
-
tinyglobby@0.2.
|
|
174
|
+
tinyglobby@0.2.13:
|
|
175
175
|
- node_modules/tinyglobby
|
|
176
176
|
unique-filename@4.0.0:
|
|
177
177
|
- node_modules/unique-filename
|
|
@@ -188,9 +188,11 @@ hoistedLocations:
|
|
|
188
188
|
wrap-ansi@8.1.0:
|
|
189
189
|
- node_modules/wrap-ansi
|
|
190
190
|
yallist@4.0.0:
|
|
191
|
-
- node_modules/yallist
|
|
191
|
+
- node_modules/minipass-flush/node_modules/yallist
|
|
192
|
+
- node_modules/minipass-pipeline/node_modules/yallist
|
|
193
|
+
- node_modules/minipass-sized/node_modules/yallist
|
|
192
194
|
yallist@5.0.0:
|
|
193
|
-
- node_modules/
|
|
195
|
+
- node_modules/yallist
|
|
194
196
|
included:
|
|
195
197
|
dependencies: true
|
|
196
198
|
devDependencies: true
|
|
@@ -200,7 +202,7 @@ layoutVersion: 5
|
|
|
200
202
|
nodeLinker: hoisted
|
|
201
203
|
packageManager: pnpm@10.6.5
|
|
202
204
|
pendingBuilds: []
|
|
203
|
-
prunedAt: Mon,
|
|
205
|
+
prunedAt: Mon, 21 Apr 2025 08:36:27 GMT
|
|
204
206
|
publicHoistPattern: []
|
|
205
207
|
registries:
|
|
206
208
|
default: https://registry.npmjs.org/
|
|
@@ -147,8 +147,8 @@ packages:
|
|
|
147
147
|
exponential-backoff@3.1.2:
|
|
148
148
|
resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
|
|
149
149
|
|
|
150
|
-
fdir@6.4.
|
|
151
|
-
resolution: {integrity: sha512-
|
|
150
|
+
fdir@6.4.4:
|
|
151
|
+
resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==}
|
|
152
152
|
peerDependencies:
|
|
153
153
|
picomatch: ^3 || ^4
|
|
154
154
|
peerDependenciesMeta:
|
|
@@ -365,8 +365,8 @@ packages:
|
|
|
365
365
|
resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==}
|
|
366
366
|
engines: {node: '>=18'}
|
|
367
367
|
|
|
368
|
-
tinyglobby@0.2.
|
|
369
|
-
resolution: {integrity: sha512-
|
|
368
|
+
tinyglobby@0.2.13:
|
|
369
|
+
resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==}
|
|
370
370
|
engines: {node: '>=12.0.0'}
|
|
371
371
|
|
|
372
372
|
unique-filename@4.0.0:
|
|
@@ -531,7 +531,7 @@ snapshots:
|
|
|
531
531
|
exponential-backoff@3.1.2:
|
|
532
532
|
optional: true
|
|
533
533
|
|
|
534
|
-
fdir@6.4.
|
|
534
|
+
fdir@6.4.4(picomatch@4.0.2):
|
|
535
535
|
optionalDependencies:
|
|
536
536
|
picomatch: 4.0.2
|
|
537
537
|
optional: true
|
|
@@ -698,7 +698,7 @@ snapshots:
|
|
|
698
698
|
proc-log: 5.0.0
|
|
699
699
|
semver: 7.7.1
|
|
700
700
|
tar: 7.4.3
|
|
701
|
-
tinyglobby: 0.2.
|
|
701
|
+
tinyglobby: 0.2.13
|
|
702
702
|
which: 5.0.0
|
|
703
703
|
transitivePeerDependencies:
|
|
704
704
|
- supports-color
|
|
@@ -816,9 +816,9 @@ snapshots:
|
|
|
816
816
|
yallist: 5.0.0
|
|
817
817
|
optional: true
|
|
818
818
|
|
|
819
|
-
tinyglobby@0.2.
|
|
819
|
+
tinyglobby@0.2.13:
|
|
820
820
|
dependencies:
|
|
821
|
-
fdir: 6.4.
|
|
821
|
+
fdir: 6.4.4(picomatch@4.0.2)
|
|
822
822
|
picomatch: 4.0.2
|
|
823
823
|
optional: true
|
|
824
824
|
|
|
@@ -53,7 +53,7 @@ class Walker {
|
|
|
53
53
|
this.callbackInvoker = invokeCallback.build(options, this.isSynchronous);
|
|
54
54
|
this.root = (0, utils_1.normalizePath)(root, options);
|
|
55
55
|
this.state = {
|
|
56
|
-
root: this.root.slice(0, -1),
|
|
56
|
+
root: (0, utils_1.isRootDirectory)(this.root) ? this.root : this.root.slice(0, -1),
|
|
57
57
|
// Perf: we explicitly tell the compiler to optimize for String arrays
|
|
58
58
|
paths: [""].slice(0, 0),
|
|
59
59
|
groups: [],
|
|
@@ -104,7 +104,8 @@ class Walker {
|
|
|
104
104
|
this.resolveSymlink(path, this.state, (stat, resolvedPath) => {
|
|
105
105
|
if (stat.isDirectory()) {
|
|
106
106
|
resolvedPath = (0, utils_1.normalizePath)(resolvedPath, this.state.options);
|
|
107
|
-
if (exclude &&
|
|
107
|
+
if (exclude &&
|
|
108
|
+
exclude(entry.name, useRealPaths ? resolvedPath : path + pathSeparator))
|
|
108
109
|
return;
|
|
109
110
|
this.walkDirectory(this.state, resolvedPath, useRealPaths ? resolvedPath : path + pathSeparator, depth - 1, this.walk);
|
|
110
111
|
}
|
|
@@ -122,7 +122,7 @@ class Builder {
|
|
|
122
122
|
const globFn = (this.globFunction || pm);
|
|
123
123
|
/* c8 ignore next 5 */
|
|
124
124
|
if (!globFn) {
|
|
125
|
-
throw new Error(
|
|
125
|
+
throw new Error("Please specify a glob function to use glob matching.");
|
|
126
126
|
}
|
|
127
127
|
var isMatch = this.globCache[patterns.join("\0")];
|
|
128
128
|
if (!isMatch) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizePath = exports.convertSlashes = exports.cleanPath = void 0;
|
|
3
|
+
exports.normalizePath = exports.isRootDirectory = exports.convertSlashes = exports.cleanPath = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
5
|
function cleanPath(path) {
|
|
6
6
|
let normalized = (0, path_1.normalize)(path);
|
|
@@ -16,6 +16,10 @@ function convertSlashes(path, separator) {
|
|
|
16
16
|
return path.replace(SLASHES_REGEX, separator);
|
|
17
17
|
}
|
|
18
18
|
exports.convertSlashes = convertSlashes;
|
|
19
|
+
function isRootDirectory(path) {
|
|
20
|
+
return path === "/" || /^[a-z]:\\$/i.test(path);
|
|
21
|
+
}
|
|
22
|
+
exports.isRootDirectory = isRootDirectory;
|
|
19
23
|
function normalizePath(path, options) {
|
|
20
24
|
const { resolvePaths, normalizePath, pathSeparator } = options;
|
|
21
25
|
const pathNeedsCleaning = (process.platform === "win32" && path.includes("/")) ||
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fdir",
|
|
3
|
-
"version": "6.4.
|
|
3
|
+
"version": "6.4.4",
|
|
4
4
|
"description": "The fastest directory crawler & globbing alternative to glob, fast-glob, & tiny-glob. Crawls 1m files in < 1s",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"prepublishOnly": "npm run test && npm run build",
|
|
9
9
|
"build": "tsc",
|
|
10
|
+
"format": "prettier --write src __tests__ benchmarks",
|
|
10
11
|
"test": "vitest run __tests__/",
|
|
11
12
|
"test:coverage": "vitest run --coverage __tests__/",
|
|
12
13
|
"test:watch": "vitest __tests__/",
|
|
@@ -65,6 +66,7 @@
|
|
|
65
66
|
"klaw-sync": "^6.0.0",
|
|
66
67
|
"mock-fs": "^5.2.0",
|
|
67
68
|
"picomatch": "^4.0.2",
|
|
69
|
+
"prettier": "^3.5.3",
|
|
68
70
|
"recur-readdir": "0.0.1",
|
|
69
71
|
"recursive-files": "^1.0.2",
|
|
70
72
|
"recursive-fs": "^2.1.0",
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "yallist",
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "Yet Another Linked List",
|
|
5
|
+
"main": "yallist.js",
|
|
6
|
+
"directories": {
|
|
7
|
+
"test": "test"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"yallist.js",
|
|
11
|
+
"iterator.js"
|
|
12
|
+
],
|
|
13
|
+
"dependencies": {},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"tap": "^12.1.0"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"test": "tap test/*.js --100",
|
|
19
|
+
"preversion": "npm test",
|
|
20
|
+
"postversion": "npm publish",
|
|
21
|
+
"postpublish": "git push origin --all; git push origin --tags"
|
|
22
|
+
},
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/isaacs/yallist.git"
|
|
26
|
+
},
|
|
27
|
+
"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
|
|
28
|
+
"license": "ISC"
|
|
29
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
The ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Isaac Z. Schlueter and Contributors
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
copyright notice and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
10
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
11
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
12
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
13
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
14
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
15
|
+
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "yallist",
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "Yet Another Linked List",
|
|
5
|
+
"main": "yallist.js",
|
|
6
|
+
"directories": {
|
|
7
|
+
"test": "test"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"yallist.js",
|
|
11
|
+
"iterator.js"
|
|
12
|
+
],
|
|
13
|
+
"dependencies": {},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"tap": "^12.1.0"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"test": "tap test/*.js --100",
|
|
19
|
+
"preversion": "npm test",
|
|
20
|
+
"postversion": "npm publish",
|
|
21
|
+
"postpublish": "git push origin --all; git push origin --tags"
|
|
22
|
+
},
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/isaacs/yallist.git"
|
|
26
|
+
},
|
|
27
|
+
"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
|
|
28
|
+
"license": "ISC"
|
|
29
|
+
}
|
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
module.exports = Yallist
|
|
3
|
+
|
|
4
|
+
Yallist.Node = Node
|
|
5
|
+
Yallist.create = Yallist
|
|
6
|
+
|
|
7
|
+
function Yallist (list) {
|
|
8
|
+
var self = this
|
|
9
|
+
if (!(self instanceof Yallist)) {
|
|
10
|
+
self = new Yallist()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
self.tail = null
|
|
14
|
+
self.head = null
|
|
15
|
+
self.length = 0
|
|
16
|
+
|
|
17
|
+
if (list && typeof list.forEach === 'function') {
|
|
18
|
+
list.forEach(function (item) {
|
|
19
|
+
self.push(item)
|
|
20
|
+
})
|
|
21
|
+
} else if (arguments.length > 0) {
|
|
22
|
+
for (var i = 0, l = arguments.length; i < l; i++) {
|
|
23
|
+
self.push(arguments[i])
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return self
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
Yallist.prototype.removeNode = function (node) {
|
|
31
|
+
if (node.list !== this) {
|
|
32
|
+
throw new Error('removing node which does not belong to this list')
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var next = node.next
|
|
36
|
+
var prev = node.prev
|
|
37
|
+
|
|
38
|
+
if (next) {
|
|
39
|
+
next.prev = prev
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (prev) {
|
|
43
|
+
prev.next = next
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (node === this.head) {
|
|
47
|
+
this.head = next
|
|
48
|
+
}
|
|
49
|
+
if (node === this.tail) {
|
|
50
|
+
this.tail = prev
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
node.list.length--
|
|
54
|
+
node.next = null
|
|
55
|
+
node.prev = null
|
|
56
|
+
node.list = null
|
|
57
|
+
|
|
58
|
+
return next
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
Yallist.prototype.unshiftNode = function (node) {
|
|
62
|
+
if (node === this.head) {
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (node.list) {
|
|
67
|
+
node.list.removeNode(node)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var head = this.head
|
|
71
|
+
node.list = this
|
|
72
|
+
node.next = head
|
|
73
|
+
if (head) {
|
|
74
|
+
head.prev = node
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
this.head = node
|
|
78
|
+
if (!this.tail) {
|
|
79
|
+
this.tail = node
|
|
80
|
+
}
|
|
81
|
+
this.length++
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
Yallist.prototype.pushNode = function (node) {
|
|
85
|
+
if (node === this.tail) {
|
|
86
|
+
return
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (node.list) {
|
|
90
|
+
node.list.removeNode(node)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var tail = this.tail
|
|
94
|
+
node.list = this
|
|
95
|
+
node.prev = tail
|
|
96
|
+
if (tail) {
|
|
97
|
+
tail.next = node
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
this.tail = node
|
|
101
|
+
if (!this.head) {
|
|
102
|
+
this.head = node
|
|
103
|
+
}
|
|
104
|
+
this.length++
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
Yallist.prototype.push = function () {
|
|
108
|
+
for (var i = 0, l = arguments.length; i < l; i++) {
|
|
109
|
+
push(this, arguments[i])
|
|
110
|
+
}
|
|
111
|
+
return this.length
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
Yallist.prototype.unshift = function () {
|
|
115
|
+
for (var i = 0, l = arguments.length; i < l; i++) {
|
|
116
|
+
unshift(this, arguments[i])
|
|
117
|
+
}
|
|
118
|
+
return this.length
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
Yallist.prototype.pop = function () {
|
|
122
|
+
if (!this.tail) {
|
|
123
|
+
return undefined
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
var res = this.tail.value
|
|
127
|
+
this.tail = this.tail.prev
|
|
128
|
+
if (this.tail) {
|
|
129
|
+
this.tail.next = null
|
|
130
|
+
} else {
|
|
131
|
+
this.head = null
|
|
132
|
+
}
|
|
133
|
+
this.length--
|
|
134
|
+
return res
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
Yallist.prototype.shift = function () {
|
|
138
|
+
if (!this.head) {
|
|
139
|
+
return undefined
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
var res = this.head.value
|
|
143
|
+
this.head = this.head.next
|
|
144
|
+
if (this.head) {
|
|
145
|
+
this.head.prev = null
|
|
146
|
+
} else {
|
|
147
|
+
this.tail = null
|
|
148
|
+
}
|
|
149
|
+
this.length--
|
|
150
|
+
return res
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
Yallist.prototype.forEach = function (fn, thisp) {
|
|
154
|
+
thisp = thisp || this
|
|
155
|
+
for (var walker = this.head, i = 0; walker !== null; i++) {
|
|
156
|
+
fn.call(thisp, walker.value, i, this)
|
|
157
|
+
walker = walker.next
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
Yallist.prototype.forEachReverse = function (fn, thisp) {
|
|
162
|
+
thisp = thisp || this
|
|
163
|
+
for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
|
|
164
|
+
fn.call(thisp, walker.value, i, this)
|
|
165
|
+
walker = walker.prev
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
Yallist.prototype.get = function (n) {
|
|
170
|
+
for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
|
|
171
|
+
// abort out of the list early if we hit a cycle
|
|
172
|
+
walker = walker.next
|
|
173
|
+
}
|
|
174
|
+
if (i === n && walker !== null) {
|
|
175
|
+
return walker.value
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
Yallist.prototype.getReverse = function (n) {
|
|
180
|
+
for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
|
|
181
|
+
// abort out of the list early if we hit a cycle
|
|
182
|
+
walker = walker.prev
|
|
183
|
+
}
|
|
184
|
+
if (i === n && walker !== null) {
|
|
185
|
+
return walker.value
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
Yallist.prototype.map = function (fn, thisp) {
|
|
190
|
+
thisp = thisp || this
|
|
191
|
+
var res = new Yallist()
|
|
192
|
+
for (var walker = this.head; walker !== null;) {
|
|
193
|
+
res.push(fn.call(thisp, walker.value, this))
|
|
194
|
+
walker = walker.next
|
|
195
|
+
}
|
|
196
|
+
return res
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
Yallist.prototype.mapReverse = function (fn, thisp) {
|
|
200
|
+
thisp = thisp || this
|
|
201
|
+
var res = new Yallist()
|
|
202
|
+
for (var walker = this.tail; walker !== null;) {
|
|
203
|
+
res.push(fn.call(thisp, walker.value, this))
|
|
204
|
+
walker = walker.prev
|
|
205
|
+
}
|
|
206
|
+
return res
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
Yallist.prototype.reduce = function (fn, initial) {
|
|
210
|
+
var acc
|
|
211
|
+
var walker = this.head
|
|
212
|
+
if (arguments.length > 1) {
|
|
213
|
+
acc = initial
|
|
214
|
+
} else if (this.head) {
|
|
215
|
+
walker = this.head.next
|
|
216
|
+
acc = this.head.value
|
|
217
|
+
} else {
|
|
218
|
+
throw new TypeError('Reduce of empty list with no initial value')
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
for (var i = 0; walker !== null; i++) {
|
|
222
|
+
acc = fn(acc, walker.value, i)
|
|
223
|
+
walker = walker.next
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return acc
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
Yallist.prototype.reduceReverse = function (fn, initial) {
|
|
230
|
+
var acc
|
|
231
|
+
var walker = this.tail
|
|
232
|
+
if (arguments.length > 1) {
|
|
233
|
+
acc = initial
|
|
234
|
+
} else if (this.tail) {
|
|
235
|
+
walker = this.tail.prev
|
|
236
|
+
acc = this.tail.value
|
|
237
|
+
} else {
|
|
238
|
+
throw new TypeError('Reduce of empty list with no initial value')
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
for (var i = this.length - 1; walker !== null; i--) {
|
|
242
|
+
acc = fn(acc, walker.value, i)
|
|
243
|
+
walker = walker.prev
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return acc
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
Yallist.prototype.toArray = function () {
|
|
250
|
+
var arr = new Array(this.length)
|
|
251
|
+
for (var i = 0, walker = this.head; walker !== null; i++) {
|
|
252
|
+
arr[i] = walker.value
|
|
253
|
+
walker = walker.next
|
|
254
|
+
}
|
|
255
|
+
return arr
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
Yallist.prototype.toArrayReverse = function () {
|
|
259
|
+
var arr = new Array(this.length)
|
|
260
|
+
for (var i = 0, walker = this.tail; walker !== null; i++) {
|
|
261
|
+
arr[i] = walker.value
|
|
262
|
+
walker = walker.prev
|
|
263
|
+
}
|
|
264
|
+
return arr
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
Yallist.prototype.slice = function (from, to) {
|
|
268
|
+
to = to || this.length
|
|
269
|
+
if (to < 0) {
|
|
270
|
+
to += this.length
|
|
271
|
+
}
|
|
272
|
+
from = from || 0
|
|
273
|
+
if (from < 0) {
|
|
274
|
+
from += this.length
|
|
275
|
+
}
|
|
276
|
+
var ret = new Yallist()
|
|
277
|
+
if (to < from || to < 0) {
|
|
278
|
+
return ret
|
|
279
|
+
}
|
|
280
|
+
if (from < 0) {
|
|
281
|
+
from = 0
|
|
282
|
+
}
|
|
283
|
+
if (to > this.length) {
|
|
284
|
+
to = this.length
|
|
285
|
+
}
|
|
286
|
+
for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
|
|
287
|
+
walker = walker.next
|
|
288
|
+
}
|
|
289
|
+
for (; walker !== null && i < to; i++, walker = walker.next) {
|
|
290
|
+
ret.push(walker.value)
|
|
291
|
+
}
|
|
292
|
+
return ret
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
Yallist.prototype.sliceReverse = function (from, to) {
|
|
296
|
+
to = to || this.length
|
|
297
|
+
if (to < 0) {
|
|
298
|
+
to += this.length
|
|
299
|
+
}
|
|
300
|
+
from = from || 0
|
|
301
|
+
if (from < 0) {
|
|
302
|
+
from += this.length
|
|
303
|
+
}
|
|
304
|
+
var ret = new Yallist()
|
|
305
|
+
if (to < from || to < 0) {
|
|
306
|
+
return ret
|
|
307
|
+
}
|
|
308
|
+
if (from < 0) {
|
|
309
|
+
from = 0
|
|
310
|
+
}
|
|
311
|
+
if (to > this.length) {
|
|
312
|
+
to = this.length
|
|
313
|
+
}
|
|
314
|
+
for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
|
|
315
|
+
walker = walker.prev
|
|
316
|
+
}
|
|
317
|
+
for (; walker !== null && i > from; i--, walker = walker.prev) {
|
|
318
|
+
ret.push(walker.value)
|
|
319
|
+
}
|
|
320
|
+
return ret
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
Yallist.prototype.splice = function (start, deleteCount, ...nodes) {
|
|
324
|
+
if (start > this.length) {
|
|
325
|
+
start = this.length - 1
|
|
326
|
+
}
|
|
327
|
+
if (start < 0) {
|
|
328
|
+
start = this.length + start;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
|
|
332
|
+
walker = walker.next
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
var ret = []
|
|
336
|
+
for (var i = 0; walker && i < deleteCount; i++) {
|
|
337
|
+
ret.push(walker.value)
|
|
338
|
+
walker = this.removeNode(walker)
|
|
339
|
+
}
|
|
340
|
+
if (walker === null) {
|
|
341
|
+
walker = this.tail
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
if (walker !== this.head && walker !== this.tail) {
|
|
345
|
+
walker = walker.prev
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
for (var i = 0; i < nodes.length; i++) {
|
|
349
|
+
walker = insert(this, walker, nodes[i])
|
|
350
|
+
}
|
|
351
|
+
return ret;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
Yallist.prototype.reverse = function () {
|
|
355
|
+
var head = this.head
|
|
356
|
+
var tail = this.tail
|
|
357
|
+
for (var walker = head; walker !== null; walker = walker.prev) {
|
|
358
|
+
var p = walker.prev
|
|
359
|
+
walker.prev = walker.next
|
|
360
|
+
walker.next = p
|
|
361
|
+
}
|
|
362
|
+
this.head = tail
|
|
363
|
+
this.tail = head
|
|
364
|
+
return this
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
function insert (self, node, value) {
|
|
368
|
+
var inserted = node === self.head ?
|
|
369
|
+
new Node(value, null, node, self) :
|
|
370
|
+
new Node(value, node, node.next, self)
|
|
371
|
+
|
|
372
|
+
if (inserted.next === null) {
|
|
373
|
+
self.tail = inserted
|
|
374
|
+
}
|
|
375
|
+
if (inserted.prev === null) {
|
|
376
|
+
self.head = inserted
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
self.length++
|
|
380
|
+
|
|
381
|
+
return inserted
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
function push (self, item) {
|
|
385
|
+
self.tail = new Node(item, self.tail, null, self)
|
|
386
|
+
if (!self.head) {
|
|
387
|
+
self.head = self.tail
|
|
388
|
+
}
|
|
389
|
+
self.length++
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
function unshift (self, item) {
|
|
393
|
+
self.head = new Node(item, null, self.head, self)
|
|
394
|
+
if (!self.tail) {
|
|
395
|
+
self.tail = self.head
|
|
396
|
+
}
|
|
397
|
+
self.length++
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
function Node (value, prev, next, list) {
|
|
401
|
+
if (!(this instanceof Node)) {
|
|
402
|
+
return new Node(value, prev, next, list)
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
this.list = list
|
|
406
|
+
this.value = value
|
|
407
|
+
|
|
408
|
+
if (prev) {
|
|
409
|
+
prev.next = this
|
|
410
|
+
this.prev = prev
|
|
411
|
+
} else {
|
|
412
|
+
this.prev = null
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
if (next) {
|
|
416
|
+
next.prev = this
|
|
417
|
+
this.next = next
|
|
418
|
+
} else {
|
|
419
|
+
this.next = null
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
try {
|
|
424
|
+
// add if support for Symbol.iterator is present
|
|
425
|
+
require('./iterator.js')(Yallist)
|
|
426
|
+
} catch (er) {}
|