firebird-wasm 0.7.0 → 0.8.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/CHANGELOG.md +141 -0
- package/README.md +1 -1
- package/dist/.tsbuildinfo.build +1 -1
- package/dist/browser/engine-transport.d.ts.map +1 -1
- package/dist/browser/engine-transport.js +5 -8
- package/dist/browser/engine-transport.js.map +1 -1
- package/dist/browser/firebird-browser.d.ts.map +1 -1
- package/dist/browser/firebird-browser.js +59 -20
- package/dist/browser/firebird-browser.js.map +1 -1
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +4 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/serve-engine.d.ts +30 -0
- package/dist/browser/serve-engine.d.ts.map +1 -0
- package/dist/browser/serve-engine.js +93 -0
- package/dist/browser/serve-engine.js.map +1 -0
- package/dist/browser/worker-entry.d.ts +8 -22
- package/dist/browser/worker-entry.d.ts.map +1 -1
- package/dist/browser/worker-entry.js +18 -79
- package/dist/browser/worker-entry.js.map +1 -1
- package/dist/electric/apply.d.ts +53 -0
- package/dist/electric/apply.d.ts.map +1 -0
- package/dist/electric/apply.js +88 -0
- package/dist/electric/apply.js.map +1 -0
- package/dist/electric/index.d.ts +83 -0
- package/dist/electric/index.d.ts.map +1 -0
- package/dist/electric/index.js +210 -0
- package/dist/electric/index.js.map +1 -0
- package/dist/electric/values.d.ts +65 -0
- package/dist/electric/values.d.ts.map +1 -0
- package/dist/electric/values.js +243 -0
- package/dist/electric/values.js.map +1 -0
- package/dist/electric-server/capture.d.ts +36 -0
- package/dist/electric-server/capture.d.ts.map +1 -0
- package/dist/electric-server/capture.js +148 -0
- package/dist/electric-server/capture.js.map +1 -0
- package/dist/electric-server/catalog.d.ts +59 -0
- package/dist/electric-server/catalog.d.ts.map +1 -0
- package/dist/electric-server/catalog.js +122 -0
- package/dist/electric-server/catalog.js.map +1 -0
- package/dist/electric-server/index.d.ts +58 -0
- package/dist/electric-server/index.d.ts.map +1 -0
- package/dist/electric-server/index.js +348 -0
- package/dist/electric-server/index.js.map +1 -0
- package/dist/firebird.d.ts +3 -1
- package/dist/firebird.d.ts.map +1 -1
- package/dist/firebird.js +250 -22
- package/dist/firebird.js.map +1 -1
- package/dist/frameworks/query-store.d.ts +99 -0
- package/dist/frameworks/query-store.d.ts.map +1 -0
- package/dist/frameworks/query-store.js +166 -0
- package/dist/frameworks/query-store.js.map +1 -0
- package/dist/react/index.d.ts +68 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +92 -0
- package/dist/react/index.js.map +1 -0
- package/dist/repl/index.d.ts +76 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +328 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/vue/index.d.ts +68 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +107 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/wasm/firebird-embedded-st.wasm +0 -0
- package/dist/wasm/firebird-embedded.wasm +0 -0
- package/package.json +50 -3
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* firebird-wasm/repl – an interactive SQL console as a custom element.
|
|
4
|
+
*
|
|
5
|
+
* ```js
|
|
6
|
+
* import { defineFirebirdRepl } from 'firebird-wasm/repl';
|
|
7
|
+
*
|
|
8
|
+
* defineFirebirdRepl(); // registers <firebird-repl>
|
|
9
|
+
* document.querySelector('firebird-repl').db = db;
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* A custom element, so it works the same in plain pages, React and Vue: give
|
|
13
|
+
* it a database through its `db` property. Type SQL, run it with
|
|
14
|
+
* Ctrl+Enter (⌘+Enter on a Mac) or the Run button; a script runs statement by
|
|
15
|
+
* statement (`SET TERM` included) and stops at the first error. ArrowUp on
|
|
16
|
+
* the first line and ArrowDown on the last walk the history.
|
|
17
|
+
*
|
|
18
|
+
* Every value is written as text, never as HTML, so a row cannot inject
|
|
19
|
+
* markup into the page. The element draws in its own shadow root; colours
|
|
20
|
+
* follow `color-scheme` and can be set with `--firebird-repl-*` properties.
|
|
21
|
+
*
|
|
22
|
+
* Nothing runs on import: the class is made by {@link defineFirebirdRepl},
|
|
23
|
+
* so importing this module where there is no DOM (Node, server rendering) is
|
|
24
|
+
* harmless.
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.defineFirebirdRepl = defineFirebirdRepl;
|
|
28
|
+
const sql_script_1 = require("../browser/sql-script");
|
|
29
|
+
/** At most this many rows of one result are drawn; the rest are counted. */
|
|
30
|
+
const MAX_ROWS = 500;
|
|
31
|
+
const STYLE = `
|
|
32
|
+
:host {
|
|
33
|
+
--firebird-repl-bg: Canvas;
|
|
34
|
+
--firebird-repl-fg: CanvasText;
|
|
35
|
+
--firebird-repl-muted: color-mix(in srgb, CanvasText 55%, Canvas);
|
|
36
|
+
--firebird-repl-border: color-mix(in srgb, CanvasText 18%, Canvas);
|
|
37
|
+
--firebird-repl-error: #c62828;
|
|
38
|
+
--firebird-repl-accent: #b71c1c;
|
|
39
|
+
--firebird-repl-font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
color-scheme: light dark;
|
|
43
|
+
background: var(--firebird-repl-bg);
|
|
44
|
+
color: var(--firebird-repl-fg);
|
|
45
|
+
font: 13px/1.45 var(--firebird-repl-font);
|
|
46
|
+
border: 1px solid var(--firebird-repl-border);
|
|
47
|
+
border-radius: 6px;
|
|
48
|
+
min-height: 12rem;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
}
|
|
51
|
+
.output { flex: 1; overflow: auto; padding: 0.5rem 0.75rem; }
|
|
52
|
+
.entry { margin: 0 0 0.75rem; }
|
|
53
|
+
.sql { white-space: pre-wrap; margin: 0; }
|
|
54
|
+
.sql::before { content: '> '; color: var(--firebird-repl-muted); }
|
|
55
|
+
.meta { color: var(--firebird-repl-muted); margin: 0.15rem 0 0; }
|
|
56
|
+
.error { color: var(--firebird-repl-error); white-space: pre-wrap; margin: 0.15rem 0 0; }
|
|
57
|
+
.table { overflow-x: auto; margin-top: 0.25rem; }
|
|
58
|
+
table { border-collapse: collapse; }
|
|
59
|
+
th, td { border: 1px solid var(--firebird-repl-border); padding: 0.1rem 0.5rem; text-align: left; vertical-align: top; white-space: pre; }
|
|
60
|
+
th { font-weight: 600; }
|
|
61
|
+
td.num { text-align: right; }
|
|
62
|
+
.null { color: var(--firebird-repl-muted); font-style: italic; }
|
|
63
|
+
.input { display: flex; border-top: 1px solid var(--firebird-repl-border); }
|
|
64
|
+
textarea {
|
|
65
|
+
flex: 1; resize: vertical; min-height: 3.5rem; border: 0; padding: 0.5rem 0.75rem;
|
|
66
|
+
background: transparent; color: inherit; font: inherit; outline: none;
|
|
67
|
+
}
|
|
68
|
+
button {
|
|
69
|
+
font: inherit; border: 0; border-left: 1px solid var(--firebird-repl-border);
|
|
70
|
+
background: transparent; color: var(--firebird-repl-accent); padding: 0 1rem; cursor: pointer;
|
|
71
|
+
}
|
|
72
|
+
button:disabled { color: var(--firebird-repl-muted); cursor: default; }
|
|
73
|
+
`;
|
|
74
|
+
/**
|
|
75
|
+
* Register the element under `tag` (default `firebird-repl`) and return its
|
|
76
|
+
* class. Calling it again returns the class already registered.
|
|
77
|
+
*/
|
|
78
|
+
function defineFirebirdRepl(tag = 'firebird-repl') {
|
|
79
|
+
const existing = customElements.get(tag);
|
|
80
|
+
if (existing)
|
|
81
|
+
return existing;
|
|
82
|
+
class FirebirdRepl extends HTMLElement {
|
|
83
|
+
constructor() {
|
|
84
|
+
super();
|
|
85
|
+
this.database = null;
|
|
86
|
+
this.history = [];
|
|
87
|
+
/** Position in `history` while walking it; `history.length` is the draft. */
|
|
88
|
+
this.cursor = 0;
|
|
89
|
+
this.draft = '';
|
|
90
|
+
this.busy = false;
|
|
91
|
+
const root = this.attachShadow({ mode: 'open' });
|
|
92
|
+
const style = document.createElement('style');
|
|
93
|
+
style.textContent = STYLE;
|
|
94
|
+
this.output = el('div', 'output');
|
|
95
|
+
this.output.setAttribute('role', 'log');
|
|
96
|
+
this.output.setAttribute('aria-live', 'polite');
|
|
97
|
+
const input = el('div', 'input');
|
|
98
|
+
this.editor = document.createElement('textarea');
|
|
99
|
+
this.editor.spellcheck = false;
|
|
100
|
+
this.editor.placeholder = 'SQL; Ctrl+Enter runs it';
|
|
101
|
+
this.editor.setAttribute('aria-label', 'SQL');
|
|
102
|
+
this.button = document.createElement('button');
|
|
103
|
+
this.button.type = 'button';
|
|
104
|
+
this.button.textContent = 'Run';
|
|
105
|
+
input.append(this.editor, this.button);
|
|
106
|
+
root.append(style, this.output, input);
|
|
107
|
+
this.button.addEventListener('click', () => void this.run());
|
|
108
|
+
this.editor.addEventListener('keydown', (event) => this.onKey(event));
|
|
109
|
+
// A property set before the element was defined (React and Vue both
|
|
110
|
+
// set properties as they render) sits on the instance and would hide
|
|
111
|
+
// the accessor: take it over.
|
|
112
|
+
for (const name of ['db', 'value']) {
|
|
113
|
+
if (Object.prototype.hasOwnProperty.call(this, name)) {
|
|
114
|
+
const early = this[name];
|
|
115
|
+
delete this[name];
|
|
116
|
+
this[name] = early;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
get db() {
|
|
121
|
+
return this.database;
|
|
122
|
+
}
|
|
123
|
+
set db(db) {
|
|
124
|
+
this.database = db;
|
|
125
|
+
}
|
|
126
|
+
get value() {
|
|
127
|
+
return this.editor.value;
|
|
128
|
+
}
|
|
129
|
+
set value(text) {
|
|
130
|
+
this.editor.value = text;
|
|
131
|
+
}
|
|
132
|
+
clear() {
|
|
133
|
+
this.output.replaceChildren();
|
|
134
|
+
}
|
|
135
|
+
async run(script) {
|
|
136
|
+
const text = script ?? this.editor.value;
|
|
137
|
+
if (this.busy || text.trim() === '')
|
|
138
|
+
return [];
|
|
139
|
+
if (!this.db) {
|
|
140
|
+
const entry = {
|
|
141
|
+
sql: text.trim(), line: 1, ms: 0,
|
|
142
|
+
error: new Error('No database: set the element’s db property first'),
|
|
143
|
+
};
|
|
144
|
+
this.show(entry);
|
|
145
|
+
return [entry];
|
|
146
|
+
}
|
|
147
|
+
this.busy = true;
|
|
148
|
+
this.button.disabled = true;
|
|
149
|
+
if (this.history[this.history.length - 1] !== text)
|
|
150
|
+
this.history.push(text);
|
|
151
|
+
this.cursor = this.history.length;
|
|
152
|
+
this.draft = '';
|
|
153
|
+
if (script === undefined)
|
|
154
|
+
this.editor.value = '';
|
|
155
|
+
const entries = [];
|
|
156
|
+
try {
|
|
157
|
+
let statements;
|
|
158
|
+
try {
|
|
159
|
+
statements = (0, sql_script_1.splitStatements)(text);
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
statements = [];
|
|
163
|
+
const entry = { sql: text.trim(), line: 1, ms: 0, error: asError(err) };
|
|
164
|
+
entries.push(entry);
|
|
165
|
+
this.show(entry);
|
|
166
|
+
}
|
|
167
|
+
for (const statement of statements) {
|
|
168
|
+
const started = performance.now();
|
|
169
|
+
const entry = { sql: statement.sql, line: statement.line, ms: 0 };
|
|
170
|
+
try {
|
|
171
|
+
const db = this.db;
|
|
172
|
+
const { hasResultSet } = await db.describeQuery(statement.sql);
|
|
173
|
+
if (hasResultSet) {
|
|
174
|
+
const result = await db.query(statement.sql, [], { rowMode: 'array' });
|
|
175
|
+
entry.fields = result.fields;
|
|
176
|
+
entry.rows = result.rows;
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
entry.affectedRows = (await db.transaction((tx) => tx.exec(statement.sql))).affectedRows;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
entry.error = asError(err);
|
|
184
|
+
}
|
|
185
|
+
entry.ms = performance.now() - started;
|
|
186
|
+
entries.push(entry);
|
|
187
|
+
this.show(entry);
|
|
188
|
+
if (entry.error)
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
this.busy = false;
|
|
194
|
+
this.button.disabled = false;
|
|
195
|
+
}
|
|
196
|
+
this.dispatchEvent(new CustomEvent('firebird-repl-run', { detail: entries, bubbles: true, composed: true }));
|
|
197
|
+
return entries;
|
|
198
|
+
}
|
|
199
|
+
onKey(event) {
|
|
200
|
+
if (event.key === 'Enter' && (event.ctrlKey || event.metaKey)) {
|
|
201
|
+
event.preventDefault();
|
|
202
|
+
void this.run();
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')
|
|
206
|
+
return;
|
|
207
|
+
if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey)
|
|
208
|
+
return;
|
|
209
|
+
const { value, selectionStart, selectionEnd } = this.editor;
|
|
210
|
+
if (selectionStart !== selectionEnd)
|
|
211
|
+
return;
|
|
212
|
+
const onFirstLine = !value.slice(0, selectionStart).includes('\n');
|
|
213
|
+
const onLastLine = !value.slice(selectionEnd).includes('\n');
|
|
214
|
+
if (event.key === 'ArrowUp' && onFirstLine && this.cursor > 0) {
|
|
215
|
+
if (this.cursor === this.history.length)
|
|
216
|
+
this.draft = value;
|
|
217
|
+
this.cursor--;
|
|
218
|
+
}
|
|
219
|
+
else if (event.key === 'ArrowDown' && onLastLine && this.cursor < this.history.length) {
|
|
220
|
+
this.cursor++;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
event.preventDefault();
|
|
226
|
+
this.editor.value = this.cursor === this.history.length ? this.draft : this.history[this.cursor];
|
|
227
|
+
const end = this.editor.value.length;
|
|
228
|
+
this.editor.setSelectionRange(end, end);
|
|
229
|
+
}
|
|
230
|
+
show(entry) {
|
|
231
|
+
const block = el('div', 'entry');
|
|
232
|
+
const sql = el('pre', 'sql');
|
|
233
|
+
sql.textContent = entry.sql;
|
|
234
|
+
block.append(sql);
|
|
235
|
+
if (entry.error) {
|
|
236
|
+
const error = el('pre', 'error');
|
|
237
|
+
error.textContent = entry.error.message;
|
|
238
|
+
block.append(error);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
const fields = entry.fields ?? [];
|
|
242
|
+
const rows = entry.rows ?? [];
|
|
243
|
+
if (fields.length > 0)
|
|
244
|
+
block.append(table(fields, rows));
|
|
245
|
+
const meta = el('p', 'meta');
|
|
246
|
+
meta.textContent = `${summary(entry, fields.length > 0)} · ${entry.ms.toFixed(1)} ms`;
|
|
247
|
+
block.append(meta);
|
|
248
|
+
}
|
|
249
|
+
this.output.append(block);
|
|
250
|
+
this.output.scrollTop = this.output.scrollHeight;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
customElements.define(tag, FirebirdRepl);
|
|
254
|
+
return FirebirdRepl;
|
|
255
|
+
}
|
|
256
|
+
function el(tag, className) {
|
|
257
|
+
const node = document.createElement(tag);
|
|
258
|
+
node.className = className;
|
|
259
|
+
return node;
|
|
260
|
+
}
|
|
261
|
+
function asError(err) {
|
|
262
|
+
return err instanceof Error ? err : new Error(String(err));
|
|
263
|
+
}
|
|
264
|
+
function summary(entry, returnsRows) {
|
|
265
|
+
if (returnsRows) {
|
|
266
|
+
const n = entry.rows?.length ?? 0;
|
|
267
|
+
return `${n} ${n === 1 ? 'row' : 'rows'}`;
|
|
268
|
+
}
|
|
269
|
+
if (entry.affectedRows !== undefined && entry.affectedRows > 0) {
|
|
270
|
+
return `${entry.affectedRows} ${entry.affectedRows === 1 ? 'row' : 'rows'} affected`;
|
|
271
|
+
}
|
|
272
|
+
return 'done';
|
|
273
|
+
}
|
|
274
|
+
function table(fields, rows) {
|
|
275
|
+
const wrap = el('div', 'table');
|
|
276
|
+
const grid = document.createElement('table');
|
|
277
|
+
const head = document.createElement('tr');
|
|
278
|
+
for (const field of fields) {
|
|
279
|
+
const th = document.createElement('th');
|
|
280
|
+
th.textContent = field.name;
|
|
281
|
+
if (field.typeName)
|
|
282
|
+
th.title = field.typeName;
|
|
283
|
+
head.append(th);
|
|
284
|
+
}
|
|
285
|
+
const thead = document.createElement('thead');
|
|
286
|
+
thead.append(head);
|
|
287
|
+
const tbody = document.createElement('tbody');
|
|
288
|
+
for (const row of rows.slice(0, MAX_ROWS)) {
|
|
289
|
+
const tr = document.createElement('tr');
|
|
290
|
+
row.forEach((value) => tr.append(cell(value)));
|
|
291
|
+
tbody.append(tr);
|
|
292
|
+
}
|
|
293
|
+
grid.append(thead, tbody);
|
|
294
|
+
wrap.append(grid);
|
|
295
|
+
if (rows.length > MAX_ROWS) {
|
|
296
|
+
const more = el('p', 'meta');
|
|
297
|
+
more.textContent = `… ${rows.length - MAX_ROWS} more rows not shown`;
|
|
298
|
+
wrap.append(more);
|
|
299
|
+
}
|
|
300
|
+
return wrap;
|
|
301
|
+
}
|
|
302
|
+
/** A value as a table cell, always through textContent. */
|
|
303
|
+
function cell(value) {
|
|
304
|
+
const td = document.createElement('td');
|
|
305
|
+
if (value === null || value === undefined) {
|
|
306
|
+
td.className = 'null';
|
|
307
|
+
td.textContent = 'NULL';
|
|
308
|
+
}
|
|
309
|
+
else if (typeof value === 'number' || typeof value === 'bigint') {
|
|
310
|
+
td.className = 'num';
|
|
311
|
+
td.textContent = String(value);
|
|
312
|
+
}
|
|
313
|
+
else if (value instanceof Uint8Array) {
|
|
314
|
+
const hex = Array.from(value.subarray(0, 32), (b) => b.toString(16).padStart(2, '0')).join('');
|
|
315
|
+
td.textContent = `x'${hex}${value.length > 32 ? '…' : ''}' (${value.length} bytes)`;
|
|
316
|
+
}
|
|
317
|
+
else if (value instanceof Date) {
|
|
318
|
+
td.textContent = value.toISOString();
|
|
319
|
+
}
|
|
320
|
+
else if (typeof value === 'object') {
|
|
321
|
+
td.textContent = JSON.stringify(value);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
td.textContent = String(value);
|
|
325
|
+
}
|
|
326
|
+
return td;
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -112,7 +112,8 @@ export interface TransactionOptions {
|
|
|
112
112
|
/**
|
|
113
113
|
* What each row is.
|
|
114
114
|
*
|
|
115
|
-
* - `'object'` (default) keys every value by its
|
|
115
|
+
* - `'object'` (default) keys every value by its column name as Firebird
|
|
116
|
+
* reports it: upper case unless quoted (`AS "title"` stays `title`).
|
|
116
117
|
* - `'array'` gives the values in column order, positionally.
|
|
117
118
|
*
|
|
118
119
|
* Names live in `fields` either way, so `'array'` loses nothing — it trades
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,4BAA4B;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,iDAAiD;IACjD,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,MAAM,GACN,MAAM,GACN,WAAW,GACX,SAAS,GACT,cAAc,GACd,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;AAEpC;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,UAAU,GACV,0BAA0B,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* (see {@link cdnArtifacts}). Kept equal to package.json's by a test, so a
|
|
4
4
|
* release that bumps one and not the other fails before it is published.
|
|
5
5
|
*/
|
|
6
|
-
export declare const VERSION = "0.
|
|
6
|
+
export declare const VERSION = "0.8.0";
|
|
7
7
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -6,5 +6,5 @@ exports.VERSION = void 0;
|
|
|
6
6
|
* (see {@link cdnArtifacts}). Kept equal to package.json's by a test, so a
|
|
7
7
|
* release that bumps one and not the other fails before it is published.
|
|
8
8
|
*/
|
|
9
|
-
exports.VERSION = '0.
|
|
9
|
+
exports.VERSION = '0.8.0';
|
|
10
10
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* firebird-wasm/vue – composables that keep a component in step with a query.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* // main.ts
|
|
6
|
+
* app.provide(FIREBIRD, db); // or provideFirebird(db) in a setup()
|
|
7
|
+
*
|
|
8
|
+
* // a component's setup()
|
|
9
|
+
* const { rows, error } = useLiveQuery('SELECT id, title FROM todos ORDER BY id',
|
|
10
|
+
* { events: ['todos'] });
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* The statement, its parameters and the events may be refs or getters; the
|
|
14
|
+
* query runs again when what they hold changes. Vue 3.3 or later
|
|
15
|
+
* (`toValue`), a peer dependency the package does not install for you.
|
|
16
|
+
*/
|
|
17
|
+
import type { InjectionKey, MaybeRefOrGetter, Ref, ShallowRef } from 'vue';
|
|
18
|
+
import type { QueryableDatabase } from '../frameworks/query-store';
|
|
19
|
+
import type { SqlFragment } from '../sql-tag';
|
|
20
|
+
import type { QueryParams, Row } from '../types';
|
|
21
|
+
export type { QueryableDatabase } from '../frameworks/query-store';
|
|
22
|
+
/** The injection key of the database: `app.provide(FIREBIRD, db)`. */
|
|
23
|
+
export declare const FIREBIRD: InjectionKey<QueryableDatabase>;
|
|
24
|
+
/** Makes `db` the database of this component and those below it. */
|
|
25
|
+
export declare function provideFirebird(db: QueryableDatabase): void;
|
|
26
|
+
/** The database provided above this component. */
|
|
27
|
+
export declare function useFirebird<D extends QueryableDatabase = QueryableDatabase>(): D;
|
|
28
|
+
/** What `useQuery` and `useLiveQuery` return: refs, for a template to read. */
|
|
29
|
+
export interface QueryRefs<T> {
|
|
30
|
+
/** The latest rows; `undefined` before the first result. */
|
|
31
|
+
rows: ShallowRef<T[] | undefined>;
|
|
32
|
+
/** Why the latest run failed; cleared by the next result. */
|
|
33
|
+
error: ShallowRef<Error | undefined>;
|
|
34
|
+
/** True until the current statement's first result or error. */
|
|
35
|
+
loading: Ref<boolean>;
|
|
36
|
+
/** Run the statement again now. */
|
|
37
|
+
refresh(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/** Options of {@link useQuery}. */
|
|
40
|
+
export interface UseQueryOptions {
|
|
41
|
+
/** A database other than the provided one. */
|
|
42
|
+
db?: QueryableDatabase;
|
|
43
|
+
}
|
|
44
|
+
/** Options of {@link useLiveQuery}. */
|
|
45
|
+
export interface UseLiveQueryOptions extends UseQueryOptions {
|
|
46
|
+
/** Event names whose firing re-runs the statement (`POST_EVENT`). */
|
|
47
|
+
events: MaybeRefOrGetter<readonly string[]>;
|
|
48
|
+
/** Parameters, when the statement is a string with `?` placeholders. */
|
|
49
|
+
params?: MaybeRefOrGetter<QueryParams | undefined>;
|
|
50
|
+
/** How often to poll for events, in milliseconds. @default 250 */
|
|
51
|
+
pollIntervalMs?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Run a statement and keep its rows in refs. It runs again when the SQL or
|
|
55
|
+
* the parameters change by value.
|
|
56
|
+
*
|
|
57
|
+
* ```ts
|
|
58
|
+
* const done = ref(false);
|
|
59
|
+
* const { rows } = useQuery('SELECT * FROM todos WHERE done = ?', () => [done.value]);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function useQuery<T extends Row = Row>(query: MaybeRefOrGetter<string | SqlFragment>, params?: MaybeRefOrGetter<QueryParams | undefined>, options?: UseQueryOptions): QueryRefs<T>;
|
|
63
|
+
/**
|
|
64
|
+
* Like {@link useQuery}, and the statement runs again each time one of
|
|
65
|
+
* `events` fires: `FirebirdBrowser.live()` as a composable.
|
|
66
|
+
*/
|
|
67
|
+
export declare function useLiveQuery<T extends Row = Row>(query: MaybeRefOrGetter<string | SqlFragment>, options: UseLiveQueryOptions): QueryRefs<T>;
|
|
68
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAE3E,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,sEAAsE;AACtE,eAAO,MAAM,QAAQ,EAAE,YAAY,CAAC,iBAAiB,CAA2B,CAAC;AAEjF,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI,CAE3D;AAED,kDAAkD;AAClD,wBAAgB,WAAW,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,KAAK,CAAC,CAShF;AAED,+EAA+E;AAC/E,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,4DAA4D;IAC5D,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAClC,6DAA6D;IAC7D,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACrC,gEAAgE;IAChE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,mCAAmC;IACnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,EAAE,CAAC,EAAE,iBAAiB,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,qEAAqE;IACrE,MAAM,EAAE,gBAAgB,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5C,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACnD,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,EAC1C,KAAK,EAAE,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,EAC7C,MAAM,CAAC,EAAE,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,EAClD,OAAO,GAAE,eAAoB,GAC5B,SAAS,CAAC,CAAC,CAAC,CAEd;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,EAC9C,KAAK,EAAE,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,EAC7C,OAAO,EAAE,mBAAmB,GAC3B,SAAS,CAAC,CAAC,CAAC,CAQd"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* firebird-wasm/vue – composables that keep a component in step with a query.
|
|
4
|
+
*
|
|
5
|
+
* ```ts
|
|
6
|
+
* // main.ts
|
|
7
|
+
* app.provide(FIREBIRD, db); // or provideFirebird(db) in a setup()
|
|
8
|
+
*
|
|
9
|
+
* // a component's setup()
|
|
10
|
+
* const { rows, error } = useLiveQuery('SELECT id, title FROM todos ORDER BY id',
|
|
11
|
+
* { events: ['todos'] });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* The statement, its parameters and the events may be refs or getters; the
|
|
15
|
+
* query runs again when what they hold changes. Vue 3.3 or later
|
|
16
|
+
* (`toValue`), a peer dependency the package does not install for you.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.FIREBIRD = void 0;
|
|
20
|
+
exports.provideFirebird = provideFirebird;
|
|
21
|
+
exports.useFirebird = useFirebird;
|
|
22
|
+
exports.useQuery = useQuery;
|
|
23
|
+
exports.useLiveQuery = useLiveQuery;
|
|
24
|
+
const vue_1 = require("vue");
|
|
25
|
+
const query_store_1 = require("../frameworks/query-store");
|
|
26
|
+
/** The injection key of the database: `app.provide(FIREBIRD, db)`. */
|
|
27
|
+
exports.FIREBIRD = Symbol('firebird-wasm');
|
|
28
|
+
/** Makes `db` the database of this component and those below it. */
|
|
29
|
+
function provideFirebird(db) {
|
|
30
|
+
(0, vue_1.provide)(exports.FIREBIRD, db);
|
|
31
|
+
}
|
|
32
|
+
/** The database provided above this component. */
|
|
33
|
+
function useFirebird() {
|
|
34
|
+
const db = (0, vue_1.inject)(exports.FIREBIRD, null);
|
|
35
|
+
if (db === null) {
|
|
36
|
+
throw new Error('useFirebird() found no database: app.provide(FIREBIRD, db) or provideFirebird(db) ' +
|
|
37
|
+
'above this component, or pass { db } to the composable');
|
|
38
|
+
}
|
|
39
|
+
return db;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Run a statement and keep its rows in refs. It runs again when the SQL or
|
|
43
|
+
* the parameters change by value.
|
|
44
|
+
*
|
|
45
|
+
* ```ts
|
|
46
|
+
* const done = ref(false);
|
|
47
|
+
* const { rows } = useQuery('SELECT * FROM todos WHERE done = ?', () => [done.value]);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
function useQuery(query, params, options = {}) {
|
|
51
|
+
return useStore(options.db, query, params, () => ({}));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Like {@link useQuery}, and the statement runs again each time one of
|
|
55
|
+
* `events` fires: `FirebirdBrowser.live()` as a composable.
|
|
56
|
+
*/
|
|
57
|
+
function useLiveQuery(query, options) {
|
|
58
|
+
return useStore(options.db, query, options.params, () => {
|
|
59
|
+
const events = (0, vue_1.toValue)(options.events);
|
|
60
|
+
if (events.length === 0) {
|
|
61
|
+
throw new RangeError('useLiveQuery() needs at least one event name; useQuery() runs a statement once');
|
|
62
|
+
}
|
|
63
|
+
return { events: [...events], pollIntervalMs: options.pollIntervalMs };
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function useStore(explicitDb, query, params, storeOptions) {
|
|
67
|
+
const db = explicitDb ?? useFirebird();
|
|
68
|
+
const rows = (0, vue_1.shallowRef)(undefined);
|
|
69
|
+
const error = (0, vue_1.shallowRef)(undefined);
|
|
70
|
+
const loading = (0, vue_1.ref)(true);
|
|
71
|
+
let store;
|
|
72
|
+
let unsubscribe;
|
|
73
|
+
const target = () => {
|
|
74
|
+
const statement = (0, query_store_1.resolveStatement)((0, vue_1.toValue)(query), (0, vue_1.toValue)(params));
|
|
75
|
+
const options = storeOptions();
|
|
76
|
+
return { statement, options, key: (0, query_store_1.queryKey)(statement.sql, statement.params, options) };
|
|
77
|
+
};
|
|
78
|
+
// Watching the key, not the statement: a getter returning a new parameter
|
|
79
|
+
// array with the same values must not run the query again.
|
|
80
|
+
(0, vue_1.watch)(() => target().key, () => {
|
|
81
|
+
const { statement, options } = target();
|
|
82
|
+
const next = new query_store_1.QueryStore(db, statement.sql, statement.params, options, rows.value);
|
|
83
|
+
unsubscribe?.();
|
|
84
|
+
store?.stop();
|
|
85
|
+
store = next;
|
|
86
|
+
const sync = () => {
|
|
87
|
+
const state = next.getSnapshot();
|
|
88
|
+
rows.value = state.rows;
|
|
89
|
+
error.value = state.error;
|
|
90
|
+
loading.value = state.loading;
|
|
91
|
+
};
|
|
92
|
+
unsubscribe = next.subscribe(sync);
|
|
93
|
+
sync();
|
|
94
|
+
next.start();
|
|
95
|
+
}, { immediate: true });
|
|
96
|
+
(0, vue_1.onScopeDispose)(() => {
|
|
97
|
+
unsubscribe?.();
|
|
98
|
+
store?.stop();
|
|
99
|
+
});
|
|
100
|
+
return {
|
|
101
|
+
rows,
|
|
102
|
+
error,
|
|
103
|
+
loading,
|
|
104
|
+
refresh: () => store?.refresh() ?? Promise.resolve(),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "firebird-wasm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Firebird embedded database in WebAssembly — runs in the browser and Node, like PGlite for PostgreSQL",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,7 +13,32 @@
|
|
|
13
13
|
"./browser": {
|
|
14
14
|
"types": "./dist/browser/index.d.ts",
|
|
15
15
|
"default": "./dist/browser/index.js"
|
|
16
|
-
}
|
|
16
|
+
},
|
|
17
|
+
"./browser/worker-entry": {
|
|
18
|
+
"types": "./dist/browser/worker-entry.d.ts",
|
|
19
|
+
"default": "./dist/browser/worker-entry.js"
|
|
20
|
+
},
|
|
21
|
+
"./react": {
|
|
22
|
+
"types": "./dist/react/index.d.ts",
|
|
23
|
+
"default": "./dist/react/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./vue": {
|
|
26
|
+
"types": "./dist/vue/index.d.ts",
|
|
27
|
+
"default": "./dist/vue/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./repl": {
|
|
30
|
+
"types": "./dist/repl/index.d.ts",
|
|
31
|
+
"default": "./dist/repl/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./electric": {
|
|
34
|
+
"types": "./dist/electric/index.d.ts",
|
|
35
|
+
"default": "./dist/electric/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./electric-server": {
|
|
38
|
+
"types": "./dist/electric-server/index.d.ts",
|
|
39
|
+
"default": "./dist/electric-server/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./package.json": "./package.json"
|
|
17
42
|
},
|
|
18
43
|
"scripts": {
|
|
19
44
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -40,15 +65,37 @@
|
|
|
40
65
|
"dependencies": {
|
|
41
66
|
"node-firebird-driver": "^3.5.0"
|
|
42
67
|
},
|
|
68
|
+
"peerDependencies": {
|
|
69
|
+
"react": ">=18",
|
|
70
|
+
"vue": ">=3.3",
|
|
71
|
+
"@electric-sql/client": ">=1.5"
|
|
72
|
+
},
|
|
73
|
+
"peerDependenciesMeta": {
|
|
74
|
+
"react": {
|
|
75
|
+
"optional": true
|
|
76
|
+
},
|
|
77
|
+
"vue": {
|
|
78
|
+
"optional": true
|
|
79
|
+
},
|
|
80
|
+
"@electric-sql/client": {
|
|
81
|
+
"optional": true
|
|
82
|
+
}
|
|
83
|
+
},
|
|
43
84
|
"devDependencies": {
|
|
85
|
+
"@electric-sql/client": "^1.5.28",
|
|
44
86
|
"@types/jest": "^29.5.12",
|
|
45
87
|
"@types/node": "^20.14.10",
|
|
88
|
+
"@types/react": "^19.2.2",
|
|
89
|
+
"@types/react-dom": "^19.2.2",
|
|
46
90
|
"@typescript-eslint/eslint-plugin": "^7.17.0",
|
|
47
91
|
"@typescript-eslint/parser": "^7.17.0",
|
|
48
92
|
"eslint": "^8.57.0",
|
|
49
93
|
"jest": "^29.7.0",
|
|
94
|
+
"react": "^19.2.0",
|
|
95
|
+
"react-dom": "^19.2.0",
|
|
50
96
|
"ts-jest": "^29.2.2",
|
|
51
|
-
"typescript": "^5.5.3"
|
|
97
|
+
"typescript": "^5.5.3",
|
|
98
|
+
"vue": "^3.5.22"
|
|
52
99
|
},
|
|
53
100
|
"jest": {
|
|
54
101
|
"preset": "ts-jest",
|