@bleedingdev/modern-js-create 3.2.0-ultramodern.40 → 3.2.0-ultramodern.41

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/index.js CHANGED
@@ -4676,7 +4676,7 @@ function createTemplateManifest(modernVersion, packageSource) {
4676
4676
  'provenance-present'
4677
4677
  ],
4678
4678
  materializationValidation: [
4679
- 'path-boundary-allowlist',
4679
+ 'path-boundary-policy',
4680
4680
  'path-boundary-denylist',
4681
4681
  'no-path-traversal',
4682
4682
  'no-absolute-paths',
@@ -5377,23 +5377,13 @@ function writeApp(targetDir, scope, app, packageSource, enableTailwind) {
5377
5377
  writeFile(targetDir, `${app.directory}/module-federation.config.ts`, 'shell' === app.kind ? createShellModuleFederationConfig() : createRemoteModuleFederationConfig(app));
5378
5378
  writeFile(targetDir, `${app.directory}/src/routes/layout.tsx`, createLayout(app.id));
5379
5379
  writeFile(targetDir, `${app.directory}/src/routes/[lang]/page.tsx`, 'shell' === app.kind ? createShellPage() : createRemotePage(app));
5380
- for (const route of createRouteOwnedI18nPaths(app)){
5381
- if ('/' === route.canonicalPath || 'shell' === app.kind) continue;
5382
- const routePaths = new Set([
5383
- route.canonicalPath,
5384
- ...Object.values(route.localisedPaths)
5385
- ]);
5386
- for (const routePath of routePaths)if ('/' !== routePath) writeFile(targetDir, createRoutePageFilePath(app, routePath), createRouteAliasPage(routePath));
5387
- }
5380
+ for (const route of createRouteOwnedI18nPaths(app))if ('/' !== route.canonicalPath && 'shell' !== app.kind) writeFile(targetDir, createRoutePageFilePath(app, route.canonicalPath), createRouteAliasPage(route.canonicalPath));
5388
5381
  if ('shell' === app.kind) {
5389
5382
  writeFile(targetDir, `${app.directory}/src/routes/remote-components.tsx`, createShellRemoteComponents());
5390
5383
  writeFile(targetDir, `${app.directory}/src/effect/recommendations-client.ts`, createShellEffectClient(scope));
5391
5384
  writeFile(targetDir, `${app.directory}/src/routes/[lang]/tractors/page.tsx`, createShellTractorsPage());
5392
- writeFile(targetDir, `${app.directory}/src/routes/[lang]/traktory/page.tsx`, createShellTractorsPage());
5393
5385
  writeFile(targetDir, `${app.directory}/src/routes/[lang]/tractors/[slug]/page.tsx`, createShellProductPage());
5394
- writeFile(targetDir, `${app.directory}/src/routes/[lang]/traktory/[slug]/page.tsx`, createShellProductPage());
5395
5386
  writeFile(targetDir, `${app.directory}/src/routes/[lang]/cart/page.tsx`, createShellCartPage());
5396
- writeFile(targetDir, `${app.directory}/src/routes/[lang]/kosik/page.tsx`, createShellCartPage());
5397
5387
  }
5398
5388
  if (appHasEffectApi(app)) {
5399
5389
  writeFile(targetDir, `${app.directory}/shared/effect/api.ts`, createEffectSharedApi(app));
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
24
- "version": "3.2.0-ultramodern.40",
24
+ "version": "3.2.0-ultramodern.41",
25
25
  "types": "./dist/types/index.d.ts",
26
26
  "main": "./dist/index.js",
27
27
  "bin": {
@@ -41,7 +41,7 @@
41
41
  "@types/node": "^25.9.1",
42
42
  "@typescript/native-preview": "7.0.0-dev.20260527.2",
43
43
  "tsx": "^4.22.3",
44
- "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.40"
44
+ "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.41"
45
45
  },
46
46
  "publishConfig": {
47
47
  "registry": "https://registry.npmjs.org/",
@@ -54,6 +54,6 @@
54
54
  "start": "node ./dist/index.js"
55
55
  },
56
56
  "ultramodern": {
57
- "frameworkVersion": "3.2.0-ultramodern.40"
57
+ "frameworkVersion": "3.2.0-ultramodern.41"
58
58
  }
59
59
  }
@@ -36,7 +36,7 @@ ScriptedAlchemy/TechsioCZ skills are private and are cloned only when the curren
36
36
  pnpm skills:install
37
37
  ```
38
38
 
39
- The installer copies only the allowlisted private skills from `.agents/skills-lock.json`: `plan-graph`, `dag`, `subagent-graph`, `helm`, and `debugger-mode`.
39
+ The installer copies only the pinned private skills from `.agents/skills-lock.json`: `plan-graph`, `dag`, `subagent-graph`, `helm`, and `debugger-mode`.
40
40
 
41
41
  ## Agent Reference Repositories
42
42
 
@@ -58,4 +58,4 @@ Agents may read files under `repos/` to understand upstream patterns, APIs, and
58
58
 
59
59
  ## Skill Provenance
60
60
 
61
- The vendored Rstack skills, public Module Federation skill, and private TechsioCZ skill allowlist are pinned in `.agents/skills-lock.json`. Do not update, remove, or replace them casually. If a skill needs updating, update the lock file and run `pnpm check`.
61
+ The vendored Rstack skills, public Module Federation skill, and private TechsioCZ skill set are pinned in `.agents/skills-lock.json`. Do not update, remove, or replace them casually. If a skill needs updating, update the lock file and run `pnpm check`.
@@ -4,22 +4,7 @@ packages:
4
4
  - services/*
5
5
  - packages/*
6
6
 
7
- minimumReleaseAge: 1440
8
- minimumReleaseAgeStrict: true
9
- minimumReleaseAgeIgnoreMissingTime: false
10
- minimumReleaseAgeExclude:
11
- - '@modern-js/*'
12
- - '@bleedingdev/*'
13
- - '@effect/tsgo'
14
- - '@effect/tsgo-*'
15
- - '@typescript/native-preview'
16
- - '@typescript/native-preview-*'
17
- - '@cloudflare/*'
18
- - miniflare
19
- - workerd
20
- - wrangler
21
- trustPolicy: no-downgrade
22
- trustPolicyIgnoreAfter: 1440
7
+ minimumReleaseAge: 0
23
8
  blockExoticSubdeps: true
24
9
  engineStrict: true
25
10
  pmOnFail: error
@@ -244,30 +244,18 @@ assert(
244
244
  JSON.stringify(['apps/*', 'apps/remotes/*', 'services/*', 'packages/*']),
245
245
  'pnpm-workspace.yaml must retain workspace package globs',
246
246
  );
247
- assert(readPnpmConfig('minimumReleaseAge') === 1440, 'pnpm minimumReleaseAge must be 1440');
248
- assert(readPnpmConfig('minimumReleaseAgeStrict') === true, 'pnpm minimumReleaseAgeStrict must be true');
249
- assert(
250
- readPnpmConfig('minimumReleaseAgeIgnoreMissingTime') === false,
251
- 'pnpm minimumReleaseAgeIgnoreMissingTime must be false',
252
- );
253
- assert(
254
- JSON.stringify(readPnpmConfig('minimumReleaseAgeExclude')) ===
255
- JSON.stringify([
256
- '@modern-js/*',
257
- '@bleedingdev/*',
258
- '@effect/tsgo',
259
- '@effect/tsgo-*',
260
- '@typescript/native-preview',
261
- '@typescript/native-preview-*',
262
- '@cloudflare/*',
263
- 'miniflare',
264
- 'workerd',
265
- 'wrangler',
266
- ]),
267
- 'pnpm minimumReleaseAgeExclude must retain framework and Cloudflare exceptions',
268
- );
269
- assert(readPnpmConfig('trustPolicy') === 'no-downgrade', 'pnpm trustPolicy must be no-downgrade');
270
- assert(readPnpmConfig('trustPolicyIgnoreAfter') === 1440, 'pnpm trustPolicyIgnoreAfter must be 1440');
247
+ assert(readPnpmConfig('minimumReleaseAge') === 0, 'pnpm minimumReleaseAge must be 0');
248
+ assert(readPnpmConfig('minimumReleaseAgeStrict') === undefined, 'pnpm minimumReleaseAgeStrict must stay unset');
249
+ assert(
250
+ readPnpmConfig('minimumReleaseAgeIgnoreMissingTime') === undefined,
251
+ 'pnpm minimumReleaseAgeIgnoreMissingTime must stay unset',
252
+ );
253
+ assert(
254
+ readPnpmConfig('minimumReleaseAgeExclude') === undefined,
255
+ 'pnpm minimumReleaseAgeExclude must stay unset',
256
+ );
257
+ assert(readPnpmConfig('trustPolicy') === undefined, 'pnpm trustPolicy must stay unset');
258
+ assert(readPnpmConfig('trustPolicyIgnoreAfter') === undefined, 'pnpm trustPolicyIgnoreAfter must stay unset');
271
259
  assert(readPnpmConfig('blockExoticSubdeps') === true, 'pnpm blockExoticSubdeps must be true');
272
260
  assert(readPnpmConfig('engineStrict') === true, 'pnpm engineStrict must be true');
273
261
  assert(readPnpmConfig('pmOnFail') === 'error', 'pnpm pmOnFail must be error');
@@ -492,7 +480,7 @@ assert(
492
480
  for (const skillName of privateAgentSkills) {
493
481
  assert(
494
482
  privateSource.baseline?.some((skill) => skill.name === skillName),
495
- `Agent skills lock must allowlist private skill ${skillName}`,
483
+ `Agent skills lock must pin private skill ${skillName}`,
496
484
  );
497
485
  }
498
486
 
@@ -926,7 +914,7 @@ assert(
926
914
  privateAgentSkills.every((skillName) =>
927
915
  manifest.agentSkills?.privateSource?.baseline?.includes(skillName),
928
916
  ),
929
- 'Template manifest must list every private agent skill allowlist entry',
917
+ 'Template manifest must list every pinned private agent skill entry',
930
918
  );
931
919
  assert(
932
920
  manifest.validation?.expectedCommands?.includes('mise exec -- pnpm run ultramodern:check'),