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 +12 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/dev-server.mjs +5 -1
- package/src/import-map.mjs +7 -0
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.
|
|
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
package/src/dev-server.mjs
CHANGED
|
@@ -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
|
-
|
|
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;
|
package/src/import-map.mjs
CHANGED
|
@@ -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
|
}
|