@ingenyus/swarm-wasp 1.1.0 → 1.2.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 (37) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/common/index.js +29 -6
  3. package/dist/common/wasp-compatibility.d.ts.map +1 -1
  4. package/dist/common/wasp-compatibility.js +29 -6
  5. package/dist/generators/action/action-generator.js +29 -6
  6. package/dist/generators/action/index.js +29 -6
  7. package/dist/generators/action/schema.js +1 -1
  8. package/dist/generators/api/api-generator.js +29 -6
  9. package/dist/generators/api/index.js +29 -6
  10. package/dist/generators/api/schema.js +1 -1
  11. package/dist/generators/api-namespace/api-namespace-generator.js +29 -6
  12. package/dist/generators/api-namespace/index.js +29 -6
  13. package/dist/generators/api-namespace/schema.js +1 -1
  14. package/dist/generators/base/component-generator.base.js +29 -6
  15. package/dist/generators/base/index.js +29 -6
  16. package/dist/generators/base/operation-generator.base.js +29 -6
  17. package/dist/generators/base/wasp-generator.base.js +29 -6
  18. package/dist/generators/config/index.js +1 -1
  19. package/dist/generators/config/wasp-config-generator.js +1 -1
  20. package/dist/generators/crud/crud-generator.js +29 -6
  21. package/dist/generators/crud/index.js +29 -6
  22. package/dist/generators/crud/schema.js +1 -1
  23. package/dist/generators/feature/feature-generator.js +29 -6
  24. package/dist/generators/feature/index.js +29 -6
  25. package/dist/generators/feature/schema.js +1 -1
  26. package/dist/generators/index.js +29 -6
  27. package/dist/generators/job/index.js +29 -6
  28. package/dist/generators/job/job-generator.js +29 -6
  29. package/dist/generators/job/schema.js +1 -1
  30. package/dist/generators/query/index.js +29 -6
  31. package/dist/generators/query/query-generator.js +29 -6
  32. package/dist/generators/query/schema.js +1 -1
  33. package/dist/generators/route/index.js +29 -6
  34. package/dist/generators/route/route-generator.js +29 -6
  35. package/dist/generators/route/schema.js +1 -1
  36. package/dist/index.js +29 -6
  37. package/package.json +6 -3
@@ -131,7 +131,7 @@ var TemplateUtility = class {
131
131
  };
132
132
 
133
133
  // src/common/wasp-compatibility.ts
134
- import { getVersion } from "@ingenyus/swarm";
134
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
135
135
  import { execSync } from "child_process";
136
136
  import path4 from "path";
137
137
  import { fileURLToPath } from "url";
@@ -382,14 +382,36 @@ var TemplateUtility = class {
382
382
  };
383
383
 
384
384
  // src/common/wasp-compatibility.ts
385
- import { getVersion } from "@ingenyus/swarm";
385
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
386
386
  import { execSync } from "child_process";
387
387
  import path4 from "path";
388
388
  import { fileURLToPath } from "url";
389
389
  import * as semver from "semver";
390
- var waspCompatibility = {
391
- supportedRange: ">=0.18.0 <0.20.0"
392
- };
390
+ var cachedSupportedRange = null;
391
+ function getWaspSupportedRange() {
392
+ if (cachedSupportedRange) {
393
+ return cachedSupportedRange;
394
+ }
395
+ const currentFile = fileURLToPath(import.meta.url);
396
+ const currentDir = path4.dirname(currentFile);
397
+ const result = findPackageJson(currentDir, {
398
+ packageName: "@ingenyus/swarm-wasp"
399
+ });
400
+ if (!result) {
401
+ throw new Error(
402
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
403
+ );
404
+ }
405
+ const swarm = result.packageJson.swarm;
406
+ const waspRange = swarm?.wasp;
407
+ if (!waspRange) {
408
+ throw new Error(
409
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
410
+ );
411
+ }
412
+ cachedSupportedRange = waspRange;
413
+ return cachedSupportedRange;
414
+ }
393
415
  function getInstalledWaspVersion(logger) {
394
416
  try {
395
417
  const output = execSync("wasp version", {
@@ -428,11 +450,12 @@ function assertWaspCompatible(logger) {
428
450
  return;
429
451
  }
430
452
  const version = getInstalledWaspVersion(logger);
431
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
453
+ const supportedRange = getWaspSupportedRange();
454
+ if (!semver.satisfies(version, supportedRange)) {
432
455
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
433
456
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
434
457
  logger.error(
435
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
458
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
436
459
  );
437
460
  throw new Error("Incompatible Wasp version");
438
461
  }
@@ -382,14 +382,36 @@ var TemplateUtility = class {
382
382
  };
383
383
 
384
384
  // src/common/wasp-compatibility.ts
385
- import { getVersion } from "@ingenyus/swarm";
385
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
386
386
  import { execSync } from "child_process";
387
387
  import path4 from "path";
388
388
  import { fileURLToPath } from "url";
389
389
  import * as semver from "semver";
390
- var waspCompatibility = {
391
- supportedRange: ">=0.18.0 <0.20.0"
392
- };
390
+ var cachedSupportedRange = null;
391
+ function getWaspSupportedRange() {
392
+ if (cachedSupportedRange) {
393
+ return cachedSupportedRange;
394
+ }
395
+ const currentFile = fileURLToPath(import.meta.url);
396
+ const currentDir = path4.dirname(currentFile);
397
+ const result = findPackageJson(currentDir, {
398
+ packageName: "@ingenyus/swarm-wasp"
399
+ });
400
+ if (!result) {
401
+ throw new Error(
402
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
403
+ );
404
+ }
405
+ const swarm = result.packageJson.swarm;
406
+ const waspRange = swarm?.wasp;
407
+ if (!waspRange) {
408
+ throw new Error(
409
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
410
+ );
411
+ }
412
+ cachedSupportedRange = waspRange;
413
+ return cachedSupportedRange;
414
+ }
393
415
  function getInstalledWaspVersion(logger) {
394
416
  try {
395
417
  const output = execSync("wasp version", {
@@ -428,11 +450,12 @@ function assertWaspCompatible(logger) {
428
450
  return;
429
451
  }
430
452
  const version = getInstalledWaspVersion(logger);
431
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
453
+ const supportedRange = getWaspSupportedRange();
454
+ if (!semver.satisfies(version, supportedRange)) {
432
455
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
433
456
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
434
457
  logger.error(
435
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
458
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
436
459
  );
437
460
  throw new Error("Incompatible Wasp version");
438
461
  }
@@ -114,7 +114,7 @@ import { toKebabCase } from "@ingenyus/swarm";
114
114
  import { Eta } from "eta";
115
115
 
116
116
  // src/common/wasp-compatibility.ts
117
- import { getVersion } from "@ingenyus/swarm";
117
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
118
118
  import { execSync } from "child_process";
119
119
  import path2 from "path";
120
120
  import { fileURLToPath } from "url";
@@ -195,14 +195,36 @@ var TemplateUtility = class {
195
195
  };
196
196
 
197
197
  // src/common/wasp-compatibility.ts
198
- import { getVersion } from "@ingenyus/swarm";
198
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
199
199
  import { execSync } from "child_process";
200
200
  import path4 from "path";
201
201
  import { fileURLToPath } from "url";
202
202
  import * as semver from "semver";
203
- var waspCompatibility = {
204
- supportedRange: ">=0.18.0 <0.20.0"
205
- };
203
+ var cachedSupportedRange = null;
204
+ function getWaspSupportedRange() {
205
+ if (cachedSupportedRange) {
206
+ return cachedSupportedRange;
207
+ }
208
+ const currentFile = fileURLToPath(import.meta.url);
209
+ const currentDir = path4.dirname(currentFile);
210
+ const result = findPackageJson(currentDir, {
211
+ packageName: "@ingenyus/swarm-wasp"
212
+ });
213
+ if (!result) {
214
+ throw new Error(
215
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
216
+ );
217
+ }
218
+ const swarm = result.packageJson.swarm;
219
+ const waspRange = swarm?.wasp;
220
+ if (!waspRange) {
221
+ throw new Error(
222
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
223
+ );
224
+ }
225
+ cachedSupportedRange = waspRange;
226
+ return cachedSupportedRange;
227
+ }
206
228
  function getInstalledWaspVersion(logger) {
207
229
  try {
208
230
  const output = execSync("wasp version", {
@@ -241,11 +263,12 @@ function assertWaspCompatible(logger) {
241
263
  return;
242
264
  }
243
265
  const version = getInstalledWaspVersion(logger);
244
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
266
+ const supportedRange = getWaspSupportedRange();
267
+ if (!semver.satisfies(version, supportedRange)) {
245
268
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
246
269
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
247
270
  logger.error(
248
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
271
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
249
272
  );
250
273
  throw new Error("Incompatible Wasp version");
251
274
  }
@@ -195,14 +195,36 @@ var TemplateUtility = class {
195
195
  };
196
196
 
197
197
  // src/common/wasp-compatibility.ts
198
- import { getVersion } from "@ingenyus/swarm";
198
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
199
199
  import { execSync } from "child_process";
200
200
  import path4 from "path";
201
201
  import { fileURLToPath } from "url";
202
202
  import * as semver from "semver";
203
- var waspCompatibility = {
204
- supportedRange: ">=0.18.0 <0.20.0"
205
- };
203
+ var cachedSupportedRange = null;
204
+ function getWaspSupportedRange() {
205
+ if (cachedSupportedRange) {
206
+ return cachedSupportedRange;
207
+ }
208
+ const currentFile = fileURLToPath(import.meta.url);
209
+ const currentDir = path4.dirname(currentFile);
210
+ const result = findPackageJson(currentDir, {
211
+ packageName: "@ingenyus/swarm-wasp"
212
+ });
213
+ if (!result) {
214
+ throw new Error(
215
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
216
+ );
217
+ }
218
+ const swarm = result.packageJson.swarm;
219
+ const waspRange = swarm?.wasp;
220
+ if (!waspRange) {
221
+ throw new Error(
222
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
223
+ );
224
+ }
225
+ cachedSupportedRange = waspRange;
226
+ return cachedSupportedRange;
227
+ }
206
228
  function getInstalledWaspVersion(logger) {
207
229
  try {
208
230
  const output = execSync("wasp version", {
@@ -241,11 +263,12 @@ function assertWaspCompatible(logger) {
241
263
  return;
242
264
  }
243
265
  const version = getInstalledWaspVersion(logger);
244
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
266
+ const supportedRange = getWaspSupportedRange();
267
+ if (!semver.satisfies(version, supportedRange)) {
245
268
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
246
269
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
247
270
  logger.error(
248
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
271
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
249
272
  );
250
273
  throw new Error("Incompatible Wasp version");
251
274
  }
@@ -105,7 +105,7 @@ import { toKebabCase } from "@ingenyus/swarm";
105
105
  import { Eta } from "eta";
106
106
 
107
107
  // src/common/wasp-compatibility.ts
108
- import { getVersion } from "@ingenyus/swarm";
108
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
109
109
  import { execSync } from "child_process";
110
110
  import path2 from "path";
111
111
  import { fileURLToPath } from "url";
@@ -397,14 +397,36 @@ var TemplateUtility = class {
397
397
  };
398
398
 
399
399
  // src/common/wasp-compatibility.ts
400
- import { getVersion } from "@ingenyus/swarm";
400
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
401
401
  import { execSync } from "child_process";
402
402
  import path4 from "path";
403
403
  import { fileURLToPath } from "url";
404
404
  import * as semver from "semver";
405
- var waspCompatibility = {
406
- supportedRange: ">=0.18.0 <0.20.0"
407
- };
405
+ var cachedSupportedRange = null;
406
+ function getWaspSupportedRange() {
407
+ if (cachedSupportedRange) {
408
+ return cachedSupportedRange;
409
+ }
410
+ const currentFile = fileURLToPath(import.meta.url);
411
+ const currentDir = path4.dirname(currentFile);
412
+ const result = findPackageJson(currentDir, {
413
+ packageName: "@ingenyus/swarm-wasp"
414
+ });
415
+ if (!result) {
416
+ throw new Error(
417
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
418
+ );
419
+ }
420
+ const swarm = result.packageJson.swarm;
421
+ const waspRange = swarm?.wasp;
422
+ if (!waspRange) {
423
+ throw new Error(
424
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
425
+ );
426
+ }
427
+ cachedSupportedRange = waspRange;
428
+ return cachedSupportedRange;
429
+ }
408
430
  function getInstalledWaspVersion(logger) {
409
431
  try {
410
432
  const output = execSync("wasp version", {
@@ -443,11 +465,12 @@ function assertWaspCompatible(logger) {
443
465
  return;
444
466
  }
445
467
  const version = getInstalledWaspVersion(logger);
446
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
468
+ const supportedRange = getWaspSupportedRange();
469
+ if (!semver.satisfies(version, supportedRange)) {
447
470
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
448
471
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
449
472
  logger.error(
450
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
473
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
451
474
  );
452
475
  throw new Error("Incompatible Wasp version");
453
476
  }
@@ -225,14 +225,36 @@ var TemplateUtility = class {
225
225
  };
226
226
 
227
227
  // src/common/wasp-compatibility.ts
228
- import { getVersion } from "@ingenyus/swarm";
228
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
229
229
  import { execSync } from "child_process";
230
230
  import path4 from "path";
231
231
  import { fileURLToPath } from "url";
232
232
  import * as semver from "semver";
233
- var waspCompatibility = {
234
- supportedRange: ">=0.18.0 <0.20.0"
235
- };
233
+ var cachedSupportedRange = null;
234
+ function getWaspSupportedRange() {
235
+ if (cachedSupportedRange) {
236
+ return cachedSupportedRange;
237
+ }
238
+ const currentFile = fileURLToPath(import.meta.url);
239
+ const currentDir = path4.dirname(currentFile);
240
+ const result = findPackageJson(currentDir, {
241
+ packageName: "@ingenyus/swarm-wasp"
242
+ });
243
+ if (!result) {
244
+ throw new Error(
245
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
246
+ );
247
+ }
248
+ const swarm = result.packageJson.swarm;
249
+ const waspRange = swarm?.wasp;
250
+ if (!waspRange) {
251
+ throw new Error(
252
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
253
+ );
254
+ }
255
+ cachedSupportedRange = waspRange;
256
+ return cachedSupportedRange;
257
+ }
236
258
  function getInstalledWaspVersion(logger) {
237
259
  try {
238
260
  const output = execSync("wasp version", {
@@ -271,11 +293,12 @@ function assertWaspCompatible(logger) {
271
293
  return;
272
294
  }
273
295
  const version = getInstalledWaspVersion(logger);
274
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
296
+ const supportedRange = getWaspSupportedRange();
297
+ if (!semver.satisfies(version, supportedRange)) {
275
298
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
276
299
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
277
300
  logger.error(
278
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
301
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
279
302
  );
280
303
  throw new Error("Incompatible Wasp version");
281
304
  }
@@ -225,14 +225,36 @@ var TemplateUtility = class {
225
225
  };
226
226
 
227
227
  // src/common/wasp-compatibility.ts
228
- import { getVersion } from "@ingenyus/swarm";
228
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
229
229
  import { execSync } from "child_process";
230
230
  import path4 from "path";
231
231
  import { fileURLToPath } from "url";
232
232
  import * as semver from "semver";
233
- var waspCompatibility = {
234
- supportedRange: ">=0.18.0 <0.20.0"
235
- };
233
+ var cachedSupportedRange = null;
234
+ function getWaspSupportedRange() {
235
+ if (cachedSupportedRange) {
236
+ return cachedSupportedRange;
237
+ }
238
+ const currentFile = fileURLToPath(import.meta.url);
239
+ const currentDir = path4.dirname(currentFile);
240
+ const result = findPackageJson(currentDir, {
241
+ packageName: "@ingenyus/swarm-wasp"
242
+ });
243
+ if (!result) {
244
+ throw new Error(
245
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
246
+ );
247
+ }
248
+ const swarm = result.packageJson.swarm;
249
+ const waspRange = swarm?.wasp;
250
+ if (!waspRange) {
251
+ throw new Error(
252
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
253
+ );
254
+ }
255
+ cachedSupportedRange = waspRange;
256
+ return cachedSupportedRange;
257
+ }
236
258
  function getInstalledWaspVersion(logger) {
237
259
  try {
238
260
  const output = execSync("wasp version", {
@@ -271,11 +293,12 @@ function assertWaspCompatible(logger) {
271
293
  return;
272
294
  }
273
295
  const version = getInstalledWaspVersion(logger);
274
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
296
+ const supportedRange = getWaspSupportedRange();
297
+ if (!semver.satisfies(version, supportedRange)) {
275
298
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
276
299
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
277
300
  logger.error(
278
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
301
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
279
302
  );
280
303
  throw new Error("Incompatible Wasp version");
281
304
  }
@@ -105,7 +105,7 @@ import { toKebabCase } from "@ingenyus/swarm";
105
105
  import { Eta } from "eta";
106
106
 
107
107
  // src/common/wasp-compatibility.ts
108
- import { getVersion } from "@ingenyus/swarm";
108
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
109
109
  import { execSync } from "child_process";
110
110
  import path2 from "path";
111
111
  import { fileURLToPath } from "url";
@@ -373,14 +373,36 @@ var TemplateUtility = class {
373
373
  };
374
374
 
375
375
  // src/common/wasp-compatibility.ts
376
- import { getVersion } from "@ingenyus/swarm";
376
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
377
377
  import { execSync } from "child_process";
378
378
  import path4 from "path";
379
379
  import { fileURLToPath } from "url";
380
380
  import * as semver from "semver";
381
- var waspCompatibility = {
382
- supportedRange: ">=0.18.0 <0.20.0"
383
- };
381
+ var cachedSupportedRange = null;
382
+ function getWaspSupportedRange() {
383
+ if (cachedSupportedRange) {
384
+ return cachedSupportedRange;
385
+ }
386
+ const currentFile = fileURLToPath(import.meta.url);
387
+ const currentDir = path4.dirname(currentFile);
388
+ const result = findPackageJson(currentDir, {
389
+ packageName: "@ingenyus/swarm-wasp"
390
+ });
391
+ if (!result) {
392
+ throw new Error(
393
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
394
+ );
395
+ }
396
+ const swarm = result.packageJson.swarm;
397
+ const waspRange = swarm?.wasp;
398
+ if (!waspRange) {
399
+ throw new Error(
400
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
401
+ );
402
+ }
403
+ cachedSupportedRange = waspRange;
404
+ return cachedSupportedRange;
405
+ }
384
406
  function getInstalledWaspVersion(logger) {
385
407
  try {
386
408
  const output = execSync("wasp version", {
@@ -419,11 +441,12 @@ function assertWaspCompatible(logger) {
419
441
  return;
420
442
  }
421
443
  const version = getInstalledWaspVersion(logger);
422
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
444
+ const supportedRange = getWaspSupportedRange();
445
+ if (!semver.satisfies(version, supportedRange)) {
423
446
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
424
447
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
425
448
  logger.error(
426
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
449
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
427
450
  );
428
451
  throw new Error("Incompatible Wasp version");
429
452
  }
@@ -373,14 +373,36 @@ var TemplateUtility = class {
373
373
  };
374
374
 
375
375
  // src/common/wasp-compatibility.ts
376
- import { getVersion } from "@ingenyus/swarm";
376
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
377
377
  import { execSync } from "child_process";
378
378
  import path4 from "path";
379
379
  import { fileURLToPath } from "url";
380
380
  import * as semver from "semver";
381
- var waspCompatibility = {
382
- supportedRange: ">=0.18.0 <0.20.0"
383
- };
381
+ var cachedSupportedRange = null;
382
+ function getWaspSupportedRange() {
383
+ if (cachedSupportedRange) {
384
+ return cachedSupportedRange;
385
+ }
386
+ const currentFile = fileURLToPath(import.meta.url);
387
+ const currentDir = path4.dirname(currentFile);
388
+ const result = findPackageJson(currentDir, {
389
+ packageName: "@ingenyus/swarm-wasp"
390
+ });
391
+ if (!result) {
392
+ throw new Error(
393
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
394
+ );
395
+ }
396
+ const swarm = result.packageJson.swarm;
397
+ const waspRange = swarm?.wasp;
398
+ if (!waspRange) {
399
+ throw new Error(
400
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
401
+ );
402
+ }
403
+ cachedSupportedRange = waspRange;
404
+ return cachedSupportedRange;
405
+ }
384
406
  function getInstalledWaspVersion(logger) {
385
407
  try {
386
408
  const output = execSync("wasp version", {
@@ -419,11 +441,12 @@ function assertWaspCompatible(logger) {
419
441
  return;
420
442
  }
421
443
  const version = getInstalledWaspVersion(logger);
422
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
444
+ const supportedRange = getWaspSupportedRange();
445
+ if (!semver.satisfies(version, supportedRange)) {
423
446
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
424
447
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
425
448
  logger.error(
426
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
449
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
427
450
  );
428
451
  throw new Error("Incompatible Wasp version");
429
452
  }
@@ -112,7 +112,7 @@ import { toKebabCase } from "@ingenyus/swarm";
112
112
  import { Eta } from "eta";
113
113
 
114
114
  // src/common/wasp-compatibility.ts
115
- import { getVersion } from "@ingenyus/swarm";
115
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
116
116
  import { execSync } from "child_process";
117
117
  import path2 from "path";
118
118
  import { fileURLToPath } from "url";
@@ -231,14 +231,36 @@ var TemplateUtility = class {
231
231
  };
232
232
 
233
233
  // src/common/wasp-compatibility.ts
234
- import { getVersion } from "@ingenyus/swarm";
234
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
235
235
  import { execSync } from "child_process";
236
236
  import path4 from "path";
237
237
  import { fileURLToPath } from "url";
238
238
  import * as semver from "semver";
239
- var waspCompatibility = {
240
- supportedRange: ">=0.18.0 <0.20.0"
241
- };
239
+ var cachedSupportedRange = null;
240
+ function getWaspSupportedRange() {
241
+ if (cachedSupportedRange) {
242
+ return cachedSupportedRange;
243
+ }
244
+ const currentFile = fileURLToPath(import.meta.url);
245
+ const currentDir = path4.dirname(currentFile);
246
+ const result = findPackageJson(currentDir, {
247
+ packageName: "@ingenyus/swarm-wasp"
248
+ });
249
+ if (!result) {
250
+ throw new Error(
251
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
252
+ );
253
+ }
254
+ const swarm = result.packageJson.swarm;
255
+ const waspRange = swarm?.wasp;
256
+ if (!waspRange) {
257
+ throw new Error(
258
+ `Wasp supported version range not found in package.json. Please specify swarm.wasp field in @ingenyus/swarm-wasp package.json (e.g., "swarm": { "wasp": ">=0.18.0 <0.20.0" }).`
259
+ );
260
+ }
261
+ cachedSupportedRange = waspRange;
262
+ return cachedSupportedRange;
263
+ }
242
264
  function getInstalledWaspVersion(logger) {
243
265
  try {
244
266
  const output = execSync("wasp version", {
@@ -277,11 +299,12 @@ function assertWaspCompatible(logger) {
277
299
  return;
278
300
  }
279
301
  const version = getInstalledWaspVersion(logger);
280
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
302
+ const supportedRange = getWaspSupportedRange();
303
+ if (!semver.satisfies(version, supportedRange)) {
281
304
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
282
305
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
283
306
  logger.error(
284
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
307
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
285
308
  );
286
309
  throw new Error("Incompatible Wasp version");
287
310
  }