@absolutejs/absolute 0.19.0-beta.879 → 0.19.0-beta.880
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/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +57 -6
- package/dist/build.js.map +8 -8
- package/dist/index.js +57 -6
- package/dist/index.js.map +8 -8
- package/dist/src/dev/angular/fastHmrCompiler.d.ts +1 -0
- package/dist/types/messages.d.ts +9 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -115,6 +115,7 @@ var isValidHMRClientMessage = (data) => {
|
|
|
115
115
|
case "request-rebuild":
|
|
116
116
|
case "hydration-error":
|
|
117
117
|
case "hmr-timing":
|
|
118
|
+
case "angular:hmr-ack":
|
|
118
119
|
return true;
|
|
119
120
|
default:
|
|
120
121
|
return false;
|
|
@@ -9882,7 +9883,26 @@ var ENTITY_DECORATOR_RE, IMPORT_RE, TOP_LEVEL_DECL_RE, extractAllTopLevelNames =
|
|
|
9882
9883
|
// patch the prototype, no view recreation needed).
|
|
9883
9884
|
{
|
|
9884
9885
|
const __ng_hmr_id = ${encodedIdLiteral};
|
|
9886
|
+
// Send a server-side ack so the dev terminal can log the
|
|
9887
|
+
// full HMR latency (server compile + WS hop + client apply +
|
|
9888
|
+
// CD pulse) rather than just the server-side compile time.
|
|
9889
|
+
const __ng_hmr_ack = (tier, applyMs, error) => {
|
|
9890
|
+
try {
|
|
9891
|
+
const ws = globalThis.__HMR_WS__;
|
|
9892
|
+
if (ws && ws.readyState === 1) {
|
|
9893
|
+
ws.send(JSON.stringify({
|
|
9894
|
+
type: 'angular:hmr-ack',
|
|
9895
|
+
id: __ng_hmr_id,
|
|
9896
|
+
className: ${JSON.stringify(className)},
|
|
9897
|
+
tier,
|
|
9898
|
+
applyMs,
|
|
9899
|
+
error
|
|
9900
|
+
}));
|
|
9901
|
+
}
|
|
9902
|
+
} catch {}
|
|
9903
|
+
};
|
|
9885
9904
|
const __ng_hmr_load = async (t) => {
|
|
9905
|
+
const t0 = performance.now();
|
|
9886
9906
|
const [u, core] = await Promise.all([
|
|
9887
9907
|
import('/@ng/component?c=' + encodeURIComponent(__ng_hmr_id) + '&t=' + t),
|
|
9888
9908
|
import('@angular/core')
|
|
@@ -9898,13 +9918,16 @@ var ENTITY_DECORATOR_RE, IMPORT_RE, TOP_LEVEL_DECL_RE, extractAllTopLevelNames =
|
|
|
9898
9918
|
import.meta,
|
|
9899
9919
|
__ng_hmr_id
|
|
9900
9920
|
);
|
|
9921
|
+
__ng_hmr_ack('tier-0', performance.now() - t0);
|
|
9901
9922
|
} catch (err) {
|
|
9902
9923
|
console.error('[abs-hmr] \u0275\u0275replaceMetadata threw for ${className}:', err);
|
|
9924
|
+
__ng_hmr_ack('tier-0', performance.now() - t0, String(err && err.message || err));
|
|
9903
9925
|
}
|
|
9904
9926
|
} else {
|
|
9905
9927
|
// Non-component entity (pipe / directive / service) \u2014 no
|
|
9906
9928
|
// LView tree to walk, just apply the prototype patch.
|
|
9907
9929
|
u.default(${className}, [core]);
|
|
9930
|
+
__ng_hmr_ack('tier-0', performance.now() - t0);
|
|
9908
9931
|
}
|
|
9909
9932
|
};
|
|
9910
9933
|
// Tier 1 remount: structural changes (new ctor params / new field
|
|
@@ -9917,6 +9940,7 @@ var ENTITY_DECORATOR_RE, IMPORT_RE, TOP_LEVEL_DECL_RE, extractAllTopLevelNames =
|
|
|
9917
9940
|
// shared implementation is on \`globalThis.__absAngularRemount\` \u2014
|
|
9918
9941
|
// installed by hmrClient.ts's import-time wiring.
|
|
9919
9942
|
const __ng_hmr_remount = async (t) => {
|
|
9943
|
+
const t0 = performance.now();
|
|
9920
9944
|
const [u, core] = await Promise.all([
|
|
9921
9945
|
import('/@ng/component?c=' + encodeURIComponent(__ng_hmr_id) + '&t=' + t),
|
|
9922
9946
|
import('@angular/core')
|
|
@@ -9932,8 +9956,10 @@ var ENTITY_DECORATOR_RE, IMPORT_RE, TOP_LEVEL_DECL_RE, extractAllTopLevelNames =
|
|
|
9932
9956
|
core,
|
|
9933
9957
|
${JSON.stringify(className)}
|
|
9934
9958
|
);
|
|
9959
|
+
__ng_hmr_ack('tier-1a', performance.now() - t0);
|
|
9935
9960
|
} catch (err) {
|
|
9936
9961
|
console.error('[abs-hmr] remount threw for ${className}:', err);
|
|
9962
|
+
__ng_hmr_ack('tier-1a', performance.now() - t0, String(err && err.message || err));
|
|
9937
9963
|
}
|
|
9938
9964
|
} else {
|
|
9939
9965
|
// No remount helper installed (older absolutejs runtime, or
|
|
@@ -16763,6 +16789,12 @@ var trySendMessage = (client2, messageStr) => {
|
|
|
16763
16789
|
case "hmr-timing":
|
|
16764
16790
|
logHmrUpdate(state.lastHmrPath ?? "", state.lastHmrFramework, data.duration);
|
|
16765
16791
|
break;
|
|
16792
|
+
case "angular:hmr-ack": {
|
|
16793
|
+
const tag = data.tier === "tier-0" ? "tier-0" : "tier-1a";
|
|
16794
|
+
const suffix = data.error ? ` FAILED \u2014 ${data.error}` : ` applied in ${data.applyMs.toFixed(0)}ms`;
|
|
16795
|
+
logInfo(`[ng-hmr] ${tag} ${data.className}${suffix}`);
|
|
16796
|
+
break;
|
|
16797
|
+
}
|
|
16766
16798
|
}
|
|
16767
16799
|
}, handleHMRMessage = (state, client2, message) => {
|
|
16768
16800
|
try {
|
|
@@ -18425,13 +18457,21 @@ var init_typescript_translator = __esm(() => {
|
|
|
18425
18457
|
var exports_fastHmrCompiler = {};
|
|
18426
18458
|
__export(exports_fastHmrCompiler, {
|
|
18427
18459
|
tryFastHmr: () => tryFastHmr,
|
|
18460
|
+
takePendingModule: () => takePendingModule,
|
|
18428
18461
|
recordFingerprint: () => recordFingerprint,
|
|
18429
18462
|
invalidateFingerprintCache: () => invalidateFingerprintCache
|
|
18430
18463
|
});
|
|
18431
18464
|
import { existsSync as existsSync26, readFileSync as readFileSync20, statSync as statSync4 } from "fs";
|
|
18432
18465
|
import { dirname as dirname19, relative as relative13, resolve as resolve33 } from "path";
|
|
18433
18466
|
import ts7 from "typescript";
|
|
18434
|
-
var fail = (reason, detail) => ({ ok: false, reason, detail }), fingerprintCache,
|
|
18467
|
+
var fail = (reason, detail) => ({ ok: false, reason, detail }), fingerprintCache, pendingModuleCache, takePendingModule = (id) => {
|
|
18468
|
+
const cached = pendingModuleCache.get(id);
|
|
18469
|
+
if (cached !== undefined)
|
|
18470
|
+
pendingModuleCache.delete(id);
|
|
18471
|
+
return cached;
|
|
18472
|
+
}, setPendingModule = (id, moduleText) => {
|
|
18473
|
+
pendingModuleCache.set(id, moduleText);
|
|
18474
|
+
}, arraysEqual = (a, b2) => {
|
|
18435
18475
|
if (a.length !== b2.length)
|
|
18436
18476
|
return false;
|
|
18437
18477
|
for (let i = 0;i < a.length; i++) {
|
|
@@ -19254,6 +19294,7 @@ ${block}
|
|
|
19254
19294
|
}
|
|
19255
19295
|
}
|
|
19256
19296
|
fingerprintCache.set(fingerprintId, currentFingerprint);
|
|
19297
|
+
setPendingModule(fingerprintId, moduleText);
|
|
19257
19298
|
return {
|
|
19258
19299
|
componentSource: sourceFile,
|
|
19259
19300
|
fingerprintChanged,
|
|
@@ -19268,6 +19309,7 @@ var init_fastHmrCompiler = __esm(() => {
|
|
|
19268
19309
|
init_hmrImportGenerator();
|
|
19269
19310
|
init_typescript_translator();
|
|
19270
19311
|
fingerprintCache = new Map;
|
|
19312
|
+
pendingModuleCache = new Map;
|
|
19271
19313
|
INPUT_OUTPUT_DECORATORS = new Set(["Input", "Output"]);
|
|
19272
19314
|
providerProbeCache = new Map;
|
|
19273
19315
|
TS_EXTENSIONS = [".ts", ".tsx", ".d.ts"];
|
|
@@ -19434,6 +19476,12 @@ var globalCache, getCachedHmrProgram = () => globalCache.__ABSOLUTE_ANGULAR_HMR_
|
|
|
19434
19476
|
const filePathRel = decoded.slice(0, at2);
|
|
19435
19477
|
const className = decoded.slice(at2 + 1);
|
|
19436
19478
|
const componentFilePath = resolve34(process.cwd(), filePathRel);
|
|
19479
|
+
const cacheKey2 = encodeURIComponent(`${componentFilePath}@${className}`);
|
|
19480
|
+
const { takePendingModule: takePendingModule2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
|
|
19481
|
+
const cached = takePendingModule2(cacheKey2);
|
|
19482
|
+
if (cached !== undefined) {
|
|
19483
|
+
return cached;
|
|
19484
|
+
}
|
|
19437
19485
|
const { resolveOwningComponents: resolveOwningComponents2 } = await Promise.resolve().then(() => (init_resolveOwningComponents(), exports_resolveOwningComponents));
|
|
19438
19486
|
const owners = resolveOwningComponents2({
|
|
19439
19487
|
changedFilePath: componentFilePath,
|
|
@@ -20101,21 +20149,19 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
20101
20149
|
return { queue, tier: 0 };
|
|
20102
20150
|
}, broadcastSurgical = (state, queue) => {
|
|
20103
20151
|
const timestamp = Date.now();
|
|
20104
|
-
for (const { id
|
|
20152
|
+
for (const { id } of queue) {
|
|
20105
20153
|
broadcastToClients(state, {
|
|
20106
20154
|
data: { id, timestamp },
|
|
20107
20155
|
type: "angular:component-update"
|
|
20108
20156
|
});
|
|
20109
|
-
logInfo(`[ng-hmr broadcast] ${className}`);
|
|
20110
20157
|
}
|
|
20111
20158
|
}, broadcastRemount = (state, queue) => {
|
|
20112
20159
|
const timestamp = Date.now();
|
|
20113
|
-
for (const { id
|
|
20160
|
+
for (const { id } of queue) {
|
|
20114
20161
|
broadcastToClients(state, {
|
|
20115
20162
|
data: { id, timestamp },
|
|
20116
20163
|
type: "angular:component-remount"
|
|
20117
20164
|
});
|
|
20118
|
-
logInfo(`[ng-hmr tier-1 remount] ${className}`);
|
|
20119
20165
|
}
|
|
20120
20166
|
}, broadcastRebootstrap = async (state, reason) => {
|
|
20121
20167
|
logInfo(`[ng-hmr tier-1 rebootstrap] ${reason}`);
|
|
@@ -20168,20 +20214,25 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
20168
20214
|
}
|
|
20169
20215
|
const angularPagesPath = resolve37(angularDir, "pages");
|
|
20170
20216
|
const pageEntries = resolveAngularPageEntries(state, angularFiles, angularPagesPath);
|
|
20217
|
+
const tierStart = performance.now();
|
|
20171
20218
|
const verdict = await decideAngularTier(state, angularDir);
|
|
20219
|
+
const tierMs = (performance.now() - tierStart).toFixed(0);
|
|
20172
20220
|
const runBundle = async () => {
|
|
20173
20221
|
if (pageEntries.length === 0)
|
|
20174
20222
|
return;
|
|
20175
20223
|
await compileAndBundleAngular(state, pageEntries, angularDir);
|
|
20176
20224
|
markSsrCacheDirty("angular");
|
|
20177
20225
|
};
|
|
20226
|
+
const queueDescription = (queue) => queue.map((e) => e.className).join(", ");
|
|
20178
20227
|
if (verdict.tier === 0) {
|
|
20179
20228
|
broadcastSurgical(state, verdict.queue);
|
|
20229
|
+
logInfo(`[ng-hmr] tier-0 ${queueDescription(verdict.queue)} (server ${tierMs}ms; awaiting client apply)`);
|
|
20180
20230
|
runBundle().catch((err) => {
|
|
20181
20231
|
logWarn(`[ng-hmr async bundle] rebuild failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
20182
20232
|
});
|
|
20183
20233
|
} else if (verdict.tier === 1 && verdict.kind === "remount") {
|
|
20184
20234
|
broadcastRemount(state, verdict.queue);
|
|
20235
|
+
logInfo(`[ng-hmr] tier-1a remount ${queueDescription(verdict.queue)} (server ${tierMs}ms; awaiting client apply)`);
|
|
20185
20236
|
runBundle().catch((err) => {
|
|
20186
20237
|
logWarn(`[ng-hmr async bundle] rebuild failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
20187
20238
|
});
|
|
@@ -30489,5 +30540,5 @@ export {
|
|
|
30489
30540
|
ANGULAR_INIT_TIMEOUT_MS
|
|
30490
30541
|
};
|
|
30491
30542
|
|
|
30492
|
-
//# debugId=
|
|
30543
|
+
//# debugId=5A13955C630604EE64756E2164756E21
|
|
30493
30544
|
//# sourceMappingURL=index.js.map
|