hotstaq 0.9.1 → 0.9.3

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.
@@ -111,6 +111,31 @@ export interface IHotValidReturn {
111
111
  */
112
112
  value?: any;
113
113
  }
114
+ /**
115
+ * Options for `HotStaq.installFetchInterceptors`. All fields are optional —
116
+ * the bare-minimum install (with no options) just gives you the per-nav
117
+ * AbortController, which is the universally-useful piece. The 401 hook is
118
+ * opinionated session-out UX and is left to each app to wire up.
119
+ */
120
+ export interface IHotFetchInterceptorOptions {
121
+ /**
122
+ * Request URLs that should bypass both the per-nav AbortController and
123
+ * the 401 hook. A request is skipped if its URL starts with any string
124
+ * here. Use this for endpoints that must survive SPA navigation (the
125
+ * canonical case is OIDC's `/token` — silent token refresh shouldn't
126
+ * die just because the user clicked a sidebar link mid-flight).
127
+ */
128
+ skipUrls?: string[];
129
+ /**
130
+ * Called when an authenticated `fetch(...)` returns a 401 response.
131
+ * The handler runs after the response resolves; the response itself is
132
+ * still returned to the original caller, so existing error-handling
133
+ * paths in app code keep working. Use this to clear local credentials
134
+ * and surface "your session expired" UX. Skipped for URLs in
135
+ * `skipUrls` (those 401s are the responsibility of the refresh path).
136
+ */
137
+ on401?: (response: Response, request: RequestInfo, init: RequestInit) => void;
138
+ }
114
139
  export interface ParsedInterface {
115
140
  type: string;
116
141
  typeName?: string;
@@ -252,6 +277,51 @@ export declare class HotStaq implements IHotStaq {
252
277
  * Event fired after SPA navigation completes.
253
278
  */
254
279
  static onAfterNavigate: (path: string) => void | Promise<void>;
280
+ /**
281
+ * Override the framework's default 404 rendering.
282
+ *
283
+ * Called from `HotStaqWebStart` when the current URL doesn't match
284
+ * any registered `<route>`, no `path="404"` or `path="*"` fallback
285
+ * exists in the router, and the page boot would otherwise throw
286
+ * "The hotstaq tag must have a src, HTML contents inside it, or a
287
+ * router set."
288
+ *
289
+ * Set this to render a custom 404 (e.g. redirect to a branded page,
290
+ * or call `HotStaq.useOutput` with your own HTML). When set, the
291
+ * default fallback in `HotStaq.displayDefault404` is suppressed.
292
+ *
293
+ * Most apps should prefer registering a `path="404"` route in their
294
+ * `<hotstaq-router>` instead — this hook is for cases where you
295
+ * need to make a runtime decision (e.g. dispatch on the path).
296
+ */
297
+ static onRouteNotFound: (path: string) => void;
298
+ /**
299
+ * If true (the default), `enableSPA` automatically wires up fetch
300
+ * interceptors that abort the previous page's pending requests when
301
+ * the user navigates between SPA routes. Set this to false BEFORE the
302
+ * `<hotstaq>` element runs (e.g. in a <script> earlier in <head>) to
303
+ * opt out — useful if your frontend already wraps `window.fetch` and
304
+ * doesn't want HotStaq to compose with it.
305
+ */
306
+ static autoInstallFetchInterceptors: boolean;
307
+ /**
308
+ * The current page's AbortController. Aborted on every SPA navigation
309
+ * so previous-page fetches die before the new page's requests go out.
310
+ * `installFetchInterceptors` populates this.
311
+ */
312
+ static navAbort: AbortController;
313
+ /**
314
+ * Internal: tracks whether `installFetchInterceptors` has wrapped
315
+ * `window.fetch` and `onBeforeNavigate`. Exposed for tests; do not
316
+ * toggle from app code.
317
+ */
318
+ protected static fetchInterceptorsInstalled: boolean;
319
+ /**
320
+ * Internal: most recent options passed to `installFetchInterceptors`,
321
+ * read by the wrapped fetch on every call so apps can update
322
+ * `skipUrls` / `on401` after install without re-wrapping.
323
+ */
324
+ protected static fetchInterceptorOptions: IHotFetchInterceptorOptions;
255
325
  /**
256
326
  * Errors to execute when something goes wrong.
257
327
  */
@@ -629,6 +699,18 @@ export declare class HotStaq implements IHotStaq {
629
699
  * This is meant for web browser use only.
630
700
  */
631
701
  static onReady(readyFunc: (output: string) => void): void;
702
+ /**
703
+ * Render a minimal "Page not found" page when no registered route
704
+ * matches the current URL and no `path="404"` / `path="*"` fallback
705
+ * is configured. Called by HotStaqWebStart's boot path; can also be
706
+ * invoked directly.
707
+ *
708
+ * Apps that want a branded 404 should register a `<route path="404"
709
+ * src="./404.hott">` (or `path="*"`) in their `<hotstaq-router>` —
710
+ * the framework picks it up before falling back to this. For
711
+ * runtime-decision 404 logic, set `HotStaq.onRouteNotFound`.
712
+ */
713
+ static displayDefault404(path: string): void;
632
714
  /**
633
715
  * Replace the current HTML page with the output.
634
716
  * This is meant for web browser use only.
@@ -658,6 +740,35 @@ export declare class HotStaq implements IHotStaq {
658
740
  * @param processor The HotStaq processor instance to use for processing pages.
659
741
  */
660
742
  static enableSPA(target: string, processor?: HotStaq): void;
743
+ /**
744
+ * Install fetch interceptors for SPA-mode frontends. Two pieces:
745
+ *
746
+ * (a) Per-navigation `AbortController`. Every `window.fetch(...)`
747
+ * that doesn't already pass its own `signal` gets attached to
748
+ * `HotStaq.navAbort.signal`. On every SPA navigation the
749
+ * controller is aborted and replaced, so the previous page's
750
+ * in-flight requests die cleanly before the new page makes its
751
+ * own. Without this, rapid clicks accumulate abandoned fetches
752
+ * that occupy the browser's 6-per-origin connection cap and
753
+ * block subsequent page loads.
754
+ *
755
+ * (b) Optional 401 hook. If `options.on401` is provided, any 401
756
+ * response from a non-skipped URL invokes the hook so the app
757
+ * can clear local credentials and surface "session expired"
758
+ * UX. The response is still returned to the original caller —
759
+ * the hook is purely additive.
760
+ *
761
+ * Idempotent: re-calling updates `skipUrls` / `on401` in place
762
+ * without re-wrapping `window.fetch` or `onBeforeNavigate`. Called
763
+ * automatically by `enableSPA` when
764
+ * `HotStaq.autoInstallFetchInterceptors === true` (the default); set
765
+ * that flag to `false` before the `<hotstaq>` element processes if
766
+ * your app needs to manage fetch wrapping itself.
767
+ *
768
+ * @param options Skip-list and 401 hook. May be re-passed later to
769
+ * update either field.
770
+ */
771
+ static installFetchInterceptors(options?: IHotFetchInterceptorOptions): void;
661
772
  /**
662
773
  * Prefetch all .hott files from the routerManager in the background.
663
774
  * This preloads route content into the processor's file cache so that
@@ -1 +1 @@
1
- {"version":3,"file":"HotStaq.d.ts","sourceRoot":"","sources":["../../src/HotStaq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HotStaq.d.ts","sourceRoot":"","sources":["../../src/HotStaq.ts"],"names":[],"mappings":"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"}
@@ -1799,6 +1799,49 @@ class HotStaq {
1799
1799
  static onReady(readyFunc) {
1800
1800
  HotStaq.onReadyEvent = readyFunc;
1801
1801
  }
1802
+ /**
1803
+ * Render a minimal "Page not found" page when no registered route
1804
+ * matches the current URL and no `path="404"` / `path="*"` fallback
1805
+ * is configured. Called by HotStaqWebStart's boot path; can also be
1806
+ * invoked directly.
1807
+ *
1808
+ * Apps that want a branded 404 should register a `<route path="404"
1809
+ * src="./404.hott">` (or `path="*"`) in their `<hotstaq-router>` —
1810
+ * the framework picks it up before falling back to this. For
1811
+ * runtime-decision 404 logic, set `HotStaq.onRouteNotFound`.
1812
+ */
1813
+ static displayDefault404(path) {
1814
+ const safePath = String(path || "")
1815
+ .replace(/&/g, "&amp;")
1816
+ .replace(/</g, "&lt;")
1817
+ .replace(/>/g, "&gt;")
1818
+ .replace(/"/g, "&quot;");
1819
+ const html = "<!DOCTYPE html><html lang=\"en\"><head>" +
1820
+ "<meta charset=\"UTF-8\">" +
1821
+ "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">" +
1822
+ "<title>Page not found</title>" +
1823
+ "<style>" +
1824
+ "html,body{height:100%;margin:0;}" +
1825
+ "body{display:flex;align-items:center;justify-content:center;" +
1826
+ "font-family:system-ui,-apple-system,sans-serif;" +
1827
+ "color:#1f2937;background:#f9fafb;}" +
1828
+ ".fl-404{text-align:center;padding:2rem;}" +
1829
+ ".fl-404 h1{font-size:4rem;margin:0 0 0.5rem;color:#4f46e5;}" +
1830
+ ".fl-404 p{margin:0.25rem 0;color:#6b7280;}" +
1831
+ ".fl-404 code{background:#e5e7eb;padding:0.125rem 0.375rem;" +
1832
+ "border-radius:0.25rem;font-size:0.875rem;}" +
1833
+ ".fl-404 a{color:#4f46e5;text-decoration:none;font-weight:500;" +
1834
+ "display:inline-block;margin-top:1rem;}" +
1835
+ ".fl-404 a:hover{text-decoration:underline;}" +
1836
+ "</style></head><body>" +
1837
+ "<div class=\"fl-404\">" +
1838
+ "<h1>404</h1>" +
1839
+ "<p>Page not found.</p>" +
1840
+ "<p><code>" + safePath + "</code> doesn't match any registered route.</p>" +
1841
+ "<a href=\"/\">&larr; Go home</a>" +
1842
+ "</div></body></html>";
1843
+ HotStaq.useOutput(html);
1844
+ }
1802
1845
  /**
1803
1846
  * Replace the current HTML page with the output.
1804
1847
  * This is meant for web browser use only.
@@ -2054,6 +2097,15 @@ class HotStaq {
2054
2097
  HotStaq.spaProcessor = processor;
2055
2098
  // Restore SPA data from window backup if class properties were reset.
2056
2099
  HotStaq.restoreSpaData();
2100
+ // Wire up the per-nav AbortController unless the app opted out.
2101
+ // Without this, rapid SPA clicks leave each old page's fetches
2102
+ // running against an already-swapped target, and saturate the
2103
+ // browser's per-origin connection cap so the new page's requests
2104
+ // queue indefinitely behind abandoned ones. Apps can re-call
2105
+ // installFetchInterceptors later with `on401` / `skipUrls` to
2106
+ // layer in session-out UX without re-wrapping fetch.
2107
+ if (HotStaq.autoInstallFetchInterceptors === true)
2108
+ HotStaq.installFetchInterceptors();
2057
2109
  // Set up link interception.
2058
2110
  document.addEventListener("click", (e) => {
2059
2111
  // Find the closest <a> ancestor.
@@ -2100,6 +2152,94 @@ class HotStaq {
2100
2152
  // Prefetch all route .hott files in the background for instant SPA navigation.
2101
2153
  HotStaq.prefetchRoutes();
2102
2154
  }
2155
+ /**
2156
+ * Install fetch interceptors for SPA-mode frontends. Two pieces:
2157
+ *
2158
+ * (a) Per-navigation `AbortController`. Every `window.fetch(...)`
2159
+ * that doesn't already pass its own `signal` gets attached to
2160
+ * `HotStaq.navAbort.signal`. On every SPA navigation the
2161
+ * controller is aborted and replaced, so the previous page's
2162
+ * in-flight requests die cleanly before the new page makes its
2163
+ * own. Without this, rapid clicks accumulate abandoned fetches
2164
+ * that occupy the browser's 6-per-origin connection cap and
2165
+ * block subsequent page loads.
2166
+ *
2167
+ * (b) Optional 401 hook. If `options.on401` is provided, any 401
2168
+ * response from a non-skipped URL invokes the hook so the app
2169
+ * can clear local credentials and surface "session expired"
2170
+ * UX. The response is still returned to the original caller —
2171
+ * the hook is purely additive.
2172
+ *
2173
+ * Idempotent: re-calling updates `skipUrls` / `on401` in place
2174
+ * without re-wrapping `window.fetch` or `onBeforeNavigate`. Called
2175
+ * automatically by `enableSPA` when
2176
+ * `HotStaq.autoInstallFetchInterceptors === true` (the default); set
2177
+ * that flag to `false` before the `<hotstaq>` element processes if
2178
+ * your app needs to manage fetch wrapping itself.
2179
+ *
2180
+ * @param options Skip-list and 401 hook. May be re-passed later to
2181
+ * update either field.
2182
+ */
2183
+ static installFetchInterceptors(options = {}) {
2184
+ // Merge so multiple callers can each contribute (e.g. one app
2185
+ // adds a skipUrl, another wires up on401).
2186
+ HotStaq.fetchInterceptorOptions = Object.assign(Object.assign(Object.assign({}, HotStaq.fetchInterceptorOptions), options), { skipUrls: [
2187
+ ...((HotStaq.fetchInterceptorOptions || {}).skipUrls || []),
2188
+ ...(options.skipUrls || [])
2189
+ ] });
2190
+ if (HotStaq.fetchInterceptorsInstalled === true)
2191
+ return;
2192
+ HotStaq.fetchInterceptorsInstalled = true;
2193
+ if (typeof window === "undefined" || typeof window.fetch !== "function")
2194
+ return;
2195
+ HotStaq.navAbort = new AbortController();
2196
+ const origFetch = window.fetch.bind(window);
2197
+ window.fetch = function (input, init) {
2198
+ const opts = HotStaq.fetchInterceptorOptions || {};
2199
+ const url = (typeof input === "string")
2200
+ ? input
2201
+ : ((input && input.url) || "");
2202
+ let isSkipUrl = false;
2203
+ const skipUrls = opts.skipUrls || [];
2204
+ for (let iIdx = 0; iIdx < skipUrls.length; iIdx++) {
2205
+ if (url.indexOf(skipUrls[iIdx]) === 0) {
2206
+ isSkipUrl = true;
2207
+ break;
2208
+ }
2209
+ }
2210
+ let finalInit = init;
2211
+ // (a) Attach the per-nav signal when the caller didn't supply one.
2212
+ if (!isSkipUrl) {
2213
+ finalInit = init || {};
2214
+ if (finalInit.signal == null)
2215
+ finalInit = Object.assign({}, finalInit, { signal: HotStaq.navAbort.signal });
2216
+ }
2217
+ return origFetch(input, finalInit).then((resp) => {
2218
+ // (b) 401 hook.
2219
+ if (resp.status === 401 && !isSkipUrl && typeof opts.on401 === "function") {
2220
+ try {
2221
+ opts.on401(resp, input, finalInit);
2222
+ }
2223
+ catch (ex) { /* don't let app errors break the response chain */ }
2224
+ }
2225
+ return (resp);
2226
+ });
2227
+ };
2228
+ // Wrap onBeforeNavigate so the previous page's pending fetches
2229
+ // die before the new page renders. Compose with any existing
2230
+ // hook the app may have set — we don't own that global.
2231
+ const prevHook = HotStaq.onBeforeNavigate;
2232
+ HotStaq.onBeforeNavigate = (path) => {
2233
+ try {
2234
+ HotStaq.navAbort.abort();
2235
+ }
2236
+ catch (ex) { /* nothing in flight */ }
2237
+ HotStaq.navAbort = new AbortController();
2238
+ if (typeof prevHook === "function")
2239
+ return (prevHook(path));
2240
+ return (true);
2241
+ };
2242
+ }
2103
2243
  /**
2104
2244
  * Prefetch all .hott files from the routerManager in the background.
2105
2245
  * This preloads route content into the processor's file cache so that
@@ -2362,7 +2502,7 @@ exports.HotStaq = HotStaq;
2362
2502
  /**
2363
2503
  * The current version of HotStaq.
2364
2504
  */
2365
- HotStaq.version = "0.9.1";
2505
+ HotStaq.version = "0.9.3";
2366
2506
  /**
2367
2507
  * Indicates if this is a web build.
2368
2508
  */
@@ -2424,6 +2564,51 @@ HotStaq.onBeforeNavigate = null;
2424
2564
  * Event fired after SPA navigation completes.
2425
2565
  */
2426
2566
  HotStaq.onAfterNavigate = null;
2567
+ /**
2568
+ * Override the framework's default 404 rendering.
2569
+ *
2570
+ * Called from `HotStaqWebStart` when the current URL doesn't match
2571
+ * any registered `<route>`, no `path="404"` or `path="*"` fallback
2572
+ * exists in the router, and the page boot would otherwise throw
2573
+ * "The hotstaq tag must have a src, HTML contents inside it, or a
2574
+ * router set."
2575
+ *
2576
+ * Set this to render a custom 404 (e.g. redirect to a branded page,
2577
+ * or call `HotStaq.useOutput` with your own HTML). When set, the
2578
+ * default fallback in `HotStaq.displayDefault404` is suppressed.
2579
+ *
2580
+ * Most apps should prefer registering a `path="404"` route in their
2581
+ * `<hotstaq-router>` instead — this hook is for cases where you
2582
+ * need to make a runtime decision (e.g. dispatch on the path).
2583
+ */
2584
+ HotStaq.onRouteNotFound = null;
2585
+ /**
2586
+ * If true (the default), `enableSPA` automatically wires up fetch
2587
+ * interceptors that abort the previous page's pending requests when
2588
+ * the user navigates between SPA routes. Set this to false BEFORE the
2589
+ * `<hotstaq>` element runs (e.g. in a <script> earlier in <head>) to
2590
+ * opt out — useful if your frontend already wraps `window.fetch` and
2591
+ * doesn't want HotStaq to compose with it.
2592
+ */
2593
+ HotStaq.autoInstallFetchInterceptors = true;
2594
+ /**
2595
+ * The current page's AbortController. Aborted on every SPA navigation
2596
+ * so previous-page fetches die before the new page's requests go out.
2597
+ * `installFetchInterceptors` populates this.
2598
+ */
2599
+ HotStaq.navAbort = null;
2600
+ /**
2601
+ * Internal: tracks whether `installFetchInterceptors` has wrapped
2602
+ * `window.fetch` and `onBeforeNavigate`. Exposed for tests; do not
2603
+ * toggle from app code.
2604
+ */
2605
+ HotStaq.fetchInterceptorsInstalled = false;
2606
+ /**
2607
+ * Internal: most recent options passed to `installFetchInterceptors`,
2608
+ * read by the wrapped fetch on every call so apps can update
2609
+ * `skipUrls` / `on401` after install without re-wrapping.
2610
+ */
2611
+ HotStaq.fetchInterceptorOptions = {};
2427
2612
  /**
2428
2613
  * Errors to execute when something goes wrong.
2429
2614
  */