@veryfront/ext-content-mdx 0.1.1081 → 0.1.1082
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/esm/_dnt.polyfills.d.ts +0 -6
- package/esm/_dnt.polyfills.d.ts.map +1 -1
- package/esm/_dnt.shims.d.ts +1 -1
- package/esm/deno.d.ts +3 -0
- package/esm/deno.js +8 -5
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_loader_state.d.ts +2 -2
- package/esm/src/transforms/mdx/compiler/frontmatter-extractor.js +1 -1
- package/esm/src/utils/logger/logger.d.ts.map +1 -1
- package/esm/src/utils/logger/logger.js +16 -12
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +2 -2
- package/esm/src/config/defaults.d.ts +0 -39
- package/esm/src/config/defaults.d.ts.map +0 -1
- package/esm/src/config/defaults.js +0 -65
- package/esm/src/errors/error-registry/agent.d.ts +0 -18
- package/esm/src/errors/error-registry/agent.d.ts.map +0 -1
- package/esm/src/errors/error-registry/agent.js +0 -60
- package/esm/src/errors/error-registry/boundary.d.ts +0 -16
- package/esm/src/errors/error-registry/boundary.d.ts.map +0 -1
- package/esm/src/errors/error-registry/boundary.js +0 -52
- package/esm/src/errors/error-registry/build.d.ts +0 -20
- package/esm/src/errors/error-registry/build.d.ts.map +0 -1
- package/esm/src/errors/error-registry/build.js +0 -68
- package/esm/src/errors/error-registry/config.d.ts +0 -22
- package/esm/src/errors/error-registry/config.d.ts.map +0 -1
- package/esm/src/errors/error-registry/config.js +0 -70
- package/esm/src/errors/error-registry/deploy.d.ts +0 -12
- package/esm/src/errors/error-registry/deploy.d.ts.map +0 -1
- package/esm/src/errors/error-registry/deploy.js +0 -36
- package/esm/src/errors/error-registry/dev.d.ts +0 -14
- package/esm/src/errors/error-registry/dev.d.ts.map +0 -1
- package/esm/src/errors/error-registry/dev.js +0 -44
- package/esm/src/errors/error-registry/general.d.ts +0 -29
- package/esm/src/errors/error-registry/general.d.ts.map +0 -1
- package/esm/src/errors/error-registry/general.js +0 -92
- package/esm/src/errors/error-registry/module.d.ts +0 -16
- package/esm/src/errors/error-registry/module.d.ts.map +0 -1
- package/esm/src/errors/error-registry/module.js +0 -52
- package/esm/src/errors/error-registry/route.d.ts +0 -16
- package/esm/src/errors/error-registry/route.d.ts.map +0 -1
- package/esm/src/errors/error-registry/route.js +0 -52
- package/esm/src/errors/error-registry/runtime.d.ts +0 -18
- package/esm/src/errors/error-registry/runtime.d.ts.map +0 -1
- package/esm/src/errors/error-registry/runtime.js +0 -60
- package/esm/src/errors/error-registry/server.d.ts +0 -39
- package/esm/src/errors/error-registry/server.d.ts.map +0 -1
- package/esm/src/errors/error-registry/server.js +0 -129
- package/esm/src/errors/error-registry-helpers.d.ts +0 -6
- package/esm/src/errors/error-registry-helpers.d.ts.map +0 -1
- package/esm/src/errors/error-registry-helpers.js +0 -9
- package/esm/src/errors/error-registry.d.ts +0 -114
- package/esm/src/errors/error-registry.d.ts.map +0 -1
- package/esm/src/errors/error-registry.js +0 -60
- package/esm/src/errors/types.d.ts +0 -84
- package/esm/src/errors/types.d.ts.map +0 -1
- package/esm/src/errors/types.js +0 -69
- package/esm/src/errors/veryfront-error.d.ts +0 -149
- package/esm/src/errors/veryfront-error.d.ts.map +0 -1
- package/esm/src/errors/veryfront-error.js +0 -61
- package/esm/src/modules/react-loader/ssr-module-loader/concurrency/semaphore.d.ts +0 -13
- package/esm/src/modules/react-loader/ssr-module-loader/concurrency/semaphore.d.ts.map +0 -1
- package/esm/src/modules/react-loader/ssr-module-loader/concurrency/semaphore.js +0 -55
- package/esm/src/observability/tracing/api-shim.d.ts +0 -191
- package/esm/src/observability/tracing/api-shim.d.ts.map +0 -1
- package/esm/src/observability/tracing/api-shim.js +0 -281
- package/esm/src/observability/tracing/otlp-setup.d.ts +0 -63
- package/esm/src/observability/tracing/otlp-setup.d.ts.map +0 -1
- package/esm/src/observability/tracing/otlp-setup.js +0 -219
- package/esm/src/observability/tracing/telemetry-env.d.ts +0 -3
- package/esm/src/observability/tracing/telemetry-env.d.ts.map +0 -1
- package/esm/src/observability/tracing/telemetry-env.js +0 -10
- package/esm/src/platform/adapters/base.d.ts +0 -209
- package/esm/src/platform/adapters/base.d.ts.map +0 -1
- package/esm/src/platform/adapters/base.js +0 -15
- package/esm/src/platform/compat/constants.d.ts +0 -13
- package/esm/src/platform/compat/constants.d.ts.map +0 -1
- package/esm/src/platform/compat/constants.js +0 -12
- package/esm/src/platform/compat/fs.d.ts +0 -75
- package/esm/src/platform/compat/fs.d.ts.map +0 -1
- package/esm/src/platform/compat/fs.js +0 -315
- package/esm/src/transforms/import-rewriter/url-builder.d.ts +0 -70
- package/esm/src/transforms/import-rewriter/url-builder.d.ts.map +0 -1
- package/esm/src/transforms/import-rewriter/url-builder.js +0 -152
- package/esm/src/utils/base64url.d.ts +0 -6
- package/esm/src/utils/base64url.d.ts.map +0 -1
- package/esm/src/utils/base64url.js +0 -12
- package/esm/src/utils/bundle-manifest.d.ts +0 -63
- package/esm/src/utils/bundle-manifest.d.ts.map +0 -1
- package/esm/src/utils/bundle-manifest.js +0 -96
- package/esm/src/utils/constants/buffers.d.ts +0 -24
- package/esm/src/utils/constants/buffers.d.ts.map +0 -1
- package/esm/src/utils/constants/buffers.js +0 -23
- package/esm/src/utils/constants/build.d.ts +0 -8
- package/esm/src/utils/constants/build.d.ts.map +0 -1
- package/esm/src/utils/constants/build.js +0 -7
- package/esm/src/utils/constants/cache.d.ts +0 -74
- package/esm/src/utils/constants/cache.d.ts.map +0 -1
- package/esm/src/utils/constants/cache.js +0 -133
- package/esm/src/utils/constants/cdn.d.ts +0 -29
- package/esm/src/utils/constants/cdn.d.ts.map +0 -1
- package/esm/src/utils/constants/cdn.js +0 -58
- package/esm/src/utils/constants/crypto.d.ts +0 -10
- package/esm/src/utils/constants/crypto.d.ts.map +0 -1
- package/esm/src/utils/constants/crypto.js +0 -9
- package/esm/src/utils/constants/env.d.ts +0 -16
- package/esm/src/utils/constants/env.d.ts.map +0 -1
- package/esm/src/utils/constants/env.js +0 -20
- package/esm/src/utils/constants/hash.d.ts +0 -5
- package/esm/src/utils/constants/hash.d.ts.map +0 -1
- package/esm/src/utils/constants/hash.js +0 -4
- package/esm/src/utils/constants/hmr.d.ts +0 -24
- package/esm/src/utils/constants/hmr.d.ts.map +0 -1
- package/esm/src/utils/constants/hmr.js +0 -26
- package/esm/src/utils/constants/html.d.ts +0 -13
- package/esm/src/utils/constants/html.d.ts.map +0 -1
- package/esm/src/utils/constants/html.js +0 -12
- package/esm/src/utils/constants/http.d.ts +0 -77
- package/esm/src/utils/constants/http.d.ts.map +0 -1
- package/esm/src/utils/constants/http.js +0 -76
- package/esm/src/utils/constants/index.d.ts +0 -23
- package/esm/src/utils/constants/index.d.ts.map +0 -1
- package/esm/src/utils/constants/index.js +0 -22
- package/esm/src/utils/constants/limits.d.ts +0 -27
- package/esm/src/utils/constants/limits.d.ts.map +0 -1
- package/esm/src/utils/constants/limits.js +0 -26
- package/esm/src/utils/constants/metrics.d.ts +0 -10
- package/esm/src/utils/constants/metrics.d.ts.map +0 -1
- package/esm/src/utils/constants/metrics.js +0 -34
- package/esm/src/utils/constants/network.d.ts +0 -23
- package/esm/src/utils/constants/network.d.ts.map +0 -1
- package/esm/src/utils/constants/network.js +0 -27
- package/esm/src/utils/constants/priorities.d.ts +0 -31
- package/esm/src/utils/constants/priorities.d.ts.map +0 -1
- package/esm/src/utils/constants/priorities.js +0 -30
- package/esm/src/utils/constants/retry.d.ts +0 -14
- package/esm/src/utils/constants/retry.d.ts.map +0 -1
- package/esm/src/utils/constants/retry.js +0 -13
- package/esm/src/utils/constants/server.d.ts +0 -107
- package/esm/src/utils/constants/server.d.ts.map +0 -1
- package/esm/src/utils/constants/server.js +0 -120
- package/esm/src/utils/feature-flags.d.ts +0 -7
- package/esm/src/utils/feature-flags.d.ts.map +0 -1
- package/esm/src/utils/feature-flags.js +0 -8
- package/esm/src/utils/hash-utils.d.ts +0 -19
- package/esm/src/utils/hash-utils.d.ts.map +0 -1
- package/esm/src/utils/hash-utils.js +0 -42
- package/esm/src/utils/import-lockfile.d.ts +0 -52
- package/esm/src/utils/import-lockfile.d.ts.map +0 -1
- package/esm/src/utils/import-lockfile.js +0 -187
- package/esm/src/utils/index.d.ts +0 -27
- package/esm/src/utils/index.d.ts.map +0 -1
- package/esm/src/utils/index.js +0 -25
- package/esm/src/utils/logger/components.d.ts +0 -73
- package/esm/src/utils/logger/components.d.ts.map +0 -1
- package/esm/src/utils/logger/components.js +0 -81
- package/esm/src/utils/logger/index.d.ts +0 -10
- package/esm/src/utils/logger/index.d.ts.map +0 -1
- package/esm/src/utils/logger/index.js +0 -9
- package/esm/src/utils/logger/request-context.d.ts +0 -27
- package/esm/src/utils/logger/request-context.d.ts.map +0 -1
- package/esm/src/utils/logger/request-context.js +0 -28
- package/esm/src/utils/memoize.d.ts +0 -19
- package/esm/src/utils/memoize.d.ts.map +0 -1
- package/esm/src/utils/memoize.js +0 -72
- package/esm/src/utils/parallel.d.ts +0 -25
- package/esm/src/utils/parallel.d.ts.map +0 -1
- package/esm/src/utils/parallel.js +0 -91
- package/esm/src/utils/path-utils.d.ts +0 -34
- package/esm/src/utils/path-utils.d.ts.map +0 -1
- package/esm/src/utils/path-utils.js +0 -138
- package/esm/src/utils/perf-timer.d.ts +0 -11
- package/esm/src/utils/perf-timer.d.ts.map +0 -1
- package/esm/src/utils/perf-timer.js +0 -114
- package/esm/src/utils/platform.d.ts +0 -9
- package/esm/src/utils/platform.d.ts.map +0 -1
- package/esm/src/utils/platform.js +0 -11
- package/esm/src/utils/runtime-guards.d.ts +0 -29
- package/esm/src/utils/runtime-guards.d.ts.map +0 -1
- package/esm/src/utils/runtime-guards.js +0 -23
|
@@ -1,315 +0,0 @@
|
|
|
1
|
-
import * as dntShim from "../../../_dnt.shims.js";
|
|
2
|
-
import { createError, toError } from "../../errors/veryfront-error.js";
|
|
3
|
-
import { isBun, isDeno, isNode } from "./runtime.js";
|
|
4
|
-
/**
|
|
5
|
-
* Typed accessor for the Deno global.
|
|
6
|
-
*
|
|
7
|
-
* This is pure typing only — it reads no environment variables and performs no
|
|
8
|
-
* side effects, so this module stays importable without `--allow-env`. It
|
|
9
|
-
* exists to retire the `@ts-ignore` comments that were previously required to
|
|
10
|
-
* access `Deno.*` APIs from runtime-agnostic compat code.
|
|
11
|
-
*/
|
|
12
|
-
function denoGlobal() {
|
|
13
|
-
return dntShim.dntGlobalThis.Deno;
|
|
14
|
-
}
|
|
15
|
-
class NodeFileSystem {
|
|
16
|
-
fs;
|
|
17
|
-
os;
|
|
18
|
-
path;
|
|
19
|
-
initialized = false;
|
|
20
|
-
async ensureInitialized() {
|
|
21
|
-
if (this.initialized)
|
|
22
|
-
return;
|
|
23
|
-
if (!isNode && !isBun) {
|
|
24
|
-
throw toError(createError({
|
|
25
|
-
type: "not_supported",
|
|
26
|
-
message: "Node.js fs modules not available",
|
|
27
|
-
feature: "Node.js",
|
|
28
|
-
}));
|
|
29
|
-
}
|
|
30
|
-
const [fsModule, osModule, pathModule] = await Promise.all([
|
|
31
|
-
import("node:fs/promises"),
|
|
32
|
-
import("node:os"),
|
|
33
|
-
import("node:path"),
|
|
34
|
-
]);
|
|
35
|
-
this.fs = fsModule;
|
|
36
|
-
this.os = osModule;
|
|
37
|
-
this.path = pathModule;
|
|
38
|
-
this.initialized = true;
|
|
39
|
-
}
|
|
40
|
-
getFs() {
|
|
41
|
-
if (!this.fs)
|
|
42
|
-
throw new Error("NodeFileSystem not initialized");
|
|
43
|
-
return this.fs;
|
|
44
|
-
}
|
|
45
|
-
getOs() {
|
|
46
|
-
if (!this.os)
|
|
47
|
-
throw new Error("NodeFileSystem not initialized");
|
|
48
|
-
return this.os;
|
|
49
|
-
}
|
|
50
|
-
getPath() {
|
|
51
|
-
if (!this.path)
|
|
52
|
-
throw new Error("NodeFileSystem not initialized");
|
|
53
|
-
return this.path;
|
|
54
|
-
}
|
|
55
|
-
async readTextFile(path) {
|
|
56
|
-
await this.ensureInitialized();
|
|
57
|
-
return this.getFs().readFile(path, { encoding: "utf8" });
|
|
58
|
-
}
|
|
59
|
-
async readFile(path) {
|
|
60
|
-
await this.ensureInitialized();
|
|
61
|
-
return this.getFs().readFile(path);
|
|
62
|
-
}
|
|
63
|
-
async writeTextFile(path, data) {
|
|
64
|
-
await this.ensureInitialized();
|
|
65
|
-
await this.getFs().writeFile(path, data, { encoding: "utf8" });
|
|
66
|
-
}
|
|
67
|
-
async writeFile(path, data) {
|
|
68
|
-
await this.ensureInitialized();
|
|
69
|
-
await this.getFs().writeFile(path, data);
|
|
70
|
-
}
|
|
71
|
-
async exists(path) {
|
|
72
|
-
await this.ensureInitialized();
|
|
73
|
-
try {
|
|
74
|
-
await this.getFs().access(path);
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
if (error?.code === "ENOENT")
|
|
79
|
-
return false;
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
async stat(path) {
|
|
84
|
-
await this.ensureInitialized();
|
|
85
|
-
const stat = await this.getFs().stat(path);
|
|
86
|
-
return {
|
|
87
|
-
isFile: stat.isFile(),
|
|
88
|
-
isDirectory: stat.isDirectory(),
|
|
89
|
-
isSymlink: stat.isSymbolicLink(),
|
|
90
|
-
size: stat.size,
|
|
91
|
-
mtime: stat.mtime,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
async mkdir(path, options) {
|
|
95
|
-
await this.ensureInitialized();
|
|
96
|
-
await this.getFs().mkdir(path, { recursive: options?.recursive ?? false });
|
|
97
|
-
}
|
|
98
|
-
async *readDir(path) {
|
|
99
|
-
await this.ensureInitialized();
|
|
100
|
-
const entries = await this.getFs().readdir(path, { withFileTypes: true });
|
|
101
|
-
for (const entry of entries) {
|
|
102
|
-
yield {
|
|
103
|
-
name: entry.name,
|
|
104
|
-
isFile: entry.isFile(),
|
|
105
|
-
isDirectory: entry.isDirectory(),
|
|
106
|
-
isSymlink: entry.isSymbolicLink(),
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
async remove(path, options) {
|
|
111
|
-
await this.ensureInitialized();
|
|
112
|
-
const recursive = options?.recursive ?? false;
|
|
113
|
-
await this.getFs().rm(path, { recursive, force: recursive });
|
|
114
|
-
}
|
|
115
|
-
async makeTempDir(options) {
|
|
116
|
-
await this.ensureInitialized();
|
|
117
|
-
const tempDir = this.getPath().join(this.getOs().tmpdir(), `${options?.prefix ?? "tmp-"}${dntShim.crypto.randomUUID().slice(0, 8)}`);
|
|
118
|
-
await this.getFs().mkdir(tempDir, { recursive: true });
|
|
119
|
-
return tempDir;
|
|
120
|
-
}
|
|
121
|
-
async chmod(path, mode) {
|
|
122
|
-
await this.ensureInitialized();
|
|
123
|
-
try {
|
|
124
|
-
await this.getFs().chmod(path, mode);
|
|
125
|
-
}
|
|
126
|
-
catch {
|
|
127
|
-
// Ignore errors on Windows where chmod is not fully supported.
|
|
128
|
-
// Intentionally not logged: this low-level compat module must stay
|
|
129
|
-
// importable without `--allow-env` (the logger reads env at import).
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
class DenoFileSystem {
|
|
134
|
-
readTextFile(path) {
|
|
135
|
-
return denoGlobal().readTextFile(path);
|
|
136
|
-
}
|
|
137
|
-
readFile(path) {
|
|
138
|
-
return denoGlobal().readFile(path);
|
|
139
|
-
}
|
|
140
|
-
async writeTextFile(path, data) {
|
|
141
|
-
await denoGlobal().writeTextFile(path, data);
|
|
142
|
-
}
|
|
143
|
-
async writeFile(path, data) {
|
|
144
|
-
await denoGlobal().writeFile(path, data);
|
|
145
|
-
}
|
|
146
|
-
async exists(path) {
|
|
147
|
-
try {
|
|
148
|
-
await denoGlobal().stat(path);
|
|
149
|
-
return true;
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
if (error instanceof denoGlobal().errors.NotFound)
|
|
153
|
-
return false;
|
|
154
|
-
throw error;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
async stat(path) {
|
|
158
|
-
const stat = await denoGlobal().stat(path);
|
|
159
|
-
return {
|
|
160
|
-
isFile: stat.isFile,
|
|
161
|
-
isDirectory: stat.isDirectory,
|
|
162
|
-
isSymlink: stat.isSymlink,
|
|
163
|
-
size: stat.size,
|
|
164
|
-
mtime: stat.mtime,
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
async mkdir(path, options) {
|
|
168
|
-
await denoGlobal().mkdir(path, { recursive: options?.recursive ?? false });
|
|
169
|
-
}
|
|
170
|
-
async *readDir(path) {
|
|
171
|
-
for await (const entry of denoGlobal().readDir(path)) {
|
|
172
|
-
yield {
|
|
173
|
-
name: entry.name,
|
|
174
|
-
isFile: entry.isFile,
|
|
175
|
-
isDirectory: entry.isDirectory,
|
|
176
|
-
isSymlink: entry.isSymlink,
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
async remove(path, options) {
|
|
181
|
-
await denoGlobal().remove(path, { recursive: options?.recursive ?? false });
|
|
182
|
-
}
|
|
183
|
-
makeTempDir(options) {
|
|
184
|
-
return denoGlobal().makeTempDir({ prefix: options?.prefix });
|
|
185
|
-
}
|
|
186
|
-
async chmod(path, mode) {
|
|
187
|
-
try {
|
|
188
|
-
await denoGlobal().chmod(path, mode);
|
|
189
|
-
}
|
|
190
|
-
catch (_) {
|
|
191
|
-
/* expected: chmod is not fully supported on Windows */
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
/** Create file system. */
|
|
196
|
-
export function createFileSystem() {
|
|
197
|
-
return isDeno ? new DenoFileSystem() : new NodeFileSystem();
|
|
198
|
-
}
|
|
199
|
-
let _fs = null;
|
|
200
|
-
function getFs() {
|
|
201
|
-
_fs ??= createFileSystem();
|
|
202
|
-
return _fs;
|
|
203
|
-
}
|
|
204
|
-
/** Read a file as text. */
|
|
205
|
-
export function readTextFile(path) {
|
|
206
|
-
return getFs().readTextFile(path);
|
|
207
|
-
}
|
|
208
|
-
/** Read a file as bytes. */
|
|
209
|
-
export function readFile(path) {
|
|
210
|
-
return getFs().readFile(path);
|
|
211
|
-
}
|
|
212
|
-
/** Write text to a file. */
|
|
213
|
-
export function writeTextFile(path, data) {
|
|
214
|
-
return getFs().writeTextFile(path, data);
|
|
215
|
-
}
|
|
216
|
-
/** Write bytes to a file. */
|
|
217
|
-
export function writeFile(path, data) {
|
|
218
|
-
return getFs().writeFile(path, data);
|
|
219
|
-
}
|
|
220
|
-
/** Check whether a path exists. */
|
|
221
|
-
export function exists(path) {
|
|
222
|
-
return getFs().exists(path);
|
|
223
|
-
}
|
|
224
|
-
/** Read file metadata. */
|
|
225
|
-
export function stat(path) {
|
|
226
|
-
return getFs().stat(path);
|
|
227
|
-
}
|
|
228
|
-
/** Read file metadata without following a terminal symbolic link. */
|
|
229
|
-
export async function lstat(path) {
|
|
230
|
-
if (isDeno) {
|
|
231
|
-
const info = await denoGlobal().lstat(path);
|
|
232
|
-
return {
|
|
233
|
-
isFile: info.isFile,
|
|
234
|
-
isDirectory: info.isDirectory,
|
|
235
|
-
isSymlink: info.isSymlink,
|
|
236
|
-
size: info.size,
|
|
237
|
-
mtime: info.mtime,
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
const fs = await import("node:fs/promises");
|
|
241
|
-
const info = await fs.lstat(path);
|
|
242
|
-
return {
|
|
243
|
-
isFile: info.isFile(),
|
|
244
|
-
isDirectory: info.isDirectory(),
|
|
245
|
-
isSymlink: info.isSymbolicLink(),
|
|
246
|
-
size: info.size,
|
|
247
|
-
mtime: info.mtime,
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
/** Create a directory. */
|
|
251
|
-
export function mkdir(path, options) {
|
|
252
|
-
return getFs().mkdir(path, options);
|
|
253
|
-
}
|
|
254
|
-
/** Remove a file or directory. */
|
|
255
|
-
export function remove(path, options) {
|
|
256
|
-
return getFs().remove(path, options);
|
|
257
|
-
}
|
|
258
|
-
/** Read directory entries. */
|
|
259
|
-
export function readDir(path) {
|
|
260
|
-
return getFs().readDir(path);
|
|
261
|
-
}
|
|
262
|
-
/** Create temp dir. */
|
|
263
|
-
export function makeTempDir(options) {
|
|
264
|
-
return getFs().makeTempDir(options);
|
|
265
|
-
}
|
|
266
|
-
/** Change file permissions. */
|
|
267
|
-
export function chmod(path, mode) {
|
|
268
|
-
return getFs().chmod(path, mode);
|
|
269
|
-
}
|
|
270
|
-
export async function symlink(target, path) {
|
|
271
|
-
if (isDeno) {
|
|
272
|
-
await denoGlobal().symlink(target, path);
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
const fs = await import("node:fs/promises");
|
|
276
|
-
await fs.symlink(target, path);
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Resolve a path to its canonical absolute form, following symlinks.
|
|
280
|
-
* Throws if the path does not exist. Useful for containment checks where a
|
|
281
|
-
* symlink could otherwise escape an intended directory.
|
|
282
|
-
*/
|
|
283
|
-
export async function realPath(path) {
|
|
284
|
-
if (isDeno) {
|
|
285
|
-
return await denoGlobal().realPath(path);
|
|
286
|
-
}
|
|
287
|
-
const fs = await import("node:fs/promises");
|
|
288
|
-
return await fs.realpath(path);
|
|
289
|
-
}
|
|
290
|
-
/** Error shape for is not found. */
|
|
291
|
-
export function isNotFoundError(error, seen = new Set()) {
|
|
292
|
-
if (seen.has(error))
|
|
293
|
-
return false;
|
|
294
|
-
seen.add(error);
|
|
295
|
-
const NotFound = dntShim.dntGlobalThis.Deno?.errors?.NotFound;
|
|
296
|
-
if (isDeno && NotFound && error instanceof NotFound)
|
|
297
|
-
return true;
|
|
298
|
-
if (error?.code === "ENOENT")
|
|
299
|
-
return true;
|
|
300
|
-
if (error instanceof Error && error.name === "VeryfrontError" &&
|
|
301
|
-
error.slug === "file-not-found") {
|
|
302
|
-
return true;
|
|
303
|
-
}
|
|
304
|
-
if (error instanceof Error && "cause" in error) {
|
|
305
|
-
return isNotFoundError(error.cause, seen);
|
|
306
|
-
}
|
|
307
|
-
return false;
|
|
308
|
-
}
|
|
309
|
-
/** Error shape for is already exists. */
|
|
310
|
-
export function isAlreadyExistsError(error) {
|
|
311
|
-
const AlreadyExists = dntShim.dntGlobalThis.Deno?.errors?.AlreadyExists;
|
|
312
|
-
if (isDeno && AlreadyExists && error instanceof AlreadyExists)
|
|
313
|
-
return true;
|
|
314
|
-
return error?.code === "EEXIST";
|
|
315
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canonical URL builders for import rewriting.
|
|
3
|
-
*
|
|
4
|
-
* Single source of truth for all URL generation.
|
|
5
|
-
* Ensures consistent URLs across SSR and browser for hydration parity.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Default React version - used when not specified.
|
|
9
|
-
*
|
|
10
|
-
* MUST match the React version the build bundles (see `react/deno.json`),
|
|
11
|
-
* because veryfront's framework React re-export is generated against that
|
|
12
|
-
* version and references its named exports. A drift guard in
|
|
13
|
-
* `src/utils/constants/cdn.test.ts` enforces this.
|
|
14
|
-
*/
|
|
15
|
-
export declare const DEFAULT_REACT_VERSION = "19.2.4";
|
|
16
|
-
/** Tailwind CSS version */
|
|
17
|
-
export declare const TAILWIND_VERSION = "4.1.8";
|
|
18
|
-
/** csstype version - must match deno.json for type consistency */
|
|
19
|
-
export declare const CSSTYPE_VERSION = "3.2.3";
|
|
20
|
-
type EsmShOptions = {
|
|
21
|
-
external?: string[];
|
|
22
|
-
target?: string;
|
|
23
|
-
deps?: Record<string, string>;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Build esm.sh URL with proper configuration.
|
|
27
|
-
*
|
|
28
|
-
* @param pkg - Package name (e.g., "react", "lodash")
|
|
29
|
-
* @param version - Package version (optional)
|
|
30
|
-
* @param subpath - Subpath (e.g., "/jsx-runtime")
|
|
31
|
-
* @param options - URL options
|
|
32
|
-
*/
|
|
33
|
-
export declare function buildEsmShUrl(pkg: string, version?: string, subpath?: string, options?: EsmShOptions): string;
|
|
34
|
-
/**
|
|
35
|
-
* Build React esm.sh URL.
|
|
36
|
-
* Uses deps=csstype for type consistency.
|
|
37
|
-
*/
|
|
38
|
-
export declare function buildReactUrl(pkg: "react" | "react-dom", version: string, subpath?: string, external?: boolean): string;
|
|
39
|
-
/**
|
|
40
|
-
* Get complete React import map for a specific version.
|
|
41
|
-
*/
|
|
42
|
-
export declare function getReactImportMap(version: string): Record<string, string>;
|
|
43
|
-
/**
|
|
44
|
-
* Build module server URL for a path.
|
|
45
|
-
*/
|
|
46
|
-
export declare function buildModuleServerUrl(baseUrl: string, path: string): string;
|
|
47
|
-
/**
|
|
48
|
-
* Build cross-project import URL.
|
|
49
|
-
*/
|
|
50
|
-
export declare function buildCrossProjectUrl(projectSlug: string, version: string | null, path: string): string;
|
|
51
|
-
/**
|
|
52
|
-
* Build veryfront framework module URL.
|
|
53
|
-
*/
|
|
54
|
-
export declare function buildVeryfrontModuleUrl(path: string): string;
|
|
55
|
-
/**
|
|
56
|
-
* Normalize file extension for JavaScript output.
|
|
57
|
-
*/
|
|
58
|
-
export declare function normalizeExtension(path: string, options?: {
|
|
59
|
-
removeExtension?: boolean;
|
|
60
|
-
}): string;
|
|
61
|
-
/**
|
|
62
|
-
* Check if a URL is an esm.sh URL.
|
|
63
|
-
*/
|
|
64
|
-
export declare function isEsmShUrl(url: string): boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Add deps query param to esm.sh URL if not already present.
|
|
67
|
-
*/
|
|
68
|
-
export declare function addEsmShDeps(url: string, reactVersion: string): string;
|
|
69
|
-
export {};
|
|
70
|
-
//# sourceMappingURL=url-builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url-builder.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/import-rewriter/url-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,kEAAkE;AAClE,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAqBR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,GAAG,WAAW,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACf,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,IAAI,EAAE,MAAM,GACX,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAGhG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAgDtE"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canonical URL builders for import rewriting.
|
|
3
|
-
*
|
|
4
|
-
* Single source of truth for all URL generation.
|
|
5
|
-
* Ensures consistent URLs across SSR and browser for hydration parity.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Default React version - used when not specified.
|
|
9
|
-
*
|
|
10
|
-
* MUST match the React version the build bundles (see `react/deno.json`),
|
|
11
|
-
* because veryfront's framework React re-export is generated against that
|
|
12
|
-
* version and references its named exports. A drift guard in
|
|
13
|
-
* `src/utils/constants/cdn.test.ts` enforces this.
|
|
14
|
-
*/
|
|
15
|
-
export const DEFAULT_REACT_VERSION = "19.2.4";
|
|
16
|
-
/** Tailwind CSS version */
|
|
17
|
-
export const TAILWIND_VERSION = "4.1.8";
|
|
18
|
-
/** csstype version - must match deno.json for type consistency */
|
|
19
|
-
export const CSSTYPE_VERSION = "3.2.3";
|
|
20
|
-
/**
|
|
21
|
-
* Build esm.sh URL with proper configuration.
|
|
22
|
-
*
|
|
23
|
-
* @param pkg - Package name (e.g., "react", "lodash")
|
|
24
|
-
* @param version - Package version (optional)
|
|
25
|
-
* @param subpath - Subpath (e.g., "/jsx-runtime")
|
|
26
|
-
* @param options - URL options
|
|
27
|
-
*/
|
|
28
|
-
export function buildEsmShUrl(pkg, version, subpath, options) {
|
|
29
|
-
const params = [];
|
|
30
|
-
if (options?.external?.length) {
|
|
31
|
-
params.push(`external=${options.external.join(",")}`);
|
|
32
|
-
}
|
|
33
|
-
params.push(`target=${options?.target ?? "es2022"}`);
|
|
34
|
-
if (options?.deps) {
|
|
35
|
-
const depsStr = Object.entries(options.deps)
|
|
36
|
-
.map(([k, v]) => `${k}@${v}`)
|
|
37
|
-
.join(",");
|
|
38
|
-
params.push(`deps=${depsStr}`);
|
|
39
|
-
}
|
|
40
|
-
const versionStr = version ? `@${version}` : "";
|
|
41
|
-
const pathStr = subpath ?? "";
|
|
42
|
-
const queryStr = params.length ? `?${params.join("&")}` : "";
|
|
43
|
-
return `https://esm.sh/${pkg}${versionStr}${pathStr}${queryStr}`;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Build React esm.sh URL.
|
|
47
|
-
* Uses deps=csstype for type consistency.
|
|
48
|
-
*/
|
|
49
|
-
export function buildReactUrl(pkg, version, subpath, external = false) {
|
|
50
|
-
return buildEsmShUrl(pkg, version, subpath, {
|
|
51
|
-
external: external ? ["react"] : undefined,
|
|
52
|
-
deps: { csstype: CSSTYPE_VERSION },
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get complete React import map for a specific version.
|
|
57
|
-
*/
|
|
58
|
-
export function getReactImportMap(version) {
|
|
59
|
-
return {
|
|
60
|
-
react: buildReactUrl("react", version),
|
|
61
|
-
"react-dom": buildReactUrl("react-dom", version, undefined, true),
|
|
62
|
-
"react-dom/client": buildReactUrl("react-dom", version, "/client", true),
|
|
63
|
-
"react-dom/server": buildReactUrl("react-dom", version, "/server", true),
|
|
64
|
-
"react/jsx-runtime": buildReactUrl("react", version, "/jsx-runtime", true),
|
|
65
|
-
"react/jsx-dev-runtime": buildReactUrl("react", version, "/jsx-dev-runtime", true),
|
|
66
|
-
// Prefix match for any react/* subpath imports
|
|
67
|
-
"react/": buildReactUrl("react", version, "/", true),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Build module server URL for a path.
|
|
72
|
-
*/
|
|
73
|
-
export function buildModuleServerUrl(baseUrl, path) {
|
|
74
|
-
const normalizedBase = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
|
|
75
|
-
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
76
|
-
return `${normalizedBase}${normalizedPath}`;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Build cross-project import URL.
|
|
80
|
-
*/
|
|
81
|
-
export function buildCrossProjectUrl(projectSlug, version, path) {
|
|
82
|
-
const modulePath = /\.(js|mjs|jsx|ts|tsx|mdx)$/.test(path) ? path : `${path}.tsx`;
|
|
83
|
-
const projectRef = version && version !== "latest" ? `${projectSlug}@${version}` : projectSlug;
|
|
84
|
-
return `/_vf_modules/_cross/${projectRef}/@/${modulePath}`;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Build veryfront framework module URL.
|
|
88
|
-
*/
|
|
89
|
-
export function buildVeryfrontModuleUrl(path) {
|
|
90
|
-
const normalizedPath = path.replace(/\.(tsx?|jsx)$/, ".js");
|
|
91
|
-
return `/_vf_modules/_veryfront/${normalizedPath}`;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Normalize file extension for JavaScript output.
|
|
95
|
-
*/
|
|
96
|
-
export function normalizeExtension(path, options) {
|
|
97
|
-
if (options?.removeExtension)
|
|
98
|
-
return path.replace(/\.(tsx?|jsx|mdx)$/, "");
|
|
99
|
-
return path.replace(/\.(tsx?|jsx|mdx)$/, ".js");
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Check if a URL is an esm.sh URL.
|
|
103
|
-
*/
|
|
104
|
-
export function isEsmShUrl(url) {
|
|
105
|
-
return url.startsWith("https://esm.sh/") || url.startsWith("http://esm.sh/");
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Add deps query param to esm.sh URL if not already present.
|
|
109
|
-
*/
|
|
110
|
-
export function addEsmShDeps(url, reactVersion) {
|
|
111
|
-
if (!isEsmShUrl(url))
|
|
112
|
-
return url;
|
|
113
|
-
if (url.includes(`react@${reactVersion}`))
|
|
114
|
-
return url;
|
|
115
|
-
try {
|
|
116
|
-
const parsed = new URL(url);
|
|
117
|
-
const params = new URLSearchParams(parsed.search);
|
|
118
|
-
const externals = new Set();
|
|
119
|
-
for (const value of params.getAll("external")) {
|
|
120
|
-
for (const external of value.split(",")) {
|
|
121
|
-
const normalized = external.trim();
|
|
122
|
-
if (normalized)
|
|
123
|
-
externals.add(normalized);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
for (const external of ["react", "react-dom"]) {
|
|
127
|
-
if (params.has(external)) {
|
|
128
|
-
externals.add(external);
|
|
129
|
-
params.delete(external);
|
|
130
|
-
}
|
|
131
|
-
externals.add(external);
|
|
132
|
-
}
|
|
133
|
-
const orderedExternals = [
|
|
134
|
-
"react",
|
|
135
|
-
"react-dom",
|
|
136
|
-
...Array.from(externals).filter((external) => external !== "react" && external !== "react-dom"),
|
|
137
|
-
];
|
|
138
|
-
const target = params.get("target") ?? "es2022";
|
|
139
|
-
params.delete("external");
|
|
140
|
-
params.delete("target");
|
|
141
|
-
const query = [
|
|
142
|
-
`external=${orderedExternals.join(",")}`,
|
|
143
|
-
`target=${target}`,
|
|
144
|
-
...Array.from(params.entries()).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`),
|
|
145
|
-
].join("&");
|
|
146
|
-
return `${parsed.origin}${parsed.pathname}?${query}${parsed.hash}`;
|
|
147
|
-
}
|
|
148
|
-
catch (_) {
|
|
149
|
-
/* expected: malformed URL falls back to the original string */
|
|
150
|
-
return url;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base64url.d.ts","sourceRoot":"","sources":["../../../src/src/utils/base64url.ts"],"names":[],"mappings":"AAAA;;yBAEyB;AAMzB,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE9D"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/***********************
|
|
2
|
-
* Base64url encoding utilities
|
|
3
|
-
***********************/
|
|
4
|
-
function toBase64Url(b64) {
|
|
5
|
-
return b64.replaceAll("+", "-").replaceAll("/", "_").replaceAll("=", "");
|
|
6
|
-
}
|
|
7
|
-
export function base64urlEncode(input) {
|
|
8
|
-
return toBase64Url(btoa(input));
|
|
9
|
-
}
|
|
10
|
-
export function base64urlEncodeBytes(bytes) {
|
|
11
|
-
return toBase64Url(btoa(String.fromCharCode(...bytes)));
|
|
12
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/** Public API contract for bundle metadata. */
|
|
2
|
-
export interface BundleMetadata {
|
|
3
|
-
hash: string;
|
|
4
|
-
codeHash: string;
|
|
5
|
-
size: number;
|
|
6
|
-
compiledAt: number;
|
|
7
|
-
source: string;
|
|
8
|
-
mode: "development" | "production";
|
|
9
|
-
meta?: {
|
|
10
|
-
type?: "mdx" | "component" | "layout" | "provider";
|
|
11
|
-
depsHash?: string;
|
|
12
|
-
reactVersion?: string;
|
|
13
|
-
/** Headings extracted from MDX for sidebar/TOC navigation */
|
|
14
|
-
headings?: Array<{
|
|
15
|
-
id: string;
|
|
16
|
-
text: string;
|
|
17
|
-
level: number;
|
|
18
|
-
}>;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
/** Public API contract for bundle code. */
|
|
22
|
-
export interface BundleCode {
|
|
23
|
-
code: string;
|
|
24
|
-
sourceMap?: string;
|
|
25
|
-
css?: string;
|
|
26
|
-
}
|
|
27
|
-
export interface BundleManifestStats {
|
|
28
|
-
totalBundles: number;
|
|
29
|
-
totalSize: number;
|
|
30
|
-
oldestBundle?: number;
|
|
31
|
-
newestBundle?: number;
|
|
32
|
-
}
|
|
33
|
-
export interface BundleManifestStore {
|
|
34
|
-
getBundleMetadata(key: string): Promise<BundleMetadata | undefined>;
|
|
35
|
-
setBundleMetadata(key: string, metadata: BundleMetadata, ttlMs?: number): Promise<void>;
|
|
36
|
-
getBundleCode(hash: string): Promise<BundleCode | undefined>;
|
|
37
|
-
setBundleCode(hash: string, code: BundleCode, ttlMs?: number): Promise<void>;
|
|
38
|
-
deleteBundle(key: string): Promise<void>;
|
|
39
|
-
invalidateSource(source: string): Promise<number>;
|
|
40
|
-
clear(): Promise<void>;
|
|
41
|
-
isAvailable(): Promise<boolean>;
|
|
42
|
-
getStats(): Promise<BundleManifestStats>;
|
|
43
|
-
}
|
|
44
|
-
export declare class InMemoryBundleManifestStore implements BundleManifestStore {
|
|
45
|
-
private metadata;
|
|
46
|
-
private code;
|
|
47
|
-
private sourceIndex;
|
|
48
|
-
private getIfNotExpired;
|
|
49
|
-
getBundleMetadata(key: string): Promise<BundleMetadata | undefined>;
|
|
50
|
-
setBundleMetadata(key: string, metadata: BundleMetadata, ttlMs?: number): Promise<void>;
|
|
51
|
-
getBundleCode(hash: string): Promise<BundleCode | undefined>;
|
|
52
|
-
setBundleCode(hash: string, code: BundleCode, ttlMs?: number): Promise<void>;
|
|
53
|
-
deleteBundle(key: string): Promise<void>;
|
|
54
|
-
invalidateSource(source: string): Promise<number>;
|
|
55
|
-
clear(): Promise<void>;
|
|
56
|
-
isAvailable(): Promise<boolean>;
|
|
57
|
-
getStats(): Promise<BundleManifestStats>;
|
|
58
|
-
}
|
|
59
|
-
export declare function setBundleManifestStore(store: BundleManifestStore): void;
|
|
60
|
-
/** Return bundle manifest store. */
|
|
61
|
-
export declare function getBundleManifestStore(): BundleManifestStore;
|
|
62
|
-
export { computeCodeHash, computeHash } from "./hash-utils.js";
|
|
63
|
-
//# sourceMappingURL=bundle-manifest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-manifest.d.ts","sourceRoot":"","sources":["../../../src/src/utils/bundle-manifest.ts"],"names":[],"mappings":"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"}
|