@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
@@ -1 +1 @@
1
- {"version":3,"file":"wasp-compatibility.d.ts","sourceRoot":"","sources":["../../src/common/wasp-compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,iBAAiB,CAAC;AAuErD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAmBzD"}
1
+ {"version":3,"file":"wasp-compatibility.d.ts","sourceRoot":"","sources":["../../src/common/wasp-compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA+B,MAAM,iBAAiB,CAAC;AA6GtE;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAoBzD"}
@@ -1,12 +1,34 @@
1
1
  // src/common/wasp-compatibility.ts
2
- import { getVersion } from "@ingenyus/swarm";
2
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
3
3
  import { execSync } from "child_process";
4
4
  import path from "path";
5
5
  import { fileURLToPath } from "url";
6
6
  import * as semver from "semver";
7
- var waspCompatibility = {
8
- supportedRange: ">=0.18.0 <0.20.0"
9
- };
7
+ var cachedSupportedRange = null;
8
+ function getWaspSupportedRange() {
9
+ if (cachedSupportedRange) {
10
+ return cachedSupportedRange;
11
+ }
12
+ const currentFile = fileURLToPath(import.meta.url);
13
+ const currentDir = path.dirname(currentFile);
14
+ const result = findPackageJson(currentDir, {
15
+ packageName: "@ingenyus/swarm-wasp"
16
+ });
17
+ if (!result) {
18
+ throw new Error(
19
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
20
+ );
21
+ }
22
+ const swarm = result.packageJson.swarm;
23
+ const waspRange = swarm?.wasp;
24
+ if (!waspRange) {
25
+ throw new Error(
26
+ `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" }).`
27
+ );
28
+ }
29
+ cachedSupportedRange = waspRange;
30
+ return cachedSupportedRange;
31
+ }
10
32
  function getInstalledWaspVersion(logger) {
11
33
  try {
12
34
  const output = execSync("wasp version", {
@@ -45,11 +67,12 @@ function assertWaspCompatible(logger) {
45
67
  return;
46
68
  }
47
69
  const version = getInstalledWaspVersion(logger);
48
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
70
+ const supportedRange = getWaspSupportedRange();
71
+ if (!semver.satisfies(version, supportedRange)) {
49
72
  const startDir = path.dirname(fileURLToPath(import.meta.url));
50
73
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
51
74
  logger.error(
52
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
75
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
53
76
  );
54
77
  throw new Error("Incompatible Wasp version");
55
78
  }
@@ -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";
@@ -236,14 +236,36 @@ var TemplateUtility = class {
236
236
  };
237
237
 
238
238
  // src/common/wasp-compatibility.ts
239
- import { getVersion } from "@ingenyus/swarm";
239
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
240
240
  import { execSync } from "child_process";
241
241
  import path4 from "path";
242
242
  import { fileURLToPath } from "url";
243
243
  import * as semver from "semver";
244
- var waspCompatibility = {
245
- supportedRange: ">=0.18.0 <0.20.0"
246
- };
244
+ var cachedSupportedRange = null;
245
+ function getWaspSupportedRange() {
246
+ if (cachedSupportedRange) {
247
+ return cachedSupportedRange;
248
+ }
249
+ const currentFile = fileURLToPath(import.meta.url);
250
+ const currentDir = path4.dirname(currentFile);
251
+ const result = findPackageJson(currentDir, {
252
+ packageName: "@ingenyus/swarm-wasp"
253
+ });
254
+ if (!result) {
255
+ throw new Error(
256
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
257
+ );
258
+ }
259
+ const swarm = result.packageJson.swarm;
260
+ const waspRange = swarm?.wasp;
261
+ if (!waspRange) {
262
+ throw new Error(
263
+ `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" }).`
264
+ );
265
+ }
266
+ cachedSupportedRange = waspRange;
267
+ return cachedSupportedRange;
268
+ }
247
269
  function getInstalledWaspVersion(logger) {
248
270
  try {
249
271
  const output = execSync("wasp version", {
@@ -282,11 +304,12 @@ function assertWaspCompatible(logger) {
282
304
  return;
283
305
  }
284
306
  const version = getInstalledWaspVersion(logger);
285
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
307
+ const supportedRange = getWaspSupportedRange();
308
+ if (!semver.satisfies(version, supportedRange)) {
286
309
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
287
310
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
288
311
  logger.error(
289
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
312
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
290
313
  );
291
314
  throw new Error("Incompatible Wasp version");
292
315
  }
@@ -236,14 +236,36 @@ var TemplateUtility = class {
236
236
  };
237
237
 
238
238
  // src/common/wasp-compatibility.ts
239
- import { getVersion } from "@ingenyus/swarm";
239
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
240
240
  import { execSync } from "child_process";
241
241
  import path4 from "path";
242
242
  import { fileURLToPath } from "url";
243
243
  import * as semver from "semver";
244
- var waspCompatibility = {
245
- supportedRange: ">=0.18.0 <0.20.0"
246
- };
244
+ var cachedSupportedRange = null;
245
+ function getWaspSupportedRange() {
246
+ if (cachedSupportedRange) {
247
+ return cachedSupportedRange;
248
+ }
249
+ const currentFile = fileURLToPath(import.meta.url);
250
+ const currentDir = path4.dirname(currentFile);
251
+ const result = findPackageJson(currentDir, {
252
+ packageName: "@ingenyus/swarm-wasp"
253
+ });
254
+ if (!result) {
255
+ throw new Error(
256
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
257
+ );
258
+ }
259
+ const swarm = result.packageJson.swarm;
260
+ const waspRange = swarm?.wasp;
261
+ if (!waspRange) {
262
+ throw new Error(
263
+ `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" }).`
264
+ );
265
+ }
266
+ cachedSupportedRange = waspRange;
267
+ return cachedSupportedRange;
268
+ }
247
269
  function getInstalledWaspVersion(logger) {
248
270
  try {
249
271
  const output = execSync("wasp version", {
@@ -282,11 +304,12 @@ function assertWaspCompatible(logger) {
282
304
  return;
283
305
  }
284
306
  const version = getInstalledWaspVersion(logger);
285
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
307
+ const supportedRange = getWaspSupportedRange();
308
+ if (!semver.satisfies(version, supportedRange)) {
286
309
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
287
310
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
288
311
  logger.error(
289
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
312
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
290
313
  );
291
314
  throw new Error("Incompatible Wasp version");
292
315
  }
@@ -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";
@@ -223,14 +223,36 @@ var TemplateUtility = class {
223
223
  };
224
224
 
225
225
  // src/common/wasp-compatibility.ts
226
- import { getVersion } from "@ingenyus/swarm";
226
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
227
227
  import { execSync } from "child_process";
228
228
  import path4 from "path";
229
229
  import { fileURLToPath } from "url";
230
230
  import * as semver from "semver";
231
- var waspCompatibility = {
232
- supportedRange: ">=0.18.0 <0.20.0"
233
- };
231
+ var cachedSupportedRange = null;
232
+ function getWaspSupportedRange() {
233
+ if (cachedSupportedRange) {
234
+ return cachedSupportedRange;
235
+ }
236
+ const currentFile = fileURLToPath(import.meta.url);
237
+ const currentDir = path4.dirname(currentFile);
238
+ const result = findPackageJson(currentDir, {
239
+ packageName: "@ingenyus/swarm-wasp"
240
+ });
241
+ if (!result) {
242
+ throw new Error(
243
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
244
+ );
245
+ }
246
+ const swarm = result.packageJson.swarm;
247
+ const waspRange = swarm?.wasp;
248
+ if (!waspRange) {
249
+ throw new Error(
250
+ `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" }).`
251
+ );
252
+ }
253
+ cachedSupportedRange = waspRange;
254
+ return cachedSupportedRange;
255
+ }
234
256
  function getInstalledWaspVersion(logger) {
235
257
  try {
236
258
  const output = execSync("wasp version", {
@@ -269,11 +291,12 @@ function assertWaspCompatible(logger) {
269
291
  return;
270
292
  }
271
293
  const version = getInstalledWaspVersion(logger);
272
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
294
+ const supportedRange = getWaspSupportedRange();
295
+ if (!semver.satisfies(version, supportedRange)) {
273
296
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
274
297
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
275
298
  logger.error(
276
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
299
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
277
300
  );
278
301
  throw new Error("Incompatible Wasp version");
279
302
  }
@@ -223,14 +223,36 @@ var TemplateUtility = class {
223
223
  };
224
224
 
225
225
  // src/common/wasp-compatibility.ts
226
- import { getVersion } from "@ingenyus/swarm";
226
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
227
227
  import { execSync } from "child_process";
228
228
  import path4 from "path";
229
229
  import { fileURLToPath } from "url";
230
230
  import * as semver from "semver";
231
- var waspCompatibility = {
232
- supportedRange: ">=0.18.0 <0.20.0"
233
- };
231
+ var cachedSupportedRange = null;
232
+ function getWaspSupportedRange() {
233
+ if (cachedSupportedRange) {
234
+ return cachedSupportedRange;
235
+ }
236
+ const currentFile = fileURLToPath(import.meta.url);
237
+ const currentDir = path4.dirname(currentFile);
238
+ const result = findPackageJson(currentDir, {
239
+ packageName: "@ingenyus/swarm-wasp"
240
+ });
241
+ if (!result) {
242
+ throw new Error(
243
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
244
+ );
245
+ }
246
+ const swarm = result.packageJson.swarm;
247
+ const waspRange = swarm?.wasp;
248
+ if (!waspRange) {
249
+ throw new Error(
250
+ `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" }).`
251
+ );
252
+ }
253
+ cachedSupportedRange = waspRange;
254
+ return cachedSupportedRange;
255
+ }
234
256
  function getInstalledWaspVersion(logger) {
235
257
  try {
236
258
  const output = execSync("wasp version", {
@@ -269,11 +291,12 @@ function assertWaspCompatible(logger) {
269
291
  return;
270
292
  }
271
293
  const version = getInstalledWaspVersion(logger);
272
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
294
+ const supportedRange = getWaspSupportedRange();
295
+ if (!semver.satisfies(version, supportedRange)) {
273
296
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
274
297
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
275
298
  logger.error(
276
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
299
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
277
300
  );
278
301
  throw new Error("Incompatible Wasp version");
279
302
  }
@@ -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";
@@ -217,14 +217,36 @@ var TemplateUtility = class {
217
217
  };
218
218
 
219
219
  // src/common/wasp-compatibility.ts
220
- import { getVersion } from "@ingenyus/swarm";
220
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
221
221
  import { execSync } from "child_process";
222
222
  import path4 from "path";
223
223
  import { fileURLToPath } from "url";
224
224
  import * as semver from "semver";
225
- var waspCompatibility = {
226
- supportedRange: ">=0.18.0 <0.20.0"
227
- };
225
+ var cachedSupportedRange = null;
226
+ function getWaspSupportedRange() {
227
+ if (cachedSupportedRange) {
228
+ return cachedSupportedRange;
229
+ }
230
+ const currentFile = fileURLToPath(import.meta.url);
231
+ const currentDir = path4.dirname(currentFile);
232
+ const result = findPackageJson(currentDir, {
233
+ packageName: "@ingenyus/swarm-wasp"
234
+ });
235
+ if (!result) {
236
+ throw new Error(
237
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
238
+ );
239
+ }
240
+ const swarm = result.packageJson.swarm;
241
+ const waspRange = swarm?.wasp;
242
+ if (!waspRange) {
243
+ throw new Error(
244
+ `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" }).`
245
+ );
246
+ }
247
+ cachedSupportedRange = waspRange;
248
+ return cachedSupportedRange;
249
+ }
228
250
  function getInstalledWaspVersion(logger) {
229
251
  try {
230
252
  const output = execSync("wasp version", {
@@ -263,11 +285,12 @@ function assertWaspCompatible(logger) {
263
285
  return;
264
286
  }
265
287
  const version = getInstalledWaspVersion(logger);
266
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
288
+ const supportedRange = getWaspSupportedRange();
289
+ if (!semver.satisfies(version, supportedRange)) {
267
290
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
268
291
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
269
292
  logger.error(
270
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
293
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
271
294
  );
272
295
  throw new Error("Incompatible Wasp version");
273
296
  }
@@ -366,14 +366,36 @@ var TemplateUtility = class {
366
366
  };
367
367
 
368
368
  // src/common/wasp-compatibility.ts
369
- import { getVersion } from "@ingenyus/swarm";
369
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
370
370
  import { execSync } from "child_process";
371
371
  import path4 from "path";
372
372
  import { fileURLToPath } from "url";
373
373
  import * as semver from "semver";
374
- var waspCompatibility = {
375
- supportedRange: ">=0.18.0 <0.20.0"
376
- };
374
+ var cachedSupportedRange = null;
375
+ function getWaspSupportedRange() {
376
+ if (cachedSupportedRange) {
377
+ return cachedSupportedRange;
378
+ }
379
+ const currentFile = fileURLToPath(import.meta.url);
380
+ const currentDir = path4.dirname(currentFile);
381
+ const result = findPackageJson(currentDir, {
382
+ packageName: "@ingenyus/swarm-wasp"
383
+ });
384
+ if (!result) {
385
+ throw new Error(
386
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
387
+ );
388
+ }
389
+ const swarm = result.packageJson.swarm;
390
+ const waspRange = swarm?.wasp;
391
+ if (!waspRange) {
392
+ throw new Error(
393
+ `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" }).`
394
+ );
395
+ }
396
+ cachedSupportedRange = waspRange;
397
+ return cachedSupportedRange;
398
+ }
377
399
  function getInstalledWaspVersion(logger) {
378
400
  try {
379
401
  const output = execSync("wasp version", {
@@ -412,11 +434,12 @@ function assertWaspCompatible(logger) {
412
434
  return;
413
435
  }
414
436
  const version = getInstalledWaspVersion(logger);
415
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
437
+ const supportedRange = getWaspSupportedRange();
438
+ if (!semver.satisfies(version, supportedRange)) {
416
439
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
417
440
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
418
441
  logger.error(
419
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
442
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
420
443
  );
421
444
  throw new Error("Incompatible Wasp version");
422
445
  }
@@ -367,14 +367,36 @@ var TemplateUtility = class {
367
367
  };
368
368
 
369
369
  // src/common/wasp-compatibility.ts
370
- import { getVersion } from "@ingenyus/swarm";
370
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
371
371
  import { execSync } from "child_process";
372
372
  import path4 from "path";
373
373
  import { fileURLToPath } from "url";
374
374
  import * as semver from "semver";
375
- var waspCompatibility = {
376
- supportedRange: ">=0.18.0 <0.20.0"
377
- };
375
+ var cachedSupportedRange = null;
376
+ function getWaspSupportedRange() {
377
+ if (cachedSupportedRange) {
378
+ return cachedSupportedRange;
379
+ }
380
+ const currentFile = fileURLToPath(import.meta.url);
381
+ const currentDir = path4.dirname(currentFile);
382
+ const result = findPackageJson(currentDir, {
383
+ packageName: "@ingenyus/swarm-wasp"
384
+ });
385
+ if (!result) {
386
+ throw new Error(
387
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
388
+ );
389
+ }
390
+ const swarm = result.packageJson.swarm;
391
+ const waspRange = swarm?.wasp;
392
+ if (!waspRange) {
393
+ throw new Error(
394
+ `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" }).`
395
+ );
396
+ }
397
+ cachedSupportedRange = waspRange;
398
+ return cachedSupportedRange;
399
+ }
378
400
  function getInstalledWaspVersion(logger) {
379
401
  try {
380
402
  const output = execSync("wasp version", {
@@ -413,11 +435,12 @@ function assertWaspCompatible(logger) {
413
435
  return;
414
436
  }
415
437
  const version = getInstalledWaspVersion(logger);
416
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
438
+ const supportedRange = getWaspSupportedRange();
439
+ if (!semver.satisfies(version, supportedRange)) {
417
440
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
418
441
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
419
442
  logger.error(
420
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
443
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
421
444
  );
422
445
  throw new Error("Incompatible Wasp version");
423
446
  }
@@ -133,14 +133,36 @@ var TemplateUtility = class {
133
133
  };
134
134
 
135
135
  // src/common/wasp-compatibility.ts
136
- import { getVersion } from "@ingenyus/swarm";
136
+ import { findPackageJson, getVersion } from "@ingenyus/swarm";
137
137
  import { execSync } from "child_process";
138
138
  import path4 from "path";
139
139
  import { fileURLToPath } from "url";
140
140
  import * as semver from "semver";
141
- var waspCompatibility = {
142
- supportedRange: ">=0.18.0 <0.20.0"
143
- };
141
+ var cachedSupportedRange = null;
142
+ function getWaspSupportedRange() {
143
+ if (cachedSupportedRange) {
144
+ return cachedSupportedRange;
145
+ }
146
+ const currentFile = fileURLToPath(import.meta.url);
147
+ const currentDir = path4.dirname(currentFile);
148
+ const result = findPackageJson(currentDir, {
149
+ packageName: "@ingenyus/swarm-wasp"
150
+ });
151
+ if (!result) {
152
+ throw new Error(
153
+ "Unable to find package.json for @ingenyus/swarm-wasp. Wasp supported version range must be specified in swarm.wasp field."
154
+ );
155
+ }
156
+ const swarm = result.packageJson.swarm;
157
+ const waspRange = swarm?.wasp;
158
+ if (!waspRange) {
159
+ throw new Error(
160
+ `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" }).`
161
+ );
162
+ }
163
+ cachedSupportedRange = waspRange;
164
+ return cachedSupportedRange;
165
+ }
144
166
  function getInstalledWaspVersion(logger) {
145
167
  try {
146
168
  const output = execSync("wasp version", {
@@ -179,11 +201,12 @@ function assertWaspCompatible(logger) {
179
201
  return;
180
202
  }
181
203
  const version = getInstalledWaspVersion(logger);
182
- if (!semver.satisfies(version, waspCompatibility.supportedRange)) {
204
+ const supportedRange = getWaspSupportedRange();
205
+ if (!semver.satisfies(version, supportedRange)) {
183
206
  const startDir = path4.dirname(fileURLToPath(import.meta.url));
184
207
  const packageVersion = getVersion("@ingenyus/swarm-wasp", startDir);
185
208
  logger.error(
186
- `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${waspCompatibility.supportedRange}.`
209
+ `Incompatible Wasp version detected: ${version}. @ingenyus/swarm-wasp@${packageVersion} supports Wasp ${supportedRange}.`
187
210
  );
188
211
  throw new Error("Incompatible Wasp version");
189
212
  }
@@ -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";