bitwrench 2.0.31 → 2.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 (126) hide show
  1. package/README.md +210 -125
  2. package/dist/bitwrench-bccl.cjs.js +349 -188
  3. package/dist/bitwrench-bccl.cjs.min.js +2 -39
  4. package/dist/bitwrench-bccl.cjs.min.js.gz +0 -0
  5. package/dist/bitwrench-bccl.esm.js +349 -188
  6. package/dist/bitwrench-bccl.esm.min.js +2 -39
  7. package/dist/bitwrench-bccl.esm.min.js.gz +0 -0
  8. package/dist/bitwrench-bccl.umd.js +349 -188
  9. package/dist/bitwrench-bccl.umd.min.js +2 -39
  10. package/dist/bitwrench-bccl.umd.min.js.gz +0 -0
  11. package/dist/bitwrench-code-edit.cjs.js +17 -6
  12. package/dist/bitwrench-code-edit.cjs.min.js +2 -20
  13. package/dist/bitwrench-code-edit.es5.js +8 -3
  14. package/dist/bitwrench-code-edit.es5.min.js +2 -19
  15. package/dist/bitwrench-code-edit.esm.js +17 -6
  16. package/dist/bitwrench-code-edit.esm.min.js +2 -19
  17. package/dist/bitwrench-code-edit.umd.js +17 -6
  18. package/dist/bitwrench-code-edit.umd.min.js +2 -19
  19. package/dist/bitwrench-code-edit.umd.min.js.gz +0 -0
  20. package/dist/bitwrench-debug.js +1 -1
  21. package/dist/bitwrench-debug.min.js +1 -1
  22. package/dist/bitwrench-lean.cjs.js +2492 -1628
  23. package/dist/bitwrench-lean.cjs.min.js +2 -80
  24. package/dist/bitwrench-lean.cjs.min.js.gz +0 -0
  25. package/dist/bitwrench-lean.es5.js +2740 -1838
  26. package/dist/bitwrench-lean.es5.min.js +2 -49
  27. package/dist/bitwrench-lean.es5.min.js.gz +0 -0
  28. package/dist/bitwrench-lean.esm.js +2492 -1628
  29. package/dist/bitwrench-lean.esm.min.js +2 -80
  30. package/dist/bitwrench-lean.esm.min.js.gz +0 -0
  31. package/dist/bitwrench-lean.umd.js +2492 -1628
  32. package/dist/bitwrench-lean.umd.min.js +2 -80
  33. package/dist/bitwrench-lean.umd.min.js.gz +0 -0
  34. package/dist/bitwrench-util-color.cjs.js +251 -0
  35. package/dist/bitwrench-util-color.cjs.min.js +3 -0
  36. package/dist/bitwrench-util-color.es5.js +256 -0
  37. package/dist/bitwrench-util-color.es5.min.js +3 -0
  38. package/dist/bitwrench-util-color.esm.js +241 -0
  39. package/dist/bitwrench-util-color.esm.min.js +3 -0
  40. package/dist/bitwrench-util-color.umd.js +257 -0
  41. package/dist/bitwrench-util-color.umd.min.js +3 -0
  42. package/dist/bitwrench-util-css.cjs.js +2 -1
  43. package/dist/bitwrench-util-css.cjs.min.js +2 -21
  44. package/dist/bitwrench-util-css.es5.js +2 -1
  45. package/dist/bitwrench-util-css.es5.min.js +2 -20
  46. package/dist/bitwrench-util-css.esm.js +2 -1
  47. package/dist/bitwrench-util-css.esm.min.js +1 -19
  48. package/dist/bitwrench-util-css.umd.js +2 -1
  49. package/dist/bitwrench-util-css.umd.min.js +2 -20
  50. package/dist/bitwrench-util-css.umd.min.js.gz +0 -0
  51. package/dist/bitwrench.cjs.js +2826 -1801
  52. package/dist/bitwrench.cjs.min.js +2 -99
  53. package/dist/bitwrench.cjs.min.js.gz +0 -0
  54. package/dist/bitwrench.css +403 -479
  55. package/dist/bitwrench.d.ts +70 -73
  56. package/dist/bitwrench.es5.js +3106 -2020
  57. package/dist/bitwrench.es5.min.js +2 -67
  58. package/dist/bitwrench.es5.min.js.gz +0 -0
  59. package/dist/bitwrench.esm.js +2826 -1801
  60. package/dist/bitwrench.esm.min.js +2 -99
  61. package/dist/bitwrench.esm.min.js.gz +0 -0
  62. package/dist/bitwrench.min.css +1 -1
  63. package/dist/bitwrench.umd.js +2826 -1801
  64. package/dist/bitwrench.umd.min.js +2 -99
  65. package/dist/bitwrench.umd.min.js.gz +0 -0
  66. package/dist/builds.json +222 -134
  67. package/dist/bwserve.cjs.js +308 -298
  68. package/dist/bwserve.d.ts +157 -0
  69. package/dist/bwserve.esm.js +309 -299
  70. package/dist/sri.json +54 -46
  71. package/docs/README.md +6 -3
  72. package/docs/app-patterns.md +7 -6
  73. package/docs/bitwrench-for-wasm.md +53 -54
  74. package/docs/bitwrench-mcp.md +2 -2
  75. package/docs/bitwrench-northstar-principles.md +406 -0
  76. package/docs/bitwrench-taco-schema-discussion.md +2 -2
  77. package/docs/bitwrench_api.md +191 -106
  78. package/docs/bitwrench_typescript_usage.md +5 -5
  79. package/docs/bw-attach.md +29 -75
  80. package/docs/bwserve.md +200 -168
  81. package/docs/cli.md +36 -12
  82. package/docs/component-cheatsheet.md +2 -2
  83. package/docs/component-library.md +4 -4
  84. package/docs/component-lifecycle.md +234 -0
  85. package/docs/drift-lint.md +268 -0
  86. package/docs/framework-translation-table.md +4 -4
  87. package/docs/llm-bitwrench-guide.md +60 -50
  88. package/docs/routing.md +11 -13
  89. package/docs/state-management.md +110 -109
  90. package/docs/taco-format.md +13 -14
  91. package/docs/theming.md +13 -3
  92. package/docs/thinking-in-bitwrench.md +858 -983
  93. package/docs/tutorial-bwserve.md +37 -36
  94. package/docs/tutorial-embedded.md +10 -21
  95. package/docs/tutorial-website.md +2 -2
  96. package/package.json +38 -7
  97. package/readme.html +262 -160
  98. package/src/bitwrench-bccl-entry.js +2 -2
  99. package/src/bitwrench-bccl.js +346 -185
  100. package/src/bitwrench-code-edit.js +16 -5
  101. package/src/bitwrench-color-utils.js +117 -181
  102. package/src/bitwrench-file-ops.js +2 -2
  103. package/src/bitwrench-lean.js +4 -3
  104. package/src/bitwrench-router.js +5 -2
  105. package/src/bitwrench-styles.js +420 -504
  106. package/src/bitwrench-util-color.js +240 -0
  107. package/src/bitwrench-util-css.js +1 -0
  108. package/src/bitwrench-utils.js +4 -0
  109. package/src/bitwrench.d.ts +70 -73
  110. package/src/bitwrench.h +5 -0
  111. package/src/bitwrench.js +1939 -933
  112. package/src/bwserve/attach.js +0 -1
  113. package/src/bwserve/bwclient.js +172 -32
  114. package/src/bwserve/bwshell.js +0 -4
  115. package/src/bwserve/client.js +59 -220
  116. package/src/bwserve/index.js +78 -42
  117. package/src/bwserve.d.ts +157 -0
  118. package/src/bwserve.h +5 -0
  119. package/src/cli/attach.js +12 -75
  120. package/src/cli/convert.js +2 -2
  121. package/src/cli/serve.js +37 -35
  122. package/src/generate-css.js +1 -1
  123. package/src/mcp/knowledge.js +4 -4
  124. package/src/mcp/live.js +21 -13
  125. package/src/mcp/tools.js +0 -1
  126. package/src/version.js +3 -7
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Type declarations for bitwrench/bwserve — server-driven UI over SSE.
3
+ */
4
+
5
+ import { IncomingMessage, ServerResponse } from 'http';
6
+
7
+ /** Options for creating a BwServeApp instance. */
8
+ export interface BwServeOptions {
9
+ /** Port to listen on (default: 7902) */
10
+ port?: number;
11
+ /** Page title (default: 'bwserve') */
12
+ title?: string;
13
+ /** Directory path for static file serving */
14
+ static?: string;
15
+ /** Auto-inject bitwrench client JS (default: true) */
16
+ injectBitwrench?: boolean;
17
+ /** Theme preset name or config object */
18
+ theme?: string | Record<string, string>;
19
+ /** Enable client.screenshot() (default: false) */
20
+ allowScreenshot?: boolean;
21
+ /** Enable directory listings (default: true) */
22
+ dirList?: boolean;
23
+ /** Host/address to bind to (default: '127.0.0.1') */
24
+ host?: string;
25
+ /** SSE keep-alive interval in ms (default: 15000) */
26
+ keepAliveInterval?: number;
27
+ }
28
+
29
+ /** Options for generateShell(). */
30
+ export interface ShellOptions {
31
+ /** Unique client ID for this connection */
32
+ clientId: string;
33
+ /** Page title (default: 'bwserve') */
34
+ title?: string;
35
+ /** Theme preset name or config object */
36
+ theme?: string | Record<string, string>;
37
+ /** Whether to inject bitwrench scripts (default: true) */
38
+ injectBitwrench?: boolean;
39
+ }
40
+
41
+ /** A TACO object — Tag, Attributes, Content, Options. */
42
+ export interface Taco {
43
+ t?: string;
44
+ a?: Record<string, any>;
45
+ c?: string | Taco | (string | Taco)[];
46
+ o?: Record<string, any>;
47
+ }
48
+
49
+ /** SSE protocol message. */
50
+ export interface BwServeMessage {
51
+ v?: number;
52
+ type?: string;
53
+ ref?: string;
54
+ taco?: Taco;
55
+ [key: string]: any;
56
+ }
57
+
58
+ /** Batch operation entry. */
59
+ export interface BatchOp {
60
+ type: string;
61
+ ref?: string;
62
+ taco?: Taco;
63
+ [key: string]: any;
64
+ }
65
+
66
+ /** Server-side client connection — represents one browser tab via SSE. */
67
+ export declare class BwServeClient {
68
+ /** bwserve version string */
69
+ static version: string;
70
+
71
+ /** Unique client identifier */
72
+ id: string;
73
+
74
+ constructor(id: string, res: ServerResponse);
75
+
76
+ /** Mount TACO at selector, replacing contents */
77
+ mount(selector: string, taco: Taco): void;
78
+
79
+ /** @deprecated Use mount() instead */
80
+ render(selector: string, taco: Taco): void;
81
+
82
+ /** Patch element properties without full rebuild */
83
+ patch(ref: string, fields: Record<string, any>): void;
84
+
85
+ /** Append TACO as child of target element */
86
+ append(selector: string, taco: Taco): void;
87
+
88
+ /** Remove element from DOM with cleanup */
89
+ remove(selector: string): void;
90
+
91
+ /** Send array of operations as single batch message */
92
+ batch(ops: BatchOp[]): void;
93
+
94
+ /** Dispatch to component's el.bw[action](data) */
95
+ message(ref: string, action: string, data?: any): void;
96
+
97
+ /** Call registered or built-in client function */
98
+ call(name: string, ...args: any[]): void;
99
+
100
+ /** Subscribe to client topic. Returns this for chaining. */
101
+ listen(topic: string, handler: (data: any) => void): BwServeClient;
102
+
103
+ /** Register handler for client action. Returns this for chaining. */
104
+ on(action: string, handler: (data: any, client: BwServeClient) => void): BwServeClient;
105
+
106
+ /** Close SSE connection */
107
+ close(): void;
108
+ }
109
+
110
+ /** Main bwserve application — HTTP + SSE server for server-driven UI. */
111
+ export declare class BwServeApp {
112
+ port: number;
113
+ title: string;
114
+ staticDir: string | null;
115
+ injectBitwrench: boolean;
116
+ theme: string | Record<string, string> | null;
117
+ allowScreenshot: boolean;
118
+ dirList: boolean;
119
+ host: string;
120
+ keepAliveInterval: number;
121
+
122
+ /** Number of active client connections */
123
+ readonly clientCount: number;
124
+
125
+ constructor(opts?: BwServeOptions);
126
+
127
+ /** Register a page handler. Returns this for chaining. */
128
+ page(path: string, handler: (client: BwServeClient) => void): BwServeApp;
129
+
130
+ /** Start HTTP server. Returns Promise that resolves when listening. */
131
+ listen(callback?: () => void): Promise<void>;
132
+
133
+ /** Stop server and close all client connections. */
134
+ close(): Promise<void>;
135
+
136
+ /** Send protocol message to all clients (or specific client if msg.clientId is set). Returns count of recipients. */
137
+ broadcast(msg: BwServeMessage): number;
138
+ }
139
+
140
+ /** Generate a complete HTML shell document for SSE connection. */
141
+ export declare function generateShell(opts?: ShellOptions): string;
142
+
143
+ /** Create a new BwServeApp instance. */
144
+ export declare function create(opts?: BwServeOptions): BwServeApp;
145
+
146
+ /** bwserve version string */
147
+ export declare const version: string;
148
+
149
+ /** Default export */
150
+ declare const bwserve: {
151
+ create: typeof create;
152
+ version: string;
153
+ BwServeApp: typeof BwServeApp;
154
+ BwServeClient: typeof BwServeClient;
155
+ generateShell: typeof generateShell;
156
+ };
157
+ export default bwserve;