@sanity/pkg-utils 2.3.12 → 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 (263) 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-e950d498.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-63c8a721.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-11470607.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/rollup/resolveRollupConfig.ts +4 -0
  246. package/src/node/tasks/rollup/rollupTask.ts +8 -0
  247. package/dist/_chunks/build-11470607.cjs.map +0 -1
  248. package/dist/_chunks/buildAction-e950d498.cjs.map +0 -1
  249. package/dist/_chunks/check-0665cb35.cjs +0 -250
  250. package/dist/_chunks/check-0665cb35.cjs.map +0 -1
  251. package/dist/_chunks/checkAction-c3e5da35.cjs.map +0 -1
  252. package/dist/_chunks/consoleSpy-d738cb9f.cjs +0 -550
  253. package/dist/_chunks/consoleSpy-d738cb9f.cjs.map +0 -1
  254. package/dist/_chunks/handleError-13d87f55.cjs.map +0 -1
  255. package/dist/_chunks/index-70f8931a.cjs +0 -865
  256. package/dist/_chunks/index-70f8931a.cjs.map +0 -1
  257. package/dist/_chunks/init-2377e6e5.cjs.map +0 -1
  258. package/dist/_chunks/initAction-2abd8576.cjs.map +0 -1
  259. package/dist/_chunks/logger-c593f06b.cjs +0 -97
  260. package/dist/_chunks/logger-c593f06b.cjs.map +0 -1
  261. package/dist/_chunks/watch-d390d5e4.cjs +0 -231
  262. package/dist/_chunks/watch-d390d5e4.cjs.map +0 -1
  263. package/dist/_chunks/watchAction-63c8a721.cjs.map +0 -1
@@ -0,0 +1,366 @@
1
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
2
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
3
+ import getLatestVersion from 'get-latest-version';
4
+ import gitUrlParse from 'git-url-parse';
5
+ import { outdent } from 'outdent';
6
+ import parseGitConfig from 'parse-git-config';
7
+ import { resolve } from 'path';
8
+ import prettier from 'prettier';
9
+ import 'esbuild-register/dist/node';
10
+ import 'pkg-up';
11
+ import 'find-config';
12
+ import 'fs';
13
+ import { isRecord } from '../../core/isRecord.js';
14
+ import 'fs/promises';
15
+ import '../../core/pkg/validatePkg.js';
16
+ import 'chalk';
17
+ import 'zod';
18
+ import 'mkdirp';
19
+ import 'prompts';
20
+ import { defineTemplateOption } from '../../core/template/define.js';
21
+ import 'typescript';
22
+ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/i;
23
+ const defaultTemplate = async _ref => {
24
+ let {
25
+ cwd,
26
+ logger,
27
+ packagePath
28
+ } = _ref;
29
+ var _a, _b;
30
+ const gitConfig = await parseGitConfig({
31
+ cwd,
32
+ type: "global"
33
+ });
34
+ return {
35
+ options: [defineTemplateOption({
36
+ name: "repo",
37
+ type: "string",
38
+ description: "git url",
39
+ validate: v => {
40
+ if (!v) return true;
41
+ try {
42
+ gitUrlParse(v);
43
+ return true;
44
+ } catch (err) {
45
+ return "invalid git url";
46
+ }
47
+ },
48
+ parse: v => {
49
+ if (!v) return null;
50
+ const result = gitUrlParse(v);
51
+ return {
52
+ source: result.source,
53
+ owner: result.owner,
54
+ name: result.name
55
+ };
56
+ }
57
+ }), defineTemplateOption({
58
+ name: "pkgName",
59
+ type: "string",
60
+ description: "package name",
61
+ initial: options => {
62
+ var _a2;
63
+ return ((_a2 = options.repo) == null ? void 0 : _a2.name) || void 0;
64
+ },
65
+ validate: v => {
66
+ if (!v) return "package name is required";
67
+ const match = RE_NAME.exec(v);
68
+ if (!match) {
69
+ return "invalid package name";
70
+ }
71
+ return true;
72
+ },
73
+ parse: v => {
74
+ if (!v) {
75
+ throw new Error("package name is required");
76
+ }
77
+ const match = RE_NAME.exec(v);
78
+ if (!match) {
79
+ throw new Error("invalid package name");
80
+ }
81
+ const [scope, name] = v.split("/");
82
+ return {
83
+ scope,
84
+ name,
85
+ fullName: v
86
+ };
87
+ }
88
+ }), defineTemplateOption({
89
+ name: "description",
90
+ type: "string",
91
+ description: "package description"
92
+ }), defineTemplateOption({
93
+ name: "authorName",
94
+ type: "string",
95
+ description: "package author name",
96
+ initial: (_a = gitConfig == null ? void 0 : gitConfig.user) == null ? void 0 : _a.name
97
+ }), defineTemplateOption({
98
+ name: "authorEmail",
99
+ type: "string",
100
+ description: "package author email",
101
+ initial: (_b = gitConfig == null ? void 0 : gitConfig.user) == null ? void 0 : _b.email
102
+ }), defineTemplateOption({
103
+ name: "license",
104
+ type: "string",
105
+ description: "package license",
106
+ initial: "MIT",
107
+ validate: v => {
108
+ if (!v) return "license is required";
109
+ return true;
110
+ }
111
+ })],
112
+ features: [{
113
+ name: "eslint",
114
+ optional: true,
115
+ initial: true
116
+ }, {
117
+ name: "typescript",
118
+ optional: true,
119
+ initial: true
120
+ }],
121
+ async getFiles(options, features) {
122
+ var _filter$join, _options$description;
123
+ var _a2;
124
+ const {
125
+ pkgName,
126
+ repo
127
+ } = options;
128
+ const {
129
+ fullName: name
130
+ } = pkgName;
131
+ const author = (_filter$join = [options.authorName, options.authorEmail && "<".concat(options.authorEmail, ">")].filter(Boolean).join(" ")) !== null && _filter$join !== void 0 ? _filter$join : void 0;
132
+ const prettierConfig = {
133
+ bracketSpacing: false,
134
+ printWidth: 100,
135
+ semi: false,
136
+ singleQuote: true,
137
+ tabWidth: 2,
138
+ plugins: ["prettier-plugin-packagejson"],
139
+ overrides: [{
140
+ files: ["*.yml"],
141
+ options: {
142
+ singleQuote: false
143
+ }
144
+ }]
145
+ };
146
+ const pkgJson = {
147
+ name,
148
+ version: "0.0.0",
149
+ description: (_options$description = options.description) !== null && _options$description !== void 0 ? _options$description : void 0,
150
+ keywords: [],
151
+ license: options.license,
152
+ author,
153
+ type: "module",
154
+ exports: {
155
+ ".": {
156
+ types: void 0,
157
+ source: features.typescript ? "./src/index.ts" : "./src/index.js",
158
+ require: "./dist/index.cjs",
159
+ import: "./dist/index.js",
160
+ default: "./dist/index.js"
161
+ },
162
+ "./package.json": "./package.json"
163
+ },
164
+ main: "./dist/index.cjs",
165
+ module: "./dist/index.js",
166
+ source: features.typescript ? "./src/index.ts" : "./src/index.js",
167
+ files: ["dist", "src"],
168
+ scripts: {
169
+ build: "run-s clean pkg:build pkg:check",
170
+ clean: "rimraf dist",
171
+ format: "prettier --write --cache --ignore-unknown .",
172
+ "pkg:build": "pkg build --strict",
173
+ "pkg:check": "pkg check --strict"
174
+ },
175
+ prettier: prettierConfig,
176
+ "lint-staged": {
177
+ "*": ["prettier --write --cache --ignore-unknown"]
178
+ },
179
+ dependencies: {},
180
+ devDependencies: {
181
+ "@sanity/pkg-utils": "*",
182
+ "lint-staged": "*",
183
+ "npm-run-all": "*",
184
+ prettier: "*",
185
+ "prettier-plugin-packagejson": "*",
186
+ rimraf: "*"
187
+ },
188
+ engines: {
189
+ node: ">=18.0.0"
190
+ }
191
+ };
192
+ const files = [];
193
+ files.push({
194
+ name: ".editorconfig",
195
+ contents: outdent(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n "])))
196
+ });
197
+ files.push({
198
+ name: ".gitignore",
199
+ contents: outdent(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n *.local\n *.log\n\n .DS_Store\n etc\n dist\n node_modules\n "])))
200
+ });
201
+ files.push({
202
+ name: ".prettierignore",
203
+ contents: outdent(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n /dist\n /pnpm-lock.yaml\n "])))
204
+ });
205
+ if (repo) {
206
+ pkgJson.repository = {
207
+ type: "git",
208
+ url: "git+ssh://git@".concat(repo.source, "/").concat(repo.owner, "/").concat(repo.name, ".git")
209
+ };
210
+ pkgJson.bugs = {
211
+ url: "https://".concat(repo.source, "/").concat(repo.owner, "/").concat(repo.name, "/issues")
212
+ };
213
+ pkgJson.homepage = "https://".concat(repo.source, "/").concat(repo.owner, "/").concat(repo.name, "#readme");
214
+ }
215
+ if (features.typescript) {
216
+ pkgJson.types = "./dist/index.d.ts";
217
+ const mainExport = (_a2 = pkgJson.exports) == null ? void 0 : _a2["."];
218
+ if (isRecord(mainExport)) {
219
+ mainExport.types = "./dist/index.d.ts";
220
+ }
221
+ pkgJson.scripts = {
222
+ ...pkgJson.scripts,
223
+ ["type:check"]: "tsc --build"
224
+ };
225
+ const devDependencies = pkgJson.devDependencies;
226
+ if (isRecord(devDependencies)) {
227
+ devDependencies["typescript"] = "*";
228
+ }
229
+ }
230
+ if (features.eslint) {
231
+ const eslintConfig = {
232
+ root: true,
233
+ env: {
234
+ browser: true,
235
+ es6: true,
236
+ node: true
237
+ },
238
+ extends: ["eslint:recommended", "plugin:prettier/recommended"],
239
+ parserOptions: {
240
+ ecmaVersion: 2020,
241
+ sourceType: "module"
242
+ },
243
+ plugins: ["import", "prettier"],
244
+ rules: {
245
+ "no-console": "error",
246
+ "no-shadow": "error",
247
+ "no-warning-comments": ["warn", {
248
+ location: "start",
249
+ terms: ["todo", "fixme"]
250
+ }]
251
+ }
252
+ };
253
+ files.push({
254
+ name: ".eslintignore",
255
+ contents: outdent(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n /dist\n "])))
256
+ });
257
+ pkgJson.scripts = {
258
+ ...pkgJson.scripts,
259
+ lint: features.typescript ? "eslint . --ext .cjs,.js,.ts,.tsx" : "eslint . --ext .cjs,.js"
260
+ };
261
+ pkgJson.devDependencies = {
262
+ ...pkgJson.devDependencies,
263
+ eslint: "*",
264
+ "eslint-config-prettier": "*",
265
+ "eslint-plugin-import": "*",
266
+ "eslint-plugin-prettier": "*"
267
+ };
268
+ if (features.typescript) {
269
+ pkgJson.devDependencies = {
270
+ ...pkgJson.devDependencies,
271
+ "@typescript-eslint/eslint-plugin": "*",
272
+ "@typescript-eslint/parser": "*"
273
+ };
274
+ const eslintConfigOverride = {
275
+ files: ["**/*.ts", "**/*.tsx"],
276
+ parser: "@typescript-eslint/parser",
277
+ parserOptions: {
278
+ project: ["./tsconfig.json"]
279
+ },
280
+ extends: ["eslint:recommended", "plugin:prettier/recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended"].filter(Boolean),
281
+ plugins: ["import", "@typescript-eslint", "prettier"].filter(Boolean),
282
+ rules: {
283
+ "@typescript-eslint/explicit-module-boundary-types": "error",
284
+ "@typescript-eslint/interface-name-prefix": "off",
285
+ "@typescript-eslint/member-delimiter-style": "off",
286
+ "@typescript-eslint/no-empty-interface": "off"
287
+ }
288
+ };
289
+ eslintConfig.overrides = [eslintConfigOverride];
290
+ }
291
+ files.push({
292
+ name: ".eslintrc.cjs",
293
+ contents: await format(resolve(packagePath, ".eslintrc.cjs"), outdent(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ", "\n "])), JSON.stringify(eslintConfig, null, 2)), prettierConfig)
294
+ });
295
+ }
296
+ if (features.typescript) {
297
+ files.push({
298
+ name: "tsconfig.settings.json",
299
+ contents: await format(resolve(packagePath, "tsconfig.settings.json"), outdent(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n {\n \"compilerOptions\": {\n \"module\": \"ES2020\",\n \"target\": \"ES2020\",\n \"declaration\": true,\n \"declarationMap\": true,\n \"sourceMap\": true,\n\n // Strict type-checking\n \"strict\": true,\n \"noImplicitAny\": true,\n \"strictNullChecks\": true,\n \"strictFunctionTypes\": true,\n \"strictPropertyInitialization\": true,\n \"noImplicitThis\": true,\n \"alwaysStrict\": true,\n\n // Additional checks\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noImplicitReturns\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"skipLibCheck\": true,\n\n // Module resolution\n \"moduleResolution\": \"node\",\n \"allowSyntheticDefaultImports\": true,\n \"esModuleInterop\": true\n }\n }\n "]))), prettierConfig)
300
+ });
301
+ files.push({
302
+ name: "tsconfig.dist.json",
303
+ contents: await format(resolve(packagePath, "tsconfig.dist.json"), outdent(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"emitDeclarationOnly\": true,\n \"resolveJsonModule\": true\n }\n }\n "]))), prettierConfig)
304
+ });
305
+ files.push({
306
+ name: "tsconfig.json",
307
+ contents: await format(resolve(packagePath, "tsconfig.json"), outdent(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./*.cjs\", \"./*.ts\", \"./package.config.ts\", \"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n }\n }\n "]))), prettierConfig)
308
+ });
309
+ }
310
+ if (features.typescript) {
311
+ files.push({
312
+ name: "package.config.ts",
313
+ contents: await format(resolve(packagePath, "package.config.ts"), outdent(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with `_`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n "], ["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n "]))), prettierConfig)
314
+ });
315
+ files.push({
316
+ name: "src/index.ts",
317
+ contents: await format(resolve(packagePath, "src/index.ts"), outdent(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n /** @public */\n export function main(): void {\n //\n }\n "]))), prettierConfig)
318
+ });
319
+ } else {
320
+ files.push({
321
+ name: "package.config.js",
322
+ contents: await format(resolve(packagePath, "package.config.js"), outdent(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with `_`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n "], ["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n "]))), prettierConfig)
323
+ });
324
+ files.push({
325
+ name: "src/index.js",
326
+ contents: await format(resolve(packagePath, "src/index.js"), outdent(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n /** @public */\n export function main() {\n //\n }\n "]))), prettierConfig)
327
+ });
328
+ }
329
+ try {
330
+ var _pkgJson$dependencies;
331
+ pkgJson.dependencies = await resolveLatestDeps((_pkgJson$dependencies = pkgJson.dependencies) !== null && _pkgJson$dependencies !== void 0 ? _pkgJson$dependencies : {});
332
+ } catch (error) {
333
+ logger.warn(error instanceof Error ? error.message : error);
334
+ }
335
+ try {
336
+ var _pkgJson$devDependenc;
337
+ pkgJson.devDependencies = await resolveLatestDeps((_pkgJson$devDependenc = pkgJson.devDependencies) !== null && _pkgJson$devDependenc !== void 0 ? _pkgJson$devDependenc : {});
338
+ } catch (error) {
339
+ logger.warn(error instanceof Error ? error.message : error);
340
+ }
341
+ files.push({
342
+ name: "package.json",
343
+ contents: await format(resolve(packagePath, "package.json"), JSON.stringify(pkgJson, null, 2), prettierConfig)
344
+ });
345
+ return files;
346
+ }
347
+ };
348
+ };
349
+ function format(filepath, input, prettierOptions) {
350
+ return prettier.format(input, {
351
+ ...prettierOptions,
352
+ filepath
353
+ });
354
+ }
355
+ async function resolveLatestDeps(deps) {
356
+ const depsEntries = Object.entries(deps);
357
+ const latestDeps = {};
358
+ for (const entry of depsEntries) {
359
+ const [name, version] = entry;
360
+ const latestVersion = await getLatestVersion(name, version);
361
+ latestDeps[name] = latestVersion ? "^".concat(latestVersion) : version;
362
+ }
363
+ return latestDeps;
364
+ }
365
+ export { defaultTemplate };
366
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sources":["../../../src/node/templates/default/template.ts"],"sourcesContent":["import getLatestVersion from 'get-latest-version'\nimport gitUrlParse from 'git-url-parse'\nimport {outdent} from 'outdent'\nimport parseGitConfig from 'parse-git-config'\nimport {resolve} from 'path'\nimport prettier, {Config as PrettierConfig} from 'prettier'\n\nimport {defineTemplateOption, isRecord, PackageJSON, PkgTemplate, PkgTemplateFile} from '../../core'\n\nconst RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\\/)?[a-z0-9-~][a-z0-9-._~]*$/i\n\nexport const defaultTemplate: PkgTemplate = async ({cwd, logger, packagePath}) => {\n const gitConfig = await parseGitConfig({cwd, type: 'global'})\n\n return {\n options: [\n defineTemplateOption<{owner: string; name: string}>({\n name: 'repo',\n type: 'string',\n description: 'git url',\n validate: (v) => {\n if (!v) return true\n\n try {\n gitUrlParse(v)\n\n return true\n } catch (err) {\n return 'invalid git url'\n }\n },\n parse: (v) => {\n if (!v) return null\n\n const result = gitUrlParse(v)\n\n return {source: result.source, owner: result.owner, name: result.name}\n },\n }),\n defineTemplateOption({\n name: 'pkgName',\n type: 'string',\n description: 'package name',\n initial: (options) => options.repo?.name || undefined,\n validate: (v) => {\n if (!v) return 'package name is required'\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n return 'invalid package name'\n }\n\n return true\n },\n parse: (v) => {\n if (!v) {\n throw new Error('package name is required')\n }\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n throw new Error('invalid package name')\n }\n\n const [scope, name] = v.split('/')\n\n return {scope, name, fullName: v}\n },\n }),\n defineTemplateOption({\n name: 'description',\n type: 'string',\n description: 'package description',\n }),\n defineTemplateOption({\n name: 'authorName',\n type: 'string',\n description: 'package author name',\n initial: gitConfig?.user?.name,\n }),\n defineTemplateOption({\n name: 'authorEmail',\n type: 'string',\n description: 'package author email',\n initial: gitConfig?.user?.email,\n }),\n defineTemplateOption({\n name: 'license',\n type: 'string',\n description: 'package license',\n initial: 'MIT',\n validate: (v) => {\n if (!v) return 'license is required'\n\n return true\n },\n }),\n ],\n\n features: [\n {\n name: 'eslint',\n optional: true,\n initial: true,\n },\n {\n name: 'typescript',\n optional: true,\n initial: true,\n },\n ],\n\n async getFiles(options, features) {\n const {pkgName, repo} = options\n const {fullName: name} = pkgName\n\n const author =\n [options.authorName, options.authorEmail && `<${options.authorEmail}>`]\n .filter(Boolean)\n .join(' ') ?? undefined\n\n const prettierConfig: PrettierConfig = {\n bracketSpacing: false,\n printWidth: 100,\n semi: false,\n singleQuote: true,\n tabWidth: 2,\n plugins: ['prettier-plugin-packagejson'],\n overrides: [\n {\n files: ['*.yml'],\n options: {\n singleQuote: false,\n },\n },\n ],\n }\n\n const pkgJson: PackageJSON & {\n prettier?: PrettierConfig\n ['lint-staged']?: Record<string, string[]>\n } = {\n name,\n version: '0.0.0',\n description: options.description ?? undefined,\n keywords: [],\n license: options.license,\n author,\n type: 'module',\n exports: {\n '.': {\n types: undefined,\n source: features.typescript ? './src/index.ts' : './src/index.js',\n require: './dist/index.cjs',\n import: './dist/index.js',\n default: './dist/index.js',\n },\n './package.json': './package.json',\n },\n main: './dist/index.cjs',\n module: './dist/index.js',\n source: features.typescript ? './src/index.ts' : './src/index.js',\n files: ['dist', 'src'],\n scripts: {\n build: 'run-s clean pkg:build pkg:check',\n clean: 'rimraf dist',\n format: 'prettier --write --cache --ignore-unknown .',\n 'pkg:build': 'pkg build --strict',\n 'pkg:check': 'pkg check --strict',\n },\n prettier: prettierConfig,\n 'lint-staged': {\n '*': ['prettier --write --cache --ignore-unknown'],\n },\n dependencies: {},\n devDependencies: {\n '@sanity/pkg-utils': '*',\n 'lint-staged': '*',\n 'npm-run-all': '*',\n prettier: '*',\n 'prettier-plugin-packagejson': '*',\n rimraf: '*',\n },\n engines: {\n node: '>=18.0.0',\n },\n }\n\n const files: PkgTemplateFile[] = []\n\n // .editorconfig\n files.push({\n name: '.editorconfig',\n contents: outdent`\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n `,\n })\n\n // .gitignore\n files.push({\n name: '.gitignore',\n contents: outdent`\n *.local\n *.log\n\n .DS_Store\n etc\n dist\n node_modules\n `,\n })\n\n files.push({\n name: '.prettierignore',\n contents: outdent`\n /dist\n /pnpm-lock.yaml\n `,\n })\n\n if (repo) {\n pkgJson.repository = {\n type: 'git',\n url: `git+ssh://git@${repo.source}/${repo.owner}/${repo.name}.git`,\n }\n pkgJson.bugs = {\n url: `https://${repo.source}/${repo.owner}/${repo.name}/issues`,\n }\n pkgJson.homepage = `https://${repo.source}/${repo.owner}/${repo.name}#readme`\n }\n\n if (features.typescript) {\n pkgJson.types = './dist/index.d.ts'\n\n const mainExport = pkgJson.exports?.['.']\n\n if (isRecord(mainExport)) {\n mainExport.types = './dist/index.d.ts'\n }\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n ['type:check']: 'tsc --build',\n }\n\n const devDependencies = pkgJson.devDependencies\n\n if (isRecord(devDependencies)) {\n devDependencies['typescript'] = '*'\n }\n }\n\n if (features.eslint) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eslintConfig: any = {\n root: true,\n env: {\n browser: true,\n es6: true,\n node: true,\n },\n extends: ['eslint:recommended', 'plugin:prettier/recommended'],\n parserOptions: {\n ecmaVersion: 2020,\n sourceType: 'module',\n },\n plugins: ['import', 'prettier'],\n rules: {\n 'no-console': 'error',\n 'no-shadow': 'error',\n 'no-warning-comments': ['warn', {location: 'start', terms: ['todo', 'fixme']}],\n },\n }\n\n files.push({\n name: '.eslintignore',\n contents: outdent`\n /dist\n `,\n })\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n lint: features.typescript\n ? 'eslint . --ext .cjs,.js,.ts,.tsx'\n : 'eslint . --ext .cjs,.js',\n }\n\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n eslint: '*',\n 'eslint-config-prettier': '*',\n 'eslint-plugin-import': '*',\n 'eslint-plugin-prettier': '*',\n }\n\n if (features.typescript) {\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n '@typescript-eslint/eslint-plugin': '*',\n '@typescript-eslint/parser': '*',\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eslintConfigOverride: any = {\n files: ['**/*.ts', '**/*.tsx'],\n parser: '@typescript-eslint/parser',\n parserOptions: {\n project: ['./tsconfig.json'],\n },\n extends: [\n 'eslint:recommended',\n 'plugin:prettier/recommended',\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n ].filter(Boolean),\n plugins: ['import', '@typescript-eslint', 'prettier'].filter(Boolean),\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/interface-name-prefix': 'off',\n '@typescript-eslint/member-delimiter-style': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n },\n }\n\n eslintConfig.overrides = [eslintConfigOverride]\n }\n\n files.push({\n name: '.eslintrc.cjs',\n contents: await format(\n resolve(packagePath, '.eslintrc.cjs'),\n outdent`\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ${JSON.stringify(eslintConfig, null, 2)}\n `,\n prettierConfig,\n ),\n })\n }\n\n if (features.typescript) {\n files.push({\n name: 'tsconfig.settings.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.settings.json'),\n outdent`\n {\n \"compilerOptions\": {\n \"module\": \"ES2020\",\n \"target\": \"ES2020\",\n \"declaration\": true,\n \"declarationMap\": true,\n \"sourceMap\": true,\n\n // Strict type-checking\n \"strict\": true,\n \"noImplicitAny\": true,\n \"strictNullChecks\": true,\n \"strictFunctionTypes\": true,\n \"strictPropertyInitialization\": true,\n \"noImplicitThis\": true,\n \"alwaysStrict\": true,\n\n // Additional checks\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noImplicitReturns\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"skipLibCheck\": true,\n\n // Module resolution\n \"moduleResolution\": \"node\",\n \"allowSyntheticDefaultImports\": true,\n \"esModuleInterop\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.dist.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.dist.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"emitDeclarationOnly\": true,\n \"resolveJsonModule\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./*.cjs\", \"./*.ts\", \"./package.config.ts\", \"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n }\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // source file\n if (features.typescript) {\n files.push({\n name: 'package.config.ts',\n contents: await format(\n resolve(packagePath, 'package.config.ts'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.ts',\n contents: await format(\n resolve(packagePath, 'src/index.ts'),\n outdent`\n /** @public */\n export function main(): void {\n //\n }\n `,\n prettierConfig,\n ),\n })\n } else {\n files.push({\n name: 'package.config.js',\n contents: await format(\n resolve(packagePath, 'package.config.js'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.js',\n contents: await format(\n resolve(packagePath, 'src/index.js'),\n outdent`\n /** @public */\n export function main() {\n //\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // Resolve latest dependencies\n try {\n pkgJson.dependencies = await resolveLatestDeps(pkgJson.dependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n // Resolve latest devDependencies\n try {\n pkgJson.devDependencies = await resolveLatestDeps(pkgJson.devDependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n files.push({\n name: 'package.json',\n contents: await format(\n resolve(packagePath, 'package.json'),\n JSON.stringify(pkgJson, null, 2),\n prettierConfig,\n ),\n })\n\n return files\n },\n }\n}\n\nfunction format(filepath: string, input: string, prettierOptions: PrettierConfig) {\n return prettier.format(input, {...prettierOptions, filepath})\n}\n\nasync function resolveLatestDeps(deps: Record<string, string>) {\n const depsEntries = Object.entries(deps)\n const latestDeps: Record<string, string> = {}\n\n for (const entry of depsEntries) {\n const [name, version] = entry\n const latestVersion = await getLatestVersion(name, version)\n\n latestDeps[name] = latestVersion ? `^${latestVersion}` : version\n }\n\n return latestDeps\n}\n"],"names":["RE_NAME","defaultTemplate","_ref","cwd","logger","packagePath","_a","_b","gitConfig","parseGitConfig","type","options","defineTemplateOption","name","description","validate","v","gitUrlParse","err","parse","result","source","owner","initial","repo","match","exec","Error","scope","split","fullName","user","email","features","optional","getFiles","_filter$join","_options$description","pkgName","author","authorName","authorEmail","filter","Boolean","join","prettierConfig","bracketSpacing","printWidth","semi","singleQuote","tabWidth","plugins","overrides","files","pkgJson","version","keywords","license","exports","types","typescript","require","import","default","main","module","scripts","build","clean","format","prettier","dependencies","devDependencies","rimraf","engines","node","push","contents","outdent","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","repository","url","concat","bugs","homepage","mainExport","isRecord","eslint","eslintConfig","root","env","browser","es6","extends","parserOptions","ecmaVersion","sourceType","rules","location","terms","_templateObject4","lint","eslintConfigOverride","parser","project","resolve","_templateObject5","JSON","stringify","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_pkgJson$dependencies","resolveLatestDeps","error","warn","message","_pkgJson$devDependenc","filepath","input","prettierOptions","deps","depsEntries","Object","entries","latestDeps","entry","latestVersion","getLatestVersion"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,OAAU,GAAA,iEAAA;AAET,MAAMC,kBAA+B,MAAAC,IAAA,IAAsC;EAAA,IAA/B;IAACC,GAAK;IAAAC,MAAA;IAAQC;GAAiB,GAAAH,IAAA;EAXlF,IAAAI,EAAA,EAAAC,EAAA;EAYE,MAAMC,YAAY,MAAMC,cAAA,CAAe;IAACN,GAAK;IAAAO,IAAA,EAAM;GAAS,CAAA;EAErD,OAAA;IACLC,OAAS,EAAA,CACPC,oBAAoD,CAAA;MAClDC,IAAM,EAAA,MAAA;MACNH,IAAM,EAAA,QAAA;MACNI,WAAa,EAAA,SAAA;MACbC,QAAA,EAAWC,CAAM,IAAA;QACf,IAAI,CAACA,CAAA,EAAU,OAAA,IAAA;QAEX,IAAA;UACFC,WAAA,CAAYD,CAAC,CAAA;UAEN,OAAA,IAAA;iBACAE,GAAK,EAAA;UACL,OAAA,iBAAA;QACT;MACF,CAAA;MACAC,KAAA,EAAQH,CAAM,IAAA;QACZ,IAAI,CAACA,CAAA,EAAU,OAAA,IAAA;QAET,MAAAI,MAAA,GAASH,YAAYD,CAAC,CAAA;QAErB,OAAA;UAACK,QAAQD,MAAO,CAAAC,MAAA;UAAQC,OAAOF,MAAO,CAAAE,KAAA;UAAOT,IAAM,EAAAO,MAAA,CAAOP;SAAI;MACvE;IAAA,CACD,CAAA,EACDD,oBAAqB,CAAA;MACnBC,IAAM,EAAA,SAAA;MACNH,IAAM,EAAA,QAAA;MACNI,WAAa,EAAA,cAAA;MACbS,OAAA,EAAUZ,OAAS,IAAA;QA3C3BL,IAAAA,GAAAA;QA2C8B,OAAA,CAAA,CAAAA,GAAA,GAAAK,OAAA,CAAQa,IAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAlB,IAAcO,IAAQ,KAAA,KAAA,CAAA;MAAA,CAAA;MAC5CE,QAAA,EAAWC,CAAM,IAAA;QACf,IAAI,CAACA,CAAA,EAAU,OAAA,0BAAA;QAET,MAAAS,KAAA,GAAQzB,OAAQ,CAAA0B,IAAA,CAAKV,CAAC,CAAA;QAE5B,IAAI,CAACS,KAAO,EAAA;UACH,OAAA,sBAAA;QACT;QAEO,OAAA,IAAA;MACT,CAAA;MACAN,KAAA,EAAQH,CAAM,IAAA;QACZ,IAAI,CAACA,CAAG,EAAA;UACA,MAAA,IAAIW,MAAM,0BAA0B,CAAA;QAC5C;QAEM,MAAAF,KAAA,GAAQzB,OAAQ,CAAA0B,IAAA,CAAKV,CAAC,CAAA;QAE5B,IAAI,CAACS,KAAO,EAAA;UACJ,MAAA,IAAIE,MAAM,sBAAsB,CAAA;QACxC;QAEA,MAAM,CAACC,KAAO,EAAAf,IAAI,CAAI,GAAAG,CAAA,CAAEa,MAAM,GAAG,CAAA;QAEjC,OAAO;UAACD,KAAA;UAAOf,IAAM;UAAAiB,QAAA,EAAUd;QAAC,CAAA;MAClC;IAAA,CACD,CAAA,EACDJ,oBAAqB,CAAA;MACnBC,IAAM,EAAA,aAAA;MACNH,IAAM,EAAA,QAAA;MACNI,WAAa,EAAA;IAAA,CACd,CAAA,EACDF,oBAAqB,CAAA;MACnBC,IAAM,EAAA,YAAA;MACNH,IAAM,EAAA,QAAA;MACNI,WAAa,EAAA,qBAAA;MACbS,OAAA,EAAA,CAASjB,EAAW,GAAAE,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAuB,IAAA,KAAX,IAAiB,GAAA,KAAA,CAAA,GAAAzB,EAAA,CAAAO;IAAA,CAC3B,CAAA,EACDD,oBAAqB,CAAA;MACnBC,IAAM,EAAA,aAAA;MACNH,IAAM,EAAA,QAAA;MACNI,WAAa,EAAA,sBAAA;MACbS,OAAA,EAAA,CAAShB,EAAW,GAAAC,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAuB,IAAA,KAAX,IAAiB,GAAA,KAAA,CAAA,GAAAxB,EAAA,CAAAyB;IAAA,CAC3B,CAAA,EACDpB,oBAAqB,CAAA;MACnBC,IAAM,EAAA,SAAA;MACNH,IAAM,EAAA,QAAA;MACNI,WAAa,EAAA,iBAAA;MACbS,OAAS,EAAA,KAAA;MACTR,QAAA,EAAWC,CAAM,IAAA;QACf,IAAI,CAACA,CAAA,EAAU,OAAA,qBAAA;QAER,OAAA,IAAA;MACT;IAAA,CACD,CAAA,CACH;IAEAiB,QAAU,EAAA,CACR;MACEpB,IAAM,EAAA,QAAA;MACNqB,QAAU,EAAA,IAAA;MACVX,OAAS,EAAA;IACX,CAAA,EACA;MACEV,IAAM,EAAA,YAAA;MACNqB,QAAU,EAAA,IAAA;MACVX,OAAS,EAAA;IACX,CAAA,CACF;IAEA,MAAMY,QAASA,CAAAxB,OAAA,EAASsB,QAAU,EAAA;MAAA,IAAAG,YAAA,EAAAC,oBAAA;MAlHtC/B,IAAAA,GAAAA;MAmHY,MAAA;QAACgC,OAAS;QAAAd;MAAQ,CAAA,GAAAb,OAAA;MAClB,MAAA;QAACmB,QAAU,EAAAjB;MAAQ,CAAA,GAAAyB,OAAA;MAEzB,MAAMC,yBACJ,CAAC5B,OAAA,CAAQ6B,UAAY,EAAA7B,OAAA,CAAQ8B,0BAAmB9B,OAAA,CAAQ8B,WAAW,MAAG,EACnEC,MAAO,CAAAC,OAAO,CACd,CAAAC,IAAA,CAAK,GAAG,CAAK,cAAAR,YAAA,cAAAA,YAAA,GAAA,KAAA,CAAA;MAElB,MAAMS,cAAiC,GAAA;QACrCC,cAAgB,EAAA,KAAA;QAChBC,UAAY,EAAA,GAAA;QACZC,IAAM,EAAA,KAAA;QACNC,WAAa,EAAA,IAAA;QACbC,QAAU,EAAA,CAAA;QACVC,OAAA,EAAS,CAAC,6BAA6B,CAAA;QACvCC,SAAW,EAAA,CACT;UACEC,KAAA,EAAO,CAAC,OAAO,CAAA;UACf1C,OAAS,EAAA;YACPsC,WAAa,EAAA;UACf;QACF,CAAA;MACF,CACF;MAEA,MAAMK,OAGF,GAAA;QACFzC,IAAA;QACA0C,OAAS,EAAA,OAAA;QACTzC,WAAA,GAAAuB,oBAAA,GAAa1B,QAAQG,WAAe,cAAAuB,oBAAA,cAAAA,oBAAA,GAAA,KAAA,CAAA;QACpCmB,UAAU,EAAC;QACXC,SAAS9C,OAAQ,CAAA8C,OAAA;QACjBlB,MAAA;QACA7B,IAAM,EAAA,QAAA;QACNgD,OAAS,EAAA;UACP,GAAK,EAAA;YACHC,KAAO,EAAA,KAAA,CAAA;YACPtC,MAAA,EAAQY,QAAS,CAAA2B,UAAA,GAAa,gBAAmB,GAAA,gBAAA;YACjDC,OAAS,EAAA,kBAAA;YACTC,MAAQ,EAAA,iBAAA;YACRC,OAAS,EAAA;UACX,CAAA;UACA,gBAAkB,EAAA;QACpB,CAAA;QACAC,IAAM,EAAA,kBAAA;QACNC,MAAQ,EAAA,iBAAA;QACR5C,MAAA,EAAQY,QAAS,CAAA2B,UAAA,GAAa,gBAAmB,GAAA,gBAAA;QACjDP,KAAA,EAAO,CAAC,MAAA,EAAQ,KAAK,CAAA;QACrBa,OAAS,EAAA;UACPC,KAAO,EAAA,iCAAA;UACPC,KAAO,EAAA,aAAA;UACPC,MAAQ,EAAA,6CAAA;UACR,WAAa,EAAA,oBAAA;UACb,WAAa,EAAA;QACf,CAAA;QACAC,QAAU,EAAAzB,cAAA;QACV,aAAe,EAAA;UACb,GAAA,EAAK,CAAC,2CAA2C;QACnD,CAAA;QACA0B,cAAc,CAAC,CAAA;QACfC,eAAiB,EAAA;UACf,mBAAqB,EAAA,GAAA;UACrB,aAAe,EAAA,GAAA;UACf,aAAe,EAAA,GAAA;UACfF,QAAU,EAAA,GAAA;UACV,6BAA+B,EAAA,GAAA;UAC/BG,MAAQ,EAAA;QACV,CAAA;QACAC,OAAS,EAAA;UACPC,IAAM,EAAA;QACR;MAAA,CACF;MAEA,MAAMtB,QAA2B,EAAC;MAGlCA,KAAA,CAAMuB,IAAK,CAAA;QACT/D,IAAM,EAAA,eAAA;QACNgE,QAAU,EAAAC,OAAA,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA;MAAA,CAWX,CAAA;MAGD3B,KAAA,CAAMuB,IAAK,CAAA;QACT/D,IAAM,EAAA,YAAA;QACNgE,QAAU,EAAAC,OAAA,CAAAG,gBAAA,KAAAA,gBAAA,GAAAD,sBAAA;MAAA,CASX,CAAA;MAED3B,KAAA,CAAMuB,IAAK,CAAA;QACT/D,IAAM,EAAA,iBAAA;QACNgE,QAAU,EAAAC,OAAA,CAAAI,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA;MAAA,CAIX,CAAA;MAED,IAAIxD,IAAM,EAAA;QACR8B,OAAA,CAAQ6B,UAAa,GAAA;UACnBzE,IAAM,EAAA,KAAA;UACN0E,GAAA,mBAAAC,MAAA,CAAsB7D,IAAK,CAAAH,MAAM,OAAAgE,MAAA,CAAI7D,IAAK,CAAAF,KAAK,OAAA+D,MAAA,CAAI7D,IAAA,CAAKX,IAAI;QAAA,CAC9D;QACAyC,OAAA,CAAQgC,IAAO,GAAA;UACbF,GAAA,aAAAC,MAAA,CAAgB7D,IAAK,CAAAH,MAAM,OAAAgE,MAAA,CAAI7D,IAAK,CAAAF,KAAK,OAAA+D,MAAA,CAAI7D,IAAA,CAAKX,IAAI;QAAA,CACxD;QACQyC,OAAA,CAAAiC,QAAA,cAAAF,MAAA,CAAsB7D,IAAK,CAAAH,MAAM,OAAAgE,MAAA,CAAI7D,IAAK,CAAAF,KAAK,OAAA+D,MAAA,CAAI7D,IAAA,CAAKX,IAAI,YAAA;MACtE;MAEA,IAAIoB,SAAS2B,UAAY,EAAA;QACvBN,OAAA,CAAQK,KAAQ,GAAA,mBAAA;QAEhB,MAAM6B,UAAalF,GAAAA,CAAAA,GAAAA,GAAAgD,OAAQ,CAAAI,OAAA,KAAR,gBAAApD,GAAkB,CAAA,GAAA,CAAA;QAEjC,IAAAmF,QAAA,CAASD,UAAU,CAAG,EAAA;UACxBA,UAAA,CAAW7B,KAAQ,GAAA,mBAAA;QACrB;QAEAL,OAAA,CAAQY,OAAU,GAAA;UAChB,GAAGZ,OAAQ,CAAAY,OAAA;UACX,CAAC,YAAY,GAAG;QAAA,CAClB;QAEA,MAAMM,kBAAkBlB,OAAQ,CAAAkB,eAAA;QAE5B,IAAAiB,QAAA,CAASjB,eAAe,CAAG,EAAA;UAC7BA,eAAA,CAAgB,YAAY,CAAI,GAAA,GAAA;QAClC;MACF;MAEA,IAAIvC,SAASyD,MAAQ,EAAA;QAEnB,MAAMC,YAAoB,GAAA;UACxBC,IAAM,EAAA,IAAA;UACNC,GAAK,EAAA;YACHC,OAAS,EAAA,IAAA;YACTC,GAAK,EAAA,IAAA;YACLpB,IAAM,EAAA;UACR,CAAA;UACAqB,OAAA,EAAS,CAAC,oBAAA,EAAsB,6BAA6B,CAAA;UAC7DC,aAAe,EAAA;YACbC,WAAa,EAAA,IAAA;YACbC,UAAY,EAAA;UACd,CAAA;UACAhD,OAAA,EAAS,CAAC,QAAA,EAAU,UAAU,CAAA;UAC9BiD,KAAO,EAAA;YACL,YAAc,EAAA,OAAA;YACd,WAAa,EAAA,OAAA;YACb,qBAAA,EAAuB,CAAC,MAAA,EAAQ;cAACC,QAAA,EAAU,OAAS;cAAAC,KAAA,EAAO,CAAC,MAAA,EAAQ,OAAO;aAAE;UAC/E;QAAA,CACF;QAEAjD,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,eAAA;UACNgE,QAAU,EAAAC,OAAA,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAvB,sBAAA;QAAA,CAGX,CAAA;QAED1B,OAAA,CAAQY,OAAU,GAAA;UAChB,GAAGZ,OAAQ,CAAAY,OAAA;UACXsC,IAAA,EAAMvE,QAAS,CAAA2B,UAAA,GACX,kCACA,GAAA;QAAA,CACN;QAEAN,OAAA,CAAQkB,eAAkB,GAAA;UACxB,GAAGlB,OAAQ,CAAAkB,eAAA;UACXkB,MAAQ,EAAA,GAAA;UACR,wBAA0B,EAAA,GAAA;UAC1B,sBAAwB,EAAA,GAAA;UACxB,wBAA0B,EAAA;QAAA,CAC5B;QAEA,IAAIzD,SAAS2B,UAAY,EAAA;UACvBN,OAAA,CAAQkB,eAAkB,GAAA;YACxB,GAAGlB,OAAQ,CAAAkB,eAAA;YACX,kCAAoC,EAAA,GAAA;YACpC,2BAA6B,EAAA;UAAA,CAC/B;UAGA,MAAMiC,oBAA4B,GAAA;YAChCpD,KAAA,EAAO,CAAC,SAAA,EAAW,UAAU,CAAA;YAC7BqD,MAAQ,EAAA,2BAAA;YACRT,aAAe,EAAA;cACbU,OAAA,EAAS,CAAC,iBAAiB;YAC7B,CAAA;YACAX,OAAS,EAAA,CACP,oBAAA,EACA,6BAAA,EACA,8CAAA,EACA,uCAAA,CACF,CAAEtD,OAAOC,OAAO,CAAA;YAChBQ,SAAS,CAAC,QAAA,EAAU,sBAAsB,UAAU,CAAA,CAAET,OAAOC,OAAO,CAAA;YACpEyD,KAAO,EAAA;cACL,mDAAqD,EAAA,OAAA;cACrD,0CAA4C,EAAA,KAAA;cAC5C,2CAA6C,EAAA,KAAA;cAC7C,uCAAyC,EAAA;YAC3C;UAAA,CACF;UAEaT,YAAA,CAAAvC,SAAA,GAAY,CAACqD,oBAAoB,CAAA;QAChD;QAEApD,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,eAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,eAAe,CAAA,EACpCyE,OAAA,CAAA+B,gBAAA,KAAAA,gBAAA,GAAA7B,sBAAA,+IAImB8B,IAAK,CAAAC,SAAA,CAAUpB,YAAc,EAAA,IAAA,EAAM,CAAC,CAAC,GAExD9C,cACF;QAAA,CACD,CAAA;MACH;MAEA,IAAIZ,SAAS2B,UAAY,EAAA;QACvBP,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,wBAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,wBAAwB,CAAA,EAC7CyE,OAAA,CAAAkC,gBAAA,KAAAA,gBAAA,GAAAhC,sBAAA,umCAgCAnC,cACF;QAAA,CACD,CAAA;QAEDQ,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,oBAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,oBAAoB,CAAA,EACzCyE,OAAA,CAAAmC,gBAAA,KAAAA,gBAAA,GAAAjC,sBAAA,sXAYAnC,cACF;QAAA,CACD,CAAA;QAEDQ,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,eAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,eAAe,CAAA,EACpCyE,OAAA,CAAAoC,gBAAA,KAAAA,gBAAA,GAAAlC,sBAAA,gcAaAnC,cACF;QAAA,CACD,CAAA;MACH;MAGA,IAAIZ,SAAS2B,UAAY,EAAA;QACvBP,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,mBAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,mBAAmB,CAAA,EACxCyE,OAAA,CAAAqC,gBAAA,KAAAA,gBAAA,GAAAnC,sBAAA,09BAeAnC,cACF;QAAA,CACD,CAAA;QAEDQ,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,cAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,cAAc,CAAA,EACnCyE,OAAA,CAAAsC,iBAAA,KAAAA,iBAAA,GAAApC,sBAAA,iIAMAnC,cACF;QAAA,CACD,CAAA;MAAA,CACI,MAAA;QACLQ,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,mBAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,mBAAmB,CAAA,EACxCyE,OAAA,CAAAuC,iBAAA,KAAAA,iBAAA,GAAArC,sBAAA,0uBAYAnC,cACF;QAAA,CACD,CAAA;QAEDQ,KAAA,CAAMuB,IAAK,CAAA;UACT/D,IAAM,EAAA,cAAA;UACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,cAAc,CAAA,EACnCyE,OAAA,CAAAwC,iBAAA,KAAAA,iBAAA,GAAAtC,sBAAA,2HAMAnC,cACF;QAAA,CACD,CAAA;MACH;MAGI,IAAA;QAAA,IAAA0E,qBAAA;QACFjE,OAAA,CAAQiB,eAAe,MAAMiD,iBAAA,EAAAD,qBAAA,GAAkBjE,OAAQ,CAAAiB,YAAA,cAAAgD,qBAAA,cAAAA,qBAAA,GAAgB,CAAA,CAAE,CAAA;eAClEE,KAAO,EAAA;QACdrH,MAAA,CAAOsH,IAAK,CAAAD,KAAA,YAAiB9F,KAAQ,GAAA8F,KAAA,CAAME,UAAUF,KAAK,CAAA;MAC5D;MAGI,IAAA;QAAA,IAAAG,qBAAA;QACFtE,OAAA,CAAQkB,kBAAkB,MAAMgD,iBAAA,EAAAI,qBAAA,GAAkBtE,OAAQ,CAAAkB,eAAA,cAAAoD,qBAAA,cAAAA,qBAAA,GAAmB,CAAA,CAAE,CAAA;eACxEH,KAAO,EAAA;QACdrH,MAAA,CAAOsH,IAAK,CAAAD,KAAA,YAAiB9F,KAAQ,GAAA8F,KAAA,CAAME,UAAUF,KAAK,CAAA;MAC5D;MAEApE,KAAA,CAAMuB,IAAK,CAAA;QACT/D,IAAM,EAAA,cAAA;QACNgE,UAAU,MAAMR,MAAA,CACduC,OAAA,CAAQvG,aAAa,cAAc,CAAA,EACnCyG,IAAK,CAAAC,SAAA,CAAUzD,OAAS,EAAA,IAAA,EAAM,CAAC,CAAA,EAC/BT,cACF;MAAA,CACD,CAAA;MAEM,OAAAQ,KAAA;IACT;EAAA,CACF;AACF,CAAA;AAEA,SAASgB,MAAAA,CAAOwD,QAAkB,EAAAC,KAAA,EAAeC,eAAiC,EAAA;EAChF,OAAOzD,SAASD,MAAO,CAAAyD,KAAA,EAAO;IAAC,GAAGC,eAAA;IAAiBF;GAAS,CAAA;AAC9D;AAEA,eAAeL,kBAAkBQ,IAA8B,EAAA;EACvD,MAAAC,WAAA,GAAcC,MAAO,CAAAC,OAAA,CAAQH,IAAI,CAAA;EACvC,MAAMI,aAAqC,CAAA,CAAC;EAE5C,KAAA,MAAWC,SAASJ,WAAa,EAAA;IACzB,MAAA,CAACpH,IAAM,EAAA0C,OAAO,CAAI,GAAA8E,KAAA;IACxB,MAAMC,aAAgB,GAAA,MAAMC,gBAAiB,CAAA1H,IAAA,EAAM0C,OAAO,CAAA;IAE1D6E,UAAA,CAAWvH,IAAI,CAAA,GAAIyH,aAAgB,OAAAjD,MAAA,CAAIiD,aAAa,IAAK/E,OAAA;EAC3D;EAEO,OAAA6E,UAAA;AACT;"}
package/dist/watch.js ADDED
@@ -0,0 +1,79 @@
1
+ import path from 'path';
2
+ import { switchMap } from 'rxjs';
3
+ import { loadConfig } from './core/config/loadConfig.js';
4
+ import 'fs/promises';
5
+ import 'pkg-up';
6
+ import './core/pkg/validatePkg.js';
7
+ import { loadPkgWithReporting } from './core/pkg/loadPkgWithReporting.js';
8
+ import { getPkgExtMap } from './core/pkg/pkgExt.js';
9
+ import 'mkdirp';
10
+ import 'prompts';
11
+ import 'typescript';
12
+ import { createLogger } from './logger.js';
13
+ import { resolveBuildContext } from './resolveBuildContext.js';
14
+ import { resolveWatchTasks } from './resolveWatchTasks.js';
15
+ import { watchTaskHandlers } from './tasks/index.js';
16
+ import { watchConfigFiles } from './watchConfigFiles.js';
17
+ async function watch(options) {
18
+ const {
19
+ cwd,
20
+ strict = false,
21
+ tsconfig: tsconfigOption
22
+ } = options;
23
+ const logger = createLogger();
24
+ const configFiles$ = await watchConfigFiles({
25
+ cwd,
26
+ logger
27
+ });
28
+ const ctx$ = configFiles$.pipe(switchMap(async configFiles => {
29
+ var _ref;
30
+ const files = configFiles.map(f => path.relative(cwd, f));
31
+ const packageJsonPath = files.find(f => f === "package.json");
32
+ if (!packageJsonPath) {
33
+ throw new Error("missing package.json");
34
+ }
35
+ const pkg = await loadPkgWithReporting({
36
+ cwd,
37
+ logger
38
+ });
39
+ const config = await loadConfig({
40
+ cwd
41
+ });
42
+ const extMap = getPkgExtMap({
43
+ legacyExports: (_ref = config == null ? void 0 : config.legacyExports) !== null && _ref !== void 0 ? _ref : false
44
+ });
45
+ const tsconfig = tsconfigOption || (config == null ? void 0 : config.tsconfig) || "tsconfig.json";
46
+ return resolveBuildContext({
47
+ config,
48
+ cwd,
49
+ extMap,
50
+ logger,
51
+ pkg,
52
+ strict,
53
+ tsconfig
54
+ });
55
+ }));
56
+ ctx$.subscribe(async ctx => {
57
+ const watchTasks = resolveWatchTasks(ctx);
58
+ for (const task of watchTasks) {
59
+ const handler = watchTaskHandlers[task.type];
60
+ const result$ = handler.exec(ctx, task);
61
+ result$.subscribe({
62
+ error: err => {
63
+ ctx.logger.error(err);
64
+ ctx.logger.log();
65
+ process.exit(1);
66
+ },
67
+ next: result => {
68
+ handler.complete(ctx, task, result);
69
+ },
70
+ complete: () => {
71
+ ctx.logger.success(handler.name(ctx, task));
72
+ ctx.logger.log();
73
+ }
74
+ });
75
+ }
76
+ });
77
+ }
78
+ export { watch };
79
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sources":["../src/node/watch.ts"],"sourcesContent":["import path from 'path'\nimport {switchMap} from 'rxjs'\n\nimport {getPkgExtMap, loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveWatchTasks} from './resolveWatchTasks'\nimport {TaskHandler, WatchTask, watchTaskHandlers} from './tasks'\nimport {watchConfigFiles} from './watchConfigFiles'\n\n/** @public */\nexport async function watch(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n\n const logger = createLogger()\n\n const configFiles$ = await watchConfigFiles({cwd, logger})\n\n const ctx$ = configFiles$.pipe(\n switchMap(async (configFiles) => {\n const files = configFiles.map((f) => path.relative(cwd, f))\n\n const packageJsonPath = files.find((f) => f === 'package.json')\n\n if (!packageJsonPath) {\n throw new Error('missing package.json')\n }\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const extMap = getPkgExtMap({legacyExports: config?.legacyExports ?? false})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return resolveBuildContext({config, cwd, extMap, logger, pkg, strict, tsconfig})\n }),\n )\n\n ctx$.subscribe(async (ctx) => {\n const watchTasks = resolveWatchTasks(ctx)\n\n for (const task of watchTasks) {\n const handler = watchTaskHandlers[task.type] as TaskHandler<WatchTask, unknown>\n const result$ = handler.exec(ctx, task)\n\n result$.subscribe({\n error: (err) => {\n ctx.logger.error(err)\n ctx.logger.log()\n\n process.exit(1)\n },\n next: (result) => {\n handler.complete(ctx, task, result)\n },\n complete: () => {\n ctx.logger.success(handler.name(ctx, task))\n ctx.logger.log()\n },\n })\n }\n })\n}\n"],"names":["watch","options","cwd","strict","tsconfig","tsconfigOption","logger","createLogger","configFiles$","watchConfigFiles","ctx$","pipe","switchMap","configFiles","_ref","files","map","f","path","relative","packageJsonPath","find","Error","pkg","loadPkgWithReporting","config","loadConfig","extMap","getPkgExtMap","legacyExports","resolveBuildContext","subscribe","ctx","watchTasks","resolveWatchTasks","task","handler","watchTaskHandlers","type","result$","exec","error","err","log","process","exit","next","result","complete","success","name"],"mappings":";;;;;;;;;;;;;;;;AAWA,eAAsBA,MAAMC,OAIV,EAAA;EAChB,MAAM;IAACC,GAAK;IAAAC,MAAA,GAAS,KAAO;IAAAC,QAAA,EAAUC;EAAkB,CAAA,GAAAJ,OAAA;EAExD,MAAMK,SAASC,YAAa,EAAA;EAE5B,MAAMC,eAAe,MAAMC,gBAAA,CAAiB;IAACP,GAAA;IAAKI;EAAO,CAAA,CAAA;EAEzD,MAAMI,OAAOF,YAAa,CAAAG,IAAA,CACxBC,SAAA,CAAU,MAAOC,WAAgB,IAAA;IAAA,IAAAC,IAAA;IACzB,MAAAC,KAAA,GAAQF,YAAYG,GAAI,CAACC,KAAMC,IAAK,CAAAC,QAAA,CAASjB,GAAK,EAAAe,CAAC,CAAC,CAAA;IAE1D,MAAMG,kBAAkBL,KAAM,CAAAM,IAAA,CAAMJ,CAAA,IAAMA,MAAM,cAAc,CAAA;IAE9D,IAAI,CAACG,eAAiB,EAAA;MACd,MAAA,IAAIE,MAAM,sBAAsB,CAAA;IACxC;IAEA,MAAMC,MAAM,MAAMC,oBAAA,CAAqB;MAACtB,GAAA;MAAKI;IAAO,CAAA,CAAA;IACpD,MAAMmB,MAAS,GAAA,MAAMC,UAAW,CAAA;MAACxB;IAAI,CAAA,CAAA;IACrC,MAAMyB,SAASC,YAAa,CAAA;MAACC,uBAAeJ,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAI,aAAA,cAAAf,IAAA,cAAAA,IAAA,GAAiB;IAAM,CAAA,CAAA;IACrE,MAAAV,QAAA,GAAWC,cAAkB,KAAAoB,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQrB,QAAY,CAAA,IAAA,eAAA;IAEhD,OAAA0B,mBAAA,CAAoB;MAACL,MAAQ;MAAAvB,GAAA;MAAKyB;MAAQrB,MAAQ;MAAAiB,GAAA;MAAKpB,MAAQ;MAAAC;IAAA,CAAS,CAAA;EAAA,CAChF,CAAA,CACH;EAEKM,IAAA,CAAAqB,SAAA,CAAU,MAAOC,GAAQ,IAAA;IACtB,MAAAC,UAAA,GAAaC,kBAAkBF,GAAG,CAAA;IAExC,KAAA,MAAWG,QAAQF,UAAY,EAAA;MACvB,MAAAG,OAAA,GAAUC,iBAAkB,CAAAF,IAAA,CAAKG,IAAI,CAAA;MAC3C,MAAMC,OAAU,GAAAH,OAAA,CAAQI,IAAK,CAAAR,GAAA,EAAKG,IAAI,CAAA;MAEtCI,OAAA,CAAQR,SAAU,CAAA;QAChBU,KAAA,EAAQC,GAAQ,IAAA;UACVV,GAAA,CAAA1B,MAAA,CAAOmC,MAAMC,GAAG,CAAA;UACpBV,GAAA,CAAI1B,OAAOqC,GAAI,EAAA;UAEfC,OAAA,CAAQC,KAAK,CAAC,CAAA;QAChB,CAAA;QACAC,IAAA,EAAOC,MAAW,IAAA;UACRX,OAAA,CAAAY,QAAA,CAAShB,GAAK,EAAAG,IAAA,EAAMY,MAAM,CAAA;QACpC,CAAA;QACAC,UAAUA,CAAA,KAAM;UACdhB,GAAA,CAAI1B,OAAO2C,OAAQ,CAAAb,OAAA,CAAQc,IAAK,CAAAlB,GAAA,EAAKG,IAAI,CAAC,CAAA;UAC1CH,GAAA,CAAI1B,OAAOqC,GAAI,EAAA;QACjB;MAAA,CACD,CAAA;IACH;EAAA,CACD,CAAA;AACH;"}
@@ -0,0 +1,29 @@
1
+ import path from 'path';
2
+ import { scan, startWith, distinctUntilChanged } from 'rxjs/operators';
3
+ import { globFiles } from './globFiles.js';
4
+ import { watchFiles } from './watchFiles.js';
5
+ async function watchConfigFiles(options) {
6
+ const {
7
+ cwd,
8
+ logger
9
+ } = options;
10
+ const initialFiles = await globFiles([path.resolve(cwd, "package.json"), path.resolve(cwd, "package.config.cjs"), path.resolve(cwd, "package.config.js"), path.resolve(cwd, "package.config.ts")]);
11
+ const fileEvent$ = watchFiles([path.resolve(cwd, "package.json"), path.resolve(cwd, "package.config.cjs"), path.resolve(cwd, "package.config.js"), path.resolve(cwd, "package.config.ts")]);
12
+ return fileEvent$.pipe(scan((files, fileEvent) => {
13
+ if (fileEvent.type === "add") {
14
+ return files.concat(fileEvent.file);
15
+ }
16
+ if (fileEvent.type === "unlink") {
17
+ return files.filter(f => f !== fileEvent.file);
18
+ }
19
+ if (fileEvent.type === "change") {
20
+ logger.log("--------------------------------------------------------------------------------");
21
+ logger.info(path.relative(cwd, fileEvent.file), "changed");
22
+ logger.log("");
23
+ return files.slice(0);
24
+ }
25
+ return files;
26
+ }, initialFiles), startWith(initialFiles), distinctUntilChanged());
27
+ }
28
+ export { watchConfigFiles };
29
+ //# sourceMappingURL=watchConfigFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchConfigFiles.js","sources":["../src/node/watchConfigFiles.ts"],"sourcesContent":["import path from 'path'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\n\nimport {globFiles} from './globFiles'\nimport {Logger} from './logger'\nimport {watchFiles} from './watchFiles'\n\nexport async function watchConfigFiles(options: {\n cwd: string\n logger: Logger\n}): Promise<Observable<string[]>> {\n const {cwd, logger} = options\n\n const initialFiles = await globFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n const fileEvent$ = watchFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n return fileEvent$.pipe(\n scan((files, fileEvent) => {\n if (fileEvent.type === 'add') {\n return files.concat(fileEvent.file)\n }\n\n if (fileEvent.type === 'unlink') {\n return files.filter((f) => f !== fileEvent.file)\n }\n\n if (fileEvent.type === 'change') {\n logger.log(\n '--------------------------------------------------------------------------------',\n )\n logger.info(path.relative(cwd, fileEvent.file), 'changed')\n logger.log('')\n\n return files.slice(0) // trigger update\n }\n\n return files\n }, initialFiles),\n startWith(initialFiles),\n distinctUntilChanged(),\n )\n}\n"],"names":["watchConfigFiles","options","cwd","logger","initialFiles","globFiles","path","resolve","fileEvent$","watchFiles","pipe","scan","files","fileEvent","type","concat","file","filter","f","log","info","relative","slice","startWith","distinctUntilChanged"],"mappings":";;;;AAQA,eAAsBA,iBAAiBC,OAGL,EAAA;EAC1B,MAAA;IAACC,GAAK;IAAAC;EAAU,CAAA,GAAAF,OAAA;EAEhB,MAAAG,YAAA,GAAe,MAAMC,SAAU,CAAA,CACnCC,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,cAAc,CAAA,EAChCI,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,oBAAoB,CAAA,EACtCI,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,mBAAmB,CAAA,EACrCI,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,mBAAmB,CAAA,CACtC,CAAA;EAED,MAAMM,aAAaC,UAAW,CAAA,CAC5BH,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,cAAc,CAAA,EAChCI,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,oBAAoB,CAAA,EACtCI,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,mBAAmB,CAAA,EACrCI,IAAA,CAAKC,OAAQ,CAAAL,GAAA,EAAK,mBAAmB,CAAA,CACtC,CAAA;EAED,OAAOM,UAAW,CAAAE,IAAA,CAChBC,IAAA,CAAK,CAACC,KAAA,EAAOC,SAAc,KAAA;IACrB,IAAAA,SAAA,CAAUC,SAAS,KAAO,EAAA;MACrB,OAAAF,KAAA,CAAMG,MAAO,CAAAF,SAAA,CAAUG,IAAI,CAAA;IACpC;IAEI,IAAAH,SAAA,CAAUC,SAAS,QAAU,EAAA;MAC/B,OAAOF,MAAMK,MAAO,CAACC,CAAM,IAAAA,CAAA,KAAML,UAAUG,IAAI,CAAA;IACjD;IAEI,IAAAH,SAAA,CAAUC,SAAS,QAAU,EAAA;MACxBX,MAAA,CAAAgB,GAAA,CACL,kFAAA,CACF;MACAhB,MAAA,CAAOiB,KAAKd,IAAK,CAAAe,QAAA,CAASnB,KAAKW,SAAU,CAAAG,IAAI,GAAG,SAAS,CAAA;MACzDb,MAAA,CAAOgB,IAAI,EAAE,CAAA;MAEN,OAAAP,KAAA,CAAMU,MAAM,CAAC,CAAA;IACtB;IAEO,OAAAV,KAAA;KACNR,YAAY,CAAA,EACfmB,UAAUnB,YAAY,CAAA,EACtBoB,oBAAqB,CAAA,CAAA,CACvB;AACF;"}
@@ -0,0 +1,22 @@
1
+ import chokidar from 'chokidar';
2
+ import { Observable } from 'rxjs';
3
+ function watchFiles(patterns) {
4
+ return new Observable(observer => {
5
+ const watcher = chokidar.watch(patterns, {
6
+ ignoreInitial: true
7
+ });
8
+ function handleFileEvent(type, file) {
9
+ observer.next({
10
+ type,
11
+ file
12
+ });
13
+ }
14
+ watcher.on("all", handleFileEvent);
15
+ return () => {
16
+ watcher.off("all", handleFileEvent);
17
+ watcher.close();
18
+ };
19
+ });
20
+ }
21
+ export { watchFiles };
22
+ //# sourceMappingURL=watchFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchFiles.js","sources":["../src/node/watchFiles.ts"],"sourcesContent":["import chokidar from 'chokidar'\nimport {Observable} from 'rxjs'\n\nexport interface FileEvent {\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n file: string\n}\n\nexport function watchFiles(patterns: string[]): Observable<FileEvent> {\n return new Observable((observer) => {\n const watcher = chokidar.watch(patterns, {\n ignoreInitial: true,\n })\n\n function handleFileEvent(\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n file: string,\n ) {\n observer.next({type, file})\n }\n\n watcher.on('all', handleFileEvent)\n\n return () => {\n watcher.off('all', handleFileEvent)\n watcher.close()\n }\n })\n}\n"],"names":["watchFiles","patterns","Observable","observer","watcher","chokidar","watch","ignoreInitial","handleFileEvent","type","file","next","on","off","close"],"mappings":";;AAQO,SAASA,WAAWC,QAA2C,EAAA;EAC7D,OAAA,IAAIC,UAAW,CAACC,QAAa,IAAA;IAC5B,MAAAC,OAAA,GAAUC,QAAS,CAAAC,KAAA,CAAML,QAAU,EAAA;MACvCM,aAAe,EAAA;IAAA,CAChB,CAAA;IAEQ,SAAAC,eAAAA,CACPC,MACAC,IACA,EAAA;MACAP,QAAA,CAASQ,IAAK,CAAA;QAACF,IAAM;QAAAC;MAAK,CAAA,CAAA;IAC5B;IAEQN,OAAA,CAAAQ,EAAA,CAAG,OAAOJ,eAAe,CAAA;IAEjC,OAAO,MAAM;MACHJ,OAAA,CAAAS,GAAA,CAAI,OAAOL,eAAe,CAAA;MAClCJ,OAAA,CAAQU,KAAM,CAAA,CAAA;IAAA,CAChB;EAAA,CACD,CAAA;AACH;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/pkg-utils",
3
- "version": "2.3.12",
3
+ "version": "2.3.13-canary.0",
4
4
  "description": "Simple utilities for modern npm packages.",
5
5
  "keywords": [
6
6
  "sanity-io",
@@ -26,8 +26,8 @@
26
26
  ".": {
27
27
  "types": "./dist/index.d.ts",
28
28
  "source": "./src/node/index.ts",
29
- "require": "./dist/index.cjs",
30
29
  "import": "./dist/index.js",
30
+ "require": "./dist/index.cjs",
31
31
  "default": "./dist/index.js"
32
32
  },
33
33
  "./package.json": "./package.json"
@@ -155,6 +155,7 @@
155
155
  "rimraf": "^4.4.1",
156
156
  "rollup": "^3.27.2",
157
157
  "rollup-plugin-esbuild": "^5.0.0",
158
+ "rollup-plugin-preserve-directives": "^0.2.0",
158
159
  "rxjs": "^7.8.1",
159
160
  "treeify": "^1.1.0",
160
161
  "uuid": "^9.0.0",