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

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.
package/dist/bin.js CHANGED
@@ -34,7 +34,7 @@ __export(bin_exports, {
34
34
  module.exports = __toCommonJS(bin_exports);
35
35
  var import_chunk_JZ6FKTWG = require("./chunk-JZ6FKTWG.js");
36
36
  var import_chunk_GJN3CSXW = require("./chunk-GJN3CSXW.js");
37
- var import_chunk_75AMGQ4R = require("./chunk-75AMGQ4R.js");
37
+ var import_chunk_XVL5RF2T = require("./chunk-XVL5RF2T.js");
38
38
  var import_chunk_BAVMZZAR = require("./chunk-BAVMZZAR.js");
39
39
  var import_chunk_SV5GANSI = require("./chunk-SV5GANSI.js");
40
40
  var import_chunk_ZBOJAYON = require("./chunk-ZBOJAYON.js");
@@ -50,20 +50,21 @@ var import_chunk_QBK5XTJE = require("./chunk-QBK5XTJE.js");
50
50
  var import_chunk_INC2OACE = require("./chunk-INC2OACE.js");
51
51
  var import_chunk_GN5BY5N2 = require("./chunk-GN5BY5N2.js");
52
52
  var import_chunk_76XWADEV = require("./chunk-76XWADEV.js");
53
- var import_chunk_E2XKFV2C = require("./chunk-E2XKFV2C.js");
53
+ var import_chunk_ZLGLVUFD = require("./chunk-ZLGLVUFD.js");
54
54
  var import_chunk_CK5VLKFM = require("./chunk-CK5VLKFM.js");
55
55
  var import_chunk_UJWMQPUH = require("./chunk-UJWMQPUH.js");
56
- var import_chunk_O6RO4YUZ = require("./chunk-O6RO4YUZ.js");
56
+ var import_chunk_LLGEQ76N = require("./chunk-LLGEQ76N.js");
57
57
  var import_chunk_IFCV5MY4 = require("./chunk-IFCV5MY4.js");
58
58
  var import_chunk_SGCF5OHF = require("./chunk-SGCF5OHF.js");
59
- var import_chunk_YKUZUAXA = require("./chunk-YKUZUAXA.js");
59
+ var import_chunk_EFPE3Q7J = require("./chunk-EFPE3Q7J.js");
60
60
  var import_chunk_WOOPRG54 = require("./chunk-WOOPRG54.js");
61
61
  var import_chunk_6QFE3AWR = require("./chunk-6QFE3AWR.js");
62
62
  var import_chunk_LKTTJWFT = require("./chunk-LKTTJWFT.js");
63
- var import_chunk_4D5LNZLQ = require("./chunk-4D5LNZLQ.js");
63
+ var import_chunk_YA2IHLWJ = require("./chunk-YA2IHLWJ.js");
64
64
  var import_chunk_VWV2NY26 = require("./chunk-VWV2NY26.js");
65
65
  var import_chunk_XRTNIFND = require("./chunk-XRTNIFND.js");
66
66
  var import_chunk_TKAGMA5K = require("./chunk-TKAGMA5K.js");
67
+ var import_chunk_WIZM7TFT = require("./chunk-WIZM7TFT.js");
67
68
  var import_chunk_MWEO3VUS = require("./chunk-MWEO3VUS.js");
68
69
  var import_chunk_6C7ESGWY = require("./chunk-6C7ESGWY.js");
69
70
  var import_chunk_J46BJQHT = require("./chunk-J46BJQHT.js");
@@ -89,12 +90,12 @@ var require_bin = (0, import_chunk_WWAWV7DQ.__commonJS)({
89
90
  (0, import_chunk_ZBOJAYON.init_DbExecute)();
90
91
  (0, import_chunk_EXUBPCXZ.init_DbPull)();
91
92
  (0, import_chunk_76XWADEV.init_DbPush)();
92
- (0, import_chunk_E2XKFV2C.init_DbSeed)();
93
+ (0, import_chunk_ZLGLVUFD.init_DbSeed)();
93
94
  (0, import_chunk_CK5VLKFM.init_MigrateCommand)();
94
95
  (0, import_chunk_UJWMQPUH.init_MigrateDeploy)();
95
- (0, import_chunk_O6RO4YUZ.init_MigrateDev)();
96
- (0, import_chunk_4D5LNZLQ.init_MigrateDiff)();
97
- (0, import_chunk_75AMGQ4R.init_MigrateReset)();
96
+ (0, import_chunk_LLGEQ76N.init_MigrateDev)();
97
+ (0, import_chunk_YA2IHLWJ.init_MigrateDiff)();
98
+ (0, import_chunk_XVL5RF2T.init_MigrateReset)();
98
99
  (0, import_chunk_BAVMZZAR.init_MigrateResolve)();
99
100
  (0, import_chunk_SV5GANSI.init_MigrateStatus)();
100
101
  (0, import_chunk_GJN3CSXW.init_getDatabaseVersionSafe)();
@@ -112,19 +113,19 @@ var require_bin = (0, import_chunk_WWAWV7DQ.__commonJS)({
112
113
  async function main() {
113
114
  const cli = import_chunk_JZ6FKTWG.CLI.new({
114
115
  migrate: import_chunk_CK5VLKFM.MigrateCommand.new({
115
- dev: import_chunk_O6RO4YUZ.MigrateDev.new(),
116
+ dev: import_chunk_LLGEQ76N.MigrateDev.new(),
116
117
  status: import_chunk_SV5GANSI.MigrateStatus.new(),
117
118
  resolve: import_chunk_BAVMZZAR.MigrateResolve.new(),
118
- reset: import_chunk_75AMGQ4R.MigrateReset.new(),
119
+ reset: import_chunk_XVL5RF2T.MigrateReset.new(),
119
120
  deploy: import_chunk_UJWMQPUH.MigrateDeploy.new(),
120
- diff: import_chunk_4D5LNZLQ.MigrateDiff.new()
121
+ diff: import_chunk_YA2IHLWJ.MigrateDiff.new()
121
122
  }),
122
123
  db: import_chunk_NJUAN6V2.DbCommand.new({
123
124
  execute: import_chunk_ZBOJAYON.DbExecute.new(),
124
125
  pull: import_chunk_EXUBPCXZ.DbPull.new(),
125
126
  push: import_chunk_76XWADEV.DbPush.new(),
126
127
  // drop: DbDrop.new(),
127
- seed: import_chunk_E2XKFV2C.DbSeed.new()
128
+ seed: import_chunk_ZLGLVUFD.DbSeed.new()
128
129
  })
129
130
  });
130
131
  const result = await cli.parse(commandArray);
@@ -26,15 +26,16 @@ 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_F5EZH7R5_exports = {};
30
- __export(chunk_F5EZH7R5_exports, {
29
+ var chunk_DPSX7IAE_exports = {};
30
+ __export(chunk_DPSX7IAE_exports, {
31
31
  MigrateDiff: () => MigrateDiff,
32
32
  init_MigrateDiff: () => init_MigrateDiff
33
33
  });
34
- module.exports = __toCommonJS(chunk_F5EZH7R5_exports);
34
+ module.exports = __toCommonJS(chunk_DPSX7IAE_exports);
35
35
  var import_chunk_VWV2NY26 = require("./chunk-VWV2NY26.js");
36
36
  var import_chunk_XRTNIFND = require("./chunk-XRTNIFND.js");
37
37
  var import_chunk_TKAGMA5K = require("./chunk-TKAGMA5K.js");
38
+ var import_chunk_WIZM7TFT = require("./chunk-WIZM7TFT.js");
38
39
  var import_chunk_MWEO3VUS = require("./chunk-MWEO3VUS.js");
39
40
  var import_chunk_LVFPGUOH = require("./chunk-LVFPGUOH.js");
40
41
  var import_chunk_6TE2RIPN = require("./chunk-6TE2RIPN.js");
@@ -10838,7 +10839,7 @@ var require_package = (0, import_chunk_WWAWV7DQ.__commonJS)({
10838
10839
  "@prisma/fetch-engine": "workspace:*",
10839
10840
  "@prisma/generator-helper": "workspace:*",
10840
10841
  "@prisma/get-platform": "workspace:*",
10841
- "@prisma/prisma-schema-wasm": "5.22.0-7.155af6224b4a7a7fe47f2ce6202a785fbc5e1750",
10842
+ "@prisma/prisma-schema-wasm": "5.22.0-8.integration-itx-refactor-9bb49c906d23e0946061d551777bdac14ae4d17d",
10842
10843
  "@prisma/schema-files-loader": "workspace:*",
10843
10844
  arg: "5.0.2",
10844
10845
  prompts: "2.4.2"
@@ -11207,9 +11208,14 @@ async function getSchemaWithPathInternal(schemaPathFromArgs, { cwd, argumentName
11207
11208
  if (defaultResult.ok) {
11208
11209
  return defaultResult;
11209
11210
  }
11211
+ const yarnResult = await getSchemaFromYarn1Workspace(cwd, defaultResult.error.failures);
11212
+ if (yarnResult.ok) {
11213
+ return yarnResult;
11214
+ }
11215
+ const finalError = yarnResult.error.kind === "Yarn1WorkspaceSchemaNotFound" ? defaultResult.error : yarnResult.error;
11210
11216
  return {
11211
11217
  ok: false,
11212
- error: defaultResult.error
11218
+ error: finalError
11213
11219
  };
11214
11220
  }
11215
11221
  function renderLookupError(error) {
@@ -11284,6 +11290,47 @@ async function getSchemaFromPackageJson(cwd) {
11284
11290
  }
11285
11291
  return lookupResult;
11286
11292
  }
11293
+ async function getSchemaFromYarn1Workspace(cwd, pastFailures) {
11294
+ if (!process.env.npm_config_user_agent?.includes("yarn")) {
11295
+ return { ok: false, error: { kind: "Yarn1WorkspaceSchemaNotFound" } };
11296
+ }
11297
+ let workspaces;
11298
+ try {
11299
+ const { stdout: version2 } = await import_execa.default.command("yarn --version", {
11300
+ cwd
11301
+ });
11302
+ if (version2.startsWith("2")) {
11303
+ return { ok: false, error: { kind: "Yarn1WorkspaceSchemaNotFound" } };
11304
+ }
11305
+ const { stdout } = await import_execa.default.command("yarn workspaces info --json", {
11306
+ cwd
11307
+ });
11308
+ const json = getJson(stdout);
11309
+ workspaces = Object.values(json);
11310
+ } catch {
11311
+ return { ok: false, error: { kind: "Yarn1WorkspaceSchemaNotFound" } };
11312
+ }
11313
+ const workspaceRootDir = await findWorkspaceRoot(cwd);
11314
+ if (!workspaceRootDir) {
11315
+ return { ok: false, error: { kind: "Yarn1WorkspaceSchemaNotFound" } };
11316
+ }
11317
+ for (const workspace of workspaces) {
11318
+ const workspacePath = import_path5.default.join(workspaceRootDir, workspace.location);
11319
+ const workspaceSchema = await tryWorkspacePath(workspacePath, pastFailures);
11320
+ if (workspaceSchema.ok) {
11321
+ return workspaceSchema;
11322
+ }
11323
+ }
11324
+ const rootPathSchema = await tryWorkspacePath(workspaceRootDir, pastFailures);
11325
+ return rootPathSchema;
11326
+ }
11327
+ async function tryWorkspacePath(cwd, pastFailures) {
11328
+ const pkgJson = await getSchemaFromPackageJson(cwd);
11329
+ if (pkgJson.ok) {
11330
+ return pkgJson;
11331
+ }
11332
+ return getDefaultSchema(cwd, pastFailures);
11333
+ }
11287
11334
  async function getDefaultSchema(cwd, failures = []) {
11288
11335
  const schemaPrisma = {
11289
11336
  schemaPath: {
@@ -11348,11 +11395,50 @@ async function loadSchemaFromDefaultLocation(lookupPath) {
11348
11395
  return readSchemaFromDirectory(lookupPath.path);
11349
11396
  }
11350
11397
  }
11351
- var import_schema_files_loader, readFile, stat, debug2;
11398
+ function getJson(stdout) {
11399
+ const firstCurly = stdout.indexOf("{");
11400
+ const lastCurly = stdout.lastIndexOf("}");
11401
+ const sliced = stdout.slice(firstCurly, lastCurly + 1);
11402
+ return JSON.parse(sliced);
11403
+ }
11404
+ function isPkgJsonWorkspaceRoot(pkgJson) {
11405
+ const workspaces = pkgJson.workspaces;
11406
+ if (!workspaces) {
11407
+ return false;
11408
+ }
11409
+ return Array.isArray(workspaces) || workspaces.packages !== void 0;
11410
+ }
11411
+ async function isNearestPkgJsonWorkspaceRoot(cwd) {
11412
+ const pkgJson = await readPackageUp({ cwd, normalize: false });
11413
+ if (!pkgJson) {
11414
+ return null;
11415
+ }
11416
+ return {
11417
+ isRoot: isPkgJsonWorkspaceRoot(pkgJson.packageJson),
11418
+ path: pkgJson.path
11419
+ };
11420
+ }
11421
+ async function findWorkspaceRoot(cwd) {
11422
+ let pkgJson = await isNearestPkgJsonWorkspaceRoot(cwd);
11423
+ if (!pkgJson) {
11424
+ return null;
11425
+ }
11426
+ if (pkgJson.isRoot === true) {
11427
+ return import_path5.default.dirname(pkgJson.path);
11428
+ }
11429
+ const pkgJsonParentDir = import_path5.default.dirname(import_path5.default.dirname(pkgJson.path));
11430
+ pkgJson = await isNearestPkgJsonWorkspaceRoot(pkgJsonParentDir);
11431
+ if (!pkgJson || pkgJson.isRoot === false) {
11432
+ return null;
11433
+ }
11434
+ return import_path5.default.dirname(pkgJson.path);
11435
+ }
11436
+ var import_schema_files_loader, import_execa, readFile, stat, debug2;
11352
11437
  var init_getSchema = (0, import_chunk_WWAWV7DQ.__esm)({
11353
11438
  "../internals/src/cli/getSchema.ts"() {
11354
11439
  "use strict";
11355
11440
  import_schema_files_loader = (0, import_chunk_WWAWV7DQ.__toESM)(require_dist());
11441
+ import_execa = (0, import_chunk_WWAWV7DQ.__toESM)((0, import_chunk_WIZM7TFT.require_execa)());
11356
11442
  (0, import_chunk_6TE2RIPN.init_colors)();
11357
11443
  init_read_package_up();
11358
11444
  init_engine_commands();
@@ -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
+ });