@modern-js/utils 1.3.6 → 1.3.8-canary.0

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 (317) hide show
  1. package/.eslintrc.js +9 -0
  2. package/CHANGELOG.md +6 -0
  3. package/compiled/browserslist/index.d.ts +178 -0
  4. package/compiled/browserslist/index.js +1 -0
  5. package/compiled/browserslist/license +20 -0
  6. package/compiled/browserslist/package.json +1 -0
  7. package/compiled/chalk/index.d.ts +415 -0
  8. package/compiled/chalk/index.js +1 -0
  9. package/compiled/chalk/license +9 -0
  10. package/compiled/chalk/package.json +1 -0
  11. package/compiled/chokidar/anymatch/index.d.ts +19 -0
  12. package/compiled/chokidar/fsevents.node +0 -0
  13. package/compiled/chokidar/index.js +40 -0
  14. package/compiled/chokidar/license +21 -0
  15. package/compiled/chokidar/package.json +1 -0
  16. package/compiled/chokidar/types/index.d.ts +188 -0
  17. package/compiled/commander/index.js +1 -0
  18. package/compiled/commander/license +22 -0
  19. package/compiled/commander/package.json +1 -0
  20. package/compiled/commander/typings/index.d.ts +774 -0
  21. package/compiled/debug/index.d.ts +54 -0
  22. package/compiled/debug/index.js +1 -0
  23. package/compiled/debug/license +20 -0
  24. package/compiled/debug/ms/index.d.ts +25 -0
  25. package/compiled/debug/package.json +1 -0
  26. package/compiled/execa/index.d.ts +564 -0
  27. package/compiled/execa/index.js +1 -0
  28. package/compiled/execa/license +9 -0
  29. package/compiled/execa/package.json +1 -0
  30. package/compiled/filesize/filesize.d.ts +131 -0
  31. package/compiled/filesize/index.js +9 -0
  32. package/compiled/filesize/license +28 -0
  33. package/compiled/filesize/package.json +1 -0
  34. package/compiled/fs-extra/index.d.ts +563 -0
  35. package/compiled/fs-extra/index.js +1 -0
  36. package/compiled/fs-extra/license +15 -0
  37. package/compiled/fs-extra/package.json +1 -0
  38. package/compiled/glob/index.d.ts +91 -0
  39. package/compiled/glob/index.js +1 -0
  40. package/compiled/glob/license +21 -0
  41. package/compiled/glob/minimatch/index.d.ts +204 -0
  42. package/compiled/glob/package.json +1 -0
  43. package/compiled/gzip-size/index.d.ts +96 -0
  44. package/compiled/gzip-size/index.js +1 -0
  45. package/compiled/gzip-size/license +9 -0
  46. package/compiled/gzip-size/package.json +1 -0
  47. package/compiled/import-lazy/index.d.ts +26 -0
  48. package/compiled/import-lazy/index.js +1 -0
  49. package/compiled/import-lazy/license +9 -0
  50. package/compiled/import-lazy/package.json +1 -0
  51. package/compiled/js-yaml/index.d.ts +154 -0
  52. package/compiled/js-yaml/index.js +1 -0
  53. package/compiled/js-yaml/license +21 -0
  54. package/compiled/js-yaml/package.json +1 -0
  55. package/compiled/lodash/common/array.d.ts +2126 -0
  56. package/compiled/lodash/common/collection.d.ts +1930 -0
  57. package/compiled/lodash/common/common.d.ts +280 -0
  58. package/compiled/lodash/common/date.d.ts +23 -0
  59. package/compiled/lodash/common/function.d.ts +1446 -0
  60. package/compiled/lodash/common/lang.d.ts +1693 -0
  61. package/compiled/lodash/common/math.d.ts +405 -0
  62. package/compiled/lodash/common/number.d.ts +131 -0
  63. package/compiled/lodash/common/object.d.ts +2519 -0
  64. package/compiled/lodash/common/seq.d.ts +210 -0
  65. package/compiled/lodash/common/string.d.ts +788 -0
  66. package/compiled/lodash/common/util.d.ts +1220 -0
  67. package/compiled/lodash/index.d.ts +46 -0
  68. package/compiled/lodash/index.js +9 -0
  69. package/compiled/lodash/license +47 -0
  70. package/compiled/lodash/package.json +1 -0
  71. package/compiled/pkg-up/index.d.ts +48 -0
  72. package/compiled/pkg-up/index.js +1 -0
  73. package/compiled/pkg-up/license +9 -0
  74. package/compiled/pkg-up/package.json +1 -0
  75. package/compiled/recursive-readdir/index.d.ts +21 -0
  76. package/compiled/recursive-readdir/index.js +1 -0
  77. package/compiled/recursive-readdir/license +21 -0
  78. package/compiled/recursive-readdir/package.json +1 -0
  79. package/compiled/signale/index.d.ts +162 -0
  80. package/compiled/signale/index.js +1 -0
  81. package/compiled/signale/package.json +1 -0
  82. package/compiled/strip-ansi/index.d.ts +17 -0
  83. package/compiled/strip-ansi/index.js +1 -0
  84. package/compiled/strip-ansi/license +9 -0
  85. package/compiled/strip-ansi/package.json +1 -0
  86. package/compiled/upath/index.js +1 -0
  87. package/compiled/upath/license +22 -0
  88. package/compiled/upath/package.json +1 -0
  89. package/compiled/upath/upath.d.ts +241 -0
  90. package/dist/FileSizeReporter.d.ts +16 -0
  91. package/dist/FileSizeReporter.js +151 -0
  92. package/dist/alias.d.ts +21 -0
  93. package/dist/alias.js +62 -0
  94. package/dist/applyOptionsChain.d.ts +6 -0
  95. package/dist/applyOptionsChain.js +30 -0
  96. package/dist/clearConsole.d.ts +1 -0
  97. package/dist/clearConsole.js +9 -0
  98. package/dist/compatRequire.d.ts +8 -0
  99. package/dist/compatRequire.js +28 -0
  100. package/dist/compiled.d.ts +21 -0
  101. package/dist/compiled.js +33 -0
  102. package/dist/constants.d.ts +222 -0
  103. package/dist/constants.js +277 -0
  104. package/dist/{js/modern/debug.js → debug.d.ts} +1 -3
  105. package/dist/debug.js +11 -0
  106. package/dist/emptyDir.d.ts +1 -0
  107. package/dist/emptyDir.js +19 -0
  108. package/dist/{js/modern/ensureAbsolutePath.js → ensureAbsolutePath.d.ts} +1 -3
  109. package/dist/ensureAbsolutePath.js +15 -0
  110. package/dist/findExists.d.ts +6 -0
  111. package/dist/findExists.js +21 -0
  112. package/dist/format.d.ts +16 -0
  113. package/dist/format.js +113 -0
  114. package/dist/generateMetaTags.d.ts +16 -0
  115. package/dist/generateMetaTags.js +48 -0
  116. package/dist/getBrowserslist.d.ts +2 -0
  117. package/dist/getBrowserslist.js +7 -0
  118. package/dist/getCacheIdentifier.d.ts +7 -0
  119. package/dist/getCacheIdentifier.js +24 -0
  120. package/dist/getEntryOptions.d.ts +1 -0
  121. package/dist/getEntryOptions.js +26 -0
  122. package/dist/getPackageManager.d.ts +1 -0
  123. package/dist/getPackageManager.js +47 -0
  124. package/dist/getPort.d.ts +7 -0
  125. package/dist/getPort.js +62 -0
  126. package/dist/getServerConfig.d.ts +1 -0
  127. package/dist/getServerConfig.js +39 -0
  128. package/dist/import.d.ts +5 -0
  129. package/dist/import.js +10 -0
  130. package/dist/index.d.ts +33 -0
  131. package/dist/index.js +45 -0
  132. package/dist/is/index.d.ts +34 -0
  133. package/dist/is/index.js +82 -0
  134. package/dist/is/node-env.d.ts +4 -0
  135. package/dist/is/node-env.js +12 -0
  136. package/dist/is/platform.d.ts +2 -0
  137. package/dist/is/platform.js +10 -0
  138. package/dist/is/type.d.ts +8 -0
  139. package/dist/is/type.js +38 -0
  140. package/dist/js/modern/monorepo.js +4 -5
  141. package/dist/js/node/monorepo.js +5 -7
  142. package/dist/js/treeshaking/monorepo.js +7 -6
  143. package/dist/logger.d.ts +63 -0
  144. package/dist/logger.js +128 -0
  145. package/dist/monorepo.d.ts +11 -0
  146. package/dist/monorepo.js +80 -0
  147. package/dist/nodeEnv.d.ts +3 -0
  148. package/dist/nodeEnv.js +49 -0
  149. package/dist/path.d.ts +3 -0
  150. package/dist/path.js +14 -0
  151. package/dist/{types/pkgUp.d.ts → pkgUp.d.ts} +1 -1
  152. package/dist/pkgUp.js +8 -0
  153. package/dist/prettyInstructions.d.ts +6 -0
  154. package/dist/prettyInstructions.js +64 -0
  155. package/dist/printBuildError.d.ts +8 -0
  156. package/dist/printBuildError.js +43 -0
  157. package/dist/readTsConfig.d.ts +2 -0
  158. package/dist/readTsConfig.js +19 -0
  159. package/dist/removeSlash.d.ts +3 -0
  160. package/dist/removeSlash.js +9 -0
  161. package/dist/runtimeExports.d.ts +4 -0
  162. package/dist/runtimeExports.js +53 -0
  163. package/dist/ssrHelpers.d.ts +4 -0
  164. package/dist/ssrHelpers.js +7 -0
  165. package/dist/storage.d.ts +5 -0
  166. package/dist/storage.js +61 -0
  167. package/dist/types/FileSizeReporter.d.ts +5 -5
  168. package/dist/types/alias.d.ts +12 -14
  169. package/dist/types/applyOptionsChain.d.ts +5 -5
  170. package/dist/types/clearConsole.d.ts +1 -1
  171. package/dist/types/compatRequire.d.ts +1 -1
  172. package/dist/types/compiled.d.ts +17 -0
  173. package/dist/types/constants.d.ts +165 -162
  174. package/dist/types/debug.d.ts +1 -3
  175. package/dist/types/emptyDir.d.ts +1 -1
  176. package/dist/types/ensureAbsolutePath.d.ts +1 -1
  177. package/dist/types/findExists.d.ts +1 -1
  178. package/dist/types/format.d.ts +5 -5
  179. package/dist/types/generateMetaTags.d.ts +3 -3
  180. package/dist/types/getBrowserslist.d.ts +1 -1
  181. package/dist/types/getCacheIdentifier.d.ts +3 -3
  182. package/dist/types/getEntryOptions.d.ts +1 -1
  183. package/dist/types/getPackageManager.d.ts +1 -1
  184. package/dist/types/getPort.d.ts +1 -1
  185. package/dist/types/getServerConfig.d.ts +1 -0
  186. package/dist/types/import.d.ts +2 -2
  187. package/dist/types/index.d.ts +3 -4
  188. package/dist/types/is/index.d.ts +1 -4
  189. package/dist/types/is/node-env.d.ts +1 -1
  190. package/dist/types/is/platform.d.ts +1 -1
  191. package/dist/types/is/type.d.ts +1 -1
  192. package/dist/types/logger.d.ts +49 -49
  193. package/dist/types/monorepo.d.ts +3 -3
  194. package/dist/types/nodeEnv.d.ts +1 -1
  195. package/dist/types/path.d.ts +1 -1
  196. package/dist/types/prettyInstructions.d.ts +2 -2
  197. package/dist/types/printBuildError.d.ts +1 -1
  198. package/dist/types/readTsConfig.d.ts +1 -1
  199. package/dist/types/removeSlash.d.ts +1 -1
  200. package/dist/types/runtimeExports.d.ts +3 -3
  201. package/dist/types/wait.d.ts +1 -1
  202. package/dist/types/watch.d.ts +4 -4
  203. package/dist/wait.d.ts +2 -0
  204. package/dist/wait.js +7 -0
  205. package/dist/watch.d.ts +8 -0
  206. package/dist/watch.js +64 -0
  207. package/jest.config.js +0 -1
  208. package/package.json +57 -40
  209. package/tests/debug.test.ts +2 -2
  210. package/tests/is.test.ts +27 -0
  211. package/tests/isPlatform.test.ts +19 -0
  212. package/tests/prettyInstructions.test.ts +1 -1
  213. package/tsconfig.json +3 -5
  214. package/dist/js/modern/FileSizeReporter.js +0 -156
  215. package/dist/js/modern/alias.js +0 -74
  216. package/dist/js/modern/applyOptionsChain.js +0 -27
  217. package/dist/js/modern/chalk.js +0 -2
  218. package/dist/js/modern/clearConsole.js +0 -5
  219. package/dist/js/modern/compatRequire.js +0 -26
  220. package/dist/js/modern/constants.js +0 -333
  221. package/dist/js/modern/emptyDir.js +0 -6
  222. package/dist/js/modern/findExists.js +0 -16
  223. package/dist/js/modern/format.js +0 -137
  224. package/dist/js/modern/generateMetaTags.js +0 -49
  225. package/dist/js/modern/getBrowserslist.js +0 -5
  226. package/dist/js/modern/getCacheIdentifier.js +0 -20
  227. package/dist/js/modern/getEntryOptions.js +0 -24
  228. package/dist/js/modern/getPackageManager.js +0 -37
  229. package/dist/js/modern/getPort.js +0 -52
  230. package/dist/js/modern/import.js +0 -11
  231. package/dist/js/modern/index.js +0 -34
  232. package/dist/js/modern/is/index.js +0 -77
  233. package/dist/js/modern/is/node-env.js +0 -5
  234. package/dist/js/modern/is/platform.js +0 -2
  235. package/dist/js/modern/is/type.js +0 -27
  236. package/dist/js/modern/logger.js +0 -152
  237. package/dist/js/modern/nodeEnv.js +0 -31
  238. package/dist/js/modern/path.js +0 -5
  239. package/dist/js/modern/pkgUp.js +0 -2
  240. package/dist/js/modern/prettyInstructions.js +0 -79
  241. package/dist/js/modern/printBuildError.js +0 -40
  242. package/dist/js/modern/readTsConfig.js +0 -13
  243. package/dist/js/modern/removeSlash.js +0 -3
  244. package/dist/js/modern/runtimeExports.js +0 -52
  245. package/dist/js/modern/wait.js +0 -5
  246. package/dist/js/modern/watch.js +0 -43
  247. package/dist/js/node/FileSizeReporter.js +0 -175
  248. package/dist/js/node/alias.js +0 -97
  249. package/dist/js/node/applyOptionsChain.js +0 -37
  250. package/dist/js/node/chalk.js +0 -15
  251. package/dist/js/node/clearConsole.js +0 -14
  252. package/dist/js/node/compatRequire.js +0 -41
  253. package/dist/js/node/constants.js +0 -353
  254. package/dist/js/node/debug.js +0 -19
  255. package/dist/js/node/emptyDir.js +0 -18
  256. package/dist/js/node/ensureAbsolutePath.js +0 -20
  257. package/dist/js/node/findExists.js +0 -27
  258. package/dist/js/node/format.js +0 -141
  259. package/dist/js/node/generateMetaTags.js +0 -58
  260. package/dist/js/node/getBrowserslist.js +0 -17
  261. package/dist/js/node/getCacheIdentifier.js +0 -27
  262. package/dist/js/node/getEntryOptions.js +0 -35
  263. package/dist/js/node/getPackageManager.js +0 -51
  264. package/dist/js/node/getPort.js +0 -67
  265. package/dist/js/node/import.js +0 -19
  266. package/dist/js/node/index.js +0 -465
  267. package/dist/js/node/is/index.js +0 -150
  268. package/dist/js/node/is/node-env.js +0 -23
  269. package/dist/js/node/is/platform.js +0 -14
  270. package/dist/js/node/is/type.js +0 -48
  271. package/dist/js/node/logger.js +0 -162
  272. package/dist/js/node/nodeEnv.js +0 -45
  273. package/dist/js/node/path.js +0 -24
  274. package/dist/js/node/pkgUp.js +0 -15
  275. package/dist/js/node/prettyInstructions.js +0 -95
  276. package/dist/js/node/printBuildError.js +0 -52
  277. package/dist/js/node/readTsConfig.js +0 -28
  278. package/dist/js/node/removeSlash.js +0 -18
  279. package/dist/js/node/runtimeExports.js +0 -68
  280. package/dist/js/node/wait.js +0 -12
  281. package/dist/js/node/watch.js +0 -61
  282. package/dist/js/treeshaking/FileSizeReporter.js +0 -185
  283. package/dist/js/treeshaking/alias.js +0 -72
  284. package/dist/js/treeshaking/applyOptionsChain.js +0 -31
  285. package/dist/js/treeshaking/chalk.js +0 -2
  286. package/dist/js/treeshaking/clearConsole.js +0 -5
  287. package/dist/js/treeshaking/compatRequire.js +0 -29
  288. package/dist/js/treeshaking/constants.js +0 -333
  289. package/dist/js/treeshaking/debug.js +0 -10
  290. package/dist/js/treeshaking/emptyDir.js +0 -37
  291. package/dist/js/treeshaking/ensureAbsolutePath.js +0 -11
  292. package/dist/js/treeshaking/findExists.js +0 -33
  293. package/dist/js/treeshaking/format.js +0 -167
  294. package/dist/js/treeshaking/generateMetaTags.js +0 -55
  295. package/dist/js/treeshaking/getBrowserslist.js +0 -7
  296. package/dist/js/treeshaking/getCacheIdentifier.js +0 -35
  297. package/dist/js/treeshaking/getEntryOptions.js +0 -26
  298. package/dist/js/treeshaking/getPackageManager.js +0 -101
  299. package/dist/js/treeshaking/getPort.js +0 -103
  300. package/dist/js/treeshaking/import.js +0 -11
  301. package/dist/js/treeshaking/index.js +0 -34
  302. package/dist/js/treeshaking/is/index.js +0 -81
  303. package/dist/js/treeshaking/is/node-env.js +0 -13
  304. package/dist/js/treeshaking/is/platform.js +0 -6
  305. package/dist/js/treeshaking/is/type.js +0 -29
  306. package/dist/js/treeshaking/logger.js +0 -188
  307. package/dist/js/treeshaking/nodeEnv.js +0 -108
  308. package/dist/js/treeshaking/path.js +0 -11
  309. package/dist/js/treeshaking/pkgUp.js +0 -2
  310. package/dist/js/treeshaking/prettyInstructions.js +0 -100
  311. package/dist/js/treeshaking/printBuildError.js +0 -40
  312. package/dist/js/treeshaking/readTsConfig.js +0 -13
  313. package/dist/js/treeshaking/removeSlash.js +0 -9
  314. package/dist/js/treeshaking/runtimeExports.js +0 -61
  315. package/dist/js/treeshaking/wait.js +0 -8
  316. package/dist/js/treeshaking/watch.js +0 -112
  317. package/dist/types/chalk.d.ts +0 -2
package/dist/logger.js ADDED
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logger = void 0;
7
+ const chalk_1 = __importDefault(require("../compiled/chalk"));
8
+ const { grey, underline } = chalk_1.default;
9
+ const LOG_TYPES = {
10
+ error: {
11
+ color: 'red',
12
+ label: 'error',
13
+ level: 'error',
14
+ },
15
+ info: {
16
+ color: 'blue',
17
+ label: 'info',
18
+ level: 'info',
19
+ },
20
+ warn: {
21
+ color: 'yellow',
22
+ label: 'warning',
23
+ level: 'warn',
24
+ },
25
+ debug: {
26
+ color: 'red',
27
+ label: 'debug',
28
+ level: 'debug',
29
+ },
30
+ log: { level: 'info' },
31
+ };
32
+ const DEFAULT_CONFIG = {
33
+ displayLabel: true,
34
+ underlineLabel: true,
35
+ uppercaseLabel: false,
36
+ };
37
+ class Logger {
38
+ constructor(options = {}) {
39
+ this.logCount = 200;
40
+ this.history = {};
41
+ this.config = Object.assign(Object.assign({}, DEFAULT_CONFIG), (options.config || {}));
42
+ this.types = Object.assign(Object.assign({}, LOG_TYPES), (options.types || {}));
43
+ this.longestLabel = this.getLongestLabel();
44
+ Object.keys(this.types).forEach(type => {
45
+ this[type] = this._log.bind(this, type);
46
+ });
47
+ }
48
+ retainLog(type, message) {
49
+ if (!this.history[type]) {
50
+ this.history[type] = [];
51
+ }
52
+ this.history[type].push(message);
53
+ while (this.history[type].length > this.logCount) {
54
+ this.history[type].shift();
55
+ }
56
+ }
57
+ _log(type, message) {
58
+ if (message === undefined) {
59
+ // eslint-disable-next-line no-console
60
+ console.log();
61
+ return;
62
+ }
63
+ let label = '';
64
+ let text = '';
65
+ const logType = this.types[type];
66
+ if (this.config.displayLabel && logType.label) {
67
+ label = this.config.uppercaseLabel
68
+ ? logType.label.toUpperCase()
69
+ : logType.label;
70
+ if (this.config.underlineLabel) {
71
+ label = underline(label).padEnd(this.longestUnderlinedLabel.length + 1);
72
+ }
73
+ else {
74
+ label = label.padEnd(this.longestLabel.length + 1);
75
+ }
76
+ label = logType.color ? chalk_1.default[logType.color](label) : label;
77
+ }
78
+ if (message instanceof Error) {
79
+ if (message.stack) {
80
+ const [name, ...rest] = message.stack.split('\n');
81
+ text = `${name}\n${grey(rest.join('\n'))}`;
82
+ }
83
+ else {
84
+ text = message.message;
85
+ }
86
+ }
87
+ else {
88
+ text = `${message}`;
89
+ }
90
+ // only retain logs of warn/error level
91
+ if (logType.level === 'warn' || logType.level === 'error') {
92
+ // retain log text without label
93
+ this.retainLog(type, text);
94
+ }
95
+ const log = label.length > 0 ? `${label} ${text}` : text;
96
+ // eslint-disable-next-line no-console
97
+ console.log(log);
98
+ }
99
+ getLongestLabel() {
100
+ let longestLabel = '';
101
+ Object.keys(this.types).forEach(type => {
102
+ const { label = '' } = this.types[type];
103
+ if (label.length > longestLabel.length) {
104
+ longestLabel = label;
105
+ }
106
+ });
107
+ return longestLabel;
108
+ }
109
+ get longestUnderlinedLabel() {
110
+ return underline(this.longestLabel);
111
+ }
112
+ getRetainedLogs(type) {
113
+ return this.history[type] || [];
114
+ }
115
+ clearRetainedLogs(type) {
116
+ if (type) {
117
+ if (this.history[type]) {
118
+ this.history[type] = [];
119
+ }
120
+ }
121
+ else {
122
+ this.history = {};
123
+ }
124
+ }
125
+ }
126
+ const logger = new Logger();
127
+ exports.logger = logger;
128
+ logger.Logger = Logger;
@@ -0,0 +1,11 @@
1
+ import path from 'path';
2
+ export declare const isLerna: (root: string) => boolean;
3
+ export declare const isYarnWorkspaces: (root: string) => boolean;
4
+ export declare const isPnpmWorkspaces: (root: string) => boolean;
5
+ export declare const isMonorepo: (root: string) => boolean;
6
+ export declare const isModernjsMonorepo: (root: string) => boolean;
7
+ export declare const findMonorepoRoot: (appDirectory: string, maxDepth?: number) => string | undefined;
8
+ export declare const getMonorepoPackages: (root: string) => {
9
+ name: string;
10
+ path: string;
11
+ }[];
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getMonorepoPackages = exports.findMonorepoRoot = exports.isModernjsMonorepo = exports.isMonorepo = exports.isPnpmWorkspaces = exports.isYarnWorkspaces = exports.isLerna = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const compiled_1 = require("./compiled");
10
+ const PACKAGE_MAX_DEPTH = 5;
11
+ const WOKRSPACES_FILES = {
12
+ YARN: 'package.json',
13
+ PNPM: 'pnpm-workspaces.yaml',
14
+ LERNA: 'lerna.json',
15
+ };
16
+ const isLerna = (root) => fs_1.default.existsSync(path_1.default.join(root, WOKRSPACES_FILES.LERNA));
17
+ exports.isLerna = isLerna;
18
+ const isYarnWorkspaces = (root) => {
19
+ var _a;
20
+ const pkg = path_1.default.join(root, WOKRSPACES_FILES.YARN);
21
+ if (!fs_1.default.existsSync(pkg)) {
22
+ return false;
23
+ }
24
+ const json = JSON.parse(fs_1.default.readFileSync(pkg, 'utf8'));
25
+ return Boolean((_a = json.workspaces) === null || _a === void 0 ? void 0 : _a.packages);
26
+ };
27
+ exports.isYarnWorkspaces = isYarnWorkspaces;
28
+ const isPnpmWorkspaces = (root) => fs_1.default.existsSync(path_1.default.join(root, WOKRSPACES_FILES.PNPM));
29
+ exports.isPnpmWorkspaces = isPnpmWorkspaces;
30
+ const isMonorepo = (root) => (0, exports.isLerna)(root) || (0, exports.isYarnWorkspaces)(root) || (0, exports.isPnpmWorkspaces)(root);
31
+ exports.isMonorepo = isMonorepo;
32
+ const isModernjsMonorepo = (root) => {
33
+ const json = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, 'package.json'), 'utf8'));
34
+ const deps = Object.assign(Object.assign({}, (json.dependencies || {})), (json.devDependencies || {}));
35
+ return Boolean(deps['@modern-js/monorepo-tools']);
36
+ };
37
+ exports.isModernjsMonorepo = isModernjsMonorepo;
38
+ const findMonorepoRoot = (appDirectory, maxDepth = PACKAGE_MAX_DEPTH) => {
39
+ let inMonorepo = false;
40
+ for (let depth = 0; depth < maxDepth; depth++) {
41
+ if ((0, exports.isMonorepo)(appDirectory)) {
42
+ inMonorepo = true;
43
+ break;
44
+ }
45
+ // eslint-disable-next-line no-param-reassign
46
+ appDirectory = path_1.default.dirname(appDirectory);
47
+ }
48
+ return inMonorepo ? appDirectory : undefined;
49
+ };
50
+ exports.findMonorepoRoot = findMonorepoRoot;
51
+ const getMonorepoPackages = (root) => {
52
+ let packages = [];
53
+ if ((0, exports.isYarnWorkspaces)(root)) {
54
+ const json = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, 'package.json'), 'utf8'));
55
+ ({ packages } = json.workspaces);
56
+ }
57
+ else if ((0, exports.isLerna)(root)) {
58
+ const json = JSON.parse(fs_1.default.readFileSync(path_1.default.resolve(root, 'lerna.json'), 'utf8'));
59
+ ({ packages } = json);
60
+ }
61
+ else {
62
+ ({ packages } = compiled_1.yaml.load(fs_1.default.readFileSync(path_1.default.join(root, WOKRSPACES_FILES.PNPM), 'utf8')));
63
+ }
64
+ if (packages) {
65
+ return packages
66
+ .map(name =>
67
+ // The trailing / ensures only dirs are picked up
68
+ compiled_1.glob.sync(path_1.default.join(root, `${name}/`), {
69
+ ignore: ['**/node_modules/**'],
70
+ }))
71
+ .reduce((acc, val) => acc.concat(val), [])
72
+ .filter(filepath => fs_1.default.existsSync(path_1.default.resolve(filepath, 'package.json')))
73
+ .map(filepath => ({
74
+ path: filepath,
75
+ name: JSON.parse(fs_1.default.readFileSync(path_1.default.resolve(filepath, 'package.json'), 'utf8')).name,
76
+ }));
77
+ }
78
+ return [];
79
+ };
80
+ exports.getMonorepoPackages = getMonorepoPackages;
@@ -0,0 +1,3 @@
1
+ export declare function canUseNpm(): Promise<boolean>;
2
+ export declare function canUseYarn(): Promise<boolean>;
3
+ export declare function canUsePnpm(): Promise<boolean>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.canUsePnpm = exports.canUseYarn = exports.canUseNpm = void 0;
13
+ const compiled_1 = require("./compiled");
14
+ function canUseNpm() {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ try {
17
+ yield (0, compiled_1.execa)('npm', ['--version'], { env: process.env });
18
+ return true;
19
+ }
20
+ catch (e) {
21
+ return false;
22
+ }
23
+ });
24
+ }
25
+ exports.canUseNpm = canUseNpm;
26
+ function canUseYarn() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ try {
29
+ yield (0, compiled_1.execa)('yarn', ['--version'], { env: process.env });
30
+ return true;
31
+ }
32
+ catch (e) {
33
+ return false;
34
+ }
35
+ });
36
+ }
37
+ exports.canUseYarn = canUseYarn;
38
+ function canUsePnpm() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ try {
41
+ yield (0, compiled_1.execa)('pnpm', ['--version'], { env: process.env });
42
+ return true;
43
+ }
44
+ catch (e) {
45
+ return false;
46
+ }
47
+ });
48
+ }
49
+ exports.canUsePnpm = canUsePnpm;
package/dist/path.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare const isRelativePath: (test: string) => boolean;
2
+ export declare const normalizeOutputPath: (s: string) => string;
3
+ export declare const normalizeToPosixPath: (p: string) => string;
package/dist/path.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.normalizeToPosixPath = exports.normalizeOutputPath = exports.isRelativePath = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const compiled_1 = require("./compiled");
9
+ const isRelativePath = (test) => /^\.\.?($|[\\/])/.test(test);
10
+ exports.isRelativePath = isRelativePath;
11
+ const normalizeOutputPath = (s) => s.replace(/\\/g, '\\\\');
12
+ exports.normalizeOutputPath = normalizeOutputPath;
13
+ const normalizeToPosixPath = (p) => compiled_1.upath.normalizeSafe(path_1.default.normalize(p));
14
+ exports.normalizeToPosixPath = normalizeToPosixPath;
@@ -1,2 +1,2 @@
1
1
  import pkgUp from 'pkg-up';
2
- export { pkgUp };
2
+ export { pkgUp };
package/dist/pkgUp.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pkgUp = void 0;
7
+ const pkg_up_1 = __importDefault(require("pkg-up"));
8
+ exports.pkgUp = pkg_up_1.default;
@@ -0,0 +1,6 @@
1
+ interface EntryPoint {
2
+ entryName: string;
3
+ }
4
+ export declare const isSingleEntry: (entrypoints: EntryPoint[]) => boolean;
5
+ export declare const prettyInstructions: (appContext: any, config: any) => string;
6
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prettyInstructions = exports.isSingleEntry = void 0;
7
+ const os_1 = __importDefault(require("os"));
8
+ const compiled_1 = require("./compiled");
9
+ const is_1 = require("./is");
10
+ // TODO: remove hard code 'main'
11
+ const isSingleEntry = (entrypoints) => entrypoints.length === 1 && entrypoints[0].entryName === 'main';
12
+ exports.isSingleEntry = isSingleEntry;
13
+ const normalizeUrl = (url) => url.replace(/([^:]\/)\/+/g, '$1');
14
+ const getAddressUrls = (protocol = 'http', port) => {
15
+ const interfaces = os_1.default.networkInterfaces();
16
+ const ipv4Interfaces = [];
17
+ Object.keys(interfaces).forEach(key => {
18
+ interfaces[key].forEach(detail => {
19
+ if (detail.family === 'IPv4') {
20
+ ipv4Interfaces.push(detail);
21
+ }
22
+ });
23
+ });
24
+ return ipv4Interfaces.reduce((memo, detail) => {
25
+ let type = 'Network: ';
26
+ let url = `${protocol}://${detail.address}:${port}`;
27
+ if (detail.address.includes(`localhost`)) {
28
+ type = 'Local: ';
29
+ url = `${protocol}://localhost:${port}`;
30
+ }
31
+ memo.push({ type, url });
32
+ return memo;
33
+ }, []);
34
+ };
35
+ const prettyInstructions = (appContext, config) => {
36
+ const { entrypoints, serverRoutes, port, existSrc, checkedEntries } = appContext;
37
+ const urls = getAddressUrls(config.dev.https && (0, is_1.isDev)() ? 'https' : 'http', port);
38
+ const routes = existSrc
39
+ ? serverRoutes.filter(route => route.entryName)
40
+ : serverRoutes;
41
+ let message = 'App running at:\n\n';
42
+ if ((0, exports.isSingleEntry)(entrypoints) || !existSrc) {
43
+ message += urls
44
+ .map(({ type, url }) => ` ${compiled_1.chalk.bold(`> ${type.padEnd(10)}`)}${compiled_1.chalk.cyanBright(normalizeUrl(`${url}/${routes[0].urlPath}`))}\n`)
45
+ .join('');
46
+ }
47
+ else {
48
+ const maxNameLength = Math.max(...routes.map(r => r.entryName.length));
49
+ urls.forEach(({ type, url }) => {
50
+ message += ` ${compiled_1.chalk.bold(`> ${type}`)}\n`;
51
+ routes.forEach(({ entryName, urlPath, isSSR }) => {
52
+ if (!checkedEntries.includes(entryName)) {
53
+ return;
54
+ }
55
+ message += ` ${compiled_1.chalk.yellowBright(isSSR ? 'λ' : '○')} ${compiled_1.chalk.yellowBright(entryName.padEnd(maxNameLength + 8))}${compiled_1.chalk.cyanBright(normalizeUrl(`${url}/${urlPath}`))}\n`;
56
+ });
57
+ });
58
+ message += '\n';
59
+ message += compiled_1.chalk.cyanBright(' λ (Server) server-side renders at runtime\n');
60
+ message += compiled_1.chalk.cyanBright(' ○ (Static) client-side rendered as static HTML\n');
61
+ }
62
+ return message;
63
+ };
64
+ exports.prettyInstructions = prettyInstructions;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2015-present, Facebook, Inc.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file at
6
+ * https://github.com/facebook/create-react-app/blob/master/LICENSE
7
+ */
8
+ export declare function printBuildError(err: Error): void;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /* eslint-disable eslint-comments/no-unlimited-disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Copyright (c) 2015-present, Facebook, Inc.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file at
9
+ * https://github.com/facebook/create-react-app/blob/master/LICENSE
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.printBuildError = void 0;
13
+ // Modified by Chao Xu (xuchaobei)
14
+ const compiled_1 = require("./compiled");
15
+ const logger_1 = require("./logger");
16
+ function printBuildError(err) {
17
+ const message = err != null && err.message;
18
+ const stack = err != null && err.stack;
19
+ // Add more helpful message for Terser error
20
+ if (stack &&
21
+ typeof message === 'string' &&
22
+ message.indexOf('from Terser') !== -1) {
23
+ try {
24
+ const matched = /(.+)\[(.+):(.+),(.+)\]\[.+\]/.exec(stack);
25
+ if (!matched) {
26
+ throw new Error('Using errors for control flow is bad.');
27
+ }
28
+ const problemPath = matched[2];
29
+ const line = matched[3];
30
+ const column = matched[4];
31
+ logger_1.logger.error(`Failed to minify the code from this file: \n\n ${compiled_1.chalk.yellow(`\t${problemPath}:${line}${column !== '0' ? ':' + column : ''}`)}\n`);
32
+ }
33
+ catch (ignored) {
34
+ logger_1.logger.error(`Failed to minify the bundle. ${err}\n`);
35
+ }
36
+ }
37
+ else {
38
+ logger_1.logger.error((message || err) + '\n');
39
+ }
40
+ logger_1.logger.log();
41
+ }
42
+ exports.printBuildError = printBuildError;
43
+ /* eslint-enable */
@@ -0,0 +1,2 @@
1
+ export declare const readTsConfig: (root: string) => any;
2
+ export declare const readTsConfigByFile: (filename: string) => any;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.readTsConfigByFile = exports.readTsConfig = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const readTsConfig = (root) => {
9
+ // import typescript from 'typescript' cause eslint fromat error.
10
+ const typescript = require('typescript');
11
+ return typescript.readConfigFile(path_1.default.resolve(root, './tsconfig.json'), typescript.sys.readFile).config;
12
+ };
13
+ exports.readTsConfig = readTsConfig;
14
+ const readTsConfigByFile = (filename) => {
15
+ // import typescript from 'typescript' cause eslint fromat error.
16
+ const typescript = require('typescript');
17
+ return typescript.readConfigFile(path_1.default.resolve(filename), typescript.sys.readFile).config;
18
+ };
19
+ exports.readTsConfigByFile = readTsConfigByFile;
@@ -0,0 +1,3 @@
1
+ export declare const removeLeadingSlash: (s: string) => string;
2
+ export declare const removeTailSlash: (s: string) => string;
3
+ export declare const removeSlash: (s: string) => string;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeSlash = exports.removeTailSlash = exports.removeLeadingSlash = void 0;
4
+ const removeLeadingSlash = (s) => s.replace(/^\/+/, '');
5
+ exports.removeLeadingSlash = removeLeadingSlash;
6
+ const removeTailSlash = (s) => s.replace(/\/+$/, '');
7
+ exports.removeTailSlash = removeTailSlash;
8
+ const removeSlash = (s) => (0, exports.removeLeadingSlash)((0, exports.removeTailSlash)(s));
9
+ exports.removeSlash = removeSlash;
@@ -0,0 +1,4 @@
1
+ export declare const createRuntimeExportsUtils: (pwd: any, namespace: string, ts?: any) => {
2
+ addExport: (statement: string) => void;
3
+ getPath: () => string;
4
+ };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createRuntimeExportsUtils = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const compiled_1 = require("./compiled");
9
+ const path_2 = require("./path");
10
+ const memo = (fn) => {
11
+ const cache = new Map();
12
+ return (...params) => {
13
+ const stringifiedParams = JSON.stringify(params);
14
+ const cachedResult = cache.get(stringifiedParams);
15
+ if (cachedResult) {
16
+ return cachedResult;
17
+ }
18
+ const res = fn(...params);
19
+ cache.set(stringifiedParams, res);
20
+ return res;
21
+ };
22
+ };
23
+ exports.createRuntimeExportsUtils = memo((pwd = '', namespace, ts = false) => {
24
+ const entryExportFile = path_1.default.join(pwd, `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`);
25
+ const entryExportTsFile = path_1.default.join(pwd, `.runtime-exports/${namespace ? `${namespace}.d.ts` : 'index.d.ts'}`);
26
+ // const ensure = () => {
27
+ // if (!fs.existsSync(entryExportFile)) {
28
+ // fs.outputFileSync(entryExportFile, '');
29
+ // }
30
+ // fs.ensureFileSync(entryExportFile);
31
+ // };
32
+ const addExport = (statement) => {
33
+ // eslint-disable-next-line no-param-reassign
34
+ statement = (0, path_2.normalizeOutputPath)(statement);
35
+ try {
36
+ compiled_1.fs.ensureFileSync(entryExportFile);
37
+ compiled_1.fs.ensureFileSync(entryExportTsFile);
38
+ if (!compiled_1.fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
39
+ compiled_1.fs.appendFileSync(entryExportFile, `${statement}\n`);
40
+ ts &&
41
+ compiled_1.fs.appendFileSync(entryExportTsFile, `${statement.replace('.js', '.d')}\n`);
42
+ }
43
+ }
44
+ catch (_a) {
45
+ // FIXME:
46
+ }
47
+ };
48
+ const getPath = () => entryExportFile;
49
+ return {
50
+ addExport,
51
+ getPath,
52
+ };
53
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import type { IncomingHttpHeaders } from 'http';
3
+ declare const run: <O>(context: IncomingHttpHeaders, cb: () => O | Promise<O>) => Promise<O>, useHeaders: () => IncomingHttpHeaders;
4
+ export { run, useHeaders };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useHeaders = exports.run = void 0;
4
+ const storage_1 = require("./storage");
5
+ const { run, useContext: useHeaders } = (0, storage_1.createStorage)();
6
+ exports.run = run;
7
+ exports.useHeaders = useHeaders;
@@ -0,0 +1,5 @@
1
+ declare const createStorage: <T>() => {
2
+ run: <O>(context: T, cb: () => O | Promise<O>) => Promise<O>;
3
+ useContext: () => T;
4
+ };
5
+ export { createStorage };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.createStorage = void 0;
23
+ const ah = __importStar(require("async_hooks"));
24
+ const createStorage = () => {
25
+ let storage;
26
+ if (typeof ah.AsyncLocalStorage !== 'undefined') {
27
+ storage = new ah.AsyncLocalStorage();
28
+ }
29
+ const run = (context, cb) => {
30
+ if (!storage) {
31
+ throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
32
+ `);
33
+ }
34
+ return new Promise((resolve, reject) => {
35
+ storage.run(context, () => {
36
+ try {
37
+ return resolve(cb());
38
+ }
39
+ catch (error) {
40
+ return reject(error);
41
+ }
42
+ });
43
+ });
44
+ };
45
+ const useContext = () => {
46
+ if (!storage) {
47
+ throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
48
+ `);
49
+ }
50
+ const context = storage.getStore();
51
+ if (!context) {
52
+ throw new Error(`Can't call useContext out of scope, it should be placed on top of the function`);
53
+ }
54
+ return context;
55
+ };
56
+ return {
57
+ run,
58
+ useContext,
59
+ };
60
+ };
61
+ exports.createStorage = createStorage;
@@ -6,11 +6,11 @@
6
6
  * https://github.com/facebook/create-react-app/blob/master/LICENSE
7
7
  */
8
8
  declare function printFileSizesAfterBuild(webpackStats: any, previousSizeMap: {
9
- root: string;
10
- sizes: Record<string, number[]>;
9
+ root: string;
10
+ sizes: Record<string, number[]>;
11
11
  }, buildFolder: string, maxBundleGzipSize: number, maxChunkGzipSize: number): void;
12
12
  declare function measureFileSizesBeforeBuild(buildFolder: string): Promise<{
13
- root: string;
14
- sizes: Record<string, number[]>;
13
+ root: string;
14
+ sizes: Record<string, number[]>;
15
15
  }>;
16
- export { measureFileSizesBeforeBuild, printFileSizesAfterBuild };
16
+ export { measureFileSizesBeforeBuild, printFileSizesAfterBuild };