@strapi/strapi 5.47.1 → 5.48.1

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.
Files changed (53) hide show
  1. package/README.md +9 -9
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/develop.d.ts.map +1 -1
  4. package/dist/node/build.d.ts +7 -1
  5. package/dist/node/build.d.ts.map +1 -1
  6. package/dist/node/core/dependencies.d.ts +35 -13
  7. package/dist/node/core/dependencies.d.ts.map +1 -1
  8. package/dist/node/core/ensure-admin-dependencies.d.ts +25 -0
  9. package/dist/node/core/ensure-admin-dependencies.d.ts.map +1 -0
  10. package/dist/node/core/plugins.d.ts.map +1 -1
  11. package/dist/node/develop.d.ts +7 -1
  12. package/dist/node/develop.d.ts.map +1 -1
  13. package/dist/node/vite/config.d.ts.map +1 -1
  14. package/dist/node/webpack/config.d.ts.map +1 -1
  15. package/dist/package.json.js +1 -1
  16. package/dist/package.json.mjs +1 -1
  17. package/dist/src/cli/commands/build.js +1 -1
  18. package/dist/src/cli/commands/build.js.map +1 -1
  19. package/dist/src/cli/commands/build.mjs +1 -1
  20. package/dist/src/cli/commands/build.mjs.map +1 -1
  21. package/dist/src/cli/commands/develop.js +1 -1
  22. package/dist/src/cli/commands/develop.js.map +1 -1
  23. package/dist/src/cli/commands/develop.mjs +1 -1
  24. package/dist/src/cli/commands/develop.mjs.map +1 -1
  25. package/dist/src/node/build.js +6 -8
  26. package/dist/src/node/build.js.map +1 -1
  27. package/dist/src/node/build.mjs +6 -8
  28. package/dist/src/node/build.mjs.map +1 -1
  29. package/dist/src/node/core/dependencies.js +115 -118
  30. package/dist/src/node/core/dependencies.js.map +1 -1
  31. package/dist/src/node/core/dependencies.mjs +105 -118
  32. package/dist/src/node/core/dependencies.mjs.map +1 -1
  33. package/dist/src/node/core/ensure-admin-dependencies.js +70 -0
  34. package/dist/src/node/core/ensure-admin-dependencies.js.map +1 -0
  35. package/dist/src/node/core/ensure-admin-dependencies.mjs +67 -0
  36. package/dist/src/node/core/ensure-admin-dependencies.mjs.map +1 -0
  37. package/dist/src/node/core/plugins.js +19 -3
  38. package/dist/src/node/core/plugins.js.map +1 -1
  39. package/dist/src/node/core/plugins.mjs +19 -3
  40. package/dist/src/node/core/plugins.mjs.map +1 -1
  41. package/dist/src/node/develop.js +6 -8
  42. package/dist/src/node/develop.js.map +1 -1
  43. package/dist/src/node/develop.mjs +6 -8
  44. package/dist/src/node/develop.mjs.map +1 -1
  45. package/dist/src/node/vite/config.js +9 -2
  46. package/dist/src/node/vite/config.js.map +1 -1
  47. package/dist/src/node/vite/config.mjs +9 -2
  48. package/dist/src/node/vite/config.mjs.map +1 -1
  49. package/dist/src/node/webpack/config.js +2 -1
  50. package/dist/src/node/webpack/config.js.map +1 -1
  51. package/dist/src/node/webpack/config.mjs +2 -1
  52. package/dist/src/node/webpack/config.mjs.map +1 -1
  53. package/package.json +26 -26
package/README.md CHANGED
@@ -92,14 +92,15 @@ Complete installation requirements can be found in the documentation under <a hr
92
92
 
93
93
  Strapi only supports maintenance and LTS versions of Node.js. Please refer to the <a href="https://nodejs.org/en/about/releases/">Node.js release schedule</a> for more information. NPM versions installed by default with Node.js are supported. Generally it's recommended to use yarn over npm where possible.
94
94
 
95
- | Strapi Version | Recommended | Minimum |
96
- | --------------- | ----------- | ------- |
97
- | 5.31.0 and up | 24.x | 20.x |
98
- | 5.0.0 to 5.30.1 | 20.x | 18.x |
99
- | 4.14.5 and up | 20.x | 18.x |
100
- | 4.11.0 and up | 18.x | 16.x |
101
- | 4.3.9 to 4.10.x | 18.x | 14.x |
102
- | 4.0.x to 4.3.8 | 16.x | 14.x |
95
+ | Strapi Version | Recommended | Minimum |
96
+ | ----------------- | ----------- | ------- |
97
+ | 5.48.1 and up | 24.x | 22.x |
98
+ | 5.31.0 to v5.48.0 | 24.x | 20.x |
99
+ | 5.0.0 to 5.30.1 | 20.x | 18.x |
100
+ | 4.14.5 and up | 20.x | 18.x |
101
+ | 4.11.0 and up | 18.x | 16.x |
102
+ | 4.3.9 to 4.10.x | 18.x | 14.x |
103
+ | 4.0.x to 4.3.8 | 16.x | 14.x |
103
104
 
104
105
  **Database:**
105
106
 
@@ -116,7 +117,6 @@ Database driver packages often have their own minimum versions for each version
116
117
 
117
118
  | Node Version | PostgreSQL (pg) | MySQL (mysql2) | SQLite (better-sqlite3) |
118
119
  | ------------ | --------------- | -------------- | ----------------------- |
119
- | 20 | pg@8.x | mysql2@3.x | better-sqlite3@9.4.x |
120
120
  | 22 | pg@8.x | mysql2@3.x | better-sqlite3@11.x |
121
121
  | 24 | pg@8.x | mysql2@3.x | better-sqlite3@12.x |
122
122
 
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAqB9C;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAYd,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAqB9C;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAad,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/develop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsB9C;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAgBd,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/develop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsB9C;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAkBd,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -20,13 +20,19 @@ interface BuildOptions extends CLIContext {
20
20
  * Print stats for build
21
21
  */
22
22
  stats?: boolean;
23
+ /**
24
+ * Auto-install missing admin dependencies
25
+ *
26
+ * @default false
27
+ */
28
+ installDeps?: boolean;
23
29
  }
24
30
  /**
25
31
  * @example `$ strapi build`
26
32
  *
27
33
  * @description Builds the admin panel of the strapi application.
28
34
  */
29
- declare const build: ({ logger, cwd, tsconfig, ...options }: BuildOptions) => Promise<void>;
35
+ declare const build: ({ logger, cwd, tsconfig, installDeps, ...options }: BuildOptions) => Promise<void>;
30
36
  export { build };
31
37
  export type { BuildOptions };
32
38
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/node/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,UAAU,YAAa,SAAQ,UAAU;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,QAAA,MAAM,KAAK,0CAAiD,YAAY,kBAiEvE,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/node/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,UAAU,YAAa,SAAQ,UAAU;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,QAAA,MAAM,KAAK,uDAAsE,YAAY,kBAkE5F,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -1,19 +1,41 @@
1
1
  import { PackageJson } from 'read-pkg-up';
2
- import type { BuildOptions } from '../build';
3
- interface CheckRequiredDependenciesResult {
4
- didInstall: boolean;
2
+ import type { Logger } from '../../cli/utils/logger';
3
+ declare const hashPackageJson: (cwd: string) => Promise<string | null>;
4
+ declare const readCachedHash: (cwd: string) => Promise<string | null>;
5
+ declare const writeCachedHash: (cwd: string, hash: string) => Promise<void>;
6
+ /**
7
+ * From V5 this will be imported from the package.json of `@strapi/strapi`.
8
+ */
9
+ declare const ADMIN_PEER_DEPS: {
10
+ readonly react: "^18.0.0";
11
+ readonly 'react-dom': "^18.0.0";
12
+ readonly 'react-router-dom': "^6.0.0";
13
+ readonly 'styled-components': "^6.0.0";
14
+ };
15
+ interface AdminPeerDep {
16
+ name: string;
17
+ wantedVersion: string;
18
+ }
19
+ declare class MissingAdminPeerDepsError extends Error {
20
+ readonly missing: AdminPeerDep[];
21
+ constructor(missing: AdminPeerDep[]);
5
22
  }
6
23
  /**
7
- * Checks the user's project that it has declared and installed the required dependencies
8
- * needed by the Strapi admin project. Whilst generally speaking most modules will be
9
- * declared by the actual packages there are some packages where you only really want one of
10
- * and thus they are declared as peer dependencies – react / styled-components / etc.
11
- *
12
- * If these deps are not installed or declared, then we prompt the user to correct this. In
13
- * V4 this is not a hard requirement, but in V5 it will be. Might as well get people started now.
24
+ * Returns admin peer dependencies that are not declared in the project's package.json.
25
+ */
26
+ declare const findUndeclaredAdminPeerDeps: (cwd: string) => Promise<AdminPeerDep[]>;
27
+ declare const getInstallCommandHint: (missing: AdminPeerDep[]) => string;
28
+ declare const reportMissingAdminPeerDeps: (logger: Logger, missing: AdminPeerDep[]) => void;
29
+ /**
30
+ * Validates declared admin peer dependencies (versions and node_modules presence).
14
31
  */
15
- declare const checkRequiredDependencies: ({ cwd, logger, }: Pick<BuildOptions, 'cwd' | 'logger'>) => Promise<CheckRequiredDependenciesResult>;
32
+ declare const validateDeclaredAdminPeerDeps: (cwd: string, logger: Logger) => Promise<void>;
33
+ declare const installAdminPeerDeps: (missing: AdminPeerDep[], { cwd, logger }: {
34
+ cwd: string;
35
+ logger: Logger;
36
+ }) => Promise<void>;
37
+ declare const reexecCurrentCommand: (cwd: string) => Promise<void>;
16
38
  declare const getModule: (name: string, cwd: string) => Promise<PackageJson | null>;
17
- export { checkRequiredDependencies, getModule };
18
- export type { CheckRequiredDependenciesResult, PackageJson };
39
+ export { ADMIN_PEER_DEPS, findUndeclaredAdminPeerDeps, validateDeclaredAdminPeerDeps, installAdminPeerDeps, reexecCurrentCommand, reportMissingAdminPeerDeps, getInstallCommandHint, MissingAdminPeerDepsError, getModule, hashPackageJson, readCachedHash, writeCachedHash, };
40
+ export type { AdminPeerDep, PackageJson };
19
41
  //# sourceMappingURL=dependencies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/node/core/dependencies.ts"],"names":[],"mappings":"AAOA,OAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAoC7C,UAAU,+BAA+B;IACvC,UAAU,EAAE,OAAO,CAAC;CACrB;AAQD;;;;;;;;GAQG;AACH,QAAA,MAAM,yBAAyB,qBAG5B,KAAK,YAAY,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAG,QAAQ,+BAA+B,CAwJhF,CAAC;AAEF,QAAA,MAAM,SAAS,SAAgB,MAAM,OAAO,MAAM,KAAG,QAAQ,WAAW,GAAG,IAAI,CAQ9E,CAAC;AAkDF,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC;AAChD,YAAY,EAAE,+BAA+B,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/node/core/dependencies.ts"],"names":[],"mappings":"AAOA,OAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKrD,QAAA,MAAM,eAAe,QAAe,MAAM,KAAG,QAAQ,MAAM,GAAG,IAAI,CAOjE,CAAC;AAEF,QAAA,MAAM,cAAc,QAAS,MAAM,KAAG,QAAQ,MAAM,GAAG,IAAI,CACQ,CAAC;AAEpE,QAAA,MAAM,eAAe,QAAe,MAAM,QAAQ,MAAM,KAAG,QAAQ,IAAI,CAOtE,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe;;;;;CAKX,CAAC;AAEX,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD,cAAM,yBAA0B,SAAQ,KAAK;IAC3C,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;gBAErB,OAAO,EAAE,YAAY,EAAE;CAKpC;AAgBD;;GAEG;AACH,QAAA,MAAM,2BAA2B,QAAe,MAAM,KAAG,QAAQ,YAAY,EAAE,CAgB9E,CAAC;AAsBF,QAAA,MAAM,qBAAqB,YAAa,YAAY,EAAE,WAarD,CAAC;AAEF,QAAA,MAAM,0BAA0B,WAAY,MAAM,WAAW,YAAY,EAAE,SAW1E,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,6BAA6B,QAAe,MAAM,UAAU,MAAM,kBAqDvE,CAAC;AAEF,QAAA,MAAM,oBAAoB,YACf,YAAY,EAAE,mBACN;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,kBAsCjD,CAAC;AAEF,QAAA,MAAM,oBAAoB,QAAe,MAAM,kBAQ9C,CAAC;AAEF,QAAA,MAAM,SAAS,SAAgB,MAAM,OAAO,MAAM,KAAG,QAAQ,WAAW,GAAG,IAAI,CAQ9E,CAAC;AAQF,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,6BAA6B,EAC7B,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,cAAc,EACd,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Logger } from '../../cli/utils/logger';
2
+ interface EnsureAdminDependenciesOptions {
3
+ cwd: string;
4
+ logger: Logger;
5
+ installIfMissing: boolean;
6
+ }
7
+ interface EnsureAdminDependenciesResult {
8
+ didInstall: boolean;
9
+ }
10
+ /**
11
+ * Ensures admin peer dependencies are declared (and optionally auto-installed).
12
+ *
13
+ * Policy (`installIfMissing`) is decided by the caller — e.g. build vs develop CLI flags.
14
+ * Checking and installation are command-agnostic.
15
+ */
16
+ declare const ensureAdminDependencies: ({ cwd, logger, installIfMissing, }: EnsureAdminDependenciesOptions) => Promise<EnsureAdminDependenciesResult>;
17
+ /**
18
+ * Runs {@link ensureAdminDependencies} and exits the process on failure.
19
+ *
20
+ * @returns `true` when the caller should continue, `false` when a re-exec was triggered.
21
+ */
22
+ declare const handleAdminDependencies: (options: EnsureAdminDependenciesOptions) => Promise<boolean>;
23
+ export { ensureAdminDependencies, handleAdminDependencies };
24
+ export type { EnsureAdminDependenciesOptions, EnsureAdminDependenciesResult };
25
+ //# sourceMappingURL=ensure-admin-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-admin-dependencies.d.ts","sourceRoot":"","sources":["../../../src/node/core/ensure-admin-dependencies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAarD,UAAU,8BAA8B;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,6BAA6B;IACrC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,QAAA,MAAM,uBAAuB,uCAI1B,8BAA8B,KAAG,QAAQ,6BAA6B,CA4CxE,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,YAClB,8BAA8B,KACtC,QAAQ,OAAO,CASjB,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC;AAC5D,YAAY,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/node/core/plugins.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,KAAK,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAuBrD,QAAA,MAAM,iBAAiB,yCAKpB,KAAK,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC,KAAG,QACjE,OAAO,MAAM,EAAE,UAAU,CAAC,CA2D3B,CAAC;AAsBF,QAAA,MAAM,wBAAwB,YAAa,OAAO,MAAM,EAAE,UAAU,CAAC;;UApJ7D,MAAM;IACZ;;OAEG;gBACS,MAAM;IAClB;;;OAGG;UACG,MAAM;UAON,OAAO;;;UAIP,MAAM;IACZ;;OAEG;gBACS,MAAM;IAClB;;;OAGG;;UAOG,QAAQ;IA6Lf,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/node/core/plugins.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,KAAK,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAiCrD,QAAA,MAAM,iBAAiB,yCAKpB,KAAK,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC,KAAG,QACjE,OAAO,MAAM,EAAE,UAAU,CAAC,CA4E3B,CAAC;AAsBF,QAAA,MAAM,wBAAwB,YAAa,OAAO,MAAM,EAAE,UAAU,CAAC;;UA/K7D,MAAM;IACZ;;OAEG;gBACS,MAAM;IAClB;;;OAGG;UACG,MAAM;UAON,OAAO;;;UAIP,MAAM;IACZ;;OAEG;gBACS,MAAM;IAClB;;;OAGG;;UAOG,QAAQ;IAwNf,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC"}
@@ -10,8 +10,14 @@ interface DevelopOptions extends CLIContext {
10
10
  open?: boolean;
11
11
  watchAdmin?: boolean;
12
12
  buildAdmin?: boolean;
13
+ /**
14
+ * Auto-install missing admin dependencies
15
+ *
16
+ * @default true
17
+ */
18
+ installDeps?: boolean;
13
19
  }
14
- declare const develop: ({ cwd, polling, logger, tsconfig, watchAdmin, buildAdmin, ...options }: DevelopOptions) => Promise<void>;
20
+ declare const develop: ({ cwd, polling, logger, tsconfig, watchAdmin, buildAdmin, installDeps, ...options }: DevelopOptions) => Promise<void>;
15
21
  export { develop };
16
22
  export type { DevelopOptions };
17
23
  //# sourceMappingURL=develop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/node/develop.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAyB/C,UAAU,cAAe,SAAQ,UAAU;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA4CD,QAAA,MAAM,OAAO,2EAQV,cAAc,kBAiOhB,CAAC;AAwFF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/node/develop.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAyB/C,UAAU,cAAe,SAAQ,UAAU;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA4CD,QAAA,MAAM,OAAO,wFASV,cAAc,kBAkOhB,CAAC;AAwFF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/node/vite/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AASrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA2I5D,QAAA,MAAM,uBAAuB,QAAe,YAAY,KAAG,QAAQ,YAAY,CAuB9E,CAAC;AAEF,QAAA,MAAM,wBAAwB,QAAe,YAAY,KAAG,QAAQ,YAAY,CA0B/E,CAAC;AAMF,QAAA,MAAM,yBAAyB,WAAkB,YAAY,OAAO,YAAY,wBAQ/E,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/node/vite/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAQrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmJ5D,QAAA,MAAM,uBAAuB,QAAe,YAAY,KAAG,QAAQ,YAAY,CAuB9E,CAAC;AAEF,QAAA,MAAM,wBAAwB,QAAe,YAAY,KAAG,QAAQ,YAAY,CA0B/E,CAAC;AAMF,QAAA,MAAM,yBAAyB,WAAkB,YAAY,OAAO,YAAY,wBAQ/E,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/node/webpack/config.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAA4C,MAAM,SAAS,CAAC;AAIlF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA8G5D,QAAA,MAAM,wBAAwB,QAAe,YAAY,KAAG,QAAQ,aAAa,CAqDhF,CAAC;AAEF,QAAA,MAAM,uBAAuB,QAAe,YAAY,KAAG,QAAQ,aAAa,CAwC/E,CAAC;AAMF,QAAA,MAAM,yBAAyB,WAAkB,aAAa,OAAO,YAAY,2BAoBhF,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/node/webpack/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAA4C,MAAM,SAAS,CAAC;AAIlF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA+G5D,QAAA,MAAM,wBAAwB,QAAe,YAAY,KAAG,QAAQ,aAAa,CAqDhF,CAAC;AAEF,QAAA,MAAM,uBAAuB,QAAe,YAAY,KAAG,QAAQ,aAAa,CAyC/E,CAAC;AAMF,QAAA,MAAM,yBAAyB,WAAkB,aAAa,OAAO,YAAY,2BAoBhF,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var version = "5.47.1";
3
+ var version = "5.48.1";
4
4
 
5
5
  exports.version = version;
6
6
  //# sourceMappingURL=package.json.js.map
@@ -1,4 +1,4 @@
1
- var version = "5.47.1";
1
+ var version = "5.48.1";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=package.json.mjs.map
@@ -17,7 +17,7 @@ const action = async (options)=>{
17
17
  /**
18
18
  * `$ strapi build`
19
19
  */ const command = ({ ctx })=>{
20
- return commander.createCommand('build').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--minify', 'Minify the output', true).option('--silent', "Don't log anything", false).option('--sourcemap', 'Produce sourcemaps', false).option('--stats', 'Print build statistics to the console', false).description('Build the strapi admin app').action(async (options)=>{
20
+ return commander.createCommand('build').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--minify', 'Minify the output', true).option('--silent', "Don't log anything", false).option('--sourcemap', 'Produce sourcemaps', false).option('--stats', 'Print build statistics to the console', false).option('--install-deps', 'Auto-install missing admin dependencies', false).description('Build the strapi admin app').action(async (options)=>{
21
21
  return action({
22
22
  ...options,
23
23
  ...ctx
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sources":["../../../../src/cli/commands/build.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport type { StrapiCommand } from '../types';\n\nimport { build as nodeBuild, BuildOptions } from '../../node/build';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype BuildCLIOptions = BuildOptions;\n\nconst action = async (options: BuildCLIOptions) => {\n try {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n\n await nodeBuild(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi build`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('build')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--minify', 'Minify the output', true)\n .option('--silent', \"Don't log anything\", false)\n .option('--sourcemap', 'Produce sourcemaps', false)\n .option('--stats', 'Print build statistics to the console', false)\n .description('Build the strapi admin app')\n .action(async (options: BuildCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","bundler","logger","warn","nodeBuild","err","handleUnexpectedError","command","ctx","createCommand","option","description"],"mappings":";;;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIA,OAAAA,CAAQC,OAAO,KAAK,SAAA,EAAW;YACjCD,OAAAA,CAAQE,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,QAAA;AAEA,QAAA,MAAMC,WAAAA,CAAUJ,OAAAA,CAAAA;AAClB,IAAA,CAAA,CAAE,OAAOK,GAAAA,EAAK;QACZC,4BAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;AACrC,IAAA,OAAOC,wBAAc,OAAA,CAAA,CAClBC,MAAM,CAAC,qBAAA,EAAuB,oCAAoC,MAAA,CAAA,CAClEA,MAAM,CAAC,aAAA,EAAe,2CAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,qBAAqB,IAAA,CAAA,CACxCA,MAAM,CAAC,UAAA,EAAY,sBAAsB,KAAA,CAAA,CACzCA,MAAM,CAAC,aAAA,EAAe,sBAAsB,KAAA,CAAA,CAC5CA,MAAM,CAAC,SAAA,EAAW,yCAAyC,KAAA,CAAA,CAC3DC,WAAW,CAAC,4BAAA,CAAA,CACZZ,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGQ;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
1
+ {"version":3,"file":"build.js","sources":["../../../../src/cli/commands/build.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport type { StrapiCommand } from '../types';\n\nimport { build as nodeBuild, BuildOptions } from '../../node/build';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype BuildCLIOptions = BuildOptions;\n\nconst action = async (options: BuildCLIOptions) => {\n try {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n\n await nodeBuild(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi build`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('build')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--minify', 'Minify the output', true)\n .option('--silent', \"Don't log anything\", false)\n .option('--sourcemap', 'Produce sourcemaps', false)\n .option('--stats', 'Print build statistics to the console', false)\n .option('--install-deps', 'Auto-install missing admin dependencies', false)\n .description('Build the strapi admin app')\n .action(async (options: BuildCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","bundler","logger","warn","nodeBuild","err","handleUnexpectedError","command","ctx","createCommand","option","description"],"mappings":";;;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIA,OAAAA,CAAQC,OAAO,KAAK,SAAA,EAAW;YACjCD,OAAAA,CAAQE,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,QAAA;AAEA,QAAA,MAAMC,WAAAA,CAAUJ,OAAAA,CAAAA;AAClB,IAAA,CAAA,CAAE,OAAOK,GAAAA,EAAK;QACZC,4BAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;AACrC,IAAA,OAAOC,wBAAc,OAAA,CAAA,CAClBC,MAAM,CAAC,qBAAA,EAAuB,kCAAA,EAAoC,QAClEA,MAAM,CAAC,eAAe,yCAAA,EAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,qBAAqB,IAAA,CAAA,CACxCA,MAAM,CAAC,UAAA,EAAY,oBAAA,EAAsB,KAAA,CAAA,CACzCA,MAAM,CAAC,aAAA,EAAe,oBAAA,EAAsB,OAC5CA,MAAM,CAAC,WAAW,uCAAA,EAAyC,KAAA,CAAA,CAC3DA,MAAM,CAAC,gBAAA,EAAkB,2CAA2C,KAAA,CAAA,CACpEC,WAAW,CAAC,4BAAA,CAAA,CACZZ,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGQ;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
@@ -15,7 +15,7 @@ const action = async (options)=>{
15
15
  /**
16
16
  * `$ strapi build`
17
17
  */ const command = ({ ctx })=>{
18
- return createCommand('build').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--minify', 'Minify the output', true).option('--silent', "Don't log anything", false).option('--sourcemap', 'Produce sourcemaps', false).option('--stats', 'Print build statistics to the console', false).description('Build the strapi admin app').action(async (options)=>{
18
+ return createCommand('build').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--minify', 'Minify the output', true).option('--silent', "Don't log anything", false).option('--sourcemap', 'Produce sourcemaps', false).option('--stats', 'Print build statistics to the console', false).option('--install-deps', 'Auto-install missing admin dependencies', false).description('Build the strapi admin app').action(async (options)=>{
19
19
  return action({
20
20
  ...options,
21
21
  ...ctx
@@ -1 +1 @@
1
- {"version":3,"file":"build.mjs","sources":["../../../../src/cli/commands/build.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport type { StrapiCommand } from '../types';\n\nimport { build as nodeBuild, BuildOptions } from '../../node/build';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype BuildCLIOptions = BuildOptions;\n\nconst action = async (options: BuildCLIOptions) => {\n try {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n\n await nodeBuild(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi build`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('build')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--minify', 'Minify the output', true)\n .option('--silent', \"Don't log anything\", false)\n .option('--sourcemap', 'Produce sourcemaps', false)\n .option('--stats', 'Print build statistics to the console', false)\n .description('Build the strapi admin app')\n .action(async (options: BuildCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","bundler","logger","warn","nodeBuild","err","handleUnexpectedError","command","ctx","createCommand","option","description"],"mappings":";;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIA,OAAAA,CAAQC,OAAO,KAAK,SAAA,EAAW;YACjCD,OAAAA,CAAQE,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,QAAA;AAEA,QAAA,MAAMC,KAAAA,CAAUJ,OAAAA,CAAAA;AAClB,IAAA,CAAA,CAAE,OAAOK,GAAAA,EAAK;QACZC,qBAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;AACrC,IAAA,OAAOC,cAAc,OAAA,CAAA,CAClBC,MAAM,CAAC,qBAAA,EAAuB,oCAAoC,MAAA,CAAA,CAClEA,MAAM,CAAC,aAAA,EAAe,2CAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,qBAAqB,IAAA,CAAA,CACxCA,MAAM,CAAC,UAAA,EAAY,sBAAsB,KAAA,CAAA,CACzCA,MAAM,CAAC,aAAA,EAAe,sBAAsB,KAAA,CAAA,CAC5CA,MAAM,CAAC,SAAA,EAAW,yCAAyC,KAAA,CAAA,CAC3DC,WAAW,CAAC,4BAAA,CAAA,CACZZ,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGQ;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
1
+ {"version":3,"file":"build.mjs","sources":["../../../../src/cli/commands/build.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport type { StrapiCommand } from '../types';\n\nimport { build as nodeBuild, BuildOptions } from '../../node/build';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype BuildCLIOptions = BuildOptions;\n\nconst action = async (options: BuildCLIOptions) => {\n try {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n\n await nodeBuild(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi build`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('build')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--minify', 'Minify the output', true)\n .option('--silent', \"Don't log anything\", false)\n .option('--sourcemap', 'Produce sourcemaps', false)\n .option('--stats', 'Print build statistics to the console', false)\n .option('--install-deps', 'Auto-install missing admin dependencies', false)\n .description('Build the strapi admin app')\n .action(async (options: BuildCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","bundler","logger","warn","nodeBuild","err","handleUnexpectedError","command","ctx","createCommand","option","description"],"mappings":";;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIA,OAAAA,CAAQC,OAAO,KAAK,SAAA,EAAW;YACjCD,OAAAA,CAAQE,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,QAAA;AAEA,QAAA,MAAMC,KAAAA,CAAUJ,OAAAA,CAAAA;AAClB,IAAA,CAAA,CAAE,OAAOK,GAAAA,EAAK;QACZC,qBAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;AACrC,IAAA,OAAOC,cAAc,OAAA,CAAA,CAClBC,MAAM,CAAC,qBAAA,EAAuB,kCAAA,EAAoC,QAClEA,MAAM,CAAC,eAAe,yCAAA,EAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,qBAAqB,IAAA,CAAA,CACxCA,MAAM,CAAC,UAAA,EAAY,oBAAA,EAAsB,KAAA,CAAA,CACzCA,MAAM,CAAC,aAAA,EAAe,oBAAA,EAAsB,OAC5CA,MAAM,CAAC,WAAW,uCAAA,EAAyC,KAAA,CAAA,CAC3DA,MAAM,CAAC,gBAAA,EAAkB,2CAA2C,KAAA,CAAA,CACpEC,WAAW,CAAC,4BAAA,CAAA,CACZZ,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGQ;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
@@ -20,7 +20,7 @@ const action = async (options)=>{
20
20
  /**
21
21
  * `$ strapi develop`
22
22
  */ const command = ({ ctx })=>{
23
- return commander.createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--build-admin', 'Build the admin panel', true).option('--no-build-admin', 'Do not build the admin panel in case watch is disabled').option('--open', 'Open the admin in your browser', true).description('Start your Strapi application in development mode').action(async (options)=>{
23
+ return commander.createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--build-admin', 'Build the admin panel', true).option('--no-build-admin', 'Do not build the admin panel in case watch is disabled').option('--open', 'Open the admin in your browser', true).option('--install-deps', 'Auto-install missing admin dependencies', true).option('--no-install-deps', 'Do not auto-install missing admin dependencies').description('Start your Strapi application in development mode').action(async (options)=>{
24
24
  return action({
25
25
  ...options,
26
26
  ...ctx
@@ -1 +1 @@
1
- {"version":3,"file":"develop.js","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--build-admin', 'Build the admin panel', true)\n .option('--no-build-admin', 'Do not build the admin panel in case watch is disabled')\n .option('--open', 'Open the admin in your browser', true)\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAA,EAAW;gBACjCH,OAAAA,CAAQI,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,YAAA;AACF,QAAA;AAEA,QAAA,MAAMC,eAAAA,CAAYN,OAAAA,CAAAA;AACpB,IAAA,CAAA,CAAE,OAAOO,GAAAA,EAAK;QACZC,4BAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;IACrC,OAAOC,uBAAAA,CAAc,SAAA,CAAA,CAClBC,KAAK,CAAC,KAAA,CAAA,CACNC,MAAM,CAAC,qBAAA,EAAuB,kCAAA,EAAoC,MAAA,CAAA,CAClEA,MAAM,CAAC,eAAe,yCAAA,EAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,oBAAA,EAAsB,OACzCA,MAAM,CAAC,WAAA,EAAa,+CAAA,EAAiD,KAAA,CAAA,CACrEA,MAAM,CAAC,eAAA,EAAiB,uCAAA,EAAyC,IAAA,CAAA,CACjEA,MAAM,CAAC,kBAAA,EAAoB,gDAC3BA,MAAM,CAAC,eAAA,EAAiB,uBAAA,EAAyB,IAAA,CAAA,CACjDA,MAAM,CAAC,kBAAA,EAAoB,wDAAA,CAAA,CAC3BA,MAAM,CAAC,QAAA,EAAU,gCAAA,EAAkC,IAAA,CAAA,CACnDC,WAAW,CAAC,mDAAA,CAAA,CACZf,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGU;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
1
+ {"version":3,"file":"develop.js","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--build-admin', 'Build the admin panel', true)\n .option('--no-build-admin', 'Do not build the admin panel in case watch is disabled')\n .option('--open', 'Open the admin in your browser', true)\n .option('--install-deps', 'Auto-install missing admin dependencies', true)\n .option('--no-install-deps', 'Do not auto-install missing admin dependencies')\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAA,EAAW;gBACjCH,OAAAA,CAAQI,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,YAAA;AACF,QAAA;AAEA,QAAA,MAAMC,eAAAA,CAAYN,OAAAA,CAAAA;AACpB,IAAA,CAAA,CAAE,OAAOO,GAAAA,EAAK;QACZC,4BAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;AACrC,IAAA,OAAOC,uBAAAA,CAAc,SAAA,CAAA,CAClBC,KAAK,CAAC,KAAA,CAAA,CACNC,MAAM,CAAC,qBAAA,EAAuB,kCAAA,EAAoC,MAAA,CAAA,CAClEA,MAAM,CAAC,aAAA,EAAe,yCAAA,EAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,oBAAA,EAAsB,KAAA,CAAA,CACzCA,MAAM,CAAC,WAAA,EAAa,+CAAA,EAAiD,KAAA,CAAA,CACrEA,MAAM,CAAC,eAAA,EAAiB,yCAAyC,IAAA,CAAA,CACjEA,MAAM,CAAC,kBAAA,EAAoB,8CAAA,CAAA,CAC3BA,MAAM,CAAC,eAAA,EAAiB,uBAAA,EAAyB,IAAA,CAAA,CACjDA,MAAM,CAAC,kBAAA,EAAoB,wDAAA,CAAA,CAC3BA,MAAM,CAAC,QAAA,EAAU,gCAAA,EAAkC,IAAA,CAAA,CACnDA,MAAM,CAAC,gBAAA,EAAkB,yCAAA,EAA2C,IAAA,CAAA,CACpEA,MAAM,CAAC,mBAAA,EAAqB,gDAAA,CAAA,CAC5BC,WAAW,CAAC,mDAAA,CAAA,CACZf,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGU;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
@@ -18,7 +18,7 @@ const action = async (options)=>{
18
18
  /**
19
19
  * `$ strapi develop`
20
20
  */ const command = ({ ctx })=>{
21
- return createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--build-admin', 'Build the admin panel', true).option('--no-build-admin', 'Do not build the admin panel in case watch is disabled').option('--open', 'Open the admin in your browser', true).description('Start your Strapi application in development mode').action(async (options)=>{
21
+ return createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--build-admin', 'Build the admin panel', true).option('--no-build-admin', 'Do not build the admin panel in case watch is disabled').option('--open', 'Open the admin in your browser', true).option('--install-deps', 'Auto-install missing admin dependencies', true).option('--no-install-deps', 'Do not auto-install missing admin dependencies').description('Start your Strapi application in development mode').action(async (options)=>{
22
22
  return action({
23
23
  ...options,
24
24
  ...ctx
@@ -1 +1 @@
1
- {"version":3,"file":"develop.mjs","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--build-admin', 'Build the admin panel', true)\n .option('--no-build-admin', 'Do not build the admin panel in case watch is disabled')\n .option('--open', 'Open the admin in your browser', true)\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAA,EAAW;gBACjCH,OAAAA,CAAQI,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,YAAA;AACF,QAAA;AAEA,QAAA,MAAMC,OAAAA,CAAYN,OAAAA,CAAAA;AACpB,IAAA,CAAA,CAAE,OAAOO,GAAAA,EAAK;QACZC,qBAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;IACrC,OAAOC,aAAAA,CAAc,SAAA,CAAA,CAClBC,KAAK,CAAC,KAAA,CAAA,CACNC,MAAM,CAAC,qBAAA,EAAuB,kCAAA,EAAoC,MAAA,CAAA,CAClEA,MAAM,CAAC,eAAe,yCAAA,EAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,oBAAA,EAAsB,OACzCA,MAAM,CAAC,WAAA,EAAa,+CAAA,EAAiD,KAAA,CAAA,CACrEA,MAAM,CAAC,eAAA,EAAiB,uCAAA,EAAyC,IAAA,CAAA,CACjEA,MAAM,CAAC,kBAAA,EAAoB,gDAC3BA,MAAM,CAAC,eAAA,EAAiB,uBAAA,EAAyB,IAAA,CAAA,CACjDA,MAAM,CAAC,kBAAA,EAAoB,wDAAA,CAAA,CAC3BA,MAAM,CAAC,QAAA,EAAU,gCAAA,EAAkC,IAAA,CAAA,CACnDC,WAAW,CAAC,mDAAA,CAAA,CACZf,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGU;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
1
+ {"version":3,"file":"develop.mjs","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--build-admin', 'Build the admin panel', true)\n .option('--no-build-admin', 'Do not build the admin panel in case watch is disabled')\n .option('--open', 'Open the admin in your browser', true)\n .option('--install-deps', 'Auto-install missing admin dependencies', true)\n .option('--no-install-deps', 'Do not auto-install missing admin dependencies')\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAA,EAAW;gBACjCH,OAAAA,CAAQI,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ,YAAA;AACF,QAAA;AAEA,QAAA,MAAMC,OAAAA,CAAYN,OAAAA,CAAAA;AACpB,IAAA,CAAA,CAAE,OAAOO,GAAAA,EAAK;QACZC,qBAAAA,CAAsBD,GAAAA,CAAAA;AACxB,IAAA;AACF,CAAA;AAEA;;AAEC,IACD,MAAME,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;AACrC,IAAA,OAAOC,aAAAA,CAAc,SAAA,CAAA,CAClBC,KAAK,CAAC,KAAA,CAAA,CACNC,MAAM,CAAC,qBAAA,EAAuB,kCAAA,EAAoC,MAAA,CAAA,CAClEA,MAAM,CAAC,aAAA,EAAe,yCAAA,EAA2C,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAA,EAAY,oBAAA,EAAsB,KAAA,CAAA,CACzCA,MAAM,CAAC,WAAA,EAAa,+CAAA,EAAiD,KAAA,CAAA,CACrEA,MAAM,CAAC,eAAA,EAAiB,yCAAyC,IAAA,CAAA,CACjEA,MAAM,CAAC,kBAAA,EAAoB,8CAAA,CAAA,CAC3BA,MAAM,CAAC,eAAA,EAAiB,uBAAA,EAAyB,IAAA,CAAA,CACjDA,MAAM,CAAC,kBAAA,EAAoB,wDAAA,CAAA,CAC3BA,MAAM,CAAC,QAAA,EAAU,gCAAA,EAAkC,IAAA,CAAA,CACnDA,MAAM,CAAC,gBAAA,EAAkB,yCAAA,EAA2C,IAAA,CAAA,CACpEA,MAAM,CAAC,mBAAA,EAAqB,gDAAA,CAAA,CAC5BC,WAAW,CAAC,mDAAA,CAAA,CACZf,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAAA,CAAO;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGU;AAAI,SAAA,CAAA;AACrC,IAAA,CAAA,CAAA;AACJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var tsUtils = require('@strapi/typescript-utils');
4
- var dependencies = require('./core/dependencies.js');
4
+ var ensureAdminDependencies = require('./core/ensure-admin-dependencies.js');
5
5
  var timer = require('./core/timer.js');
6
6
  var createBuildContext = require('./create-build-context.js');
7
7
  var staticFiles = require('./staticFiles.js');
@@ -29,16 +29,14 @@ var tsUtils__namespace = /*#__PURE__*/_interopNamespaceDefault(tsUtils);
29
29
  * @example `$ strapi build`
30
30
  *
31
31
  * @description Builds the admin panel of the strapi application.
32
- */ const build = async ({ logger, cwd, tsconfig, ...options })=>{
32
+ */ const build = async ({ logger, cwd, tsconfig, installDeps = false, ...options })=>{
33
33
  const timer$1 = timer.getTimer();
34
- const { didInstall } = await dependencies.checkRequiredDependencies({
34
+ const shouldContinue = await ensureAdminDependencies.handleAdminDependencies({
35
35
  cwd,
36
- logger
37
- }).catch((err)=>{
38
- logger.error(err.message);
39
- process.exit(1);
36
+ logger,
37
+ installIfMissing: installDeps
40
38
  });
41
- if (didInstall) {
39
+ if (!shouldContinue) {
42
40
  return;
43
41
  }
44
42
  if (tsconfig?.config) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sources":["../../../src/node/build.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport type { CLIContext } from '../cli/types';\nimport { checkRequiredDependencies } from './core/dependencies';\nimport { getTimer, prettyTime } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface BuildOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n /**\n * Minify the output\n *\n * @default true\n */\n minify?: boolean;\n /**\n * Generate sourcemaps – useful for debugging bugs in the admin panel UI.\n */\n sourcemaps?: boolean;\n /**\n * Print stats for build\n */\n stats?: boolean;\n}\n\n/**\n * @example `$ strapi build`\n *\n * @description Builds the admin panel of the strapi application.\n */\nconst build = async ({ logger, cwd, tsconfig, ...options }: BuildOptions) => {\n const timer = getTimer();\n\n const { didInstall } = await checkRequiredDependencies({ cwd, logger }).catch((err) => {\n logger.error(err.message);\n process.exit(1);\n });\n\n if (didInstall) {\n return;\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n try {\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n } catch {\n // Match previous compiler behavior (process.exit inside basic.run).\n process.exit(1);\n }\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('buildAdmin');\n const buildingSpinner = logger.spinner(`Building admin panel`).start();\n console.log('');\n\n try {\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const buildDuration = timer.end('buildAdmin');\n buildingSpinner.text = `Building admin panel (${prettyTime(buildDuration)})`;\n buildingSpinner.succeed();\n } catch (err) {\n buildingSpinner.fail();\n throw err;\n }\n};\n\nexport { build };\nexport type { BuildOptions };\n"],"names":["build","logger","cwd","tsconfig","options","timer","getTimer","didInstall","checkRequiredDependencies","catch","err","error","message","process","exit","config","start","compilingTsSpinner","spinner","tsUtils","compile","configOptions","ignoreDiagnostics","compilingDuration","end","text","prettyTime","succeed","contextSpinner","console","log","ctx","createBuildContext","contextDuration","buildingSpinner","writeStaticClientFiles","bundler","buildWebpack","buildVite","buildDuration","fail"],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sources":["../../../src/node/build.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport type { CLIContext } from '../cli/types';\nimport { handleAdminDependencies } from './core/ensure-admin-dependencies';\nimport { getTimer, prettyTime } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface BuildOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n /**\n * Minify the output\n *\n * @default true\n */\n minify?: boolean;\n /**\n * Generate sourcemaps – useful for debugging bugs in the admin panel UI.\n */\n sourcemaps?: boolean;\n /**\n * Print stats for build\n */\n stats?: boolean;\n /**\n * Auto-install missing admin dependencies\n *\n * @default false\n */\n installDeps?: boolean;\n}\n\n/**\n * @example `$ strapi build`\n *\n * @description Builds the admin panel of the strapi application.\n */\nconst build = async ({ logger, cwd, tsconfig, installDeps = false, ...options }: BuildOptions) => {\n const timer = getTimer();\n\n const shouldContinue = await handleAdminDependencies({\n cwd,\n logger,\n installIfMissing: installDeps,\n });\n\n if (!shouldContinue) {\n return;\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n try {\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n } catch {\n // Match previous compiler behavior (process.exit inside basic.run).\n process.exit(1);\n }\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('buildAdmin');\n const buildingSpinner = logger.spinner(`Building admin panel`).start();\n console.log('');\n\n try {\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const buildDuration = timer.end('buildAdmin');\n buildingSpinner.text = `Building admin panel (${prettyTime(buildDuration)})`;\n buildingSpinner.succeed();\n } catch (err) {\n buildingSpinner.fail();\n throw err;\n }\n};\n\nexport { build };\nexport type { BuildOptions };\n"],"names":["build","logger","cwd","tsconfig","installDeps","options","timer","getTimer","shouldContinue","handleAdminDependencies","installIfMissing","config","start","compilingTsSpinner","spinner","tsUtils","compile","configOptions","ignoreDiagnostics","process","exit","compilingDuration","end","text","prettyTime","succeed","contextSpinner","console","log","ctx","createBuildContext","contextDuration","buildingSpinner","writeStaticClientFiles","bundler","buildWebpack","buildVite","buildDuration","err","fail"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as tsUtils from '@strapi/typescript-utils';
2
- import { checkRequiredDependencies } from './core/dependencies.mjs';
2
+ import { handleAdminDependencies } from './core/ensure-admin-dependencies.mjs';
3
3
  import { prettyTime, getTimer } from './core/timer.mjs';
4
4
  import { createBuildContext } from './create-build-context.mjs';
5
5
  import { writeStaticClientFiles } from './staticFiles.mjs';
@@ -8,16 +8,14 @@ import { writeStaticClientFiles } from './staticFiles.mjs';
8
8
  * @example `$ strapi build`
9
9
  *
10
10
  * @description Builds the admin panel of the strapi application.
11
- */ const build = async ({ logger, cwd, tsconfig, ...options })=>{
11
+ */ const build = async ({ logger, cwd, tsconfig, installDeps = false, ...options })=>{
12
12
  const timer = getTimer();
13
- const { didInstall } = await checkRequiredDependencies({
13
+ const shouldContinue = await handleAdminDependencies({
14
14
  cwd,
15
- logger
16
- }).catch((err)=>{
17
- logger.error(err.message);
18
- process.exit(1);
15
+ logger,
16
+ installIfMissing: installDeps
19
17
  });
20
- if (didInstall) {
18
+ if (!shouldContinue) {
21
19
  return;
22
20
  }
23
21
  if (tsconfig?.config) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.mjs","sources":["../../../src/node/build.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport type { CLIContext } from '../cli/types';\nimport { checkRequiredDependencies } from './core/dependencies';\nimport { getTimer, prettyTime } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface BuildOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n /**\n * Minify the output\n *\n * @default true\n */\n minify?: boolean;\n /**\n * Generate sourcemaps – useful for debugging bugs in the admin panel UI.\n */\n sourcemaps?: boolean;\n /**\n * Print stats for build\n */\n stats?: boolean;\n}\n\n/**\n * @example `$ strapi build`\n *\n * @description Builds the admin panel of the strapi application.\n */\nconst build = async ({ logger, cwd, tsconfig, ...options }: BuildOptions) => {\n const timer = getTimer();\n\n const { didInstall } = await checkRequiredDependencies({ cwd, logger }).catch((err) => {\n logger.error(err.message);\n process.exit(1);\n });\n\n if (didInstall) {\n return;\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n try {\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n } catch {\n // Match previous compiler behavior (process.exit inside basic.run).\n process.exit(1);\n }\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('buildAdmin');\n const buildingSpinner = logger.spinner(`Building admin panel`).start();\n console.log('');\n\n try {\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const buildDuration = timer.end('buildAdmin');\n buildingSpinner.text = `Building admin panel (${prettyTime(buildDuration)})`;\n buildingSpinner.succeed();\n } catch (err) {\n buildingSpinner.fail();\n throw err;\n }\n};\n\nexport { build };\nexport type { BuildOptions };\n"],"names":["build","logger","cwd","tsconfig","options","timer","getTimer","didInstall","checkRequiredDependencies","catch","err","error","message","process","exit","config","start","compilingTsSpinner","spinner","tsUtils","compile","configOptions","ignoreDiagnostics","compilingDuration","end","text","prettyTime","succeed","contextSpinner","console","log","ctx","createBuildContext","contextDuration","buildingSpinner","writeStaticClientFiles","bundler","buildWebpack","buildVite","buildDuration","fail"],"mappings":"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"}
1
+ {"version":3,"file":"build.mjs","sources":["../../../src/node/build.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport type { CLIContext } from '../cli/types';\nimport { handleAdminDependencies } from './core/ensure-admin-dependencies';\nimport { getTimer, prettyTime } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface BuildOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n /**\n * Minify the output\n *\n * @default true\n */\n minify?: boolean;\n /**\n * Generate sourcemaps – useful for debugging bugs in the admin panel UI.\n */\n sourcemaps?: boolean;\n /**\n * Print stats for build\n */\n stats?: boolean;\n /**\n * Auto-install missing admin dependencies\n *\n * @default false\n */\n installDeps?: boolean;\n}\n\n/**\n * @example `$ strapi build`\n *\n * @description Builds the admin panel of the strapi application.\n */\nconst build = async ({ logger, cwd, tsconfig, installDeps = false, ...options }: BuildOptions) => {\n const timer = getTimer();\n\n const shouldContinue = await handleAdminDependencies({\n cwd,\n logger,\n installIfMissing: installDeps,\n });\n\n if (!shouldContinue) {\n return;\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n try {\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n } catch {\n // Match previous compiler behavior (process.exit inside basic.run).\n process.exit(1);\n }\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('buildAdmin');\n const buildingSpinner = logger.spinner(`Building admin panel`).start();\n console.log('');\n\n try {\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const buildDuration = timer.end('buildAdmin');\n buildingSpinner.text = `Building admin panel (${prettyTime(buildDuration)})`;\n buildingSpinner.succeed();\n } catch (err) {\n buildingSpinner.fail();\n throw err;\n }\n};\n\nexport { build };\nexport type { BuildOptions };\n"],"names":["build","logger","cwd","tsconfig","installDeps","options","timer","getTimer","shouldContinue","handleAdminDependencies","installIfMissing","config","start","compilingTsSpinner","spinner","tsUtils","compile","configOptions","ignoreDiagnostics","process","exit","compilingDuration","end","text","prettyTime","succeed","contextSpinner","console","log","ctx","createBuildContext","contextDuration","buildingSpinner","writeStaticClientFiles","bundler","buildWebpack","buildVite","buildDuration","err","fail"],"mappings":"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"}