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.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -1
  3. package/dist/cjs/index.development.js +1625 -0
  4. package/dist/cjs/index.development.js.map +32 -0
  5. package/dist/cjs/index.production.min.js +3 -0
  6. package/dist/cjs/index.production.min.js.map +32 -0
  7. package/dist/cjs/jsx/jsx-dev-runtime.development.js +134 -0
  8. package/dist/cjs/jsx/jsx-dev-runtime.development.js.map +10 -0
  9. package/dist/cjs/jsx/jsx-dev-runtime.production.min.js +3 -0
  10. package/dist/cjs/jsx/jsx-dev-runtime.production.min.js.map +10 -0
  11. package/dist/cjs/jsx/jsx-runtime.development.js +126 -0
  12. package/dist/cjs/jsx/jsx-runtime.development.js.map +10 -0
  13. package/dist/cjs/jsx/jsx-runtime.production.min.js +3 -0
  14. package/dist/cjs/jsx/jsx-runtime.production.min.js.map +10 -0
  15. package/dist/cjs/package.json +4 -0
  16. package/dist/cjs/server/index.development.js +929 -0
  17. package/dist/cjs/server/index.development.js.map +22 -0
  18. package/dist/cjs/server/index.production.min.js +3 -0
  19. package/dist/cjs/server/index.production.min.js.map +22 -0
  20. package/dist/component/create.d.ts +75 -0
  21. package/dist/component/create.d.ts.map +1 -0
  22. package/dist/component/index.d.ts +10 -0
  23. package/dist/component/index.d.ts.map +1 -0
  24. package/dist/component/instance.d.ts +78 -0
  25. package/dist/component/instance.d.ts.map +1 -0
  26. package/dist/component/lifecycle.d.ts +40 -0
  27. package/dist/component/lifecycle.d.ts.map +1 -0
  28. package/dist/component/provide-inject.d.ts +39 -0
  29. package/dist/component/provide-inject.d.ts.map +1 -0
  30. package/dist/escaper.d.ts +26 -0
  31. package/dist/escaper.d.ts.map +1 -0
  32. package/dist/esm/index.development.js +1560 -0
  33. package/dist/esm/index.development.js.map +32 -0
  34. package/dist/esm/index.production.min.js +4 -0
  35. package/dist/esm/index.production.min.js.map +32 -0
  36. package/dist/esm/jsx/jsx-dev-runtime.development.js +83 -0
  37. package/dist/esm/jsx/jsx-dev-runtime.development.js.map +10 -0
  38. package/dist/esm/jsx/jsx-dev-runtime.production.min.js +4 -0
  39. package/dist/esm/jsx/jsx-dev-runtime.production.min.js.map +10 -0
  40. package/dist/esm/jsx/jsx-runtime.development.js +87 -0
  41. package/dist/esm/jsx/jsx-runtime.development.js.map +10 -0
  42. package/dist/esm/jsx/jsx-runtime.production.min.js +4 -0
  43. package/dist/esm/jsx/jsx-runtime.production.min.js.map +10 -0
  44. package/dist/esm/package.json +4 -0
  45. package/dist/esm/server/index.development.js +878 -0
  46. package/dist/esm/server/index.development.js.map +22 -0
  47. package/dist/esm/server/index.production.min.js +4 -0
  48. package/dist/esm/server/index.production.min.js.map +22 -0
  49. package/dist/hydration/hydrate.d.ts +29 -0
  50. package/dist/hydration/hydrate.d.ts.map +1 -0
  51. package/dist/hydration/index.d.ts +7 -0
  52. package/dist/hydration/index.d.ts.map +1 -0
  53. package/dist/hydration/markers.d.ts +48 -0
  54. package/dist/hydration/markers.d.ts.map +1 -0
  55. package/dist/hydration/walk.d.ts +32 -0
  56. package/dist/hydration/walk.d.ts.map +1 -0
  57. package/dist/index.d.ts +14 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +7 -0
  60. package/dist/index.mjs +4 -0
  61. package/dist/jsx/jsx-dev-runtime.d.ts +10 -0
  62. package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
  63. package/dist/jsx/jsx-runtime.d.ts +54 -0
  64. package/dist/jsx/jsx-runtime.d.ts.map +1 -0
  65. package/dist/jsx/jsx-types.d.ts +637 -0
  66. package/dist/jsx/jsx-types.d.ts.map +1 -0
  67. package/dist/jsx-dev-runtime.d.ts +1 -0
  68. package/dist/jsx-dev-runtime.js +7 -0
  69. package/dist/jsx-dev-runtime.mjs +4 -0
  70. package/dist/jsx-runtime.d.ts +1 -0
  71. package/dist/jsx-runtime.js +7 -0
  72. package/dist/jsx-runtime.mjs +4 -0
  73. package/dist/reactivity/batch.d.ts +27 -0
  74. package/dist/reactivity/batch.d.ts.map +1 -0
  75. package/dist/reactivity/computed.d.ts +41 -0
  76. package/dist/reactivity/computed.d.ts.map +1 -0
  77. package/dist/reactivity/effect.d.ts +79 -0
  78. package/dist/reactivity/effect.d.ts.map +1 -0
  79. package/dist/reactivity/index.d.ts +15 -0
  80. package/dist/reactivity/index.d.ts.map +1 -0
  81. package/dist/reactivity/scheduler.d.ts +35 -0
  82. package/dist/reactivity/scheduler.d.ts.map +1 -0
  83. package/dist/reactivity/signal.d.ts +36 -0
  84. package/dist/reactivity/signal.d.ts.map +1 -0
  85. package/dist/renderer/attributes.d.ts +8 -0
  86. package/dist/renderer/attributes.d.ts.map +1 -0
  87. package/dist/renderer/dom-ops.d.ts +27 -0
  88. package/dist/renderer/dom-ops.d.ts.map +1 -0
  89. package/dist/renderer/events.d.ts +21 -0
  90. package/dist/renderer/events.d.ts.map +1 -0
  91. package/dist/renderer/index.d.ts +12 -0
  92. package/dist/renderer/index.d.ts.map +1 -0
  93. package/dist/renderer/mount.d.ts +30 -0
  94. package/dist/renderer/mount.d.ts.map +1 -0
  95. package/dist/renderer/render-children.d.ts +19 -0
  96. package/dist/renderer/render-children.d.ts.map +1 -0
  97. package/dist/renderer/render-element.d.ts +13 -0
  98. package/dist/renderer/render-element.d.ts.map +1 -0
  99. package/dist/renderer/types.d.ts +63 -0
  100. package/dist/renderer/types.d.ts.map +1 -0
  101. package/dist/server/hydration-markers.d.ts +23 -0
  102. package/dist/server/hydration-markers.d.ts.map +1 -0
  103. package/dist/server/index.d.ts +9 -0
  104. package/dist/server/index.d.ts.map +1 -0
  105. package/dist/server/renderer.d.ts +33 -0
  106. package/dist/server/renderer.d.ts.map +1 -0
  107. package/dist/server/stream.d.ts +12 -0
  108. package/dist/server/stream.d.ts.map +1 -0
  109. package/dist/server.d.ts +1 -0
  110. package/dist/server.js +7 -0
  111. package/dist/server.mjs +4 -0
  112. package/dist/types.d.ts +42 -0
  113. package/dist/types.d.ts.map +1 -0
  114. package/package.json +102 -4
  115. package/bun.lock +0 -26
  116. package/src/index.ts +0 -1
  117. 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"}