@reliverse/dler 1.7.66 → 1.7.67
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/README.md
CHANGED
|
@@ -904,6 +904,31 @@ bun add @reliverse/dler-sdk
|
|
|
904
904
|
|
|
905
905
|
**usage example**: [@reliverse/rse](https://github.com/reliverse/rse-website-builder) leverages this sdk to extend its functionality.
|
|
906
906
|
|
|
907
|
+
### 17. `update`
|
|
908
|
+
|
|
909
|
+
updates your project's dependencies to the latest version.
|
|
910
|
+
|
|
911
|
+
updates not only `dependencies`/`devDependencies`/`peerDependencies`/`optionalDependencies`, but also [monorepo catalogs](https://bun.sh/docs/install/catalogs).
|
|
912
|
+
|
|
913
|
+
```bash
|
|
914
|
+
bun dler update
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
**params:**
|
|
918
|
+
|
|
919
|
+
- `--with-check-script` (boolean) — runs `bun check` after updating (exclusive for bun environment at the moment)
|
|
920
|
+
|
|
921
|
+
**example package.json:**
|
|
922
|
+
|
|
923
|
+
```json
|
|
924
|
+
{
|
|
925
|
+
"scripts": {
|
|
926
|
+
"latest": "bun dler update --with-check-script",
|
|
927
|
+
"check": "tsc --noEmit && eslint --cache --fix . && biome check --fix --unsafe . && knip"
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
```
|
|
931
|
+
|
|
907
932
|
## related
|
|
908
933
|
|
|
909
934
|
special thanks to the project that inspired `@reliverse/dler`:
|
package/bin/app/update/cmd.d.ts
CHANGED
|
@@ -17,6 +17,21 @@ declare const _default: import("@reliverse/rempts").Command<{
|
|
|
17
17
|
description: string;
|
|
18
18
|
default: false;
|
|
19
19
|
};
|
|
20
|
+
"peer-only": {
|
|
21
|
+
type: "boolean";
|
|
22
|
+
description: string;
|
|
23
|
+
default: false;
|
|
24
|
+
};
|
|
25
|
+
"optional-only": {
|
|
26
|
+
type: "boolean";
|
|
27
|
+
description: string;
|
|
28
|
+
default: false;
|
|
29
|
+
};
|
|
30
|
+
"catalogs-only": {
|
|
31
|
+
type: "boolean";
|
|
32
|
+
description: string;
|
|
33
|
+
default: false;
|
|
34
|
+
};
|
|
20
35
|
"dry-run": {
|
|
21
36
|
type: "boolean";
|
|
22
37
|
description: string;
|
|
@@ -27,5 +42,10 @@ declare const _default: import("@reliverse/rempts").Command<{
|
|
|
27
42
|
description: string;
|
|
28
43
|
default: number;
|
|
29
44
|
};
|
|
45
|
+
"with-check-script": {
|
|
46
|
+
type: "boolean";
|
|
47
|
+
description: string;
|
|
48
|
+
default: false;
|
|
49
|
+
};
|
|
30
50
|
}>;
|
|
31
51
|
export default _default;
|
package/bin/app/update/cmd.js
CHANGED
|
@@ -13,9 +13,6 @@ function isNpmAlias(versionSpec) {
|
|
|
13
13
|
function isWorkspaceDependency(versionSpec) {
|
|
14
14
|
return versionSpec.startsWith("workspace:");
|
|
15
15
|
}
|
|
16
|
-
function isCatalogDependency(versionSpec) {
|
|
17
|
-
return versionSpec.startsWith("catalog:");
|
|
18
|
-
}
|
|
19
16
|
function isSemverCompatible(currentVersionRange, latestVersion2) {
|
|
20
17
|
try {
|
|
21
18
|
if (isNpmAlias(currentVersionRange)) {
|
|
@@ -24,9 +21,6 @@ function isSemverCompatible(currentVersionRange, latestVersion2) {
|
|
|
24
21
|
if (isWorkspaceDependency(currentVersionRange)) {
|
|
25
22
|
return false;
|
|
26
23
|
}
|
|
27
|
-
if (isCatalogDependency(currentVersionRange)) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
24
|
if (!currentVersionRange.startsWith("^") && !currentVersionRange.startsWith("~")) {
|
|
31
25
|
return false;
|
|
32
26
|
}
|
|
@@ -81,6 +75,21 @@ export default defineCommand({
|
|
|
81
75
|
description: "Update only dependencies (production)",
|
|
82
76
|
default: false
|
|
83
77
|
},
|
|
78
|
+
"peer-only": {
|
|
79
|
+
type: "boolean",
|
|
80
|
+
description: "Update only peerDependencies",
|
|
81
|
+
default: false
|
|
82
|
+
},
|
|
83
|
+
"optional-only": {
|
|
84
|
+
type: "boolean",
|
|
85
|
+
description: "Update only optionalDependencies",
|
|
86
|
+
default: false
|
|
87
|
+
},
|
|
88
|
+
"catalogs-only": {
|
|
89
|
+
type: "boolean",
|
|
90
|
+
description: "Update only catalog dependencies",
|
|
91
|
+
default: false
|
|
92
|
+
},
|
|
84
93
|
"dry-run": {
|
|
85
94
|
type: "boolean",
|
|
86
95
|
description: "Show what would be updated without making changes",
|
|
@@ -90,6 +99,11 @@ export default defineCommand({
|
|
|
90
99
|
type: "number",
|
|
91
100
|
description: "Number of concurrent version checks",
|
|
92
101
|
default: 5
|
|
102
|
+
},
|
|
103
|
+
"with-check-script": {
|
|
104
|
+
type: "boolean",
|
|
105
|
+
description: "Run `bun check` after updating (exclusive for bun environment at the moment)",
|
|
106
|
+
default: false
|
|
93
107
|
}
|
|
94
108
|
}),
|
|
95
109
|
async run({ args }) {
|
|
@@ -103,17 +117,87 @@ export default defineCommand({
|
|
|
103
117
|
const packageJson = await readPackageJSON();
|
|
104
118
|
const dependencies = packageJson.dependencies || {};
|
|
105
119
|
const devDependencies = packageJson.devDependencies || {};
|
|
120
|
+
const peerDependencies = packageJson.peerDependencies || {};
|
|
121
|
+
const optionalDependencies = packageJson.optionalDependencies || {};
|
|
122
|
+
const workspaces = packageJson.workspaces || {};
|
|
123
|
+
const catalog = workspaces.catalog || packageJson.catalog || {};
|
|
124
|
+
const catalogs = workspaces.catalogs || packageJson.catalogs || {};
|
|
106
125
|
let targetDeps = {};
|
|
107
|
-
|
|
108
|
-
|
|
126
|
+
const depSources = {};
|
|
127
|
+
const exclusiveFlags = [
|
|
128
|
+
args["dev-only"],
|
|
129
|
+
args["prod-only"],
|
|
130
|
+
args["peer-only"],
|
|
131
|
+
args["optional-only"],
|
|
132
|
+
args["catalogs-only"]
|
|
133
|
+
].filter(Boolean);
|
|
134
|
+
if (exclusiveFlags.length > 1) {
|
|
135
|
+
relinka(
|
|
136
|
+
"error",
|
|
137
|
+
"Cannot specify multiple exclusive flags (--dev-only, --prod-only, --peer-only, --optional-only, --catalogs-only)"
|
|
138
|
+
);
|
|
109
139
|
return process.exit(1);
|
|
110
140
|
}
|
|
111
141
|
if (args["dev-only"]) {
|
|
112
142
|
targetDeps = { ...devDependencies };
|
|
143
|
+
Object.keys(devDependencies).forEach((dep) => {
|
|
144
|
+
depSources[dep] = "devDependencies";
|
|
145
|
+
});
|
|
113
146
|
} else if (args["prod-only"]) {
|
|
114
147
|
targetDeps = { ...dependencies };
|
|
148
|
+
Object.keys(dependencies).forEach((dep) => {
|
|
149
|
+
depSources[dep] = "dependencies";
|
|
150
|
+
});
|
|
151
|
+
} else if (args["peer-only"]) {
|
|
152
|
+
targetDeps = { ...peerDependencies };
|
|
153
|
+
Object.keys(peerDependencies).forEach((dep) => {
|
|
154
|
+
depSources[dep] = "peerDependencies";
|
|
155
|
+
});
|
|
156
|
+
} else if (args["optional-only"]) {
|
|
157
|
+
targetDeps = { ...optionalDependencies };
|
|
158
|
+
Object.keys(optionalDependencies).forEach((dep) => {
|
|
159
|
+
depSources[dep] = "optionalDependencies";
|
|
160
|
+
});
|
|
161
|
+
} else if (args["catalogs-only"]) {
|
|
162
|
+
Object.keys(catalog).forEach((dep) => {
|
|
163
|
+
targetDeps[dep] = catalog[dep];
|
|
164
|
+
depSources[dep] = "catalog";
|
|
165
|
+
});
|
|
166
|
+
Object.keys(catalogs).forEach((catalogName) => {
|
|
167
|
+
Object.keys(catalogs[catalogName]).forEach((dep) => {
|
|
168
|
+
targetDeps[dep] = catalogs[catalogName][dep];
|
|
169
|
+
depSources[dep] = `catalogs.${catalogName}`;
|
|
170
|
+
});
|
|
171
|
+
});
|
|
115
172
|
} else {
|
|
116
|
-
targetDeps = {
|
|
173
|
+
targetDeps = {
|
|
174
|
+
...dependencies,
|
|
175
|
+
...devDependencies,
|
|
176
|
+
...peerDependencies,
|
|
177
|
+
...optionalDependencies
|
|
178
|
+
};
|
|
179
|
+
Object.keys(dependencies).forEach((dep) => {
|
|
180
|
+
depSources[dep] = "dependencies";
|
|
181
|
+
});
|
|
182
|
+
Object.keys(devDependencies).forEach((dep) => {
|
|
183
|
+
depSources[dep] = "devDependencies";
|
|
184
|
+
});
|
|
185
|
+
Object.keys(peerDependencies).forEach((dep) => {
|
|
186
|
+
depSources[dep] = "peerDependencies";
|
|
187
|
+
});
|
|
188
|
+
Object.keys(optionalDependencies).forEach((dep) => {
|
|
189
|
+
depSources[dep] = "optionalDependencies";
|
|
190
|
+
});
|
|
191
|
+
Object.keys(catalog).forEach((dep) => {
|
|
192
|
+
targetDeps[dep] = catalog[dep];
|
|
193
|
+
depSources[dep] = "catalog";
|
|
194
|
+
});
|
|
195
|
+
Object.keys(catalogs).forEach((catalogName) => {
|
|
196
|
+
Object.keys(catalogs[catalogName]).forEach((dep) => {
|
|
197
|
+
targetDeps[dep] = catalogs[catalogName][dep];
|
|
198
|
+
depSources[dep] = `catalogs.${catalogName}`;
|
|
199
|
+
});
|
|
200
|
+
});
|
|
117
201
|
}
|
|
118
202
|
const depsToUpdate = Object.keys(targetDeps);
|
|
119
203
|
let filteredDeps = [];
|
|
@@ -150,7 +234,8 @@ export default defineCommand({
|
|
|
150
234
|
latestVersion: "unknown",
|
|
151
235
|
updated: false,
|
|
152
236
|
error: "Current version not found",
|
|
153
|
-
semverCompatible: false
|
|
237
|
+
semverCompatible: false,
|
|
238
|
+
location: depSources[dep]
|
|
154
239
|
};
|
|
155
240
|
}
|
|
156
241
|
try {
|
|
@@ -162,7 +247,8 @@ export default defineCommand({
|
|
|
162
247
|
currentVersion: cleanCurrent,
|
|
163
248
|
latestVersion: latest,
|
|
164
249
|
updated: latest !== cleanCurrent && isCompatible,
|
|
165
|
-
semverCompatible: isCompatible
|
|
250
|
+
semverCompatible: isCompatible,
|
|
251
|
+
location: depSources[dep]
|
|
166
252
|
};
|
|
167
253
|
} catch (error) {
|
|
168
254
|
return {
|
|
@@ -171,7 +257,8 @@ export default defineCommand({
|
|
|
171
257
|
latestVersion: currentVersion,
|
|
172
258
|
updated: false,
|
|
173
259
|
error: error instanceof Error ? error.message : String(error),
|
|
174
|
-
semverCompatible: false
|
|
260
|
+
semverCompatible: false,
|
|
261
|
+
location: depSources[dep]
|
|
175
262
|
};
|
|
176
263
|
}
|
|
177
264
|
},
|
|
@@ -183,7 +270,7 @@ export default defineCommand({
|
|
|
183
270
|
if (errors.length > 0) {
|
|
184
271
|
relinka("warn", `Failed to check ${errors.length} dependencies:`);
|
|
185
272
|
for (const error of errors) {
|
|
186
|
-
relinka("warn", ` ${error.package}: ${error.error}`);
|
|
273
|
+
relinka("warn", ` ${error.package} (${error.location}): ${error.error}`);
|
|
187
274
|
}
|
|
188
275
|
}
|
|
189
276
|
if (upToDate.length > 0) {
|
|
@@ -195,7 +282,10 @@ export default defineCommand({
|
|
|
195
282
|
}
|
|
196
283
|
relinka("info", `${toUpdate.length} dependencies can be updated:`);
|
|
197
284
|
for (const update of toUpdate) {
|
|
198
|
-
relinka(
|
|
285
|
+
relinka(
|
|
286
|
+
"log",
|
|
287
|
+
` ${update.package} (${update.location}): ${update.currentVersion} \u2192 ${update.latestVersion}`
|
|
288
|
+
);
|
|
199
289
|
}
|
|
200
290
|
if (args["dry-run"]) {
|
|
201
291
|
relinka("info", "Dry run mode - no changes were made");
|
|
@@ -206,13 +296,43 @@ export default defineCommand({
|
|
|
206
296
|
for (const update of toUpdate) {
|
|
207
297
|
const dep = update.package;
|
|
208
298
|
const newVersion = `^${update.latestVersion}`;
|
|
209
|
-
|
|
299
|
+
const location = update.location;
|
|
300
|
+
if (location === "dependencies" && dependencies[dep]) {
|
|
210
301
|
if (!updatedPackageJson.dependencies) updatedPackageJson.dependencies = {};
|
|
211
302
|
updatedPackageJson.dependencies[dep] = newVersion;
|
|
212
|
-
}
|
|
213
|
-
if (devDependencies[dep]) {
|
|
303
|
+
} else if (location === "devDependencies" && devDependencies[dep]) {
|
|
214
304
|
if (!updatedPackageJson.devDependencies) updatedPackageJson.devDependencies = {};
|
|
215
305
|
updatedPackageJson.devDependencies[dep] = newVersion;
|
|
306
|
+
} else if (location === "peerDependencies" && peerDependencies[dep]) {
|
|
307
|
+
if (!updatedPackageJson.peerDependencies) updatedPackageJson.peerDependencies = {};
|
|
308
|
+
updatedPackageJson.peerDependencies[dep] = newVersion;
|
|
309
|
+
} else if (location === "optionalDependencies" && optionalDependencies[dep]) {
|
|
310
|
+
if (!updatedPackageJson.optionalDependencies)
|
|
311
|
+
updatedPackageJson.optionalDependencies = {};
|
|
312
|
+
updatedPackageJson.optionalDependencies[dep] = newVersion;
|
|
313
|
+
} else if (location === "catalog" && catalog[dep]) {
|
|
314
|
+
if (!updatedPackageJson.workspaces) updatedPackageJson.workspaces = {};
|
|
315
|
+
if (!updatedPackageJson.workspaces.catalog)
|
|
316
|
+
updatedPackageJson.workspaces.catalog = {};
|
|
317
|
+
updatedPackageJson.workspaces.catalog[dep] = newVersion;
|
|
318
|
+
if (updatedPackageJson.catalog) {
|
|
319
|
+
updatedPackageJson.catalog[dep] = newVersion;
|
|
320
|
+
}
|
|
321
|
+
} else if (location?.startsWith("catalogs.")) {
|
|
322
|
+
const catalogName = location.split(".")[1];
|
|
323
|
+
if (catalogName) {
|
|
324
|
+
if (!updatedPackageJson.workspaces)
|
|
325
|
+
updatedPackageJson.workspaces = {};
|
|
326
|
+
if (!updatedPackageJson.workspaces.catalogs)
|
|
327
|
+
updatedPackageJson.workspaces.catalogs = {};
|
|
328
|
+
if (!updatedPackageJson.workspaces.catalogs[catalogName]) {
|
|
329
|
+
updatedPackageJson.workspaces.catalogs[catalogName] = {};
|
|
330
|
+
}
|
|
331
|
+
updatedPackageJson.workspaces.catalogs[catalogName][dep] = newVersion;
|
|
332
|
+
if (updatedPackageJson.catalogs && updatedPackageJson.catalogs[catalogName]) {
|
|
333
|
+
updatedPackageJson.catalogs[catalogName][dep] = newVersion;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
216
336
|
}
|
|
217
337
|
}
|
|
218
338
|
await fs.writeFile(
|
|
@@ -223,7 +343,7 @@ export default defineCommand({
|
|
|
223
343
|
relinka("success", `Updated ${toUpdate.length} dependencies in package.json`);
|
|
224
344
|
if (typeof Bun !== "undefined") {
|
|
225
345
|
await $`bun install`;
|
|
226
|
-
if (packageJson.scripts?.check) {
|
|
346
|
+
if (packageJson.scripts?.check && args["with-check-script"]) {
|
|
227
347
|
await $`bun check`;
|
|
228
348
|
}
|
|
229
349
|
} else {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import type { RseConfig } from "./rse-types";
|
|
2
2
|
export declare const defineConfigRse: (userConfig?: Partial<RseConfig>) => {
|
|
3
|
-
version?: string | undefined;
|
|
4
3
|
$schema?: "./schema.json" | "https://reliverse.org/schema.json" | undefined;
|
|
5
4
|
projectName?: string | undefined;
|
|
6
5
|
projectAuthor?: string | undefined;
|
|
7
6
|
projectDescription?: string | undefined;
|
|
7
|
+
version?: string | undefined;
|
|
8
8
|
projectLicense?: string | undefined;
|
|
9
9
|
projectRepository?: string | undefined;
|
|
10
10
|
projectDomain?: string | undefined;
|
|
11
11
|
projectGitService?: "none" | "github" | "gitlab" | "bitbucket" | undefined;
|
|
12
12
|
projectDeployService?: "none" | "vercel" | "netlify" | "railway" | "deno" | undefined;
|
|
13
|
-
projectPackageManager?: "
|
|
13
|
+
projectPackageManager?: "npm" | "bun" | "pnpm" | "yarn" | undefined;
|
|
14
14
|
projectState?: "creating" | "created" | undefined;
|
|
15
15
|
projectCategory?: "browser" | "cli" | "unknown" | "website" | "vscode" | "library" | "mobile" | undefined;
|
|
16
16
|
projectSubcategory?: "unknown" | "e-commerce" | "tool" | undefined;
|
|
17
|
-
projectFramework?: "
|
|
17
|
+
projectFramework?: "rempts" | "npm-jsr" | "unknown" | "vscode" | "nextjs" | "vite" | "svelte" | "remix" | "astro" | "nuxt" | "solid" | "qwik" | "vue" | "wxt" | "lynx" | "react-native" | "expo" | "capacitor" | "ionic" | "electron" | "tauri" | "neutralino" | "citty" | "commander" | "cac" | "meow" | "yargs" | "webextension" | "browser-extension" | undefined;
|
|
18
18
|
projectTemplate?: "unknown" | "blefnk/relivator-nextjs-template" | "blefnk/relivator-docker-template" | "blefnk/next-react-ts-src-minimal" | "blefnk/all-in-one-nextjs-template" | "blefnk/create-t3-app" | "blefnk/create-next-app" | "blefnk/astro-starlight-template" | "blefnk/versator-nextjs-template" | "blefnk/relivator-lynxjs-template" | "blefnk/relivator-react-native-template" | "reliverse/template-browser-extension" | "microsoft/vscode-extension-samples" | "microsoft/vscode-extension-template" | "rsetarter-template" | "blefnk/deno-cli-tutorial" | undefined;
|
|
19
19
|
projectTemplateDate?: string | undefined;
|
|
20
20
|
features?: {
|
|
@@ -33,15 +33,14 @@ export declare const defineConfigRse: (userConfig?: Partial<RseConfig>) => {
|
|
|
33
33
|
themes?: string[] | undefined;
|
|
34
34
|
} | undefined;
|
|
35
35
|
preferredLibraries?: {
|
|
36
|
-
search?: "unknown" | "algolia" | undefined;
|
|
37
36
|
i18n?: "unknown" | "next-intl" | undefined;
|
|
38
37
|
analytics?: "unknown" | "vercel" | undefined;
|
|
39
38
|
authentication?: "unknown" | "better-auth" | "clerk" | "next-auth" | "supabase-auth" | "auth0" | undefined;
|
|
40
|
-
api?: "
|
|
39
|
+
api?: "unknown" | "hono" | "trpc" | "graphql" | "rest" | undefined;
|
|
41
40
|
testing?: "bun" | "unknown" | "vitest" | "jest" | "playwright" | "cypress" | undefined;
|
|
42
41
|
stateManagement?: "unknown" | "zustand" | "jotai" | "redux-toolkit" | undefined;
|
|
43
42
|
formManagement?: "unknown" | "react-hook-form" | "formik" | undefined;
|
|
44
|
-
styling?: "
|
|
43
|
+
styling?: "unknown" | "tailwind" | "styled-components" | "css-modules" | "sass" | undefined;
|
|
45
44
|
uiComponents?: "unknown" | "shadcn-ui" | "chakra-ui" | "material-ui" | undefined;
|
|
46
45
|
databaseLibrary?: "unknown" | "drizzle" | "prisma" | "supabase" | undefined;
|
|
47
46
|
databaseProvider?: "unknown" | "pg" | "mysql" | "sqlite" | "mongodb" | undefined;
|
|
@@ -52,6 +51,7 @@ export declare const defineConfigRse: (userConfig?: Partial<RseConfig>) => {
|
|
|
52
51
|
logging?: "unknown" | "axiom" | undefined;
|
|
53
52
|
forms?: "unknown" | "react-hook-form" | undefined;
|
|
54
53
|
notifications?: "unknown" | "sonner" | undefined;
|
|
54
|
+
search?: "unknown" | "algolia" | undefined;
|
|
55
55
|
uploads?: "unknown" | "uploadthing" | undefined;
|
|
56
56
|
validation?: "unknown" | "zod" | "typebox" | "valibot" | undefined;
|
|
57
57
|
documentation?: "unknown" | "starlight" | "nextra" | undefined;
|
|
@@ -75,7 +75,7 @@ export declare const defineConfigRse: (userConfig?: Partial<RseConfig>) => {
|
|
|
75
75
|
indentStyle?: "space" | "tab" | undefined;
|
|
76
76
|
quoteMark?: "single" | "double" | undefined;
|
|
77
77
|
semicolons?: boolean | undefined;
|
|
78
|
-
trailingComma?: "
|
|
78
|
+
trailingComma?: "none" | "es5" | "all" | undefined;
|
|
79
79
|
bracketSpacing?: boolean | undefined;
|
|
80
80
|
arrowParens?: "always" | "avoid" | undefined;
|
|
81
81
|
tabWidth?: number | undefined;
|
|
@@ -96,7 +96,7 @@ export declare const defineConfigRse: (userConfig?: Partial<RseConfig>) => {
|
|
|
96
96
|
importSymbol?: string | undefined;
|
|
97
97
|
} | undefined;
|
|
98
98
|
monorepo?: {
|
|
99
|
-
type?: "
|
|
99
|
+
type?: "none" | "bun" | "turborepo" | "nx" | "pnpm" | undefined;
|
|
100
100
|
packages?: string[] | undefined;
|
|
101
101
|
sharedPackages?: string[] | undefined;
|
|
102
102
|
} | undefined;
|
|
@@ -113,7 +113,7 @@ export declare const defineConfigRse: (userConfig?: Partial<RseConfig>) => {
|
|
|
113
113
|
repoBranch?: string | undefined;
|
|
114
114
|
repoPrivacy?: "unknown" | "public" | "private" | undefined;
|
|
115
115
|
projectArchitecture?: "unknown" | "fullstack" | "separated" | undefined;
|
|
116
|
-
projectRuntime?: "
|
|
116
|
+
projectRuntime?: "node" | "bun" | "deno" | undefined;
|
|
117
117
|
skipPromptsUseAutoBehavior?: boolean | undefined;
|
|
118
118
|
deployBehavior?: "prompt" | "autoYes" | "autoNo" | undefined;
|
|
119
119
|
depsBehavior?: "prompt" | "autoYes" | "autoNo" | undefined;
|