@sanity/pkg-utils 1.3.1 → 1.5.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 (104) hide show
  1. package/README.md +8 -0
  2. package/dist/__printPackageTree-3ff3ecd3.cjs +76 -0
  3. package/dist/__printPackageTree-3ff3ecd3.cjs.map +1 -0
  4. package/dist/__resolveBuildContext-85cfca8d.cjs +337 -0
  5. package/dist/__resolveBuildContext-85cfca8d.cjs.map +1 -0
  6. package/dist/_build-683d9922.cjs +168 -0
  7. package/dist/_build-683d9922.cjs.map +1 -0
  8. package/dist/_buildAction-f593323a.cjs +44 -0
  9. package/dist/_buildAction-f593323a.cjs.map +1 -0
  10. package/dist/_check-6843c26d.cjs +118 -0
  11. package/dist/_check-6843c26d.cjs.map +1 -0
  12. package/dist/_checkAction-0bca6a14.cjs +29 -0
  13. package/dist/_checkAction-0bca6a14.cjs.map +1 -0
  14. package/dist/_index-5765fada.cjs +584 -0
  15. package/dist/_index-5765fada.cjs.map +1 -0
  16. package/dist/_watch-ec1b35d6.cjs +217 -0
  17. package/dist/_watch-ec1b35d6.cjs.map +1 -0
  18. package/dist/_watchAction-a388fc00.cjs +43 -0
  19. package/dist/_watchAction-a388fc00.cjs.map +1 -0
  20. package/dist/cli.cjs +14 -31
  21. package/dist/cli.cjs.map +1 -1
  22. package/dist/index.cjs +43 -16
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.ts +282 -152
  25. package/dist/index.js +1055 -5198
  26. package/dist/index.js.map +1 -1
  27. package/package.json +37 -10
  28. package/src/cli/buildAction.ts +8 -0
  29. package/src/cli/checkAction.ts +9 -0
  30. package/src/cli/index.ts +42 -0
  31. package/src/cli/watchAction.ts +8 -0
  32. package/src/{core → node/_core}/_defaults.ts +1 -3
  33. package/src/{core → node/_core}/_isRecord.ts +1 -3
  34. package/src/{core → node/_core}/config/_loadConfig.ts +1 -3
  35. package/src/node/_core/config/_resolveConfigProperty.ts +15 -0
  36. package/src/{core → node/_core}/config/defineConfig.ts +1 -3
  37. package/src/{core → node/_core}/config/index.ts +0 -0
  38. package/src/node/_core/config/types.ts +69 -0
  39. package/src/node/_core/contexts/buildContext.ts +34 -0
  40. package/src/node/_core/contexts/index.ts +1 -0
  41. package/src/{core → node/_core}/index.ts +2 -0
  42. package/src/node/_core/pkg/_loadPkg.ts +55 -0
  43. package/src/node/_core/pkg/_loadPkgWithReporting.ts +29 -0
  44. package/src/node/_core/pkg/_parseExports.ts +45 -0
  45. package/src/{core → node/_core}/pkg/_types.ts +16 -5
  46. package/src/{core → node/_core}/pkg/index.ts +1 -0
  47. package/src/{build/tasks/dts → node/_core/ts}/_loadTSConfig.ts +1 -0
  48. package/src/node/_core/ts/index.ts +1 -0
  49. package/src/node/_getFilesize.ts +8 -0
  50. package/src/node/_globFiles.ts +5 -0
  51. package/src/node/_printExtractMessages.ts +56 -0
  52. package/src/node/_printPackageTree.ts +72 -0
  53. package/src/{build/_parseWebTarget.ts → node/_resolveBrowserTarget.ts} +2 -2
  54. package/src/{build/_parseBrowserslistVersions.ts → node/_resolveBrowserslistVersions.ts} +1 -1
  55. package/src/node/_resolveBuildContext.ts +104 -0
  56. package/src/node/_resolveBuildTasks.ts +129 -0
  57. package/src/{build/_parseNodeTarget.ts → node/_resolveNodeTarget.ts} +2 -2
  58. package/src/node/_resolveWatchTasks.ts +129 -0
  59. package/src/node/_spinner.ts +26 -0
  60. package/src/node/_tasks/_types.ts +57 -0
  61. package/src/node/_tasks/dts/_DtsError.ts +11 -0
  62. package/src/{build/tasks → node/_tasks}/dts/_buildTypes.ts +30 -16
  63. package/src/node/_tasks/dts/_createApiExtractorConfig.ts +41 -0
  64. package/src/{build/tasks → node/_tasks}/dts/_createTSDocConfig.ts +2 -6
  65. package/src/node/_tasks/dts/_doExtract.ts +57 -0
  66. package/src/node/_tasks/dts/_dtsTask.ts +40 -0
  67. package/src/node/_tasks/dts/_dtsWatchTask.ts +43 -0
  68. package/src/node/_tasks/dts/_extractTypes.ts +164 -0
  69. package/src/node/_tasks/dts/_types.ts +25 -0
  70. package/src/node/_tasks/dts/index.ts +3 -0
  71. package/src/node/_tasks/index.ts +19 -0
  72. package/src/node/_tasks/rollup/_resolveRollupConfig.ts +132 -0
  73. package/src/node/_tasks/rollup/_rollupTask.ts +73 -0
  74. package/src/node/_tasks/rollup/_rollupWatchTask.ts +78 -0
  75. package/src/node/_tasks/rollup/index.ts +2 -0
  76. package/src/node/_watchConfigFiles.ts +52 -0
  77. package/src/node/_watchFiles.ts +29 -0
  78. package/src/node/build.ts +47 -0
  79. package/src/node/check.ts +136 -0
  80. package/src/node/index.ts +6 -0
  81. package/src/node/watch.ts +56 -0
  82. package/dist/_build-5bf997de.cjs +0 -5549
  83. package/dist/_build-5bf997de.cjs.map +0 -1
  84. package/src/build/_parseTasks.ts +0 -87
  85. package/src/build/_types.ts +0 -26
  86. package/src/build/build.ts +0 -101
  87. package/src/build/index.ts +0 -2
  88. package/src/build/tasks/_types.ts +0 -8
  89. package/src/build/tasks/dts/_createApiExtractorConfig.ts +0 -88
  90. package/src/build/tasks/dts/_extractTypes.ts +0 -100
  91. package/src/build/tasks/dts/dts.ts +0 -59
  92. package/src/build/tasks/dts/index.ts +0 -1
  93. package/src/build/tasks/extract/_extractTask.ts +0 -49
  94. package/src/build/tasks/extract/index.ts +0 -1
  95. package/src/build/tasks/index.ts +0 -4
  96. package/src/build/tasks/rollup/_resolveRollupConfig.ts +0 -95
  97. package/src/build/tasks/rollup/index.ts +0 -1
  98. package/src/build/tasks/rollup/rollup.ts +0 -96
  99. package/src/cli.ts +0 -25
  100. package/src/core/config/_resolveConfigProperty.ts +0 -14
  101. package/src/core/config/types.ts +0 -52
  102. package/src/core/pkg/_loadPkg.ts +0 -13
  103. package/src/core/pkg/_parseExports.ts +0 -40
  104. package/src/index.ts +0 -2
@@ -0,0 +1,584 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+ var rxjs = require('rxjs');
5
+ var path = require('path');
6
+ var util = require('util');
7
+ var rimrafCallback = require('rimraf');
8
+ var ts = require('typescript');
9
+ var fs = require('fs/promises');
10
+ var apiExtractor = require('@microsoft/api-extractor');
11
+ var mkdirp = require('mkdirp');
12
+ var prettier = require('prettier');
13
+ var tsdocConfig = require('@microsoft/tsdoc-config');
14
+ var jsoncParser = require('jsonc-parser');
15
+ var rollup = require('rollup');
16
+ var alias = require('@rollup/plugin-alias');
17
+ var commonjs = require('@rollup/plugin-commonjs');
18
+ var json = require('@rollup/plugin-json');
19
+ var pluginNodeResolve = require('@rollup/plugin-node-resolve');
20
+ var replace = require('@rollup/plugin-replace');
21
+ var esbuild = require('rollup-plugin-esbuild');
22
+
23
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
+
25
+ var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
26
+ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
27
+ var rimrafCallback__default = /*#__PURE__*/_interopDefaultLegacy(rimrafCallback);
28
+ var ts__default = /*#__PURE__*/_interopDefaultLegacy(ts);
29
+ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
30
+ var mkdirp__default = /*#__PURE__*/_interopDefaultLegacy(mkdirp);
31
+ var prettier__default = /*#__PURE__*/_interopDefaultLegacy(prettier);
32
+ var alias__default = /*#__PURE__*/_interopDefaultLegacy(alias);
33
+ var commonjs__default = /*#__PURE__*/_interopDefaultLegacy(commonjs);
34
+ var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
35
+ var replace__default = /*#__PURE__*/_interopDefaultLegacy(replace);
36
+ var esbuild__default = /*#__PURE__*/_interopDefaultLegacy(esbuild);
37
+
38
+ function _printExtractMessages(ctx, messages) {
39
+ const { cwd, logger } = ctx;
40
+ const warnings = messages.filter((msg) => msg.logLevel === "warning");
41
+ if (warnings.length) {
42
+ logger.log();
43
+ }
44
+ for (const msg of warnings) {
45
+ const sourceFilePath = msg.sourceFilePath && path__default["default"].relative(cwd, msg.sourceFilePath);
46
+ if (msg.messageId === "TS6307") {
47
+ continue;
48
+ }
49
+ logger.log(
50
+ [
51
+ `${chalk__default["default"].cyan(sourceFilePath || "?")}`,
52
+ `:${chalk__default["default"].yellow(msg.sourceFileLine)}:${chalk__default["default"].yellow(msg.sourceFileColumn)}`,
53
+ ` - ${chalk__default["default"].yellow("warning")} ${chalk__default["default"].gray(msg.messageId)}
54
+ `,
55
+ msg.text,
56
+ "\n"
57
+ ].join("")
58
+ );
59
+ }
60
+ const errors = messages.filter((msg) => msg.logLevel === "error");
61
+ if (!warnings.length && errors.length) {
62
+ logger.log("");
63
+ }
64
+ for (const msg of errors) {
65
+ const sourceFilePath = msg.sourceFilePath && path__default["default"].relative(cwd, msg.sourceFilePath);
66
+ logger.log(
67
+ [
68
+ `${chalk__default["default"].cyan(sourceFilePath || "?")}`,
69
+ `:${chalk__default["default"].yellow(msg.sourceFileLine)}:${chalk__default["default"].yellow(msg.sourceFileColumn)}`,
70
+ ` - ${chalk__default["default"].red("error")} ${chalk__default["default"].gray(msg.messageId)}
71
+ `,
72
+ msg.text,
73
+ "\n"
74
+ ].join("")
75
+ );
76
+ }
77
+ if (errors.length) {
78
+ process.exit(1);
79
+ }
80
+ }
81
+
82
+ const formatHost = {
83
+ getCurrentDirectory: () => ts__default["default"].sys.getCurrentDirectory(),
84
+ getNewLine: () => ts__default["default"].sys.newLine,
85
+ getCanonicalFileName: ts__default["default"].sys.useCaseSensitiveFileNames ? (f) => f : (f) => f.toLowerCase()
86
+ };
87
+ async function _buildTypes(options) {
88
+ const { cwd, outDir, sourcePath, tsconfig } = options;
89
+ const compilerOptions = {
90
+ ...tsconfig.options,
91
+ declaration: true,
92
+ declarationDir: outDir,
93
+ emitDeclarationOnly: true,
94
+ noEmit: false,
95
+ outDir
96
+ };
97
+ const rootDir = path__default["default"].relative(
98
+ cwd,
99
+ compilerOptions.rootDir ? path__default["default"].resolve(cwd, compilerOptions.rootDir) : path__default["default"].dirname(path__default["default"].resolve(cwd, sourcePath))
100
+ ) || ".";
101
+ const program = ts__default["default"].createProgram(tsconfig.fileNames, compilerOptions);
102
+ const sourceFiles = program.getSourceFiles();
103
+ const sourceFile = sourceFiles.find((f) => f.fileName === path__default["default"].resolve(cwd, sourcePath));
104
+ if (!sourceFile) {
105
+ throw new Error(`source file not found: ${sourcePath}`);
106
+ }
107
+ const emitResult = program.emit();
108
+ const allDiagnostics = ts__default["default"].getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
109
+ allDiagnostics.forEach((diagnostic) => {
110
+ if (diagnostic.file && diagnostic.start) {
111
+ const { line, character } = ts__default["default"].getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
112
+ const message = ts__default["default"].flattenDiagnosticMessageText(diagnostic.messageText, "\n");
113
+ console.log(`${diagnostic.file.fileName} ${line + 1}:${character + 1}
114
+ ${message}`);
115
+ } else {
116
+ console.log(ts__default["default"].flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
117
+ }
118
+ });
119
+ if (emitResult.emitSkipped) {
120
+ const errors = allDiagnostics.filter((diag) => diag.category === ts__default["default"].DiagnosticCategory.Error);
121
+ if (errors.length) {
122
+ console.error(ts__default["default"].formatDiagnostics(errors, formatHost));
123
+ throw new Error("failed to compile");
124
+ }
125
+ }
126
+ const typesPath = path__default["default"].resolve(outDir, path__default["default"].relative(rootDir, path__default["default"].resolve(cwd, sourcePath))).replace(/\.[jt]sx?$/, ".d.ts");
127
+ return { path: typesPath };
128
+ }
129
+
130
+ class _DtsError extends Error {
131
+ constructor(message, messages) {
132
+ super(message);
133
+ this.messages = messages;
134
+ }
135
+ }
136
+
137
+ function _createApiExtractorConfig(options) {
138
+ const { distPath, exportPath, filePath, messages, projectPath, sourcePath, tsconfigPath } = options;
139
+ return {
140
+ apiReport: {
141
+ enabled: false,
142
+ reportFileName: "<unscopedPackageName>.api.md"
143
+ },
144
+ compiler: {
145
+ tsconfigFilePath: tsconfigPath
146
+ },
147
+ docModel: {
148
+ enabled: false,
149
+ apiJsonFilePath: path__default["default"].resolve(distPath, `${exportPath}.api.json`)
150
+ },
151
+ dtsRollup: {
152
+ enabled: true,
153
+ untrimmedFilePath: path__default["default"].resolve(distPath, filePath)
154
+ },
155
+ tsdocMetadata: {
156
+ enabled: false
157
+ },
158
+ messages,
159
+ mainEntryPointFilePath: sourcePath,
160
+ projectFolder: projectPath
161
+ };
162
+ }
163
+
164
+ async function _createTSDocConfig(opts) {
165
+ const { customTags } = opts;
166
+ if (customTags.length === 0) {
167
+ return void 0;
168
+ }
169
+ const tsDocBaseBuf = await fs.readFile(
170
+ require.resolve("@microsoft/api-extractor/extends/tsdoc-base.json")
171
+ );
172
+ const tsDocBaseConfig = jsoncParser.parse(tsDocBaseBuf.toString());
173
+ const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(
174
+ customTags.map((t) => ({
175
+ tagName: `@${t.name}`,
176
+ syntaxKind: t.syntaxKind,
177
+ allowMultiple: t.allowMultiple
178
+ }))
179
+ );
180
+ const supportForTags = { ...tsDocBaseConfig.supportForTags };
181
+ for (const customTag of customTags) {
182
+ supportForTags[`@${customTag.name}`] = true;
183
+ }
184
+ return tsdocConfig.TSDocConfigFile.loadFromObject({
185
+ ...tsDocBaseConfig,
186
+ noStandardTags: false,
187
+ tagDefinitions,
188
+ supportForTags
189
+ });
190
+ }
191
+
192
+ const _LOG_LEVELS = {
193
+ error: "error",
194
+ info: "info",
195
+ off: "none",
196
+ warn: "warning"
197
+ };
198
+ async function _extractTypes(options) {
199
+ const { distPath, exportPath, files, filePath, projectPath, rules, sourcePath, tsconfigPath } = options;
200
+ const tsdocConfigFile = await _createTSDocConfig({
201
+ customTags: []
202
+ });
203
+ function _ruleToLogLevel(key, defaultLevel) {
204
+ const r = rules == null ? void 0 : rules[key];
205
+ return r ? _LOG_LEVELS[r] : defaultLevel || "warning";
206
+ }
207
+ const messagesConfig = {
208
+ compilerMessageReporting: {
209
+ default: {
210
+ logLevel: "warning"
211
+ }
212
+ },
213
+ extractorMessageReporting: {
214
+ default: {
215
+ logLevel: "warning",
216
+ addToApiReportFile: false
217
+ },
218
+ "ae-forgotten-export": {
219
+ logLevel: _ruleToLogLevel("ae-forgotten-export", "error"),
220
+ addToApiReportFile: false
221
+ },
222
+ "ae-incompatible-release-tags": {
223
+ logLevel: _ruleToLogLevel("ae-incompatible-release-tags", "error"),
224
+ addToApiReportFile: false
225
+ },
226
+ "ae-internal-missing-underscore": {
227
+ logLevel: _ruleToLogLevel("ae-internal-missing-underscore"),
228
+ addToApiReportFile: false
229
+ },
230
+ "ae-missing-release-tag": {
231
+ logLevel: _ruleToLogLevel("ae-missing-release-tag", "error"),
232
+ addToApiReportFile: false
233
+ },
234
+ "ae-wrong-input-file-type": {
235
+ logLevel: "none",
236
+ addToApiReportFile: false
237
+ }
238
+ },
239
+ tsdocMessageReporting: {
240
+ default: {
241
+ logLevel: "warning",
242
+ addToApiReportFile: false
243
+ }
244
+ }
245
+ };
246
+ const extractorConfig = apiExtractor.ExtractorConfig.prepare({
247
+ configObject: _createApiExtractorConfig({
248
+ distPath,
249
+ exportPath,
250
+ filePath,
251
+ messages: messagesConfig,
252
+ projectPath,
253
+ sourcePath,
254
+ tsconfigPath
255
+ }),
256
+ configObjectFullPath: void 0,
257
+ tsdocConfigFile,
258
+ packageJsonFullPath: path__default["default"].resolve(projectPath, "package.json")
259
+ });
260
+ const messages = [];
261
+ const extractorResult = apiExtractor.Extractor.invoke(extractorConfig, {
262
+ localBuild: true,
263
+ showVerboseMessages: true,
264
+ messageCallback(message) {
265
+ messages.push(message);
266
+ message.handled = true;
267
+ }
268
+ });
269
+ const typesPath = path__default["default"].resolve(distPath, filePath);
270
+ const typesBuf = await fs__default["default"].readFile(typesPath);
271
+ const prettierConfig = await prettier__default["default"].resolveConfig(typesPath);
272
+ await mkdirp__default["default"](path__default["default"].dirname(typesPath));
273
+ await fs__default["default"].writeFile(
274
+ typesPath,
275
+ prettier__default["default"].format(typesBuf.toString(), {
276
+ ...prettierConfig,
277
+ filepath: typesPath
278
+ })
279
+ );
280
+ files.push({
281
+ type: "types",
282
+ path: typesPath
283
+ });
284
+ return { extractorResult, messages };
285
+ }
286
+
287
+ const rimraf = util.promisify(rimrafCallback__default["default"]);
288
+ async function _doExtract(ctx, task) {
289
+ var _a;
290
+ const { config, cwd, dist, files, ts } = ctx;
291
+ if (!ts.config || !ts.configPath)
292
+ return { type: "dts", messages: [] };
293
+ const sourcePath = task.sourcePath;
294
+ const exportPath = task.exportPath === "." ? "./index" : task.exportPath;
295
+ const distPath = path__default["default"].resolve(cwd, dist);
296
+ const filePath = path__default["default"].relative(distPath, path__default["default"].resolve(cwd, task.targetPath));
297
+ const tmpDirPath = path__default["default"].resolve(distPath, "__dts__");
298
+ const tmpDir = {
299
+ path: tmpDirPath,
300
+ removeCallback: () => rimraf(tmpDirPath)
301
+ };
302
+ const types = await _buildTypes({
303
+ cwd,
304
+ outDir: tmpDir.path,
305
+ sourcePath,
306
+ tsconfig: ts.config
307
+ });
308
+ const { messages } = await _extractTypes({
309
+ cwd,
310
+ exportPath,
311
+ files,
312
+ filePath,
313
+ projectPath: cwd,
314
+ rules: (_a = config == null ? void 0 : config.extract) == null ? void 0 : _a.rules,
315
+ sourcePath: types.path,
316
+ tsconfigPath: path__default["default"].resolve(cwd, ts.configPath),
317
+ distPath
318
+ });
319
+ await tmpDir.removeCallback();
320
+ if (messages.some((msg) => msg.logLevel === "error")) {
321
+ throw new _DtsError("encountered errors when extracting types", messages);
322
+ }
323
+ return { type: "dts", messages };
324
+ }
325
+
326
+ const _dtsTask = {
327
+ name: (_ctx, task) => [
328
+ `build type definitions`,
329
+ ` ${chalk__default["default"].blue(task.importId)}: ${task.sourcePath} -> ${task.targetPath}`
330
+ ].join("\n"),
331
+ exec: (ctx, task) => {
332
+ return new rxjs.Observable((observer) => {
333
+ _doExtract(ctx, task).then((result) => {
334
+ observer.next(result);
335
+ observer.complete();
336
+ }).catch((err) => {
337
+ observer.error(err);
338
+ });
339
+ });
340
+ },
341
+ complete: (ctx, _task, result) => {
342
+ _printExtractMessages(ctx, result.messages);
343
+ },
344
+ error: (ctx, _task, err) => {
345
+ const { logger } = ctx;
346
+ if (err instanceof _DtsError) {
347
+ _printExtractMessages(ctx, err.messages);
348
+ } else if (err instanceof Error) {
349
+ logger.error(err);
350
+ }
351
+ }
352
+ };
353
+
354
+ const _dtsWatchTask = {
355
+ name: (_ctx, task) => [
356
+ `build type definitions`,
357
+ ` ${chalk__default["default"].blue(task.importId)}: ${task.sourcePath} -> ${task.targetPath}`
358
+ ].join("\n"),
359
+ exec: (ctx, task) => {
360
+ return new rxjs.Observable((observer) => {
361
+ _doExtract(ctx, task).then((result) => {
362
+ observer.next(result);
363
+ observer.complete();
364
+ }).catch((err) => observer.error(err));
365
+ });
366
+ },
367
+ complete: (ctx, _task, result) => {
368
+ const { logger } = ctx;
369
+ _printExtractMessages(ctx, result.messages);
370
+ logger.warn("watching typescript definitions is currently not supported");
371
+ logger.log();
372
+ },
373
+ error: (ctx, _task, err) => {
374
+ const { logger } = ctx;
375
+ if (err instanceof _DtsError) {
376
+ _printExtractMessages(ctx, err.messages);
377
+ } else if (err instanceof Error) {
378
+ logger.error(err);
379
+ }
380
+ }
381
+ };
382
+
383
+ function _resolveRollupConfig(ctx, buildTask) {
384
+ var _a;
385
+ const { format, runtime, target } = buildTask;
386
+ const { config, cwd, external, dist: outDir, pkg, ts } = ctx;
387
+ const outputExt = format === "commonjs" ? ".cjs" : pkg.type === "module" ? ".mjs" : ".js";
388
+ const pathAliases = Object.fromEntries(
389
+ Object.entries(((_a = ts.config) == null ? void 0 : _a.options.paths) || {}).map(([key, val]) => {
390
+ var _a2;
391
+ return [key, path__default["default"].resolve(cwd, ((_a2 = ts.config) == null ? void 0 : _a2.options.baseUrl) || ".", val[0])];
392
+ })
393
+ );
394
+ const entries = buildTask.entries.map((entry) => {
395
+ return {
396
+ ...entry,
397
+ name: path__default["default"].relative(outDir, entry.output).replace(/\.[^/.]+$/, "")
398
+ };
399
+ }, {});
400
+ return {
401
+ inputOptions: {
402
+ context: cwd,
403
+ external: (id) => {
404
+ const idParts = id.split("/");
405
+ const name = idParts[0].startsWith("@") ? `${idParts[0]}/${idParts[1]}` : idParts[0];
406
+ if (name && external.includes(name)) {
407
+ return true;
408
+ }
409
+ return false;
410
+ },
411
+ input: entries.reduce((acc, entry) => {
412
+ return { ...acc, [entry.name]: entry.source };
413
+ }, {}),
414
+ onwarn(warning, rollupWarn) {
415
+ if (!warning.code || !["CIRCULAR_DEPENDENCY"].includes(warning.code)) {
416
+ rollupWarn(warning);
417
+ }
418
+ },
419
+ plugins: [
420
+ replace__default["default"]({
421
+ preventAssignment: true,
422
+ values: {
423
+ ...pkg.name === "@sanity/pkg-utils" ? {} : {
424
+ "process.env.PKG_FILE_PATH": (arg) => {
425
+ const sourcePath = "./" + path__default["default"].relative(cwd, arg);
426
+ const entry = entries.find((e) => e.source === sourcePath);
427
+ if (!entry) {
428
+ throw new Error(`could not find source entry: ${sourcePath}`);
429
+ }
430
+ return JSON.stringify(
431
+ path__default["default"].relative(cwd, path__default["default"].resolve(outDir, entry.name + outputExt))
432
+ );
433
+ },
434
+ "process.env.PKG_FORMAT": JSON.stringify(format),
435
+ "process.env.PKG_RUNTIME": JSON.stringify(runtime),
436
+ "process.env.PKG_VERSION": JSON.stringify(process.env.PKG_VERSION || pkg.version)
437
+ }
438
+ }
439
+ }),
440
+ alias__default["default"]({
441
+ entries: { ...pathAliases }
442
+ }),
443
+ pluginNodeResolve.nodeResolve({
444
+ browser: runtime === "browser",
445
+ extensions: [".cjs", ".mjs", ".js", ".jsx", ".json", ".node"],
446
+ preferBuiltins: true
447
+ }),
448
+ commonjs__default["default"]({
449
+ esmExternals: false,
450
+ extensions: [".js"]
451
+ }),
452
+ json__default["default"](),
453
+ esbuild__default["default"]({
454
+ minify: (config == null ? void 0 : config.minify) ?? true,
455
+ jsx: "transform",
456
+ jsxFactory: "React.createElement",
457
+ jsxFragment: "React.Fragment",
458
+ target,
459
+ tsconfig: ctx.ts.configPath || "tsconfig.json"
460
+ })
461
+ ],
462
+ treeshake: {
463
+ propertyReadSideEffects: false
464
+ }
465
+ },
466
+ outputOptions: {
467
+ chunkFileNames: () => `_[name]-[hash]${outputExt}`,
468
+ dir: outDir,
469
+ entryFileNames: () => `[name]${outputExt}`,
470
+ format,
471
+ exports: "auto",
472
+ sourcemap: (config == null ? void 0 : config.sourcemap) ?? true
473
+ }
474
+ };
475
+ }
476
+
477
+ const _rollupTask = {
478
+ name: (ctx, task) => `build javascript files (target ${task.target.join(" + ")}, format ${task.format})
479
+ ${task.entries.map((e) => `${chalk__default["default"].blue(path__default["default"].join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`).join("\n ")}`,
480
+ exec: (ctx, task) => {
481
+ return new rxjs.Observable((observer) => {
482
+ _execPromise(ctx, task).then((result) => {
483
+ observer.next(result);
484
+ observer.complete();
485
+ }).catch((err) => observer.error(err));
486
+ });
487
+ },
488
+ complete: () => {
489
+ },
490
+ error: (_ctx, _task, err) => {
491
+ if (err instanceof Error) {
492
+ console.log(err);
493
+ }
494
+ }
495
+ };
496
+ async function _execPromise(ctx, task) {
497
+ const { files, dist: outDir } = ctx;
498
+ const { inputOptions, outputOptions } = _resolveRollupConfig(ctx, task);
499
+ const bundle = await rollup.rollup(inputOptions);
500
+ const { output } = await bundle.generate(outputOptions);
501
+ for (const chunkOrAsset of output) {
502
+ if (chunkOrAsset.type === "asset") {
503
+ files.push({
504
+ type: "asset",
505
+ path: path__default["default"].resolve(outDir, chunkOrAsset.fileName)
506
+ });
507
+ } else {
508
+ files.push({
509
+ type: "chunk",
510
+ path: path__default["default"].resolve(outDir, chunkOrAsset.fileName)
511
+ });
512
+ }
513
+ }
514
+ await bundle.write(outputOptions);
515
+ await bundle.close();
516
+ }
517
+
518
+ const _rollupWatchTask = {
519
+ name: (ctx, task) => `build javascript files (target ${task.target.join(" + ")}, format ${task.format})
520
+ ${task.entries.map((e) => `${chalk__default["default"].blue(path__default["default"].join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`).join("\n ")}`,
521
+ exec: (ctx, task) => {
522
+ const { inputOptions, outputOptions } = _resolveRollupConfig(ctx, task);
523
+ return new rxjs.Observable((observer) => {
524
+ const watchOptions = {
525
+ ...inputOptions,
526
+ output: outputOptions
527
+ };
528
+ const watcher = rollup.watch(watchOptions);
529
+ watcher.on("event", (event) => {
530
+ observer.next(event);
531
+ });
532
+ return () => {
533
+ watcher.close();
534
+ };
535
+ });
536
+ },
537
+ complete: (ctx, task, event) => {
538
+ const { logger } = ctx;
539
+ if (event.code === "BUNDLE_END") {
540
+ logger.success(
541
+ `build javascript files (target ${task.target.join(" + ")}, format ${task.format})
542
+ ${task.entries.map((e) => `${chalk__default["default"].blue(path__default["default"].join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`).join("\n ")}`
543
+ );
544
+ logger.log("");
545
+ return;
546
+ }
547
+ if (event.code === "BUNDLE_START") {
548
+ return;
549
+ }
550
+ if (event.code === "END") {
551
+ return;
552
+ }
553
+ if (event.code === "ERROR") {
554
+ logger.error(event.code, event);
555
+ return;
556
+ }
557
+ if (event.code === "START") {
558
+ return;
559
+ }
560
+ },
561
+ error: (ctx, _task, err) => {
562
+ const { logger } = ctx;
563
+ if (err instanceof Error) {
564
+ logger.log(err);
565
+ }
566
+ }
567
+ };
568
+
569
+ const _buildTaskHandlers = {
570
+ "build:dts": _dtsTask,
571
+ "build:js": _rollupTask
572
+ };
573
+ const _watchTaskHandlers = {
574
+ "watch:dts": _dtsWatchTask,
575
+ "watch:js": _rollupWatchTask
576
+ };
577
+
578
+ exports._buildTaskHandlers = _buildTaskHandlers;
579
+ exports._dtsTask = _dtsTask;
580
+ exports._dtsWatchTask = _dtsWatchTask;
581
+ exports._rollupTask = _rollupTask;
582
+ exports._rollupWatchTask = _rollupWatchTask;
583
+ exports._watchTaskHandlers = _watchTaskHandlers;
584
+ //# sourceMappingURL=_index-5765fada.cjs.map