sinwan 0.0.0 → 0.1.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/LICENSE +21 -0
- package/README.md +67 -1
- package/dist/cjs/index.development.js +1625 -0
- package/dist/cjs/index.development.js.map +32 -0
- package/dist/cjs/index.production.min.js +3 -0
- package/dist/cjs/index.production.min.js.map +32 -0
- package/dist/cjs/jsx/jsx-dev-runtime.development.js +134 -0
- package/dist/cjs/jsx/jsx-dev-runtime.development.js.map +10 -0
- package/dist/cjs/jsx/jsx-dev-runtime.production.min.js +3 -0
- package/dist/cjs/jsx/jsx-dev-runtime.production.min.js.map +10 -0
- package/dist/cjs/jsx/jsx-runtime.development.js +126 -0
- package/dist/cjs/jsx/jsx-runtime.development.js.map +10 -0
- package/dist/cjs/jsx/jsx-runtime.production.min.js +3 -0
- package/dist/cjs/jsx/jsx-runtime.production.min.js.map +10 -0
- package/dist/cjs/package.json +4 -0
- package/dist/cjs/server/index.development.js +929 -0
- package/dist/cjs/server/index.development.js.map +22 -0
- package/dist/cjs/server/index.production.min.js +3 -0
- package/dist/cjs/server/index.production.min.js.map +22 -0
- package/dist/component/create.d.ts +75 -0
- package/dist/component/create.d.ts.map +1 -0
- package/dist/component/index.d.ts +10 -0
- package/dist/component/index.d.ts.map +1 -0
- package/dist/component/instance.d.ts +78 -0
- package/dist/component/instance.d.ts.map +1 -0
- package/dist/component/lifecycle.d.ts +40 -0
- package/dist/component/lifecycle.d.ts.map +1 -0
- package/dist/component/provide-inject.d.ts +39 -0
- package/dist/component/provide-inject.d.ts.map +1 -0
- package/dist/escaper.d.ts +26 -0
- package/dist/escaper.d.ts.map +1 -0
- package/dist/esm/index.development.js +1560 -0
- package/dist/esm/index.development.js.map +32 -0
- package/dist/esm/index.production.min.js +4 -0
- package/dist/esm/index.production.min.js.map +32 -0
- package/dist/esm/jsx/jsx-dev-runtime.development.js +83 -0
- package/dist/esm/jsx/jsx-dev-runtime.development.js.map +10 -0
- package/dist/esm/jsx/jsx-dev-runtime.production.min.js +4 -0
- package/dist/esm/jsx/jsx-dev-runtime.production.min.js.map +10 -0
- package/dist/esm/jsx/jsx-runtime.development.js +87 -0
- package/dist/esm/jsx/jsx-runtime.development.js.map +10 -0
- package/dist/esm/jsx/jsx-runtime.production.min.js +4 -0
- package/dist/esm/jsx/jsx-runtime.production.min.js.map +10 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/server/index.development.js +878 -0
- package/dist/esm/server/index.development.js.map +22 -0
- package/dist/esm/server/index.production.min.js +4 -0
- package/dist/esm/server/index.production.min.js.map +22 -0
- package/dist/hydration/hydrate.d.ts +29 -0
- package/dist/hydration/hydrate.d.ts.map +1 -0
- package/dist/hydration/index.d.ts +7 -0
- package/dist/hydration/index.d.ts.map +1 -0
- package/dist/hydration/markers.d.ts +48 -0
- package/dist/hydration/markers.d.ts.map +1 -0
- package/dist/hydration/walk.d.ts +32 -0
- package/dist/hydration/walk.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.mjs +4 -0
- package/dist/jsx/jsx-dev-runtime.d.ts +10 -0
- package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-runtime.d.ts +54 -0
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-types.d.ts +637 -0
- package/dist/jsx/jsx-types.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +1 -0
- package/dist/jsx-dev-runtime.js +7 -0
- package/dist/jsx-dev-runtime.mjs +4 -0
- package/dist/jsx-runtime.d.ts +1 -0
- package/dist/jsx-runtime.js +7 -0
- package/dist/jsx-runtime.mjs +4 -0
- package/dist/reactivity/batch.d.ts +27 -0
- package/dist/reactivity/batch.d.ts.map +1 -0
- package/dist/reactivity/computed.d.ts +41 -0
- package/dist/reactivity/computed.d.ts.map +1 -0
- package/dist/reactivity/effect.d.ts +79 -0
- package/dist/reactivity/effect.d.ts.map +1 -0
- package/dist/reactivity/index.d.ts +15 -0
- package/dist/reactivity/index.d.ts.map +1 -0
- package/dist/reactivity/scheduler.d.ts +35 -0
- package/dist/reactivity/scheduler.d.ts.map +1 -0
- package/dist/reactivity/signal.d.ts +36 -0
- package/dist/reactivity/signal.d.ts.map +1 -0
- package/dist/renderer/attributes.d.ts +8 -0
- package/dist/renderer/attributes.d.ts.map +1 -0
- package/dist/renderer/dom-ops.d.ts +27 -0
- package/dist/renderer/dom-ops.d.ts.map +1 -0
- package/dist/renderer/events.d.ts +21 -0
- package/dist/renderer/events.d.ts.map +1 -0
- package/dist/renderer/index.d.ts +12 -0
- package/dist/renderer/index.d.ts.map +1 -0
- package/dist/renderer/mount.d.ts +30 -0
- package/dist/renderer/mount.d.ts.map +1 -0
- package/dist/renderer/render-children.d.ts +19 -0
- package/dist/renderer/render-children.d.ts.map +1 -0
- package/dist/renderer/render-element.d.ts +13 -0
- package/dist/renderer/render-element.d.ts.map +1 -0
- package/dist/renderer/types.d.ts +63 -0
- package/dist/renderer/types.d.ts.map +1 -0
- package/dist/server/hydration-markers.d.ts +23 -0
- package/dist/server/hydration-markers.d.ts.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/renderer.d.ts +33 -0
- package/dist/server/renderer.d.ts.map +1 -0
- package/dist/server/stream.d.ts +12 -0
- package/dist/server/stream.d.ts.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +7 -0
- package/dist/server.mjs +4 -0
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +102 -4
- package/bun.lock +0 -26
- package/src/index.ts +0 -1
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SinwanJS Component Runtime — Lifecycle Hooks
|
|
3
|
+
*
|
|
4
|
+
* Vue-style lifecycle hooks that register on the current component instance.
|
|
5
|
+
* Must be called during setup (inside createComponent's setup function).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Register a callback that fires after the component is mounted to the DOM.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const Timer = createComponent(() => {
|
|
12
|
+
* onMounted(() => {
|
|
13
|
+
* console.log("Timer mounted!");
|
|
14
|
+
* });
|
|
15
|
+
* return <div>Timer</div>;
|
|
16
|
+
* });
|
|
17
|
+
*/
|
|
18
|
+
export declare function onMounted(fn: () => void): void;
|
|
19
|
+
/**
|
|
20
|
+
* Register a callback that fires when the component is unmounted.
|
|
21
|
+
* Use for cleanup: cancel timers, remove global listeners, etc.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* onMounted(() => {
|
|
25
|
+
* const id = setInterval(tick, 1000);
|
|
26
|
+
* onUnmounted(() => clearInterval(id));
|
|
27
|
+
* });
|
|
28
|
+
*/
|
|
29
|
+
export declare function onUnmounted(fn: () => void): void;
|
|
30
|
+
/**
|
|
31
|
+
* Register a callback that fires after any reactive DOM update
|
|
32
|
+
* within this component. Useful for post-update DOM measurements.
|
|
33
|
+
*/
|
|
34
|
+
export declare function onUpdated(fn: () => void): void;
|
|
35
|
+
/**
|
|
36
|
+
* Register an error handler for this component and its children.
|
|
37
|
+
* Errors bubble up the component tree until a handler is found.
|
|
38
|
+
*/
|
|
39
|
+
export declare function onError(fn: (err: Error) => void): void;
|
|
40
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/component/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAM9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAMhD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAM9C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAMtD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SinwanJS Component Runtime — Provide / Inject
|
|
3
|
+
*
|
|
4
|
+
* Dependency injection system like Vue's provide/inject.
|
|
5
|
+
* A parent component provides a value; any descendant can inject it.
|
|
6
|
+
* Uses prototype chain inheritance on the instance's `provides` object.
|
|
7
|
+
*/
|
|
8
|
+
/** Injection key — string or symbol for type safety. */
|
|
9
|
+
export type InjectionKey<T> = symbol & {
|
|
10
|
+
__type?: T;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Provide a value for descendants to inject.
|
|
14
|
+
* Must be called during component setup.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* const ThemeKey: InjectionKey<string> = Symbol("theme");
|
|
18
|
+
*
|
|
19
|
+
* const App = createComponent(() => {
|
|
20
|
+
* provide(ThemeKey, "dark");
|
|
21
|
+
* return <Child />;
|
|
22
|
+
* });
|
|
23
|
+
*/
|
|
24
|
+
export declare function provide<T>(key: string | symbol, value: T): void;
|
|
25
|
+
/**
|
|
26
|
+
* Inject a value provided by an ancestor component.
|
|
27
|
+
* Must be called during component setup.
|
|
28
|
+
*
|
|
29
|
+
* @param key - The injection key
|
|
30
|
+
* @param defaultValue - Fallback if no ancestor provides this key
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const Child = createComponent(() => {
|
|
34
|
+
* const theme = inject(ThemeKey, "light");
|
|
35
|
+
* return <div class={theme}>Hello</div>;
|
|
36
|
+
* });
|
|
37
|
+
*/
|
|
38
|
+
export declare function inject<T>(key: string | symbol, defaultValue?: T): T;
|
|
39
|
+
//# sourceMappingURL=provide-inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provide-inject.d.ts","sourceRoot":"","sources":["../../src/component/provide-inject.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wDAAwD;AACxD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAW/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAmBnE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sinwan — HTML Escaping
|
|
3
|
+
*
|
|
4
|
+
* Security utilities for sanitizing interpolated values.
|
|
5
|
+
* Runtime-agnostic: prefers `Bun.escapeHTML` when running on Bun (native
|
|
6
|
+
* speed), and falls back to a portable implementation everywhere else
|
|
7
|
+
* (Node, Deno, Cloudflare Workers, browsers).
|
|
8
|
+
*/
|
|
9
|
+
import { HtmlEscapedString, raw } from "./jsx/jsx-runtime";
|
|
10
|
+
export { HtmlEscapedString, raw };
|
|
11
|
+
/**
|
|
12
|
+
* Escape HTML entities in any value.
|
|
13
|
+
* Returns "" for null/undefined/boolean and pass-through for numbers.
|
|
14
|
+
* Pre-escaped strings (`HtmlEscapedString`) are returned untouched.
|
|
15
|
+
*/
|
|
16
|
+
export declare function escapeHtml(value: unknown): string;
|
|
17
|
+
/**
|
|
18
|
+
* Mark a string as safe HTML (pre-escaped).
|
|
19
|
+
* USE WITH CAUTION - only for trusted content!
|
|
20
|
+
*/
|
|
21
|
+
export declare function safeHtml(html: string): HtmlEscapedString;
|
|
22
|
+
/**
|
|
23
|
+
* Check if a value is already escaped HTML.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isSafeHtml(value: unknown): value is HtmlEscapedString;
|
|
26
|
+
//# sourceMappingURL=escaper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escaper.d.ts","sourceRoot":"","sources":["../src/escaper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC;AAgClC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMjD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAExD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAErE"}
|