@modern-js/plugin-v2 0.0.0-next-20241113090110

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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/cjs/cli/api.js +107 -0
  4. package/dist/cjs/cli/context.js +75 -0
  5. package/dist/cjs/cli/hooks.js +65 -0
  6. package/dist/cjs/cli/index.js +43 -0
  7. package/dist/cjs/cli/run/config/createLoadedConfig.js +99 -0
  8. package/dist/cjs/cli/run/config/createResolvedConfig.js +40 -0
  9. package/dist/cjs/cli/run/config/loadConfig.js +117 -0
  10. package/dist/cjs/cli/run/create.js +125 -0
  11. package/dist/cjs/cli/run/index.js +29 -0
  12. package/dist/cjs/cli/run/run.js +58 -0
  13. package/dist/cjs/cli/run/types.js +16 -0
  14. package/dist/cjs/cli/run/utils/checkIsDuplicationPlugin.js +45 -0
  15. package/dist/cjs/cli/run/utils/commander.js +50 -0
  16. package/dist/cjs/cli/run/utils/createFileWatcher.js +114 -0
  17. package/dist/cjs/cli/run/utils/initAppDir.js +49 -0
  18. package/dist/cjs/cli/run/utils/loadEnv.js +53 -0
  19. package/dist/cjs/cli/run/utils/mergeConfig.js +62 -0
  20. package/dist/cjs/hooks.js +69 -0
  21. package/dist/cjs/index.js +38 -0
  22. package/dist/cjs/manager.js +141 -0
  23. package/dist/cjs/types/cli/api.js +16 -0
  24. package/dist/cjs/types/cli/context.js +16 -0
  25. package/dist/cjs/types/cli/hooks.js +16 -0
  26. package/dist/cjs/types/cli/index.js +16 -0
  27. package/dist/cjs/types/cli/plugin.js +16 -0
  28. package/dist/cjs/types/hooks.js +16 -0
  29. package/dist/cjs/types/index.js +24 -0
  30. package/dist/cjs/types/plugin.js +16 -0
  31. package/dist/cjs/types/utils.js +16 -0
  32. package/dist/esm/index.js +1499 -0
  33. package/dist/esm-node/cli/api.js +83 -0
  34. package/dist/esm-node/cli/context.js +40 -0
  35. package/dist/esm-node/cli/hooks.js +41 -0
  36. package/dist/esm-node/cli/index.js +14 -0
  37. package/dist/esm-node/cli/run/config/createLoadedConfig.js +74 -0
  38. package/dist/esm-node/cli/run/config/createResolvedConfig.js +16 -0
  39. package/dist/esm-node/cli/run/config/loadConfig.js +80 -0
  40. package/dist/esm-node/cli/run/create.js +101 -0
  41. package/dist/esm-node/cli/run/index.js +5 -0
  42. package/dist/esm-node/cli/run/run.js +34 -0
  43. package/dist/esm-node/cli/run/types.js +0 -0
  44. package/dist/esm-node/cli/run/utils/checkIsDuplicationPlugin.js +21 -0
  45. package/dist/esm-node/cli/run/utils/commander.js +24 -0
  46. package/dist/esm-node/cli/run/utils/createFileWatcher.js +80 -0
  47. package/dist/esm-node/cli/run/utils/initAppDir.js +15 -0
  48. package/dist/esm-node/cli/run/utils/loadEnv.js +19 -0
  49. package/dist/esm-node/cli/run/utils/mergeConfig.js +38 -0
  50. package/dist/esm-node/hooks.js +44 -0
  51. package/dist/esm-node/index.js +9 -0
  52. package/dist/esm-node/manager.js +117 -0
  53. package/dist/esm-node/types/cli/api.js +0 -0
  54. package/dist/esm-node/types/cli/context.js +0 -0
  55. package/dist/esm-node/types/cli/hooks.js +0 -0
  56. package/dist/esm-node/types/cli/index.js +0 -0
  57. package/dist/esm-node/types/cli/plugin.js +0 -0
  58. package/dist/esm-node/types/hooks.js +0 -0
  59. package/dist/esm-node/types/index.js +2 -0
  60. package/dist/esm-node/types/plugin.js +0 -0
  61. package/dist/esm-node/types/utils.js +0 -0
  62. package/dist/types/cli/api.d.ts +7 -0
  63. package/dist/types/cli/context.d.ts +18 -0
  64. package/dist/types/cli/hooks.d.ts +39 -0
  65. package/dist/types/cli/index.d.ts +6 -0
  66. package/dist/types/cli/run/config/createLoadedConfig.d.ts +6 -0
  67. package/dist/types/cli/run/config/createResolvedConfig.d.ts +3 -0
  68. package/dist/types/cli/run/config/loadConfig.d.ts +25 -0
  69. package/dist/types/cli/run/create.d.ts +7 -0
  70. package/dist/types/cli/run/index.d.ts +6 -0
  71. package/dist/types/cli/run/run.d.ts +2 -0
  72. package/dist/types/cli/run/types.d.ts +29 -0
  73. package/dist/types/cli/run/utils/checkIsDuplicationPlugin.d.ts +1 -0
  74. package/dist/types/cli/run/utils/commander.d.ts +5 -0
  75. package/dist/types/cli/run/utils/createFileWatcher.d.ts +2 -0
  76. package/dist/types/cli/run/utils/initAppDir.d.ts +1 -0
  77. package/dist/types/cli/run/utils/loadEnv.d.ts +1 -0
  78. package/dist/types/cli/run/utils/mergeConfig.d.ts +2 -0
  79. package/dist/types/hooks.d.ts +3 -0
  80. package/dist/types/index.d.ts +4 -0
  81. package/dist/types/manager.d.ts +2 -0
  82. package/dist/types/types/cli/api.d.ts +42 -0
  83. package/dist/types/types/cli/context.d.ts +40 -0
  84. package/dist/types/types/cli/hooks.d.ts +41 -0
  85. package/dist/types/types/cli/index.d.ts +3 -0
  86. package/dist/types/types/cli/plugin.d.ts +6 -0
  87. package/dist/types/types/hooks.d.ts +10 -0
  88. package/dist/types/types/index.d.ts +3 -0
  89. package/dist/types/types/plugin.d.ts +40 -0
  90. package/dist/types/types/utils.d.ts +5 -0
  91. package/package.json +85 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var src_exports = {};
21
+ __export(src_exports, {
22
+ createAsyncHook: () => import_hooks.createAsyncHook,
23
+ createCollectAsyncHook: () => import_hooks.createCollectAsyncHook,
24
+ createPluginManager: () => import_manager.createPluginManager
25
+ });
26
+ module.exports = __toCommonJS(src_exports);
27
+ var import_manager = require("./manager");
28
+ var import_hooks = require("./hooks");
29
+ __reExport(src_exports, require("./cli"), module.exports);
30
+ __reExport(src_exports, require("./types"), module.exports);
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ createAsyncHook,
34
+ createCollectAsyncHook,
35
+ createPluginManager,
36
+ ...require("./cli"),
37
+ ...require("./types")
38
+ });
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var manager_exports = {};
20
+ __export(manager_exports, {
21
+ createPluginManager: () => createPluginManager
22
+ });
23
+ module.exports = __toCommonJS(manager_exports);
24
+ var import_utils = require("@modern-js/utils");
25
+ const debug = (0, import_utils.createDebugger)("plugin-v2");
26
+ function validatePlugin(plugin) {
27
+ const type = typeof plugin;
28
+ if (type !== "object" || plugin === null) {
29
+ throw new Error(`Expect CLI Plugin instance to be an object, but got ${type}.`);
30
+ }
31
+ if ((0, import_utils.isFunction)(plugin.setup)) {
32
+ return;
33
+ }
34
+ throw new Error(`Expect CLI Plugin plugin.setup to be a function, but got ${type}.`);
35
+ }
36
+ function createPluginManager() {
37
+ const plugins = /* @__PURE__ */ new Map();
38
+ const dependencies = /* @__PURE__ */ new Map();
39
+ const addDependency = (plugin, dependency, type) => {
40
+ if (!dependencies.has(dependency)) {
41
+ dependencies.set(dependency, {
42
+ pre: /* @__PURE__ */ new Map(),
43
+ post: /* @__PURE__ */ new Map()
44
+ });
45
+ }
46
+ if (type === "pre") {
47
+ dependencies.get(plugin).pre.set(dependency, {
48
+ name: dependency,
49
+ isUse: false
50
+ });
51
+ } else if (type === "post") {
52
+ dependencies.get(plugin).post.set(dependency, {
53
+ name: dependency
54
+ });
55
+ } else if (type === "use") {
56
+ if (!dependencies.get(plugin).post.has(dependency)) {
57
+ dependencies.get(plugin).pre.set(dependency, {
58
+ name: dependency,
59
+ isUse: true
60
+ });
61
+ }
62
+ }
63
+ };
64
+ const addPlugin = (newPlugin) => {
65
+ if (!newPlugin) {
66
+ return;
67
+ }
68
+ validatePlugin(newPlugin);
69
+ const { name, usePlugins = [], pre = [], post = [] } = newPlugin;
70
+ if (plugins.has(name)) {
71
+ import_utils.logger.warn(`Plugin ${name} already exists.`);
72
+ return;
73
+ }
74
+ plugins.set(name, newPlugin);
75
+ dependencies.set(name, {
76
+ pre: /* @__PURE__ */ new Map(),
77
+ post: /* @__PURE__ */ new Map()
78
+ });
79
+ pre.forEach((dep) => {
80
+ addDependency(name, dep, "pre");
81
+ });
82
+ post.forEach((dep) => {
83
+ addDependency(name, dep, "post");
84
+ });
85
+ usePlugins.forEach((plugin) => {
86
+ if (!plugins.has(plugin.name)) {
87
+ addPlugin(plugin);
88
+ }
89
+ addDependency(name, plugin.name, "use");
90
+ });
91
+ };
92
+ const addPlugins = (newPlugins) => {
93
+ for (const newPlugin of newPlugins) {
94
+ addPlugin(newPlugin);
95
+ }
96
+ };
97
+ const getPlugins = () => {
98
+ const visited = /* @__PURE__ */ new Set();
99
+ const temp = /* @__PURE__ */ new Set();
100
+ let result = [];
101
+ const visit = (name) => {
102
+ if (temp.has(name)) {
103
+ throw new Error(`Circular dependency detected: ${name}`);
104
+ }
105
+ if (!visited.has(name)) {
106
+ temp.add(name);
107
+ const { pre } = dependencies.get(name);
108
+ Array.from(pre.values()).filter((dep) => !dep.isUse).forEach((dep) => visit(dep.name));
109
+ Array.from(pre.values()).filter((dep) => dep.isUse).forEach((dep) => visit(dep.name));
110
+ temp.delete(name);
111
+ visited.add(name);
112
+ result.push(plugins.get(name));
113
+ }
114
+ };
115
+ plugins.forEach((_, name) => {
116
+ const { post } = dependencies.get(name);
117
+ post.forEach((dep) => {
118
+ if (!dependencies.get(dep.name).pre.has(name)) {
119
+ dependencies.get(dep.name).pre.set(name, {
120
+ name,
121
+ isUse: false
122
+ });
123
+ }
124
+ });
125
+ });
126
+ plugins.forEach((_, name) => {
127
+ visit(name);
128
+ });
129
+ result = result.filter((result2) => result2);
130
+ debug("CLI Plugins:", result.map((p) => p.name));
131
+ return result;
132
+ };
133
+ return {
134
+ getPlugins,
135
+ addPlugins
136
+ };
137
+ }
138
+ // Annotate the CommonJS export names for ESM import in node:
139
+ 0 && (module.exports = {
140
+ createPluginManager
141
+ });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var api_exports = {};
16
+ module.exports = __toCommonJS(api_exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var context_exports = {};
16
+ module.exports = __toCommonJS(context_exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var hooks_exports = {};
16
+ module.exports = __toCommonJS(hooks_exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var cli_exports = {};
16
+ module.exports = __toCommonJS(cli_exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var plugin_exports = {};
16
+ module.exports = __toCommonJS(plugin_exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var hooks_exports = {};
16
+ module.exports = __toCommonJS(hooks_exports);
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var types_exports = {};
17
+ module.exports = __toCommonJS(types_exports);
18
+ __reExport(types_exports, require("./cli"), module.exports);
19
+ __reExport(types_exports, require("./hooks"), module.exports);
20
+ // Annotate the CommonJS export names for ESM import in node:
21
+ 0 && (module.exports = {
22
+ ...require("./cli"),
23
+ ...require("./hooks")
24
+ });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var plugin_exports = {};
16
+ module.exports = __toCommonJS(plugin_exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var utils_exports = {};
16
+ module.exports = __toCommonJS(utils_exports);