veryfront 0.1.984 → 0.1.986
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/LICENSE +16 -4
- package/NOTICE +2 -0
- package/esm/cli/commands/build/command.js +1 -1
- package/esm/cli/commands/build/handler.d.ts.map +1 -1
- package/esm/cli/commands/build/handler.js +3 -1
- package/esm/cli/commands/dev/handler.d.ts.map +1 -1
- package/esm/cli/commands/dev/handler.js +3 -1
- package/esm/cli/commands/knowledge/parser.d.ts.map +1 -1
- package/esm/cli/commands/knowledge/parser.js +2 -1
- package/esm/cli/commands/serve/handler.d.ts.map +1 -1
- package/esm/cli/commands/serve/handler.js +3 -1
- package/esm/cli/commands/start/handler.d.ts.map +1 -1
- package/esm/cli/commands/start/handler.js +3 -1
- package/esm/cli/main.js +0 -17
- package/esm/cli/router.d.ts.map +1 -1
- package/esm/cli/router.js +67 -98
- package/esm/cli/shared/default-contracts.d.ts +3 -0
- package/esm/cli/shared/default-contracts.d.ts.map +1 -0
- package/esm/cli/shared/default-contracts.js +19 -0
- package/esm/cli/shared/ensure-content-processor.d.ts +9 -1
- package/esm/cli/shared/ensure-content-processor.d.ts.map +1 -1
- package/esm/cli/shared/ensure-content-processor.js +23 -2
- package/esm/cli/shared/server-startup.d.ts.map +1 -1
- package/esm/cli/shared/server-startup.js +7 -4
- package/esm/deno.d.ts +3 -0
- package/esm/deno.js +5 -2
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.d.ts.map +1 -1
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.js +7 -5
- package/esm/src/agent/service/auth.d.ts.map +1 -1
- package/esm/src/agent/service/auth.js +2 -2
- package/esm/src/extensions/builtin-extensions.d.ts +9 -1
- package/esm/src/extensions/builtin-extensions.d.ts.map +1 -1
- package/esm/src/extensions/builtin-extensions.js +138 -54
- package/esm/src/extensions/first-party-import.d.ts +25 -0
- package/esm/src/extensions/first-party-import.d.ts.map +1 -0
- package/esm/src/extensions/first-party-import.js +120 -0
- package/esm/src/html/styles-builder/tailwind-compiler-cache.d.ts.map +1 -1
- package/esm/src/html/styles-builder/tailwind-compiler-cache.js +2 -1
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +2 -1
- package/esm/src/provider/local/local-engine.d.ts.map +1 -1
- package/esm/src/provider/local/local-engine.js +7 -4
- package/esm/src/provider/types.d.ts +1 -0
- package/esm/src/provider/types.d.ts.map +1 -1
- package/esm/src/provider/types.js +1 -1
- package/esm/src/proxy/main.js +4 -1
- package/esm/src/testing/init.js +18 -4
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +18 -94
- package/esm/extensions/ext-auth-jwt/src/index.d.ts +0 -39
- package/esm/extensions/ext-auth-jwt/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-auth-jwt/src/index.js +0 -123
- package/esm/extensions/ext-bundler-esbuild/src/binary.d.ts +0 -7
- package/esm/extensions/ext-bundler-esbuild/src/binary.d.ts.map +0 -1
- package/esm/extensions/ext-bundler-esbuild/src/binary.js +0 -143
- package/esm/extensions/ext-bundler-esbuild/src/es-module-lexer.d.ts +0 -17
- package/esm/extensions/ext-bundler-esbuild/src/es-module-lexer.d.ts.map +0 -1
- package/esm/extensions/ext-bundler-esbuild/src/es-module-lexer.js +0 -29
- package/esm/extensions/ext-bundler-esbuild/src/esbuild-bundler.d.ts +0 -20
- package/esm/extensions/ext-bundler-esbuild/src/esbuild-bundler.d.ts.map +0 -1
- package/esm/extensions/ext-bundler-esbuild/src/esbuild-bundler.js +0 -98
- package/esm/extensions/ext-bundler-esbuild/src/index.d.ts +0 -19
- package/esm/extensions/ext-bundler-esbuild/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-bundler-esbuild/src/index.js +0 -40
- package/esm/extensions/ext-bundler-esbuild/src/plugin-adapter.d.ts +0 -14
- package/esm/extensions/ext-bundler-esbuild/src/plugin-adapter.d.ts.map +0 -1
- package/esm/extensions/ext-bundler-esbuild/src/plugin-adapter.js +0 -55
- package/esm/extensions/ext-bundler-esbuild/src/runtime.d.ts +0 -4
- package/esm/extensions/ext-bundler-esbuild/src/runtime.d.ts.map +0 -1
- package/esm/extensions/ext-bundler-esbuild/src/runtime.js +0 -43
- package/esm/extensions/ext-content-mdx/src/compiler/markdown-compile.d.ts +0 -3
- package/esm/extensions/ext-content-mdx/src/compiler/markdown-compile.d.ts.map +0 -1
- package/esm/extensions/ext-content-mdx/src/compiler/markdown-compile.js +0 -99
- package/esm/extensions/ext-content-mdx/src/compiler/mdx-compile.d.ts +0 -3
- package/esm/extensions/ext-content-mdx/src/compiler/mdx-compile.d.ts.map +0 -1
- package/esm/extensions/ext-content-mdx/src/compiler/mdx-compile.js +0 -53
- package/esm/extensions/ext-content-mdx/src/index.d.ts +0 -30
- package/esm/extensions/ext-content-mdx/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-content-mdx/src/index.js +0 -55
- package/esm/extensions/ext-content-mdx/src/plugins/plugin-loader.d.ts +0 -4
- package/esm/extensions/ext-content-mdx/src/plugins/plugin-loader.d.ts.map +0 -1
- package/esm/extensions/ext-content-mdx/src/plugins/plugin-loader.js +0 -18
- package/esm/extensions/ext-content-mdx/src/plugins/rehype-node-positions.d.ts +0 -20
- package/esm/extensions/ext-content-mdx/src/plugins/rehype-node-positions.d.ts.map +0 -1
- package/esm/extensions/ext-content-mdx/src/plugins/rehype-node-positions.js +0 -45
- package/esm/extensions/ext-content-mdx/src/plugins/remark-headings.d.ts +0 -4
- package/esm/extensions/ext-content-mdx/src/plugins/remark-headings.d.ts.map +0 -1
- package/esm/extensions/ext-content-mdx/src/plugins/remark-headings.js +0 -69
- package/esm/extensions/ext-content-mdx/src/plugins/remark-mdx-utils.d.ts +0 -14
- package/esm/extensions/ext-content-mdx/src/plugins/remark-mdx-utils.d.ts.map +0 -1
- package/esm/extensions/ext-content-mdx/src/plugins/remark-mdx-utils.js +0 -191
- package/esm/extensions/ext-css-tailwind/src/index.d.ts +0 -9
- package/esm/extensions/ext-css-tailwind/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-css-tailwind/src/index.js +0 -71
- package/esm/extensions/ext-db-sqlite/src/index.d.ts +0 -15
- package/esm/extensions/ext-db-sqlite/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-db-sqlite/src/index.js +0 -38
- package/esm/extensions/ext-document-kreuzberg/src/index.d.ts +0 -9
- package/esm/extensions/ext-document-kreuzberg/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-document-kreuzberg/src/index.js +0 -81
- package/esm/extensions/ext-document-kreuzberg/src/kreuzberg.d.ts +0 -3
- package/esm/extensions/ext-document-kreuzberg/src/kreuzberg.d.ts.map +0 -1
- package/esm/extensions/ext-document-kreuzberg/src/kreuzberg.js +0 -67
- package/esm/extensions/ext-document-kreuzberg/src/runtime.d.ts +0 -3
- package/esm/extensions/ext-document-kreuzberg/src/runtime.d.ts.map +0 -1
- package/esm/extensions/ext-document-kreuzberg/src/runtime.js +0 -26
- package/esm/extensions/ext-document-kreuzberg/src/upload-extraction-worker.js +0 -20
- package/esm/extensions/ext-observability-opentelemetry/src/index.d.ts +0 -56
- package/esm/extensions/ext-observability-opentelemetry/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-observability-opentelemetry/src/index.js +0 -338
- package/esm/extensions/ext-parser-babel/src/index.d.ts +0 -27
- package/esm/extensions/ext-parser-babel/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-parser-babel/src/index.js +0 -82
- package/esm/extensions/ext-parser-babel/src/inject-node-positions.d.ts +0 -16
- package/esm/extensions/ext-parser-babel/src/inject-node-positions.d.ts.map +0 -1
- package/esm/extensions/ext-parser-babel/src/inject-node-positions.js +0 -129
- package/esm/extensions/ext-sandbox-shell-tools/src/index.d.ts +0 -16
- package/esm/extensions/ext-sandbox-shell-tools/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-sandbox-shell-tools/src/index.js +0 -29
|
@@ -98,12 +98,15 @@ export async function getTransformers() {
|
|
|
98
98
|
mod = await importTransformers();
|
|
99
99
|
}
|
|
100
100
|
catch (_) {
|
|
101
|
-
// expected:
|
|
101
|
+
// expected: @huggingface/transformers is an optional peer that npm installs
|
|
102
|
+
// do not pull automatically, and native ONNX Runtime is not available in
|
|
103
|
+
// some environments (e.g. compiled binaries)
|
|
102
104
|
throw toError(createError({
|
|
103
105
|
type: "no_ai_available",
|
|
104
|
-
message: "Local AI model unavailable.
|
|
105
|
-
"(
|
|
106
|
-
"
|
|
106
|
+
message: "Local AI model unavailable. Install @huggingface/transformers alongside veryfront " +
|
|
107
|
+
"(npm installs), or run veryfront login, set VERYFRONT_API_TOKEN, or configure " +
|
|
108
|
+
"OPENAI_API_KEY, ANTHROPIC_API_KEY, or GOOGLE_API_KEY to use a cloud provider. " +
|
|
109
|
+
"Native ONNX Runtime is not supported in compiled binaries.",
|
|
107
110
|
}));
|
|
108
111
|
}
|
|
109
112
|
// Configure cache directory for model files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/provider/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC5E,OAAO,CAAC,OAAO,EAAE;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,WAAW,CAAC;QACd,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC5E,OAAO,CAAC,OAAO,EAAE;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,WAAW,CAAC;QACd,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import "../../_dnt.polyfills.js";
|
package/esm/src/proxy/main.js
CHANGED
|
@@ -25,7 +25,7 @@ import { createCacheFromEnv } from "./cache/index.js";
|
|
|
25
25
|
import { isRetryableConnectionError } from "./retry.js";
|
|
26
26
|
import { closeBridgePeer, getServerWebSocketErrorLogLevel } from "./websocket-bridge.js";
|
|
27
27
|
import { register } from "../extensions/contracts.js";
|
|
28
|
-
import {
|
|
28
|
+
import { importFirstPartyExtensionModule } from "../extensions/first-party-import.js";
|
|
29
29
|
import { endSpan, extractContext, initializeOTLPWithApis, injectContext, ProxySpanNames, shutdownOTLP, startServerSpan, withContext, withSpan, } from "./tracing.js";
|
|
30
30
|
import { proxyLogger, runWithProxyRequestContext } from "./logger.js";
|
|
31
31
|
import { getProxyFailureLogLevel } from "./log-noise.js";
|
|
@@ -88,6 +88,9 @@ const DEFAULT_SERVER_RETRY_COUNT = 1;
|
|
|
88
88
|
const DEFAULT_SERVER_RETRY_DELAY_MS = 100;
|
|
89
89
|
const VERYFRONT_SERVER_RETRY_COUNT = parseInt(getEnv("VERYFRONT_SERVER_RETRY_COUNT") || String(DEFAULT_SERVER_RETRY_COUNT));
|
|
90
90
|
const VERYFRONT_SERVER_RETRY_DELAY_MS = parseInt(getEnv("VERYFRONT_SERVER_RETRY_DELAY_MS") || String(DEFAULT_SERVER_RETRY_DELAY_MS));
|
|
91
|
+
const { createAuthProvider } = await importFirstPartyExtensionModule("ext-auth-jwt", "@veryfront/ext-auth-jwt").catch((error) => {
|
|
92
|
+
throw new Error(`The Veryfront proxy requires the ext-auth-jwt extension. In npm deployments install @veryfront/ext-auth-jwt alongside veryfront. ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
93
|
+
});
|
|
91
94
|
register("AuthProvider", createAuthProvider({}));
|
|
92
95
|
// Initialize cache and proxy handler
|
|
93
96
|
const cache = await createCacheFromEnv();
|
package/esm/src/testing/init.js
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* @module
|
|
11
11
|
*/
|
|
12
12
|
import * as dntShim from "../../_dnt.shims.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import { register as registerContract, tryResolve } from "../extensions/contracts.js";
|
|
14
|
+
import { importFirstPartyExtensionModule, isMissingFirstPartyExtensionModule, } from "../extensions/first-party-import.js";
|
|
15
15
|
const g = dntShim.dntGlobalThis;
|
|
16
16
|
g.__vfDisableLruInterval = true;
|
|
17
17
|
g.__vfTestEnv = true;
|
|
@@ -21,5 +21,19 @@ g.__vfTestEnvMask = {
|
|
|
21
21
|
// Tests don't run the extension orchestrator; prime the Bundler + ModuleLexer
|
|
22
22
|
// contracts here so transforms that depend on them (lexer.ts, parse-cache.ts,
|
|
23
23
|
// the platform/compat/esbuild shim, and bundler call-sites) work in tests.
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
await registerDefaultBundlerContracts();
|
|
25
|
+
async function registerDefaultBundlerContracts() {
|
|
26
|
+
if (tryResolve("Bundler") && tryResolve("ModuleLexer"))
|
|
27
|
+
return;
|
|
28
|
+
try {
|
|
29
|
+
const { EsbuildBundler, EsModuleLexer } = await importFirstPartyExtensionModule("ext-bundler-esbuild", "@veryfront/ext-bundler-esbuild");
|
|
30
|
+
if (!tryResolve("Bundler"))
|
|
31
|
+
registerContract("Bundler", new EsbuildBundler());
|
|
32
|
+
if (!tryResolve("ModuleLexer"))
|
|
33
|
+
registerContract("ModuleLexer", new EsModuleLexer());
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
if (!isMissingFirstPartyExtensionModule(error))
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.986",
|
|
4
4
|
"description": "The simplest way to build AI-powered apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -189,6 +189,10 @@
|
|
|
189
189
|
"import": "./esm/src/provider/shared/index.js",
|
|
190
190
|
"types": "./esm/src/provider/shared/index.d.ts"
|
|
191
191
|
},
|
|
192
|
+
"./provider/types": {
|
|
193
|
+
"import": "./esm/src/provider/types.js",
|
|
194
|
+
"types": "./esm/src/provider/types.d.ts"
|
|
195
|
+
},
|
|
192
196
|
"./fs": {
|
|
193
197
|
"import": "./esm/src/fs/index.js",
|
|
194
198
|
"types": "./esm/src/fs/index.d.ts"
|
|
@@ -299,87 +303,10 @@
|
|
|
299
303
|
"engines": {
|
|
300
304
|
"node": ">=18.0.0"
|
|
301
305
|
},
|
|
302
|
-
"optionalDependencies": {
|
|
303
|
-
"@huggingface/transformers": "4.2.0",
|
|
304
|
-
"bash-tool": "1.3.16",
|
|
305
|
-
"just-bash": "2.14.5"
|
|
306
|
-
},
|
|
307
|
-
"peerDependenciesMeta": {
|
|
308
|
-
"better-sqlite3": {
|
|
309
|
-
"optional": true
|
|
310
|
-
},
|
|
311
|
-
"@kreuzberg/node": {
|
|
312
|
-
"optional": true
|
|
313
|
-
},
|
|
314
|
-
"@kreuzberg/wasm": {
|
|
315
|
-
"optional": true
|
|
316
|
-
},
|
|
317
|
-
"@opentelemetry/api": {
|
|
318
|
-
"optional": true
|
|
319
|
-
},
|
|
320
|
-
"@opentelemetry/auto-instrumentations-node": {
|
|
321
|
-
"optional": true
|
|
322
|
-
},
|
|
323
|
-
"@opentelemetry/context-async-hooks": {
|
|
324
|
-
"optional": true
|
|
325
|
-
},
|
|
326
|
-
"@opentelemetry/core": {
|
|
327
|
-
"optional": true
|
|
328
|
-
},
|
|
329
|
-
"@opentelemetry/exporter-metrics-otlp-http": {
|
|
330
|
-
"optional": true
|
|
331
|
-
},
|
|
332
|
-
"@opentelemetry/exporter-trace-otlp-http": {
|
|
333
|
-
"optional": true
|
|
334
|
-
},
|
|
335
|
-
"@opentelemetry/resources": {
|
|
336
|
-
"optional": true
|
|
337
|
-
},
|
|
338
|
-
"@opentelemetry/sdk-metrics": {
|
|
339
|
-
"optional": true
|
|
340
|
-
},
|
|
341
|
-
"@opentelemetry/sdk-node": {
|
|
342
|
-
"optional": true
|
|
343
|
-
},
|
|
344
|
-
"@opentelemetry/sdk-trace-base": {
|
|
345
|
-
"optional": true
|
|
346
|
-
},
|
|
347
|
-
"@opentelemetry/semantic-conventions": {
|
|
348
|
-
"optional": true
|
|
349
|
-
}
|
|
350
|
-
},
|
|
351
306
|
"dependencies": {
|
|
352
|
-
"@babel/generator": "7.29.1",
|
|
353
|
-
"@babel/parser": "7.29.2",
|
|
354
|
-
"@babel/traverse": "7.29.0",
|
|
355
|
-
"@babel/types": "7.29.0",
|
|
356
|
-
"@mdx-js/mdx": "3.1.1",
|
|
357
|
-
"@types/hast": "3.0.3",
|
|
358
|
-
"@types/mdast": "4.0.3",
|
|
359
|
-
"@types/unist": "3.0.2",
|
|
360
|
-
"es-module-lexer": "2.0.0",
|
|
361
|
-
"esbuild": "0.28.1",
|
|
362
|
-
"github-slugger": "2.0.0",
|
|
363
|
-
"jose": "5.9.6",
|
|
364
|
-
"mdast-util-to-string": "4.0.0",
|
|
365
307
|
"react": "19.2.4",
|
|
366
308
|
"react-dom": "19.2.4",
|
|
367
|
-
"redis": "5.11.0",
|
|
368
|
-
"rehype-highlight": "7.0.2",
|
|
369
|
-
"rehype-raw": "7.0.0",
|
|
370
|
-
"rehype-sanitize": "6.0.0",
|
|
371
|
-
"rehype-slug": "6.0.0",
|
|
372
|
-
"rehype-starry-night": "2.2.0",
|
|
373
|
-
"rehype-stringify": "10.0.1",
|
|
374
|
-
"remark-frontmatter": "5.0.0",
|
|
375
|
-
"remark-gfm": "4.0.1",
|
|
376
|
-
"remark-parse": "11.0.0",
|
|
377
|
-
"remark-rehype": "11.1.2",
|
|
378
309
|
"scheduler": "0.27.0",
|
|
379
|
-
"tailwindcss": "4.2.2",
|
|
380
|
-
"unified": "11.0.5",
|
|
381
|
-
"unist-util-visit": "5.1.0",
|
|
382
|
-
"vfile": "6.0.3",
|
|
383
310
|
"zod": "4.3.6",
|
|
384
311
|
"@deno/shim-deno": "0.18.0",
|
|
385
312
|
"@deno/shim-crypto": "0.3.1",
|
|
@@ -388,26 +315,22 @@
|
|
|
388
315
|
"@types/react-dom": "19.2.3",
|
|
389
316
|
"ws": "8.21.0"
|
|
390
317
|
},
|
|
391
|
-
"peerDependencies": {
|
|
392
|
-
"better-sqlite3": ">=9.0.0",
|
|
393
|
-
"@kreuzberg/node": "4.4.2",
|
|
394
|
-
"@kreuzberg/wasm": "4.5.2",
|
|
395
|
-
"@opentelemetry/api": "1.9.1",
|
|
396
|
-
"@opentelemetry/auto-instrumentations-node": "0.77.0",
|
|
397
|
-
"@opentelemetry/context-async-hooks": "2.8.0",
|
|
398
|
-
"@opentelemetry/core": "2.8.0",
|
|
399
|
-
"@opentelemetry/exporter-metrics-otlp-http": "0.219.0",
|
|
400
|
-
"@opentelemetry/exporter-trace-otlp-http": "0.219.0",
|
|
401
|
-
"@opentelemetry/resources": "2.8.0",
|
|
402
|
-
"@opentelemetry/sdk-metrics": "2.8.0",
|
|
403
|
-
"@opentelemetry/sdk-node": "0.219.0",
|
|
404
|
-
"@opentelemetry/sdk-trace-base": "2.8.0",
|
|
405
|
-
"@opentelemetry/semantic-conventions": "1.41.1"
|
|
406
|
-
},
|
|
407
318
|
"devDependencies": {
|
|
408
319
|
"@types/node": "20.9.0"
|
|
409
320
|
},
|
|
410
321
|
"_generatedBy": "dnt@dev",
|
|
322
|
+
"peerDependencies": {
|
|
323
|
+
"@huggingface/transformers": "^4.2.0",
|
|
324
|
+
"redis": "5.11.0"
|
|
325
|
+
},
|
|
326
|
+
"peerDependenciesMeta": {
|
|
327
|
+
"@huggingface/transformers": {
|
|
328
|
+
"optional": true
|
|
329
|
+
},
|
|
330
|
+
"redis": {
|
|
331
|
+
"optional": true
|
|
332
|
+
}
|
|
333
|
+
},
|
|
411
334
|
"overrides": {
|
|
412
335
|
"protobufjs": "8.6.5"
|
|
413
336
|
},
|
|
@@ -423,6 +346,7 @@
|
|
|
423
346
|
"assets",
|
|
424
347
|
"tsconfig.json",
|
|
425
348
|
"LICENSE",
|
|
349
|
+
"NOTICE",
|
|
426
350
|
"README.md"
|
|
427
351
|
]
|
|
428
352
|
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jwtVerify } from "jose";
|
|
2
|
-
import type { ExtensionFactory } from "../../../src/extensions/index.js";
|
|
3
|
-
import type { AuthProvider } from "../../../src/extensions/auth/index.js";
|
|
4
|
-
/**
|
|
5
|
-
* Signature used by jose's verify step to resolve a key for a given header.
|
|
6
|
-
*
|
|
7
|
-
* Matches the shape returned by `createRemoteJWKSet` / `createLocalJWKSet`
|
|
8
|
-
* and lets tests inject an in-memory key set without reaching the network.
|
|
9
|
-
*/
|
|
10
|
-
export type JwksResolver = Parameters<typeof jwtVerify>[1] & object;
|
|
11
|
-
/**
|
|
12
|
-
* Factory for building a JWKS resolver from a URL.
|
|
13
|
-
*
|
|
14
|
-
* The default uses `createRemoteJWKSet`; tests can inject a stub that returns
|
|
15
|
-
* a local resolver bound to an in-memory key set.
|
|
16
|
-
*/
|
|
17
|
-
export type JwksResolverFactory = (jwksUrl: string) => JwksResolver;
|
|
18
|
-
/**
|
|
19
|
-
* Optional configuration for the ext-auth-jwt factory.
|
|
20
|
-
*
|
|
21
|
-
* - `secret`: HMAC secret for `sign`/`verify`. Falls back to the `JWT_SECRET`
|
|
22
|
-
* environment variable. Without one, `sign`/`verify` throw.
|
|
23
|
-
* - `jwksResolverFactory`: test seam that overrides JWKS resolution.
|
|
24
|
-
*/
|
|
25
|
-
export interface ExtJwtConfig {
|
|
26
|
-
secret?: string | Uint8Array;
|
|
27
|
-
jwksResolverFactory?: JwksResolverFactory;
|
|
28
|
-
}
|
|
29
|
-
declare function createAuthProvider(config: ExtJwtConfig): AuthProvider;
|
|
30
|
-
/**
|
|
31
|
-
* Default export — the ext-auth-jwt extension factory.
|
|
32
|
-
*
|
|
33
|
-
* Produces an extension that registers an `AuthProvider` contract
|
|
34
|
-
* implementation backed by `jose`.
|
|
35
|
-
*/
|
|
36
|
-
declare const extJwt: ExtensionFactory;
|
|
37
|
-
export default extJwt;
|
|
38
|
-
export { createAuthProvider };
|
|
39
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-auth-jwt/src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAKL,SAAS,EAGV,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,uCAAuC,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAsBD,iBAAS,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAgG9D;AAED;;;;;GAKG;AACH,QAAA,MAAM,MAAM,EAAE,gBAcb,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ext-auth-jwt: AuthProvider implementation backed by `jose`.
|
|
3
|
-
*
|
|
4
|
-
* Provides the `AuthProvider` contract: sign / verify (HS256 by default),
|
|
5
|
-
* remote-JWKS verification, public-key verification, and header decoding.
|
|
6
|
-
*
|
|
7
|
-
* @module extensions/ext-auth-jwt
|
|
8
|
-
*/
|
|
9
|
-
import * as dntShim from "../../../_dnt.shims.js";
|
|
10
|
-
import { createRemoteJWKSet, decodeProtectedHeader, importSPKI, jwtVerify, SignJWT, } from "jose";
|
|
11
|
-
function defaultJwksResolverFactory(jwksUrl) {
|
|
12
|
-
return createRemoteJWKSet(new URL(jwksUrl));
|
|
13
|
-
}
|
|
14
|
-
function toUint8Array(secret) {
|
|
15
|
-
return typeof secret === "string" ? new TextEncoder().encode(secret) : secret;
|
|
16
|
-
}
|
|
17
|
-
function getSecret(configSecret) {
|
|
18
|
-
if (configSecret !== undefined)
|
|
19
|
-
return toUint8Array(configSecret);
|
|
20
|
-
const env = typeof dntShim.Deno !== "undefined" ? dntShim.Deno.env.get("JWT_SECRET") : undefined;
|
|
21
|
-
if (!env) {
|
|
22
|
-
throw new Error("ext-auth-jwt: no HMAC secret configured. Pass `secret` to the extension " +
|
|
23
|
-
"factory or set the JWT_SECRET environment variable.");
|
|
24
|
-
}
|
|
25
|
-
return new TextEncoder().encode(env);
|
|
26
|
-
}
|
|
27
|
-
function createAuthProvider(config) {
|
|
28
|
-
const jwksResolverFactory = config.jwksResolverFactory ??
|
|
29
|
-
defaultJwksResolverFactory;
|
|
30
|
-
// Cache one resolver per JWKS URL; `createRemoteJWKSet` maintains its own
|
|
31
|
-
// internal key cache with cooldown/rotation semantics, so reusing the
|
|
32
|
-
// same resolver is required for the cache to be effective.
|
|
33
|
-
const jwksResolvers = new Map();
|
|
34
|
-
const publicKeys = new Map();
|
|
35
|
-
function getJwksResolver(jwksUrl) {
|
|
36
|
-
const existing = jwksResolvers.get(jwksUrl);
|
|
37
|
-
if (existing)
|
|
38
|
-
return existing;
|
|
39
|
-
const created = jwksResolverFactory(jwksUrl);
|
|
40
|
-
jwksResolvers.set(jwksUrl, created);
|
|
41
|
-
return created;
|
|
42
|
-
}
|
|
43
|
-
function getPublicKey(publicKeyPem, algorithm) {
|
|
44
|
-
const cacheKey = `${algorithm}:${publicKeyPem}`;
|
|
45
|
-
const existing = publicKeys.get(cacheKey);
|
|
46
|
-
if (existing)
|
|
47
|
-
return existing;
|
|
48
|
-
const created = importSPKI(publicKeyPem, algorithm);
|
|
49
|
-
publicKeys.set(cacheKey, created);
|
|
50
|
-
return created;
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
async sign(payload, options) {
|
|
54
|
-
const secret = getSecret(config.secret);
|
|
55
|
-
const algorithm = options?.algorithm ?? "HS256";
|
|
56
|
-
const { sub, ...rest } = payload;
|
|
57
|
-
const builder = new SignJWT(rest)
|
|
58
|
-
.setProtectedHeader({ alg: algorithm })
|
|
59
|
-
.setSubject(sub);
|
|
60
|
-
if (options?.expiresIn !== undefined) {
|
|
61
|
-
// jose's setExpirationTime accepts `string | number | Date`.
|
|
62
|
-
builder.setExpirationTime(options.expiresIn);
|
|
63
|
-
}
|
|
64
|
-
return await builder.sign(secret);
|
|
65
|
-
},
|
|
66
|
-
async verify(token, options) {
|
|
67
|
-
const secret = getSecret(config.secret);
|
|
68
|
-
const algorithms = options?.algorithms ?? ["HS256"];
|
|
69
|
-
const { payload } = await jwtVerify(token, secret, { algorithms });
|
|
70
|
-
return payload;
|
|
71
|
-
},
|
|
72
|
-
async verifyWithJwks(token, jwksUrl, options) {
|
|
73
|
-
const resolver = getJwksResolver(jwksUrl);
|
|
74
|
-
const { algorithms, ...rest } = options ?? {};
|
|
75
|
-
const verifyOpts = { ...rest };
|
|
76
|
-
if (algorithms)
|
|
77
|
-
verifyOpts.algorithms = algorithms;
|
|
78
|
-
const { payload } = await jwtVerify(token, resolver, verifyOpts);
|
|
79
|
-
return payload;
|
|
80
|
-
},
|
|
81
|
-
async verifyWithPublicKey(token, publicKeyPem, options) {
|
|
82
|
-
const algorithms = options?.algorithms ?? ["RS256"];
|
|
83
|
-
const algorithm = algorithms[0] ?? "RS256";
|
|
84
|
-
const publicKey = await getPublicKey(publicKeyPem, algorithm);
|
|
85
|
-
const { algorithms: _algorithms, ...rest } = options ?? {};
|
|
86
|
-
const { payload } = await jwtVerify(token, publicKey, {
|
|
87
|
-
...rest,
|
|
88
|
-
algorithms,
|
|
89
|
-
});
|
|
90
|
-
return payload;
|
|
91
|
-
},
|
|
92
|
-
decode(token) {
|
|
93
|
-
try {
|
|
94
|
-
return decodeProtectedHeader(token);
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
return undefined;
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Default export — the ext-auth-jwt extension factory.
|
|
104
|
-
*
|
|
105
|
-
* Produces an extension that registers an `AuthProvider` contract
|
|
106
|
-
* implementation backed by `jose`.
|
|
107
|
-
*/
|
|
108
|
-
const extJwt = (config) => {
|
|
109
|
-
const cfg = (config ?? {});
|
|
110
|
-
const provider = createAuthProvider(cfg);
|
|
111
|
-
return {
|
|
112
|
-
name: "ext-auth-jwt",
|
|
113
|
-
version: "0.1.0",
|
|
114
|
-
capabilities: [
|
|
115
|
-
{ type: "net:outbound", hosts: ["*"] },
|
|
116
|
-
],
|
|
117
|
-
provides: {
|
|
118
|
-
AuthProvider: provider,
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
};
|
|
122
|
-
export default extJwt;
|
|
123
|
-
export { createAuthProvider };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Idempotent one-shot setup — copies the esbuild binary out of the VFS (if
|
|
3
|
-
* running in `deno compile`) and sets ESBUILD_BINARY_PATH. No-op on normal
|
|
4
|
-
* Deno or when the env var is already set.
|
|
5
|
-
*/
|
|
6
|
-
export declare function ensureEsbuildBinary(): Promise<void>;
|
|
7
|
-
//# sourceMappingURL=binary.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-bundler-esbuild/src/binary.ts"],"names":[],"mappings":"AAmHA;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCzD"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Binary extraction for `deno compile` VFS.
|
|
3
|
-
*
|
|
4
|
-
* Ported from src/platform/compat/esbuild.ts + esbuild-shared.ts. When the
|
|
5
|
-
* framework runs as a compiled Deno binary, the esbuild native binary lives
|
|
6
|
-
* inside the VFS and must be copied to a writable path before esbuild's
|
|
7
|
-
* child-process spawn can find it.
|
|
8
|
-
*
|
|
9
|
-
* On normal Deno (not `deno compile`) or when ESBUILD_BINARY_PATH is already
|
|
10
|
-
* set, `ensureEsbuildBinary()` is a no-op.
|
|
11
|
-
*
|
|
12
|
-
* @module extensions/ext-bundler-esbuild/binary
|
|
13
|
-
*/
|
|
14
|
-
import * as dntShim from "../../../_dnt.shims.js";
|
|
15
|
-
import { isDenoCompiled } from "./runtime.js";
|
|
16
|
-
const ESBUILD_VERSION = "0.28.1";
|
|
17
|
-
function getTempDir() {
|
|
18
|
-
try {
|
|
19
|
-
return (dntShim.Deno.env.get("TMPDIR") ?? dntShim.Deno.env.get("TEMP") ?? dntShim.Deno.env.get("TMP") ?? "/tmp");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "/tmp";
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function getEsbuildBinaryName() {
|
|
26
|
-
const archMap = { x86_64: "x64", aarch64: "arm64" };
|
|
27
|
-
const arch = archMap[dntShim.Deno.build.arch] ?? dntShim.Deno.build.arch;
|
|
28
|
-
return `@esbuild/${dntShim.Deno.build.os}-${arch}`;
|
|
29
|
-
}
|
|
30
|
-
function getVFSBasePath(filePath, tempDir) {
|
|
31
|
-
const denoCompileMatch = filePath.match(/^(.*\/deno-compile-[^/]+)\//);
|
|
32
|
-
if (denoCompileMatch?.[1])
|
|
33
|
-
return denoCompileMatch[1];
|
|
34
|
-
const parts = filePath.split("/");
|
|
35
|
-
const srcIndex = parts.lastIndexOf("src");
|
|
36
|
-
if (srcIndex > 0)
|
|
37
|
-
return parts.slice(0, srcIndex).join("/");
|
|
38
|
-
return `${tempDir}/deno-compile-veryfront`;
|
|
39
|
-
}
|
|
40
|
-
async function isFile(path) {
|
|
41
|
-
try {
|
|
42
|
-
const stat = await dntShim.Deno.stat(path);
|
|
43
|
-
return stat.isFile;
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async function findEsbuildInVFS() {
|
|
50
|
-
const binaryName = getEsbuildBinaryName();
|
|
51
|
-
const vfsBase = getVFSBasePath(new URL(globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url).pathname, getTempDir());
|
|
52
|
-
const possiblePaths = [
|
|
53
|
-
`${vfsBase}/node_modules/${binaryName}/bin/esbuild`,
|
|
54
|
-
`${vfsBase}/node_modules/.deno/${binaryName}@${ESBUILD_VERSION}/node_modules/${binaryName}/bin/esbuild`,
|
|
55
|
-
`${vfsBase}/node_modules/.deno/esbuild@${ESBUILD_VERSION}/node_modules/${binaryName}/bin/esbuild`,
|
|
56
|
-
`${vfsBase}/node_modules/esbuild/bin/esbuild`,
|
|
57
|
-
`${vfsBase}/node_modules/.package/esbuild@${ESBUILD_VERSION}/bin/esbuild`,
|
|
58
|
-
`${vfsBase}/node_modules/.package/${binaryName}@${ESBUILD_VERSION}/bin/esbuild`,
|
|
59
|
-
];
|
|
60
|
-
for (const p of possiblePaths) {
|
|
61
|
-
if (await isFile(p))
|
|
62
|
-
return p;
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
const nodeModulesPath = `${vfsBase}/node_modules`;
|
|
66
|
-
for await (const entry of dntShim.Deno.readDir(nodeModulesPath)) {
|
|
67
|
-
if (entry.name !== binaryName && !entry.name.startsWith("@esbuild"))
|
|
68
|
-
continue;
|
|
69
|
-
const binPath = `${nodeModulesPath}/${entry.name}/bin/esbuild`;
|
|
70
|
-
if (await isFile(binPath))
|
|
71
|
-
return binPath;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
/* node_modules not readable in VFS */
|
|
76
|
-
}
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
async function extractEsbuildBinary() {
|
|
80
|
-
const cacheDir = `${getTempDir()}/veryfront-esbuild`;
|
|
81
|
-
const targetPath = `${cacheDir}/esbuild-${ESBUILD_VERSION}`;
|
|
82
|
-
try {
|
|
83
|
-
const stat = await dntShim.Deno.stat(targetPath);
|
|
84
|
-
if (stat.isFile && stat.mode && (stat.mode & 0o111))
|
|
85
|
-
return targetPath;
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
/* cache miss */
|
|
89
|
-
}
|
|
90
|
-
const vfsPath = await findEsbuildInVFS();
|
|
91
|
-
if (!vfsPath) {
|
|
92
|
-
throw new Error(`[ext-bundler-esbuild] Could not find esbuild binary in deno compile VFS. ` +
|
|
93
|
-
`Platform: ${getEsbuildBinaryName()}. ` +
|
|
94
|
-
`Ensure esbuild is in dependencies and deno compile includes node_modules.`);
|
|
95
|
-
}
|
|
96
|
-
await dntShim.Deno.mkdir(cacheDir, { recursive: true });
|
|
97
|
-
const binary = await dntShim.Deno.readFile(vfsPath);
|
|
98
|
-
await dntShim.Deno.writeFile(targetPath, binary, { mode: 0o755 });
|
|
99
|
-
return targetPath;
|
|
100
|
-
}
|
|
101
|
-
let setupComplete = false;
|
|
102
|
-
let setupPromise = null;
|
|
103
|
-
/**
|
|
104
|
-
* Idempotent one-shot setup — copies the esbuild binary out of the VFS (if
|
|
105
|
-
* running in `deno compile`) and sets ESBUILD_BINARY_PATH. No-op on normal
|
|
106
|
-
* Deno or when the env var is already set.
|
|
107
|
-
*/
|
|
108
|
-
export async function ensureEsbuildBinary() {
|
|
109
|
-
if (setupComplete)
|
|
110
|
-
return;
|
|
111
|
-
if (setupPromise) {
|
|
112
|
-
await setupPromise;
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
setupPromise = (async () => {
|
|
116
|
-
try {
|
|
117
|
-
if (dntShim.Deno.env.get("ESBUILD_BINARY_PATH") || !isDenoCompiled) {
|
|
118
|
-
setupComplete = true;
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
try {
|
|
122
|
-
const binaryPath = await extractEsbuildBinary();
|
|
123
|
-
dntShim.Deno.env.set("ESBUILD_BINARY_PATH", binaryPath);
|
|
124
|
-
// esbuild reads process.env (not Deno.env) on some code paths.
|
|
125
|
-
const proc = dntShim.dntGlobalThis.process;
|
|
126
|
-
if (proc?.env)
|
|
127
|
-
proc.env.ESBUILD_BINARY_PATH = binaryPath;
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
console.error("[ext-bundler-esbuild] Binary extraction failed:", err);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
finally {
|
|
134
|
-
setupComplete = true;
|
|
135
|
-
}
|
|
136
|
-
})();
|
|
137
|
-
try {
|
|
138
|
-
await setupPromise;
|
|
139
|
-
}
|
|
140
|
-
finally {
|
|
141
|
-
setupPromise = null;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* es-module-lexer-backed implementation of the {@link ModuleLexer} contract.
|
|
3
|
-
*
|
|
4
|
-
* es-module-lexer@2 exports `init` as a Promise in its ESM build but older
|
|
5
|
-
* typings expect a function. We tolerate both shapes (as the in-tree
|
|
6
|
-
* src/transforms/esm/lexer.ts did).
|
|
7
|
-
*
|
|
8
|
-
* @module extensions/ext-bundler-esbuild/es-module-lexer
|
|
9
|
-
*/
|
|
10
|
-
import type { ImportSpecifier, ModuleLexer } from "../../../src/extensions/bundler/index.js";
|
|
11
|
-
/** es-module-lexer-backed {@link ModuleLexer} implementation. */
|
|
12
|
-
export declare class EsModuleLexer implements ModuleLexer {
|
|
13
|
-
private initPromise;
|
|
14
|
-
init(): Promise<void>;
|
|
15
|
-
parse(code: string): readonly ImportSpecifier[];
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=es-module-lexer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"es-module-lexer.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-bundler-esbuild/src/es-module-lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAG7F,iEAAiE;AACjE,qBAAa,aAAc,YAAW,WAAW;IAC/C,OAAO,CAAC,WAAW,CAA8B;IAE3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE;CAIhD"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* es-module-lexer-backed implementation of the {@link ModuleLexer} contract.
|
|
3
|
-
*
|
|
4
|
-
* es-module-lexer@2 exports `init` as a Promise in its ESM build but older
|
|
5
|
-
* typings expect a function. We tolerate both shapes (as the in-tree
|
|
6
|
-
* src/transforms/esm/lexer.ts did).
|
|
7
|
-
*
|
|
8
|
-
* @module extensions/ext-bundler-esbuild/es-module-lexer
|
|
9
|
-
*/
|
|
10
|
-
import { init, parse } from "es-module-lexer";
|
|
11
|
-
/** es-module-lexer-backed {@link ModuleLexer} implementation. */
|
|
12
|
-
export class EsModuleLexer {
|
|
13
|
-
initPromise = null;
|
|
14
|
-
async init() {
|
|
15
|
-
if (this.initPromise) {
|
|
16
|
-
await this.initPromise;
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const anyInit = init;
|
|
20
|
-
this.initPromise = typeof anyInit === "function"
|
|
21
|
-
? anyInit()
|
|
22
|
-
: anyInit;
|
|
23
|
-
await this.initPromise;
|
|
24
|
-
}
|
|
25
|
-
parse(code) {
|
|
26
|
-
const [imports] = parse(code);
|
|
27
|
-
return imports;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* esbuild-backed implementation of the {@link Bundler} contract.
|
|
3
|
-
*
|
|
4
|
-
* Lazy-initializes the esbuild binary (including `deno compile` VFS
|
|
5
|
-
* extraction) on first use. All options pass through to esbuild unchanged
|
|
6
|
-
* because the {@link BundleOptions} shape was designed to be esbuild-compatible;
|
|
7
|
-
* the only translation is converting {@link BundlerPlugin}s into esbuild
|
|
8
|
-
* plugins via {@link toEsbuildPlugin}.
|
|
9
|
-
*
|
|
10
|
-
* @module extensions/ext-bundler-esbuild/esbuild-bundler
|
|
11
|
-
*/
|
|
12
|
-
import type { BuildContext, BundleOptions, Bundler, BundleResult, TransformOptions, TransformResult } from "../../../src/extensions/bundler/index.js";
|
|
13
|
-
/** esbuild-backed {@link Bundler} implementation. */
|
|
14
|
-
export declare class EsbuildBundler implements Bundler {
|
|
15
|
-
bundle(options: BundleOptions): Promise<BundleResult>;
|
|
16
|
-
transform(options: TransformOptions): Promise<TransformResult>;
|
|
17
|
-
context(options: BundleOptions): Promise<BuildContext>;
|
|
18
|
-
stop(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=esbuild-bundler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-bundler.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-bundler-esbuild/src/esbuild-bundler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAEb,OAAO,EACP,YAAY,EAGZ,gBAAgB,EAChB,eAAe,EAChB,MAAM,0CAA0C,CAAC;AAoDlD,qDAAqD;AACrD,qBAAa,cAAe,YAAW,OAAO;IACtC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAWrD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAW9D,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
|