sibujs 1.4.0 → 2.0.0
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/README.md +105 -119
- package/dist/browser.cjs +288 -80
- package/dist/browser.d.cts +19 -9
- package/dist/browser.d.ts +19 -9
- package/dist/browser.js +6 -6
- package/dist/build.cjs +1019 -313
- package/dist/build.d.cts +1 -1
- package/dist/build.d.ts +1 -1
- package/dist/build.js +15 -13
- package/dist/cdn.global.js +17 -16
- package/dist/chunk-2RA7SHDA.js +65 -0
- package/dist/chunk-2UPRY23K.js +80 -0
- package/dist/chunk-3JHCYHWN.js +125 -0
- package/dist/{chunk-ZWKZCBO6.js → chunk-3LR7GLWQ.js} +154 -33
- package/dist/{chunk-3AIRKM3B.js → chunk-3NSGB5JN.js} +115 -34
- package/dist/{chunk-3ARAQO7B.js → chunk-52YJLLRO.js} +29 -6
- package/dist/chunk-54EDRCEF.js +93 -0
- package/dist/chunk-7JDB7I65.js +1327 -0
- package/dist/{chunk-WZSPOOER.js → chunk-CC65Y57T.js} +8 -5
- package/dist/{chunk-23VV7YD3.js → chunk-DFPFITST.js} +25 -30
- package/dist/{chunk-WR5D4EGH.js → chunk-GTBNNBJ6.js} +14 -2
- package/dist/chunk-HB24TBAF.js +121 -0
- package/dist/{chunk-CZUGLNJS.js → chunk-ITX6OO3F.js} +3 -3
- package/dist/{chunk-JAKHTMQU.js → chunk-JA6667UN.js} +206 -46
- package/dist/{chunk-77L6NL3X.js → chunk-JXMMDLBY.js} +306 -183
- package/dist/{chunk-3X2YG6YM.js → chunk-JYD2PWXH.js} +59 -28
- package/dist/{chunk-F3FA4F32.js → chunk-KLRMB5ZS.js} +135 -79
- package/dist/{chunk-5X6PP2UK.js → chunk-LMLD24FC.js} +2 -2
- package/dist/{chunk-M4NLBH4I.js → chunk-LYTCUZ7H.js} +3 -2
- package/dist/{chunk-TSOKIX5Z.js → chunk-MIUAXB7K.js} +126 -74
- package/dist/{chunk-QWZG56ET.js → chunk-ND2664SF.js} +558 -190
- package/dist/{chunk-JCI5M6U6.js → chunk-O2MNQFLP.js} +261 -79
- package/dist/{chunk-EWFVA3TJ.js → chunk-R73P76YZ.js} +1 -1
- package/dist/{chunk-2BYQDGN3.js → chunk-SAHNHTFC.js} +234 -63
- package/dist/chunk-UCS6AMJ7.js +79 -0
- package/dist/{chunk-ZD6OAMTH.js → chunk-VLPPXTYG.js} +90 -35
- package/dist/{chunk-OUZZEE4S.js → chunk-WOMYAHHI.js} +17 -11
- package/dist/{contracts-xo5ckdRP.d.cts → contracts-ey_Qh8ef.d.cts} +7 -8
- package/dist/{contracts-xo5ckdRP.d.ts → contracts-ey_Qh8ef.d.ts} +7 -8
- package/dist/{customElement-D2DJp_xn.d.cts → customElement-CPfIrbvg.d.cts} +18 -9
- package/dist/{customElement-D2DJp_xn.d.ts → customElement-CPfIrbvg.d.ts} +18 -9
- package/dist/data.cjs +452 -100
- package/dist/data.d.cts +20 -2
- package/dist/data.d.ts +20 -2
- package/dist/data.js +11 -9
- package/dist/devtools.cjs +535 -247
- package/dist/devtools.d.cts +1 -1
- package/dist/devtools.d.ts +1 -1
- package/dist/devtools.js +34 -30
- package/dist/ecosystem.cjs +499 -143
- package/dist/ecosystem.d.cts +13 -11
- package/dist/ecosystem.d.ts +13 -11
- package/dist/ecosystem.js +12 -11
- package/dist/extras.cjs +3639 -1629
- package/dist/extras.d.cts +11 -11
- package/dist/extras.d.ts +11 -11
- package/dist/extras.js +58 -45
- package/dist/index.cjs +1023 -313
- package/dist/index.d.cts +128 -55
- package/dist/index.d.ts +128 -55
- package/dist/index.js +28 -16
- package/dist/{introspect-BumjnBKr.d.cts → introspect-BWNjNw64.d.cts} +22 -2
- package/dist/{introspect-CZrlcaYy.d.ts → introspect-cY2pg9pW.d.ts} +22 -2
- package/dist/motion.cjs +90 -36
- package/dist/motion.d.cts +1 -1
- package/dist/motion.d.ts +1 -1
- package/dist/motion.js +4 -4
- package/dist/patterns.cjs +414 -81
- package/dist/patterns.d.cts +53 -20
- package/dist/patterns.d.ts +53 -20
- package/dist/patterns.js +7 -7
- package/dist/performance.cjs +364 -108
- package/dist/performance.d.cts +29 -17
- package/dist/performance.d.ts +29 -17
- package/dist/performance.js +13 -6
- package/dist/plugin-D30wlGW5.d.cts +71 -0
- package/dist/plugin-D30wlGW5.d.ts +71 -0
- package/dist/plugins.cjs +652 -271
- package/dist/plugins.d.cts +13 -6
- package/dist/plugins.d.ts +13 -6
- package/dist/plugins.js +116 -50
- package/dist/{ssr-Do_SiVoL.d.cts → ssr-CrVNy6Pa.d.cts} +9 -15
- package/dist/{ssr-Do_SiVoL.d.ts → ssr-CrVNy6Pa.d.ts} +9 -15
- package/dist/{ssr-4PBXAOO3.js → ssr-FXD2PPMC.js} +4 -3
- package/dist/ssr.cjs +648 -219
- package/dist/ssr.d.cts +27 -7
- package/dist/ssr.d.ts +27 -7
- package/dist/ssr.js +12 -11
- package/dist/{tagFactory-DaJ0YWX6.d.ts → tagFactory-S17H2qxu.d.cts} +9 -1
- package/dist/{tagFactory-DaJ0YWX6.d.cts → tagFactory-S17H2qxu.d.ts} +9 -1
- package/dist/testing.cjs +252 -63
- package/dist/testing.d.cts +17 -4
- package/dist/testing.d.ts +17 -4
- package/dist/testing.js +100 -44
- package/dist/ui.cjs +576 -168
- package/dist/ui.d.cts +13 -16
- package/dist/ui.d.ts +13 -16
- package/dist/ui.js +20 -17
- package/dist/widgets.cjs +1001 -93
- package/dist/widgets.d.cts +104 -2
- package/dist/widgets.d.ts +104 -2
- package/dist/widgets.js +9 -7
- package/package.json +8 -2
- package/dist/chunk-32DY64NT.js +0 -282
- package/dist/chunk-3CRQALYP.js +0 -877
- package/dist/chunk-4EI4AG32.js +0 -482
- package/dist/chunk-4MYMUBRS.js +0 -21
- package/dist/chunk-6HLLIF3K.js +0 -398
- package/dist/chunk-6LSNVCS2.js +0 -937
- package/dist/chunk-6SA3QQES.js +0 -61
- package/dist/chunk-7BF6TK55.js +0 -1097
- package/dist/chunk-7TQKR4PP.js +0 -294
- package/dist/chunk-7V26P53V.js +0 -712
- package/dist/chunk-AZ3ISID5.js +0 -298
- package/dist/chunk-B7SWRFUT.js +0 -332
- package/dist/chunk-BGN5ZMP4.js +0 -26
- package/dist/chunk-BTU3TJDS.js +0 -365
- package/dist/chunk-BW3WT46K.js +0 -937
- package/dist/chunk-C6KFWOFV.js +0 -616
- package/dist/chunk-CHF5OHIA.js +0 -61
- package/dist/chunk-CHJ27IGK.js +0 -26
- package/dist/chunk-CMBFNA7L.js +0 -27
- package/dist/chunk-DAHRH4ON.js +0 -331
- package/dist/chunk-DKOHBI74.js +0 -924
- package/dist/chunk-DTCOOBMX.js +0 -725
- package/dist/chunk-EBGIRKQY.js +0 -616
- package/dist/chunk-EUZND3CB.js +0 -27
- package/dist/chunk-EVCZO745.js +0 -365
- package/dist/chunk-FGOEVHY3.js +0 -60
- package/dist/chunk-G3BOQPVO.js +0 -365
- package/dist/chunk-GCOK2LC3.js +0 -282
- package/dist/chunk-HGMJFBC7.js +0 -654
- package/dist/chunk-K5ZUMYVS.js +0 -89
- package/dist/chunk-KQPDEVVS.js +0 -398
- package/dist/chunk-L6JRBDNS.js +0 -60
- package/dist/chunk-LA6KQEDU.js +0 -712
- package/dist/chunk-MDVXJWFN.js +0 -304
- package/dist/chunk-MEZVEBPN.js +0 -2008
- package/dist/chunk-MK4ERFYL.js +0 -2249
- package/dist/chunk-MLKGABMK.js +0 -9
- package/dist/chunk-MQ5GOYPH.js +0 -2249
- package/dist/chunk-N6IZB6KJ.js +0 -567
- package/dist/chunk-NEKUBFPT.js +0 -60
- package/dist/chunk-NHUC2QWH.js +0 -282
- package/dist/chunk-NMRUZALC.js +0 -1097
- package/dist/chunk-NYVAC6P5.js +0 -37
- package/dist/chunk-OF7UZIVB.js +0 -725
- package/dist/chunk-P6W3STU4.js +0 -2249
- package/dist/chunk-PBHF5WKN.js +0 -616
- package/dist/chunk-PTQJDMRT.js +0 -146
- package/dist/chunk-PZEGYCF5.js +0 -61
- package/dist/chunk-QBMDLBU2.js +0 -975
- package/dist/chunk-RQGQSLQK.js +0 -725
- package/dist/chunk-SDLZDHKP.js +0 -107
- package/dist/chunk-TNQWPPE6.js +0 -37
- package/dist/chunk-UHNL42EF.js +0 -2730
- package/dist/chunk-UNXCEF6S.js +0 -21
- package/dist/chunk-V2XTI523.js +0 -347
- package/dist/chunk-VAU366PN.js +0 -2241
- package/dist/chunk-VMVDTCXB.js +0 -712
- package/dist/chunk-VRW3FULF.js +0 -725
- package/dist/chunk-WADYRCO2.js +0 -304
- package/dist/chunk-WILQZRO4.js +0 -282
- package/dist/chunk-WUHJISPP.js +0 -298
- package/dist/chunk-XYU6TZOW.js +0 -182
- package/dist/chunk-Y6GP4QGG.js +0 -276
- package/dist/chunk-YECR7UIA.js +0 -347
- package/dist/chunk-YUTWTI4B.js +0 -654
- package/dist/chunk-Z65KYU7I.js +0 -26
- package/dist/chunk-Z6POF5YC.js +0 -975
- package/dist/chunk-ZBJP6WFL.js +0 -482
- package/dist/contracts-DDrwxvJ-.d.cts +0 -245
- package/dist/contracts-DDrwxvJ-.d.ts +0 -245
- package/dist/contracts-DOrhwbke.d.cts +0 -245
- package/dist/contracts-DOrhwbke.d.ts +0 -245
- package/dist/customElement-BKQfbSZQ.d.cts +0 -262
- package/dist/customElement-BKQfbSZQ.d.ts +0 -262
- package/dist/customElement-yz8uyk-0.d.cts +0 -308
- package/dist/customElement-yz8uyk-0.d.ts +0 -308
- package/dist/introspect-Cb0zgpi2.d.cts +0 -477
- package/dist/introspect-Y2xNXGSf.d.ts +0 -477
- package/dist/plugin-Bek4RhJY.d.cts +0 -43
- package/dist/plugin-Bek4RhJY.d.ts +0 -43
- package/dist/ssr-3RXHP5ES.js +0 -38
- package/dist/ssr-6GIMY5MX.js +0 -38
- package/dist/ssr-BA6sxxUd.d.cts +0 -135
- package/dist/ssr-BA6sxxUd.d.ts +0 -135
- package/dist/ssr-WKUPVSSK.js +0 -36
- package/dist/tagFactory-Dl8QCLga.d.cts +0 -23
- package/dist/tagFactory-Dl8QCLga.d.ts +0 -23
package/dist/performance.d.cts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { T as TrustedHTML } from './ssr-CrVNy6Pa.cjs';
|
|
2
|
+
export { t as trustHTML } from './ssr-CrVNy6Pa.cjs';
|
|
3
|
+
|
|
1
4
|
declare const Priority: {
|
|
2
5
|
readonly IMMEDIATE: 0;
|
|
3
6
|
readonly USER_BLOCKING: 1;
|
|
@@ -56,6 +59,11 @@ declare function startTransition(callback: () => void): void;
|
|
|
56
59
|
* The deferred value mirrors the source but updates at LOW priority,
|
|
57
60
|
* allowing the UI to remain responsive while expensive derived state
|
|
58
61
|
* catches up.
|
|
62
|
+
*
|
|
63
|
+
* Uses an effect to subscribe to the source getter. When the source
|
|
64
|
+
* changes, a LOW-priority update is scheduled. The deferred signal
|
|
65
|
+
* only updates when the scheduler flushes, so fast bursts of source
|
|
66
|
+
* changes collapse into a single deferred update.
|
|
59
67
|
*/
|
|
60
68
|
declare function deferredValue<T>(getter: () => T): () => T;
|
|
61
69
|
/**
|
|
@@ -89,7 +97,7 @@ declare function setIdPrefix(prefix: string): void;
|
|
|
89
97
|
* @example
|
|
90
98
|
* ```ts
|
|
91
99
|
* const id = id();
|
|
92
|
-
* label({ htmlFor: id,
|
|
100
|
+
* label({ htmlFor: id }, "Name");
|
|
93
101
|
* input({ id, type: "text" });
|
|
94
102
|
* ```
|
|
95
103
|
*/
|
|
@@ -109,6 +117,11 @@ declare class DOMPool {
|
|
|
109
117
|
/**
|
|
110
118
|
* Return an element to the pool for reuse.
|
|
111
119
|
* Clears attributes, children, and event listeners.
|
|
120
|
+
*
|
|
121
|
+
* Contract: the caller MUST detach the element from the DOM (and run any
|
|
122
|
+
* `dispose()` on bound reactive subscriptions) BEFORE calling `release()`.
|
|
123
|
+
* Releasing a connected element leaves it visible while it is mutated and
|
|
124
|
+
* is almost certainly a bug.
|
|
112
125
|
*/
|
|
113
126
|
release(element: HTMLElement): void;
|
|
114
127
|
/**
|
|
@@ -120,8 +133,7 @@ declare class DOMPool {
|
|
|
120
133
|
*/
|
|
121
134
|
stats(): Record<string, number>;
|
|
122
135
|
}
|
|
123
|
-
|
|
124
|
-
declare const domPool: DOMPool;
|
|
136
|
+
declare function getDOMPool(): DOMPool;
|
|
125
137
|
/**
|
|
126
138
|
* Preloads a resource (script, style, or generic fetch).
|
|
127
139
|
*/
|
|
@@ -140,9 +152,11 @@ declare function preloadImage(src: string): Promise<HTMLImageElement>;
|
|
|
140
152
|
* Provides markers and utilities for tree-shaking and dead code elimination.
|
|
141
153
|
*/
|
|
142
154
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
155
|
+
* Invoke a factory and return its result. The PURE annotation that enables
|
|
156
|
+
* tree-shaking is only honoured at the call site, not inside the function
|
|
157
|
+
* declaration. Annotate call sites like this:
|
|
158
|
+
*
|
|
159
|
+
* const x = /\* @__PURE__ *\/ pure(() => expensive());
|
|
146
160
|
*/
|
|
147
161
|
declare function pure<T>(fn: () => T): T;
|
|
148
162
|
/**
|
|
@@ -176,12 +190,16 @@ declare function noSideEffect<T extends (...args: unknown[]) => unknown>(fn: T):
|
|
|
176
190
|
* Provides markers and utilities for Svelte-style compile-time optimizations.
|
|
177
191
|
* These are hints for build tools and static analyzers.
|
|
178
192
|
*/
|
|
193
|
+
|
|
179
194
|
/**
|
|
180
195
|
* Marks a component's template as static (no reactive bindings).
|
|
181
196
|
* A build tool can pre-render this to a static HTML string and
|
|
182
197
|
* skip reactive setup entirely.
|
|
198
|
+
*
|
|
199
|
+
* Accepts only `TrustedHTML` (mint via `trustHTML(...)`) to keep the
|
|
200
|
+
* `innerHTML` write from becoming a silent XSS sink (CWE-79).
|
|
183
201
|
*/
|
|
184
|
-
declare function staticTemplate(html:
|
|
202
|
+
declare function staticTemplate(html: TrustedHTML): HTMLElement;
|
|
185
203
|
/**
|
|
186
204
|
* Clone a static template for efficient repeated rendering.
|
|
187
205
|
* Uses template.content.cloneNode(true) which is faster than createElement.
|
|
@@ -191,7 +209,7 @@ declare function cloneTemplate(template: HTMLTemplateElement): DocumentFragment;
|
|
|
191
209
|
* Pre-compile a component factory.
|
|
192
210
|
* Caches the template and only applies dynamic bindings on each call.
|
|
193
211
|
*/
|
|
194
|
-
declare function precompile<Props>(templateHtml:
|
|
212
|
+
declare function precompile<Props>(templateHtml: TrustedHTML, hydrate: (el: HTMLElement, props: Props) => void): (props: Props) => HTMLElement;
|
|
195
213
|
/**
|
|
196
214
|
* Marker for static expressions that can be hoisted out of reactive scopes.
|
|
197
215
|
* A compiler pass would extract these to module scope.
|
|
@@ -355,14 +373,8 @@ interface ChunkConfig {
|
|
|
355
373
|
* Central registry for managing dynamic chunks with caching and lifecycle callbacks.
|
|
356
374
|
*/
|
|
357
375
|
declare function createChunkRegistry(config?: ChunkConfig): {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
*/
|
|
361
|
-
load<T>(id: string, loader: () => Promise<T>): Promise<T>;
|
|
362
|
-
/**
|
|
363
|
-
* Preload a chunk without blocking. Silently caches for later use.
|
|
364
|
-
*/
|
|
365
|
-
preload<T>(id: string, loader: () => Promise<T>): void;
|
|
376
|
+
load: <T>(id: string, loader: () => Promise<T>) => Promise<T>;
|
|
377
|
+
preload: <T>(id: string, loader: () => Promise<T>) => void;
|
|
366
378
|
/**
|
|
367
379
|
* Preload multiple chunks in parallel.
|
|
368
380
|
*/
|
|
@@ -413,4 +425,4 @@ declare function preloadModule(url: string): void;
|
|
|
413
425
|
*/
|
|
414
426
|
declare function preloadModules(urls: string[]): void;
|
|
415
427
|
|
|
416
|
-
export { type ChunkConfig, DOMPool, Features, type NormalizeResult, type NormalizedEntities, type NormalizedSchema, type NormalizedState, type NormalizedStoreActions, Priority, type PriorityLevel, block, cloneTemplate, conditional, createChunkRegistry, deferredValue, denormalize, devOnly,
|
|
428
|
+
export { type ChunkConfig, DOMPool, Features, type NormalizeResult, type NormalizedEntities, type NormalizedSchema, type NormalizedState, type NormalizedStoreActions, Priority, type PriorityLevel, TrustedHTML, block, cloneTemplate, conditional, createChunkRegistry, deferredValue, denormalize, devOnly, flushScheduler, getDOMPool, hoistable, lazyChunk, noSideEffect, normalize, normalizedStore, pendingTasks, precompile, prefetch, preloadImage, preloadModule, preloadModules, preloadResource, processInChunks, pure, resetIdCounter, scheduleUpdate, setIdPrefix, startTransition, staticTemplate, transitionState, uniqueId, yieldToMain };
|
package/dist/performance.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { T as TrustedHTML } from './ssr-CrVNy6Pa.js';
|
|
2
|
+
export { t as trustHTML } from './ssr-CrVNy6Pa.js';
|
|
3
|
+
|
|
1
4
|
declare const Priority: {
|
|
2
5
|
readonly IMMEDIATE: 0;
|
|
3
6
|
readonly USER_BLOCKING: 1;
|
|
@@ -56,6 +59,11 @@ declare function startTransition(callback: () => void): void;
|
|
|
56
59
|
* The deferred value mirrors the source but updates at LOW priority,
|
|
57
60
|
* allowing the UI to remain responsive while expensive derived state
|
|
58
61
|
* catches up.
|
|
62
|
+
*
|
|
63
|
+
* Uses an effect to subscribe to the source getter. When the source
|
|
64
|
+
* changes, a LOW-priority update is scheduled. The deferred signal
|
|
65
|
+
* only updates when the scheduler flushes, so fast bursts of source
|
|
66
|
+
* changes collapse into a single deferred update.
|
|
59
67
|
*/
|
|
60
68
|
declare function deferredValue<T>(getter: () => T): () => T;
|
|
61
69
|
/**
|
|
@@ -89,7 +97,7 @@ declare function setIdPrefix(prefix: string): void;
|
|
|
89
97
|
* @example
|
|
90
98
|
* ```ts
|
|
91
99
|
* const id = id();
|
|
92
|
-
* label({ htmlFor: id,
|
|
100
|
+
* label({ htmlFor: id }, "Name");
|
|
93
101
|
* input({ id, type: "text" });
|
|
94
102
|
* ```
|
|
95
103
|
*/
|
|
@@ -109,6 +117,11 @@ declare class DOMPool {
|
|
|
109
117
|
/**
|
|
110
118
|
* Return an element to the pool for reuse.
|
|
111
119
|
* Clears attributes, children, and event listeners.
|
|
120
|
+
*
|
|
121
|
+
* Contract: the caller MUST detach the element from the DOM (and run any
|
|
122
|
+
* `dispose()` on bound reactive subscriptions) BEFORE calling `release()`.
|
|
123
|
+
* Releasing a connected element leaves it visible while it is mutated and
|
|
124
|
+
* is almost certainly a bug.
|
|
112
125
|
*/
|
|
113
126
|
release(element: HTMLElement): void;
|
|
114
127
|
/**
|
|
@@ -120,8 +133,7 @@ declare class DOMPool {
|
|
|
120
133
|
*/
|
|
121
134
|
stats(): Record<string, number>;
|
|
122
135
|
}
|
|
123
|
-
|
|
124
|
-
declare const domPool: DOMPool;
|
|
136
|
+
declare function getDOMPool(): DOMPool;
|
|
125
137
|
/**
|
|
126
138
|
* Preloads a resource (script, style, or generic fetch).
|
|
127
139
|
*/
|
|
@@ -140,9 +152,11 @@ declare function preloadImage(src: string): Promise<HTMLImageElement>;
|
|
|
140
152
|
* Provides markers and utilities for tree-shaking and dead code elimination.
|
|
141
153
|
*/
|
|
142
154
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
155
|
+
* Invoke a factory and return its result. The PURE annotation that enables
|
|
156
|
+
* tree-shaking is only honoured at the call site, not inside the function
|
|
157
|
+
* declaration. Annotate call sites like this:
|
|
158
|
+
*
|
|
159
|
+
* const x = /\* @__PURE__ *\/ pure(() => expensive());
|
|
146
160
|
*/
|
|
147
161
|
declare function pure<T>(fn: () => T): T;
|
|
148
162
|
/**
|
|
@@ -176,12 +190,16 @@ declare function noSideEffect<T extends (...args: unknown[]) => unknown>(fn: T):
|
|
|
176
190
|
* Provides markers and utilities for Svelte-style compile-time optimizations.
|
|
177
191
|
* These are hints for build tools and static analyzers.
|
|
178
192
|
*/
|
|
193
|
+
|
|
179
194
|
/**
|
|
180
195
|
* Marks a component's template as static (no reactive bindings).
|
|
181
196
|
* A build tool can pre-render this to a static HTML string and
|
|
182
197
|
* skip reactive setup entirely.
|
|
198
|
+
*
|
|
199
|
+
* Accepts only `TrustedHTML` (mint via `trustHTML(...)`) to keep the
|
|
200
|
+
* `innerHTML` write from becoming a silent XSS sink (CWE-79).
|
|
183
201
|
*/
|
|
184
|
-
declare function staticTemplate(html:
|
|
202
|
+
declare function staticTemplate(html: TrustedHTML): HTMLElement;
|
|
185
203
|
/**
|
|
186
204
|
* Clone a static template for efficient repeated rendering.
|
|
187
205
|
* Uses template.content.cloneNode(true) which is faster than createElement.
|
|
@@ -191,7 +209,7 @@ declare function cloneTemplate(template: HTMLTemplateElement): DocumentFragment;
|
|
|
191
209
|
* Pre-compile a component factory.
|
|
192
210
|
* Caches the template and only applies dynamic bindings on each call.
|
|
193
211
|
*/
|
|
194
|
-
declare function precompile<Props>(templateHtml:
|
|
212
|
+
declare function precompile<Props>(templateHtml: TrustedHTML, hydrate: (el: HTMLElement, props: Props) => void): (props: Props) => HTMLElement;
|
|
195
213
|
/**
|
|
196
214
|
* Marker for static expressions that can be hoisted out of reactive scopes.
|
|
197
215
|
* A compiler pass would extract these to module scope.
|
|
@@ -355,14 +373,8 @@ interface ChunkConfig {
|
|
|
355
373
|
* Central registry for managing dynamic chunks with caching and lifecycle callbacks.
|
|
356
374
|
*/
|
|
357
375
|
declare function createChunkRegistry(config?: ChunkConfig): {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
*/
|
|
361
|
-
load<T>(id: string, loader: () => Promise<T>): Promise<T>;
|
|
362
|
-
/**
|
|
363
|
-
* Preload a chunk without blocking. Silently caches for later use.
|
|
364
|
-
*/
|
|
365
|
-
preload<T>(id: string, loader: () => Promise<T>): void;
|
|
376
|
+
load: <T>(id: string, loader: () => Promise<T>) => Promise<T>;
|
|
377
|
+
preload: <T>(id: string, loader: () => Promise<T>) => void;
|
|
366
378
|
/**
|
|
367
379
|
* Preload multiple chunks in parallel.
|
|
368
380
|
*/
|
|
@@ -413,4 +425,4 @@ declare function preloadModule(url: string): void;
|
|
|
413
425
|
*/
|
|
414
426
|
declare function preloadModules(urls: string[]): void;
|
|
415
427
|
|
|
416
|
-
export { type ChunkConfig, DOMPool, Features, type NormalizeResult, type NormalizedEntities, type NormalizedSchema, type NormalizedState, type NormalizedStoreActions, Priority, type PriorityLevel, block, cloneTemplate, conditional, createChunkRegistry, deferredValue, denormalize, devOnly,
|
|
428
|
+
export { type ChunkConfig, DOMPool, Features, type NormalizeResult, type NormalizedEntities, type NormalizedSchema, type NormalizedState, type NormalizedStoreActions, Priority, type PriorityLevel, TrustedHTML, block, cloneTemplate, conditional, createChunkRegistry, deferredValue, denormalize, devOnly, flushScheduler, getDOMPool, hoistable, lazyChunk, noSideEffect, normalize, normalizedStore, pendingTasks, precompile, prefetch, preloadImage, preloadModule, preloadModules, preloadResource, processInChunks, pure, resetIdCounter, scheduleUpdate, setIdPrefix, startTransition, staticTemplate, transitionState, uniqueId, yieldToMain };
|
package/dist/performance.js
CHANGED
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
deferredValue,
|
|
10
10
|
denormalize,
|
|
11
11
|
devOnly,
|
|
12
|
-
domPool,
|
|
13
12
|
flushScheduler,
|
|
13
|
+
getDOMPool,
|
|
14
14
|
hoistable,
|
|
15
15
|
lazyChunk,
|
|
16
16
|
noSideEffect,
|
|
@@ -33,10 +33,16 @@ import {
|
|
|
33
33
|
transitionState,
|
|
34
34
|
uniqueId,
|
|
35
35
|
yieldToMain
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
} from "./chunk-MIUAXB7K.js";
|
|
37
|
+
import {
|
|
38
|
+
trustHTML
|
|
39
|
+
} from "./chunk-JYD2PWXH.js";
|
|
40
|
+
import "./chunk-UCS6AMJ7.js";
|
|
41
|
+
import "./chunk-HB24TBAF.js";
|
|
42
|
+
import "./chunk-2RA7SHDA.js";
|
|
43
|
+
import "./chunk-CC65Y57T.js";
|
|
44
|
+
import "./chunk-VLPPXTYG.js";
|
|
45
|
+
import "./chunk-LMLD24FC.js";
|
|
40
46
|
export {
|
|
41
47
|
DOMPool,
|
|
42
48
|
Features,
|
|
@@ -48,8 +54,8 @@ export {
|
|
|
48
54
|
deferredValue,
|
|
49
55
|
denormalize,
|
|
50
56
|
devOnly,
|
|
51
|
-
domPool,
|
|
52
57
|
flushScheduler,
|
|
58
|
+
getDOMPool,
|
|
53
59
|
hoistable,
|
|
54
60
|
lazyChunk,
|
|
55
61
|
noSideEffect,
|
|
@@ -70,6 +76,7 @@ export {
|
|
|
70
76
|
startTransition,
|
|
71
77
|
staticTemplate,
|
|
72
78
|
transitionState,
|
|
79
|
+
trustHTML,
|
|
73
80
|
uniqueId,
|
|
74
81
|
yieldToMain
|
|
75
82
|
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
interface PluginContext {
|
|
2
|
+
/** Register a global hook */
|
|
3
|
+
onInit: (callback: () => void) => void;
|
|
4
|
+
onMount: (callback: (element: HTMLElement) => void) => void;
|
|
5
|
+
onUnmount: (callback: (element: HTMLElement) => void) => void;
|
|
6
|
+
onError: (callback: (error: Error) => void) => void;
|
|
7
|
+
/** Provide a value globally */
|
|
8
|
+
provide: (key: string, value: unknown) => void;
|
|
9
|
+
}
|
|
10
|
+
interface SibuPlugin {
|
|
11
|
+
name: string;
|
|
12
|
+
install: (ctx: PluginContext, options?: unknown) => void;
|
|
13
|
+
}
|
|
14
|
+
interface PluginHooks {
|
|
15
|
+
init: Array<() => void>;
|
|
16
|
+
mount: Array<(element: HTMLElement) => void>;
|
|
17
|
+
unmount: Array<(element: HTMLElement) => void>;
|
|
18
|
+
error: Array<(error: Error) => void>;
|
|
19
|
+
}
|
|
20
|
+
interface PluginRegistry {
|
|
21
|
+
readonly installedPlugins: Set<string>;
|
|
22
|
+
readonly hooks: PluginHooks;
|
|
23
|
+
readonly provided: Map<string, unknown>;
|
|
24
|
+
plugin: (p: SibuPlugin, options?: unknown) => void;
|
|
25
|
+
inject: <T = unknown>(key: string, defaultValue?: T) => T;
|
|
26
|
+
triggerMount: (element: HTMLElement) => void;
|
|
27
|
+
triggerUnmount: (element: HTMLElement) => void;
|
|
28
|
+
triggerError: (error: Error) => void;
|
|
29
|
+
reset: () => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create an isolated plugin registry. Useful for tests, SSR per-request
|
|
33
|
+
* isolation, or embedding multiple independent SibuJS apps on one page.
|
|
34
|
+
*/
|
|
35
|
+
declare function createPluginRegistry(): PluginRegistry;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a plugin definition.
|
|
38
|
+
*/
|
|
39
|
+
declare function createPlugin(name: string, install: (ctx: PluginContext, options?: unknown) => void): SibuPlugin;
|
|
40
|
+
/**
|
|
41
|
+
* Installs a plugin into the default (singleton) registry.
|
|
42
|
+
*/
|
|
43
|
+
declare function plugin(plugin: SibuPlugin, options?: unknown): void;
|
|
44
|
+
/**
|
|
45
|
+
* Retrieve a value provided by a plugin (from the default registry).
|
|
46
|
+
*/
|
|
47
|
+
declare function inject<T = unknown>(key: string, defaultValue?: T): T;
|
|
48
|
+
/**
|
|
49
|
+
* Trigger mount hooks for an element (default registry).
|
|
50
|
+
*/
|
|
51
|
+
declare function triggerPluginMount(element: HTMLElement): void;
|
|
52
|
+
/**
|
|
53
|
+
* Trigger unmount hooks for an element (default registry).
|
|
54
|
+
*/
|
|
55
|
+
declare function triggerPluginUnmount(element: HTMLElement): void;
|
|
56
|
+
/**
|
|
57
|
+
* Trigger error hooks (default registry).
|
|
58
|
+
*/
|
|
59
|
+
declare function triggerPluginError(error: Error): void;
|
|
60
|
+
/**
|
|
61
|
+
* Reset the default plugin registry (useful for testing).
|
|
62
|
+
*/
|
|
63
|
+
declare function resetPlugins(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Replace the default registry with an isolated one. Emits a dev warning
|
|
66
|
+
* if the default singleton already had plugins installed (to surface
|
|
67
|
+
* accidental interleaving of singleton + registry use).
|
|
68
|
+
*/
|
|
69
|
+
declare function setDefaultPluginRegistry(registry: PluginRegistry): void;
|
|
70
|
+
|
|
71
|
+
export { type PluginContext as P, type SibuPlugin as S, type PluginRegistry as a, createPluginRegistry as b, createPlugin as c, triggerPluginMount as d, triggerPluginUnmount as e, inject as i, plugin as p, resetPlugins as r, setDefaultPluginRegistry as s, triggerPluginError as t };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
interface PluginContext {
|
|
2
|
+
/** Register a global hook */
|
|
3
|
+
onInit: (callback: () => void) => void;
|
|
4
|
+
onMount: (callback: (element: HTMLElement) => void) => void;
|
|
5
|
+
onUnmount: (callback: (element: HTMLElement) => void) => void;
|
|
6
|
+
onError: (callback: (error: Error) => void) => void;
|
|
7
|
+
/** Provide a value globally */
|
|
8
|
+
provide: (key: string, value: unknown) => void;
|
|
9
|
+
}
|
|
10
|
+
interface SibuPlugin {
|
|
11
|
+
name: string;
|
|
12
|
+
install: (ctx: PluginContext, options?: unknown) => void;
|
|
13
|
+
}
|
|
14
|
+
interface PluginHooks {
|
|
15
|
+
init: Array<() => void>;
|
|
16
|
+
mount: Array<(element: HTMLElement) => void>;
|
|
17
|
+
unmount: Array<(element: HTMLElement) => void>;
|
|
18
|
+
error: Array<(error: Error) => void>;
|
|
19
|
+
}
|
|
20
|
+
interface PluginRegistry {
|
|
21
|
+
readonly installedPlugins: Set<string>;
|
|
22
|
+
readonly hooks: PluginHooks;
|
|
23
|
+
readonly provided: Map<string, unknown>;
|
|
24
|
+
plugin: (p: SibuPlugin, options?: unknown) => void;
|
|
25
|
+
inject: <T = unknown>(key: string, defaultValue?: T) => T;
|
|
26
|
+
triggerMount: (element: HTMLElement) => void;
|
|
27
|
+
triggerUnmount: (element: HTMLElement) => void;
|
|
28
|
+
triggerError: (error: Error) => void;
|
|
29
|
+
reset: () => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create an isolated plugin registry. Useful for tests, SSR per-request
|
|
33
|
+
* isolation, or embedding multiple independent SibuJS apps on one page.
|
|
34
|
+
*/
|
|
35
|
+
declare function createPluginRegistry(): PluginRegistry;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a plugin definition.
|
|
38
|
+
*/
|
|
39
|
+
declare function createPlugin(name: string, install: (ctx: PluginContext, options?: unknown) => void): SibuPlugin;
|
|
40
|
+
/**
|
|
41
|
+
* Installs a plugin into the default (singleton) registry.
|
|
42
|
+
*/
|
|
43
|
+
declare function plugin(plugin: SibuPlugin, options?: unknown): void;
|
|
44
|
+
/**
|
|
45
|
+
* Retrieve a value provided by a plugin (from the default registry).
|
|
46
|
+
*/
|
|
47
|
+
declare function inject<T = unknown>(key: string, defaultValue?: T): T;
|
|
48
|
+
/**
|
|
49
|
+
* Trigger mount hooks for an element (default registry).
|
|
50
|
+
*/
|
|
51
|
+
declare function triggerPluginMount(element: HTMLElement): void;
|
|
52
|
+
/**
|
|
53
|
+
* Trigger unmount hooks for an element (default registry).
|
|
54
|
+
*/
|
|
55
|
+
declare function triggerPluginUnmount(element: HTMLElement): void;
|
|
56
|
+
/**
|
|
57
|
+
* Trigger error hooks (default registry).
|
|
58
|
+
*/
|
|
59
|
+
declare function triggerPluginError(error: Error): void;
|
|
60
|
+
/**
|
|
61
|
+
* Reset the default plugin registry (useful for testing).
|
|
62
|
+
*/
|
|
63
|
+
declare function resetPlugins(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Replace the default registry with an isolated one. Emits a dev warning
|
|
66
|
+
* if the default singleton already had plugins installed (to surface
|
|
67
|
+
* accidental interleaving of singleton + registry use).
|
|
68
|
+
*/
|
|
69
|
+
declare function setDefaultPluginRegistry(registry: PluginRegistry): void;
|
|
70
|
+
|
|
71
|
+
export { type PluginContext as P, type SibuPlugin as S, type PluginRegistry as a, createPluginRegistry as b, createPlugin as c, triggerPluginMount as d, triggerPluginUnmount as e, inject as i, plugin as p, resetPlugins as r, setDefaultPluginRegistry as s, triggerPluginError as t };
|