acrylblends 0.8.1 → 0.9.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 (235) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +83 -7
  3. package/dist/index.js.map +1 -1
  4. package/lib/audit-BXnYsLge.d.ts +58 -0
  5. package/lib/cell-ChU41DZD.d.ts +32 -0
  6. package/lib/client-modules-CLvWOjbd.js +267 -0
  7. package/lib/connection-ZLEso7XL.d.ts +25 -0
  8. package/lib/conninfo.d.ts +1 -23
  9. package/lib/cordis/db-sqlite.d.ts +56 -0
  10. package/lib/cordis/db-sqlite.js +58 -0
  11. package/lib/cordis/db.d.ts +8 -0
  12. package/lib/cordis/db.js +1 -0
  13. package/lib/cordis/door.d.ts +159 -0
  14. package/lib/cordis/door.js +757 -0
  15. package/lib/cordis/inspect.d.ts +77 -0
  16. package/lib/cordis/inspect.js +149 -0
  17. package/lib/cordis/kv-db.d.ts +16 -0
  18. package/lib/cordis/kv-db.js +18 -0
  19. package/lib/cordis/kv-json.d.ts +16 -0
  20. package/lib/cordis/kv-json.js +44 -0
  21. package/lib/cordis/kv.d.ts +8 -0
  22. package/lib/cordis/kv.js +1 -0
  23. package/lib/cordis/node-server.d.ts +45 -0
  24. package/lib/cordis/node-server.js +93 -0
  25. package/lib/cordis/router-http.d.ts +56 -0
  26. package/lib/cordis/router-http.js +117 -0
  27. package/lib/cordis/router.d.ts +8 -0
  28. package/lib/cordis/router.js +7 -0
  29. package/lib/cordis/state/react.d.ts +6 -0
  30. package/lib/cordis/state/react.js +11 -0
  31. package/lib/cordis/state.d.ts +33 -0
  32. package/lib/cordis/state.js +163 -0
  33. package/lib/core-CaY8XDZ6.js +19 -0
  34. package/lib/database-DBHdwefi.d.ts +44 -0
  35. package/lib/db/conformance.d.ts +11 -0
  36. package/lib/db/conformance.js +267 -0
  37. package/lib/db/sqlite.d.ts +1 -1
  38. package/lib/db/sqlite.js +1 -196
  39. package/lib/db.d.ts +2 -1
  40. package/lib/{src-0hI7M7cN.js → deprecated-BP4fPt38.js} +0 -17
  41. package/lib/door/host.d.ts +24 -0
  42. package/lib/door/host.js +2 -0
  43. package/lib/door/page.d.ts +105 -0
  44. package/lib/door/page.js +1030 -0
  45. package/lib/door/protocol.d.ts +2 -0
  46. package/lib/door/protocol.js +197 -0
  47. package/lib/error-t4N2js2I.d.ts +8 -0
  48. package/lib/etag-DaKMOjty.js +135 -0
  49. package/lib/etag.js +1 -134
  50. package/lib/helpers-CvTauQT5.js +5 -0
  51. package/lib/http-exception-kpGJkmpi.d.ts +57 -0
  52. package/lib/http-exception.d.ts +1 -56
  53. package/lib/{index-BLTYsyc1.d.ts → index-BnGgRKTv.d.ts} +3 -39
  54. package/lib/index-BqVQkTnu.d.ts +98 -0
  55. package/lib/index-Dmst2QCQ.d.ts +44 -0
  56. package/lib/index.d.ts +1 -1
  57. package/lib/index.js +2 -1
  58. package/lib/jwk-LkzeoaU8.js +117 -0
  59. package/lib/jwk.js +1 -116
  60. package/lib/jwt-CskdhEW9.js +115 -0
  61. package/lib/jwt.js +2 -114
  62. package/lib/kv/conformance.d.ts +13 -0
  63. package/lib/kv/conformance.js +301 -0
  64. package/lib/kv/db.d.ts +2 -2
  65. package/lib/kv/json.d.ts +1 -1
  66. package/lib/kv-9f-AlRKN.d.ts +39 -0
  67. package/lib/kv.d.ts +2 -1
  68. package/lib/language-D9a4zqvn.js +198 -0
  69. package/lib/language.js +1 -197
  70. package/lib/middleware-CPQ8himN.js +12 -0
  71. package/lib/node-server/serve-static.d.ts +0 -1
  72. package/lib/node-server/serve-static.js +1 -1
  73. package/lib/node-server.d.ts +1 -7
  74. package/lib/node-server.js +3 -1586
  75. package/lib/open-CMhnJODn.js +197 -0
  76. package/lib/protocol-BizVt4J6.d.ts +144 -0
  77. package/lib/request-id-CKVvHOO1.js +34 -0
  78. package/lib/request-id.js +1 -33
  79. package/lib/secure-headers-mP3j6Hm6.js +163 -0
  80. package/lib/secure-headers.js +1 -162
  81. package/lib/{serve-static-B849HlX2.js → serve-static-3uo_9rjF.js} +1 -4
  82. package/lib/server-DvgMGtzo.js +1323 -0
  83. package/lib/snapshot-text-D3NspDyT.js +338 -0
  84. package/lib/src-CwABFr6r.js +328 -0
  85. package/lib/timeout.d.ts +1 -1
  86. package/lib/timing-Cky7C1Jf.js +183 -0
  87. package/lib/timing.js +1 -182
  88. package/package.json +89 -1
  89. package/plugins/acryl-db/plugin.json +6 -1
  90. package/plugins/acryl-db-sqlite/plugin.json +4 -0
  91. package/plugins/acryl-db-sqlite/src/facade/node.ts +1 -1
  92. package/plugins/acryl-db-sqlite/src/index.ts +2 -2
  93. package/plugins/acryl-db-sqlite/src/open.ts +2 -2
  94. package/plugins/acryl-door/plugin.json +4 -1
  95. package/plugins/acryl-door/src/host/http.ts +2 -2
  96. package/plugins/acryl-door/src/host/mcp-routes.ts +1 -1
  97. package/plugins/acryl-door/src/host/operator-routes.ts +1 -1
  98. package/plugins/acryl-door/src/host/page-routes.ts +3 -3
  99. package/plugins/acryl-door/src/index.ts +2 -2
  100. package/plugins/acryl-inspect/plugin.json +4 -1
  101. package/plugins/acryl-inspect/src/service.ts +2 -2
  102. package/plugins/acryl-kv/plugin.json +6 -1
  103. package/plugins/acryl-kv-db/plugin.json +4 -0
  104. package/plugins/acryl-kv-db/src/index.ts +1 -1
  105. package/plugins/acryl-kv-db/src/open.ts +3 -3
  106. package/plugins/acryl-kv-json/plugin.json +4 -0
  107. package/plugins/acryl-kv-json/src/index.ts +1 -1
  108. package/plugins/acryl-kv-json/src/open.ts +2 -2
  109. package/plugins/acryl-node-server/plugin.json +5 -1
  110. package/plugins/acryl-node-server/src/adapter/conninfo.ts +1 -1
  111. package/plugins/acryl-node-server/src/adapter/early-hints.ts +1 -1
  112. package/plugins/acryl-node-server/src/adapter/serve-static.ts +2 -2
  113. package/plugins/acryl-node-server/src/adapter/websocket.ts +2 -2
  114. package/plugins/acryl-node-server/src/client-modules.ts +2 -2
  115. package/plugins/acryl-node-server/src/index.ts +1 -1
  116. package/plugins/acryl-router/plugin.json +11 -1
  117. package/plugins/acryl-router/src/connection.d.ts +25 -0
  118. package/plugins/acryl-router/src/core/app-base.d.ts +215 -0
  119. package/plugins/acryl-router/src/core/app.d.ts +19 -0
  120. package/plugins/acryl-router/src/core/client/client.d.ts +4 -0
  121. package/plugins/acryl-router/src/core/client/fetch-result-please.d.ts +35 -0
  122. package/plugins/acryl-router/src/core/client/index.d.ts +7 -0
  123. package/plugins/acryl-router/src/core/client/types.d.ts +229 -0
  124. package/plugins/acryl-router/src/core/client/utils.d.ts +18 -0
  125. package/plugins/acryl-router/src/core/compose.d.ts +14 -0
  126. package/plugins/acryl-router/src/core/context.d.ts +443 -0
  127. package/plugins/acryl-router/src/core/helper/accepts/accepts.d.ts +30 -0
  128. package/plugins/acryl-router/src/core/helper/accepts/index.d.ts +5 -0
  129. package/plugins/acryl-router/src/core/helper/conninfo/index.d.ts +5 -0
  130. package/plugins/acryl-router/src/core/helper/conninfo/types.d.ts +36 -0
  131. package/plugins/acryl-router/src/core/helper/cookie/index.d.ts +25 -0
  132. package/plugins/acryl-router/src/core/helper/css/common.d.ts +59 -0
  133. package/plugins/acryl-router/src/core/helper/css/index.d.ts +80 -0
  134. package/plugins/acryl-router/src/core/helper/dev/index.d.ts +20 -0
  135. package/plugins/acryl-router/src/core/helper/factory/index.d.ts +82 -0
  136. package/plugins/acryl-router/src/core/helper/html/index.d.ts +8 -0
  137. package/plugins/acryl-router/src/core/helper/proxy/index.d.ts +73 -0
  138. package/plugins/acryl-router/src/core/helper/route/index.d.ts +75 -0
  139. package/plugins/acryl-router/src/core/helper/ssg/index.d.ts +7 -0
  140. package/plugins/acryl-router/src/core/helper/ssg/middleware.d.ts +44 -0
  141. package/plugins/acryl-router/src/core/helper/ssg/plugins.d.ts +27 -0
  142. package/plugins/acryl-router/src/core/helper/ssg/ssg.d.ts +91 -0
  143. package/plugins/acryl-router/src/core/helper/ssg/utils.d.ts +16 -0
  144. package/plugins/acryl-router/src/core/helper/streaming/index.d.ts +8 -0
  145. package/plugins/acryl-router/src/core/helper/streaming/sse.d.ts +13 -0
  146. package/plugins/acryl-router/src/core/helper/streaming/stream.d.ts +3 -0
  147. package/plugins/acryl-router/src/core/helper/streaming/text.d.ts +3 -0
  148. package/plugins/acryl-router/src/core/helper/streaming/utils.d.ts +1 -0
  149. package/plugins/acryl-router/src/core/helper/testing/index.d.ts +13 -0
  150. package/plugins/acryl-router/src/core/helper/websocket/index.d.ts +70 -0
  151. package/plugins/acryl-router/src/core/http-exception.d.ts +58 -0
  152. package/plugins/acryl-router/src/core/index.d.ts +37 -0
  153. package/plugins/acryl-router/src/core/jsx/base.d.ts +61 -0
  154. package/plugins/acryl-router/src/core/jsx/children.d.ts +9 -0
  155. package/plugins/acryl-router/src/core/jsx/components.d.ts +15 -0
  156. package/plugins/acryl-router/src/core/jsx/constants.d.ts +6 -0
  157. package/plugins/acryl-router/src/core/jsx/context.d.ts +51 -0
  158. package/plugins/acryl-router/src/core/jsx/dom/components.d.ts +10 -0
  159. package/plugins/acryl-router/src/core/jsx/dom/context.d.ts +3 -0
  160. package/plugins/acryl-router/src/core/jsx/dom/css.d.ts +83 -0
  161. package/plugins/acryl-router/src/core/jsx/dom/hooks/index.d.ts +39 -0
  162. package/plugins/acryl-router/src/core/jsx/dom/intrinsic-element/components.d.ts +16 -0
  163. package/plugins/acryl-router/src/core/jsx/dom/jsx-dev-runtime.d.ts +8 -0
  164. package/plugins/acryl-router/src/core/jsx/dom/jsx-runtime.d.ts +7 -0
  165. package/plugins/acryl-router/src/core/jsx/dom/render.d.ts +73 -0
  166. package/plugins/acryl-router/src/core/jsx/dom/utils.d.ts +1 -0
  167. package/plugins/acryl-router/src/core/jsx/hooks/index.d.ts +47 -0
  168. package/plugins/acryl-router/src/core/jsx/index.d.ts +76 -0
  169. package/plugins/acryl-router/src/core/jsx/intrinsic-element/common.d.ts +6 -0
  170. package/plugins/acryl-router/src/core/jsx/intrinsic-element/components.d.ts +13 -0
  171. package/plugins/acryl-router/src/core/jsx/intrinsic-elements.d.ts +735 -0
  172. package/plugins/acryl-router/src/core/jsx/streaming.d.ts +36 -0
  173. package/plugins/acryl-router/src/core/jsx/types.d.ts +36 -0
  174. package/plugins/acryl-router/src/core/jsx/utils.d.ts +4 -0
  175. package/plugins/acryl-router/src/core/request/constants.d.ts +1 -0
  176. package/plugins/acryl-router/src/core/request.d.ts +306 -0
  177. package/plugins/acryl-router/src/core/router/reg-exp-router/index.d.ts +6 -0
  178. package/plugins/acryl-router/src/core/router/reg-exp-router/matcher.d.ts +7 -0
  179. package/plugins/acryl-router/src/core/router/reg-exp-router/node.d.ts +13 -0
  180. package/plugins/acryl-router/src/core/router/reg-exp-router/prepared-router.d.ts +17 -0
  181. package/plugins/acryl-router/src/core/router/reg-exp-router/router.d.ts +11 -0
  182. package/plugins/acryl-router/src/core/router/reg-exp-router/trie.d.ts +8 -0
  183. package/plugins/acryl-router/src/core/router/smart-router/index.d.ts +5 -0
  184. package/plugins/acryl-router/src/core/router/smart-router/router.d.ts +11 -0
  185. package/plugins/acryl-router/src/core/router/trie-router/index.d.ts +5 -0
  186. package/plugins/acryl-router/src/core/router/trie-router/node.d.ts +6 -0
  187. package/plugins/acryl-router/src/core/router/trie-router/router.d.ts +7 -0
  188. package/plugins/acryl-router/src/core/router/utils.d.ts +1 -0
  189. package/plugins/acryl-router/src/core/router.d.ts +97 -0
  190. package/plugins/acryl-router/src/core/types.d.ts +573 -0
  191. package/plugins/acryl-router/src/core/utils/accept.d.ts +6 -0
  192. package/plugins/acryl-router/src/core/utils/body.d.ts +79 -0
  193. package/plugins/acryl-router/src/core/utils/buffer.d.ts +17 -0
  194. package/plugins/acryl-router/src/core/utils/color.d.ts +21 -0
  195. package/plugins/acryl-router/src/core/utils/concurrent.d.ts +11 -0
  196. package/plugins/acryl-router/src/core/utils/constants.d.ts +4 -0
  197. package/plugins/acryl-router/src/core/utils/cookie.d.ts +41 -0
  198. package/plugins/acryl-router/src/core/utils/crypto.d.ts +15 -0
  199. package/plugins/acryl-router/src/core/utils/handler.d.ts +6 -0
  200. package/plugins/acryl-router/src/core/utils/headers.d.ts +8 -0
  201. package/plugins/acryl-router/src/core/utils/html.d.ts +44 -0
  202. package/plugins/acryl-router/src/core/utils/http-status.d.ts +32 -0
  203. package/plugins/acryl-router/src/core/utils/mime.d.ts +70 -0
  204. package/plugins/acryl-router/src/core/utils/stream.d.ts +31 -0
  205. package/plugins/acryl-router/src/core/utils/types.d.ts +128 -0
  206. package/plugins/acryl-router/src/core/utils/url.d.ts +44 -0
  207. package/plugins/acryl-router/src/core/validator/index.d.ts +7 -0
  208. package/plugins/acryl-router/src/core/validator/utils.d.ts +29 -0
  209. package/plugins/acryl-router/src/core/validator/validator.d.ts +16 -0
  210. package/plugins/acryl-router/src/helpers/index.d.ts +17 -0
  211. package/plugins/acryl-router/src/helpers/schema-validator.d.ts +54 -0
  212. package/plugins/acryl-router-http/plugin.json +4 -1
  213. package/plugins/acryl-router-http/src/index.ts +1 -1
  214. package/plugins/acryl-state/plugin.json +5 -1
  215. package/plugins/acryl-state/src/service.ts +3 -3
  216. package/plugins/tsconfig.json +32 -20
  217. package/docs/framework/UPSTREAM.md +0 -3
  218. package/docs/framework/upstream.json +0 -9
  219. package/lib/index-D4FAsBZu.d.ts +0 -85
  220. package/plugins/acryl-db/upstream.json +0 -18
  221. package/plugins/acryl-db-sqlite/upstream.json +0 -21
  222. package/plugins/acryl-door/upstream.json +0 -28
  223. package/plugins/acryl-inspect/upstream.json +0 -18
  224. package/plugins/acryl-kv/upstream.json +0 -18
  225. package/plugins/acryl-kv-db/upstream.json +0 -21
  226. package/plugins/acryl-kv-json/upstream.json +0 -22
  227. package/plugins/acryl-node-server/upstream.json +0 -21
  228. package/plugins/acryl-router/upstream.json +0 -20
  229. package/plugins/acryl-router-http/upstream.json +0 -22
  230. package/plugins/acryl-state/NOTICE +0 -30
  231. package/plugins/acryl-state/upstream.json +0 -22
  232. package/plugins/desktop/upstream.json +0 -12
  233. package/plugins/desktop-web/upstream.json +0 -12
  234. package/templates/todo/upstream.json +0 -12
  235. /package/lib/{index-CTy4N7ng.d.ts → deprecated-CTy4N7ng.d.ts} +0 -0
package/lib/db/sqlite.js CHANGED
@@ -1,197 +1,2 @@
1
- import { i as applyMigrations, n as MIGRATIONS_TABLE, r as readMigrationFiles } from "../src-MWcsMS8i.js";
2
- import { mkdir } from "node:fs/promises";
3
- import { dirname } from "node:path";
4
- import { DatabaseSync } from "node:sqlite";
5
- //#region ../../plugins/acryl-db-sqlite/src/facade/node.ts
6
- const DEFAULT_WAL_AUTO_CHECKPOINT_PAGES = 1e3;
7
- const DEFAULT_BUSY_TIMEOUT_MS = 5e3;
8
- const ignore = () => {};
9
- /**
10
- * Runs operations in call order. An operation starts immediately when nothing is running or waiting;
11
- * otherwise it waits for everything before it. An asynchronous operation holds the queue until it settles.
12
- */
13
- var SerialOperationQueue = class {
14
- tail = Promise.resolve();
15
- pending = 0;
16
- run(operation) {
17
- if (this.pending > 0) return this.enqueue(operation);
18
- try {
19
- return Promise.resolve(operation());
20
- } catch (error) {
21
- return Promise.reject(error);
22
- }
23
- }
24
- runAsync(operation) {
25
- if (this.pending > 0) return this.enqueue(operation);
26
- this.pending++;
27
- const { promise: barrier, resolve: releaseBarrier } = Promise.withResolvers();
28
- this.tail = barrier;
29
- let started;
30
- try {
31
- started = operation();
32
- } catch (error) {
33
- started = Promise.reject(error);
34
- }
35
- return started.finally(() => {
36
- this.pending--;
37
- releaseBarrier();
38
- });
39
- }
40
- enqueue(operation) {
41
- this.pending++;
42
- return this.release(this.tail.then(operation));
43
- }
44
- release(operation) {
45
- const settled = operation.finally(() => {
46
- this.pending--;
47
- });
48
- this.tail = settled.then(ignore, ignore);
49
- return settled;
50
- }
51
- };
52
- /**
53
- * Executes SQL on one connection. Prepared statements are cached per connection by SQL text, so the
54
- * database and its transaction handles share them across transactions.
55
- */
56
- var NodeSqliteExecutor = class {
57
- database;
58
- statements;
59
- constructor(database, statements) {
60
- this.database = database;
61
- this.statements = statements;
62
- }
63
- exec(sql) {
64
- return this.runOperation(() => {
65
- this.database.exec(sql);
66
- });
67
- }
68
- run(sql, ...params) {
69
- return this.runOperation(() => ({ changes: Number(this.statement(sql).run(...params).changes) }));
70
- }
71
- get(sql, ...params) {
72
- return this.runOperation(() => this.statement(sql).get(...params));
73
- }
74
- all(sql, ...params) {
75
- return this.runOperation(() => this.statement(sql).all(...params));
76
- }
77
- statement(sql) {
78
- let statement = this.statements.get(sql);
79
- if (statement === void 0) {
80
- statement = this.database.prepare(sql);
81
- this.statements.set(sql, statement);
82
- }
83
- return statement;
84
- }
85
- };
86
- var NodeSqliteTransaction = class extends NodeSqliteExecutor {
87
- scope;
88
- constructor(database, statements, scope) {
89
- super(database, statements);
90
- this.scope = scope;
91
- }
92
- async runOperation(operation) {
93
- if (!this.scope.active) throw new Error("SQLite transaction handle is no longer active");
94
- return operation();
95
- }
96
- };
97
- /** `Db` adapter backed by Node's built-in `node:sqlite`. */
98
- var NodeSqliteDatabase = class extends NodeSqliteExecutor {
99
- access = new SerialOperationQueue();
100
- closed = false;
101
- constructor(database) {
102
- super(database, /* @__PURE__ */ new Map());
103
- }
104
- transaction(callback) {
105
- return this.access.runAsync(async () => {
106
- this.database.exec("BEGIN IMMEDIATE");
107
- const scope = { active: true };
108
- try {
109
- const result = await callback(new NodeSqliteTransaction(this.database, this.statements, scope));
110
- scope.active = false;
111
- this.database.exec("COMMIT");
112
- return result;
113
- } catch (error) {
114
- scope.active = false;
115
- try {
116
- this.database.exec("ROLLBACK");
117
- } catch (rollbackError) {
118
- throw new AggregateError([error, rollbackError], "SQLite transaction failed and rollback failed");
119
- }
120
- throw error;
121
- }
122
- });
123
- }
124
- close() {
125
- return this.access.run(() => {
126
- if (this.closed) return;
127
- this.closed = true;
128
- this.statements.clear();
129
- try {
130
- this.database.exec("PRAGMA wal_checkpoint(TRUNCATE)");
131
- } finally {
132
- this.database.close();
133
- }
134
- });
135
- }
136
- runOperation(operation) {
137
- return this.access.run(operation);
138
- }
139
- };
140
- /** Open and configure a Node-backed SQLite database facade. */
141
- async function openNodeSqliteDatabase(path, options = {}) {
142
- const checkpointPages = options.walAutoCheckpointPages ?? DEFAULT_WAL_AUTO_CHECKPOINT_PAGES;
143
- const timeout = options.busyTimeoutMs ?? DEFAULT_BUSY_TIMEOUT_MS;
144
- if (path !== ":memory:") await mkdir(dirname(path), { recursive: true });
145
- const adapter = new NodeSqliteDatabase(new DatabaseSync(path, { timeout }));
146
- try {
147
- await adapter.exec("PRAGMA journal_mode = WAL");
148
- await adapter.exec("PRAGMA synchronous = NORMAL");
149
- await adapter.exec(`PRAGMA wal_autocheckpoint = ${checkpointPages}`);
150
- return adapter;
151
- } catch (error) {
152
- try {
153
- await adapter.close();
154
- } catch {}
155
- throw error;
156
- }
157
- }
158
- //#endregion
159
- //#region ../../plugins/acryl-db-sqlite/src/open.ts
160
- /**
161
- * The plain way to open the SQLite provider, for code without Cordis (an acrylblends app): `openDb({ path, migrations })` opens one
162
- * `node:sqlite` file with the ported facade's settings (WAL, `synchronous = NORMAL`, a busy timeout) and foreign keys enforced, applies the
163
- * numbered migrations, and resolves the `db` port with the function that closes it. The Cordis plugin is a thin wrapper over this, so both
164
- * run one code path.
165
- * This entry imports nothing from Cordis.
166
- */
167
- /**
168
- * Open, configure and migrate a SQLite database.
169
- * @throws when the migration files are misnamed or misnumbered, or a migration fails (the file is closed, and unchanged), or the
170
- * database's schema is newer than the migrations.
171
- */
172
- async function openDb(options) {
173
- const migrations = options.migrations === void 0 ? [] : await readMigrationFiles(options.migrations);
174
- const database = await openNodeSqliteDatabase(options.path, {
175
- ...options.busyTimeoutMs === void 0 ? {} : { busyTimeoutMs: options.busyTimeoutMs },
176
- ...options.walAutoCheckpointPages === void 0 ? {} : { walAutoCheckpointPages: options.walAutoCheckpointPages }
177
- });
178
- try {
179
- await database.exec("PRAGMA foreign_keys = ON");
180
- await applyMigrations(database, migrations, { table: MIGRATIONS_TABLE });
181
- } catch (error) {
182
- await database.close();
183
- throw error;
184
- }
185
- return {
186
- db: {
187
- exec: (sql) => database.exec(sql),
188
- run: (sql, ...params) => database.run(sql, ...params),
189
- get: (sql, ...params) => database.get(sql, ...params),
190
- all: (sql, ...params) => database.all(sql, ...params),
191
- transaction: (work) => database.transaction(work)
192
- },
193
- close: () => database.close()
194
- };
195
- }
196
- //#endregion
1
+ import { t as openDb } from "../open-CMhnJODn.js";
197
2
  export { openDb };
package/lib/db.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { a as Migration, c as DbExecutor, i as validateSchemaPrefix, l as SqlValue, n as MIGRATIONS_TABLE, o as applyMigrations, r as readMigrationFiles, s as Db, t as DB_SERVICE } from "./index-D4FAsBZu.js";
1
+ import { n as DbExecutor, r as SqlValue, t as Db } from "./database-DBHdwefi.js";
2
+ import { a as Migration, i as validateSchemaPrefix, n as MIGRATIONS_TABLE, o as applyMigrations, r as readMigrationFiles, t as DB_SERVICE } from "./index-Dmst2QCQ.js";
2
3
  export { DB_SERVICE, type Db, type DbExecutor, MIGRATIONS_TABLE, type Migration, type SqlValue, applyMigrations, readMigrationFiles, validateSchemaPrefix };
@@ -1,21 +1,4 @@
1
1
  import { t as Acryl } from "./app-BM0rTCp7.js";
2
- //#region ../../plugins/acryl-router/src/core/index.ts
3
- /**
4
- * @module
5
- *
6
- * Acryl - Web Framework built on Web Standards
7
- *
8
- * @example
9
- * ```ts
10
- * import { Acryl } from 'acrylblends'
11
- * const app = new Acryl()
12
- *
13
- * app.get('/', (c) => c.text('Acryl!'))
14
- *
15
- * export default app
16
- * ```
17
- */
18
- //#endregion
19
2
  //#region ../../plugins/acryl-router/src/deprecated.ts
20
3
  /**
21
4
  * The 0.4 names, kept for one release so code written against them keeps working: `App` is now `Acryl` and `AppRequest` is now `AcrylRequest`,
@@ -0,0 +1,24 @@
1
+ import { t as Acryl } from "../app-D8riatvv.js";
2
+ import { t as AuditEntry, v as UiSnapshot } from "../protocol-BizVt4J6.js";
3
+ import { i as UiChannel, n as auditPath, r as PageStream, t as AuditLog } from "../audit-BXnYsLge.js";
4
+
5
+ //#region ../../plugins/acryl-door/src/host/page-routes.d.ts
6
+ /** How often the Host writes a `ping`; the page gives up on a stream that is silent for three of these. */
7
+ declare const HEARTBEAT_MS = 15000;
8
+ interface PageRoutesOptions {
9
+ /** Where the channel lives, e.g. `/api/acryl-door`. */
10
+ readonly prefix: string;
11
+ readonly heartbeatMs?: number;
12
+ /** The only hostnames the page may be served from (default: every loopback name), e.g. `['127.0.0.1']` for a Host that serves only that. */
13
+ readonly hostnames?: readonly string[];
14
+ }
15
+ declare function pageChannelRoutes(channel: UiChannel, options: PageRoutesOptions): Acryl;
16
+ //#endregion
17
+ //#region ../../plugins/acryl-door/src/page/snapshot-text.d.ts
18
+ /**
19
+ * The snapshot as compact text for an agent: one line per element, indented by depth.
20
+ * @param more - how to ask for the rest when the page was cut, given the cursor to continue from.
21
+ */
22
+ declare function renderSnapshot(snapshot: UiSnapshot, more?: (cursor: number) => string): string;
23
+ //#endregion
24
+ export { type AuditEntry, AuditLog, HEARTBEAT_MS, type PageRoutesOptions, type PageStream, UiChannel, auditPath, pageChannelRoutes, renderSnapshot };
@@ -0,0 +1,2 @@
1
+ import { d as AuditLog, f as auditPath, n as HEARTBEAT_MS, p as UiChannel, r as pageChannelRoutes, t as renderSnapshot } from "../snapshot-text-D3NspDyT.js";
2
+ export { AuditLog, HEARTBEAT_MS, UiChannel, auditPath, pageChannelRoutes, renderSnapshot };
@@ -0,0 +1,105 @@
1
+ import { _ as UiResult, g as UiRequest } from "../protocol-BizVt4J6.js";
2
+
3
+ //#region ../../plugins/acryl-door/src/page/driver/driver.d.ts
4
+ interface DriverActivity {
5
+ /** True from the moment a call starts until it ends. */
6
+ readonly busy: boolean;
7
+ /** What the agent is doing, for the indicator ("click", "type", ...). */
8
+ readonly doing: string;
9
+ /** True after the user pressed the kill switch. */
10
+ readonly killed: boolean;
11
+ }
12
+ interface UiDriverOptions {
13
+ readonly document: () => Document;
14
+ /** Milliseconds since the user last used the page (mouse, keyboard); Infinity when never. */
15
+ readonly msSinceUserInput?: () => number;
16
+ readonly sleep?: (ms: number, signal: AbortSignal) => Promise<void>;
17
+ }
18
+ declare class UiDriver {
19
+ private readonly refs;
20
+ private readonly snapshots;
21
+ private readonly listeners;
22
+ private readonly env;
23
+ private readonly stopAll;
24
+ private killedFlag;
25
+ private disposed;
26
+ private busyCount;
27
+ private doing;
28
+ private current;
29
+ private readonly options;
30
+ constructor(options: UiDriverOptions);
31
+ /** The current activity; the same object until something changes, as a store snapshot must be. */
32
+ get activity(): DriverActivity;
33
+ subscribe(listener: (activity: DriverActivity) => void): () => void;
34
+ /** The user pressed the kill switch: pending calls settle as `killed` and new ones are refused. */
35
+ kill(): void;
36
+ /** The user allowed the agent to drive again. */
37
+ resume(): void;
38
+ /** The driver goes away: pending calls settle as `unloaded`; refs are gone. */
39
+ dispose(): void;
40
+ /** @param signal - the Host cancelled the call. @throws UiControlError. */
41
+ handle(request: UiRequest, signal?: AbortSignal): Promise<UiResult>;
42
+ private run;
43
+ private yieldToUser;
44
+ private emit;
45
+ }
46
+ //#endregion
47
+ //#region ../../plugins/acryl-door/src/page/channel.d.ts
48
+ /** The slice of an `EventSource` the channel uses, so tests can supply their own. */
49
+ interface ChannelSource {
50
+ addEventListener(type: string, listener: (event: MessageEvent) => void): void;
51
+ onerror: ((event: Event) => void) | null;
52
+ close(): void;
53
+ readonly readyState: number;
54
+ }
55
+ /** The Host's heartbeat is 15 s; three missed beats and the stream counts as dead. */
56
+ declare const SILENCE_MS = 45000;
57
+ interface PageChannelOptions {
58
+ readonly windowId: string;
59
+ readonly focused: () => boolean;
60
+ /** Where the door's routes are, e.g. `/api/acryl-door`. */
61
+ readonly base: string;
62
+ readonly createSource?: (url: string) => ChannelSource;
63
+ readonly post?: (url: string, body: string) => Promise<unknown>;
64
+ readonly silenceMs?: number;
65
+ readonly now?: () => number;
66
+ }
67
+ declare class PageChannel {
68
+ private source;
69
+ private reconnectTimer;
70
+ private watchdog;
71
+ private backoff;
72
+ private lastHeard;
73
+ private disposed;
74
+ private readonly now;
75
+ private readonly driver;
76
+ private readonly options;
77
+ constructor(driver: UiDriver, options: PageChannelOptions);
78
+ connect(): void;
79
+ /** Tell the Host whether this window is the one in front. */
80
+ reportFocus(focused: boolean): void;
81
+ dispose(): void;
82
+ /** Drop the stream and open a new one after the backoff. */
83
+ private restart;
84
+ private stop;
85
+ private answer;
86
+ private send;
87
+ }
88
+ //#endregion
89
+ //#region ../../plugins/acryl-door/src/page/user-input.d.ts
90
+ /** Tracks when the user last used the page, so the agent yields to them. */
91
+ declare class UserInputClock {
92
+ private last;
93
+ private readonly now;
94
+ constructor(now?: () => number);
95
+ /** Milliseconds since the user last touched the page; Infinity when they have not. */
96
+ msSince: () => number;
97
+ /** Start listening. @returns disposer. */
98
+ attach(target: Document): () => void;
99
+ }
100
+ //#endregion
101
+ //#region ../../plugins/acryl-door/src/page/indicator.d.ts
102
+ /** Show the bar for `driver` in `document`. @returns the disposer, which removes the bar, its style and its listeners. */
103
+ declare function mountIndicator(driver: UiDriver, document: Document): () => void;
104
+ //#endregion
105
+ export { type ChannelSource, type DriverActivity, PageChannel, type PageChannelOptions, SILENCE_MS, UiDriver, type UiDriverOptions, UserInputClock, mountIndicator };