arcane-os 0.28.3 → 0.28.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.28.4
4
+
5
+ - Preserve installed component-relative browser-runtime and strong-type import
6
+ aliases in direct npm maps, including npm-alias workspaces. These aliases
7
+ resolve to the same installed modules as the direct paths, restoring browser
8
+ device-settings loading without copies or a second module instance.
9
+ - Serve explicitly included historical authored resources at their retained
10
+ paths in root-app development. Unselected navigation aliases and generated
11
+ PWA endpoints retain their existing behavior. Applications refresh managed
12
+ maps through the public SDK command after updating the dependency; no
13
+ authored SDK edits, saved-data migration, or dependency changes are required.
14
+
3
15
  ## 0.28.3
4
16
 
5
17
  - Add explicit `DBOPFS.removeEmptyTable(tableName)` for removing an existing
package/README.md CHANGED
@@ -19,7 +19,7 @@ version-locked SDK runtime, while an integrated Arcane checkout uses its live
19
19
  `arcane/` runtime. Both profiles preserve the same app URLs, theme, packaging,
20
20
  event, cancellation, and browser run contracts.
21
21
 
22
- This checkout defines the `0.28.3` SDK contract. Applications pin one exact npm
22
+ This checkout defines the `0.28.4` SDK contract. Applications pin one exact npm
23
23
  version and lockfile; registry state is deliberately not baked into application
24
24
  artifacts.
25
25
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arcane-os",
3
- "version": "0.28.3",
3
+ "version": "0.28.4",
4
4
  "description": "Arcane OS JavaScript SDK, project-local CLI, browser runtime, and repository-portable application packager.",
5
5
  "type": "module",
6
6
  "main": "./src/index.mjs",
@@ -1192,7 +1192,11 @@ async function startOwnedDevServer({
1192
1192
  const selectedRoutes = mode === 'source' && (appRequest || segments.length === 0 || generatedPwaPath)
1193
1193
  ? await refreshSourceRoutes() : currentSourceRoutes;
1194
1194
  const pwaEnabled = mode === 'source' ? selectedRoutes.app?.pwa?.enabled === true : routeSet.pwa;
1195
- if (legacyAppRequest && !(pwaEnabled && legacyPwaRequest)) {
1195
+ const authoredLegacyResource = legacyAppRequest
1196
+ && sourcePathAllowed(segments, selectedRoutes.app);
1197
+ if (legacyAppRequest
1198
+ && !(pwaEnabled && legacyPwaRequest)
1199
+ && !authoredLegacyResource) {
1196
1200
  const legacyPath = target.pathname.slice(`/apps/${routeSet.appId}`.length);
1197
1201
  const location = !legacyPath || legacyPath === '/' || legacyPath === '/index.html'
1198
1202
  ? selectedRoutes.startPath : legacyPath;
@@ -1470,12 +1470,19 @@ async function managedImportMapBuild(resolvedWorkspace,resolvedApp,signal,pwaEna
1470
1470
  return value.startsWith('./')
1471
1471
  ?`./${installedRuntimeTarget(value.slice(2),installed,{browser:true})}`:value;
1472
1472
  }
1473
+ function installedPhysicalCompatibilityUrl(value){
1474
+ if(!value.startsWith('./arcane/sdk/')
1475
+ &&!value.startsWith('./arcane/dependencies/strong-type/'))return null;
1476
+ return `./${installed.routes[0].destination}/${value.slice('./arcane/'.length)}`;
1477
+ }
1473
1478
  for(const [specifier,target] of Object.entries(built.imports)){
1474
1479
  if(rootApplication&&specifier.startsWith('arcane/'))continue;
1475
1480
  const selected=installedBrowserUrl(target);
1476
1481
  if(!rootApplication)imports[specifier]=selected;
1477
1482
  // Relative module imports and bare names must resolve to the same instance.
1478
1483
  imports[installedBrowserUrl(specifier)]=selected;
1484
+ const physicalCompatibilityUrl=installedPhysicalCompatibilityUrl(specifier);
1485
+ if(physicalCompatibilityUrl)imports[physicalCompatibilityUrl]=selected;
1479
1486
  }
1480
1487
  built.imports=imports;
1481
1488
  }