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.
Files changed (72) hide show
  1. package/CHANGELOG.md +141 -0
  2. package/README.md +1 -1
  3. package/dist/.tsbuildinfo.build +1 -1
  4. package/dist/browser/engine-transport.d.ts.map +1 -1
  5. package/dist/browser/engine-transport.js +5 -8
  6. package/dist/browser/engine-transport.js.map +1 -1
  7. package/dist/browser/firebird-browser.d.ts.map +1 -1
  8. package/dist/browser/firebird-browser.js +59 -20
  9. package/dist/browser/firebird-browser.js.map +1 -1
  10. package/dist/browser/index.d.ts +2 -2
  11. package/dist/browser/index.d.ts.map +1 -1
  12. package/dist/browser/index.js +4 -2
  13. package/dist/browser/index.js.map +1 -1
  14. package/dist/browser/serve-engine.d.ts +30 -0
  15. package/dist/browser/serve-engine.d.ts.map +1 -0
  16. package/dist/browser/serve-engine.js +93 -0
  17. package/dist/browser/serve-engine.js.map +1 -0
  18. package/dist/browser/worker-entry.d.ts +8 -22
  19. package/dist/browser/worker-entry.d.ts.map +1 -1
  20. package/dist/browser/worker-entry.js +18 -79
  21. package/dist/browser/worker-entry.js.map +1 -1
  22. package/dist/electric/apply.d.ts +53 -0
  23. package/dist/electric/apply.d.ts.map +1 -0
  24. package/dist/electric/apply.js +88 -0
  25. package/dist/electric/apply.js.map +1 -0
  26. package/dist/electric/index.d.ts +83 -0
  27. package/dist/electric/index.d.ts.map +1 -0
  28. package/dist/electric/index.js +210 -0
  29. package/dist/electric/index.js.map +1 -0
  30. package/dist/electric/values.d.ts +65 -0
  31. package/dist/electric/values.d.ts.map +1 -0
  32. package/dist/electric/values.js +243 -0
  33. package/dist/electric/values.js.map +1 -0
  34. package/dist/electric-server/capture.d.ts +36 -0
  35. package/dist/electric-server/capture.d.ts.map +1 -0
  36. package/dist/electric-server/capture.js +148 -0
  37. package/dist/electric-server/capture.js.map +1 -0
  38. package/dist/electric-server/catalog.d.ts +59 -0
  39. package/dist/electric-server/catalog.d.ts.map +1 -0
  40. package/dist/electric-server/catalog.js +122 -0
  41. package/dist/electric-server/catalog.js.map +1 -0
  42. package/dist/electric-server/index.d.ts +58 -0
  43. package/dist/electric-server/index.d.ts.map +1 -0
  44. package/dist/electric-server/index.js +348 -0
  45. package/dist/electric-server/index.js.map +1 -0
  46. package/dist/firebird.d.ts +3 -1
  47. package/dist/firebird.d.ts.map +1 -1
  48. package/dist/firebird.js +250 -22
  49. package/dist/firebird.js.map +1 -1
  50. package/dist/frameworks/query-store.d.ts +99 -0
  51. package/dist/frameworks/query-store.d.ts.map +1 -0
  52. package/dist/frameworks/query-store.js +166 -0
  53. package/dist/frameworks/query-store.js.map +1 -0
  54. package/dist/react/index.d.ts +68 -0
  55. package/dist/react/index.d.ts.map +1 -0
  56. package/dist/react/index.js +92 -0
  57. package/dist/react/index.js.map +1 -0
  58. package/dist/repl/index.d.ts +76 -0
  59. package/dist/repl/index.d.ts.map +1 -0
  60. package/dist/repl/index.js +328 -0
  61. package/dist/repl/index.js.map +1 -0
  62. package/dist/types.d.ts +2 -1
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/version.d.ts +1 -1
  65. package/dist/version.js +1 -1
  66. package/dist/vue/index.d.ts +68 -0
  67. package/dist/vue/index.d.ts.map +1 -0
  68. package/dist/vue/index.js +107 -0
  69. package/dist/vue/index.js.map +1 -0
  70. package/dist/wasm/firebird-embedded-st.wasm +0 -0
  71. package/dist/wasm/firebird-embedded.wasm +0 -0
  72. package/package.json +50 -3
package/dist/firebird.js CHANGED
@@ -144,7 +144,7 @@ class FirebirdLite {
144
144
  let failed = true;
145
145
  try {
146
146
  const columnLabels = await stmt.columnLabels;
147
- fields = columnLabels.map((label) => ({ name: label.toUpperCase() }));
147
+ fields = columnLabels.map((label) => ({ name: label }));
148
148
  rows = shapeRows(await fetchRows(stmt, transaction, statement.params, fields.length), fields, rowMode);
149
149
  failed = false;
150
150
  }
@@ -195,7 +195,7 @@ class FirebirdLite {
195
195
  return undefined;
196
196
  }
197
197
  const fields = (await stmt.columnLabels).map((label) => ({
198
- name: label.toUpperCase(),
198
+ name: label,
199
199
  }));
200
200
  const rawRows = await fetchRows(stmt, transaction, params, fields.length);
201
201
  return { rows: shapeRows(rawRows, fields, rowMode), fields };
@@ -265,7 +265,7 @@ class FirebirdLite {
265
265
  const type = await stmt.type;
266
266
  return {
267
267
  params: undefined,
268
- fields: columnLabels.map((label) => ({ name: label.toUpperCase() })),
268
+ fields: columnLabels.map((label) => ({ name: label })),
269
269
  statementType: (0, statement_types_1.statementKind)(type),
270
270
  hasResultSet: stmt.hasResultSet,
271
271
  };
@@ -383,7 +383,7 @@ class FirebirdTransaction {
383
383
  const lease = await this.statements.acquire(this.transaction, statement.sql);
384
384
  let failed = true;
385
385
  try {
386
- await lease.stmt.execute(this.transaction, statement.params);
386
+ await lease.stmt.execute(this.transaction, await bindParams(lease.stmt, this.transaction, statement.params));
387
387
  failed = false;
388
388
  }
389
389
  finally {
@@ -415,7 +415,7 @@ class FirebirdTransaction {
415
415
  }
416
416
  else {
417
417
  for (const row of rows) {
418
- await lease.stmt.execute(this.transaction, row);
418
+ await lease.stmt.execute(this.transaction, await bindParams(lease.stmt, this.transaction, row));
419
419
  }
420
420
  }
421
421
  failed = false;
@@ -463,7 +463,7 @@ class FirebirdTransaction {
463
463
  for (let at = 0; at < rows.length;) {
464
464
  const chunk = rows.slice(at, at + size);
465
465
  if (chunk.length === 1) {
466
- await single.execute(this.transaction, chunk[0]);
466
+ await single.execute(this.transaction, await bindParams(single, this.transaction, chunk[0]));
467
467
  at += 1;
468
468
  continue;
469
469
  }
@@ -482,11 +482,11 @@ class FirebirdTransaction {
482
482
  }
483
483
  }
484
484
  try {
485
- await current.lease.stmt.execute(this.transaction, chunk.flat());
485
+ await current.lease.stmt.execute(this.transaction, await bindParams(current.lease.stmt, this.transaction, chunk.flat()));
486
486
  }
487
487
  catch {
488
488
  for (const row of chunk) {
489
- await single.execute(this.transaction, row);
489
+ await single.execute(this.transaction, await bindParams(single, this.transaction, row));
490
490
  }
491
491
  }
492
492
  at += chunk.length;
@@ -510,7 +510,7 @@ class FirebirdTransaction {
510
510
  try {
511
511
  const columnLabels = await stmt.columnLabels;
512
512
  const fields = columnLabels.map((label) => ({
513
- name: label.toUpperCase(),
513
+ name: label,
514
514
  }));
515
515
  const rawRows = await fetchRows(stmt, this.transaction, statement.params, fields.length);
516
516
  failed = false;
@@ -528,14 +528,31 @@ exports.FirebirdTransaction = FirebirdTransaction;
528
528
  /** Rows per `EXECUTE BLOCK` in `execBatch`: a single-table statement uses
529
529
  * one of the engine's 256 contexts per row, so 200 leaves room. */
530
530
  const BLOCK_ROWS = 200;
531
+ const bindings = new WeakMap();
532
+ async function bindingOf(stmt) {
533
+ let binding = bindings.get(stmt);
534
+ if (!binding) {
535
+ // Read before anything here rewrites the message; a statement is used
536
+ // by one call at a time, so nothing else reads it meanwhile.
537
+ binding = { params: await readInputParams(stmt), variants: new Map(), current: '' };
538
+ bindings.set(stmt, binding);
539
+ }
540
+ return binding;
541
+ }
531
542
  /**
532
- * The driver's description of a statement's `?` parameters: its input
533
- * metadata, after the driver's own rewrites (integers bound as doubles,
534
- * CHAR as VARCHAR). Not public API: read from the native statement's
535
- * fields, and `undefined` whenever they are not there, so a driver that
536
- * changes shape makes `execBatch` fall back to one execute per row.
543
+ * A statement's `?` parameters: its input metadata as the driver rewrote it
544
+ * (CHAR as VARCHAR, the zoned types in their `_EX` forms), except that an
545
+ * integer or NUMERIC parameter, which the driver binds as a double, is
546
+ * described as prepared: SMALLINT, INTEGER or BIGINT, with its scale. That is
547
+ * what `execBatch` declares a block's parameters as, and what tells a string
548
+ * to send as text. `undefined` whenever the internals are not there, so a
549
+ * driver that changes shape makes `execBatch` fall back to one execute per
550
+ * row and strings go to the driver as they are.
537
551
  */
538
552
  async function inputParams(stmt) {
553
+ return (await bindingOf(stmt)).params;
554
+ }
555
+ async function readInputParams(stmt) {
539
556
  const internal = stmt;
540
557
  const meta = internal.inMetadata;
541
558
  const client = internal.attachment?.client;
@@ -544,23 +561,233 @@ async function inputParams(stmt) {
544
561
  }
545
562
  try {
546
563
  return await client.statusAction(async (status) => {
564
+ const read = (m, i) => ({
565
+ type: m.getTypeSync(status, i),
566
+ subType: m.getSubTypeSync(status, i),
567
+ length: m.getLengthSync(status, i),
568
+ scale: m.getScaleSync(status, i),
569
+ charSet: m.getCharSetSync(status, i),
570
+ });
547
571
  const params = [];
548
- for (let i = 0, n = meta.getCountSync(status); i < n; i++) {
549
- params.push({
550
- type: meta.getTypeSync(status, i),
551
- subType: meta.getSubTypeSync(status, i),
552
- length: meta.getLengthSync(status, i),
553
- scale: meta.getScaleSync(status, i),
554
- charSet: meta.getCharSetSync(status, i),
572
+ for (let i = 0, n = meta.getCountSync(status); i < n; i++)
573
+ params.push(read(meta, i));
574
+ if (!params.some((p) => (p.type & ~1) === SQL_DOUBLE))
575
+ return params;
576
+ // The metadata as prepared, before the driver's rewrite.
577
+ const prepared = await internal.statementHandle?.getInputMetadataAsync?.(status);
578
+ if (!prepared)
579
+ return params;
580
+ try {
581
+ return params.map((p, i) => {
582
+ if ((p.type & ~1) !== SQL_DOUBLE)
583
+ return p;
584
+ const as = read(prepared, i);
585
+ return INTEGER_TYPES.has(as.type & ~1) ? as : p;
555
586
  });
556
587
  }
557
- return params;
588
+ finally {
589
+ prepared.releaseSync();
590
+ }
558
591
  });
559
592
  }
560
593
  catch {
561
594
  return undefined;
562
595
  }
563
596
  }
597
+ /** `SQL_BLOB`, without the nullable bit. */
598
+ const SQL_BLOB = 520;
599
+ /** `SQL_DOUBLE`: what the driver binds every integer and NUMERIC as. */
600
+ const SQL_DOUBLE = 480;
601
+ /** SMALLINT, INTEGER, BIGINT, and NUMERIC / DECIMAL kept in them. */
602
+ const INTEGER_TYPES = new Set([500, 496, 580]);
603
+ /** `SQL_VARYING`. */
604
+ const SQL_VARYING = 448;
605
+ /** Character set id of UTF8. */
606
+ const CS_UTF8 = 4;
607
+ /**
608
+ * DATE, TIME, TIMESTAMP, and TIME / TIMESTAMP WITH TIME ZONE in both forms
609
+ * (the driver rewrites the zoned ones to their `_EX` forms).
610
+ */
611
+ const DATE_TIME_TYPES = new Set([570, 560, 510, 32756, 32754, 32750, 32748]);
612
+ /** The types a string is sent to as text, for Firebird to convert. */
613
+ const TEXT_TYPES = new Set([...DATE_TIME_TYPES, ...INTEGER_TYPES]);
614
+ /** Bytes a value takes as text: a timestamp with the longest zone name fits twice. */
615
+ const TEXT_LENGTH = 128;
616
+ /**
617
+ * The parameters as the driver will take them, the statement made ready to
618
+ * take them.
619
+ *
620
+ * A string or Buffer bound to a BLOB parameter is written to a new blob here,
621
+ * and the blob passed on. The driver takes a Buffer or a Blob there and
622
+ * refused a string ("Unrecognized type used as BLOB"); and given a Buffer,
623
+ * it writes the blob while encoding the other parameters, under a
624
+ * `Promise.all` that rejects as soon as one of them fails, with the blob's
625
+ * native calls still running. The transaction is then rolled back under
626
+ * them, and the process died with a segmentation fault: a date given as a
627
+ * string beside a BLOB did it, so did a string too long for its VARCHAR.
628
+ * Written first, the blob is done before the driver encodes anything, and
629
+ * nothing is in flight when a parameter fails.
630
+ *
631
+ * A string bound to a DATE, TIME or TIMESTAMP parameter (with or without a
632
+ * time zone) is sent as text, and Firebird converts it: the driver takes a
633
+ * JS `Date` there (`date.getFullYear is not a function` for a string),
634
+ * which holds milliseconds where Firebird keeps 1/10000 s, and is read in
635
+ * the process's time zone. The browser engine binds every parameter as text,
636
+ * so the same call now means the same there and here, to the last digit.
637
+ * A `Date` still goes the driver's way.
638
+ *
639
+ * So does a string bound to a SMALLINT, INTEGER, BIGINT or NUMERIC parameter:
640
+ * the driver binds those as doubles, and `'9007199254740993'` arrived as
641
+ * 9007199254740992, `'0.1'` in a NUMERIC(18,17) as 0.10000000000000001.
642
+ * A JS number still goes as a double (it is one); a string to a DOUBLE
643
+ * PRECISION or FLOAT parameter is still converted by JS, which rounds
644
+ * correctly.
645
+ */
646
+ async function bindParams(stmt, transaction, params) {
647
+ const binding = bindings.get(stmt);
648
+ if (!params.some((p) => typeof p === 'string' || Buffer.isBuffer(p)) && (!binding || binding.current === '')) {
649
+ return params;
650
+ }
651
+ const described = (binding ?? (await bindingOf(stmt))).params;
652
+ if (!described)
653
+ return params;
654
+ const text = [];
655
+ const bound = [...params];
656
+ for (let i = 0; i < bound.length; i++) {
657
+ const p = bound[i];
658
+ const type = (described[i]?.type ?? 0) & ~1;
659
+ if (type === SQL_BLOB && (typeof p === 'string' || Buffer.isBuffer(p))) {
660
+ bound[i] = await writeBlob(stmt, transaction, typeof p === 'string' ? Buffer.from(p, 'utf8') : p);
661
+ }
662
+ else if (typeof p === 'string' && TEXT_TYPES.has(type)) {
663
+ text.push(i);
664
+ }
665
+ }
666
+ if (!(await useMessage(stmt, text)))
667
+ return params;
668
+ return bound;
669
+ }
670
+ /** A new blob holding `bytes`, in `transaction`; `bytes` itself where the driver's internals are not there. */
671
+ async function writeBlob(stmt, transaction, bytes) {
672
+ const attachment = stmt.attachment;
673
+ if (typeof attachment?.createBlob !== 'function')
674
+ return bytes;
675
+ const stream = await attachment.createBlob(transaction);
676
+ try {
677
+ await stream.write(bytes);
678
+ }
679
+ catch (err) {
680
+ await stream.cancel().catch(() => undefined);
681
+ throw err;
682
+ }
683
+ await stream.close();
684
+ return stream.blob;
685
+ }
686
+ /**
687
+ * Put in place the input message that takes the parameters at `positions`
688
+ * as VARCHAR text and every other as the driver prepared it, making it the
689
+ * first time. False when that cannot be done: the driver's internals are not
690
+ * what this expects.
691
+ *
692
+ * The message is what the driver encodes into and what Firebird reads from;
693
+ * Firebird converts each value from the message's type to the parameter's,
694
+ * which is how the driver itself binds every integer as a double. A
695
+ * statement is used by one call at a time (the cache leases it), so the
696
+ * message in place is the one this call chose.
697
+ */
698
+ async function useMessage(stmt, positions) {
699
+ const binding = await bindingOf(stmt);
700
+ const key = positions.join(',');
701
+ if (binding.current === key)
702
+ return true;
703
+ const internal = stmt;
704
+ let message = key === '' ? binding.original : binding.variants.get(key);
705
+ if (!message) {
706
+ const made = await makeTextMessage(internal, binding, positions);
707
+ if (!made)
708
+ return positions.length === 0;
709
+ if (!binding.original) {
710
+ binding.original = {
711
+ inMetadata: internal.inMetadata,
712
+ inBuffer: internal.inBuffer,
713
+ dataWriter: internal.dataWriter,
714
+ };
715
+ releaseMessagesOnDispose(internal, binding);
716
+ }
717
+ binding.variants.set(key, made);
718
+ message = made;
719
+ }
720
+ internal.inMetadata = message.inMetadata;
721
+ internal.inBuffer = message.inBuffer;
722
+ internal.dataWriter = message.dataWriter;
723
+ binding.current = key;
724
+ return true;
725
+ }
726
+ let driverUtil;
727
+ async function makeTextMessage(internal, binding, positions) {
728
+ if (driverUtil === undefined) {
729
+ try {
730
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
731
+ driverUtil = require('node-firebird-driver-native/dist/lib/fb-util');
732
+ if (typeof driverUtil?.createDataWriter !== 'function' || typeof driverUtil.createDescriptors !== 'function') {
733
+ driverUtil = null;
734
+ }
735
+ }
736
+ catch {
737
+ driverUtil = null;
738
+ }
739
+ }
740
+ const util = driverUtil;
741
+ // Made from the driver's own message, whichever is in place.
742
+ const base = binding.original?.inMetadata ?? internal.inMetadata;
743
+ const client = internal.attachment?.client;
744
+ if (!util || !base || typeof base.getBuilderSync !== 'function' || typeof client?.statusAction !== 'function') {
745
+ return undefined;
746
+ }
747
+ return client.statusAction(async (status) => {
748
+ const builder = base.getBuilderSync(status);
749
+ let inMetadata;
750
+ try {
751
+ for (const i of positions) {
752
+ builder.setTypeSync(status, i, SQL_VARYING);
753
+ builder.setSubTypeSync(status, i, 0);
754
+ builder.setLengthSync(status, i, TEXT_LENGTH);
755
+ builder.setCharSetSync(status, i, CS_UTF8);
756
+ builder.setScaleSync(status, i, 0);
757
+ }
758
+ inMetadata = builder.getMetadataSync(status);
759
+ }
760
+ finally {
761
+ builder.releaseSync();
762
+ }
763
+ return {
764
+ inMetadata,
765
+ inBuffer: new Uint8Array(inMetadata.getMessageLengthSync(status)),
766
+ dataWriter: util.createDataWriter(util.createDescriptors(status, inMetadata)),
767
+ };
768
+ });
769
+ }
770
+ /**
771
+ * Hand the driver back its own message when the statement is disposed, for
772
+ * it to release as it always does, and release the ones made here.
773
+ */
774
+ function releaseMessagesOnDispose(internal, binding) {
775
+ const dispose = internal.internalDispose;
776
+ if (typeof dispose !== 'function')
777
+ return;
778
+ internal.internalDispose = async function () {
779
+ if (binding.original) {
780
+ internal.inMetadata = binding.original.inMetadata;
781
+ internal.inBuffer = binding.original.inBuffer;
782
+ internal.dataWriter = binding.original.dataWriter;
783
+ }
784
+ for (const message of binding.variants.values())
785
+ message.inMetadata.releaseSync();
786
+ binding.variants.clear();
787
+ binding.current = '';
788
+ return dispose.call(this);
789
+ };
790
+ }
564
791
  /** Character sets by id, read once per connection. */
565
792
  const charsetCache = new WeakMap();
566
793
  async function characterSets(attachment, transaction) {
@@ -685,6 +912,7 @@ class StatementCache {
685
912
  * runs and returns nothing.
686
913
  */
687
914
  async function fetchRows(stmt, transaction, params, columnCount) {
915
+ params = await bindParams(stmt, transaction, params);
688
916
  if (stmt.hasResultSet) {
689
917
  const resultSet = await stmt.executeQuery(transaction, params);
690
918
  // A failing fetch must still close.
@@ -1 +1 @@
1
- {"version":3,"file":"firebird.js","sourceRoot":"","sources":["../src/firebird.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firebird.js","sourceRoot":"","sources":["../src/firebird.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * query-store.ts – a query's rows as a value a UI framework can watch.
3
+ *
4
+ * The React and Vue bindings are thin: each wraps a {@link QueryStore}, which
5
+ * runs a statement once (`query()`) or keeps it running (`live()`), and holds
6
+ * the latest `{ rows, error, loading }` for whoever subscribed. What both
7
+ * frameworks get wrong in the same way without it lives here once: a result
8
+ * that arrives after the component moved on to another query, a live query
9
+ * that resolves after it was stopped, and a stop and restart of the same store
10
+ * (React's StrictMode does exactly that on every mount).
11
+ */
12
+ import type { SqlFragment } from '../sql-tag';
13
+ import type { QueryParams, QueryResult, Row } from '../types';
14
+ import type { LiveQuery, LiveQueryOptions } from '../browser/firebird-browser';
15
+ /**
16
+ * What the store needs of a database: `FirebirdBrowser` has both.
17
+ *
18
+ * Structural, so a test can hand it a stand-in, and so the bindings import no
19
+ * engine code of their own.
20
+ */
21
+ export interface QueryableDatabase {
22
+ query<T extends Row = Row>(sql: string, params?: QueryParams): Promise<QueryResult<T>>;
23
+ live<T extends Row = Row>(sql: string, options: LiveQueryOptions, onChange: (rows: T[], result: QueryResult<T>) => void): Promise<LiveQuery<T>>;
24
+ }
25
+ /** The state a component renders from. */
26
+ export interface QueryState<T> {
27
+ /**
28
+ * The latest rows, or `undefined` before the first result. While a new
29
+ * query (other SQL or parameters) loads, the previous one's rows stay here,
30
+ * so a list does not blank out between two results.
31
+ */
32
+ readonly rows: T[] | undefined;
33
+ /** Why the latest run failed; cleared by the next result. */
34
+ readonly error: Error | undefined;
35
+ /** True until this query's first result or error. */
36
+ readonly loading: boolean;
37
+ }
38
+ /** Options shared by the bindings' hooks. */
39
+ export interface QueryStoreOptions {
40
+ /**
41
+ * Event names to watch, as posted by `POST_EVENT`: with any, the statement
42
+ * runs again each time one fires (`FirebirdBrowser.live()`). Without, it
43
+ * runs once.
44
+ */
45
+ events?: readonly string[];
46
+ /** As `LiveQueryOptions.pollIntervalMs`. */
47
+ pollIntervalMs?: number;
48
+ }
49
+ /**
50
+ * One statement with its parameters, run against one database.
51
+ *
52
+ * Immutable in what it runs: other SQL or parameters make a new store, which
53
+ * is how a stale result can never land in the wrong one.
54
+ */
55
+ export declare class QueryStore<T extends Row = Row> {
56
+ private readonly db;
57
+ readonly sql: string;
58
+ readonly params: QueryParams;
59
+ private readonly options;
60
+ private state;
61
+ private readonly listeners;
62
+ /** Bumped by every start() and stop(); a result from an older run is dropped. */
63
+ private generation;
64
+ private running;
65
+ private live;
66
+ /** The one-off run in flight, settled once its result or error is applied. */
67
+ private pending;
68
+ constructor(db: QueryableDatabase, sql: string, params: QueryParams, options?: QueryStoreOptions, placeholder?: T[]);
69
+ /** For `useSyncExternalStore`: register a listener, get its removal. */
70
+ readonly subscribe: (listener: () => void) => (() => void);
71
+ /** The current state; the same object until something changes. */
72
+ readonly getSnapshot: () => QueryState<T>;
73
+ /** Run the statement, and with events keep running it. Idempotent. */
74
+ start(): void;
75
+ /** Stop watching; results still in flight are dropped. start() may follow. */
76
+ stop(): void;
77
+ /** Run the statement again now, without waiting for an event. */
78
+ readonly refresh: () => Promise<void>;
79
+ private fail;
80
+ private set;
81
+ }
82
+ /**
83
+ * The statement a hook was given, resolved: SQL text and parameters from a
84
+ * string with parameters, or from an `sql` tagged template.
85
+ */
86
+ export declare function resolveStatement(query: string | SqlFragment, params: QueryParams | undefined): {
87
+ sql: string;
88
+ params: QueryParams;
89
+ };
90
+ /**
91
+ * A string that is equal exactly when two calls would run the same thing.
92
+ *
93
+ * Components pass a fresh parameter array on every render; comparing by
94
+ * identity would restart the query each time. Types JSON would merge are
95
+ * kept apart: a Date and its ISO string, a bigint and a number, bytes and an
96
+ * array of numbers.
97
+ */
98
+ export declare function queryKey(sql: string, params: QueryParams, options?: QueryStoreOptions): string;
99
+ //# sourceMappingURL=query-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-store.d.ts","sourceRoot":"","sources":["../../src/frameworks/query-store.ts"],"names":[],"mappings":"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"}