@adriangalilea/utils 0.16.1 → 0.16.3
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/bot/access-control.d.ts +7 -7
- package/dist/bot/access-control.d.ts.map +1 -1
- package/dist/bot/access-control.js +144 -121
- package/dist/bot/access-control.js.map +1 -1
- package/dist/bot/coalesce.d.ts +4 -2
- package/dist/bot/coalesce.d.ts.map +1 -1
- package/dist/bot/coalesce.js +8 -4
- package/dist/bot/coalesce.js.map +1 -1
- package/dist/bot/index.d.ts +6 -6
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +6 -6
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/kit.d.ts +2 -2
- package/dist/bot/kit.d.ts.map +1 -1
- package/dist/bot/kit.js +11 -11
- package/dist/bot/kit.js.map +1 -1
- package/dist/bot/language.d.ts +6 -6
- package/dist/bot/language.d.ts.map +1 -1
- package/dist/bot/language.js +51 -33
- package/dist/bot/language.js.map +1 -1
- package/dist/bot/llm.d.ts +12 -12
- package/dist/bot/llm.d.ts.map +1 -1
- package/dist/bot/llm.js +46 -42
- package/dist/bot/llm.js.map +1 -1
- package/dist/bot/menu.d.ts +5 -5
- package/dist/bot/menu.d.ts.map +1 -1
- package/dist/bot/menu.js +70 -67
- package/dist/bot/menu.js.map +1 -1
- package/dist/browser.d.ts +6 -6
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +6 -6
- package/dist/browser.js.map +1 -1
- package/dist/index.d.ts +14 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/offensive.d.ts.map +1 -1
- package/dist/offensive.js +17 -11
- package/dist/offensive.js.map +1 -1
- package/dist/platform/dir.d.ts.map +1 -1
- package/dist/platform/dir.js +8 -8
- package/dist/platform/dir.js.map +1 -1
- package/dist/platform/file.d.ts.map +1 -1
- package/dist/platform/file.js +20 -17
- package/dist/platform/file.js.map +1 -1
- package/dist/platform/kev.d.ts.map +1 -1
- package/dist/platform/kev.js +113 -106
- package/dist/platform/kev.js.map +1 -1
- package/dist/platform/path.d.ts.map +1 -1
- package/dist/platform/path.js +5 -5
- package/dist/platform/path.js.map +1 -1
- package/dist/platform/project.d.ts.map +1 -1
- package/dist/platform/project.js +19 -19
- package/dist/platform/project.js.map +1 -1
- package/dist/platform/unseen.d.ts.map +1 -1
- package/dist/platform/unseen.js +8 -6
- package/dist/platform/unseen.js.map +1 -1
- package/dist/platform/xdg.d.ts.map +1 -1
- package/dist/platform/xdg.js +7 -7
- package/dist/platform/xdg.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +35 -22
- package/dist/runtime.js.map +1 -1
- package/dist/say/index.d.ts.map +1 -1
- package/dist/say/index.js +2 -2
- package/dist/say/index.js.map +1 -1
- package/dist/universal/currency/crypto-symbols-data.d.ts.map +1 -1
- package/dist/universal/currency/crypto-symbols-data.js +1 -1
- package/dist/universal/currency/crypto-symbols-data.js.map +1 -1
- package/dist/universal/currency/crypto-symbols.d.ts.map +1 -1
- package/dist/universal/currency/crypto-symbols.js +1 -1
- package/dist/universal/currency/crypto-symbols.js.map +1 -1
- package/dist/universal/currency/download-crypto-list.d.ts.map +1 -1
- package/dist/universal/currency/download-crypto-list.js +17 -17
- package/dist/universal/currency/download-crypto-list.js.map +1 -1
- package/dist/universal/currency/index.d.ts.map +1 -1
- package/dist/universal/currency/index.js +117 -80
- package/dist/universal/currency/index.js.map +1 -1
- package/dist/universal/format.d.ts.map +1 -1
- package/dist/universal/format.js +10 -10
- package/dist/universal/format.js.map +1 -1
- package/dist/universal/log.d.ts +1 -1
- package/dist/universal/log.d.ts.map +1 -1
- package/dist/universal/log.js +66 -60
- package/dist/universal/log.js.map +1 -1
- package/package.json +146 -141
package/dist/offensive.js
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
export class Panic extends Error {
|
|
45
45
|
constructor(message) {
|
|
46
46
|
super(message);
|
|
47
|
-
this.name =
|
|
47
|
+
this.name = "Panic";
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
@@ -56,7 +56,7 @@ export class Panic extends Error {
|
|
|
56
56
|
*/
|
|
57
57
|
export function assert(condition, ...msg) {
|
|
58
58
|
if (!condition)
|
|
59
|
-
throw new Panic(msg.join(
|
|
59
|
+
throw new Panic(msg.join(" ") || "assertion failed");
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Panic throws immediately. Use when the program reaches an impossible state.
|
|
@@ -69,7 +69,7 @@ export function assert(condition, ...msg) {
|
|
|
69
69
|
* }
|
|
70
70
|
*/
|
|
71
71
|
export function panic(...msg) {
|
|
72
|
-
throw new Panic(msg.join(
|
|
72
|
+
throw new Panic(msg.join(" ") || "panic");
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* Exhaustiveness check — compile error if a switch/if misses a case.
|
|
@@ -88,13 +88,13 @@ export function panic(...msg) {
|
|
|
88
88
|
* }
|
|
89
89
|
*/
|
|
90
90
|
export function assertNever(value, ...msg) {
|
|
91
|
-
throw new Panic(msg.join(
|
|
91
|
+
throw new Panic(msg.join(" ") || `assertNever: unexpected value: ${JSON.stringify(value)}`);
|
|
92
92
|
}
|
|
93
93
|
export function must(fn) {
|
|
94
94
|
try {
|
|
95
95
|
const result = fn();
|
|
96
96
|
if (result instanceof Promise) {
|
|
97
|
-
return result.catch(e => {
|
|
97
|
+
return result.catch((e) => {
|
|
98
98
|
throw new Panic(e instanceof Error ? e.message : String(e));
|
|
99
99
|
});
|
|
100
100
|
}
|
|
@@ -119,7 +119,7 @@ export function must(fn) {
|
|
|
119
119
|
*/
|
|
120
120
|
export function unwrap(value, ...msg) {
|
|
121
121
|
if (value == null)
|
|
122
|
-
throw new Panic(msg.join(
|
|
122
|
+
throw new Panic(msg.join(" ") || `unwrap: got ${value}`);
|
|
123
123
|
return value;
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
@@ -149,9 +149,11 @@ export class SourcedError extends Error {
|
|
|
149
149
|
status;
|
|
150
150
|
context;
|
|
151
151
|
constructor(args) {
|
|
152
|
-
const status = args.status != null ? ` status=${args.status}` :
|
|
153
|
-
super(`[${args.source}:${args.operation}${status}] ${args.message}`, {
|
|
154
|
-
|
|
152
|
+
const status = args.status != null ? ` status=${args.status}` : "";
|
|
153
|
+
super(`[${args.source}:${args.operation}${status}] ${args.message}`, {
|
|
154
|
+
cause: args.cause,
|
|
155
|
+
});
|
|
156
|
+
this.name = "SourcedError";
|
|
155
157
|
this.source = args.source;
|
|
156
158
|
this.operation = args.operation;
|
|
157
159
|
this.status = args.status;
|
|
@@ -164,7 +166,11 @@ export class SourcedError extends Error {
|
|
|
164
166
|
status: this.status,
|
|
165
167
|
message: this.message,
|
|
166
168
|
context: this.context,
|
|
167
|
-
cause: this.cause instanceof Error
|
|
169
|
+
cause: this.cause instanceof Error
|
|
170
|
+
? this.cause.message
|
|
171
|
+
: this.cause != null
|
|
172
|
+
? String(this.cause)
|
|
173
|
+
: null,
|
|
168
174
|
};
|
|
169
175
|
}
|
|
170
176
|
}
|
|
@@ -182,7 +188,7 @@ export class SourcedError extends Error {
|
|
|
182
188
|
* }
|
|
183
189
|
*/
|
|
184
190
|
export function isSourcedError(e, source) {
|
|
185
|
-
return e instanceof SourcedError && (source === undefined || e.source === source);
|
|
191
|
+
return (e instanceof SourcedError && (source === undefined || e.source === source));
|
|
186
192
|
}
|
|
187
193
|
export const offensive = {
|
|
188
194
|
Panic,
|
package/dist/offensive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offensive.js","sourceRoot":"","sources":["../src/offensive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,KAAM,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"offensive.js","sourceRoot":"","sources":["../src/offensive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../src/platform/dir.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,cAAM,MAAM;
|
|
1
|
+
{"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../src/platform/dir.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,cAAM,MAAM;IACX;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU7B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAI5B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAKnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAMhC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAMjC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG9B;AAED,eAAO,MAAM,GAAG,QAAe,CAAC"}
|
package/dist/platform/dir.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { must } from
|
|
3
|
-
import { path } from
|
|
1
|
+
import { existsSync, mkdirSync, readdirSync, rmSync, statSync } from "node:fs";
|
|
2
|
+
import { must } from "../offensive.js";
|
|
3
|
+
import { path } from "./path.js";
|
|
4
4
|
/**
|
|
5
5
|
* Directory operations that throw on error (offensive programming style)
|
|
6
6
|
*/
|
|
@@ -42,23 +42,23 @@ class DirOps {
|
|
|
42
42
|
*/
|
|
43
43
|
listFull(dirPath) {
|
|
44
44
|
const names = this.list(dirPath);
|
|
45
|
-
return names.map(name => path.join(dirPath, name));
|
|
45
|
+
return names.map((name) => path.join(dirPath, name));
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
48
|
* List only subdirectories. Throws on error.
|
|
49
49
|
*/
|
|
50
50
|
listDirs(path) {
|
|
51
51
|
return must(() => readdirSync(path, { withFileTypes: true }))
|
|
52
|
-
.filter(entry => entry.isDirectory())
|
|
53
|
-
.map(entry => entry.name);
|
|
52
|
+
.filter((entry) => entry.isDirectory())
|
|
53
|
+
.map((entry) => entry.name);
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* List only files (not directories). Throws on error.
|
|
57
57
|
*/
|
|
58
58
|
listFiles(path) {
|
|
59
59
|
return must(() => readdirSync(path, { withFileTypes: true }))
|
|
60
|
-
.filter(entry => entry.isFile())
|
|
61
|
-
.map(entry => entry.name);
|
|
60
|
+
.filter((entry) => entry.isFile())
|
|
61
|
+
.map((entry) => entry.name);
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Check if directory is empty. Throws on error.
|
package/dist/platform/dir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dir.js","sourceRoot":"","sources":["../../src/platform/dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dir.js","sourceRoot":"","sources":["../../src/platform/dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM;IACX;;OAEG;IACH,MAAM,CAAC,IAAY;QAClB,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY;QAClB,IAAI,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY;QAClB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACnD,CAAC;CACD;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/platform/file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/platform/file.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,cAAM,OAAO;IACZ;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAgElC,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK9B;;;;;;;OAOG;IACH,QAAQ,CACP,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,cAAc,GAAG,MAAM,EACvC,QAAQ,CAAC,EAAE,cAAc,GACvB,MAAM;IAwBT;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKpD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAWjC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI1B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAGzB;AAED,eAAO,MAAM,IAAI,SAAgB,CAAC"}
|
package/dist/platform/file.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { must } from
|
|
3
|
-
import { path } from
|
|
1
|
+
import { existsSync, readFileSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
2
|
+
import { must } from "../offensive.js";
|
|
3
|
+
import { path } from "./path.js";
|
|
4
4
|
/**
|
|
5
5
|
* File operations that throw on error (offensive programming style)
|
|
6
6
|
*/
|
|
@@ -20,7 +20,7 @@ class FileOps {
|
|
|
20
20
|
// at FileOps.getCallerUrl (file:///path/to/file.ts:line:col)
|
|
21
21
|
// at FileOps.readText (file:///path/to/file.ts:line:col)
|
|
22
22
|
// at caller (file:///path/to/caller.ts:line:col) <- we want this
|
|
23
|
-
const lines = stack.split(
|
|
23
|
+
const lines = stack.split("\n");
|
|
24
24
|
// Try multiple regex patterns for different environments
|
|
25
25
|
const patterns = [
|
|
26
26
|
/\(file:\/\/([^:)]+)(?::\d+:\d+)?\)/, // Node ESM: (file:///path/file.js:1:2)
|
|
@@ -29,11 +29,14 @@ class FileOps {
|
|
|
29
29
|
/at ([^:)]+\.m?js)(?::\d+:\d+)?/, // Node CJS alternate: at /path/file.js:1:2
|
|
30
30
|
];
|
|
31
31
|
// Start at line 3 to skip: Error, getCallerUrl, and the calling method (read/readText/etc)
|
|
32
|
-
for (let i = 3; i < lines.length && i < 10; i++) {
|
|
32
|
+
for (let i = 3; i < lines.length && i < 10; i++) {
|
|
33
|
+
// Limit search depth
|
|
33
34
|
const line = lines[i];
|
|
34
35
|
// Skip internal file.ts/file.js lines
|
|
35
|
-
if (line.includes(
|
|
36
|
-
line.includes(
|
|
36
|
+
if (line.includes("/file.js") ||
|
|
37
|
+
line.includes("/file.ts") ||
|
|
38
|
+
line.includes("\\file.js") ||
|
|
39
|
+
line.includes("\\file.ts")) {
|
|
37
40
|
continue;
|
|
38
41
|
}
|
|
39
42
|
for (const pattern of patterns) {
|
|
@@ -42,15 +45,15 @@ class FileOps {
|
|
|
42
45
|
// Found a match - build file URL
|
|
43
46
|
let filePath = match[1] || match[0];
|
|
44
47
|
// Handle Windows paths
|
|
45
|
-
if (process.platform ===
|
|
46
|
-
filePath = filePath.replace(/\\/g,
|
|
48
|
+
if (process.platform === "win32" && !filePath.startsWith("file://")) {
|
|
49
|
+
filePath = filePath.replace(/\\/g, "/");
|
|
47
50
|
}
|
|
48
51
|
// Ensure we have a file:// URL
|
|
49
|
-
if (!filePath.startsWith(
|
|
50
|
-
filePath =
|
|
52
|
+
if (!filePath.startsWith("file://")) {
|
|
53
|
+
filePath = `file://${filePath.startsWith("/") ? "" : "/"}${filePath}`;
|
|
51
54
|
}
|
|
52
55
|
// Remove line and column numbers if present
|
|
53
|
-
filePath = filePath.replace(/:\d+:\d+$/,
|
|
56
|
+
filePath = filePath.replace(/:\d+:\d+$/, "");
|
|
54
57
|
return filePath;
|
|
55
58
|
}
|
|
56
59
|
}
|
|
@@ -58,7 +61,7 @@ class FileOps {
|
|
|
58
61
|
return undefined;
|
|
59
62
|
}
|
|
60
63
|
resolvePath(filePath) {
|
|
61
|
-
if (filePath.startsWith(
|
|
64
|
+
if (filePath.startsWith("./") || filePath.startsWith("../")) {
|
|
62
65
|
const callerUrl = this.getCallerUrl();
|
|
63
66
|
return path.resolve(filePath, callerUrl);
|
|
64
67
|
}
|
|
@@ -85,18 +88,18 @@ class FileOps {
|
|
|
85
88
|
*/
|
|
86
89
|
readText(filePath, encodingOrUrl, encoding) {
|
|
87
90
|
let callerUrl;
|
|
88
|
-
let actualEncoding =
|
|
91
|
+
let actualEncoding = "utf-8";
|
|
89
92
|
if (encodingOrUrl) {
|
|
90
|
-
if (encodingOrUrl.startsWith(
|
|
93
|
+
if (encodingOrUrl.startsWith("file://") || encodingOrUrl.includes("/")) {
|
|
91
94
|
callerUrl = encodingOrUrl;
|
|
92
|
-
actualEncoding = encoding ||
|
|
95
|
+
actualEncoding = encoding || "utf-8";
|
|
93
96
|
}
|
|
94
97
|
else {
|
|
95
98
|
actualEncoding = encodingOrUrl;
|
|
96
99
|
}
|
|
97
100
|
}
|
|
98
101
|
let resolvedPath = filePath;
|
|
99
|
-
if (filePath.startsWith(
|
|
102
|
+
if (filePath.startsWith("./") || filePath.startsWith("../")) {
|
|
100
103
|
const url = callerUrl || this.getCallerUrl();
|
|
101
104
|
resolvedPath = path.resolve(filePath, url);
|
|
102
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/platform/file.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/platform/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kev.d.ts","sourceRoot":"","sources":["../../src/platform/kev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAQH,UAAU,QAAQ;
|
|
1
|
+
{"version":3,"file":"kev.d.ts","sourceRoot":"","sources":["../../src/platform/kev.ts"],"names":[],"mappings":"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"}
|