@bleedingdev/modern-js-create 3.5.0-ultramodern.20 → 3.5.0-ultramodern.22

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/README.md CHANGED
@@ -210,9 +210,10 @@ your back. If `pnpm api:check` still fails, migrate the source to
210
210
  `api/effect`, `api/lambda`, `shared/effect`, and `src/effect` paths.
211
211
 
212
212
  Generated strict Effect workspaces pin the compatible Effect cohort through
213
- `pnpm-workspace.yaml` overrides: `effect@4.0.0-beta.91` and
214
- `@effect/vitest@4.0.0-beta.91`. The generated pnpm policy also excludes the
215
- known `effect@4.0.0-beta.91` and `@effect/opentelemetry@4.0.0-beta.91`
213
+ `pnpm-workspace.yaml` overrides: `effect@4.0.0-beta.92`,
214
+ `@effect/opentelemetry@4.0.0-beta.92`, and
215
+ `@effect/vitest@4.0.0-beta.92`. The generated pnpm policy also excludes the
216
+ known `effect@4.0.0-beta.92` and `@effect/opentelemetry@4.0.0-beta.92`
216
217
  versions from the 24-hour minimum-release-age gate and their trusted-publisher
217
218
  to provenance transitions from no-downgrade checks. Do not override those in
218
219
  app packages; update the framework cohort when the runtime moves.
@@ -417,6 +417,32 @@ function ensureYamlMapEntry(source, key, entryKey, value) {
417
417
  changed: true
418
418
  };
419
419
  }
420
+ function ensureYamlScalarMapEntry(source, key, entryKey, value) {
421
+ const entryLine = ` ${entryKey}: ${value}`;
422
+ const escapedEntryKey = entryKey.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
423
+ const currentEntryPattern = new RegExp(`^ {2}${escapedEntryKey}: .+$`, 'mu');
424
+ const currentEntry = source.match(currentEntryPattern);
425
+ if (currentEntry) {
426
+ if (currentEntry[0] === entryLine) return {
427
+ source,
428
+ changed: false
429
+ };
430
+ return {
431
+ source: source.replace(currentEntryPattern, entryLine),
432
+ changed: true
433
+ };
434
+ }
435
+ const headerPattern = new RegExp(`^${key}:\\n(?:(?: .+\\n)*)`, 'mu');
436
+ const header = source.match(headerPattern);
437
+ if (header) return {
438
+ source: source.replace(headerPattern, `${header[0]}${entryLine}\n`),
439
+ changed: true
440
+ };
441
+ return {
442
+ source: `${source.trimEnd()}\n${key}:\n${entryLine}\n`,
443
+ changed: true
444
+ };
445
+ }
420
446
  function removeYamlMapEntry(source, entryKey) {
421
447
  const packageName = entryKey.includes('@') ? entryKey.slice(0, entryKey.lastIndexOf('@')) : entryKey;
422
448
  const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
@@ -501,21 +527,34 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
501
527
  [
502
528
  /^ {4}'@effect\/vitest>effect': .+$/mu,
503
529
  ` '@effect/vitest>effect': '${versions_cjs_namespaceObject.EFFECT_VERSION}'`
530
+ ]
531
+ ];
532
+ for (const [pattern, replacement] of replacements){
533
+ const result = replaceYamlLine(source, pattern, replacement);
534
+ source = result.source;
535
+ changed = result.changed || changed;
536
+ }
537
+ for (const [entryKey, version] of [
538
+ [
539
+ "'@effect/opentelemetry'",
540
+ versions_cjs_namespaceObject.EFFECT_VERSION
504
541
  ],
505
542
  [
506
- /^ {2}'@effect\/vitest': .+$/mu,
507
- ` '@effect/vitest': ${versions_cjs_namespaceObject.EFFECT_VITEST_VERSION}`
543
+ "'@effect/vitest'",
544
+ versions_cjs_namespaceObject.EFFECT_VITEST_VERSION
508
545
  ],
509
546
  [
510
- /^ {2}effect: .+$/mu,
511
- ` effect: ${versions_cjs_namespaceObject.EFFECT_VERSION}`
547
+ 'effect',
548
+ versions_cjs_namespaceObject.EFFECT_VERSION
512
549
  ]
513
- ];
514
- for (const [pattern, replacement] of replacements){
515
- const result = replaceYamlLine(source, pattern, replacement);
550
+ ]){
551
+ const result = ensureYamlScalarMapEntry(source, 'overrides', entryKey, version);
516
552
  source = result.source;
517
553
  changed = result.changed || changed;
518
554
  }
555
+ const parcelWatcherBuildPolicy = ensureYamlScalarMapEntry(source, 'allowBuilds', "'@parcel/watcher'", 'true');
556
+ source = parcelWatcherBuildPolicy.source;
557
+ changed = parcelWatcherBuildPolicy.changed || changed;
519
558
  for (const item of strictEffectPackageVersionPolicyExclusions){
520
559
  const packageName = item.slice(0, item.lastIndexOf('@'));
521
560
  const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
@@ -37,8 +37,8 @@ const CLOUDFLARE_COMPATIBILITY_DATE = '2026-06-02';
37
37
  const TAILWIND_VERSION = '4.3.1';
38
38
  const TAILWIND_POSTCSS_VERSION = '4.3.1';
39
39
  const POSTCSS_VERSION = '8.5.15';
40
- const EFFECT_VERSION = '4.0.0-beta.91';
41
- const EFFECT_VITEST_VERSION = '4.0.0-beta.91';
40
+ const EFFECT_VERSION = '4.0.0-beta.92';
41
+ const EFFECT_VITEST_VERSION = '4.0.0-beta.92';
42
42
  const EFFECT_TSGO_VERSION = '0.14.6';
43
43
  const DRIZZLE_ORM_VERSION = '1.0.0-rc.4';
44
44
  const TYPESCRIPT_STABLE_VERSION = '6.0.3';
@@ -370,6 +370,32 @@ function ensureYamlMapEntry(source, key, entryKey, value) {
370
370
  changed: true
371
371
  };
372
372
  }
373
+ function ensureYamlScalarMapEntry(source, key, entryKey, value) {
374
+ const entryLine = ` ${entryKey}: ${value}`;
375
+ const escapedEntryKey = entryKey.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
376
+ const currentEntryPattern = new RegExp(`^ {2}${escapedEntryKey}: .+$`, 'mu');
377
+ const currentEntry = source.match(currentEntryPattern);
378
+ if (currentEntry) {
379
+ if (currentEntry[0] === entryLine) return {
380
+ source,
381
+ changed: false
382
+ };
383
+ return {
384
+ source: source.replace(currentEntryPattern, entryLine),
385
+ changed: true
386
+ };
387
+ }
388
+ const headerPattern = new RegExp(`^${key}:\\n(?:(?: .+\\n)*)`, 'mu');
389
+ const header = source.match(headerPattern);
390
+ if (header) return {
391
+ source: source.replace(headerPattern, `${header[0]}${entryLine}\n`),
392
+ changed: true
393
+ };
394
+ return {
395
+ source: `${source.trimEnd()}\n${key}:\n${entryLine}\n`,
396
+ changed: true
397
+ };
398
+ }
373
399
  function removeYamlMapEntry(source, entryKey) {
374
400
  const packageName = entryKey.includes('@') ? entryKey.slice(0, entryKey.lastIndexOf('@')) : entryKey;
375
401
  const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
@@ -454,21 +480,34 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
454
480
  [
455
481
  /^ {4}'@effect\/vitest>effect': .+$/mu,
456
482
  ` '@effect/vitest>effect': '${EFFECT_VERSION}'`
483
+ ]
484
+ ];
485
+ for (const [pattern, replacement] of replacements){
486
+ const result = replaceYamlLine(source, pattern, replacement);
487
+ source = result.source;
488
+ changed = result.changed || changed;
489
+ }
490
+ for (const [entryKey, version] of [
491
+ [
492
+ "'@effect/opentelemetry'",
493
+ EFFECT_VERSION
457
494
  ],
458
495
  [
459
- /^ {2}'@effect\/vitest': .+$/mu,
460
- ` '@effect/vitest': ${EFFECT_VITEST_VERSION}`
496
+ "'@effect/vitest'",
497
+ EFFECT_VITEST_VERSION
461
498
  ],
462
499
  [
463
- /^ {2}effect: .+$/mu,
464
- ` effect: ${EFFECT_VERSION}`
500
+ 'effect',
501
+ EFFECT_VERSION
465
502
  ]
466
- ];
467
- for (const [pattern, replacement] of replacements){
468
- const result = replaceYamlLine(source, pattern, replacement);
503
+ ]){
504
+ const result = ensureYamlScalarMapEntry(source, 'overrides', entryKey, version);
469
505
  source = result.source;
470
506
  changed = result.changed || changed;
471
507
  }
508
+ const parcelWatcherBuildPolicy = ensureYamlScalarMapEntry(source, 'allowBuilds', "'@parcel/watcher'", 'true');
509
+ source = parcelWatcherBuildPolicy.source;
510
+ changed = parcelWatcherBuildPolicy.changed || changed;
472
511
  for (const item of strictEffectPackageVersionPolicyExclusions){
473
512
  const packageName = item.slice(0, item.lastIndexOf('@'));
474
513
  const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
@@ -8,8 +8,8 @@ const CLOUDFLARE_COMPATIBILITY_DATE = '2026-06-02';
8
8
  const TAILWIND_VERSION = '4.3.1';
9
9
  const TAILWIND_POSTCSS_VERSION = '4.3.1';
10
10
  const POSTCSS_VERSION = '8.5.15';
11
- const EFFECT_VERSION = '4.0.0-beta.91';
12
- const EFFECT_VITEST_VERSION = '4.0.0-beta.91';
11
+ const EFFECT_VERSION = '4.0.0-beta.92';
12
+ const EFFECT_VITEST_VERSION = '4.0.0-beta.92';
13
13
  const EFFECT_TSGO_VERSION = '0.14.6';
14
14
  const DRIZZLE_ORM_VERSION = '1.0.0-rc.4';
15
15
  const TYPESCRIPT_STABLE_VERSION = '6.0.3';
@@ -371,6 +371,32 @@ function ensureYamlMapEntry(source, key, entryKey, value) {
371
371
  changed: true
372
372
  };
373
373
  }
374
+ function ensureYamlScalarMapEntry(source, key, entryKey, value) {
375
+ const entryLine = ` ${entryKey}: ${value}`;
376
+ const escapedEntryKey = entryKey.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
377
+ const currentEntryPattern = new RegExp(`^ {2}${escapedEntryKey}: .+$`, 'mu');
378
+ const currentEntry = source.match(currentEntryPattern);
379
+ if (currentEntry) {
380
+ if (currentEntry[0] === entryLine) return {
381
+ source,
382
+ changed: false
383
+ };
384
+ return {
385
+ source: source.replace(currentEntryPattern, entryLine),
386
+ changed: true
387
+ };
388
+ }
389
+ const headerPattern = new RegExp(`^${key}:\\n(?:(?: .+\\n)*)`, 'mu');
390
+ const header = source.match(headerPattern);
391
+ if (header) return {
392
+ source: source.replace(headerPattern, `${header[0]}${entryLine}\n`),
393
+ changed: true
394
+ };
395
+ return {
396
+ source: `${source.trimEnd()}\n${key}:\n${entryLine}\n`,
397
+ changed: true
398
+ };
399
+ }
374
400
  function removeYamlMapEntry(source, entryKey) {
375
401
  const packageName = entryKey.includes('@') ? entryKey.slice(0, entryKey.lastIndexOf('@')) : entryKey;
376
402
  const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
@@ -455,21 +481,34 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
455
481
  [
456
482
  /^ {4}'@effect\/vitest>effect': .+$/mu,
457
483
  ` '@effect/vitest>effect': '${EFFECT_VERSION}'`
484
+ ]
485
+ ];
486
+ for (const [pattern, replacement] of replacements){
487
+ const result = replaceYamlLine(source, pattern, replacement);
488
+ source = result.source;
489
+ changed = result.changed || changed;
490
+ }
491
+ for (const [entryKey, version] of [
492
+ [
493
+ "'@effect/opentelemetry'",
494
+ EFFECT_VERSION
458
495
  ],
459
496
  [
460
- /^ {2}'@effect\/vitest': .+$/mu,
461
- ` '@effect/vitest': ${EFFECT_VITEST_VERSION}`
497
+ "'@effect/vitest'",
498
+ EFFECT_VITEST_VERSION
462
499
  ],
463
500
  [
464
- /^ {2}effect: .+$/mu,
465
- ` effect: ${EFFECT_VERSION}`
501
+ 'effect',
502
+ EFFECT_VERSION
466
503
  ]
467
- ];
468
- for (const [pattern, replacement] of replacements){
469
- const result = replaceYamlLine(source, pattern, replacement);
504
+ ]){
505
+ const result = ensureYamlScalarMapEntry(source, 'overrides', entryKey, version);
470
506
  source = result.source;
471
507
  changed = result.changed || changed;
472
508
  }
509
+ const parcelWatcherBuildPolicy = ensureYamlScalarMapEntry(source, 'allowBuilds', "'@parcel/watcher'", 'true');
510
+ source = parcelWatcherBuildPolicy.source;
511
+ changed = parcelWatcherBuildPolicy.changed || changed;
473
512
  for (const item of strictEffectPackageVersionPolicyExclusions){
474
513
  const packageName = item.slice(0, item.lastIndexOf('@'));
475
514
  const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
@@ -9,8 +9,8 @@ const CLOUDFLARE_COMPATIBILITY_DATE = '2026-06-02';
9
9
  const TAILWIND_VERSION = '4.3.1';
10
10
  const TAILWIND_POSTCSS_VERSION = '4.3.1';
11
11
  const POSTCSS_VERSION = '8.5.15';
12
- const EFFECT_VERSION = '4.0.0-beta.91';
13
- const EFFECT_VITEST_VERSION = '4.0.0-beta.91';
12
+ const EFFECT_VERSION = '4.0.0-beta.92';
13
+ const EFFECT_VITEST_VERSION = '4.0.0-beta.92';
14
14
  const EFFECT_TSGO_VERSION = '0.14.6';
15
15
  const DRIZZLE_ORM_VERSION = '1.0.0-rc.4';
16
16
  const TYPESCRIPT_STABLE_VERSION = '6.0.3';
@@ -13,8 +13,8 @@ export declare const CLOUDFLARE_COMPATIBILITY_DATE = "2026-06-02";
13
13
  export declare const TAILWIND_VERSION = "4.3.1";
14
14
  export declare const TAILWIND_POSTCSS_VERSION = "4.3.1";
15
15
  export declare const POSTCSS_VERSION = "8.5.15";
16
- export declare const EFFECT_VERSION = "4.0.0-beta.91";
17
- export declare const EFFECT_VITEST_VERSION = "4.0.0-beta.91";
16
+ export declare const EFFECT_VERSION = "4.0.0-beta.92";
17
+ export declare const EFFECT_VITEST_VERSION = "4.0.0-beta.92";
18
18
  export declare const EFFECT_TSGO_VERSION = "0.14.6";
19
19
  export declare const DRIZZLE_ORM_VERSION = "1.0.0-rc.4";
20
20
  export declare const TYPESCRIPT_STABLE_VERSION = "6.0.3";
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
24
- "version": "3.5.0-ultramodern.20",
24
+ "version": "3.5.0-ultramodern.22",
25
25
  "types": "./dist/types/index.d.ts",
26
26
  "main": "./dist/esm-node/index.js",
27
27
  "bin": {
@@ -77,7 +77,7 @@
77
77
  "@modern-js/codesmith": "2.6.9",
78
78
  "oxfmt": "0.56.0",
79
79
  "ultracite": "7.8.3",
80
- "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.20"
80
+ "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.22"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@rslib/core": "0.23.1",
@@ -99,6 +99,6 @@
99
99
  "test": "rm -rf dist && rslib build -c rslibconfig.mts && rstest --passWithNoTests"
100
100
  },
101
101
  "ultramodern": {
102
- "frameworkVersion": "3.5.0-ultramodern.20"
102
+ "frameworkVersion": "3.5.0-ultramodern.22"
103
103
  }
104
104
  }
@@ -48,11 +48,13 @@ peerDependencyRules:
48
48
  overrides:
49
49
  '@tanstack/react-router': {{tanstackRouterVersion}}
50
50
  '@tanstack/router-core': {{tanstackRouterCoreVersion}}
51
+ '@effect/opentelemetry': {{effectVersion}}
51
52
  '@effect/vitest': {{effectVitestVersion}}
52
53
  effect: {{effectVersion}}
53
54
  node-fetch: '{{nodeFetchVersion}}'
54
55
 
55
56
  allowBuilds:
57
+ '@parcel/watcher': true
56
58
  '@swc/core': true
57
59
  core-js: true
58
60
  esbuild: true
@@ -1582,6 +1582,14 @@ for (const requiredPath of requiredPaths) {
1582
1582
  assertExists(requiredPath);
1583
1583
  }
1584
1584
  const pnpmWorkspace = readText('pnpm-workspace.yaml');
1585
+ assert(
1586
+ pnpmWorkspace.includes("'@effect/opentelemetry': {{effectVersion}}"),
1587
+ 'pnpm-workspace.yaml must override @effect/opentelemetry to the generated Effect cohort',
1588
+ );
1589
+ assert(
1590
+ pnpmWorkspace.includes('effect: {{effectVersion}}'),
1591
+ 'pnpm-workspace.yaml must override effect to the generated Effect cohort',
1592
+ );
1585
1593
  assert(
1586
1594
  pnpmWorkspace.includes(
1587
1595
  "'@module-federation/modern-js-v3@{{moduleFederationVersion}}': patches/@module-federation__modern-js-v3@{{moduleFederationVersion}}.patch",