@sanity/plugin-kit 2.1.19 → 3.0.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 (228) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +53 -37
  3. package/assets/inject/semver-workflow/lint-staged.template.js +1 -1
  4. package/assets/inject/ui-workshop/src/CustomField.tsx +15 -0
  5. package/assets/inject/ui-workshop/src/__workshop__/index.tsx +14 -0
  6. package/assets/inject/ui-workshop/src/__workshop__/props.tsx +20 -0
  7. package/assets/inject/ui-workshop/workshop.config.ts +5 -0
  8. package/bin/plugin-kit.js +2 -0
  9. package/dist/_chunks/cli-9f3b6fb3.js +162 -0
  10. package/dist/_chunks/cli-9f3b6fb3.js.map +1 -0
  11. package/dist/_chunks/init-3ad3f71f.js +104 -0
  12. package/dist/_chunks/init-3ad3f71f.js.map +1 -0
  13. package/dist/_chunks/init-ed4b5e78.js +952 -0
  14. package/dist/_chunks/init-ed4b5e78.js.map +1 -0
  15. package/dist/_chunks/inject-c90dc62d.js +49 -0
  16. package/dist/_chunks/inject-c90dc62d.js.map +1 -0
  17. package/dist/_chunks/link-watch-7f10aeab.js +94 -0
  18. package/dist/_chunks/link-watch-7f10aeab.js.map +1 -0
  19. package/dist/_chunks/package-ad838e5c.js +2246 -0
  20. package/dist/_chunks/package-ad838e5c.js.map +1 -0
  21. package/dist/_chunks/package-fa6580ba.js +152 -0
  22. package/dist/_chunks/package-fa6580ba.js.map +1 -0
  23. package/dist/_chunks/ts-89567e57.js +167 -0
  24. package/dist/_chunks/ts-89567e57.js.map +1 -0
  25. package/dist/_chunks/verify-package-27b93f01.js +96 -0
  26. package/dist/_chunks/verify-package-27b93f01.js.map +1 -0
  27. package/dist/_chunks/verify-studio-3633e659.js +75 -0
  28. package/dist/_chunks/verify-studio-3633e659.js.map +1 -0
  29. package/dist/_chunks/version-d6a290e2.js +58 -0
  30. package/dist/_chunks/version-d6a290e2.js.map +1 -0
  31. package/dist/cli.js +9 -0
  32. package/dist/cli.js.map +1 -0
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.js +2 -0
  35. package/dist/index.js.map +1 -0
  36. package/package.json +30 -17
  37. package/src/actions/init.ts +2 -0
  38. package/src/actions/inject.ts +66 -87
  39. package/src/actions/link-watch.ts +8 -5
  40. package/src/actions/verify/types.ts +0 -23
  41. package/src/actions/verify/validations.ts +65 -39
  42. package/src/actions/verify/verify-common.ts +4 -4
  43. package/src/actions/verify-package.ts +13 -7
  44. package/src/actions/verify-studio.ts +7 -4
  45. package/src/cli.ts +1 -3
  46. package/src/cmds/index.ts +18 -6
  47. package/src/cmds/init.ts +1 -1
  48. package/src/cmds/inject.ts +6 -3
  49. package/src/cmds/link-watch.ts +0 -1
  50. package/src/configs/default-source.ts +10 -14
  51. package/src/configs/eslint.ts +51 -0
  52. package/src/configs/forced-package-versions.ts +8 -7
  53. package/src/configs/git.ts +68 -0
  54. package/src/configs/pkg-config.ts +31 -0
  55. package/src/configs/prettier.ts +11 -0
  56. package/src/configs/tsconfig.ts +79 -0
  57. package/src/constants.ts +2 -0
  58. package/src/index.ts +1 -4
  59. package/src/npm/package.ts +62 -26
  60. package/src/presets/presets.ts +3 -1
  61. package/src/presets/renovatebot.ts +10 -1
  62. package/src/presets/semver-workflow.ts +26 -14
  63. package/src/presets/ui-workshop.ts +97 -0
  64. package/src/presets/ui.ts +68 -0
  65. package/src/sanity/manifest.ts +2 -2
  66. package/src/util/files.ts +8 -8
  67. package/src/util/readme.ts +17 -15
  68. package/src/util/ts.ts +13 -0
  69. package/assets/inject/gitignore +0 -57
  70. package/assets/inject/package.config.template +0 -16
  71. package/assets/inject/template-tsconfig.json +0 -24
  72. package/lib/package.json +0 -128
  73. package/lib/src/actions/init.d.ts +0 -73
  74. package/lib/src/actions/init.js +0 -79
  75. package/lib/src/actions/init.js.map +0 -1
  76. package/lib/src/actions/inject.d.ts +0 -31
  77. package/lib/src/actions/inject.js +0 -350
  78. package/lib/src/actions/inject.js.map +0 -1
  79. package/lib/src/actions/link-watch.d.ts +0 -3
  80. package/lib/src/actions/link-watch.js +0 -87
  81. package/lib/src/actions/link-watch.js.map +0 -1
  82. package/lib/src/actions/verify/types.d.ts +0 -75
  83. package/lib/src/actions/verify/types.js +0 -3
  84. package/lib/src/actions/verify/types.js.map +0 -1
  85. package/lib/src/actions/verify/validations.d.ts +0 -27
  86. package/lib/src/actions/verify/validations.js +0 -410
  87. package/lib/src/actions/verify/validations.js.map +0 -1
  88. package/lib/src/actions/verify/verify-common.d.ts +0 -44
  89. package/lib/src/actions/verify/verify-common.js +0 -89
  90. package/lib/src/actions/verify/verify-common.js.map +0 -1
  91. package/lib/src/actions/verify-package.d.ts +0 -5
  92. package/lib/src/actions/verify-package.js +0 -73
  93. package/lib/src/actions/verify-package.js.map +0 -1
  94. package/lib/src/actions/verify-studio.d.ts +0 -5
  95. package/lib/src/actions/verify-studio.js +0 -55
  96. package/lib/src/actions/verify-studio.js.map +0 -1
  97. package/lib/src/cli.d.ts +0 -2
  98. package/lib/src/cli.js +0 -87
  99. package/lib/src/cli.js.map +0 -1
  100. package/lib/src/cmds/index.d.ts +0 -9
  101. package/lib/src/cmds/index.js +0 -11
  102. package/lib/src/cmds/index.js.map +0 -1
  103. package/lib/src/cmds/init.d.ts +0 -4
  104. package/lib/src/cmds/init.js +0 -95
  105. package/lib/src/cmds/init.js.map +0 -1
  106. package/lib/src/cmds/inject.d.ts +0 -4
  107. package/lib/src/cmds/inject.js +0 -76
  108. package/lib/src/cmds/inject.js.map +0 -1
  109. package/lib/src/cmds/link-watch.d.ts +0 -4
  110. package/lib/src/cmds/link-watch.js +0 -49
  111. package/lib/src/cmds/link-watch.js.map +0 -1
  112. package/lib/src/cmds/verify-package.d.ts +0 -4
  113. package/lib/src/cmds/verify-package.js +0 -38
  114. package/lib/src/cmds/verify-package.js.map +0 -1
  115. package/lib/src/cmds/verify-studio.d.ts +0 -4
  116. package/lib/src/cmds/verify-studio.js +0 -38
  117. package/lib/src/cmds/verify-studio.js.map +0 -1
  118. package/lib/src/cmds/verify.d.ts +0 -0
  119. package/lib/src/cmds/verify.js +0 -42
  120. package/lib/src/cmds/verify.js.map +0 -1
  121. package/lib/src/cmds/version.d.ts +0 -4
  122. package/lib/src/cmds/version.js +0 -55
  123. package/lib/src/cmds/version.js.map +0 -1
  124. package/lib/src/configs/banned-packages.d.ts +0 -2
  125. package/lib/src/configs/banned-packages.js +0 -30
  126. package/lib/src/configs/banned-packages.js.map +0 -1
  127. package/lib/src/configs/buildExtensions.d.ts +0 -1
  128. package/lib/src/configs/buildExtensions.js +0 -5
  129. package/lib/src/configs/buildExtensions.js.map +0 -1
  130. package/lib/src/configs/default-source.d.ts +0 -3
  131. package/lib/src/configs/default-source.js +0 -70
  132. package/lib/src/configs/default-source.js.map +0 -1
  133. package/lib/src/configs/forced-package-versions.d.ts +0 -16
  134. package/lib/src/configs/forced-package-versions.js +0 -14
  135. package/lib/src/configs/forced-package-versions.js.map +0 -1
  136. package/lib/src/configs/uselessFiles.d.ts +0 -1
  137. package/lib/src/configs/uselessFiles.js +0 -33
  138. package/lib/src/configs/uselessFiles.js.map +0 -1
  139. package/lib/src/constants.d.ts +0 -11
  140. package/lib/src/constants.js +0 -15
  141. package/lib/src/constants.js.map +0 -1
  142. package/lib/src/dependencies/find.d.ts +0 -0
  143. package/lib/src/dependencies/find.js +0 -195
  144. package/lib/src/dependencies/find.js.map +0 -1
  145. package/lib/src/dependencies/import-linter.d.ts +0 -3
  146. package/lib/src/dependencies/import-linter.js +0 -112
  147. package/lib/src/dependencies/import-linter.js.map +0 -1
  148. package/lib/src/index.d.ts +0 -2
  149. package/lib/src/index.js +0 -6
  150. package/lib/src/index.js.map +0 -1
  151. package/lib/src/npm/manager.d.ts +0 -7
  152. package/lib/src/npm/manager.js +0 -62
  153. package/lib/src/npm/manager.js.map +0 -1
  154. package/lib/src/npm/package.d.ts +0 -11
  155. package/lib/src/npm/package.js +0 -302
  156. package/lib/src/npm/package.js.map +0 -1
  157. package/lib/src/npm/publish.d.ts +0 -1
  158. package/lib/src/npm/publish.js +0 -14
  159. package/lib/src/npm/publish.js.map +0 -1
  160. package/lib/src/npm/resolveLatestVersions.d.ts +0 -3
  161. package/lib/src/npm/resolveLatestVersions.js +0 -37
  162. package/lib/src/npm/resolveLatestVersions.js.map +0 -1
  163. package/lib/src/presets/presets.d.ts +0 -8
  164. package/lib/src/presets/presets.js +0 -52
  165. package/lib/src/presets/presets.js.map +0 -1
  166. package/lib/src/presets/renovatebot.d.ts +0 -2
  167. package/lib/src/presets/renovatebot.js +0 -24
  168. package/lib/src/presets/renovatebot.js.map +0 -1
  169. package/lib/src/presets/semver-workflow.d.ts +0 -8
  170. package/lib/src/presets/semver-workflow.js +0 -166
  171. package/lib/src/presets/semver-workflow.js.map +0 -1
  172. package/lib/src/sanity/manifest.d.ts +0 -48
  173. package/lib/src/sanity/manifest.js +0 -263
  174. package/lib/src/sanity/manifest.js.map +0 -1
  175. package/lib/src/sharedFlags.d.ts +0 -15
  176. package/lib/src/sharedFlags.js +0 -17
  177. package/lib/src/sharedFlags.js.map +0 -1
  178. package/lib/src/util/command-parser.d.ts +0 -9
  179. package/lib/src/util/command-parser.js +0 -46
  180. package/lib/src/util/command-parser.js.map +0 -1
  181. package/lib/src/util/errorToUndefined.d.ts +0 -1
  182. package/lib/src/util/errorToUndefined.js +0 -11
  183. package/lib/src/util/errorToUndefined.js.map +0 -1
  184. package/lib/src/util/files.d.ts +0 -36
  185. package/lib/src/util/files.js +0 -264
  186. package/lib/src/util/files.js.map +0 -1
  187. package/lib/src/util/log.d.ts +0 -14
  188. package/lib/src/util/log.js +0 -36
  189. package/lib/src/util/log.js.map +0 -1
  190. package/lib/src/util/prompt.d.ts +0 -14
  191. package/lib/src/util/prompt.js +0 -75
  192. package/lib/src/util/prompt.js.map +0 -1
  193. package/lib/src/util/readme.d.ts +0 -8
  194. package/lib/src/util/readme.js +0 -92
  195. package/lib/src/util/readme.js.map +0 -1
  196. package/lib/src/util/request.d.ts +0 -1
  197. package/lib/src/util/request.js +0 -19
  198. package/lib/src/util/request.js.map +0 -1
  199. package/lib/src/util/user.d.ts +0 -13
  200. package/lib/src/util/user.js +0 -111
  201. package/lib/src/util/user.js.map +0 -1
  202. package/lib/test/cli.test.d.ts +0 -1
  203. package/lib/test/cli.test.js +0 -64
  204. package/lib/test/cli.test.js.map +0 -1
  205. package/lib/test/fixture-utils.d.ts +0 -25
  206. package/lib/test/fixture-utils.js +0 -67
  207. package/lib/test/fixture-utils.js.map +0 -1
  208. package/lib/test/init-verify-build.test.d.ts +0 -1
  209. package/lib/test/init-verify-build.test.js +0 -68
  210. package/lib/test/init-verify-build.test.js.map +0 -1
  211. package/lib/test/init.test.d.ts +0 -1
  212. package/lib/test/init.test.js +0 -169
  213. package/lib/test/init.test.js.map +0 -1
  214. package/lib/test/inject.test.d.ts +0 -1
  215. package/lib/test/inject.test.js +0 -75
  216. package/lib/test/inject.test.js.map +0 -1
  217. package/lib/test/run-test-command.d.ts +0 -1
  218. package/lib/test/run-test-command.js +0 -6
  219. package/lib/test/run-test-command.js.map +0 -1
  220. package/lib/test/semver-workflow.test.d.ts +0 -1
  221. package/lib/test/semver-workflow.test.js +0 -93
  222. package/lib/test/semver-workflow.test.js.map +0 -1
  223. package/lib/test/verify-package.test.d.ts +0 -1
  224. package/lib/test/verify-package.test.js +0 -87
  225. package/lib/test/verify-package.test.js.map +0 -1
  226. package/lib/test/version.test.d.ts +0 -1
  227. package/lib/test/version.test.js +0 -48
  228. package/lib/test/version.test.js.map +0 -1
@@ -1,410 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.validateSrcIndexFile = exports.validatePackageName = exports.validatePluginSanityJson = exports.validateStudioConfig = exports.validateBabelConfig = exports.validateDeprecatedDependencies = exports.validateSanityDependencies = exports.validatePkgUtilsDependency = exports.validateTsConfig = exports.validateScripts = exports.validateModule = exports.validateNodeEngine = exports.expectedScripts = void 0;
16
- const outdent_1 = __importDefault(require("outdent"));
17
- // @ts-expect-error missing types
18
- const validate_npm_package_name_1 = __importDefault(require("validate-npm-package-name"));
19
- // @ts-expect-error missing types
20
- const find_babel_config_1 = __importDefault(require("find-babel-config"));
21
- const constants_1 = require("../../constants");
22
- const banned_packages_1 = require("../../configs/banned-packages");
23
- const path_1 = __importDefault(require("path"));
24
- const files_1 = require("../../util/files");
25
- const chalk_1 = __importDefault(require("chalk"));
26
- exports.expectedScripts = {
27
- prebuild: `plugin-kit verify-package --silent && pkg-utils`,
28
- build: 'pkg-utils build',
29
- watch: 'pkg-utils watch',
30
- 'link-watch': 'plugin-kit link-watch',
31
- prepublishOnly: 'npm run build',
32
- };
33
- const expectedModulesFields = ['source', 'exports', 'main', 'module', 'files'];
34
- const expectedCompilerOptions = {
35
- jsx: 'preserve',
36
- moduleResolution: 'node',
37
- target: 'esnext',
38
- module: 'esnext',
39
- sourceMap: false,
40
- inlineSourceMap: false,
41
- esModuleInterop: true,
42
- skipLibCheck: true,
43
- isolatedModules: true,
44
- downlevelIteration: true,
45
- declaration: true,
46
- allowSyntheticDefaultImports: true,
47
- rootDir: 'src',
48
- };
49
- function validateNodeEngine(packageJson) {
50
- var _a, _b, _c;
51
- const nodeVersionRange = '>=14';
52
- if (!((_b = (_a = packageJson.engines) === null || _a === void 0 ? void 0 : _a.node) === null || _b === void 0 ? void 0 : _b.startsWith(nodeVersionRange))) {
53
- return [
54
- (0, outdent_1.default) `
55
- Expected package.json to contain engines.node: ">=14" to ensure Studio compatible builds,
56
- but it was: ${(_c = packageJson.engines) === null || _c === void 0 ? void 0 : _c.node}
57
-
58
- Please add the following to package.json:
59
-
60
- "engines": {
61
- "node": "${nodeVersionRange}"
62
- }`.trimStart(),
63
- ];
64
- }
65
- }
66
- exports.validateNodeEngine = validateNodeEngine;
67
- function validateModule(packageJson) {
68
- const errors = [];
69
- const missingFields = expectedModulesFields.filter((field) => !packageJson[field]);
70
- if (missingFields.length) {
71
- errors.push((0, outdent_1.default) `
72
- Expected source, exports, main, module and files entries in package.json, but ${missingFields.join(', ')} where missing.
73
-
74
- Example:
75
-
76
- Given a plugin with entry-point in src/index.ts, using default @sanity/pkg-utils build command,
77
- package.json should contain the following entries to ensure that commonjs and esm outputs are built into lib:
78
-
79
- "source": "./src/index.ts",
80
- "exports": {
81
- ".": {
82
- "types": "./lib/src/index.d.ts",
83
- "source": "./src/index.ts",
84
- "import": "./lib/index.esm.js",
85
- "require": "./lib/index.js",
86
- "default": "./lib/index.js"
87
- }
88
- },
89
- "main": "./lib/index.js",
90
- "module": "./lib/index.esm.js",
91
- "types": "./lib/src/index.d.ts",
92
- "files": [
93
- "src",
94
- "lib"
95
- ],
96
-
97
- Refer to @sanity/pkg-utils for more: https://github.com/sanity-io/pkg-utils#sanitypkg-utils
98
- `.trimStart());
99
- }
100
- if (packageJson.typings) {
101
- errors.push((0, outdent_1.default) `Found typings field in package.json. Use types instead.`);
102
- }
103
- return errors;
104
- }
105
- exports.validateModule = validateModule;
106
- function validateScripts(packageJson) {
107
- const errors = [];
108
- const divergentScripts = Object.entries(exports.expectedScripts).filter(([key, expectedCommand]) => {
109
- var _a;
110
- const command = (_a = packageJson.scripts) === null || _a === void 0 ? void 0 : _a[key];
111
- // check for includes instead of equals to give some leniency in command params and such
112
- return !command || !command.includes(expectedCommand);
113
- });
114
- if (divergentScripts.length) {
115
- errors.push((0, outdent_1.default) `
116
- The following script commands did not contain expected defaults: ${divergentScripts
117
- .map(([key]) => key)
118
- .join(', ')}
119
-
120
- This checks for that the commands-strings includes these terms.
121
- For example, this will validate ok:
122
- "prebuild": "npm run clean && ${exports.expectedScripts.prebuild}",
123
-
124
- Please add the following to your package.json "scripts":
125
-
126
- ${divergentScripts.map(([key, value]) => `"${key}": "${value}"`).join(',\n')}
127
- `.trimStart());
128
- }
129
- return errors;
130
- }
131
- exports.validateScripts = validateScripts;
132
- function validateTsConfig(tsConfig) {
133
- var _a;
134
- return __awaiter(this, void 0, void 0, function* () {
135
- const errors = [];
136
- const options = (_a = tsConfig.compilerOptions) !== null && _a !== void 0 ? _a : {};
137
- const wrongEntries = Object.entries(expectedCompilerOptions).filter(([key, value]) => {
138
- const option = options[key];
139
- return typeof value === 'string' && typeof option === 'string'
140
- ? value.toLowerCase() !== (option === null || option === void 0 ? void 0 : option.toLowerCase())
141
- : value !== option;
142
- });
143
- if (wrongEntries.length) {
144
- const expectedOutput = wrongEntries
145
- .map(([key, value]) => `"${key}": ${typeof value === 'string' ? `"${value}"` : value},`)
146
- .join('\n');
147
- errors.push((0, outdent_1.default) `
148
- Recommended tsconfig.json compilerOptions missing:
149
-
150
- The following fields had unexpected values: [${wrongEntries.map(([key]) => key).join(', ')}]
151
- Expected to find these values:
152
- ${expectedOutput}
153
-
154
- Please update your tsconfig.json accordingly.
155
- `.trimStart());
156
- }
157
- return errors;
158
- });
159
- }
160
- exports.validateTsConfig = validateTsConfig;
161
- function validatePkgUtilsDependency({ devDependencies }) {
162
- if (!(devDependencies === null || devDependencies === void 0 ? void 0 : devDependencies['@sanity/pkg-utils'])) {
163
- return [
164
- (0, outdent_1.default) `
165
- package.json does not list @sanity/pkg-utils as a devDependency.
166
- @sanity/pkg-utils replaced parcel as the recommended build tool in @sanity/plugin-kit 2.0.0
167
-
168
- Please add it by running 'npm install --save-dev @sanity/pkg-utils'.
169
- `.trimStart(),
170
- ];
171
- }
172
- return [];
173
- }
174
- exports.validatePkgUtilsDependency = validatePkgUtilsDependency;
175
- function validateSanityDependencies(packageJson) {
176
- const { dependencies, devDependencies, peerDependencies } = packageJson;
177
- const allDependencies = Object.assign(Object.assign(Object.assign({}, dependencies), devDependencies), peerDependencies);
178
- const illegalDeps = Object.keys(allDependencies).filter((dep) => banned_packages_1.mergedPackages.includes(dep));
179
- const deps = new Set(illegalDeps);
180
- const unique = [...deps.values()];
181
- if (unique.length) {
182
- return [
183
- (0, outdent_1.default) `
184
- package.json depends on "@sanity/*" packages that have moved into "sanity" package.
185
-
186
- The following dependencies should be replaced with "sanity":
187
- - ${unique.join('\n- ')}
188
-
189
- Refer to the reference docs to find replacement imports:
190
- ${constants_1.urls.refDocs}
191
- `.trimStart(),
192
- ];
193
- }
194
- return [];
195
- }
196
- exports.validateSanityDependencies = validateSanityDependencies;
197
- function validateDeprecatedDependencies(packageJson) {
198
- const { dependencies, devDependencies, peerDependencies } = packageJson;
199
- const allDependencies = Object.assign(Object.assign(Object.assign({}, dependencies), devDependencies), peerDependencies);
200
- const illegalDeps = Object.keys(allDependencies).filter((dep) => banned_packages_1.deprecatedDevDeps.includes(dep));
201
- const deps = new Set(illegalDeps);
202
- const unique = [...deps.values()];
203
- if (unique.length) {
204
- return [
205
- (0, outdent_1.default) `
206
- package.json contains deprecated dependencies that should be removed:
207
- - ${unique.join('\n- ')}
208
- `.trimStart(),
209
- ];
210
- }
211
- return [];
212
- }
213
- exports.validateDeprecatedDependencies = validateDeprecatedDependencies;
214
- function validateBabelConfig({ basePath }) {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- const babelConfig = yield (0, find_babel_config_1.default)(basePath);
217
- if (babelConfig.file) {
218
- return [
219
- (0, outdent_1.default) `
220
- Found babel-config file: ${babelConfig.file}. When using default @sanity/plugin-kit build command,
221
- this is probably not needed.
222
-
223
- Delete the ${babelConfig.file} file, or disable this check.
224
- `.trimStart(),
225
- ];
226
- }
227
- return [];
228
- });
229
- }
230
- exports.validateBabelConfig = validateBabelConfig;
231
- function validateStudioConfig({ basePath }) {
232
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
233
- return __awaiter(this, void 0, void 0, function* () {
234
- const suffixes = ['ts', 'js', 'tsx', 'jsx'];
235
- const withSuffix = (fileBases) => fileBases.flatMap((file) => suffixes.map((suffix) => `${file}.${suffix}`));
236
- const filenames = withSuffix(['sanity.config', 'sanity.cli']);
237
- const files = {};
238
- for (const filename of filenames) {
239
- const filepath = path_1.default.normalize(path_1.default.join(basePath, filename));
240
- files[filename] = yield (0, files_1.fileExists)(filepath);
241
- }
242
- const sanityJson = yield (0, files_1.readJson5File)({ basePath, filename: 'sanity.json' });
243
- const hasConfigFile = (fileBase) => withSuffix([fileBase]).some((filename) => files[filename]);
244
- const hasCliConfig = hasConfigFile('sanity.cli');
245
- const hasStudioConfig = hasConfigFile('sanity.config');
246
- const errors = [];
247
- if (sanityJson) {
248
- const info = [
249
- (0, outdent_1.default) `
250
- Found sanity.json. This file is not used by Sanity Studio V3.
251
-
252
- Please consult the Studio V3 migration guide:
253
- ${constants_1.urls.migrationGuideStudio}
254
- It will detail how to convert sanity.json to sanity.config.ts (or .js) and sanity.cli.ts (or .js) equivalents.
255
- `.trimStart(),
256
- ((_a = sanityJson.plugins) === null || _a === void 0 ? void 0 : _a.length) &&
257
- (0, outdent_1.default) `
258
- For V3 versions and alternatives to V2 plugins, please refer to the Sanity Exchange:
259
- ${constants_1.urls.sanityExchange}
260
- `.trimStart(),
261
- ].filter((s) => !!s);
262
- errors.push(info.join('\n\n'));
263
- }
264
- if (!hasCliConfig) {
265
- errors.push((0, outdent_1.default) `
266
- sanity.cli.(${suffixes.join(' | ')}) missing. Please create a file named sanity.cli.ts with the following content:
267
-
268
- ${chalk_1.default.green((0, outdent_1.default) `
269
- import {createCliConfig} from 'sanity/cli'
270
-
271
- export default createCliConfig({
272
- api: {
273
- projectId: '${(_c = (_b = sanityJson === null || sanityJson === void 0 ? void 0 : sanityJson.api) === null || _b === void 0 ? void 0 : _b.projectId) !== null && _c !== void 0 ? _c : 'project-id'}',
274
- dataset: '${(_e = (_d = sanityJson === null || sanityJson === void 0 ? void 0 : sanityJson.api) === null || _d === void 0 ? void 0 : _d.dataset) !== null && _e !== void 0 ? _e : 'dataset'}',
275
- }
276
- })`)}
277
-
278
- Make sure to replace the projectId and dataset fields with your own.
279
-
280
- For more, see ${constants_1.urls.migrationGuideStudio}
281
- `.trimStart());
282
- }
283
- if (!hasStudioConfig) {
284
- errors.push((0, outdent_1.default) `
285
- sanity.config.(${suffixes.join(' | ')}) missing. At a minimum sanity.config.ts should contain:
286
-
287
- ${chalk_1.default
288
- .green((0, outdent_1.default) `
289
- import { defineConfig } from "sanity"
290
- import { deskTool } from "sanity/desk"
291
-
292
- export default defineConfig({
293
- name: "default",
294
-
295
- projectId: '${(_g = (_f = sanityJson === null || sanityJson === void 0 ? void 0 : sanityJson.api) === null || _f === void 0 ? void 0 : _f.projectId) !== null && _g !== void 0 ? _g : 'project-id'}',
296
- dataset: '${(_j = (_h = sanityJson === null || sanityJson === void 0 ? void 0 : sanityJson.api) === null || _h === void 0 ? void 0 : _h.dataset) !== null && _j !== void 0 ? _j : 'dataset'}',
297
-
298
- plugins: [
299
- deskTool(),
300
- ],
301
-
302
- schema: {
303
- types: [
304
- /* put your v2 schema-types here */
305
- ],
306
- },
307
- })`)
308
- .trimStart()}
309
-
310
- Make sure to replace the projectId and dataset fields with your own.
311
-
312
- For more, see ${constants_1.urls.migrationGuideStudio}
313
- `.trimStart());
314
- }
315
- return errors.length ? [errors.join(`\n\n---\n\n`)] : [];
316
- });
317
- }
318
- exports.validateStudioConfig = validateStudioConfig;
319
- function validatePluginSanityJson({ basePath, packageJson, }) {
320
- var _a, _b;
321
- return __awaiter(this, void 0, void 0, function* () {
322
- const sanityJson = yield (0, files_1.readJson5File)({ basePath, filename: 'sanity.json' });
323
- const expectedDefaults = {
324
- parts: [
325
- {
326
- implements: 'part:@sanity/base/sanity-root',
327
- path: './v2-incompatible.js',
328
- },
329
- ],
330
- };
331
- const hasSinglePart = sanityJson &&
332
- Object.keys(sanityJson).length === 1 &&
333
- (sanityJson === null || sanityJson === void 0 ? void 0 : sanityJson.parts) &&
334
- sanityJson.parts.length === 1;
335
- const firstPart = hasSinglePart ? (_a = sanityJson === null || sanityJson === void 0 ? void 0 : sanityJson.parts) === null || _a === void 0 ? void 0 : _a[0] : undefined;
336
- const correctImplements = (firstPart === null || firstPart === void 0 ? void 0 : firstPart.implements) === expectedDefaults.parts[0].implements;
337
- const pathExists = (firstPart === null || firstPart === void 0 ? void 0 : firstPart.path) && (yield (0, files_1.fileExists)(path_1.default.normalize(path_1.default.join(basePath, firstPart.path))));
338
- const hasDependency = !!((_b = packageJson.dependencies) === null || _b === void 0 ? void 0 : _b[constants_1.incompatiblePluginPackage]);
339
- const isValid = sanityJson && hasSinglePart && correctImplements && pathExists && hasDependency;
340
- if (!isValid) {
341
- const errors = [
342
- !sanityJson ? 'sanity.json does not exist' : null,
343
- !hasSinglePart ? 'sanity.json should have exactly one entry in "parts", but did not.' : null,
344
- !correctImplements
345
- ? `The part should implement ${expectedDefaults.parts[0].implements}, but did not.`
346
- : null,
347
- (firstPart === null || firstPart === void 0 ? void 0 : firstPart.path) && !pathExists
348
- ? `The file in "path", ${firstPart === null || firstPart === void 0 ? void 0 : firstPart.path}, does not exist.`
349
- : null,
350
- !hasDependency
351
- ? (0, outdent_1.default) `
352
- package.json should have ${constants_1.incompatiblePluginPackage} as a dependency, but did not.
353
- Install it with: npm install --save ${constants_1.incompatiblePluginPackage}
354
- `.trimStart()
355
- : null,
356
- ].filter((e) => !!e);
357
- return [
358
- (0, outdent_1.default) `
359
- Invalid sanity.json. It is used for compatibility checking in V2 studios:
360
-
361
- - ${errors.join('\n- ')}
362
-
363
- sanity.json will only be used when incorrectly installing a v3 plugin in a v2 Studio.
364
-
365
- This check ensures that sanity.json conforms with the usage section of
366
- ${constants_1.urls.incompatiblePlugin}
367
- `.trimStart(),
368
- ];
369
- }
370
- return [];
371
- });
372
- }
373
- exports.validatePluginSanityJson = validatePluginSanityJson;
374
- function validatePackageName(packageJson) {
375
- var _a, _b;
376
- const valid = (0, validate_npm_package_name_1.default)(packageJson.name);
377
- if (!valid.validForNewPackages) {
378
- return [`Invalid package.json: "name" is invalid: ${valid.errors.join(', ')}`];
379
- }
380
- const isScoped = (_a = packageJson.name) === null || _a === void 0 ? void 0 : _a.startsWith('@');
381
- if (!isScoped && !((_b = packageJson.name) === null || _b === void 0 ? void 0 : _b.startsWith('sanity-plugin-'))) {
382
- return [
383
- `Invalid package.json: "name" should be prefixed with "sanity-plugin-" (or scoped - @your-company/plugin-name)`,
384
- ];
385
- }
386
- }
387
- exports.validatePackageName = validatePackageName;
388
- function validateSrcIndexFile(basePath) {
389
- return __awaiter(this, void 0, void 0, function* () {
390
- const paths = ['index.js', 'index.ts'].map((p) => path_1.default.join('src', p));
391
- const allowedIndexFiles = paths.map((file) => path_1.default.join(basePath, file));
392
- let hasIndex = false;
393
- for (const indexFile of allowedIndexFiles) {
394
- hasIndex = hasIndex || (yield (0, files_1.fileExists)(indexFile));
395
- }
396
- if (!hasIndex) {
397
- return [
398
- (0, outdent_1.default) `
399
- Expected one of [${paths.join(', ')}] to exist.
400
-
401
- @sanity/pkg-utils expects a non-jsx file to be the source entry-point for the plugin.
402
- If you currently have JSX in your index file, extract it into a separate file and import it.
403
- `,
404
- ];
405
- }
406
- return [];
407
- });
408
- }
409
- exports.validateSrcIndexFile = validateSrcIndexFile;
410
- //# sourceMappingURL=validations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../../../src/actions/verify/validations.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /// <reference types="node" />
2
- import { TypedFlags } from 'meow';
3
- import fs from 'fs';
4
- import { TsConfig } from './types';
5
- export declare const readFile: typeof fs.promises.readFile;
6
- export declare const verifyPackageConfigDefaults: {
7
- readonly packageName: true;
8
- readonly module: true;
9
- readonly tsconfig: true;
10
- readonly tsc: true;
11
- readonly dependencies: true;
12
- readonly deprecatedDependencies: true;
13
- readonly babelConfig: true;
14
- readonly sanityV2Json: true;
15
- readonly eslintImports: true;
16
- readonly scripts: true;
17
- readonly 'pkg-utils': true;
18
- readonly nodeEngine: true;
19
- readonly studioConfig: true;
20
- readonly srcIndex: true;
21
- };
22
- export declare type VerifyPackageConfig = Partial<Record<keyof typeof verifyPackageConfigDefaults, boolean>>;
23
- export declare const verifyFlags: {
24
- readonly single: {
25
- readonly default: false;
26
- readonly type: "boolean";
27
- };
28
- readonly debug: {
29
- readonly default: false;
30
- readonly type: "boolean";
31
- };
32
- readonly silent: {
33
- readonly type: "boolean";
34
- readonly default: false;
35
- };
36
- readonly verbose: {
37
- readonly type: "boolean";
38
- readonly default: false;
39
- };
40
- };
41
- export declare type VerifyFlags = TypedFlags<typeof verifyFlags>;
42
- export declare function disableCheckText(checkKey: string): string;
43
- export declare function createValidator(verifyConfig: VerifyPackageConfig, flags: VerifyFlags, errors: string[]): (checkKey: keyof VerifyPackageConfig, task: () => Promise<string[] | undefined>) => Promise<void>;
44
- export declare function runTscMaybe(verifyConfig: VerifyPackageConfig, tsConfig?: TsConfig): Promise<void>;
@@ -1,89 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.runTscMaybe = exports.createValidator = exports.disableCheckText = exports.verifyFlags = exports.verifyPackageConfigDefaults = exports.readFile = void 0;
16
- const log_1 = __importDefault(require("../../util/log"));
17
- const fs_1 = __importDefault(require("fs"));
18
- const sharedFlags_1 = __importDefault(require("../../sharedFlags"));
19
- const chalk_1 = __importDefault(require("chalk"));
20
- const outdent_1 = __importDefault(require("outdent"));
21
- const command_parser_1 = require("../../util/command-parser");
22
- exports.readFile = fs_1.default.promises.readFile;
23
- const splitLine = `\n----------------------------------------------------------`;
24
- exports.verifyPackageConfigDefaults = {
25
- packageName: true,
26
- module: true,
27
- tsconfig: true,
28
- tsc: true,
29
- dependencies: true,
30
- deprecatedDependencies: true,
31
- babelConfig: true,
32
- sanityV2Json: true,
33
- eslintImports: true,
34
- scripts: true,
35
- 'pkg-utils': true,
36
- nodeEngine: true,
37
- studioConfig: true,
38
- srcIndex: true,
39
- };
40
- exports.verifyFlags = Object.assign(Object.assign({}, sharedFlags_1.default), { single: {
41
- default: false,
42
- type: 'boolean',
43
- } });
44
- function disableCheckText(checkKey) {
45
- return chalk_1.default.grey((0, outdent_1.default) `
46
- To skip this validation add the following to your package.json:
47
- "sanityPlugin": {
48
- "verifyPackage": {
49
- "${checkKey}": false
50
- }
51
- }
52
- `.trimStart());
53
- }
54
- exports.disableCheckText = disableCheckText;
55
- function createValidator(verifyConfig, flags, errors) {
56
- return function validation(checkKey, task) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- if (verifyConfig[checkKey] !== false) {
59
- const result = yield task();
60
- if (result === null || result === void 0 ? void 0 : result.length) {
61
- result.push(disableCheckText(checkKey));
62
- const errorMessage = result.join('\n\n');
63
- errors.push(errorMessage);
64
- log_1.default.error(`\n` + errorMessage + splitLine);
65
- }
66
- }
67
- if (flags.single && errors.length) {
68
- throw new Error((0, outdent_1.default) `Detected outstanding upgrade issues.
69
-
70
- Fail-fast (--single) mode enabled, stopping validation here.
71
- `);
72
- }
73
- });
74
- };
75
- }
76
- exports.createValidator = createValidator;
77
- function runTscMaybe(verifyConfig, tsConfig) {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- if (tsConfig && verifyConfig.tsc !== false) {
80
- log_1.default.info('All checks ok, running Typescript compiler.');
81
- const { code } = yield (0, command_parser_1.runCommand)('tsc --noEmit');
82
- if (code !== 0) {
83
- throw new Error('Compilation failed. See output above.\n\n' + disableCheckText('tsc'));
84
- }
85
- }
86
- });
87
- }
88
- exports.runTscMaybe = runTscMaybe;
89
- //# sourceMappingURL=verify-common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify-common.js","sourceRoot":"","sources":["../../../../src/actions/verify/verify-common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAgC;AAEhC,4CAAmB;AACnB,oEAA2C;AAE3C,kDAAyB;AACzB,sDAA6B;AAC7B,8DAAoD;AAEvC,QAAA,QAAQ,GAAG,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAA;AAC5C,MAAM,SAAS,GAAG,8DAA8D,CAAA;AAEnE,QAAA,2BAA2B,GAAG;IACzC,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,GAAG,EAAE,IAAI;IACT,YAAY,EAAE,IAAI;IAClB,sBAAsB,EAAE,IAAI;IAC5B,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;CACN,CAAA;AAIG,QAAA,WAAW,GAAG,gCACtB,qBAAW,KACd,MAAM,EAAE;QACN,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,SAAS;KAChB,GACO,CAAA;AAIV,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,eAAK,CAAC,IAAI,CACf,IAAA,iBAAO,EAAA;;;;uBAIY,QAAQ;;;WAGpB,CAAC,SAAS,EAAE,CACpB,CAAA;AACH,CAAC;AAXD,4CAWC;AAED,SAAgB,eAAe,CAC7B,YAAiC,EACjC,KAAkB,EAClB,MAAgB;IAEhB,OAAO,SAAe,UAAU,CAC9B,QAAmC,EACnC,IAAyC;;YAEzC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;gBACpC,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;gBAC3B,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;oBAClB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;oBACvC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACxC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;oBACzB,aAAG,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,GAAG,SAAS,CAAC,CAAA;iBAC3C;aACF;YAED,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjC,MAAM,IAAI,KAAK,CACb,IAAA,iBAAO,EAAA;;;SAGN,CACF,CAAA;aACF;QACH,CAAC;KAAA,CAAA;AACH,CAAC;AA5BD,0CA4BC;AAED,SAAsB,WAAW,CAAC,YAAiC,EAAE,QAAmB;;QACtF,IAAI,QAAQ,IAAI,YAAY,CAAC,GAAG,KAAK,KAAK,EAAE;YAC1C,aAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;YACvD,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAA,2BAAU,EAAC,cAAc,CAAC,CAAA;YAC/C,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;aACvF;SACF;IACH,CAAC;CAAA;AARD,kCAQC"}
@@ -1,5 +0,0 @@
1
- import { VerifyFlags } from './verify/verify-common';
2
- export declare function verifyPackage({ basePath, flags }: {
3
- basePath: string;
4
- flags: VerifyFlags;
5
- }): Promise<void>;
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.verifyPackage = void 0;
16
- const package_1 = require("../npm/package");
17
- const log_1 = __importDefault(require("../util/log"));
18
- const constants_1 = require("../constants");
19
- const import_linter_1 = require("../dependencies/import-linter");
20
- const outdent_1 = __importDefault(require("outdent"));
21
- const verify_common_1 = require("./verify/verify-common");
22
- const files_1 = require("../util/files");
23
- const validations_1 = require("./verify/validations");
24
- const chalk_1 = __importDefault(require("chalk"));
25
- function verifyPackage({ basePath, flags }) {
26
- var _a;
27
- return __awaiter(this, void 0, void 0, function* () {
28
- let errors = [];
29
- const packageJson = yield (0, package_1.getPackage)({ basePath, validate: false });
30
- const verifyConfig = ((_a = packageJson.sanityPlugin) === null || _a === void 0 ? void 0 : _a.verifyPackage) || {};
31
- const validation = (0, verify_common_1.createValidator)(verifyConfig, flags, errors);
32
- const tsConfig = yield (0, files_1.readJson5File)({ basePath, filename: 'tsconfig.json' });
33
- yield validation('packageName', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validatePackageName)(packageJson); }));
34
- yield validation('pkg-utils', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validatePkgUtilsDependency)(packageJson); }));
35
- yield validation('srcIndex', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateSrcIndexFile)(basePath); }));
36
- yield validation('scripts', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateScripts)(packageJson); }));
37
- yield validation('module', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateModule)(packageJson); }));
38
- yield validation('nodeEngine', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateNodeEngine)(packageJson); }));
39
- tsConfig && (yield validation('tsconfig', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateTsConfig)(tsConfig); })));
40
- yield validation('sanityV2Json', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validatePluginSanityJson)({ basePath, packageJson }); }));
41
- yield validation('babelConfig', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateBabelConfig)({ basePath }); }));
42
- yield validation('dependencies', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateSanityDependencies)(packageJson); }));
43
- yield validation('deprecatedDependencies', () => __awaiter(this, void 0, void 0, function* () { return (0, validations_1.validateDeprecatedDependencies)(packageJson); }));
44
- yield validation('eslintImports', () => __awaiter(this, void 0, void 0, function* () { return (0, import_linter_1.validateImports)({ basePath }); }));
45
- if (errors.length) {
46
- throw new Error((0, outdent_1.default) `
47
- Detected validation issues!
48
- To make this package Sanity v3 compatible, fix the issues starting from the top, or disable any checks you deem unnecessary.
49
-
50
- These issues assume the package uses @sanity/plugin-kit defaults for development and building.
51
- Refer to ${constants_1.urls.pluginReadme} for configuration options.
52
-
53
- More information is available here:
54
- - Studio migration guide: ${constants_1.urls.migrationGuideStudio}
55
- - Plugin migration guide: ${constants_1.urls.migrationGuidePlugin}
56
- - Reference documentation: ${constants_1.urls.refDocs}
57
-
58
- ${chalk_1.default.grey(`To fail-fast on first detected issue run:\nnpx ${constants_1.cliName} verify-package' --single`)}
59
- `.trimStart());
60
- }
61
- yield (0, verify_common_1.runTscMaybe)(verifyConfig, tsConfig);
62
- log_1.default.success((0, outdent_1.default) `
63
- No outstanding upgrade issues detected.
64
-
65
- Suggested next steps:
66
- - Use plugin-kit to build and develop the plugin according to ${constants_1.urls.pluginReadme}.
67
- - Build the plugin and fix any compilation errors
68
- - Test the plugin using the link-watch command
69
- `.trim());
70
- });
71
- }
72
- exports.verifyPackage = verifyPackage;
73
- //# sourceMappingURL=verify-package.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify-package.js","sourceRoot":"","sources":["../../../src/actions/verify-package.ts"],"names":[],"mappings":"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"}