@trigger.dev/build 0.0.0-chat-prerelease-20260401205942
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 +21 -0
- package/README.md +3 -0
- package/dist/commonjs/extensions/audioWaveform.d.ts +6 -0
- package/dist/commonjs/extensions/audioWaveform.js +45 -0
- package/dist/commonjs/extensions/audioWaveform.js.map +1 -0
- package/dist/commonjs/extensions/core/additionalFiles.d.ts +5 -0
- package/dist/commonjs/extensions/core/additionalFiles.js +13 -0
- package/dist/commonjs/extensions/core/additionalFiles.js.map +1 -0
- package/dist/commonjs/extensions/core/additionalPackages.d.ts +15 -0
- package/dist/commonjs/extensions/core/additionalPackages.js +77 -0
- package/dist/commonjs/extensions/core/additionalPackages.js.map +1 -0
- package/dist/commonjs/extensions/core/aptGet.d.ts +5 -0
- package/dist/commonjs/extensions/core/aptGet.js +23 -0
- package/dist/commonjs/extensions/core/aptGet.js.map +1 -0
- package/dist/commonjs/extensions/core/ffmpeg.d.ts +22 -0
- package/dist/commonjs/extensions/core/ffmpeg.js +68 -0
- package/dist/commonjs/extensions/core/ffmpeg.js.map +1 -0
- package/dist/commonjs/extensions/core/neonSyncEnvVars.d.ts +14 -0
- package/dist/commonjs/extensions/core/neonSyncEnvVars.js +202 -0
- package/dist/commonjs/extensions/core/neonSyncEnvVars.js.map +1 -0
- package/dist/commonjs/extensions/core/syncEnvVars.d.ts +18 -0
- package/dist/commonjs/extensions/core/syncEnvVars.js +150 -0
- package/dist/commonjs/extensions/core/syncEnvVars.js.map +1 -0
- package/dist/commonjs/extensions/core/syncSupabaseEnvVars.d.ts +12 -0
- package/dist/commonjs/extensions/core/syncSupabaseEnvVars.js +169 -0
- package/dist/commonjs/extensions/core/syncSupabaseEnvVars.js.map +1 -0
- package/dist/commonjs/extensions/core/vercelSyncEnvVars.d.ts +11 -0
- package/dist/commonjs/extensions/core/vercelSyncEnvVars.js +85 -0
- package/dist/commonjs/extensions/core/vercelSyncEnvVars.js.map +1 -0
- package/dist/commonjs/extensions/core.d.ts +8 -0
- package/dist/commonjs/extensions/core.js +25 -0
- package/dist/commonjs/extensions/core.js.map +1 -0
- package/dist/commonjs/extensions/index.d.ts +3 -0
- package/dist/commonjs/extensions/index.js +7 -0
- package/dist/commonjs/extensions/index.js.map +1 -0
- package/dist/commonjs/extensions/lightpanda.d.ts +7 -0
- package/dist/commonjs/extensions/lightpanda.js +30 -0
- package/dist/commonjs/extensions/lightpanda.js.map +1 -0
- package/dist/commonjs/extensions/playwright.d.ts +55 -0
- package/dist/commonjs/extensions/playwright.js +308 -0
- package/dist/commonjs/extensions/playwright.js.map +1 -0
- package/dist/commonjs/extensions/prisma.d.ts +192 -0
- package/dist/commonjs/extensions/prisma.js +560 -0
- package/dist/commonjs/extensions/prisma.js.map +1 -0
- package/dist/commonjs/extensions/puppeteer.d.ts +8 -0
- package/dist/commonjs/extensions/puppeteer.js +36 -0
- package/dist/commonjs/extensions/puppeteer.js.map +1 -0
- package/dist/commonjs/extensions/secureExec.d.ts +35 -0
- package/dist/commonjs/extensions/secureExec.js +139 -0
- package/dist/commonjs/extensions/secureExec.js.map +1 -0
- package/dist/commonjs/extensions/typescript.d.ts +2 -0
- package/dist/commonjs/extensions/typescript.js +62 -0
- package/dist/commonjs/extensions/typescript.js.map +1 -0
- package/dist/commonjs/imports/mlly-cjs.cjs.map +1 -0
- package/dist/commonjs/imports/mlly.d.ts +1 -0
- package/dist/commonjs/imports/mlly.js +7 -0
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +19 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/internal/additionalFiles.d.ts +6 -0
- package/dist/commonjs/internal/additionalFiles.js +63 -0
- package/dist/commonjs/internal/additionalFiles.js.map +1 -0
- package/dist/commonjs/internal.d.ts +1 -0
- package/dist/commonjs/internal.js +18 -0
- package/dist/commonjs/internal.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/version.d.ts +1 -0
- package/dist/commonjs/version.js +5 -0
- package/dist/commonjs/version.js.map +1 -0
- package/dist/esm/extensions/audioWaveform.d.ts +6 -0
- package/dist/esm/extensions/audioWaveform.js +42 -0
- package/dist/esm/extensions/audioWaveform.js.map +1 -0
- package/dist/esm/extensions/core/additionalFiles.d.ts +5 -0
- package/dist/esm/extensions/core/additionalFiles.js +10 -0
- package/dist/esm/extensions/core/additionalFiles.js.map +1 -0
- package/dist/esm/extensions/core/additionalPackages.d.ts +15 -0
- package/dist/esm/extensions/core/additionalPackages.js +74 -0
- package/dist/esm/extensions/core/additionalPackages.js.map +1 -0
- package/dist/esm/extensions/core/aptGet.d.ts +5 -0
- package/dist/esm/extensions/core/aptGet.js +20 -0
- package/dist/esm/extensions/core/aptGet.js.map +1 -0
- package/dist/esm/extensions/core/ffmpeg.d.ts +22 -0
- package/dist/esm/extensions/core/ffmpeg.js +65 -0
- package/dist/esm/extensions/core/ffmpeg.js.map +1 -0
- package/dist/esm/extensions/core/neonSyncEnvVars.d.ts +14 -0
- package/dist/esm/extensions/core/neonSyncEnvVars.js +198 -0
- package/dist/esm/extensions/core/neonSyncEnvVars.js.map +1 -0
- package/dist/esm/extensions/core/syncEnvVars.d.ts +18 -0
- package/dist/esm/extensions/core/syncEnvVars.js +147 -0
- package/dist/esm/extensions/core/syncEnvVars.js.map +1 -0
- package/dist/esm/extensions/core/syncSupabaseEnvVars.d.ts +12 -0
- package/dist/esm/extensions/core/syncSupabaseEnvVars.js +165 -0
- package/dist/esm/extensions/core/syncSupabaseEnvVars.js.map +1 -0
- package/dist/esm/extensions/core/vercelSyncEnvVars.d.ts +11 -0
- package/dist/esm/extensions/core/vercelSyncEnvVars.js +82 -0
- package/dist/esm/extensions/core/vercelSyncEnvVars.js.map +1 -0
- package/dist/esm/extensions/core.d.ts +8 -0
- package/dist/esm/extensions/core.js +9 -0
- package/dist/esm/extensions/core.js.map +1 -0
- package/dist/esm/extensions/index.d.ts +3 -0
- package/dist/esm/extensions/index.js +2 -0
- package/dist/esm/extensions/index.js.map +1 -0
- package/dist/esm/extensions/lightpanda.d.ts +7 -0
- package/dist/esm/extensions/lightpanda.js +26 -0
- package/dist/esm/extensions/lightpanda.js.map +1 -0
- package/dist/esm/extensions/playwright.d.ts +55 -0
- package/dist/esm/extensions/playwright.js +305 -0
- package/dist/esm/extensions/playwright.js.map +1 -0
- package/dist/esm/extensions/prisma.d.ts +192 -0
- package/dist/esm/extensions/prisma.js +550 -0
- package/dist/esm/extensions/prisma.js.map +1 -0
- package/dist/esm/extensions/puppeteer.d.ts +8 -0
- package/dist/esm/extensions/puppeteer.js +33 -0
- package/dist/esm/extensions/puppeteer.js.map +1 -0
- package/dist/esm/extensions/secureExec.d.ts +35 -0
- package/dist/esm/extensions/secureExec.js +136 -0
- package/dist/esm/extensions/secureExec.js.map +1 -0
- package/dist/esm/extensions/typescript.d.ts +2 -0
- package/dist/esm/extensions/typescript.js +56 -0
- package/dist/esm/extensions/typescript.js.map +1 -0
- package/dist/esm/imports/mlly.d.ts +2 -0
- package/dist/esm/imports/mlly.js +5 -0
- package/dist/esm/imports/mlly.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/additionalFiles.d.ts +6 -0
- package/dist/esm/internal/additionalFiles.js +60 -0
- package/dist/esm/internal/additionalFiles.js.map +1 -0
- package/dist/esm/internal.d.ts +1 -0
- package/dist/esm/internal.js +2 -0
- package/dist/esm/internal.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/version.d.ts +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +230 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BuildExtension } from "@trigger.dev/core/v3/build";
|
|
2
|
+
export type SecureExecOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* Packages available inside the sandbox at runtime.
|
|
5
|
+
*
|
|
6
|
+
* These are `require()`'d inside the V8 isolate at runtime — the bundler
|
|
7
|
+
* never sees them statically. They are marked external and installed as
|
|
8
|
+
* deploy dependencies.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* secureExec({ packages: ["jszip", "lodash"] })
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
packages?: string[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Build extension for [secure-exec](https://secureexec.dev) — run untrusted
|
|
19
|
+
* JavaScript/TypeScript in V8 isolates with configurable permissions.
|
|
20
|
+
*
|
|
21
|
+
* Handles the esbuild workarounds needed for secure-exec's runtime
|
|
22
|
+
* `require.resolve` calls, native binaries, and module-scope resolution.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { secureExec } from "@trigger.dev/build/extensions/secureExec";
|
|
27
|
+
*
|
|
28
|
+
* export default defineConfig({
|
|
29
|
+
* build: {
|
|
30
|
+
* extensions: [secureExec()],
|
|
31
|
+
* },
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function secureExec(options?: SecureExecOptions): BuildExtension;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.secureExec = secureExec;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_module_1 = require("node:module");
|
|
7
|
+
const pkg_types_1 = require("pkg-types");
|
|
8
|
+
/**
|
|
9
|
+
* Build extension for [secure-exec](https://secureexec.dev) — run untrusted
|
|
10
|
+
* JavaScript/TypeScript in V8 isolates with configurable permissions.
|
|
11
|
+
*
|
|
12
|
+
* Handles the esbuild workarounds needed for secure-exec's runtime
|
|
13
|
+
* `require.resolve` calls, native binaries, and module-scope resolution.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { secureExec } from "@trigger.dev/build/extensions/secureExec";
|
|
18
|
+
*
|
|
19
|
+
* export default defineConfig({
|
|
20
|
+
* build: {
|
|
21
|
+
* extensions: [secureExec()],
|
|
22
|
+
* },
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
function secureExec(options) {
|
|
27
|
+
return new SecureExecExtension(options ?? {});
|
|
28
|
+
}
|
|
29
|
+
class SecureExecExtension {
|
|
30
|
+
name = "SecureExecExtension";
|
|
31
|
+
userPackages;
|
|
32
|
+
constructor(options) {
|
|
33
|
+
this.userPackages = options.packages ?? [];
|
|
34
|
+
}
|
|
35
|
+
externalsForTarget(_target) {
|
|
36
|
+
return [
|
|
37
|
+
// esbuild must not be bundled — it locates its native binary via a
|
|
38
|
+
// relative path from its JS API entry point. secure-exec uses esbuild
|
|
39
|
+
// at runtime to bundle polyfills for sandbox code.
|
|
40
|
+
"esbuild",
|
|
41
|
+
// User-specified packages are require()'d inside the V8 sandbox at
|
|
42
|
+
// runtime — the bundler never sees them statically.
|
|
43
|
+
...this.userPackages,
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
onBuildStart(context) {
|
|
47
|
+
context.logger.debug(`Adding ${this.name} esbuild plugins`);
|
|
48
|
+
// Plugin 1: Replace node-stdlib-browser with pre-resolved paths.
|
|
49
|
+
//
|
|
50
|
+
// Trigger's ESM shim anchors require.resolve() to the chunk path, so
|
|
51
|
+
// node-stdlib-browser's runtime require.resolve("./mock/empty.js") breaks.
|
|
52
|
+
// Fix: load the real node-stdlib-browser at build time (where require.resolve
|
|
53
|
+
// works), capture the resolved path map, and inline it as a static export.
|
|
54
|
+
const workingDir = context.workingDir;
|
|
55
|
+
context.registerPlugin({
|
|
56
|
+
name: "secure-exec-stdlib-resolver",
|
|
57
|
+
setup(build) {
|
|
58
|
+
build.onResolve({ filter: /^node-stdlib-browser$/ }, () => ({
|
|
59
|
+
path: "node-stdlib-browser",
|
|
60
|
+
namespace: "secure-exec-nsb-resolved",
|
|
61
|
+
}));
|
|
62
|
+
build.onLoad({ filter: /.*/, namespace: "secure-exec-nsb-resolved" }, () => {
|
|
63
|
+
const buildRequire = (0, node_module_1.createRequire)((0, node_path_1.join)(workingDir, "package.json"));
|
|
64
|
+
const resolved = buildRequire("node-stdlib-browser");
|
|
65
|
+
return {
|
|
66
|
+
contents: `export default ${JSON.stringify(resolved)};`,
|
|
67
|
+
loader: "js",
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
// Plugin 2: Inline bridge.js at build time.
|
|
73
|
+
//
|
|
74
|
+
// bridge-loader.js in @secure-exec/node(js) uses __dirname and
|
|
75
|
+
// require.resolve("@secure-exec/core") at module scope to locate
|
|
76
|
+
// dist/bridge.js on disk. This fails in Trigger's bundled output.
|
|
77
|
+
// Fix: read bridge.js content at build time and inline it as a
|
|
78
|
+
// string literal so no runtime filesystem resolution is needed.
|
|
79
|
+
//
|
|
80
|
+
context.registerPlugin({
|
|
81
|
+
name: "secure-exec-bridge-inline",
|
|
82
|
+
setup(build) {
|
|
83
|
+
build.onLoad({ filter: /[\\/]@secure-exec[\\/]node[\\/]dist[\\/]bridge-loader\.js$/ }, (args) => {
|
|
84
|
+
try {
|
|
85
|
+
const buildRequire = (0, node_module_1.createRequire)(args.path);
|
|
86
|
+
const coreEntry = buildRequire.resolve("@secure-exec/core");
|
|
87
|
+
const coreRoot = (0, node_path_1.resolve)((0, node_path_1.dirname)(coreEntry), "..");
|
|
88
|
+
const bridgeCode = (0, node_fs_1.readFileSync)((0, node_path_1.join)(coreRoot, "dist", "bridge.js"), "utf8");
|
|
89
|
+
return {
|
|
90
|
+
contents: [
|
|
91
|
+
`import { getIsolateRuntimeSource } from "@secure-exec/core";`,
|
|
92
|
+
`const bridgeCodeCache = ${JSON.stringify(bridgeCode)};`,
|
|
93
|
+
`export function getRawBridgeCode() { return bridgeCodeCache; }`,
|
|
94
|
+
`export function getBridgeAttachCode() { return getIsolateRuntimeSource("bridgeAttach"); }`,
|
|
95
|
+
].join("\n"),
|
|
96
|
+
loader: "js",
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// If we can't inline the bridge, let the normal loader handle it.
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
async onBuildComplete(context, _manifest) {
|
|
108
|
+
if (context.target === "dev") {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
context.logger.debug(`Adding ${this.name} deploy dependencies`);
|
|
112
|
+
const dependencies = {};
|
|
113
|
+
// Resolve versions for user-specified sandbox packages
|
|
114
|
+
for (const pkg of this.userPackages) {
|
|
115
|
+
try {
|
|
116
|
+
const modulePath = await context.resolvePath(pkg);
|
|
117
|
+
if (!modulePath) {
|
|
118
|
+
dependencies[pkg] = "latest";
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const packageJSON = await (0, pkg_types_1.readPackageJSON)((0, node_path_1.dirname)(modulePath));
|
|
122
|
+
dependencies[pkg] = packageJSON.version ?? "latest";
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
context.logger.warn(`Could not resolve version for sandbox package ${pkg}, defaulting to latest`);
|
|
126
|
+
dependencies[pkg] = "latest";
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
context.addLayer({
|
|
130
|
+
id: "secureExec",
|
|
131
|
+
dependencies,
|
|
132
|
+
image: {
|
|
133
|
+
// isolated-vm requires native compilation tools
|
|
134
|
+
pkgs: ["python3", "make", "g++"],
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=secureExec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secureExec.js","sourceRoot":"","sources":["../../../src/extensions/secureExec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.emitDecoratorMetadata = emitDecoratorMetadata;
|
|
7
|
+
const promises_1 = require("node:fs/promises");
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
const { transpileModule, ModuleKind } = typescript_1.default;
|
|
10
|
+
const decoratorMatcher = new RegExp(/((?<![(\s]\s*['"])@\w[.[\]\w\d]*\s*(?![;])[((?=\s)])/);
|
|
11
|
+
function emitDecoratorMetadata() {
|
|
12
|
+
return {
|
|
13
|
+
name: "emitDecoratorMetadata",
|
|
14
|
+
onBuildStart(context) {
|
|
15
|
+
context.registerPlugin({
|
|
16
|
+
name: "emitDecoratorMetadata",
|
|
17
|
+
async setup(build) {
|
|
18
|
+
const { parseNative, TSConfckCache } = await import("tsconfck");
|
|
19
|
+
const cache = new TSConfckCache();
|
|
20
|
+
build.onLoad({ filter: /\.ts$/ }, async (args) => {
|
|
21
|
+
context.logger.debug("emitDecoratorMetadata onLoad", { args });
|
|
22
|
+
const { tsconfigFile, tsconfig } = await parseNative(args.path, {
|
|
23
|
+
ignoreNodeModules: true,
|
|
24
|
+
cache,
|
|
25
|
+
});
|
|
26
|
+
context.logger.debug("emitDecoratorMetadata parsed native tsconfig", {
|
|
27
|
+
tsconfig,
|
|
28
|
+
tsconfigFile,
|
|
29
|
+
args,
|
|
30
|
+
});
|
|
31
|
+
if (tsconfig.compilerOptions?.emitDecoratorMetadata !== true) {
|
|
32
|
+
context.logger.debug("emitDecoratorMetadata skipping", {
|
|
33
|
+
args,
|
|
34
|
+
tsconfig,
|
|
35
|
+
});
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
const ts = await (0, promises_1.readFile)(args.path, "utf8");
|
|
39
|
+
if (!ts)
|
|
40
|
+
return undefined;
|
|
41
|
+
// Find the decorator and if there isn't one, return out
|
|
42
|
+
if (!decoratorMatcher.test(ts)) {
|
|
43
|
+
context.logger.debug("emitDecoratorMetadata skipping, no decorators found", {
|
|
44
|
+
args,
|
|
45
|
+
});
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
const program = transpileModule(ts, {
|
|
49
|
+
fileName: args.path,
|
|
50
|
+
compilerOptions: {
|
|
51
|
+
...tsconfig.compilerOptions,
|
|
52
|
+
module: ModuleKind.ES2022,
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
return { contents: program.outputText };
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=typescript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/extensions/typescript.ts"],"names":[],"mappings":";;;;;AAQA,sDA4DC;AAnED,+CAA4C;AAC5C,4DAAuC;AAEvC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,oBAAa,CAAC;AAEtD,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,sDAAsD,CAAC,CAAC;AAE5F,SAAgB,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,YAAY,CAAC,OAAO;YAClB,OAAO,CAAC,cAAc,CAAC;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,CAAC,KAAK,CAAC,KAAK;oBACf,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBAChE,MAAM,KAAK,GAAG,IAAI,aAAa,EAAO,CAAC;oBAEvC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;wBAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAE/D,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE;4BAC9D,iBAAiB,EAAE,IAAI;4BACvB,KAAK;yBACN,CAAC,CAAC;wBAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE;4BACnE,QAAQ;4BACR,YAAY;4BACZ,IAAI;yBACL,CAAC,CAAC;wBAEH,IAAI,QAAQ,CAAC,eAAe,EAAE,qBAAqB,KAAK,IAAI,EAAE,CAAC;4BAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gCACrD,IAAI;gCACJ,QAAQ;6BACT,CAAC,CAAC;4BAEH,OAAO,SAAS,CAAC;wBACnB,CAAC;wBAED,MAAM,EAAE,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAE7C,IAAI,CAAC,EAAE;4BAAE,OAAO,SAAS,CAAC;wBAE1B,wDAAwD;wBACxD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE;gCAC1E,IAAI;6BACL,CAAC,CAAC;4BAEH,OAAO,SAAS,CAAC;wBACnB,CAAC;wBAED,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,EAAE;4BAClC,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,eAAe,EAAE;gCACf,GAAG,QAAQ,CAAC,eAAe;gCAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;6BAC1B;yBACF,CAAC,CAAC;wBAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC1C,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mlly-cjs.cjs","sourceRoot":"","sources":["../../../src/imports/mlly-cjs.cts"],"names":[],"mappings":";;AAAA,aAAa;AACb,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE5C,aAAa;AACb,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./extensions/index.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Barrel no more
|
|
18
|
+
__exportStar(require("./extensions/index.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,wDAAsC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BuildManifest } from "@trigger.dev/core/v3";
|
|
2
|
+
import { BuildContext } from "@trigger.dev/core/v3/build";
|
|
3
|
+
export type AdditionalFilesOptions = {
|
|
4
|
+
files: string[];
|
|
5
|
+
};
|
|
6
|
+
export declare function addAdditionalFilesToBuild(source: string, options: AdditionalFilesOptions, context: BuildContext, manifest: BuildManifest): Promise<void>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addAdditionalFilesToBuild = addAdditionalFilesToBuild;
|
|
4
|
+
const promises_1 = require("node:fs/promises");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const tinyglobby_1 = require("tinyglobby");
|
|
7
|
+
async function addAdditionalFilesToBuild(source, options, context, manifest) {
|
|
8
|
+
// Copy any static assets to the destination
|
|
9
|
+
const staticAssets = await findStaticAssetFiles(options.files ?? [], manifest.outputPath, {
|
|
10
|
+
cwd: context.workingDir,
|
|
11
|
+
});
|
|
12
|
+
for (const { assets, matcher } of staticAssets) {
|
|
13
|
+
if (assets.length === 0) {
|
|
14
|
+
context.logger.warn(`[${source}] No files found for matcher`, matcher);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
context.logger.debug(`[${source}] Found ${assets.length} files for matcher`, matcher);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
await copyStaticAssets(staticAssets, source, context);
|
|
21
|
+
}
|
|
22
|
+
async function findStaticAssetFiles(matchers, destinationPath, options) {
|
|
23
|
+
const result = [];
|
|
24
|
+
for (const matcher of matchers) {
|
|
25
|
+
const assets = await findStaticAssetsForMatcher(matcher, destinationPath, options);
|
|
26
|
+
result.push({ matcher, assets });
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
async function findStaticAssetsForMatcher(matcher, destinationPath, options) {
|
|
31
|
+
const result = [];
|
|
32
|
+
const files = await (0, tinyglobby_1.glob)({
|
|
33
|
+
patterns: [matcher],
|
|
34
|
+
cwd: options?.cwd,
|
|
35
|
+
ignore: options?.ignore ?? [],
|
|
36
|
+
onlyFiles: true,
|
|
37
|
+
absolute: true,
|
|
38
|
+
});
|
|
39
|
+
let matches = 0;
|
|
40
|
+
for (const file of files) {
|
|
41
|
+
matches++;
|
|
42
|
+
const pathInsideDestinationDir = (0, node_path_1.relative)(options?.cwd ?? process.cwd(), file)
|
|
43
|
+
.split(node_path_1.posix.sep)
|
|
44
|
+
.filter((p) => p !== "..")
|
|
45
|
+
.join(node_path_1.posix.sep);
|
|
46
|
+
const relativeDestinationPath = (0, node_path_1.join)(destinationPath, pathInsideDestinationDir);
|
|
47
|
+
result.push({
|
|
48
|
+
source: file,
|
|
49
|
+
destination: relativeDestinationPath,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
async function copyStaticAssets(staticAssetFiles, sourceName, context) {
|
|
55
|
+
for (const { assets } of staticAssetFiles) {
|
|
56
|
+
for (const { source, destination } of assets) {
|
|
57
|
+
await (0, promises_1.mkdir)((0, node_path_1.dirname)(destination), { recursive: true });
|
|
58
|
+
context.logger.debug(`[${sourceName}] Copying ${source} to ${destination}`);
|
|
59
|
+
await (0, promises_1.copyFile)(source, destination);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=additionalFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"additionalFiles.js","sourceRoot":"","sources":["../../../src/internal/additionalFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./internal/additionalFiles.js";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./internal/additionalFiles.js"), exports);
|
|
18
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VERSION = "0.0.0";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const AUDIOWAVEFORM_VERSION = "1.10.1";
|
|
2
|
+
const AUDIOWAVEFORM_CHECKSUM = "sha256:00b41ea4d6e7a5b4affcfe4ac99951ec89da81a8cba40af19e9b98c3a8f9b4b8";
|
|
3
|
+
export function audioWaveform(options = {}) {
|
|
4
|
+
return new AudioWaveformExtension(options);
|
|
5
|
+
}
|
|
6
|
+
class AudioWaveformExtension {
|
|
7
|
+
options;
|
|
8
|
+
name = "AudioWaveformExtension";
|
|
9
|
+
constructor(options = {}) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
async onBuildComplete(context, manifest) {
|
|
13
|
+
if (context.target === "dev") {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const opts = this.options.version
|
|
17
|
+
? {
|
|
18
|
+
version: this.options.version,
|
|
19
|
+
checksum: this.options.checksum,
|
|
20
|
+
}
|
|
21
|
+
: {
|
|
22
|
+
version: AUDIOWAVEFORM_VERSION,
|
|
23
|
+
checksum: AUDIOWAVEFORM_CHECKSUM,
|
|
24
|
+
};
|
|
25
|
+
context.logger.debug("Adding audiowaveform to the build", {
|
|
26
|
+
...opts,
|
|
27
|
+
});
|
|
28
|
+
const instructions = [
|
|
29
|
+
`ADD ${opts.checksum ? `--checksum=${opts.checksum}` : ""} https://github.com/bbc/audiowaveform/releases/download/${opts.version}/audiowaveform_${opts.version}-1-12_amd64.deb .`,
|
|
30
|
+
`RUN dpkg -i audiowaveform_${opts.version}-1-12_amd64.deb || true`,
|
|
31
|
+
`RUN rm audiowaveform*.deb`,
|
|
32
|
+
];
|
|
33
|
+
context.addLayer({
|
|
34
|
+
id: "audiowaveform",
|
|
35
|
+
image: {
|
|
36
|
+
pkgs: ["sox"],
|
|
37
|
+
instructions,
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=audioWaveform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioWaveform.js","sourceRoot":"","sources":["../../../src/extensions/audioWaveform.ts"],"names":[],"mappings":"AAQA,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AACvC,MAAM,sBAAsB,GAC1B,yEAAyE,CAAC;AAE5E,MAAM,UAAU,aAAa,CAAC,UAAgC,EAAE;IAC9D,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,sBAAsB;IAGN;IAFJ,IAAI,GAAG,wBAAwB,CAAC;IAEhD,YAAoB,UAAgC,EAAE;QAAlC,YAAO,GAAP,OAAO,CAA2B;IAAG,CAAC;IAE1D,KAAK,CAAC,eAAe,CAAC,OAAqB,EAAE,QAAuB;QAClE,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YAC/B,CAAC,CAAC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;aAChC;YACH,CAAC,CAAC;gBACE,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,sBAAsB;aACjC,CAAC;QAEN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;YACxD,GAAG,IAAI;SACR,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG;YACnB,OACE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAClD,2DAA2D,IAAI,CAAC,OAAO,kBACrE,IAAI,CAAC,OACP,mBAAmB;YACnB,6BAA6B,IAAI,CAAC,OAAO,yBAAyB;YAClE,2BAA2B;SAC5B,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC;YACf,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,KAAK,CAAC;gBACb,YAAY;aACb;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { addAdditionalFilesToBuild } from "../../internal/additionalFiles.js";
|
|
2
|
+
export function additionalFiles(options) {
|
|
3
|
+
return {
|
|
4
|
+
name: "additionalFiles",
|
|
5
|
+
async onBuildComplete(context, manifest) {
|
|
6
|
+
await addAdditionalFilesToBuild("additionalFiles", options, context, manifest);
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=additionalFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"additionalFiles.js","sourceRoot":"","sources":["../../../../src/extensions/core/additionalFiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAM9E,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ;YACrC,MAAM,yBAAyB,CAAC,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BuildExtension } from "@trigger.dev/core/v3/build";
|
|
2
|
+
export type AdditionalPackagesOptions = {
|
|
3
|
+
packages: string[];
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Add additional packages to the build when deploying, useful when you are using the bin command of a package by shelling out to it.
|
|
7
|
+
* You can pass the name of the package, and it's version will be resolved from the locally installed version. If the version cannot be automatically resolved, it will resolve to the latest version, or you can specify the version using `@` syntax.
|
|
8
|
+
* @example
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* additionalPackages({
|
|
12
|
+
* packages: ["wrangler", "prisma@3.0.0"]
|
|
13
|
+
* });
|
|
14
|
+
*/
|
|
15
|
+
export declare function additionalPackages(options: AdditionalPackagesOptions): BuildExtension;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { dirname } from "node:path";
|
|
2
|
+
import { readPackageJSON } from "pkg-types";
|
|
3
|
+
/**
|
|
4
|
+
* Add additional packages to the build when deploying, useful when you are using the bin command of a package by shelling out to it.
|
|
5
|
+
* You can pass the name of the package, and it's version will be resolved from the locally installed version. If the version cannot be automatically resolved, it will resolve to the latest version, or you can specify the version using `@` syntax.
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* additionalPackages({
|
|
10
|
+
* packages: ["wrangler", "prisma@3.0.0"]
|
|
11
|
+
* });
|
|
12
|
+
*/
|
|
13
|
+
export function additionalPackages(options) {
|
|
14
|
+
return {
|
|
15
|
+
name: "additionalPackages",
|
|
16
|
+
async onBuildStart(context) {
|
|
17
|
+
if (context.target !== "deploy") {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const dependencies = {};
|
|
21
|
+
for (const pkg of options.packages) {
|
|
22
|
+
const { name, version } = parsePackageName(pkg);
|
|
23
|
+
if (version) {
|
|
24
|
+
dependencies[name] = version;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
try {
|
|
28
|
+
// Lets try and resolve the version from the local package.json
|
|
29
|
+
const modulePath = await context.resolvePath(name);
|
|
30
|
+
if (!modulePath) {
|
|
31
|
+
dependencies[name] = "latest";
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
context.logger.debug("[additionalPackages] Resolved module path", { modulePath });
|
|
35
|
+
const packageJSON = await readPackageJSON(dirname(modulePath));
|
|
36
|
+
if (packageJSON.version) {
|
|
37
|
+
dependencies[name] = packageJSON.version;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
context.logger.warn(`Could not resolve version for package ${name}, defaulting to latest`);
|
|
41
|
+
dependencies[name] = "latest";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.warn(`Could not resolve version for package ${name}, defaulting to latest`, error);
|
|
46
|
+
dependencies[name] = "latest";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
context.addLayer({
|
|
51
|
+
id: "additionalPackages",
|
|
52
|
+
dependencies,
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// This needs to handle packages like @taskhero/config@1.0.0, wrangler, wrangler@1.0.0, @taskhero/config, etc.
|
|
58
|
+
function parsePackageName(pkg) {
|
|
59
|
+
// Regular expression to match package names and versions
|
|
60
|
+
const regex = /^(@?[a-z0-9-~][a-z0-9-._~]*\/)?([a-z0-9-~][a-z0-9-._~]*)(@(.+))?$/i;
|
|
61
|
+
const match = pkg.match(regex);
|
|
62
|
+
if (!match) {
|
|
63
|
+
throw new Error(`Invalid package name: ${pkg}`);
|
|
64
|
+
}
|
|
65
|
+
const [, scope, packageName, , version] = match;
|
|
66
|
+
if (!packageName) {
|
|
67
|
+
throw new Error(`Invalid package name: ${pkg}`);
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
name: scope ? `${scope}${packageName}` : packageName,
|
|
71
|
+
version,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=additionalPackages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"additionalPackages.js","sourceRoot":"","sources":["../../../../src/extensions/core/additionalPackages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAM5C;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAkC;IACnE,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,KAAK,CAAC,YAAY,CAAC,OAAO;YACxB,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAA2B,EAAE,CAAC;YAEhD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAEhD,IAAI,OAAO,EAAE,CAAC;oBACZ,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,+DAA+D;wBAC/D,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAEnD,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;4BAC9B,SAAS;wBACX,CAAC;wBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;wBAElF,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;wBAE/D,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;4BACxB,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;wBAC3C,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,yCAAyC,IAAI,wBAAwB,CACtE,CAAC;4BAEF,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;wBAChC,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CACV,yCAAyC,IAAI,wBAAwB,EACrE,KAAK,CACN,CAAC;wBAEF,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;oBAChC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC;gBACf,EAAE,EAAE,oBAAoB;gBACxB,YAAY;aACb,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,SAAS,gBAAgB,CAAC,GAAW;IAInC,yDAAyD;IACzD,MAAM,KAAK,GAAG,oEAAoE,CAAC;IACnF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,AAAD,EAAG,OAAO,CAAC,GAAG,KAAK,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;QACpD,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function aptGet(options) {
|
|
2
|
+
return {
|
|
3
|
+
name: "aptGet",
|
|
4
|
+
onBuildComplete(context) {
|
|
5
|
+
if (context.target === "dev") {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
context.logger.debug("Adding apt-get layer", {
|
|
9
|
+
pkgs: options.packages,
|
|
10
|
+
});
|
|
11
|
+
context.addLayer({
|
|
12
|
+
id: "apt-get",
|
|
13
|
+
image: {
|
|
14
|
+
pkgs: options.packages,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=aptGet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aptGet.js","sourceRoot":"","sources":["../../../../src/extensions/core/aptGet.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,MAAM,CAAC,OAAsB;IAC3C,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,eAAe,CAAC,OAAO;YACrB,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBAC3C,IAAI,EAAE,OAAO,CAAC,QAAQ;aACvB,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,CAAC;gBACf,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO,CAAC,QAAQ;iBACvB;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|