@absolutejs/absolute 0.20.0-beta.122 → 0.20.0-beta.123
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 +22 -0
- package/changelog.json +41 -0
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +107 -42
- package/dist/build.js.map +4 -4
- package/dist/cli/{dev-pdefc9ac.js → dev-s7kct3xq.js} +6 -1
- package/dist/cli/index-hty8111z.js +410 -0
- package/dist/cli/index.js +6 -2
- package/dist/cli/patchedBun-zjtrn2s4.js +38 -0
- package/dist/dev/client/handlers/react.ts +31 -39
- package/dist/dev/client/hmrClient.ts +3 -0
- package/dist/dev/serverBootstrap.js +11 -0
- package/dist/index.js +109 -44
- package/dist/index.js.map +4 -4
- package/dist/mobile/remoteMacAgentEntry.js +1 -1
- package/dist/src/cli/patchedBun.d.ts +84 -0
- package/dist/src/dev/hotRejectionGuard.d.ts +1 -0
- package/dist/src/dev/moduleServer.d.ts +10 -3
- package/dist/src/mobile/emulatorDoctor.d.ts +1 -1
- package/dist/types/globals.d.ts +10 -0
- package/package.json +1 -1
- package/dist/cli/{mobile-00bqw12c.js → mobile-6kdsrhxy.js} +3 -3
package/dist/index.js
CHANGED
|
@@ -25889,7 +25889,7 @@ var init_compileAngular = __esm(() => {
|
|
|
25889
25889
|
|
|
25890
25890
|
// node_modules/content-tag/pkg/node/content_tag.cjs
|
|
25891
25891
|
var require_content_tag = __commonJS(function(exports, module) {
|
|
25892
|
-
var __dirname = "/
|
|
25892
|
+
var __dirname = "/home/alexkahn/abs/absolutejs/.claude/worktrees/release/node_modules/content-tag/pkg/node";
|
|
25893
25893
|
var imports = {};
|
|
25894
25894
|
imports["__wbindgen_placeholder__"] = exports;
|
|
25895
25895
|
var wasm;
|
|
@@ -30115,15 +30115,6 @@ var init_fileHashTracker = __esm(() => {
|
|
|
30115
30115
|
});
|
|
30116
30116
|
|
|
30117
30117
|
// src/dev/transformCache.ts
|
|
30118
|
-
var exports_transformCache = {};
|
|
30119
|
-
__export(exports_transformCache, {
|
|
30120
|
-
findNearestComponent: () => findNearestComponent,
|
|
30121
|
-
getInvalidationVersion: () => getInvalidationVersion,
|
|
30122
|
-
getTransformed: () => getTransformed,
|
|
30123
|
-
invalidate: () => invalidate,
|
|
30124
|
-
invalidateAll: () => invalidateAll,
|
|
30125
|
-
setTransformed: () => setTransformed
|
|
30126
|
-
});
|
|
30127
30118
|
var cache, importers, getTransformed = (filePath) => cache.get(filePath)?.content, setTransformed = (filePath, content, mtime, imports) => {
|
|
30128
30119
|
const resolvedImports = imports ?? [];
|
|
30129
30120
|
cache.set(filePath, { content, imports: resolvedImports, mtime });
|
|
@@ -30175,10 +30166,6 @@ var cache, importers, getTransformed = (filePath) => cache.get(filePath)?.conten
|
|
|
30175
30166
|
queue.push(parent);
|
|
30176
30167
|
}
|
|
30177
30168
|
}
|
|
30178
|
-
}, invalidateAll = () => {
|
|
30179
|
-
cache.clear();
|
|
30180
|
-
importers.clear();
|
|
30181
|
-
invalidationVersions.clear();
|
|
30182
30169
|
};
|
|
30183
30170
|
var init_transformCache = __esm(() => {
|
|
30184
30171
|
cache = globalThis.__transformCache ?? new Map;
|
|
@@ -30890,6 +30877,7 @@ __export(exports_moduleServer, {
|
|
|
30890
30877
|
SRC_URL_PREFIX: () => SRC_URL_PREFIX2,
|
|
30891
30878
|
createDevPageWarmer: () => createDevPageWarmer,
|
|
30892
30879
|
createModuleServer: () => createModuleServer,
|
|
30880
|
+
getTransformError: () => getTransformError,
|
|
30893
30881
|
importedBindingNames: () => importedBindingNames,
|
|
30894
30882
|
invalidateModule: () => invalidateModule,
|
|
30895
30883
|
isReactFastRefreshSupported: () => isReactFastRefreshSupported,
|
|
@@ -31090,7 +31078,7 @@ ${code2}`;
|
|
|
31090
31078
|
reactFastRefresh: true
|
|
31091
31079
|
};
|
|
31092
31080
|
const probe = new Bun.Transpiler(probeOptions);
|
|
31093
|
-
const out = probe.transformSync("export function
|
|
31081
|
+
const out = probe.transformSync("export function AbsoluteRefreshProbe(){return null;}");
|
|
31094
31082
|
return out.includes("$RefreshReg$");
|
|
31095
31083
|
} catch {
|
|
31096
31084
|
return false;
|
|
@@ -31099,7 +31087,7 @@ ${code2}`;
|
|
|
31099
31087
|
if (reactFastRefreshSupported || reactFastRefreshWarningEmitted)
|
|
31100
31088
|
return;
|
|
31101
31089
|
reactFastRefreshWarningEmitted = true;
|
|
31102
|
-
logWarn("React
|
|
31090
|
+
logWarn("React edits remount the page instead of keeping component state: " + "this Bun ignores `reactFastRefresh` on Bun.Transpiler " + "(https://github.com/oven-sh/bun/issues/32919). Run " + "`absolute bun-patch install` to use AbsoluteJS's patched Bun, " + "which has the fix; `absolute dev` then uses it automatically.");
|
|
31103
31091
|
}, transformReactFile = (filePath, projectRoot, rewriter) => {
|
|
31104
31092
|
const raw = readFileSync38(filePath, "utf-8");
|
|
31105
31093
|
const valueExports = tsxTranspiler.scan(raw).exports;
|
|
@@ -31649,7 +31637,27 @@ export default {};
|
|
|
31649
31637
|
const content = await transformVueFile(filePath, projectRoot, rewriter, vueDir, stylePreprocessors);
|
|
31650
31638
|
setTransformed(filePath, content, stat4.mtimeMs, extractImportedFiles(content, projectRoot));
|
|
31651
31639
|
return jsResponse(content);
|
|
31652
|
-
},
|
|
31640
|
+
}, transformErrors, readPosition = (value) => {
|
|
31641
|
+
if (!value || typeof value !== "object")
|
|
31642
|
+
return;
|
|
31643
|
+
const position = Reflect.get(value, "position");
|
|
31644
|
+
if (!position || typeof position !== "object")
|
|
31645
|
+
return;
|
|
31646
|
+
const line = Reflect.get(position, "line");
|
|
31647
|
+
const column = Reflect.get(position, "column");
|
|
31648
|
+
const lineText = Reflect.get(position, "lineText");
|
|
31649
|
+
return {
|
|
31650
|
+
column: typeof column === "number" ? column : undefined,
|
|
31651
|
+
line: typeof line === "number" ? line : undefined,
|
|
31652
|
+
lineText: typeof lineText === "string" ? lineText : undefined
|
|
31653
|
+
};
|
|
31654
|
+
}, describeTransformError = (err) => {
|
|
31655
|
+
const [first] = err instanceof AggregateError && Array.isArray(err.errors) ? err.errors : [err];
|
|
31656
|
+
const source = first ?? err;
|
|
31657
|
+
const ownMessage = source && typeof source === "object" ? Reflect.get(source, "message") : undefined;
|
|
31658
|
+
const message = typeof ownMessage === "string" ? ownMessage : String(source);
|
|
31659
|
+
return { message, ...readPosition(first) };
|
|
31660
|
+
}, getTransformError = (filePath) => transformErrors.get(resolve48(filePath)), transformErrorResponse = (err) => {
|
|
31653
31661
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
31654
31662
|
return new Response(`console.error('[ModuleServer] Transform error:', ${JSON.stringify(errMsg)});`, {
|
|
31655
31663
|
headers: { "Content-Type": "application/javascript" },
|
|
@@ -31677,8 +31685,11 @@ export default {};
|
|
|
31677
31685
|
return virtualCssResponse;
|
|
31678
31686
|
const { filePath, ext } = resolveSourcePath2(relPath, projectRoot);
|
|
31679
31687
|
try {
|
|
31680
|
-
|
|
31688
|
+
const response = await transformAndCache(filePath, ext, projectRoot, rewriter, frameworkDirs?.vue, stylePreprocessors);
|
|
31689
|
+
transformErrors.delete(resolve48(filePath));
|
|
31690
|
+
return response;
|
|
31681
31691
|
} catch (err) {
|
|
31692
|
+
transformErrors.set(resolve48(filePath), describeTransformError(err));
|
|
31682
31693
|
return transformErrorResponse(err);
|
|
31683
31694
|
}
|
|
31684
31695
|
};
|
|
@@ -31691,21 +31702,23 @@ export default {};
|
|
|
31691
31702
|
files.push(resolve48(projectRoot, match[1]));
|
|
31692
31703
|
}
|
|
31693
31704
|
return files;
|
|
31694
|
-
}, invalidateModule = (filePath) => {
|
|
31705
|
+
}, SRC_URL_PREFIX2, invalidateModule = (filePath) => {
|
|
31695
31706
|
const resolved = resolve48(filePath);
|
|
31707
|
+
transformErrors.delete(resolved);
|
|
31696
31708
|
invalidate(filePath);
|
|
31697
31709
|
if (resolved !== filePath)
|
|
31698
31710
|
invalidate(resolved);
|
|
31699
31711
|
mtimeCache.delete(filePath);
|
|
31700
31712
|
mtimeCache.delete(resolved);
|
|
31713
|
+
}, setGlobalModuleServer = (handler) => {
|
|
31714
|
+
globalThis.__absoluteModuleServer = handler ?? undefined;
|
|
31701
31715
|
}, warmCache = async (pathname) => {
|
|
31702
31716
|
if (!pathname.startsWith(SRC_PREFIX))
|
|
31703
31717
|
return;
|
|
31704
|
-
|
|
31718
|
+
const handler = globalThis.__absoluteModuleServer;
|
|
31719
|
+
if (!handler)
|
|
31705
31720
|
return;
|
|
31706
|
-
await
|
|
31707
|
-
}, globalModuleServer = null, SRC_URL_PREFIX2, setGlobalModuleServer = (handler) => {
|
|
31708
|
-
globalModuleServer = handler;
|
|
31721
|
+
await handler(pathname);
|
|
31709
31722
|
}, REBUILD_IDLE_POLL_MS = 10, getDevResult = () => globalThis.__hmrDevResult, resolveDevPageEntry = (keyOrPath) => {
|
|
31710
31723
|
const cached = getDevResult();
|
|
31711
31724
|
const lazy = cached?.hmrState.lazyPages;
|
|
@@ -31876,6 +31889,8 @@ export function __legacyDecorateParamTS(paramIndex, decorator) {
|
|
|
31876
31889
|
return function (target, key) { decorator(target, key, paramIndex); };
|
|
31877
31890
|
}
|
|
31878
31891
|
`.trim();
|
|
31892
|
+
transformErrors = globalThis.__absoluteTransformErrors ?? new Map;
|
|
31893
|
+
globalThis.__absoluteTransformErrors = transformErrors;
|
|
31879
31894
|
SRC_IMPORT_RE = /\/@src\/([^"'?\s]+)/g;
|
|
31880
31895
|
SRC_URL_PREFIX2 = SRC_PREFIX;
|
|
31881
31896
|
});
|
|
@@ -32245,7 +32260,7 @@ __export(exports_rebuildTrigger, {
|
|
|
32245
32260
|
queueFileChange: () => queueFileChange,
|
|
32246
32261
|
triggerRebuild: () => triggerRebuild
|
|
32247
32262
|
});
|
|
32248
|
-
import { existsSync as existsSync45, readdirSync as readdirSync12, rmSync as rmSync4 } from "fs";
|
|
32263
|
+
import { existsSync as existsSync45, readdirSync as readdirSync12, rmSync as rmSync4, statSync as statSync8 } from "fs";
|
|
32249
32264
|
import {
|
|
32250
32265
|
basename as basename20,
|
|
32251
32266
|
dirname as dirname35,
|
|
@@ -33390,28 +33405,76 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
33390
33405
|
const url = `${SRC_URL_PREFIX3}${rel}`;
|
|
33391
33406
|
await warmCache2(url);
|
|
33392
33407
|
return url;
|
|
33393
|
-
}, getReactModuleUrl,
|
|
33394
|
-
|
|
33395
|
-
|
|
33396
|
-
|
|
33397
|
-
|
|
33398
|
-
|
|
33399
|
-
|
|
33408
|
+
}, getReactModuleUrl, isReactComponentPath = (file6) => file6.endsWith(".tsx") || file6.endsWith(".jsx"), isReactPagePath = (file6) => file6.replace(/\\/g, "/").includes("/pages/"), isImportableModule = (file6) => {
|
|
33409
|
+
try {
|
|
33410
|
+
return statSync8(file6).isFile();
|
|
33411
|
+
} catch {
|
|
33412
|
+
return false;
|
|
33413
|
+
}
|
|
33414
|
+
}, resolveComponentTarget = (file6, reactFiles, edited) => {
|
|
33415
|
+
if (isReactComponentPath(file6))
|
|
33416
|
+
return file6;
|
|
33417
|
+
const nearest = findNearestComponent(resolvePath(file6));
|
|
33418
|
+
if (nearest && isImportableModule(nearest))
|
|
33419
|
+
return nearest;
|
|
33420
|
+
const dependents = reactFiles.filter((candidate) => !edited.has(candidate) && isReactComponentPath(candidate) && isImportableModule(candidate));
|
|
33421
|
+
return dependents.find((candidate) => !isReactPagePath(candidate)) ?? dependents[0] ?? file6;
|
|
33422
|
+
}, resolveReactUpdateTargets = (state, reactFiles) => {
|
|
33423
|
+
const importable = reactFiles.filter(isImportableModule);
|
|
33424
|
+
const userEdited = importable.filter((file6) => state.lastUserEditedFiles?.has(resolvePath(file6)));
|
|
33425
|
+
const editedFiles = userEdited.length > 0 ? userEdited : importable;
|
|
33426
|
+
const edited = new Set(editedFiles);
|
|
33427
|
+
const ordered = [
|
|
33428
|
+
...editedFiles.filter((file6) => !isReactPagePath(file6)),
|
|
33429
|
+
...editedFiles.filter(isReactPagePath)
|
|
33430
|
+
];
|
|
33431
|
+
const targets = ordered.map((file6) => resolveComponentTarget(file6, reactFiles, edited));
|
|
33432
|
+
return { editedFiles, targets: [...new Set(targets)] };
|
|
33433
|
+
}, resolveAffectedPageModules = async (reactFiles) => {
|
|
33434
|
+
const pages = reactFiles.filter((file6) => isReactPagePath(file6) && isReactComponentPath(file6) && isImportableModule(file6));
|
|
33435
|
+
const entries = await Promise.all(pages.map(async (page) => [
|
|
33436
|
+
`${basename20(page).replace(/\.[jt]sx$/, "")}Index`,
|
|
33437
|
+
await getReactModuleUrl(page)
|
|
33438
|
+
]));
|
|
33439
|
+
return Object.fromEntries(entries);
|
|
33400
33440
|
}, handleReactModuleServerPath = async (state, reactFiles, startTime, fastRefreshSupported, onRebuildComplete) => {
|
|
33401
|
-
const
|
|
33402
|
-
|
|
33441
|
+
const { invalidateModule: invalidateModule2 } = await getModuleServer();
|
|
33442
|
+
for (const file6 of reactFiles) {
|
|
33443
|
+
invalidateModule2(file6);
|
|
33444
|
+
}
|
|
33445
|
+
const { editedFiles, targets } = resolveReactUpdateTargets(state, reactFiles);
|
|
33446
|
+
const [primaryTarget] = targets;
|
|
33447
|
+
if (!primaryTarget) {
|
|
33403
33448
|
onRebuildComplete({
|
|
33404
33449
|
hmrState: state,
|
|
33405
33450
|
manifest: state.manifest
|
|
33406
33451
|
});
|
|
33407
33452
|
return state.manifest;
|
|
33408
33453
|
}
|
|
33409
|
-
const
|
|
33410
|
-
|
|
33411
|
-
|
|
33454
|
+
const moduleUrls = await Promise.all(targets.map(getReactModuleUrl));
|
|
33455
|
+
await Promise.all(editedFiles.filter((file6) => !targets.includes(file6)).map(getReactModuleUrl));
|
|
33456
|
+
const { getTransformError: getTransformError2 } = await getModuleServer();
|
|
33457
|
+
const failed = [...new Set([...editedFiles, ...targets])].map((file6) => ({ error: getTransformError2(file6), file: file6 })).find((entry) => entry.error !== undefined);
|
|
33458
|
+
if (failed?.error) {
|
|
33459
|
+
broadcastToClients(state, {
|
|
33460
|
+
data: {
|
|
33461
|
+
affectedFrameworks: ["react"],
|
|
33462
|
+
column: failed.error.column,
|
|
33463
|
+
error: failed.error.message,
|
|
33464
|
+
file: failed.file,
|
|
33465
|
+
framework: "react",
|
|
33466
|
+
line: failed.error.line,
|
|
33467
|
+
lineText: failed.error.lineText
|
|
33468
|
+
},
|
|
33469
|
+
message: "React module failed to compile",
|
|
33470
|
+
type: "rebuild-error"
|
|
33471
|
+
});
|
|
33472
|
+
onRebuildComplete({ hmrState: state, manifest: state.manifest });
|
|
33473
|
+
return state.manifest;
|
|
33412
33474
|
}
|
|
33413
|
-
const
|
|
33414
|
-
const pageModuleUrl =
|
|
33475
|
+
const pageModuleUrls = fastRefreshSupported ? undefined : await resolveAffectedPageModules(reactFiles);
|
|
33476
|
+
const [pageModuleUrl] = moduleUrls;
|
|
33477
|
+
const primaryFile = reactFiles.find((file6) => isImportableModule(file6) && !isReactPagePath(file6)) ?? primaryTarget;
|
|
33415
33478
|
if (pageModuleUrl) {
|
|
33416
33479
|
const serverDuration = Date.now() - startTime;
|
|
33417
33480
|
state.lastHmrPath = relative23(process.cwd(), primaryFile).replace(/\\/g, "/");
|
|
@@ -33423,7 +33486,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
33423
33486
|
hasComponentChanges: true,
|
|
33424
33487
|
hasCSSChanges: false,
|
|
33425
33488
|
manifest: state.manifest,
|
|
33489
|
+
moduleUrls,
|
|
33426
33490
|
pageModuleUrl,
|
|
33491
|
+
pageModuleUrls,
|
|
33427
33492
|
primarySource: primaryFile,
|
|
33428
33493
|
serverDuration,
|
|
33429
33494
|
sourceFiles: reactFiles
|
|
@@ -35434,7 +35499,7 @@ __export(exports_devBuild, {
|
|
|
35434
35499
|
devBuild: () => devBuild
|
|
35435
35500
|
});
|
|
35436
35501
|
import { readdir as readdir5 } from "fs/promises";
|
|
35437
|
-
import { existsSync as existsSync47, statSync as
|
|
35502
|
+
import { existsSync as existsSync47, statSync as statSync9 } from "fs";
|
|
35438
35503
|
import { resolve as resolve53 } from "path";
|
|
35439
35504
|
var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve53(import.meta.dir, "../dev/client"), collectDepVendorSourceDirs = (config) => {
|
|
35440
35505
|
const configuredDirs = [
|
|
@@ -35574,7 +35639,7 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve53(import.meta.d
|
|
|
35574
35639
|
});
|
|
35575
35640
|
}
|
|
35576
35641
|
}, handleCachedReload = async () => {
|
|
35577
|
-
const serverMtime =
|
|
35642
|
+
const serverMtime = statSync9(resolve53(Bun.main)).mtimeMs;
|
|
35578
35643
|
const lastMtime = globalThis.__hmrServerMtime;
|
|
35579
35644
|
globalThis.__hmrServerMtime = serverMtime;
|
|
35580
35645
|
const cached = globalThis.__hmrDevResult;
|
|
@@ -35955,7 +36020,7 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve53(import.meta.d
|
|
|
35955
36020
|
manifest
|
|
35956
36021
|
};
|
|
35957
36022
|
globalThis.__hmrDevResult = result;
|
|
35958
|
-
globalThis.__hmrServerMtime =
|
|
36023
|
+
globalThis.__hmrServerMtime = statSync9(resolve53(Bun.main)).mtimeMs;
|
|
35959
36024
|
return result;
|
|
35960
36025
|
};
|
|
35961
36026
|
var init_devBuild = __esm(() => {
|
|
@@ -38098,7 +38163,7 @@ import {
|
|
|
38098
38163
|
existsSync as existsSync52,
|
|
38099
38164
|
readdirSync as readdirSync16,
|
|
38100
38165
|
readFileSync as readFileSync45,
|
|
38101
|
-
statSync as
|
|
38166
|
+
statSync as statSync10,
|
|
38102
38167
|
watch as watch2
|
|
38103
38168
|
} from "fs";
|
|
38104
38169
|
import { createHash as createHash13 } from "crypto";
|
|
@@ -38257,7 +38322,7 @@ var ATOMIC_RECOVERY_WINDOW_MS = 1000, RELOAD_DEBOUNCE_MS = 80, ENTRY_IMPORT_RETR
|
|
|
38257
38322
|
continue;
|
|
38258
38323
|
let st2;
|
|
38259
38324
|
try {
|
|
38260
|
-
st2 =
|
|
38325
|
+
st2 = statSync10(join67(dir, entry.name));
|
|
38261
38326
|
} catch {
|
|
38262
38327
|
continue;
|
|
38263
38328
|
}
|
|
@@ -45713,5 +45778,5 @@ export {
|
|
|
45713
45778
|
wrapPageHandlerWithStreamingSlots
|
|
45714
45779
|
};
|
|
45715
45780
|
|
|
45716
|
-
//# debugId=
|
|
45781
|
+
//# debugId=B86705ABD58A04A464756E2164756E21
|
|
45717
45782
|
//# sourceMappingURL=index.js.map
|