@gesslar/toolkit 3.30.0 → 3.32.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/package.json +1 -1
- package/src/node/lib/FileObject.js +1 -1
- package/src/node/lib/FileSystem.js +17 -13
- package/src/node/lib/Term.js +34 -1
- package/types/node/lib/FileSystem.d.ts +5 -7
- package/types/node/lib/FileSystem.d.ts.map +1 -1
- package/types/node/lib/Term.d.ts +19 -1
- package/types/node/lib/Term.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -462,7 +462,7 @@ export default class FileObject extends FS {
|
|
|
462
462
|
* @returns {Promise<object>} The file contents as a module.
|
|
463
463
|
*/
|
|
464
464
|
async import() {
|
|
465
|
-
const filePath = this.
|
|
465
|
+
const filePath = this.url
|
|
466
466
|
|
|
467
467
|
if(!(await this.exists))
|
|
468
468
|
throw Sass.new(`No such file '${filePath}'`)
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
import path from "node:path"
|
|
12
12
|
import url from "node:url"
|
|
13
13
|
|
|
14
|
-
import Collection from "../../browser/lib/Collection.js"
|
|
15
14
|
import Data from "../../browser/lib/Data.js"
|
|
16
15
|
import Valid from "./Valid.js"
|
|
17
|
-
import
|
|
16
|
+
import Collection from "../../browser/lib/Collection.js"
|
|
18
17
|
|
|
19
|
-
/**
|
|
20
|
-
|
|
18
|
+
/**
|
|
19
|
+
* @import {Sass} from "./Sass.js"
|
|
20
|
+
*/
|
|
21
21
|
|
|
22
22
|
const fdTypes = Object.freeze(["file", "directory"])
|
|
23
23
|
const upperFdTypes = Object.freeze(fdTypes.map(type => type.toUpperCase()))
|
|
@@ -39,7 +39,7 @@ export default class FileSystem {
|
|
|
39
39
|
* If the target is outside the source (i.e., the relative path starts with ".."),
|
|
40
40
|
* returns the absolute path to this instance instead.
|
|
41
41
|
*
|
|
42
|
-
* @param {FileObject|DirectoryObject} fileOrDirectoryObject - The source file or directory object
|
|
42
|
+
* @param {import("./FileObject.js").default|import("./DirectoryObject.js").default} fileOrDirectoryObject - The source file or directory object
|
|
43
43
|
* @returns {string} The relative path from the source to this instance, or the absolute path if not reachable
|
|
44
44
|
* @throws {Sass} If the parameter is not a FileObject or DirectoryObject
|
|
45
45
|
*/
|
|
@@ -103,8 +103,8 @@ export default class FileSystem {
|
|
|
103
103
|
* ".."), returns the absolute path to the target instead.
|
|
104
104
|
*
|
|
105
105
|
* @static
|
|
106
|
-
* @param {FileObject|DirectoryObject} from - The source file or directory object
|
|
107
|
-
* @param {FileObject|DirectoryObject} to - The target file or directory object
|
|
106
|
+
* @param {import("./FileObject.js").default|import("./DirectoryObject.js").default} from - The source file or directory object
|
|
107
|
+
* @param {import("./FileObject.js").default|import("./DirectoryObject.js").default} to - The target file or directory object
|
|
108
108
|
* @returns {string} The relative path from `from` to `to`, or the absolute path if not reachable
|
|
109
109
|
*/
|
|
110
110
|
static relativeOrAbsolute(from, to) {
|
|
@@ -115,7 +115,7 @@ export default class FileSystem {
|
|
|
115
115
|
const relative = path.relative(fromBasePath, to.path)
|
|
116
116
|
|
|
117
117
|
return relative.startsWith("..")
|
|
118
|
-
? to.path
|
|
118
|
+
? path.resolve(to.path)
|
|
119
119
|
: relative
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -134,7 +134,7 @@ export default class FileSystem {
|
|
|
134
134
|
const relative = path.relative(from, to)
|
|
135
135
|
|
|
136
136
|
return relative.startsWith("..")
|
|
137
|
-
? to
|
|
137
|
+
? path.resolve(to)
|
|
138
138
|
: relative
|
|
139
139
|
}
|
|
140
140
|
|
|
@@ -165,9 +165,13 @@ export default class FileSystem {
|
|
|
165
165
|
const result = path.join(...prefix, ...to)
|
|
166
166
|
|
|
167
167
|
// If original path1 was absolute, ensure result is also absolute
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
168
|
+
if(isAbsolutePath1 && !path.isAbsolute(result)) {
|
|
169
|
+
const root = path.parse(path1).root || path.sep
|
|
170
|
+
|
|
171
|
+
return path.join(root, result)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return result
|
|
171
175
|
}
|
|
172
176
|
|
|
173
177
|
// If no overlap, just join the paths
|
|
@@ -235,7 +239,7 @@ export default class FileSystem {
|
|
|
235
239
|
Valid.type(container, "String", {allowEmpty: false})
|
|
236
240
|
Valid.type(candidate, "String", {allowEmpty: false})
|
|
237
241
|
|
|
238
|
-
const realPath = Data.append(container,
|
|
242
|
+
const realPath = Data.append(container, path.sep) // bookend this mofo
|
|
239
243
|
|
|
240
244
|
return candidate.startsWith(realPath)
|
|
241
245
|
}
|
package/src/node/lib/Term.js
CHANGED
|
@@ -603,7 +603,7 @@ export default class Term {
|
|
|
603
603
|
|
|
604
604
|
// Spinner frames - using Braille patterns (widely supported)
|
|
605
605
|
// Falls back to ASCII when spinimate is implemented with proper detection
|
|
606
|
-
static
|
|
606
|
+
static spinFrames = Object.freeze(["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"])
|
|
607
607
|
|
|
608
608
|
// static async spinimate(delay=300, options = {position: {x: 0,y: 0}}) {
|
|
609
609
|
// const spinFrames = await this.#spinFrames
|
|
@@ -615,4 +615,37 @@ export default class Term {
|
|
|
615
615
|
// })
|
|
616
616
|
// }
|
|
617
617
|
// }
|
|
618
|
+
|
|
619
|
+
/**
|
|
620
|
+
* Pause stdin, preventing it from emitting data events.
|
|
621
|
+
*
|
|
622
|
+
* @returns {typeof Term} The Term class for chaining.
|
|
623
|
+
*/
|
|
624
|
+
static pause() {
|
|
625
|
+
process.stdin.pause()
|
|
626
|
+
|
|
627
|
+
return this
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/**
|
|
631
|
+
* Resume stdin so it can emit data events.
|
|
632
|
+
*
|
|
633
|
+
* @returns {typeof Term} The Term class for chaining.
|
|
634
|
+
*/
|
|
635
|
+
static resume() {
|
|
636
|
+
process.stdin.resume()
|
|
637
|
+
|
|
638
|
+
return this
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Set stdin encoding to UTF-8.
|
|
643
|
+
*
|
|
644
|
+
* @returns {typeof Term} The Term class for chaining.
|
|
645
|
+
*/
|
|
646
|
+
static utf8() {
|
|
647
|
+
process.stdin.setEncoding("utf8")
|
|
648
|
+
|
|
649
|
+
return this
|
|
650
|
+
}
|
|
618
651
|
}
|
|
@@ -38,11 +38,11 @@ export default class FileSystem {
|
|
|
38
38
|
* ".."), returns the absolute path to the target instead.
|
|
39
39
|
*
|
|
40
40
|
* @static
|
|
41
|
-
* @param {FileObject|DirectoryObject} from - The source file or directory object
|
|
42
|
-
* @param {FileObject|DirectoryObject} to - The target file or directory object
|
|
41
|
+
* @param {import("./FileObject.js").default|import("./DirectoryObject.js").default} from - The source file or directory object
|
|
42
|
+
* @param {import("./FileObject.js").default|import("./DirectoryObject.js").default} to - The target file or directory object
|
|
43
43
|
* @returns {string} The relative path from `from` to `to`, or the absolute path if not reachable
|
|
44
44
|
*/
|
|
45
|
-
static relativeOrAbsolute(from: FileObject | DirectoryObject, to: FileObject | DirectoryObject): string;
|
|
45
|
+
static relativeOrAbsolute(from: import("./FileObject.js").default | import("./DirectoryObject.js").default, to: import("./FileObject.js").default | import("./DirectoryObject.js").default): string;
|
|
46
46
|
/**
|
|
47
47
|
* Computes the relative path from one file or directory to another.
|
|
48
48
|
*
|
|
@@ -192,12 +192,10 @@ export default class FileSystem {
|
|
|
192
192
|
* If the target is outside the source (i.e., the relative path starts with ".."),
|
|
193
193
|
* returns the absolute path to this instance instead.
|
|
194
194
|
*
|
|
195
|
-
* @param {FileObject|DirectoryObject} fileOrDirectoryObject - The source file or directory object
|
|
195
|
+
* @param {import("./FileObject.js").default|import("./DirectoryObject.js").default} fileOrDirectoryObject - The source file or directory object
|
|
196
196
|
* @returns {string} The relative path from the source to this instance, or the absolute path if not reachable
|
|
197
197
|
* @throws {Sass} If the parameter is not a FileObject or DirectoryObject
|
|
198
198
|
*/
|
|
199
|
-
relativeTo(fileOrDirectoryObject: FileObject | DirectoryObject): string;
|
|
199
|
+
relativeTo(fileOrDirectoryObject: import("./FileObject.js").default | import("./DirectoryObject.js").default): string;
|
|
200
200
|
}
|
|
201
|
-
export type FileObject = import("./FileObject.js").default;
|
|
202
|
-
export type DirectoryObject = import("./DirectoryObject.js").default;
|
|
203
201
|
//# sourceMappingURL=FileSystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystem.d.ts","sourceRoot":"","sources":["../../../src/node/lib/FileSystem.js"],"names":[],"mappings":"AA2BA;;GAEG;AACH;IACE,kCAAwB;IACxB,uCAAkC;IAClC,mBAAsB;IAsBtB;;;;;;OAMG;IACH,4BAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,2BAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;;;;;;OAQG;IACH,0BALW,MAAM,GACJ,MAAM,CAUlB;IAED;;;;;;;;;;OAUG;IACH,gCAJW,
|
|
1
|
+
{"version":3,"file":"FileSystem.d.ts","sourceRoot":"","sources":["../../../src/node/lib/FileSystem.js"],"names":[],"mappings":"AA2BA;;GAEG;AACH;IACE,kCAAwB;IACxB,uCAAkC;IAClC,mBAAsB;IAsBtB;;;;;;OAMG;IACH,4BAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,2BAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;;;;;;OAQG;IACH,0BALW,MAAM,GACJ,MAAM,CAUlB;IAED;;;;;;;;;;OAUG;IACH,gCAJW,OAAO,iBAAiB,EAAE,OAAO,GAAC,OAAO,sBAAsB,EAAE,OAAO,MACxE,OAAO,iBAAiB,EAAE,OAAO,GAAC,OAAO,sBAAsB,EAAE,OAAO,GACtE,MAAM,CAYlB;IAED;;;;;;;;;;OAUG;IACH,oCAJW,MAAM,MACN,MAAM,GACJ,MAAM,CAQlB;IAED;;;;;;;;;OASG;IACH,oCALW,MAAM,SACN,MAAM,QACN,MAAM,GACJ,MAAM,CA8BlB;IAED;;;;;;;;OAQG;IACH,6BAJW,MAAM,UACN,MAAM,GACJ,MAAM,CAmClB;IAED;;;;;;;;;;;;OAYG;IACH,+BATW,MAAM,aACN,MAAM,GACJ,OAAO,CAcnB;IAED;;;;;;;;;;;;;;OAcG;IACH,iCATW,MAAM,MACN,MAAM,QACN,MAAM,GACJ,MAAM,GAAC,IAAI,CAwBvB;IAED;;;;;;;;;;;;;;OAcG;IACH,4BARW,MAAM,MACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,+BAXW,MAAM,MACN,MAAM,QACN,MAAM,GACJ,MAAM,GAAC,IAAI,CA+BvB;IAED;;;;;;;OAOG;IAEH;;;;;;;OAOG;IACH,2BAJW,MAAM;;;;cAXH,MAAM;;;;aACN,MAAM;;;;aACN,MAAM;;;;cACN,MAAM;;;;cACN,MAAM;MAenB;IAED;;;;OAIG;IACH,kBAFa,MAAM,CAIlB;IAvVD;;;;;;;;;OASG;IACH,kCAJW,OAAO,iBAAiB,EAAE,OAAO,GAAC,OAAO,sBAAsB,EAAE,OAAO,GACtE,MAAM,CAWlB;CAsUF"}
|
package/types/node/lib/Term.d.ts
CHANGED
|
@@ -282,6 +282,24 @@ export default class Term {
|
|
|
282
282
|
* @returns {Promise<void>} Resolves when write completes.
|
|
283
283
|
*/
|
|
284
284
|
static directWrite(output: string): Promise<void>;
|
|
285
|
-
static
|
|
285
|
+
static spinFrames: readonly string[];
|
|
286
|
+
/**
|
|
287
|
+
* Pause stdin, preventing it from emitting data events.
|
|
288
|
+
*
|
|
289
|
+
* @returns {typeof Term} The Term class for chaining.
|
|
290
|
+
*/
|
|
291
|
+
static pause(): typeof Term;
|
|
292
|
+
/**
|
|
293
|
+
* Resume stdin so it can emit data events.
|
|
294
|
+
*
|
|
295
|
+
* @returns {typeof Term} The Term class for chaining.
|
|
296
|
+
*/
|
|
297
|
+
static resume(): typeof Term;
|
|
298
|
+
/**
|
|
299
|
+
* Set stdin encoding to UTF-8.
|
|
300
|
+
*
|
|
301
|
+
* @returns {typeof Term} The Term class for chaining.
|
|
302
|
+
*/
|
|
303
|
+
static utf8(): typeof Term;
|
|
286
304
|
}
|
|
287
305
|
//# sourceMappingURL=Term.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Term.d.ts","sourceRoot":"","sources":["../../../src/node/lib/Term.js"],"names":[],"mappings":"AAeA;;;;;;;;;;;;GAYG;AACH;IACE,0CAAyB;IAEzB,+CAIC;IAED;;;;OAIG;IACH,sBAFU,MAAM,GAAG,SAAS,CAI3B;IAED;;;;OAIG;IACH,mBAFU,MAAM,GAAG,SAAS,CAI3B;IAED;;;;OAIG;IACH,kBAFU;QAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC,CAIhE;IAED;;;;OAIG;IACH,4BAFU,OAAO,CAMhB;IAED;;;;OAIG;IACH,uBAFU,OAAO,CAMhB;IAED;;;;OAIG;IACH,oBAFc,OAAO,EAAA,QAIpB;IAED;;;;OAIG;IACH,qBAFc,OAAO,EAAA,QAIpB;IAED;;;;OAIG;IACH,qBAFc,OAAO,EAAA,QAIpB;IAED;;;;OAIG;IACH,sBAFc,OAAO,EAAA,QAIpB;IAED;;;;OAIG;IACH,sBAFc,OAAO,EAAA,QAIpB;IAED;;;;OAIG;IACH,sBAFc,OAAO,EAAA,QAIpB;IAED;;OAEG;IACH,wBAEC;IAED;;;;;;;;OAQG;IACH,0BANW,MAAM,QAAQ,YAEtB;QAAgC,UAAU,GAAlC,KAAK,CAAC,MAAM,CAAC;QACK,UAAU,GAA5B,OAAO;QACW,aAAa,GAA/B,OAAO;KACjB,QA2DA;IAED;;;;;;;;;;;;;;OAcG;IACH,oBALW,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,eAEjD;QAAyB,MAAM,EAAvB,OAAO;KACf,GAAU,IAAI,CAOhB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,gCAHW,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAC5E,MAAM,CA4BlB;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,qDAJW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GACjC,MAAM,CAQlB;IAED;;;;OAIG;IACH,oBAFU,MAAM,CAIf;IAED;;;;OAIG;IACH,oBAFa,OAAO,IAAI,CAMvB;IAED;;;;OAIG;IACH,kBAFU,MAAM,CAIf;IAED;;;;OAIG;IACH,kBAFa,OAAO,IAAI,CAMvB;IAED;;;;OAIG;IACH,iBAFU,MAAM,CAIf;IAED;;;;;OAKG;IACH,mBAHW,MAAM,GACJ,OAAO,IAAI,CAMvB;IAED;;;;OAIG;IACH,qBAFa,OAAO,IAAI,CAMvB;IAED;;;;OAIG;IACH,qBAFa,OAAO,IAAI,CAMvB;IAED;;;;OAIG;IACH,yBAFU,OAAO,CAOhB;IAED;;;;OAIG;IACH,yBAFU,OAAO,CAOhB;IAED;;;;OAIG;IACH,sBAFa,OAAO,IAAI,CAMvB;IAED;;;;OAIG;IACH,sBAFa,OAAO,IAAI,CAMvB;IAED;;;;OAIG;IACH,oBAFa,OAAO,IAAI,CAMvB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,GACJ,OAAO,IAAI,CAOvB;IAED;;;;;OAKG;IACH,qBAHW,MAAM,GACJ,OAAO,IAAI,CAMvB;IAED;;;;;;OAMG;IACH,yBAHW,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACvB,OAAO,CAAC,MAAM,CAAC,CAyD3B;IAED;;;;OAIG;IACH,4BAFa,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqCrC;IAED;;;;;OAKG;IACH,2BAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAMzB;IAID,
|
|
1
|
+
{"version":3,"file":"Term.d.ts","sourceRoot":"","sources":["../../../src/node/lib/Term.js"],"names":[],"mappings":"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"}
|