@bleedingdev/modern-js-ultramodern-create 3.8.3-ultramodern.5 → 3.9.0-ultramodern.1

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 (107) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +7 -3
  3. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +7 -3
  4. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +7 -3
  5. package/dist/types/cli/flags.d.ts +1 -1
  6. package/dist/types/cli/package-source.d.ts +1 -1
  7. package/dist/types/ultramodern-release-cohort.d.ts +1 -1
  8. package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +1 -1
  9. package/dist/types/ultramodern-tooling/commands/mf-types.d.ts +1 -1
  10. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +2 -2
  11. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +1 -1
  12. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +2 -2
  13. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +2 -2
  14. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +2 -2
  15. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +1 -1
  16. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.d.ts +1 -1
  17. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +2 -2
  18. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +2 -2
  19. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +2 -2
  20. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +8 -8
  21. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +1 -1
  22. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.d.ts +1 -1
  23. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +1 -1
  24. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +2 -2
  25. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +2 -2
  26. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +4 -4
  27. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.d.ts +2 -2
  28. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.d.ts +1 -1
  29. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +1 -1
  30. package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +1 -1
  31. package/dist/types/ultramodern-tooling/commands/skills.d.ts +1 -1
  32. package/dist/types/ultramodern-tooling/commands/sync-delivery-unit.d.ts +1 -1
  33. package/dist/types/ultramodern-tooling/commands/validate.d.ts +1 -1
  34. package/dist/types/ultramodern-tooling/config/index.d.ts +7 -7
  35. package/dist/types/ultramodern-tooling/config/load.d.ts +1 -1
  36. package/dist/types/ultramodern-tooling/config/metadata.d.ts +1 -1
  37. package/dist/types/ultramodern-tooling/config/normalize.d.ts +2 -2
  38. package/dist/types/ultramodern-tooling/config/types.d.ts +2 -2
  39. package/dist/types/ultramodern-tooling/config.d.ts +1 -1
  40. package/dist/types/ultramodern-workspace/add-shell.d.ts +1 -1
  41. package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +1 -1
  42. package/dist/types/ultramodern-workspace/add-vertical/plan.d.ts +1 -1
  43. package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +2 -2
  44. package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +2 -2
  45. package/dist/types/ultramodern-workspace/add-vertical/topology.d.ts +1 -1
  46. package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +2 -2
  47. package/dist/types/ultramodern-workspace/add-vertical.d.ts +7 -7
  48. package/dist/types/ultramodern-workspace/api/checkout-cart.d.ts +1 -1
  49. package/dist/types/ultramodern-workspace/api/client.d.ts +1 -1
  50. package/dist/types/ultramodern-workspace/api/contracts.d.ts +1 -1
  51. package/dist/types/ultramodern-workspace/api/names.d.ts +1 -1
  52. package/dist/types/ultramodern-workspace/api/rpc.d.ts +1 -1
  53. package/dist/types/ultramodern-workspace/api/service.d.ts +1 -1
  54. package/dist/types/ultramodern-workspace/api/shared.d.ts +1 -1
  55. package/dist/types/ultramodern-workspace/api.d.ts +6 -6
  56. package/dist/types/ultramodern-workspace/app-files.d.ts +1 -1
  57. package/dist/types/ultramodern-workspace/backend-federation.d.ts +1 -1
  58. package/dist/types/ultramodern-workspace/bridge-config/cli.d.ts +1 -1
  59. package/dist/types/ultramodern-workspace/bridge-config/gates.d.ts +1 -1
  60. package/dist/types/ultramodern-workspace/bridge-config/index.d.ts +4 -4
  61. package/dist/types/ultramodern-workspace/bridge-config/normalize.d.ts +1 -1
  62. package/dist/types/ultramodern-workspace/bridge-config/shared.d.ts +1 -1
  63. package/dist/types/ultramodern-workspace/bridge-config/validation.d.ts +1 -1
  64. package/dist/types/ultramodern-workspace/bridge-config/workspace-packages.d.ts +1 -1
  65. package/dist/types/ultramodern-workspace/bridge-config.d.ts +1 -1
  66. package/dist/types/ultramodern-workspace/codesmith.d.ts +1 -1
  67. package/dist/types/ultramodern-workspace/contracts.d.ts +2 -2
  68. package/dist/types/ultramodern-workspace/delivery-unit-schema/types.d.ts +1 -1
  69. package/dist/types/ultramodern-workspace/delivery-unit-schema/up-projection.d.ts +2 -2
  70. package/dist/types/ultramodern-workspace/delivery-unit-stamp.d.ts +1 -1
  71. package/dist/types/ultramodern-workspace/delivery-unit.d.ts +1 -1
  72. package/dist/types/ultramodern-workspace/demo-components.d.ts +1 -1
  73. package/dist/types/ultramodern-workspace/descriptors.d.ts +1 -1
  74. package/dist/types/ultramodern-workspace/fs-io.d.ts +1 -1
  75. package/dist/types/ultramodern-workspace/generation-result.d.ts +1 -1
  76. package/dist/types/ultramodern-workspace/index.d.ts +10 -10
  77. package/dist/types/ultramodern-workspace/locales.d.ts +1 -1
  78. package/dist/types/ultramodern-workspace/mf-validation/discovery.d.ts +1 -1
  79. package/dist/types/ultramodern-workspace/mf-validation/inspect.d.ts +1 -1
  80. package/dist/types/ultramodern-workspace/mf-validation/object-literal.d.ts +1 -1
  81. package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +1 -1
  82. package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +1 -1
  83. package/dist/types/ultramodern-workspace/mf-validation/validate.d.ts +1 -1
  84. package/dist/types/ultramodern-workspace/mf-validation.d.ts +4 -4
  85. package/dist/types/ultramodern-workspace/module-federation/config.d.ts +1 -1
  86. package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +1 -1
  87. package/dist/types/ultramodern-workspace/module-federation/remote-refs.d.ts +1 -1
  88. package/dist/types/ultramodern-workspace/module-federation.d.ts +5 -5
  89. package/dist/types/ultramodern-workspace/naming.d.ts +1 -1
  90. package/dist/types/ultramodern-workspace/overlays.d.ts +1 -1
  91. package/dist/types/ultramodern-workspace/package-json.d.ts +3 -3
  92. package/dist/types/ultramodern-workspace/package-source.d.ts +1 -1
  93. package/dist/types/ultramodern-workspace/policy.d.ts +3 -3
  94. package/dist/types/ultramodern-workspace/public-api.d.ts +6 -6
  95. package/dist/types/ultramodern-workspace/public-surface.d.ts +1 -1
  96. package/dist/types/ultramodern-workspace/routes.d.ts +1 -1
  97. package/dist/types/ultramodern-workspace/shells.d.ts +1 -1
  98. package/dist/types/ultramodern-workspace/tsconfigs.d.ts +1 -1
  99. package/dist/types/ultramodern-workspace/types.d.ts +3 -3
  100. package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +1 -1
  101. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +2 -2
  102. package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +13 -13
  103. package/dist/types/ultramodern-workspace/write-app.d.ts +2 -2
  104. package/dist/types/ultramodern-workspace/write-workspace.d.ts +3 -3
  105. package/dist/types/ultramodern-workspace/zerops.d.ts +1 -1
  106. package/package.json +7 -7
  107. package/template-workspace/.modernjs/release-cohort.json +40 -40
package/README.md CHANGED
@@ -177,7 +177,7 @@ Package source is explicit and recorded in `.modernjs/ultramodern.json`.
177
177
 
178
178
  | Strategy | Use when | CLI |
179
179
  | --- | --- | --- |
180
- | `install` | Published BleedingDev package cohort or release proof | Default for the BleedingDev create package; optional `--ultramodern-package-version`, `--ultramodern-package-registry`, `--ultramodern-package-scope`, and `--ultramodern-package-name-prefix` |
180
+ | `install` | Published BleedingDev package cohort or release proof | Default for the BleedingDev create package; optional `--ultramodern-package-version`, `--ultramodern-package-registry` (serves the cohort scope only; release-age metadata for every other dependency is validated against npmjs), `--ultramodern-package-scope`, and `--ultramodern-package-name-prefix` |
181
181
  | `workspace` | Local monorepo testing against unreleased packages | `--workspace` or `--ultramodern-package-source=workspace` |
182
182
 
183
183
  ## Migrating Older Workspaces
@@ -423,6 +423,8 @@ function updateGeneratedPnpmWorkspacePolicy(io, packageSource, options = {}) {
423
423
  for (const stalePatchFile of stalePatchFiles)changed = io.remove(stalePatchFile) || changed;
424
424
  return changed;
425
425
  }
426
+ const NPM_REGISTRY_URL = 'https://registry.npmjs.org/';
427
+ const LOOPBACK_REGISTRY_HOST = '127.0.0.1';
426
428
  function packageRegistryUrl(registryUrl, packageName) {
427
429
  let base;
428
430
  try {
@@ -430,7 +432,7 @@ function packageRegistryUrl(registryUrl, packageName) {
430
432
  } catch {
431
433
  throw new Error(`Registry URL is invalid: ${registryUrl}`);
432
434
  }
433
- if ('https:' !== base.protocol) throw new Error(`Registry URL must use HTTPS: ${registryUrl}`);
435
+ if ('https:' !== base.protocol && !('http:' === base.protocol && base.hostname === LOOPBACK_REGISTRY_HOST)) throw new Error(`Registry URL must use HTTPS: ${registryUrl}`);
434
436
  const encodedName = packageName.startsWith('@') ? packageName.replace('/', '%2f') : encodeURIComponent(packageName);
435
437
  return new URL(encodedName, base);
436
438
  }
@@ -473,7 +475,7 @@ async function resolveRegistryCandidates(candidates, options) {
473
475
  const key = packageVersionKey(candidate.packageName, candidate.version);
474
476
  let response;
475
477
  try {
476
- response = await fetchRegistryResponse(options.fetchImpl, packageRegistryUrl(options.registryUrl, candidate.packageName));
478
+ response = await fetchRegistryResponse(options.fetchImpl, packageRegistryUrl(options.registryUrlFor(candidate.packageName), candidate.packageName));
477
479
  } catch (error) {
478
480
  throw new Error(`Registry metadata is uncertain for ${key} (${candidate.path.join(' -> ')}): ${error instanceof Error ? error.message : String(error)}`);
479
481
  }
@@ -550,10 +552,12 @@ async function validateGeneratedPnpmLockReleaseAgePolicy(workspaceRoot, packageS
550
552
  return true;
551
553
  };
552
554
  const thirdPartyCandidates = closure.candidates.filter((candidate)=>!isFirstPartyCandidate(candidate.packageName, candidate.version));
555
+ const scopeRegistryUrl = options.registryUrl ?? packageSource.registry ?? NPM_REGISTRY_URL;
556
+ const scopePrefix = packageSource.aliasScope ? `@${packageSource.aliasScope.replace(/^@/u, '')}/` : void 0;
553
557
  const activeCandidates = await resolveRegistryCandidates(thirdPartyCandidates, {
554
558
  fetchImpl: options.fetchImpl ?? fetch,
555
559
  now,
556
- registryUrl: options.registryUrl ?? packageSource.registry ?? 'https://registry.npmjs.org/'
560
+ registryUrlFor: (packageName)=>void 0 !== scopePrefix && packageName.startsWith(scopePrefix) ? scopeRegistryUrl : NPM_REGISTRY_URL
557
561
  });
558
562
  const resolved = (0, policy_cjs_namespaceObject.resolveReleaseAgeApprovals)(activeCandidates, {
559
563
  approvals,
@@ -378,6 +378,8 @@ function updateGeneratedPnpmWorkspacePolicy(io, packageSource, options = {}) {
378
378
  for (const stalePatchFile of stalePatchFiles)changed = io.remove(stalePatchFile) || changed;
379
379
  return changed;
380
380
  }
381
+ const NPM_REGISTRY_URL = 'https://registry.npmjs.org/';
382
+ const LOOPBACK_REGISTRY_HOST = '127.0.0.1';
381
383
  function packageRegistryUrl(registryUrl, packageName) {
382
384
  let base;
383
385
  try {
@@ -385,7 +387,7 @@ function packageRegistryUrl(registryUrl, packageName) {
385
387
  } catch {
386
388
  throw new Error(`Registry URL is invalid: ${registryUrl}`);
387
389
  }
388
- if ('https:' !== base.protocol) throw new Error(`Registry URL must use HTTPS: ${registryUrl}`);
390
+ if ('https:' !== base.protocol && !('http:' === base.protocol && base.hostname === LOOPBACK_REGISTRY_HOST)) throw new Error(`Registry URL must use HTTPS: ${registryUrl}`);
389
391
  const encodedName = packageName.startsWith('@') ? packageName.replace('/', '%2f') : encodeURIComponent(packageName);
390
392
  return new URL(encodedName, base);
391
393
  }
@@ -428,7 +430,7 @@ async function resolveRegistryCandidates(candidates, options) {
428
430
  const key = packageVersionKey(candidate.packageName, candidate.version);
429
431
  let response;
430
432
  try {
431
- response = await fetchRegistryResponse(options.fetchImpl, packageRegistryUrl(options.registryUrl, candidate.packageName));
433
+ response = await fetchRegistryResponse(options.fetchImpl, packageRegistryUrl(options.registryUrlFor(candidate.packageName), candidate.packageName));
432
434
  } catch (error) {
433
435
  throw new Error(`Registry metadata is uncertain for ${key} (${candidate.path.join(' -> ')}): ${error instanceof Error ? error.message : String(error)}`);
434
436
  }
@@ -505,10 +507,12 @@ async function validateGeneratedPnpmLockReleaseAgePolicy(workspaceRoot, packageS
505
507
  return true;
506
508
  };
507
509
  const thirdPartyCandidates = closure.candidates.filter((candidate)=>!isFirstPartyCandidate(candidate.packageName, candidate.version));
510
+ const scopeRegistryUrl = options.registryUrl ?? packageSource.registry ?? NPM_REGISTRY_URL;
511
+ const scopePrefix = packageSource.aliasScope ? `@${packageSource.aliasScope.replace(/^@/u, '')}/` : void 0;
508
512
  const activeCandidates = await resolveRegistryCandidates(thirdPartyCandidates, {
509
513
  fetchImpl: options.fetchImpl ?? fetch,
510
514
  now,
511
- registryUrl: options.registryUrl ?? packageSource.registry ?? 'https://registry.npmjs.org/'
515
+ registryUrlFor: (packageName)=>void 0 !== scopePrefix && packageName.startsWith(scopePrefix) ? scopeRegistryUrl : NPM_REGISTRY_URL
512
516
  });
513
517
  const resolved = resolveReleaseAgeApprovals(activeCandidates, {
514
518
  approvals,
@@ -379,6 +379,8 @@ function updateGeneratedPnpmWorkspacePolicy(io, packageSource, options = {}) {
379
379
  for (const stalePatchFile of stalePatchFiles)changed = io.remove(stalePatchFile) || changed;
380
380
  return changed;
381
381
  }
382
+ const NPM_REGISTRY_URL = 'https://registry.npmjs.org/';
383
+ const LOOPBACK_REGISTRY_HOST = '127.0.0.1';
382
384
  function packageRegistryUrl(registryUrl, packageName) {
383
385
  let base;
384
386
  try {
@@ -386,7 +388,7 @@ function packageRegistryUrl(registryUrl, packageName) {
386
388
  } catch {
387
389
  throw new Error(`Registry URL is invalid: ${registryUrl}`);
388
390
  }
389
- if ('https:' !== base.protocol) throw new Error(`Registry URL must use HTTPS: ${registryUrl}`);
391
+ if ('https:' !== base.protocol && !('http:' === base.protocol && base.hostname === LOOPBACK_REGISTRY_HOST)) throw new Error(`Registry URL must use HTTPS: ${registryUrl}`);
390
392
  const encodedName = packageName.startsWith('@') ? packageName.replace('/', '%2f') : encodeURIComponent(packageName);
391
393
  return new URL(encodedName, base);
392
394
  }
@@ -429,7 +431,7 @@ async function resolveRegistryCandidates(candidates, options) {
429
431
  const key = packageVersionKey(candidate.packageName, candidate.version);
430
432
  let response;
431
433
  try {
432
- response = await fetchRegistryResponse(options.fetchImpl, packageRegistryUrl(options.registryUrl, candidate.packageName));
434
+ response = await fetchRegistryResponse(options.fetchImpl, packageRegistryUrl(options.registryUrlFor(candidate.packageName), candidate.packageName));
433
435
  } catch (error) {
434
436
  throw new Error(`Registry metadata is uncertain for ${key} (${candidate.path.join(' -> ')}): ${error instanceof Error ? error.message : String(error)}`);
435
437
  }
@@ -506,10 +508,12 @@ async function validateGeneratedPnpmLockReleaseAgePolicy(workspaceRoot, packageS
506
508
  return true;
507
509
  };
508
510
  const thirdPartyCandidates = closure.candidates.filter((candidate)=>!isFirstPartyCandidate(candidate.packageName, candidate.version));
511
+ const scopeRegistryUrl = options.registryUrl ?? packageSource.registry ?? NPM_REGISTRY_URL;
512
+ const scopePrefix = packageSource.aliasScope ? `@${packageSource.aliasScope.replace(/^@/u, '')}/` : void 0;
509
513
  const activeCandidates = await resolveRegistryCandidates(thirdPartyCandidates, {
510
514
  fetchImpl: options.fetchImpl ?? fetch,
511
515
  now,
512
- registryUrl: options.registryUrl ?? packageSource.registry ?? 'https://registry.npmjs.org/'
516
+ registryUrlFor: (packageName)=>void 0 !== scopePrefix && packageName.startsWith(scopePrefix) ? scopeRegistryUrl : NPM_REGISTRY_URL
513
517
  });
514
518
  const resolved = resolveReleaseAgeApprovals(activeCandidates, {
515
519
  approvals,
@@ -31,5 +31,5 @@ export declare function detectCodeSmithOverlays(args: string[]): {
31
31
  export declare function detectHorizontalRemoteFlag(args: string[]): boolean;
32
32
  export declare function detectPresetFlag(args: string[]): VerticalPresetFlag | undefined;
33
33
  export declare function detectApiProtocolFlag(args: string[]): ApiProtocolFlag | undefined;
34
- export declare function readBridgeCliOptions(args: string[]): import("../ultramodern-workspace").UltramodernBridgeConfig | undefined;
34
+ export declare function readBridgeCliOptions(args: string[]): import("../ultramodern-workspace/index.js").UltramodernBridgeConfig | undefined;
35
35
  export {};
@@ -1,4 +1,4 @@
1
- import { type ResolvedUltramodernPackageSource } from '../ultramodern-package-source';
1
+ import { type ResolvedUltramodernPackageSource } from '../ultramodern-package-source.js';
2
2
  type UltramodernPackageSource = ResolvedUltramodernPackageSource;
3
3
  type CreatePackageJson = {
4
4
  name?: string;
@@ -1,4 +1,4 @@
1
- import type { ResolvedUltramodernPackageSource } from './ultramodern-package-source';
1
+ import type { ResolvedUltramodernPackageSource } from './ultramodern-package-source.js';
2
2
  export declare const RELEASE_COHORT_PROJECTION_PATH = ".modernjs/release-cohort.json";
3
3
  type ReleaseCohortPackage = {
4
4
  sourceName: string;
@@ -1,2 +1,2 @@
1
- import { type CommandContext } from './context';
1
+ import { type CommandContext } from './context.js';
2
2
  export declare function runCloudflareOutputVerify(args: string[], context: CommandContext): number;
@@ -1,2 +1,2 @@
1
- import type { CommandContext } from './context';
1
+ import type { CommandContext } from './context.js';
2
2
  export declare function runMfTypes(args: string[], context: CommandContext): number;
@@ -1,5 +1,5 @@
1
- import type { ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source';
2
- import { type MigrationIo } from './io';
1
+ import type { ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source.js';
2
+ import { type MigrationIo } from './io.js';
3
3
  type PackageSourceReconciliationOptions = {
4
4
  canonical: Record<string, unknown>;
5
5
  label: string;
@@ -1,4 +1,4 @@
1
- import type { MigrationIo } from './io';
1
+ import type { MigrationIo } from './io.js';
2
2
  export declare function ensureGeneratedDeclarationPatches(io: MigrationIo, options: {
3
3
  includeDrizzleOrmPatch: boolean;
4
4
  }): boolean;
@@ -1,3 +1,3 @@
1
- import { type UltramodernToolingConfig } from '../../config';
2
- import { type MigrationIo } from './io';
1
+ import { type UltramodernToolingConfig } from '../../config/index.js';
2
+ import { type MigrationIo } from './io.js';
3
3
  export declare function updateGeneratedBackendFederationContractFiles(io: MigrationIo, config: UltramodernToolingConfig): void;
@@ -1,5 +1,5 @@
1
- import { type UltramodernToolingConfig } from '../../config';
2
- import { type MigrationIo } from './io';
1
+ import { type UltramodernToolingConfig } from '../../config/index.js';
2
+ import { type MigrationIo } from './io.js';
3
3
  export declare function rewriteLegacyApiMarkerBinding(source: string): string;
4
4
  export declare function rewriteApiMarkerIdentitySchema(source: string): string;
5
5
  export declare function updateGeneratedBuildIdentityModules(io: MigrationIo, config: UltramodernToolingConfig): void;
@@ -1,3 +1,3 @@
1
- import { type UltramodernToolingConfig } from '../../config';
2
- import { type MigrationIo } from './io';
1
+ import { type UltramodernToolingConfig } from '../../config/index.js';
2
+ import { type MigrationIo } from './io.js';
3
3
  export declare function updateGeneratedModernConfigs(io: MigrationIo, config: UltramodernToolingConfig): void;
@@ -1,2 +1,2 @@
1
- import { type MigrationIo } from './io';
1
+ import { type MigrationIo } from './io.js';
2
2
  export declare function ensureGeneratedOxfmtIgnorePatterns(io: MigrationIo): boolean;
@@ -1,2 +1,2 @@
1
- import { type MigrationIo } from './io';
1
+ import { type MigrationIo } from './io.js';
2
2
  export declare function ensureGeneratedOxlintComponentStyle(io: MigrationIo): boolean;
@@ -1,4 +1,4 @@
1
- import { type UltramodernToolingConfig } from '../../config';
2
- import { type MigrationIo } from './io';
1
+ import { type UltramodernToolingConfig } from '../../config/index.js';
2
+ import { type MigrationIo } from './io.js';
3
3
  export declare function removeGeneratedFileIfExists(io: MigrationIo, relativePath: string): boolean;
4
4
  export declare function removeStaleBackendFederationArtifacts(io: MigrationIo, config: UltramodernToolingConfig): boolean;
@@ -1,3 +1,3 @@
1
- import { type UltramodernToolingConfig } from '../../config';
2
- import { type MigrationIo } from './io';
1
+ import { type UltramodernToolingConfig } from '../../config/index.js';
2
+ import { type MigrationIo } from './io.js';
3
3
  export declare function updateGeneratedTypeScriptSurfaces(io: MigrationIo, config: UltramodernToolingConfig): void;
@@ -1,3 +1,3 @@
1
- import { type UltramodernToolingConfig } from '../../config';
2
- import { type MigrationIo } from './io';
1
+ import { type UltramodernToolingConfig } from '../../config/index.js';
2
+ import { type MigrationIo } from './io.js';
3
3
  export declare function updateGeneratedZeropsArtifacts(io: MigrationIo, config: UltramodernToolingConfig): void;
@@ -1,8 +1,8 @@
1
- export { updateGeneratedBackendFederationContractFiles } from './generated-artifacts-backend-federation';
2
- export { updateGeneratedBuildIdentityModules } from './generated-artifacts-build-identity';
3
- export { updateGeneratedModernConfigs } from './generated-artifacts-modern-configs';
4
- export { ensureGeneratedOxfmtIgnorePatterns } from './generated-artifacts-oxfmt';
5
- export { ensureGeneratedOxlintComponentStyle } from './generated-artifacts-oxlint';
6
- export { removeGeneratedFileIfExists, removeStaleBackendFederationArtifacts, } from './generated-artifacts-removal';
7
- export { updateGeneratedTypeScriptSurfaces } from './generated-artifacts-typescript';
8
- export { updateGeneratedZeropsArtifacts } from './generated-artifacts-zerops';
1
+ export { updateGeneratedBackendFederationContractFiles } from './generated-artifacts-backend-federation.js';
2
+ export { updateGeneratedBuildIdentityModules } from './generated-artifacts-build-identity.js';
3
+ export { updateGeneratedModernConfigs } from './generated-artifacts-modern-configs.js';
4
+ export { ensureGeneratedOxfmtIgnorePatterns } from './generated-artifacts-oxfmt.js';
5
+ export { ensureGeneratedOxlintComponentStyle } from './generated-artifacts-oxlint.js';
6
+ export { removeGeneratedFileIfExists, removeStaleBackendFederationArtifacts, } from './generated-artifacts-removal.js';
7
+ export { updateGeneratedTypeScriptSurfaces } from './generated-artifacts-typescript.js';
8
+ export { updateGeneratedZeropsArtifacts } from './generated-artifacts-zerops.js';
@@ -1,3 +1,3 @@
1
- import type { MigrationIo } from './io';
1
+ import type { MigrationIo } from './io.js';
2
2
  export declare function ensureGeneratedPatchFile(io: MigrationIo, relativePatchPath: string, sourcePatchPath: string): boolean;
3
3
  export declare function removeGeneratedPatchFileIfUnchanged(io: MigrationIo, relativePatchPath: string, sourcePatchPath: string): boolean;
@@ -1,3 +1,3 @@
1
- import type { MigrationIo } from './io';
1
+ import type { MigrationIo } from './io.js';
2
2
  export declare function generatedUiSourceRequiresRewrite(existingSource: string, nextSource: string): boolean;
3
3
  export declare function writeGeneratedUiSourceIfChanged(io: MigrationIo, filePath: string, nextSource: string): boolean;
@@ -1,2 +1,2 @@
1
- import type { CommandContext } from '../context';
1
+ import type { CommandContext } from '../context.js';
2
2
  export declare function runPnpmLockfileRefresh(context: CommandContext): number;
@@ -1,5 +1,5 @@
1
- import { type ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source';
2
- import type { WorkspaceApp } from '../../../ultramodern-workspace/types';
1
+ import { type ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source.js';
2
+ import type { WorkspaceApp } from '../../../ultramodern-workspace/types.js';
3
3
  export declare function updateModernDependencies(packageJson: Record<string, any>, packageSource: ResolvedUltramodernPackageSource): boolean;
4
4
  export declare function updateGeneratedToolingDependencies(packageJson: Record<string, any>, options?: {
5
5
  ownsGeneratedScripts?: boolean;
@@ -1,3 +1,3 @@
1
- import { type ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source';
2
- import { readUltramodernConfig } from '../../config';
1
+ import { type ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source.js';
2
+ import { readUltramodernConfig } from '../../config/index.js';
3
3
  export declare function createMigrationPackageSource(args: string[], current: ReturnType<typeof readUltramodernConfig>): ResolvedUltramodernPackageSource;
@@ -1,6 +1,6 @@
1
- import type { ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source';
2
- import { type UltramodernReleaseCohort } from '../../../ultramodern-release-cohort';
3
- import type { MigrationIo } from './io';
1
+ import type { ResolvedUltramodernPackageSource } from '../../../ultramodern-package-source.js';
2
+ import { type UltramodernReleaseCohort } from '../../../ultramodern-release-cohort.js';
3
+ import type { MigrationIo } from './io.js';
4
4
  type RegistryResponse = {
5
5
  ok: boolean;
6
6
  status: number;
@@ -20,7 +20,7 @@ export declare function validateGeneratedPnpmLockReleaseAgePolicy(workspaceRoot:
20
20
  registryUrl?: string;
21
21
  releaseCohort?: UltramodernReleaseCohort;
22
22
  }): Promise<{
23
- reviewCandidates: import("../../../ultramodern-workspace/policy").UltramodernReleaseAgeCandidate[];
23
+ reviewCandidates: import("../../../ultramodern-workspace/policy.js").UltramodernReleaseAgeCandidate[];
24
24
  minimumReleaseAgeExclude: string[];
25
25
  }>;
26
26
  export {};
@@ -1,5 +1,5 @@
1
- import type { WorkspaceApp } from '../../../ultramodern-workspace/types';
2
- import type { MigrationIo } from './io';
1
+ import type { WorkspaceApp } from '../../../ultramodern-workspace/types.js';
2
+ import type { MigrationIo } from './io.js';
3
3
  export declare function authoredSourceImportsReactRouter(packageDirectory: string): boolean;
4
4
  /**
5
5
  * The single definition of "this app is a React Router consumer", shared by the
@@ -1,4 +1,4 @@
1
- import type { MigrationIo } from './io';
1
+ import type { MigrationIo } from './io.js';
2
2
  export declare function updateUltramodernConfigToolchain(config: Record<string, any>): void;
3
3
  export declare function updateRootPackageToolchain(packageJson: Record<string, any>): void;
4
4
  export declare function updateGeneratedToolchainFiles(io: MigrationIo): void;
@@ -1,2 +1,2 @@
1
- import type { CommandContext } from './context';
1
+ import type { CommandContext } from './context.js';
2
2
  export declare function runMigrateStrictEffect(args: string[], context: CommandContext): number | Promise<number>;
@@ -1,2 +1,2 @@
1
- import { type CommandContext } from './context';
1
+ import { type CommandContext } from './context.js';
2
2
  export declare function runRoutesGenerate(args: string[], context: CommandContext): number;
@@ -1,2 +1,2 @@
1
- import { type CommandContext } from './context';
1
+ import { type CommandContext } from './context.js';
2
2
  export declare function runSkills(args: string[], context: CommandContext): number;
@@ -1 +1 @@
1
- export { runSyncDeliveryUnit } from '../../ultramodern-workspace/delivery-unit-sync';
1
+ export { runSyncDeliveryUnit } from '../../ultramodern-workspace/delivery-unit-sync.js';
@@ -1,2 +1,2 @@
1
- import { type CommandContext } from './context';
1
+ import { type CommandContext } from './context.js';
2
2
  export declare function runValidate(context: CommandContext): number;
@@ -1,7 +1,7 @@
1
- export * from './constants';
2
- export * from './json';
3
- export * from './load';
4
- export * from './metadata';
5
- export * from './normalize';
6
- export * from './synthesize';
7
- export * from './types';
1
+ export * from './constants.js';
2
+ export * from './json.js';
3
+ export * from './load.js';
4
+ export * from './metadata.js';
5
+ export * from './normalize.js';
6
+ export * from './synthesize.js';
7
+ export * from './types.js';
@@ -1,2 +1,2 @@
1
- import type { UltramodernToolingConfig } from './types';
1
+ import type { UltramodernToolingConfig } from './types.js';
2
2
  export declare function readUltramodernConfig(workspaceRoot?: string): UltramodernToolingConfig;
@@ -1,4 +1,4 @@
1
- import type { ResolvedPackageSource } from '../../ultramodern-workspace/types';
1
+ import type { ResolvedPackageSource } from '../../ultramodern-workspace/types.js';
2
2
  export declare function packageScopeFromRoot(workspaceRoot: string): string;
3
3
  export declare function packageSourceFromMetadata(workspaceRoot: string): ResolvedPackageSource | undefined;
4
4
  export declare function readOverlayPorts(workspaceRoot: string): Record<string, number>;
@@ -1,5 +1,5 @@
1
- import type { WorkspaceApp } from '../../ultramodern-workspace/types';
2
- import type { UltramodernToolingConfig } from './types';
1
+ import type { WorkspaceApp } from '../../ultramodern-workspace/types.js';
2
+ import type { UltramodernToolingConfig } from './types.js';
3
3
  type UnsupportedUltramodernConfigIssue = {
4
4
  field: 'schemaVersion';
5
5
  value: unknown;
@@ -1,5 +1,5 @@
1
- import type { UltramodernBridgeConfig } from '../../ultramodern-workspace/bridge-config';
2
- import type { ResolvedPackageSource, VerticalPreset, WorkspaceApi, WorkspaceApp, WorkspaceDeliveryUnitKind } from '../../ultramodern-workspace/types';
1
+ import type { UltramodernBridgeConfig } from '../../ultramodern-workspace/bridge-config/index.js';
2
+ import type { ResolvedPackageSource, VerticalPreset, WorkspaceApi, WorkspaceApp, WorkspaceDeliveryUnitKind } from '../../ultramodern-workspace/types.js';
3
3
  export type UltramodernToolingConfigSource = 'compact';
4
4
  export type UltramodernToolingConfigApp = {
5
5
  id: string;
@@ -1 +1 @@
1
- export * from './config/index';
1
+ export * from './config/index.js';
@@ -1,4 +1,4 @@
1
- import type { AddUltramodernShellOptions, UltramodernGenerationResult, UltramodernVerticalPlan } from './types';
1
+ import type { AddUltramodernShellOptions, UltramodernGenerationResult, UltramodernVerticalPlan } from './types.js';
2
2
  /**
3
3
  * Add an additional thin shell to an existing workspace (G28). Transactional:
4
4
  * the whole write-set is applied inside {@link runWorkspaceTransaction}; any
@@ -1,4 +1,4 @@
1
- import type { AddUltramodernVerticalOptions, UltramodernGenerationResult } from '../types';
1
+ import type { AddUltramodernVerticalOptions, UltramodernGenerationResult } from '../types.js';
2
2
  /**
3
3
  * Add a MicroVertical to an existing workspace. Transactional (G1c): the
4
4
  * whole write-set is applied inside {@link runWorkspaceTransaction}; if any
@@ -1,2 +1,2 @@
1
- import type { AddUltramodernVerticalOptions, UltramodernVerticalPlan } from '../types';
1
+ import type { AddUltramodernVerticalOptions, UltramodernVerticalPlan } from '../types.js';
2
2
  export declare function planUltramodernVertical(options: AddUltramodernVerticalOptions): UltramodernVerticalPlan;
@@ -1,5 +1,5 @@
1
- import type { UltramodernBridgeConfig } from '../bridge-config';
2
- import type { AddUltramodernVerticalOptions, ResolvedPackageSource, WorkspaceApp } from '../types';
1
+ import type { UltramodernBridgeConfig } from '../bridge-config/index.js';
2
+ import type { AddUltramodernVerticalOptions, ResolvedPackageSource, WorkspaceApp } from '../types.js';
3
3
  export type AddUltramodernVerticalPreflight = {
4
4
  name: string;
5
5
  scope: string;
@@ -1,4 +1,4 @@
1
- import type { UltramodernBridgeConfig } from '../bridge-config';
2
- import type { ResolvedPackageSource, WorkspaceApp } from '../types';
1
+ import type { UltramodernBridgeConfig } from '../bridge-config/index.js';
2
+ import type { ResolvedPackageSource, WorkspaceApp } from '../types.js';
3
3
  export declare function updateRootWorkspaceScripts(workspaceRoot: string, scope: string, packageSource: ResolvedPackageSource, remotes: WorkspaceApp[], bridge?: UltramodernBridgeConfig, additionalShells?: WorkspaceApp[]): void;
4
4
  export declare function rewriteShellAppFiles(workspaceRoot: string, scope: string, packageSource: ResolvedPackageSource, enableTailwind: boolean, remotes: WorkspaceApp[], bridge?: UltramodernBridgeConfig, shell?: WorkspaceApp, devPorts?: number[]): void;
@@ -1,4 +1,4 @@
1
- import type { JsonValue, Ownership, WorkspaceApp } from '../types';
1
+ import type { JsonValue, Ownership, WorkspaceApp } from '../types.js';
2
2
  export declare function verticalTopologyEntry(scope: string, vertical: WorkspaceApp, remotes?: WorkspaceApp[]): JsonValue;
3
3
  export declare function ownershipEntry(scope: string, owner: {
4
4
  id: string;
@@ -1,5 +1,5 @@
1
- import type { UltramodernBridgeConfig } from '../bridge-config';
2
- import type { ResolvedPackageSource, UltramodernWorkspaceOptions, WorkspaceApp } from '../types';
1
+ import type { UltramodernBridgeConfig } from '../bridge-config/index.js';
2
+ import type { ResolvedPackageSource, UltramodernWorkspaceOptions, WorkspaceApp } from '../types.js';
3
3
  export declare function existingPackageSource(workspaceRoot: string, modernVersion: string, packageSource?: UltramodernWorkspaceOptions['packageSource']): ResolvedPackageSource;
4
4
  export declare function existingTailwindEnabled(workspaceRoot: string): boolean;
5
5
  export declare function existingBridgeConfig(workspaceRoot: string): UltramodernBridgeConfig | undefined;
@@ -1,7 +1,7 @@
1
- export { addUltramodernVertical } from './add-vertical/execute';
2
- export { planUltramodernVertical } from './add-vertical/plan';
3
- export type { AddUltramodernVerticalPreflight } from './add-vertical/preflight';
4
- export { prepareAddUltramodernVertical } from './add-vertical/preflight';
5
- export { rewriteShellAppFiles, updateRootWorkspaceScripts, } from './add-vertical/shell-files';
6
- export { ownershipEntry, verticalsFromTopology, verticalTopologyEntry, } from './add-vertical/topology';
7
- export { assertCanCreate, assertValidVerticalName, existingBridgeConfig, existingPackageSource, existingTailwindEnabled, nextAvailablePort, } from './add-vertical/workspace-state';
1
+ export { addUltramodernVertical } from './add-vertical/execute.js';
2
+ export { planUltramodernVertical } from './add-vertical/plan.js';
3
+ export type { AddUltramodernVerticalPreflight } from './add-vertical/preflight.js';
4
+ export { prepareAddUltramodernVertical } from './add-vertical/preflight.js';
5
+ export { rewriteShellAppFiles, updateRootWorkspaceScripts, } from './add-vertical/shell-files.js';
6
+ export { ownershipEntry, verticalsFromTopology, verticalTopologyEntry, } from './add-vertical/topology.js';
7
+ export { assertCanCreate, assertValidVerticalName, existingBridgeConfig, existingPackageSource, existingTailwindEnabled, nextAvailablePort, } from './add-vertical/workspace-state.js';
@@ -1,4 +1,4 @@
1
- import type { WorkspaceApi } from '../types';
1
+ import type { WorkspaceApi } from '../types.js';
2
2
  export declare function serviceHasCheckoutCartState(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
@@ -1,4 +1,4 @@
1
- import type { WorkspaceApi, WorkspaceApp } from '../types';
1
+ import type { WorkspaceApi, WorkspaceApp } from '../types.js';
2
2
  export declare function createApiClient(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
@@ -1,2 +1,2 @@
1
- import type { JsonValue, WorkspaceApp } from '../types';
1
+ import type { JsonValue, WorkspaceApp } from '../types.js';
2
2
  export declare function apiTopologyMetadata(app: WorkspaceApp): JsonValue | undefined;
@@ -1,4 +1,4 @@
1
- import type { WorkspaceApi } from '../types';
1
+ import type { WorkspaceApi } from '../types.js';
2
2
  export declare function verticalApiExport(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
@@ -1,4 +1,4 @@
1
- import type { WorkspaceApi } from '../types';
1
+ import type { WorkspaceApi } from '../types.js';
2
2
  type ApiService = {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
@@ -1,4 +1,4 @@
1
- import type { WorkspaceApi, WorkspaceApp } from '../types';
1
+ import type { WorkspaceApi, WorkspaceApp } from '../types.js';
2
2
  export declare function createApiServiceEntry(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
@@ -1,4 +1,4 @@
1
- import type { WorkspaceApi } from '../types';
1
+ import type { WorkspaceApi } from '../types.js';
2
2
  export declare function createSharedApi(service: {
3
3
  id: string;
4
4
  api?: WorkspaceApi;
@@ -1,6 +1,6 @@
1
- export { createApiClient, createShellApiClient } from './api/client';
2
- export { apiTopologyMetadata } from './api/contracts';
3
- export { verticalApiCreatePayloadSchemaExport, verticalApiErrorStem, verticalApiExport, verticalApiGroupName, verticalApiMarkerSchemaExport, verticalApiName, verticalApiNotFoundErrorExport, verticalApiNotFoundSchemaExport, verticalApiReadinessSchemaExport, verticalApiSchemaExport, } from './api/names';
4
- export { createRpcApiServiceEntry, createRpcClientFile, createRpcContractFile, rpcPath, verticalRpcContractExport, verticalRpcGroupExport, } from './api/rpc';
5
- export { createApiServiceEntry, createBackendEffectApiExpose, } from './api/service';
6
- export { createSharedApi } from './api/shared';
1
+ export { createApiClient, createShellApiClient } from './api/client.js';
2
+ export { apiTopologyMetadata } from './api/contracts.js';
3
+ export { verticalApiCreatePayloadSchemaExport, verticalApiErrorStem, verticalApiExport, verticalApiGroupName, verticalApiMarkerSchemaExport, verticalApiName, verticalApiNotFoundErrorExport, verticalApiNotFoundSchemaExport, verticalApiReadinessSchemaExport, verticalApiSchemaExport, } from './api/names.js';
4
+ export { createRpcApiServiceEntry, createRpcClientFile, createRpcContractFile, rpcPath, verticalRpcContractExport, verticalRpcGroupExport, } from './api/rpc.js';
5
+ export { createApiServiceEntry, createBackendEffectApiExpose, } from './api/service.js';
6
+ export { createSharedApi } from './api/shared.js';
@@ -1,4 +1,4 @@
1
- import type { WorkspaceApp } from './types';
1
+ import type { WorkspaceApp } from './types.js';
2
2
  export declare function createAppEnvDts(app: WorkspaceApp, remotes: WorkspaceApp[], scope: string): string;
3
3
  export declare function createAppRuntimeConfig(app: WorkspaceApp, scope: string, remotes?: WorkspaceApp[], emitsUi?: boolean): string;
4
4
  export declare function createAppStyles(enableTailwind: boolean, scope: string, app: WorkspaceApp): string;
@@ -1,5 +1,5 @@
1
1
  import { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from '@modern-js/utils/universal';
2
- import type { JsonValue, WorkspaceApp } from './types';
2
+ import type { JsonValue, WorkspaceApp } from './types.js';
3
3
  export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_NODE_ADAPTER_VERSION, };
4
4
  export declare function createWorkerBindingName(app: WorkspaceApp): string;
5
5
  export declare function createWorkerBindingEnv(app: WorkspaceApp): string;
@@ -1,3 +1,3 @@
1
- import { type UltramodernBridgeConfig } from './schema';
1
+ import { type UltramodernBridgeConfig } from './schema.js';
2
2
  export declare function hasUltramodernBridgeCliOptions(args: string[]): boolean;
3
3
  export declare function parseUltramodernBridgeCliOptions(args: string[]): UltramodernBridgeConfig | undefined;
@@ -1,3 +1,3 @@
1
- import { type UltramodernBridgeGate, type UltramodernBridgeGateInput } from './schema';
1
+ import { type UltramodernBridgeGate, type UltramodernBridgeGateInput } from './schema.js';
2
2
  export declare function readBridgeGates(args: string[]): UltramodernBridgeGate[];
3
3
  export declare function normalizeBridgeGates(gates: readonly UltramodernBridgeGateInput[]): UltramodernBridgeGate[];
@@ -1,4 +1,4 @@
1
- export { hasUltramodernBridgeCliOptions, parseUltramodernBridgeCliOptions, } from './cli';
2
- export { normalizeUltramodernBridgeConfig } from './normalize';
3
- export type { UltramodernBridgeConfig, UltramodernBridgeConfigInput, UltramodernBridgeGate, UltramodernBridgeGateInput, UltramodernBridgeLockfilePolicy, UltramodernBridgeTestAlias, UltramodernBridgeWorkspacePackage, UltramodernBridgeWorkspacePackageInput, UltramodernEnabledBridgeConfigInput, } from './schema';
4
- export { ultramodernBridgeCliBooleanFlags, ultramodernBridgeCliFlags, ultramodernBridgeCliValueFlags, ultramodernBridgeLockfilePolicies, } from './schema';
1
+ export { hasUltramodernBridgeCliOptions, parseUltramodernBridgeCliOptions, } from './cli.js';
2
+ export { normalizeUltramodernBridgeConfig } from './normalize.js';
3
+ export type { UltramodernBridgeConfig, UltramodernBridgeConfigInput, UltramodernBridgeGate, UltramodernBridgeGateInput, UltramodernBridgeLockfilePolicy, UltramodernBridgeTestAlias, UltramodernBridgeWorkspacePackage, UltramodernBridgeWorkspacePackageInput, UltramodernEnabledBridgeConfigInput, } from './schema.js';
4
+ export { ultramodernBridgeCliBooleanFlags, ultramodernBridgeCliFlags, ultramodernBridgeCliValueFlags, ultramodernBridgeLockfilePolicies, } from './schema.js';