@sanity/pkg-utils 2.3.11 → 2.3.13-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 (264) hide show
  1. package/dist/build.js +69 -0
  2. package/dist/build.js.map +1 -0
  3. package/dist/check.js +152 -0
  4. package/dist/check.js.map +1 -0
  5. package/dist/cli.cjs +6 -6
  6. package/dist/cli.cjs.map +1 -1
  7. package/dist/consoleSpy.js +49 -0
  8. package/dist/consoleSpy.js.map +1 -0
  9. package/dist/core/config/defineConfig.js +5 -0
  10. package/dist/core/config/defineConfig.js.map +1 -0
  11. package/dist/core/config/findConfigFile.js +21 -0
  12. package/dist/core/config/findConfigFile.js.map +1 -0
  13. package/dist/core/config/loadConfig.js +34 -0
  14. package/dist/core/config/loadConfig.js.map +1 -0
  15. package/dist/core/config/resolveConfigProperty.js +9 -0
  16. package/dist/core/config/resolveConfigProperty.js.map +1 -0
  17. package/dist/core/defaults.js +3 -0
  18. package/dist/core/defaults.js.map +1 -0
  19. package/dist/core/findCommonPath.js +28 -0
  20. package/dist/core/findCommonPath.js.map +1 -0
  21. package/dist/core/isRecord.js +5 -0
  22. package/dist/core/isRecord.js.map +1 -0
  23. package/dist/core/pkg/helpers.js +24 -0
  24. package/dist/core/pkg/helpers.js.map +1 -0
  25. package/dist/core/pkg/loadPkg.js +18 -0
  26. package/dist/core/pkg/loadPkg.js.map +1 -0
  27. package/dist/core/pkg/loadPkgWithReporting.js +107 -0
  28. package/dist/core/pkg/loadPkgWithReporting.js.map +1 -0
  29. package/dist/core/pkg/parseExports.js +75 -0
  30. package/dist/core/pkg/parseExports.js.map +1 -0
  31. package/dist/core/pkg/pkgExt.js +29 -0
  32. package/dist/core/pkg/pkgExt.js.map +1 -0
  33. package/dist/core/pkg/validateExports.js +19 -0
  34. package/dist/core/pkg/validateExports.js.map +1 -0
  35. package/dist/core/pkg/validatePkg.js +49 -0
  36. package/dist/core/pkg/validatePkg.js.map +1 -0
  37. package/dist/core/template/createFromTemplate.js +59 -0
  38. package/dist/core/template/createFromTemplate.js.map +1 -0
  39. package/dist/core/template/define.js +5 -0
  40. package/dist/core/template/define.js.map +1 -0
  41. package/dist/core/ts/loadTSConfig.js +15 -0
  42. package/dist/core/ts/loadTSConfig.js.map +1 -0
  43. package/dist/fileExists.js +11 -0
  44. package/dist/fileExists.js.map +1 -0
  45. package/dist/getFilesize.js +8 -0
  46. package/dist/getFilesize.js.map +1 -0
  47. package/dist/globFiles.js +7 -0
  48. package/dist/globFiles.js.map +1 -0
  49. package/dist/index.cjs +44 -30
  50. package/dist/index.cjs.map +1 -1
  51. package/dist/index.d.ts +4 -2
  52. package/dist/index.js +24 -2505
  53. package/dist/index.js.map +1 -1
  54. package/dist/init.js +42 -0
  55. package/dist/init.js.map +1 -0
  56. package/dist/isEmptyDirectory.js +6 -0
  57. package/dist/isEmptyDirectory.js.map +1 -0
  58. package/dist/logger.js +37 -0
  59. package/dist/logger.js.map +1 -0
  60. package/dist/package.json.cjs +8 -0
  61. package/dist/package.json.cjs.map +1 -0
  62. package/dist/printExtractMessages.js +32 -0
  63. package/dist/printExtractMessages.js.map +1 -0
  64. package/dist/printPackageTree.js +92 -0
  65. package/dist/printPackageTree.js.map +1 -0
  66. package/dist/resolveBrowserTarget.js +27 -0
  67. package/dist/resolveBrowserTarget.js.map +1 -0
  68. package/dist/resolveBrowserslistVersions.js +44 -0
  69. package/dist/resolveBrowserslistVersions.js.map +1 -0
  70. package/dist/resolveBuildContext.js +109 -0
  71. package/dist/resolveBuildContext.js.map +1 -0
  72. package/dist/resolveBuildTasks.js +140 -0
  73. package/dist/resolveBuildTasks.js.map +1 -0
  74. package/dist/resolveNodeTarget.js +12 -0
  75. package/dist/resolveNodeTarget.js.map +1 -0
  76. package/dist/resolveWatchTasks.js +103 -0
  77. package/dist/resolveWatchTasks.js.map +1 -0
  78. package/dist/spinner.js +15 -0
  79. package/dist/spinner.js.map +1 -0
  80. package/dist/{_chunks/buildAction-b2571e76.cjs → src/cli/buildAction.cjs} +6 -3
  81. package/dist/src/cli/buildAction.cjs.map +1 -0
  82. package/dist/{_chunks/checkAction-c3e5da35.cjs → src/cli/checkAction.cjs} +6 -3
  83. package/dist/src/cli/checkAction.cjs.map +1 -0
  84. package/dist/{_chunks/handleError-13d87f55.cjs → src/cli/handleError.cjs} +4 -1
  85. package/dist/src/cli/handleError.cjs.map +1 -0
  86. package/dist/{_chunks/initAction-2abd8576.cjs → src/cli/initAction.cjs} +6 -3
  87. package/dist/src/cli/initAction.cjs.map +1 -0
  88. package/dist/{_chunks/watchAction-79480cb8.cjs → src/cli/watchAction.cjs} +6 -3
  89. package/dist/src/cli/watchAction.cjs.map +1 -0
  90. package/dist/src/node/build.cjs +74 -0
  91. package/dist/src/node/build.cjs.map +1 -0
  92. package/dist/src/node/check.cjs +164 -0
  93. package/dist/src/node/check.cjs.map +1 -0
  94. package/dist/src/node/consoleSpy.cjs +54 -0
  95. package/dist/src/node/consoleSpy.cjs.map +1 -0
  96. package/dist/src/node/core/config/defineConfig.cjs +10 -0
  97. package/dist/src/node/core/config/defineConfig.cjs.map +1 -0
  98. package/dist/src/node/core/config/findConfigFile.cjs +33 -0
  99. package/dist/src/node/core/config/findConfigFile.cjs.map +1 -0
  100. package/dist/src/node/core/config/loadConfig.cjs +46 -0
  101. package/dist/src/node/core/config/loadConfig.cjs.map +1 -0
  102. package/dist/src/node/core/config/resolveConfigProperty.cjs +14 -0
  103. package/dist/src/node/core/config/resolveConfigProperty.cjs.map +1 -0
  104. package/dist/src/node/core/defaults.cjs +8 -0
  105. package/dist/src/node/core/defaults.cjs.map +1 -0
  106. package/dist/src/node/core/findCommonPath.cjs +40 -0
  107. package/dist/src/node/core/findCommonPath.cjs.map +1 -0
  108. package/dist/src/node/core/isRecord.cjs +10 -0
  109. package/dist/src/node/core/isRecord.cjs.map +1 -0
  110. package/dist/src/node/core/pkg/helpers.cjs +31 -0
  111. package/dist/src/node/core/pkg/helpers.cjs.map +1 -0
  112. package/dist/src/node/core/pkg/loadPkg.cjs +30 -0
  113. package/dist/src/node/core/pkg/loadPkg.cjs.map +1 -0
  114. package/dist/src/node/core/pkg/loadPkgWithReporting.cjs +118 -0
  115. package/dist/src/node/core/pkg/loadPkgWithReporting.cjs.map +1 -0
  116. package/dist/src/node/core/pkg/parseExports.cjs +80 -0
  117. package/dist/src/node/core/pkg/parseExports.cjs.map +1 -0
  118. package/dist/src/node/core/pkg/pkgExt.cjs +35 -0
  119. package/dist/src/node/core/pkg/pkgExt.cjs.map +1 -0
  120. package/dist/src/node/core/pkg/validateExports.cjs +24 -0
  121. package/dist/src/node/core/pkg/validateExports.cjs.map +1 -0
  122. package/dist/src/node/core/pkg/validatePkg.cjs +54 -0
  123. package/dist/src/node/core/pkg/validatePkg.cjs.map +1 -0
  124. package/dist/src/node/core/template/createFromTemplate.cjs +70 -0
  125. package/dist/src/node/core/template/createFromTemplate.cjs.map +1 -0
  126. package/dist/src/node/core/template/define.cjs +10 -0
  127. package/dist/src/node/core/template/define.cjs.map +1 -0
  128. package/dist/src/node/core/ts/loadTSConfig.cjs +26 -0
  129. package/dist/src/node/core/ts/loadTSConfig.cjs.map +1 -0
  130. package/dist/src/node/fileExists.cjs +16 -0
  131. package/dist/src/node/fileExists.cjs.map +1 -0
  132. package/dist/src/node/getFilesize.cjs +19 -0
  133. package/dist/src/node/getFilesize.cjs.map +1 -0
  134. package/dist/src/node/globFiles.cjs +19 -0
  135. package/dist/src/node/globFiles.cjs.map +1 -0
  136. package/dist/src/node/init.cjs +47 -0
  137. package/dist/src/node/init.cjs.map +1 -0
  138. package/dist/src/node/isEmptyDirectory.cjs +11 -0
  139. package/dist/src/node/isEmptyDirectory.cjs.map +1 -0
  140. package/dist/src/node/logger.cjs +48 -0
  141. package/dist/src/node/logger.cjs.map +1 -0
  142. package/dist/src/node/printExtractMessages.cjs +44 -0
  143. package/dist/src/node/printExtractMessages.cjs.map +1 -0
  144. package/dist/src/node/printPackageTree.cjs +105 -0
  145. package/dist/src/node/printPackageTree.cjs.map +1 -0
  146. package/dist/src/node/resolveBrowserTarget.cjs +32 -0
  147. package/dist/src/node/resolveBrowserTarget.cjs.map +1 -0
  148. package/dist/src/node/resolveBrowserslistVersions.cjs +55 -0
  149. package/dist/src/node/resolveBrowserslistVersions.cjs.map +1 -0
  150. package/dist/src/node/resolveBuildContext.cjs +120 -0
  151. package/dist/src/node/resolveBuildContext.cjs.map +1 -0
  152. package/dist/{_chunks/build-62cd452e.cjs → src/node/resolveBuildTasks.cjs} +8 -80
  153. package/dist/src/node/resolveBuildTasks.cjs.map +1 -0
  154. package/dist/src/node/resolveNodeTarget.cjs +17 -0
  155. package/dist/src/node/resolveNodeTarget.cjs.map +1 -0
  156. package/dist/src/node/resolveWatchTasks.cjs +115 -0
  157. package/dist/src/node/resolveWatchTasks.cjs.map +1 -0
  158. package/dist/src/node/spinner.cjs +26 -0
  159. package/dist/src/node/spinner.cjs.map +1 -0
  160. package/dist/src/node/tasks/dts/DtsError.cjs +17 -0
  161. package/dist/src/node/tasks/dts/DtsError.cjs.map +1 -0
  162. package/dist/src/node/tasks/dts/buildTypes.cjs +50 -0
  163. package/dist/src/node/tasks/dts/buildTypes.cjs.map +1 -0
  164. package/dist/src/node/tasks/dts/createApiExtractorConfig.cjs +52 -0
  165. package/dist/src/node/tasks/dts/createApiExtractorConfig.cjs.map +1 -0
  166. package/dist/src/node/tasks/dts/createTSDocConfig.cjs +37 -0
  167. package/dist/src/node/tasks/dts/createTSDocConfig.cjs.map +1 -0
  168. package/dist/src/node/tasks/dts/doExtract.cjs +88 -0
  169. package/dist/src/node/tasks/dts/doExtract.cjs.map +1 -0
  170. package/dist/src/node/tasks/dts/dtsTask.cjs +44 -0
  171. package/dist/src/node/tasks/dts/dtsTask.cjs.map +1 -0
  172. package/dist/src/node/tasks/dts/dtsWatchTask.cjs +47 -0
  173. package/dist/src/node/tasks/dts/dtsWatchTask.cjs.map +1 -0
  174. package/dist/src/node/tasks/dts/extractModuleBlocks.cjs +38 -0
  175. package/dist/src/node/tasks/dts/extractModuleBlocks.cjs.map +1 -0
  176. package/dist/src/node/tasks/dts/extractTypes.cjs +90 -0
  177. package/dist/src/node/tasks/dts/extractTypes.cjs.map +1 -0
  178. package/dist/src/node/tasks/dts/getExtractMessagesConfig.cjs +73 -0
  179. package/dist/src/node/tasks/dts/getExtractMessagesConfig.cjs.map +1 -0
  180. package/dist/src/node/tasks/dts/printDiagnostic.cjs +48 -0
  181. package/dist/src/node/tasks/dts/printDiagnostic.cjs.map +1 -0
  182. package/dist/src/node/tasks/index.cjs +26 -0
  183. package/dist/src/node/tasks/index.cjs.map +1 -0
  184. package/dist/src/node/tasks/node/reexportCjsTask.cjs +64 -0
  185. package/dist/src/node/tasks/node/reexportCjsTask.cjs.map +1 -0
  186. package/dist/src/node/tasks/rollup/resolveRollupConfig.cjs +207 -0
  187. package/dist/src/node/tasks/rollup/resolveRollupConfig.cjs.map +1 -0
  188. package/dist/src/node/tasks/rollup/rollupTask.cjs +116 -0
  189. package/dist/src/node/tasks/rollup/rollupTask.cjs.map +1 -0
  190. package/dist/src/node/tasks/rollup/rollupWatchTask.cjs +72 -0
  191. package/dist/src/node/tasks/rollup/rollupWatchTask.cjs.map +1 -0
  192. package/dist/{_chunks/init-2377e6e5.cjs → src/node/templates/default/template.cjs} +23 -112
  193. package/dist/src/node/templates/default/template.cjs.map +1 -0
  194. package/dist/src/node/watch.cjs +90 -0
  195. package/dist/src/node/watch.cjs.map +1 -0
  196. package/dist/src/node/watchConfigFiles.cjs +40 -0
  197. package/dist/src/node/watchConfigFiles.cjs.map +1 -0
  198. package/dist/src/node/watchFiles.cjs +33 -0
  199. package/dist/src/node/watchFiles.cjs.map +1 -0
  200. package/dist/tasks/dts/DtsError.js +12 -0
  201. package/dist/tasks/dts/DtsError.js.map +1 -0
  202. package/dist/tasks/dts/buildTypes.js +39 -0
  203. package/dist/tasks/dts/buildTypes.js.map +1 -0
  204. package/dist/tasks/dts/createApiExtractorConfig.js +41 -0
  205. package/dist/tasks/dts/createApiExtractorConfig.js.map +1 -0
  206. package/dist/tasks/dts/createTSDocConfig.js +32 -0
  207. package/dist/tasks/dts/createTSDocConfig.js.map +1 -0
  208. package/dist/tasks/dts/doExtract.js +76 -0
  209. package/dist/tasks/dts/doExtract.js.map +1 -0
  210. package/dist/tasks/dts/dtsTask.js +33 -0
  211. package/dist/tasks/dts/dtsTask.js.map +1 -0
  212. package/dist/tasks/dts/dtsWatchTask.js +36 -0
  213. package/dist/tasks/dts/dtsWatchTask.js.map +1 -0
  214. package/dist/tasks/dts/extractModuleBlocks.js +26 -0
  215. package/dist/tasks/dts/extractModuleBlocks.js.map +1 -0
  216. package/dist/tasks/dts/extractTypes.js +77 -0
  217. package/dist/tasks/dts/extractTypes.js.map +1 -0
  218. package/dist/tasks/dts/getExtractMessagesConfig.js +68 -0
  219. package/dist/tasks/dts/getExtractMessagesConfig.js.map +1 -0
  220. package/dist/tasks/dts/printDiagnostic.js +35 -0
  221. package/dist/tasks/dts/printDiagnostic.js.map +1 -0
  222. package/dist/tasks/index.js +16 -0
  223. package/dist/tasks/index.js.map +1 -0
  224. package/dist/tasks/node/reexportCjsTask.js +52 -0
  225. package/dist/tasks/node/reexportCjsTask.js.map +1 -0
  226. package/dist/tasks/rollup/resolveRollupConfig.js +189 -0
  227. package/dist/tasks/rollup/resolveRollupConfig.js.map +1 -0
  228. package/dist/tasks/rollup/rollupTask.js +104 -0
  229. package/dist/tasks/rollup/rollupTask.js.map +1 -0
  230. package/dist/tasks/rollup/rollupWatchTask.js +60 -0
  231. package/dist/tasks/rollup/rollupWatchTask.js.map +1 -0
  232. package/dist/templates/default/template.js +366 -0
  233. package/dist/templates/default/template.js.map +1 -0
  234. package/dist/watch.js +79 -0
  235. package/dist/watch.js.map +1 -0
  236. package/dist/watchConfigFiles.js +29 -0
  237. package/dist/watchConfigFiles.js.map +1 -0
  238. package/dist/watchFiles.js +22 -0
  239. package/dist/watchFiles.js.map +1 -0
  240. package/package.json +3 -2
  241. package/src/node/core/pkg/loadPkgWithReporting.ts +91 -18
  242. package/src/node/core/pkg/types.ts +4 -2
  243. package/src/node/core/pkg/validatePkg.ts +31 -3
  244. package/src/node/resolveBuildTasks.ts +2 -2
  245. package/src/node/tasks/node/reexportCjsTask.ts +1 -1
  246. package/src/node/tasks/rollup/resolveRollupConfig.ts +4 -0
  247. package/src/node/tasks/rollup/rollupTask.ts +8 -0
  248. package/dist/_chunks/build-62cd452e.cjs.map +0 -1
  249. package/dist/_chunks/buildAction-b2571e76.cjs.map +0 -1
  250. package/dist/_chunks/check-0665cb35.cjs +0 -250
  251. package/dist/_chunks/check-0665cb35.cjs.map +0 -1
  252. package/dist/_chunks/checkAction-c3e5da35.cjs.map +0 -1
  253. package/dist/_chunks/consoleSpy-d738cb9f.cjs +0 -550
  254. package/dist/_chunks/consoleSpy-d738cb9f.cjs.map +0 -1
  255. package/dist/_chunks/handleError-13d87f55.cjs.map +0 -1
  256. package/dist/_chunks/index-ad3fa5bb.cjs +0 -865
  257. package/dist/_chunks/index-ad3fa5bb.cjs.map +0 -1
  258. package/dist/_chunks/init-2377e6e5.cjs.map +0 -1
  259. package/dist/_chunks/initAction-2abd8576.cjs.map +0 -1
  260. package/dist/_chunks/logger-c593f06b.cjs +0 -97
  261. package/dist/_chunks/logger-c593f06b.cjs.map +0 -1
  262. package/dist/_chunks/watch-425eab1e.cjs +0 -231
  263. package/dist/_chunks/watch-425eab1e.cjs.map +0 -1
  264. package/dist/_chunks/watchAction-79480cb8.cjs.map +0 -1
@@ -0,0 +1,107 @@
1
+ import chalk from 'chalk';
2
+ import { ZodError } from 'zod';
3
+ import { assertFirst, assertOrder, assertLast } from './helpers.js';
4
+ import { loadPkg } from './loadPkg.js';
5
+ async function loadPkgWithReporting(options) {
6
+ const {
7
+ cwd,
8
+ logger
9
+ } = options;
10
+ try {
11
+ const pkg = await loadPkg({
12
+ cwd
13
+ });
14
+ let shouldError = false;
15
+ if (pkg.exports) {
16
+ const _exports = Object.entries(pkg.exports);
17
+ for (const [expPath, exp] of _exports) {
18
+ if (typeof exp === "string") {
19
+ continue;
20
+ }
21
+ const keys = Object.keys(exp);
22
+ if (!assertFirst("types", keys)) {
23
+ shouldError = true;
24
+ logger.error("exports[\"".concat(expPath, "\"]: the `types` property should be the first property"));
25
+ }
26
+ if (exp.node) {
27
+ const nodeKeys = Object.keys(exp.node);
28
+ if (!assertOrder("module", "import", nodeKeys)) {
29
+ shouldError = true;
30
+ logger.error("exports[\"".concat(expPath, "\"]: the `node.module` property should come before the `node.import` property"));
31
+ }
32
+ if (!assertOrder("import", "require", nodeKeys)) {
33
+ logger.warn("exports[\"".concat(expPath, "\"]: the `node.import` property should come before the `node.require` property"));
34
+ }
35
+ if (!assertOrder("module", "require", nodeKeys)) {
36
+ logger.warn("exports[\"".concat(expPath, "\"]: the `node.module` property should come before `node.require` property"));
37
+ }
38
+ if (exp.import && exp.node.import && !assertOrder("node", "import", keys)) {
39
+ shouldError = true;
40
+ logger.error("exports[\"".concat(expPath, "\"]: the `node` property should come before the `import` property"));
41
+ }
42
+ if (exp.module && exp.node.module && !assertOrder("node", "module", keys)) {
43
+ shouldError = true;
44
+ logger.error("exports[\"".concat(expPath, "\"]: the `node` property should come before the `module` property"));
45
+ }
46
+ if (exp.node.import && !exp.node.require && !exp.node.module) {
47
+ shouldError = true;
48
+ logger.error("exports[\"".concat(expPath, "\"]: the `node.module` property should be added so bundlers don't unintentionally try to bundle `node.import`"));
49
+ }
50
+ if (exp.node.import && !exp.node.require && exp.node.module && exp.import && exp.node.module !== exp.import) {
51
+ shouldError = true;
52
+ logger.error("exports[\"".concat(expPath, "\"]: the `node.module` property should match `import`"));
53
+ }
54
+ if (exp.require && exp.node.require && exp.require === exp.node.require) {
55
+ shouldError = true;
56
+ logger.error("exports[\"".concat(expPath, "\"]: the `node.require` property isn't necessary as it's identical to `require`"));
57
+ } else if (exp.require && exp.node.require && !assertOrder("node", "require", keys)) {
58
+ shouldError = true;
59
+ logger.error("exports[\"".concat(expPath, "\"]: the `node` property should come before the `require` property"));
60
+ }
61
+ } else {
62
+ if (!assertOrder("import", "require", keys)) {
63
+ logger.warn("exports[\"".concat(expPath, "\"]: the `import` property should come before the `require` property"));
64
+ }
65
+ if (!assertOrder("module", "import", keys)) {
66
+ logger.warn("exports[\"".concat(expPath, "\"]: the `module` property should come before `import` property"));
67
+ }
68
+ }
69
+ if (!assertLast("default", keys)) {
70
+ shouldError = true;
71
+ logger.error("exports[\"".concat(expPath, "\"]: the `default` property should be the last property"));
72
+ }
73
+ }
74
+ }
75
+ if (shouldError) {
76
+ process.exit(1);
77
+ }
78
+ return pkg;
79
+ } catch (err) {
80
+ if (err instanceof ZodError) {
81
+ for (const issue of err.issues) {
82
+ if (issue.code === "invalid_type") {
83
+ logger.error(["`".concat(formatPath(issue.path), "` "), "in `./package.json` must be of type ".concat(chalk.magenta(issue.expected), " "), "(received ".concat(chalk.magenta(issue.received), ")")].join(""));
84
+ continue;
85
+ }
86
+ logger.error(issue);
87
+ }
88
+ } else {
89
+ logger.error(err);
90
+ }
91
+ process.exit(1);
92
+ }
93
+ }
94
+ function formatPath(segments) {
95
+ return segments.map((s, idx) => {
96
+ if (idx === 0) return s;
97
+ if (typeof s === "number") {
98
+ return "[".concat(s, "]");
99
+ }
100
+ if (s.startsWith(".")) {
101
+ return "[\"".concat(s, "\"]");
102
+ }
103
+ return ".".concat(s);
104
+ }).join("");
105
+ }
106
+ export { loadPkgWithReporting };
107
+ //# sourceMappingURL=loadPkgWithReporting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadPkgWithReporting.js","sources":["../../../src/node/core/pkg/loadPkgWithReporting.ts"],"sourcesContent":["import chalk from 'chalk'\nimport {ZodError} from 'zod'\n\nimport {Logger} from '../../logger'\nimport {assertFirst, assertLast, assertOrder} from './helpers'\nimport {loadPkg} from './loadPkg'\nimport {PackageJSON} from './types'\n\n/** @internal */\nexport async function loadPkgWithReporting(options: {\n cwd: string\n logger: Logger\n}): Promise<PackageJSON> {\n const {cwd, logger} = options\n\n try {\n const pkg = await loadPkg({cwd})\n let shouldError = false\n\n // validate exports\n if (pkg.exports) {\n const _exports = Object.entries(pkg.exports)\n\n for (const [expPath, exp] of _exports) {\n if (typeof exp === 'string') {\n continue\n }\n\n const keys = Object.keys(exp)\n\n if (!assertFirst('types', keys)) {\n shouldError = true\n logger.error(`exports[\"${expPath}\"]: the \\`types\\` property should be the first property`)\n }\n\n if (exp.node) {\n const nodeKeys = Object.keys(exp.node)\n\n if (!assertOrder('module', 'import', nodeKeys)) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`node.module\\` property should come before the \\`node.import\\` property`,\n )\n }\n\n if (!assertOrder('import', 'require', nodeKeys)) {\n logger.warn(\n `exports[\"${expPath}\"]: the \\`node.import\\` property should come before the \\`node.require\\` property`,\n )\n }\n\n if (!assertOrder('module', 'require', nodeKeys)) {\n logger.warn(\n `exports[\"${expPath}\"]: the \\`node.module\\` property should come before \\`node.require\\` property`,\n )\n }\n\n if (exp.import && exp.node.import && !assertOrder('node', 'import', keys)) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`node\\` property should come before the \\`import\\` property`,\n )\n }\n\n if (exp.module && exp.node.module && !assertOrder('node', 'module', keys)) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`node\\` property should come before the \\`module\\` property`,\n )\n }\n\n // If there's a `node.import` property but not a `node.require` we can assume `node.import` is wrapping `import` and `node.module` should be added for bundlers\n if (exp.node.import && !exp.node.require && !exp.node.module) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`node.module\\` property should be added so bundlers don't unintentionally try to bundle \\`node.import\\``,\n )\n }\n\n if (\n exp.node.import &&\n !exp.node.require &&\n exp.node.module &&\n exp.import &&\n exp.node.module !== exp.import\n ) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`node.module\\` property should match \\`import\\``,\n )\n }\n\n if (exp.require && exp.node.require && exp.require === exp.node.require) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`node.require\\` property isn't necessary as it's identical to \\`require\\``,\n )\n } else if (exp.require && exp.node.require && !assertOrder('node', 'require', keys)) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`node\\` property should come before the \\`require\\` property`,\n )\n }\n } else {\n if (!assertOrder('import', 'require', keys)) {\n logger.warn(\n `exports[\"${expPath}\"]: the \\`import\\` property should come before the \\`require\\` property`,\n )\n }\n\n if (!assertOrder('module', 'import', keys)) {\n logger.warn(\n `exports[\"${expPath}\"]: the \\`module\\` property should come before \\`import\\` property`,\n )\n }\n }\n\n if (!assertLast('default', keys)) {\n shouldError = true\n logger.error(\n `exports[\"${expPath}\"]: the \\`default\\` property should be the last property`,\n )\n }\n }\n }\n\n if (shouldError) {\n process.exit(1)\n }\n\n return pkg\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n logger.error(\n [\n `\\`${formatPath(issue.path)}\\` `,\n `in \\`./package.json\\` must be of type ${chalk.magenta(issue.expected)} `,\n `(received ${chalk.magenta(issue.received)})`,\n ].join(''),\n )\n continue\n }\n\n logger.error(issue)\n }\n } else {\n logger.error(err)\n }\n\n process.exit(1)\n }\n}\n\nfunction formatPath(segments: Array<string | number>) {\n return segments\n .map((s, idx) => {\n if (idx === 0) return s\n\n if (typeof s === 'number') {\n return `[${s}]`\n }\n\n if (s.startsWith('.')) {\n return `[\"${s}\"]`\n }\n\n return `.${s}`\n })\n .join('')\n}\n"],"names":["loadPkgWithReporting","options","cwd","logger","pkg","loadPkg","shouldError","exports","_exports","Object","entries","expPath","exp","keys","assertFirst","error","concat","node","nodeKeys","assertOrder","warn","import","module","require","assertLast","process","exit","err","ZodError","issue","issues","code","formatPath","path","chalk","magenta","expected","received","join","segments","map","s","idx","startsWith"],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { isRecord } from '../isRecord.js';
2
+ import { validateExports } from './validateExports.js';
3
+ function parseExports(options) {
4
+ const {
5
+ extMap,
6
+ pkg,
7
+ strict
8
+ } = options;
9
+ const rootExport = {
10
+ _exported: true,
11
+ _path: ".",
12
+ types: pkg.types,
13
+ source: pkg.source || "",
14
+ browser: pkg.browser && {
15
+ source: pkg.source || "",
16
+ require: pkg.main && pkg.browser[pkg.main],
17
+ import: pkg.module && pkg.browser[pkg.module]
18
+ },
19
+ require: pkg.main,
20
+ import: pkg.module,
21
+ default: pkg.module || pkg.main || ""
22
+ };
23
+ const extraExports = [];
24
+ const errors = [];
25
+ if (pkg.exports) {
26
+ if (strict && !pkg.exports["./package.json"]) {
27
+ errors.push('package.json: `exports["./package.json"] must be declared.');
28
+ }
29
+ for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {
30
+ if (exportPath.endsWith(".json")) {
31
+ if (exportPath === "./package.json") {
32
+ if (exportEntry !== "./package.json") {
33
+ errors.push('package.json: `exports["./package.json"] must be "./package.json".');
34
+ }
35
+ }
36
+ } else if (isRecord(exportEntry)) {
37
+ if (exportPath === ".") {
38
+ if (exportEntry.require && rootExport.require && exportEntry.require !== rootExport.require) {
39
+ errors.push('package.json: mismatch between "main" and "exports.require". These must be equal.');
40
+ }
41
+ if (exportEntry.import && rootExport.import && exportEntry.import !== rootExport.import) {
42
+ errors.push('package.json: mismatch between "module" and "exports.import" These must be equal.');
43
+ }
44
+ if (exportEntry.types && rootExport.types && exportEntry.types !== rootExport.types) {
45
+ errors.push('package.json: mismatch between "types" and "exports.types". These must be equal.');
46
+ }
47
+ if (exportEntry.source && rootExport.source && exportEntry.source !== rootExport.source) {
48
+ errors.push('package.json: mismatch between "source" and "exports.source". These must be equal.');
49
+ }
50
+ Object.assign(rootExport, exportEntry);
51
+ } else {
52
+ const extraExport = {
53
+ _exported: true,
54
+ _path: exportPath,
55
+ ...exportEntry
56
+ };
57
+ extraExports.push(extraExport);
58
+ }
59
+ } else {
60
+ errors.push("package.json: exports must be an object");
61
+ }
62
+ }
63
+ }
64
+ const _exports = [rootExport, ...extraExports];
65
+ errors.push(...validateExports(_exports, {
66
+ extMap,
67
+ pkg
68
+ }));
69
+ if (errors.length) {
70
+ throw new Error("\n- " + errors.join("\n- "));
71
+ }
72
+ return _exports;
73
+ }
74
+ export { parseExports };
75
+ //# sourceMappingURL=parseExports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseExports.js","sources":["../../../src/node/core/pkg/parseExports.ts"],"sourcesContent":["import {PkgExport} from '../config'\nimport {isRecord} from '../isRecord'\nimport {PkgExtMap} from './pkgExt'\nimport {PackageJSON} from './types'\nimport {validateExports} from './validateExports'\n\n/** @internal */\nexport function parseExports(options: {\n extMap: PkgExtMap\n pkg: PackageJSON\n strict: boolean\n}): (PkgExport & {_path: string})[] {\n const {extMap, pkg, strict} = options\n\n const rootExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: '.',\n types: pkg.types,\n source: pkg.source || '',\n browser: pkg.browser && {\n source: pkg.source || '',\n require: pkg.main && pkg.browser[pkg.main],\n import: pkg.module && pkg.browser[pkg.module],\n },\n require: pkg.main,\n import: pkg.module,\n default: pkg.module || pkg.main || '',\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n const errors: string[] = []\n\n if (pkg.exports) {\n if (strict && !pkg.exports['./package.json']) {\n errors.push('package.json: `exports[\"./package.json\"] must be declared.')\n }\n\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (exportPath.endsWith('.json')) {\n if (exportPath === './package.json') {\n if (exportEntry !== './package.json') {\n errors.push('package.json: `exports[\"./package.json\"] must be \"./package.json\".')\n }\n }\n } else if (isRecord(exportEntry)) {\n if (exportPath === '.') {\n if (\n exportEntry.require &&\n rootExport.require &&\n exportEntry.require !== rootExport.require\n ) {\n errors.push(\n 'package.json: mismatch between \"main\" and \"exports.require\". These must be equal.',\n )\n }\n\n if (exportEntry.import && rootExport.import && exportEntry.import !== rootExport.import) {\n errors.push(\n 'package.json: mismatch between \"module\" and \"exports.import\" These must be equal.',\n )\n }\n\n if (exportEntry.types && rootExport.types && exportEntry.types !== rootExport.types) {\n errors.push(\n 'package.json: mismatch between \"types\" and \"exports.types\". These must be equal.',\n )\n }\n\n if (exportEntry.source && rootExport.source && exportEntry.source !== rootExport.source) {\n errors.push(\n 'package.json: mismatch between \"source\" and \"exports.source\". These must be equal.',\n )\n }\n\n Object.assign(rootExport, exportEntry)\n } else {\n const extraExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: exportPath,\n ...exportEntry,\n }\n\n extraExports.push(extraExport)\n }\n } else {\n errors.push('package.json: exports must be an object')\n }\n }\n }\n\n const _exports = [rootExport, ...extraExports]\n\n errors.push(...validateExports(_exports, {extMap, pkg}))\n\n if (errors.length) {\n throw new Error('\\n- ' + errors.join('\\n- '))\n }\n\n return _exports\n}\n"],"names":["parseExports","options","extMap","pkg","strict","rootExport","_exported","_path","types","source","browser","require","main","import","module","default","extraExports","errors","exports","push","exportPath","exportEntry","Object","entries","endsWith","isRecord","assign","extraExport","_exports","validateExports","length","Error","join"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ const DEFAULT_PKG_EXT_MAP = {
2
+ // pkg.type: "commonjs"
3
+ commonjs: {
4
+ commonjs: ".js",
5
+ esm: ".mjs"
6
+ },
7
+ // pkg.type: "module"
8
+ module: {
9
+ commonjs: ".cjs",
10
+ esm: ".js"
11
+ }
12
+ };
13
+ function getPkgExtMap(options) {
14
+ const {
15
+ legacyExports
16
+ } = options;
17
+ const ret = {
18
+ ...DEFAULT_PKG_EXT_MAP
19
+ };
20
+ if (legacyExports) {
21
+ ret["commonjs"] = {
22
+ commonjs: ".js",
23
+ esm: ".esm.js"
24
+ };
25
+ }
26
+ return ret;
27
+ }
28
+ export { DEFAULT_PKG_EXT_MAP, getPkgExtMap };
29
+ //# sourceMappingURL=pkgExt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkgExt.js","sources":["../../../src/node/core/pkg/pkgExt.ts"],"sourcesContent":["/** @internal */\nexport interface PkgExtMap {\n commonjs: {commonjs: string; esm: string}\n module: {commonjs: string; esm: string}\n}\n\n/** @internal */\nexport const DEFAULT_PKG_EXT_MAP: PkgExtMap = {\n // pkg.type: \"commonjs\"\n commonjs: {\n commonjs: '.js',\n esm: '.mjs',\n },\n\n // pkg.type: \"module\"\n module: {\n commonjs: '.cjs',\n esm: '.js',\n },\n}\n\n/** @internal */\nexport function getPkgExtMap(options: {legacyExports: boolean}): PkgExtMap {\n const {legacyExports} = options\n\n const ret = {...DEFAULT_PKG_EXT_MAP}\n\n // Fall back to legacy file extensions for package.json with `\"type\": \"commonjs\"`\n // NOTE: Not supported by Node 14+ and will be removed in a future version\n if (legacyExports) {\n ret['commonjs'] = {\n commonjs: '.js',\n esm: '.esm.js',\n }\n }\n\n return ret\n}\n"],"names":["DEFAULT_PKG_EXT_MAP","commonjs","esm","module","getPkgExtMap","options","legacyExports","ret"],"mappings":"AAOO,MAAMA,mBAAiC,GAAA;EAAA;EAE5CC,QAAU,EAAA;IACRA,QAAU,EAAA,KAAA;IACVC,GAAK,EAAA;EACP,CAAA;EAAA;EAGAC,MAAQ,EAAA;IACNF,QAAU,EAAA,MAAA;IACVC,GAAK,EAAA;EACP;AACF,CAAA;AAGO,SAASE,aAAaC,OAA8C,EAAA;EACnE,MAAA;IAACC;EAAiB,CAAA,GAAAD,OAAA;EAElB,MAAAE,GAAA,GAAM;IAAC,GAAGP;GAAmB;EAInC,IAAIM,aAAe,EAAA;IACjBC,GAAA,CAAI,UAAU,CAAI,GAAA;MAChBN,QAAU,EAAA,KAAA;MACVC,GAAK,EAAA;IAAA,CACP;EACF;EAEO,OAAAK,GAAA;AACT;"}
@@ -0,0 +1,19 @@
1
+ function validateExports(_exports, options) {
2
+ const {
3
+ extMap,
4
+ pkg
5
+ } = options;
6
+ const ext = extMap[pkg.type || "commonjs"];
7
+ const errors = [];
8
+ for (const exp of _exports) {
9
+ if (exp.require && !exp.require.endsWith(ext.commonjs)) {
10
+ errors.push("package.json with `type: \"".concat(pkg.type, "\"` - `exports[\"").concat(exp._path, "\"].require` must end with \"").concat(ext.commonjs, "\""));
11
+ }
12
+ if (exp.import && !exp.import.endsWith(ext.esm)) {
13
+ errors.push("package.json with `type: \"".concat(pkg.type, "\"` - `exports[\"").concat(exp._path, "\"].import` must end with \"").concat(ext.esm, "\""));
14
+ }
15
+ }
16
+ return errors;
17
+ }
18
+ export { validateExports };
19
+ //# sourceMappingURL=validateExports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateExports.js","sources":["../../../src/node/core/pkg/validateExports.ts"],"sourcesContent":["import {PkgExport} from '../config'\nimport {PkgExtMap} from './pkgExt'\nimport {PackageJSON} from './types'\n\nexport function validateExports(\n _exports: (PkgExport & {_path: string})[],\n options: {extMap: PkgExtMap; pkg: PackageJSON},\n): string[] {\n const {extMap, pkg} = options\n const ext = extMap[pkg.type || 'commonjs']\n\n const errors: string[] = []\n\n for (const exp of _exports) {\n if (exp.require && !exp.require.endsWith(ext.commonjs)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].require\\` must end with \"${ext.commonjs}\"`,\n )\n }\n\n if (exp.import && !exp.import.endsWith(ext.esm)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].import\\` must end with \"${ext.esm}\"`,\n )\n }\n }\n\n return errors\n}\n"],"names":["validateExports","_exports","options","extMap","pkg","ext","type","errors","exp","require","endsWith","commonjs","push","concat","_path","import","esm"],"mappings":"AAIgB,SAAAA,eAAAA,CACdC,UACAC,OACU,EAAA;EACJ,MAAA;IAACC,MAAQ;IAAAC;EAAO,CAAA,GAAAF,OAAA;EACtB,MAAMG,GAAM,GAAAF,MAAA,CAAOC,GAAI,CAAAE,IAAA,IAAQ,UAAU,CAAA;EAEzC,MAAMC,SAAmB,EAAC;EAE1B,KAAA,MAAWC,OAAOP,QAAU,EAAA;IACtB,IAAAO,GAAA,CAAIC,WAAW,CAACD,GAAA,CAAIC,QAAQC,QAAS,CAAAL,GAAA,CAAIM,QAAQ,CAAG,EAAA;MAC/CJ,MAAA,CAAAK,IAAA,+BAAAC,MAAA,CACyBT,IAAIE,IAAI,uBAAAO,MAAA,CAAoBL,IAAIM,KAAK,mCAAAD,MAAA,CAA+BR,IAAIM,QAAQ,OAAA,CAChH;IACF;IAEI,IAAAH,GAAA,CAAIO,UAAU,CAACP,GAAA,CAAIO,OAAOL,QAAS,CAAAL,GAAA,CAAIW,GAAG,CAAG,EAAA;MACxCT,MAAA,CAAAK,IAAA,+BAAAC,MAAA,CACyBT,IAAIE,IAAI,uBAAAO,MAAA,CAAoBL,IAAIM,KAAK,kCAAAD,MAAA,CAA8BR,IAAIW,GAAG,OAAA,CAC1G;IACF;EACF;EAEO,OAAAT,MAAA;AACT;"}
@@ -0,0 +1,49 @@
1
+ import { z } from 'zod';
2
+ import { assertFirst } from './helpers.js';
3
+ const pkgSchema = z.object({
4
+ type: z.optional(z.enum(["commonjs", "module"])),
5
+ name: z.string(),
6
+ version: z.string(),
7
+ license: z.string(),
8
+ bin: z.optional(z.record(z.string())),
9
+ dependencies: z.optional(z.record(z.string())),
10
+ devDependencies: z.optional(z.record(z.string())),
11
+ peerDependencies: z.optional(z.record(z.string())),
12
+ source: z.optional(z.string()),
13
+ main: z.optional(z.string()),
14
+ browser: z.optional(z.record(z.string())),
15
+ module: z.optional(z.string()),
16
+ types: z.optional(z.string()),
17
+ exports: z.optional(z.record(z.union([z.custom(val => /^\.\/.*\.json$/.test(val)), z.object({
18
+ types: z.optional(z.string()),
19
+ source: z.string(),
20
+ browser: z.optional(z.object({
21
+ source: z.string(),
22
+ import: z.optional(z.string()),
23
+ require: z.optional(z.string())
24
+ })),
25
+ module: z.optional(z.string()),
26
+ node: z.optional(z.object({
27
+ source: z.optional(z.string()),
28
+ import: z.optional(z.string()),
29
+ require: z.optional(z.string())
30
+ })),
31
+ import: z.optional(z.string()),
32
+ require: z.optional(z.string()),
33
+ default: z.string()
34
+ }).superRefine((val, ctx) => {
35
+ const keys = Object.keys(val);
36
+ if (!assertFirst("types", keys)) {
37
+ ctx.addIssue({
38
+ code: z.ZodIssueCode.custom,
39
+ message: "the `types` property should be the first property"
40
+ });
41
+ }
42
+ })]))),
43
+ browserslist: z.optional(z.array(z.string()))
44
+ });
45
+ function validatePkg(input) {
46
+ return pkgSchema.parse(input);
47
+ }
48
+ export { validatePkg };
49
+ //# sourceMappingURL=validatePkg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validatePkg.js","sources":["../../../src/node/core/pkg/validatePkg.ts"],"sourcesContent":["import {z} from 'zod'\n\nimport {PackageJSON} from './types'\nimport { assertFirst } from './helpers';\n\nconst pkgSchema = z.object({\n type: z.optional(z.enum(['commonjs', 'module'])),\n name: z.string(),\n version: z.string(),\n license: z.string(),\n bin: z.optional(z.record(z.string())),\n dependencies: z.optional(z.record(z.string())),\n devDependencies: z.optional(z.record(z.string())),\n peerDependencies: z.optional(z.record(z.string())),\n source: z.optional(z.string()),\n main: z.optional(z.string()),\n browser: z.optional(z.record(z.string())),\n module: z.optional(z.string()),\n types: z.optional(z.string()),\n exports: z.optional(\n z.record(\n z.union([\n z.custom<`./${string}.json`>((val) => /^\\.\\/.*\\.json$/.test(val as string)),\n z.object({\n types: z.optional(z.string()),\n source: z.string(),\n browser: z.optional(\n z.object({\n source: z.string(),\n import: z.optional(z.string()),\n require: z.optional(z.string()),\n }),\n ),\n module: z.optional(z.string()),\n node: z.optional(\n z.object({\n source: z.optional(z.string()),\n import: z.optional(z.string()),\n require: z.optional(z.string()),\n }),\n ),\n import: z.optional(z.string()),\n require: z.optional(z.string()),\n default: z.string(),\n }).superRefine((val, ctx) => {\n const keys = Object.keys(val)\n\n if (!assertFirst('types', keys)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:`the \\`types\\` property should be the first property`,\n });\n }\n\n // if (val.length > 3) {\n // ctx.addIssue({\n // code: z.ZodIssueCode.too_big,\n // maximum: 3,\n // type: \"array\",\n // inclusive: true,\n // message: \"Too many items 😡\",\n // });\n // }\n\n // if (val.length !== new Set(val).size) {\n // ctx.addIssue({\n // code: z.ZodIssueCode.custom,\n // message: `No duplicates allowed.`,\n // });\n // }\n }),\n ]),\n ),\n ),\n browserslist: z.optional(z.array(z.string())),\n})\n\nexport function validatePkg(input: unknown): PackageJSON {\n return pkgSchema.parse(input)\n}\n"],"names":["pkgSchema","z","object","type","optional","enum","name","string","version","license","bin","record","dependencies","devDependencies","peerDependencies","source","main","browser","module","types","exports","union","custom","val","test","import","require","node","default","superRefine","ctx","keys","Object","assertFirst","addIssue","code","ZodIssueCode","message","browserslist","array","validatePkg","input","parse"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { writeFile } from 'fs/promises';
2
+ import { mkdirp } from 'mkdirp';
3
+ import { relative, resolve, dirname } from 'path';
4
+ import prompts from 'prompts';
5
+ const promptsTypes = {
6
+ string: "text"
7
+ };
8
+ async function createFromTemplate(options) {
9
+ const {
10
+ cwd,
11
+ logger,
12
+ packagePath,
13
+ template: templateOrResolver
14
+ } = options;
15
+ const template = typeof templateOrResolver === "function" ? await templateOrResolver({
16
+ cwd,
17
+ logger,
18
+ packagePath
19
+ }) : templateOrResolver;
20
+ logger.log("create new package at", relative(cwd, packagePath));
21
+ const templateOptions = {};
22
+ for (const templateOption of template.options) {
23
+ const templateValidate = templateOption.validate;
24
+ const res = await prompts({
25
+ type: promptsTypes[templateOption.type],
26
+ name: templateOption.name,
27
+ message: templateOption.description,
28
+ validate: templateValidate ? prev => templateValidate(prev) : void 0,
29
+ initial: typeof templateOption.initial === "function" ? templateOption.initial(templateOptions) : templateOption.initial
30
+ }, {
31
+ onCancel: () => process.exit(0)
32
+ });
33
+ templateOptions[templateOption.name] = templateOption.parse ? templateOption.parse(res[templateOption.name]) : res[templateOption.name];
34
+ }
35
+ const features = {};
36
+ for (const templateFeature of template.features) {
37
+ const res = templateFeature.optional ? await prompts({
38
+ type: "confirm",
39
+ name: "confirm",
40
+ message: "use ".concat(templateFeature.name, "?"),
41
+ initial: templateFeature.initial
42
+ }, {
43
+ onCancel: () => process.exit(0)
44
+ }) : void 0;
45
+ features[templateFeature.name] = (res == null ? void 0 : res.confirm) || !templateFeature.optional;
46
+ }
47
+ const files = await template.getFiles(templateOptions, features);
48
+ files.sort((a, b) => {
49
+ return a.name.localeCompare(b.name);
50
+ });
51
+ for (const file of files) {
52
+ const filePath = resolve(packagePath, file.name);
53
+ await mkdirp(dirname(filePath));
54
+ await writeFile(filePath, file.contents.trim() + "\n");
55
+ logger.success("wrote ".concat(relative(cwd, filePath)));
56
+ }
57
+ }
58
+ export { createFromTemplate };
59
+ //# sourceMappingURL=createFromTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFromTemplate.js","sources":["../../../src/node/core/template/createFromTemplate.ts"],"sourcesContent":["import {writeFile} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport {dirname, relative, resolve} from 'path'\nimport prompts from 'prompts'\n\nimport {Logger} from '../../logger'\nimport {PkgTemplate} from './types'\n\nconst promptsTypes = {\n string: 'text' as const,\n}\n\n/** @internal */\nexport async function createFromTemplate(options: {\n cwd: string\n logger: Logger\n packagePath: string\n template: PkgTemplate\n}): Promise<void> {\n const {cwd, logger, packagePath, template: templateOrResolver} = options\n\n const template =\n typeof templateOrResolver === 'function'\n ? await templateOrResolver({cwd, logger, packagePath})\n : templateOrResolver\n\n logger.log('create new package at', relative(cwd, packagePath))\n\n const templateOptions: Record<string, string> = {}\n\n for (const templateOption of template.options) {\n const templateValidate = templateOption.validate\n\n const res = await prompts(\n {\n type: promptsTypes[templateOption.type],\n name: templateOption.name,\n message: templateOption.description,\n validate: templateValidate ? (prev) => templateValidate(prev) : undefined,\n initial:\n typeof templateOption.initial === 'function'\n ? templateOption.initial(templateOptions)\n : templateOption.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n\n templateOptions[templateOption.name] = templateOption.parse\n ? templateOption.parse(res[templateOption.name])\n : res[templateOption.name]\n }\n\n const features: Record<string, boolean> = {}\n\n for (const templateFeature of template.features) {\n const res = templateFeature.optional\n ? await prompts(\n {\n type: 'confirm',\n name: 'confirm',\n message: `use ${templateFeature.name}?`,\n initial: templateFeature.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n : undefined\n\n features[templateFeature.name] = res?.confirm || !templateFeature.optional\n }\n\n const files = await template.getFiles(templateOptions, features)\n\n files.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n for (const file of files) {\n const filePath = resolve(packagePath, file.name)\n\n await mkdirp(dirname(filePath))\n await writeFile(filePath, file.contents.trim() + '\\n')\n\n logger.success(`wrote ${relative(cwd, filePath)}`)\n }\n}\n"],"names":["promptsTypes","string","createFromTemplate","options","cwd","logger","packagePath","template","templateOrResolver","log","relative","templateOptions","templateOption","templateValidate","validate","res","prompts","type","name","message","description","prev","initial","onCancel","process","exit","parse","features","templateFeature","optional","concat","confirm","files","getFiles","sort","a","b","localeCompare","file","filePath","resolve","mkdirp","dirname","writeFile","contents","trim","success"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ function defineTemplateOption(option) {
2
+ return option;
3
+ }
4
+ export { defineTemplateOption };
5
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sources":["../../../src/node/core/template/define.ts"],"sourcesContent":["import {PkgTemplateOption} from './types'\n\n/** @public */\nexport function defineTemplateOption<T>(option: PkgTemplateOption<T>): PkgTemplateOption<T> {\n return option\n}\n"],"names":["defineTemplateOption","option"],"mappings":"AAGO,SAASA,qBAAwBC,MAAoD,EAAA;EACnF,OAAAA,MAAA;AACT;"}
@@ -0,0 +1,15 @@
1
+ import ts from 'typescript';
2
+ async function loadTSConfig(options) {
3
+ const {
4
+ cwd,
5
+ tsconfigPath
6
+ } = options;
7
+ const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, tsconfigPath);
8
+ if (!configPath) {
9
+ throw new Error("could not find a valid '".concat(tsconfigPath, "'"));
10
+ }
11
+ const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
12
+ return ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd);
13
+ }
14
+ export { loadTSConfig };
15
+ //# sourceMappingURL=loadTSConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadTSConfig.js","sources":["../../../src/node/core/ts/loadTSConfig.ts"],"sourcesContent":["import ts from 'typescript'\n\n/** @internal */\nexport async function loadTSConfig(options: {\n cwd: string\n tsconfigPath: string\n}): Promise<ts.ParsedCommandLine> {\n const {cwd, tsconfigPath} = options\n\n const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, tsconfigPath)\n\n if (!configPath) {\n throw new Error(`could not find a valid '${tsconfigPath}'`)\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile)\n\n return ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd)\n}\n"],"names":["loadTSConfig","options","cwd","tsconfigPath","configPath","ts","findConfigFile","sys","fileExists","Error","concat","configFile","readConfigFile","readFile","parseJsonConfigFileContent","config"],"mappings":";AAGA,eAAsBA,aAAaC,OAGD,EAAA;EAC1B,MAAA;IAACC,GAAK;IAAAC;EAAgB,CAAA,GAAAF,OAAA;EAE5B,MAAMG,aAAaC,EAAG,CAAAC,cAAA,CAAeJ,KAAKG,EAAG,CAAAE,GAAA,CAAIC,YAAYL,YAAY,CAAA;EAEzE,IAAI,CAACC,UAAY,EAAA;IACf,MAAM,IAAIK,KAAA,4BAAAC,MAAA,CAAiCP,YAAY,MAAG,CAAA;EAC5D;EAEA,MAAMQ,aAAaN,EAAG,CAAAO,cAAA,CAAeR,UAAY,EAAAC,EAAA,CAAGE,IAAIM,QAAQ,CAAA;EAEhE,OAAOR,GAAGS,0BAA2B,CAAAH,UAAA,CAAWI,MAAQ,EAAAV,EAAA,CAAGE,KAAKL,GAAG,CAAA;AACrE;"}
@@ -0,0 +1,11 @@
1
+ import { statSync } from 'fs';
2
+ function fileExists(filePath) {
3
+ try {
4
+ statSync(filePath);
5
+ return true;
6
+ } catch (_) {
7
+ return false;
8
+ }
9
+ }
10
+ export { fileExists };
11
+ //# sourceMappingURL=fileExists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileExists.js","sources":["../src/node/fileExists.ts"],"sourcesContent":["import {statSync} from 'fs'\n\n/** @internal */\nexport function fileExists(filePath: string): boolean {\n try {\n statSync(filePath)\n\n return true\n } catch (_) {\n return false\n }\n}\n"],"names":["fileExists","filePath","statSync","_"],"mappings":";AAGO,SAASA,WAAWC,QAA2B,EAAA;EAChD,IAAA;IACFC,QAAA,CAASD,QAAQ,CAAA;IAEV,OAAA,IAAA;WACAE,CAAG,EAAA;IACH,OAAA,KAAA;EACT;AACF;"}
@@ -0,0 +1,8 @@
1
+ import { statSync } from 'fs';
2
+ import prettyBytes from 'pretty-bytes';
3
+ function getFilesize(file) {
4
+ const stats = statSync(file);
5
+ return prettyBytes(stats.size);
6
+ }
7
+ export { getFilesize };
8
+ //# sourceMappingURL=getFilesize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFilesize.js","sources":["../src/node/getFilesize.ts"],"sourcesContent":["import {statSync} from 'fs'\nimport prettyBytes from 'pretty-bytes'\n\nexport function getFilesize(file: string): string {\n const stats = statSync(file)\n\n return prettyBytes(stats.size)\n}\n"],"names":["getFilesize","file","stats","statSync","prettyBytes","size"],"mappings":";;AAGO,SAASA,YAAYC,IAAsB,EAAA;EAC1C,MAAAC,KAAA,GAAQC,SAASF,IAAI,CAAA;EAEpB,OAAAG,WAAA,CAAYF,MAAMG,IAAI,CAAA;AAC/B;"}
@@ -0,0 +1,7 @@
1
+ import globby from 'globby';
2
+ import path from 'path';
3
+ function globFiles(patterns) {
4
+ return globby(patterns.map(pattern => pattern.split(path.sep).join(path.posix.sep)));
5
+ }
6
+ export { globFiles };
7
+ //# sourceMappingURL=globFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globFiles.js","sources":["../src/node/globFiles.ts"],"sourcesContent":["import globby from 'globby'\nimport path from 'path'\n\nexport function globFiles(patterns: string[]): Promise<string[]> {\n return globby(patterns.map((pattern) => pattern.split(path.sep).join(path.posix.sep)))\n}\n"],"names":["globFiles","patterns","globby","map","pattern","split","path","sep","join","posix"],"mappings":";;AAGO,SAASA,UAAUC,QAAuC,EAAA;EAC/D,OAAOC,MAAO,CAAAD,QAAA,CAASE,GAAI,CAACC,WAAYA,OAAQ,CAAAC,KAAA,CAAMC,IAAK,CAAAC,GAAG,EAAEC,IAAK,CAAAF,IAAA,CAAKG,KAAM,CAAAF,GAAG,CAAC,CAAC,CAAA;AACvF;"}
package/dist/index.cjs CHANGED
@@ -3,40 +3,54 @@
3
3
  Object.defineProperty(exports, '__esModule', {
4
4
  value: true
5
5
  });
6
- var build = require('./_chunks/build-62cd452e.cjs');
7
- var check = require('./_chunks/check-0665cb35.cjs');
8
- var consoleSpy = require('./_chunks/consoleSpy-d738cb9f.cjs');
9
- var logger = require('./_chunks/logger-c593f06b.cjs');
10
- var init = require('./_chunks/init-2377e6e5.cjs');
11
- var index = require('./_chunks/index-ad3fa5bb.cjs');
12
- var watch = require('./_chunks/watch-425eab1e.cjs');
13
- function defineConfig(configOptions) {
14
- return configOptions;
15
- }
6
+ var build = require('./src/node/build.cjs');
7
+ var check = require('./src/node/check.cjs');
8
+ var defineConfig = require('./src/node/core/config/defineConfig.cjs');
9
+ var loadConfig = require('./src/node/core/config/loadConfig.cjs');
10
+ var resolveConfigProperty = require('./src/node/core/config/resolveConfigProperty.cjs');
11
+ var defaults = require('./src/node/core/defaults.cjs');
12
+ var isRecord = require('./src/node/core/isRecord.cjs');
13
+ var loadPkg = require('./src/node/core/pkg/loadPkg.cjs');
14
+ var loadPkgWithReporting = require('./src/node/core/pkg/loadPkgWithReporting.cjs');
15
+ var parseExports = require('./src/node/core/pkg/parseExports.cjs');
16
+ var pkgExt = require('./src/node/core/pkg/pkgExt.cjs');
17
+ var createFromTemplate = require('./src/node/core/template/createFromTemplate.cjs');
18
+ var define = require('./src/node/core/template/define.cjs');
19
+ var loadTSConfig = require('./src/node/core/ts/loadTSConfig.cjs');
20
+ var init = require('./src/node/init.cjs');
21
+ var logger = require('./src/node/logger.cjs');
22
+ var resolveBuildTasks = require('./src/node/resolveBuildTasks.cjs');
23
+ var index = require('./src/node/tasks/index.cjs');
24
+ var watch = require('./src/node/watch.cjs');
25
+ var dtsTask = require('./src/node/tasks/dts/dtsTask.cjs');
26
+ var dtsWatchTask = require('./src/node/tasks/dts/dtsWatchTask.cjs');
27
+ var getExtractMessagesConfig = require('./src/node/tasks/dts/getExtractMessagesConfig.cjs');
28
+ var rollupTask = require('./src/node/tasks/rollup/rollupTask.cjs');
29
+ var rollupWatchTask = require('./src/node/tasks/rollup/rollupWatchTask.cjs');
16
30
  exports.build = build.build;
17
- exports.resolveBuildTasks = build.resolveBuildTasks;
18
31
  exports.check = check.check;
19
- exports.DEFAULT_BROWSERSLIST_QUERY = consoleSpy.DEFAULT_BROWSERSLIST_QUERY;
20
- exports.DEFAULT_PKG_EXT_MAP = consoleSpy.DEFAULT_PKG_EXT_MAP;
21
- exports.getPkgExtMap = consoleSpy.getPkgExtMap;
22
- exports.loadConfig = consoleSpy.loadConfig;
23
- exports.loadPkg = consoleSpy.loadPkg;
24
- exports.loadPkgWithReporting = consoleSpy.loadPkgWithReporting;
25
- exports.loadTSConfig = consoleSpy.loadTSConfig;
26
- exports.parseExports = consoleSpy.parseExports;
27
- exports.resolveConfigProperty = consoleSpy.resolveConfigProperty;
28
- exports.createLogger = logger.createLogger;
29
- exports.isRecord = logger.isRecord;
30
- exports.createFromTemplate = init.createFromTemplate;
31
- exports.defineTemplateOption = init.defineTemplateOption;
32
+ exports.defineConfig = defineConfig.defineConfig;
33
+ exports.loadConfig = loadConfig.loadConfig;
34
+ exports.resolveConfigProperty = resolveConfigProperty.resolveConfigProperty;
35
+ exports.DEFAULT_BROWSERSLIST_QUERY = defaults.DEFAULT_BROWSERSLIST_QUERY;
36
+ exports.isRecord = isRecord.isRecord;
37
+ exports.loadPkg = loadPkg.loadPkg;
38
+ exports.loadPkgWithReporting = loadPkgWithReporting.loadPkgWithReporting;
39
+ exports.parseExports = parseExports.parseExports;
40
+ exports.DEFAULT_PKG_EXT_MAP = pkgExt.DEFAULT_PKG_EXT_MAP;
41
+ exports.getPkgExtMap = pkgExt.getPkgExtMap;
42
+ exports.createFromTemplate = createFromTemplate.createFromTemplate;
43
+ exports.defineTemplateOption = define.defineTemplateOption;
44
+ exports.loadTSConfig = loadTSConfig.loadTSConfig;
32
45
  exports.init = init.init;
46
+ exports.createLogger = logger.createLogger;
47
+ exports.resolveBuildTasks = resolveBuildTasks.resolveBuildTasks;
33
48
  exports.buildTaskHandlers = index.buildTaskHandlers;
34
- exports.dtsTask = index.dtsTask;
35
- exports.dtsWatchTask = index.dtsWatchTask;
36
- exports.getExtractMessagesConfig = index.getExtractMessagesConfig;
37
- exports.rollupTask = index.rollupTask;
38
- exports.rollupWatchTask = index.rollupWatchTask;
39
49
  exports.watchTaskHandlers = index.watchTaskHandlers;
40
50
  exports.watch = watch.watch;
41
- exports.defineConfig = defineConfig;
51
+ exports.dtsTask = dtsTask.dtsTask;
52
+ exports.dtsWatchTask = dtsWatchTask.dtsWatchTask;
53
+ exports.getExtractMessagesConfig = getExtractMessagesConfig.getExtractMessagesConfig;
54
+ exports.rollupTask = rollupTask.rollupTask;
55
+ exports.rollupWatchTask = rollupWatchTask.rollupWatchTask;
42
56
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/node/core/config/defineConfig.ts"],"sourcesContent":["import {PkgConfigOptions} from './types'\n\n/** @public */\nexport function defineConfig(configOptions: PkgConfigOptions): PkgConfigOptions {\n return configOptions\n}\n"],"names":["defineConfig","configOptions"],"mappings":";;;;;;;;;;;;AAGO,SAASA,aAAaC,aAAmD,EAAA;EACvE,OAAAA,aAAA;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -218,14 +218,16 @@ export declare interface PackageJSON {
218
218
  types?: string
219
219
  browser?: {
220
220
  source: string
221
- require?: string
222
221
  import?: string
222
+ require?: string
223
223
  }
224
224
  node?: {
225
225
  source?: string
226
- require?: string
226
+ module?: string
227
227
  import?: string
228
+ require?: string
228
229
  }
230
+ module?: string
229
231
  import?: string
230
232
  require?: string
231
233
  default: string