@prisma/migrate 5.22.0-integration-remove-custom-yarn-logic.1 → 5.22.0-integration-engines-5-22-0-8-integration-itx-refactor-9bb49c906d23e0946061d551777bdac14ae4d17d.1

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.
@@ -0,0 +1,424 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var chunk_EFPE3Q7J_exports = {};
30
+ __export(chunk_EFPE3Q7J_exports, {
31
+ executeSeedCommand: () => executeSeedCommand,
32
+ getSeedCommandFromPackageJson: () => getSeedCommandFromPackageJson,
33
+ init_seed: () => init_seed,
34
+ legacyTsNodeScriptWarning: () => legacyTsNodeScriptWarning,
35
+ verifySeedConfigAndReturnMessage: () => verifySeedConfigAndReturnMessage
36
+ });
37
+ module.exports = __toCommonJS(chunk_EFPE3Q7J_exports);
38
+ var import_chunk_WIZM7TFT = require("./chunk-WIZM7TFT.js");
39
+ var import_chunk_6TE2RIPN = require("./chunk-6TE2RIPN.js");
40
+ var import_chunk_WWAWV7DQ = require("./chunk-WWAWV7DQ.js");
41
+ var import_debug = __toESM(require("@prisma/debug"));
42
+ var import_internals = require("@prisma/internals");
43
+ var import_fs = __toESM(require("fs"));
44
+ var import_path = __toESM(require("path"));
45
+ var require_has_yarn = (0, import_chunk_WWAWV7DQ.__commonJS)({
46
+ "../../node_modules/.pnpm/has-yarn@2.1.0/node_modules/has-yarn/index.js"(exports, module2) {
47
+ "use strict";
48
+ var path2 = (0, import_chunk_WWAWV7DQ.__require)("path");
49
+ var fs2 = (0, import_chunk_WWAWV7DQ.__require)("fs");
50
+ var hasYarn2 = (cwd = process.cwd()) => fs2.existsSync(path2.resolve(cwd, "yarn.lock"));
51
+ module2.exports = hasYarn2;
52
+ module2.exports.default = hasYarn2;
53
+ }
54
+ });
55
+ var require_path_exists = (0, import_chunk_WWAWV7DQ.__commonJS)({
56
+ "../../node_modules/.pnpm/path-exists@3.0.0/node_modules/path-exists/index.js"(exports, module2) {
57
+ "use strict";
58
+ var fs2 = (0, import_chunk_WWAWV7DQ.__require)("fs");
59
+ module2.exports = (fp) => new Promise((resolve) => {
60
+ fs2.access(fp, (err) => {
61
+ resolve(!err);
62
+ });
63
+ });
64
+ module2.exports.sync = (fp) => {
65
+ try {
66
+ fs2.accessSync(fp);
67
+ return true;
68
+ } catch (err) {
69
+ return false;
70
+ }
71
+ };
72
+ }
73
+ });
74
+ var require_p_try = (0, import_chunk_WWAWV7DQ.__commonJS)({
75
+ "../../node_modules/.pnpm/p-try@2.2.0/node_modules/p-try/index.js"(exports, module2) {
76
+ "use strict";
77
+ var pTry = (fn, ...arguments_) => new Promise((resolve) => {
78
+ resolve(fn(...arguments_));
79
+ });
80
+ module2.exports = pTry;
81
+ module2.exports.default = pTry;
82
+ }
83
+ });
84
+ var require_p_limit = (0, import_chunk_WWAWV7DQ.__commonJS)({
85
+ "../../node_modules/.pnpm/p-limit@2.3.0/node_modules/p-limit/index.js"(exports, module2) {
86
+ "use strict";
87
+ var pTry = require_p_try();
88
+ var pLimit = (concurrency) => {
89
+ if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {
90
+ return Promise.reject(new TypeError("Expected `concurrency` to be a number from 1 and up"));
91
+ }
92
+ const queue = [];
93
+ let activeCount = 0;
94
+ const next = () => {
95
+ activeCount--;
96
+ if (queue.length > 0) {
97
+ queue.shift()();
98
+ }
99
+ };
100
+ const run = (fn, resolve, ...args) => {
101
+ activeCount++;
102
+ const result = pTry(fn, ...args);
103
+ resolve(result);
104
+ result.then(next, next);
105
+ };
106
+ const enqueue = (fn, resolve, ...args) => {
107
+ if (activeCount < concurrency) {
108
+ run(fn, resolve, ...args);
109
+ } else {
110
+ queue.push(run.bind(null, fn, resolve, ...args));
111
+ }
112
+ };
113
+ const generator = (fn, ...args) => new Promise((resolve) => enqueue(fn, resolve, ...args));
114
+ Object.defineProperties(generator, {
115
+ activeCount: {
116
+ get: () => activeCount
117
+ },
118
+ pendingCount: {
119
+ get: () => queue.length
120
+ },
121
+ clearQueue: {
122
+ value: () => {
123
+ queue.length = 0;
124
+ }
125
+ }
126
+ });
127
+ return generator;
128
+ };
129
+ module2.exports = pLimit;
130
+ module2.exports.default = pLimit;
131
+ }
132
+ });
133
+ var require_p_locate = (0, import_chunk_WWAWV7DQ.__commonJS)({
134
+ "../../node_modules/.pnpm/p-locate@3.0.0/node_modules/p-locate/index.js"(exports, module2) {
135
+ "use strict";
136
+ var pLimit = require_p_limit();
137
+ var EndError = class extends Error {
138
+ constructor(value) {
139
+ super();
140
+ this.value = value;
141
+ }
142
+ };
143
+ var testElement = (el, tester) => Promise.resolve(el).then(tester);
144
+ var finder = (el) => Promise.all(el).then((val) => val[1] === true && Promise.reject(new EndError(val[0])));
145
+ module2.exports = (iterable, tester, opts) => {
146
+ opts = Object.assign({
147
+ concurrency: Infinity,
148
+ preserveOrder: true
149
+ }, opts);
150
+ const limit = pLimit(opts.concurrency);
151
+ const items = [...iterable].map((el) => [el, limit(testElement, el, tester)]);
152
+ const checkLimit = pLimit(opts.preserveOrder ? 1 : Infinity);
153
+ return Promise.all(items.map((el) => checkLimit(finder, el))).then(() => {
154
+ }).catch((err) => err instanceof EndError ? err.value : Promise.reject(err));
155
+ };
156
+ }
157
+ });
158
+ var require_locate_path = (0, import_chunk_WWAWV7DQ.__commonJS)({
159
+ "../../node_modules/.pnpm/locate-path@3.0.0/node_modules/locate-path/index.js"(exports, module2) {
160
+ "use strict";
161
+ var path2 = (0, import_chunk_WWAWV7DQ.__require)("path");
162
+ var pathExists = require_path_exists();
163
+ var pLocate = require_p_locate();
164
+ module2.exports = (iterable, options) => {
165
+ options = Object.assign({
166
+ cwd: process.cwd()
167
+ }, options);
168
+ return pLocate(iterable, (el) => pathExists(path2.resolve(options.cwd, el)), options);
169
+ };
170
+ module2.exports.sync = (iterable, options) => {
171
+ options = Object.assign({
172
+ cwd: process.cwd()
173
+ }, options);
174
+ for (const el of iterable) {
175
+ if (pathExists.sync(path2.resolve(options.cwd, el))) {
176
+ return el;
177
+ }
178
+ }
179
+ };
180
+ }
181
+ });
182
+ var require_find_up = (0, import_chunk_WWAWV7DQ.__commonJS)({
183
+ "../../node_modules/.pnpm/find-up@3.0.0/node_modules/find-up/index.js"(exports, module2) {
184
+ "use strict";
185
+ var path2 = (0, import_chunk_WWAWV7DQ.__require)("path");
186
+ var locatePath = require_locate_path();
187
+ module2.exports = (filename, opts = {}) => {
188
+ const startDir = path2.resolve(opts.cwd || "");
189
+ const { root } = path2.parse(startDir);
190
+ const filenames = [].concat(filename);
191
+ return new Promise((resolve) => {
192
+ (function find(dir) {
193
+ locatePath(filenames, { cwd: dir }).then((file) => {
194
+ if (file) {
195
+ resolve(path2.join(dir, file));
196
+ } else if (dir === root) {
197
+ resolve(null);
198
+ } else {
199
+ find(path2.dirname(dir));
200
+ }
201
+ });
202
+ })(startDir);
203
+ });
204
+ };
205
+ module2.exports.sync = (filename, opts = {}) => {
206
+ let dir = path2.resolve(opts.cwd || "");
207
+ const { root } = path2.parse(dir);
208
+ const filenames = [].concat(filename);
209
+ while (true) {
210
+ const file = locatePath.sync(filenames, { cwd: dir });
211
+ if (file) {
212
+ return path2.join(dir, file);
213
+ }
214
+ if (dir === root) {
215
+ return null;
216
+ }
217
+ dir = path2.dirname(dir);
218
+ }
219
+ };
220
+ }
221
+ });
222
+ var require_pkg_up = (0, import_chunk_WWAWV7DQ.__commonJS)({
223
+ "../../node_modules/.pnpm/pkg-up@3.1.0/node_modules/pkg-up/index.js"(exports, module2) {
224
+ "use strict";
225
+ var findUp = require_find_up();
226
+ module2.exports = async ({ cwd } = {}) => findUp("package.json", { cwd });
227
+ module2.exports.sync = ({ cwd } = {}) => findUp.sync("package.json", { cwd });
228
+ }
229
+ });
230
+ async function verifySeedConfigAndReturnMessage(schemaPath) {
231
+ const cwd = process.cwd();
232
+ const detected = detectSeedFiles(cwd, schemaPath);
233
+ const prismaConfig = await (0, import_internals.getPrismaConfigFromPackageJson)(cwd);
234
+ if (prismaConfig && prismaConfig.data?.seed) {
235
+ return void 0;
236
+ }
237
+ const packageManager = (0, import_has_yarn.default)() ? "yarn add -D" : "npm i -D";
238
+ let message = `${(0, import_chunk_6TE2RIPN.red)(
239
+ 'To configure seeding in your project you need to add a "prisma.seed" property in your package.json with the command to execute it:'
240
+ )}
241
+
242
+ 1. Open the package.json of your project
243
+ `;
244
+ if (detected.numberOfSeedFiles) {
245
+ await legacyTsNodeScriptWarning();
246
+ message += `2. Add the following example to it:`;
247
+ if (detected.js) {
248
+ message += `
249
+ \`\`\`
250
+ "prisma": {
251
+ "seed": "node ${detected.js}"
252
+ }
253
+ \`\`\`
254
+ `;
255
+ } else if (detected.ts) {
256
+ message += `
257
+ \`\`\`
258
+ "prisma": {
259
+ "seed": "ts-node ${detected.ts}"
260
+ }
261
+ \`\`\`
262
+ If you are using ESM (ECMAScript modules):
263
+ \`\`\`
264
+ "prisma": {
265
+ "seed": "node --loader ts-node/esm ${detected.ts}"
266
+ }
267
+ \`\`\`
268
+
269
+ 3. Install the required dependencies by running:
270
+ ${(0, import_chunk_6TE2RIPN.green)(`${packageManager} ts-node typescript @types/node`)}
271
+ `;
272
+ } else if (detected.sh) {
273
+ message += `
274
+ \`\`\`
275
+ "prisma": {
276
+ "seed": "${detected.sh}"
277
+ }
278
+ \`\`\`
279
+ And run \`chmod +x ${detected.sh}\` to make it executable.`;
280
+ }
281
+ } else {
282
+ message += `2. Add one of the following examples to your package.json:
283
+
284
+ ${(0, import_chunk_6TE2RIPN.bold)("TypeScript:")}
285
+ \`\`\`
286
+ "prisma": {
287
+ "seed": "ts-node ./prisma/seed.ts"
288
+ }
289
+ \`\`\`
290
+ If you are using ESM (ECMAScript modules):
291
+ \`\`\`
292
+ "prisma": {
293
+ "seed": "node --loader ts-node/esm ./prisma/seed.ts"
294
+ }
295
+ \`\`\`
296
+
297
+ And install the required dependencies by running:
298
+ ${packageManager} ts-node typescript @types/node
299
+
300
+ ${(0, import_chunk_6TE2RIPN.bold)("JavaScript:")}
301
+ \`\`\`
302
+ "prisma": {
303
+ "seed": "node ./prisma/seed.js"
304
+ }
305
+ \`\`\`
306
+
307
+ ${(0, import_chunk_6TE2RIPN.bold)("Bash:")}
308
+ \`\`\`
309
+ "prisma": {
310
+ "seed": "./prisma/seed.sh"
311
+ }
312
+ \`\`\`
313
+ And run \`chmod +x prisma/seed.sh\` to make it executable.`;
314
+ }
315
+ message += `
316
+ More information in our documentation:
317
+ ${(0, import_internals.link)("https://pris.ly/d/seeding")}`;
318
+ return message;
319
+ }
320
+ async function getSeedCommandFromPackageJson(cwd) {
321
+ const prismaConfig = await (0, import_internals.getPrismaConfigFromPackageJson)(cwd);
322
+ debug({ prismaConfig });
323
+ if (!prismaConfig || !prismaConfig.data?.seed) {
324
+ return null;
325
+ }
326
+ const seedCommandFromPkgJson = prismaConfig.data.seed;
327
+ if (typeof seedCommandFromPkgJson !== "string") {
328
+ throw new Error(
329
+ `Provided seed command \`${seedCommandFromPkgJson}\` from \`${import_path.default.relative(
330
+ cwd,
331
+ prismaConfig.packagePath
332
+ )}\` must be of type string`
333
+ );
334
+ }
335
+ if (!seedCommandFromPkgJson) {
336
+ throw new Error(
337
+ `Provided seed command \`${seedCommandFromPkgJson}\` from \`${import_path.default.relative(
338
+ cwd,
339
+ prismaConfig.packagePath
340
+ )}\` cannot be empty`
341
+ );
342
+ }
343
+ return seedCommandFromPkgJson;
344
+ }
345
+ async function executeSeedCommand({
346
+ commandFromConfig,
347
+ extraArgs
348
+ }) {
349
+ const command = extraArgs ? `${commandFromConfig} ${extraArgs}` : commandFromConfig;
350
+ process.stdout.write(`Running seed command \`${(0, import_chunk_6TE2RIPN.italic)(command)}\` ...
351
+ `);
352
+ try {
353
+ await import_execa.default.command(command, {
354
+ stdout: "inherit",
355
+ stderr: "inherit"
356
+ });
357
+ } catch (_e) {
358
+ const e = _e;
359
+ debug({ e });
360
+ console.error((0, import_chunk_6TE2RIPN.bold)((0, import_chunk_6TE2RIPN.red)(`
361
+ An error occurred while running the seed command:`)));
362
+ console.error((0, import_chunk_6TE2RIPN.red)(e.stderr || String(e)));
363
+ return false;
364
+ }
365
+ return true;
366
+ }
367
+ function detectSeedFiles(cwd, schemaPath) {
368
+ let parentDirectory = import_path.default.relative(cwd, import_path.default.join(cwd, "prisma"));
369
+ if (schemaPath) {
370
+ parentDirectory = import_path.default.relative(cwd, import_path.default.dirname(schemaPath));
371
+ }
372
+ const seedPath = import_path.default.join(parentDirectory, "seed.");
373
+ const detected = {
374
+ seedPath,
375
+ numberOfSeedFiles: 0,
376
+ js: "",
377
+ ts: "",
378
+ sh: ""
379
+ };
380
+ const extensions = ["js", "ts", "sh"];
381
+ for (const extension of extensions) {
382
+ const fullPath = seedPath + extension;
383
+ if (!import_fs.default.existsSync(fullPath)) {
384
+ continue;
385
+ }
386
+ detected[extension] = fullPath;
387
+ detected.numberOfSeedFiles++;
388
+ }
389
+ debug({ detected });
390
+ return detected;
391
+ }
392
+ async function legacyTsNodeScriptWarning() {
393
+ const scripts = await getScriptsFromPackageJson();
394
+ if (scripts?.["ts-node"]) {
395
+ import_internals.logger.warn(
396
+ (0, import_chunk_6TE2RIPN.yellow)(`The "ts-node" script in the package.json is not used anymore since version 3.0 and can now be removed.`)
397
+ );
398
+ }
399
+ return void 0;
400
+ }
401
+ async function getScriptsFromPackageJson(cwd = process.cwd()) {
402
+ try {
403
+ const pkgJsonPath = await (0, import_pkg_up.default)({ cwd });
404
+ if (!pkgJsonPath) {
405
+ return null;
406
+ }
407
+ const pkgJsonString = await import_fs.default.promises.readFile(pkgJsonPath, "utf-8");
408
+ const pkgJson = JSON.parse(pkgJsonString);
409
+ const { "ts-node": tsnode } = pkgJson.scripts;
410
+ return { "ts-node": tsnode };
411
+ } catch {
412
+ return null;
413
+ }
414
+ }
415
+ var import_execa, import_has_yarn, import_pkg_up, debug;
416
+ var init_seed = (0, import_chunk_WWAWV7DQ.__esm)({
417
+ "src/utils/seed.ts"() {
418
+ import_execa = (0, import_chunk_WWAWV7DQ.__toESM)((0, import_chunk_WIZM7TFT.require_execa)());
419
+ import_has_yarn = (0, import_chunk_WWAWV7DQ.__toESM)(require_has_yarn());
420
+ (0, import_chunk_6TE2RIPN.init_colors)();
421
+ import_pkg_up = (0, import_chunk_WWAWV7DQ.__toESM)(require_pkg_up());
422
+ debug = (0, import_debug.default)("prisma:migrate:seed");
423
+ }
424
+ });
@@ -26,15 +26,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_O6RO4YUZ_exports = {};
30
- __export(chunk_O6RO4YUZ_exports, {
29
+ var chunk_LLGEQ76N_exports = {};
30
+ __export(chunk_LLGEQ76N_exports, {
31
31
  MigrateDev: () => MigrateDev,
32
32
  init_MigrateDev: () => init_MigrateDev
33
33
  });
34
- module.exports = __toCommonJS(chunk_O6RO4YUZ_exports);
34
+ module.exports = __toCommonJS(chunk_LLGEQ76N_exports);
35
35
  var import_chunk_IFCV5MY4 = require("./chunk-IFCV5MY4.js");
36
36
  var import_chunk_SGCF5OHF = require("./chunk-SGCF5OHF.js");
37
- var import_chunk_YKUZUAXA = require("./chunk-YKUZUAXA.js");
37
+ var import_chunk_EFPE3Q7J = require("./chunk-EFPE3Q7J.js");
38
38
  var import_chunk_WOOPRG54 = require("./chunk-WOOPRG54.js");
39
39
  var import_chunk_6QFE3AWR = require("./chunk-6QFE3AWR.js");
40
40
  var import_chunk_MWEO3VUS = require("./chunk-MWEO3VUS.js");
@@ -60,7 +60,7 @@ var init_MigrateDev = (0, import_chunk_WWAWV7DQ.__esm)({
60
60
  (0, import_chunk_WOOPRG54.init_printFiles)();
61
61
  (0, import_chunk_6QFE3AWR.init_printMigrationId)();
62
62
  (0, import_chunk_IFCV5MY4.init_promptForMigrationName)();
63
- (0, import_chunk_YKUZUAXA.init_seed)();
63
+ (0, import_chunk_EFPE3Q7J.init_seed)();
64
64
  debug = (0, import_debug.default)("prisma:migrate:dev");
65
65
  _MigrateDev = class _MigrateDev2 {
66
66
  static new() {
@@ -268,10 +268,10 @@ ${(0, import_chunk_6TE2RIPN.green)("Your database is now in sync with your schem
268
268
  }
269
269
  if ((wasDbCreated || devDiagnostic.action.tag === "reset") && !process.env.PRISMA_MIGRATE_SKIP_SEED && !args["--skip-seed"]) {
270
270
  try {
271
- const seedCommandFromPkgJson = await (0, import_chunk_YKUZUAXA.getSeedCommandFromPackageJson)(process.cwd());
271
+ const seedCommandFromPkgJson = await (0, import_chunk_EFPE3Q7J.getSeedCommandFromPackageJson)(process.cwd());
272
272
  if (seedCommandFromPkgJson) {
273
273
  process.stdout.write("\n");
274
- const successfulSeeding = await (0, import_chunk_YKUZUAXA.executeSeedCommand)({ commandFromConfig: seedCommandFromPkgJson });
274
+ const successfulSeeding = await (0, import_chunk_EFPE3Q7J.executeSeedCommand)({ commandFromConfig: seedCommandFromPkgJson });
275
275
  if (successfulSeeding) {
276
276
  process.stdout.write(`
277
277
  ${process.platform === "win32" ? "" : "\u{1F331} "}The seed command has been executed.
@@ -281,7 +281,7 @@ ${process.platform === "win32" ? "" : "\u{1F331} "}The seed command has been ex
281
281
  }
282
282
  } else {
283
283
  const { schemaPath: schemaPath2 } = await (0, import_internals.getSchemaWithPath)(args["--schema"]);
284
- await (0, import_chunk_YKUZUAXA.verifySeedConfigAndReturnMessage)(schemaPath2);
284
+ await (0, import_chunk_EFPE3Q7J.verifySeedConfigAndReturnMessage)(schemaPath2);
285
285
  }
286
286
  } catch (e) {
287
287
  console.error(e);