camusdb 0.2.1 → 0.4.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 (88) hide show
  1. package/README.md +92 -5
  2. package/dist/auth/rest-login-client.d.ts.map +1 -1
  3. package/dist/auth/rest-login-client.js +15 -1
  4. package/dist/auth/rest-login-client.js.map +1 -1
  5. package/dist/auth/token-provider.d.ts +14 -0
  6. package/dist/auth/token-provider.d.ts.map +1 -1
  7. package/dist/auth/token-provider.js +39 -11
  8. package/dist/auth/token-provider.js.map +1 -1
  9. package/dist/client.d.ts +84 -9
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +156 -14
  12. package/dist/client.js.map +1 -1
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +5 -0
  15. package/dist/config.js.map +1 -1
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/json.d.ts.map +1 -1
  21. package/dist/json.js +42 -8
  22. package/dist/json.js.map +1 -1
  23. package/dist/own-record.d.ts +16 -0
  24. package/dist/own-record.d.ts.map +1 -0
  25. package/dist/own-record.js +18 -0
  26. package/dist/own-record.js.map +1 -0
  27. package/dist/query-stream.d.ts +4 -4
  28. package/dist/query-stream.js +4 -4
  29. package/dist/result-set.d.ts +4 -2
  30. package/dist/result-set.d.ts.map +1 -1
  31. package/dist/result-set.js +25 -8
  32. package/dist/result-set.js.map +1 -1
  33. package/dist/retry.d.ts +4 -1
  34. package/dist/retry.d.ts.map +1 -1
  35. package/dist/retry.js +16 -4
  36. package/dist/retry.js.map +1 -1
  37. package/dist/sequence.d.ts +62 -0
  38. package/dist/sequence.d.ts.map +1 -0
  39. package/dist/sequence.js +70 -0
  40. package/dist/sequence.js.map +1 -0
  41. package/dist/sql-syntax.d.ts +31 -1
  42. package/dist/sql-syntax.d.ts.map +1 -1
  43. package/dist/sql-syntax.js +94 -1
  44. package/dist/sql-syntax.js.map +1 -1
  45. package/dist/statements.d.ts +5 -0
  46. package/dist/statements.d.ts.map +1 -1
  47. package/dist/statements.js +14 -0
  48. package/dist/statements.js.map +1 -1
  49. package/dist/transport/grpc/batch-frames.d.ts +7 -1
  50. package/dist/transport/grpc/batch-frames.d.ts.map +1 -1
  51. package/dist/transport/grpc/batch-frames.js +11 -3
  52. package/dist/transport/grpc/batch-frames.js.map +1 -1
  53. package/dist/transport/grpc/batcher.d.ts +7 -0
  54. package/dist/transport/grpc/batcher.d.ts.map +1 -1
  55. package/dist/transport/grpc/batcher.js +4 -0
  56. package/dist/transport/grpc/batcher.js.map +1 -1
  57. package/dist/transport/grpc/grpc-transport.d.ts +3 -1
  58. package/dist/transport/grpc/grpc-transport.d.ts.map +1 -1
  59. package/dist/transport/grpc/grpc-transport.js +22 -4
  60. package/dist/transport/grpc/grpc-transport.js.map +1 -1
  61. package/dist/transport/grpc/messages.d.ts +6 -0
  62. package/dist/transport/grpc/messages.d.ts.map +1 -1
  63. package/dist/transport/grpc/messages.js.map +1 -1
  64. package/dist/transport/http.d.ts.map +1 -1
  65. package/dist/transport/http.js +5 -1
  66. package/dist/transport/http.js.map +1 -1
  67. package/dist/transport/ndjson-row-source.d.ts.map +1 -1
  68. package/dist/transport/ndjson-row-source.js +16 -3
  69. package/dist/transport/ndjson-row-source.js.map +1 -1
  70. package/dist/transport/rest-transport.d.ts.map +1 -1
  71. package/dist/transport/rest-transport.js +18 -5
  72. package/dist/transport/rest-transport.js.map +1 -1
  73. package/dist/transport/transport.d.ts +25 -6
  74. package/dist/transport/transport.d.ts.map +1 -1
  75. package/dist/transport/transport.js.map +1 -1
  76. package/dist/values/encode.d.ts +2 -0
  77. package/dist/values/encode.d.ts.map +1 -1
  78. package/dist/values/encode.js +23 -2
  79. package/dist/values/encode.js.map +1 -1
  80. package/dist/values/typed.d.ts.map +1 -1
  81. package/dist/values/typed.js +22 -1
  82. package/dist/values/typed.js.map +1 -1
  83. package/dist/values/uuid.d.ts +7 -1
  84. package/dist/values/uuid.d.ts.map +1 -1
  85. package/dist/values/uuid.js +15 -6
  86. package/dist/values/uuid.js.map +1 -1
  87. package/package.json +1 -1
  88. package/proto/camus_sql.proto +17 -0
package/dist/json.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * This file is part of CamusDB
3
+ *
4
+ * For the full copyright and license information, please view the LICENSE.txt
5
+ * file that was distributed with this source code.
6
+ */
7
+ /**
8
+ * Stores a value under a key that came from outside the driver.
9
+ *
10
+ * Plain assignment through `record[key]` reaches the `__proto__` setter on `Object.prototype`. A
11
+ * column or a parameter literally named `__proto__` — which a caller can produce from `JSON.parse`
12
+ * output — would therefore rewrite the record's prototype and never become a property of its own.
13
+ * `Object.defineProperty` installs an own property for every key, so the name survives.
14
+ */
15
+ export declare function setOwn<T>(record: Record<string, T>, key: string, value: T): void;
16
+ //# sourceMappingURL=own-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"own-record.d.ts","sourceRoot":"","sources":["../src/own-record.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAEhF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file is part of CamusDB
3
+ *
4
+ * For the full copyright and license information, please view the LICENSE.txt
5
+ * file that was distributed with this source code.
6
+ */
7
+ /**
8
+ * Stores a value under a key that came from outside the driver.
9
+ *
10
+ * Plain assignment through `record[key]` reaches the `__proto__` setter on `Object.prototype`. A
11
+ * column or a parameter literally named `__proto__` — which a caller can produce from `JSON.parse`
12
+ * output — would therefore rewrite the record's prototype and never become a property of its own.
13
+ * `Object.defineProperty` installs an own property for every key, so the name survives.
14
+ */
15
+ export function setOwn(record, key, value) {
16
+ Object.defineProperty(record, key, { value, writable: true, enumerable: true, configurable: true });
17
+ }
18
+ //# sourceMappingURL=own-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"own-record.js","sourceRoot":"","sources":["../src/own-record.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAI,MAAyB,EAAE,GAAW,EAAE,KAAQ;IACxE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACtG,CAAC"}
@@ -24,10 +24,10 @@ import type { DecodeOptions } from './values/decode.js';
24
24
  *
25
25
  * The schema is known before the first row, so `columns` can be read straight away.
26
26
  *
27
- * The streaming path gives up the buffered path's transparent retry of a serializable conflict.
28
- * Rows can reach this side before the statement's own short transaction commits, so a conflict
29
- * that surfaces late is raised from the iteration rather than retried. Use `query` — or drive an
30
- * explicit transaction and retry it yourself — when you need that retry.
27
+ * A serializable conflict is reported to the caller, not retried. No autocommit statement is
28
+ * retried by the driver, the buffered `query` path included; only `client.transaction` and
29
+ * `withRetry` run a unit of work again. Rows can reach this side before the statement's own short
30
+ * transaction commits, so a late conflict surfaces from the iteration rather than from the call.
31
31
  */
32
32
  export declare class CamusQueryStream<T = Record<string, unknown>> implements AsyncIterable<T>, AsyncDisposable {
33
33
  private readonly source;
@@ -23,10 +23,10 @@ import { columnTypeName } from './column-type.js';
23
23
  *
24
24
  * The schema is known before the first row, so `columns` can be read straight away.
25
25
  *
26
- * The streaming path gives up the buffered path's transparent retry of a serializable conflict.
27
- * Rows can reach this side before the statement's own short transaction commits, so a conflict
28
- * that surfaces late is raised from the iteration rather than retried. Use `query` — or drive an
29
- * explicit transaction and retry it yourself — when you need that retry.
26
+ * A serializable conflict is reported to the caller, not retried. No autocommit statement is
27
+ * retried by the driver, the buffered `query` path included; only `client.transaction` and
28
+ * `withRetry` run a unit of work again. Rows can reach this side before the statement's own short
29
+ * transaction commits, so a late conflict surfaces from the iteration rather than from the call.
30
30
  */
31
31
  export class CamusQueryStream {
32
32
  source;
@@ -45,8 +45,10 @@ export declare class CamusResultSet {
45
45
  * Turns positional cells into a plain object, keyed by column name.
46
46
  *
47
47
  * A duplicate column name — which a join projection can produce — keeps the leftmost column, and
48
- * the ones after it are reachable at `name_2`, `name_3`, and so on. Silently dropping a column
49
- * would lose data the query asked for.
48
+ * the ones after it are reachable at `name_2`, `name_3`, and so on. A deduped key that a real
49
+ * column already claims is stepped past, so `SELECT id, id_2, id` keys the last column `id_3`
50
+ * rather than overwriting the genuine `id_2`. Silently dropping a column would lose data the
51
+ * query asked for.
50
52
  */
51
53
  export declare class RowMapper {
52
54
  private readonly keys;
@@ -1 +1 @@
1
- {"version":3,"file":"result-set.d.ts","sourceRoot":"","sources":["../src/result-set.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACzB,gGAAgG;IAChG,MAAM,CAAC,QAAQ,CAAC,KAAK,iBAAqC;IAE1D,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAExC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAE5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAG7C,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,QAAQ,EAAE,MAAM;IAQlB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,oCAAoC;IACpC,IAAI,OAAO,IAAI,WAAW,EAAE,CAM3B;IAED,oBAAoB;IACpB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAI9C,4BAA4B;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE;CAInC;AAED;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa;IAelE,2DAA2D;IAC3D,IAAI,UAAU,IAAI,SAAS,MAAM,EAAE,CAElC;IAED,4BAA4B;IAC5B,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,CAAC;IAUxC,4CAA4C;IAC5C,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,GAAG,CAAC,EAAE;CAgB1C"}
1
+ {"version":3,"file":"result-set.d.ts","sourceRoot":"","sources":["../src/result-set.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACzB,gGAAgG;IAChG,MAAM,CAAC,QAAQ,CAAC,KAAK,iBAAqC;IAE1D,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAExC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAE5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAG7C,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,QAAQ,EAAE,MAAM;IAQlB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,oCAAoC;IACpC,IAAI,OAAO,IAAI,WAAW,EAAE,CAM3B;IAED,oBAAoB;IACpB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAI9C,4BAA4B;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE;CAInC;AAED;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa;IAiClE,2DAA2D;IAC3D,IAAI,UAAU,IAAI,SAAS,MAAM,EAAE,CAElC;IAED,4BAA4B;IAC5B,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,CAAC;IAUxC,4CAA4C;IAC5C,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,GAAG,CAAC,EAAE;CAgB1C"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { ColumnType, columnTypeName } from './column-type.js';
8
8
  import { NULL_VALUE } from './column-value.js';
9
+ import { setOwn } from './own-record.js';
9
10
  import { decodeValue } from './values/decode.js';
10
11
  /**
11
12
  * The rows of one query, held positionally.
@@ -54,8 +55,10 @@ export class CamusResultSet {
54
55
  * Turns positional cells into a plain object, keyed by column name.
55
56
  *
56
57
  * A duplicate column name — which a join projection can produce — keeps the leftmost column, and
57
- * the ones after it are reachable at `name_2`, `name_3`, and so on. Silently dropping a column
58
- * would lose data the query asked for.
58
+ * the ones after it are reachable at `name_2`, `name_3`, and so on. A deduped key that a real
59
+ * column already claims is stepped past, so `SELECT id, id_2, id` keys the last column `id_3`
60
+ * rather than overwriting the genuine `id_2`. Silently dropping a column would lose data the
61
+ * query asked for.
59
62
  */
60
63
  export class RowMapper {
61
64
  keys;
@@ -63,12 +66,26 @@ export class RowMapper {
63
66
  constructor(columnNames, options) {
64
67
  this.options = options;
65
68
  this.keys = new Array(columnNames.length);
66
- const used = new Map();
69
+ const counts = new Map();
70
+ const taken = new Set(columnNames);
67
71
  for (let i = 0; i < columnNames.length; i++) {
68
72
  const name = columnNames[i] ?? `column_${String(i + 1)}`;
69
- const seen = used.get(name) ?? 0;
70
- used.set(name, seen + 1);
71
- this.keys[i] = seen === 0 ? name : `${name}_${String(seen + 1)}`;
73
+ const seen = counts.get(name) ?? 0;
74
+ counts.set(name, seen + 1);
75
+ if (seen === 0) {
76
+ this.keys[i] = name;
77
+ taken.add(name);
78
+ continue;
79
+ }
80
+ let suffix = seen + 1;
81
+ let candidate = `${name}_${String(suffix)}`;
82
+ while (taken.has(candidate)) {
83
+ suffix++;
84
+ candidate = `${name}_${String(suffix)}`;
85
+ }
86
+ counts.set(name, suffix);
87
+ taken.add(candidate);
88
+ this.keys[i] = candidate;
72
89
  }
73
90
  }
74
91
  /** The object keys this mapper writes, in column order. */
@@ -79,7 +96,7 @@ export class RowMapper {
79
96
  map(cells) {
80
97
  const row = {};
81
98
  for (let i = 0; i < this.keys.length; i++) {
82
- row[this.keys[i]] = decodeValue(cells[i] ?? NULL_VALUE, this.options);
99
+ setOwn(row, this.keys[i], decodeValue(cells[i] ?? NULL_VALUE, this.options));
83
100
  }
84
101
  return row;
85
102
  }
@@ -90,7 +107,7 @@ export class RowMapper {
90
107
  for (let r = 0; r < resultSet.rowCount; r++) {
91
108
  const row = {};
92
109
  for (let c = 0; c < columnCount; c++) {
93
- row[this.keys[c]] = decodeValue(resultSet.cell(r, c), this.options);
110
+ setOwn(row, this.keys[c], decodeValue(resultSet.cell(r, c), this.options));
94
111
  }
95
112
  rows[r] = row;
96
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"result-set.js","sourceRoot":"","sources":["../src/result-set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-set.js","sourceRoot":"","sources":["../src/result-set.ts"],"names":[],"mappings":"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"}
package/dist/retry.d.ts CHANGED
@@ -31,7 +31,10 @@ export interface RetryOptions {
31
31
  * clients that conflicted do not retry in step.
32
32
  */
33
33
  export declare function withRetry<T>(operation: (attempt: number) => Promise<T>, options?: RetryOptions): Promise<T>;
34
- /** The back-off for one attempt, in milliseconds. Exported so a caller can mirror the schedule. */
34
+ /**
35
+ * The back-off after attempt number `attempt`, in milliseconds. Exported so a caller can mirror the
36
+ * schedule. The first retry waits the documented 20 ms base, the second 40 ms, and so on.
37
+ */
35
38
  export declare function computeDelayMs(attempt: number): number;
36
39
  /** A cancellable sleep. Rejects with the signal's reason when the signal ends the wait. */
37
40
  export declare function delay(milliseconds: number, signal?: AbortSignal): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAanD;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAC1C,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,2FAA2F;AAC3F,wBAAgB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2BH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAwBnD;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAC1C,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,2FAA2F;AAC3F,wBAAgB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E"}
package/dist/retry.js CHANGED
@@ -22,6 +22,8 @@ const RETRYABLE_CODES = new Set(['CADB0502', 'CADB0504', 'CADB0505']);
22
22
  * would have committed on its second attempt.
23
23
  */
24
24
  const RETRYABLE_MESSAGE_MARKERS = ['MustRetry', 'AlreadyLocked', 'commit returned Aborted'];
25
+ /** How far `isRetryable` walks a `cause` chain before it stops. */
26
+ const MAX_CAUSE_DEPTH = 16;
25
27
  /**
26
28
  * True when running the same work again may succeed.
27
29
  *
@@ -31,9 +33,15 @@ const RETRYABLE_MESSAGE_MARKERS = ['MustRetry', 'AlreadyLocked', 'commit returne
31
33
  * the same handle, which `CamusTransaction` does on its own.
32
34
  */
33
35
  export function isRetryable(error) {
34
- for (let current = error; current != null; current = current.cause) {
35
- if (!CamusError.is(current))
36
+ let current = error;
37
+ // A cause chain comes from outside the driver and can hold a cycle. The cap bounds the walk
38
+ // without a visited set; no real chain is anywhere near this deep.
39
+ for (let depth = 0; current != null && depth < MAX_CAUSE_DEPTH; depth++) {
40
+ const next = current.cause;
41
+ if (!CamusError.is(current)) {
42
+ current = next;
36
43
  continue;
44
+ }
37
45
  if (current.code === CamusErrorCode.FinalizeUnresolved)
38
46
  return false;
39
47
  if (RETRYABLE_CODES.has(current.code))
@@ -42,6 +50,7 @@ export function isRetryable(error) {
42
50
  if (current.message.includes(marker))
43
51
  return true;
44
52
  }
53
+ current = next;
45
54
  }
46
55
  return false;
47
56
  }
@@ -68,9 +77,12 @@ export async function withRetry(operation, options = {}) {
68
77
  }
69
78
  }
70
79
  }
71
- /** The back-off for one attempt, in milliseconds. Exported so a caller can mirror the schedule. */
80
+ /**
81
+ * The back-off after attempt number `attempt`, in milliseconds. Exported so a caller can mirror the
82
+ * schedule. The first retry waits the documented 20 ms base, the second 40 ms, and so on.
83
+ */
72
84
  export function computeDelayMs(attempt) {
73
- const base = Math.min(20 * 2 ** attempt, 400);
85
+ const base = Math.min(20 * 2 ** (attempt - 1), 400);
74
86
  const jitter = base * 0.25 * (2 * Math.random() - 1);
75
87
  return Math.max(1, base + jitter);
76
88
  }
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * This file is part of CamusDB
3
+ *
4
+ * For the full copyright and license information, please view the LICENSE.txt
5
+ * file that was distributed with this source code.
6
+ */
7
+ /**
8
+ * The options of a `CREATE SEQUENCE`.
9
+ *
10
+ * A CamusDB sequence stores `int64` values only, has a positive increment, and never cycles. The
11
+ * server refuses `CYCLE` with `CADB0533`, because a wrapped counter would issue again the values
12
+ * that committed rows already hold, so there is no option for it here.
13
+ */
14
+ export interface CamusSequenceOptions {
15
+ /** The first value `nextval` returns. The server default is the minimum. */
16
+ readonly startWith?: number | bigint | undefined;
17
+ /** The step between two values. It must be positive. The server default is 1. */
18
+ readonly incrementBy?: number | bigint | undefined;
19
+ /**
20
+ * The smallest value. Leave it out for the server default, 1. The statement never says
21
+ * `NO MINVALUE`, because the server reads that as the smallest 64-bit value, not as the default.
22
+ */
23
+ readonly minValue?: number | bigint | undefined;
24
+ /** The largest value. Leave it out for the server default, the largest 64-bit value. */
25
+ readonly maxValue?: number | bigint | undefined;
26
+ /** Adds `IF NOT EXISTS`, so the statement does nothing when the sequence already exists. */
27
+ readonly ifNotExists?: boolean | undefined;
28
+ }
29
+ /**
30
+ * The statement that creates a sequence:
31
+ * `CREATE SEQUENCE [IF NOT EXISTS] name [START WITH …] [INCREMENT BY …] [MINVALUE …] [MAXVALUE …]`.
32
+ *
33
+ * ```ts
34
+ * await client.executeDdl(createSequenceStatement('ticket_numbers', { startWith: 1000 }));
35
+ * ```
36
+ *
37
+ * @throws {TypeError} when the name cannot be delimited, when a value is not an integer, or when
38
+ * the increment is not positive.
39
+ */
40
+ export declare function createSequenceStatement(name: string, options?: CamusSequenceOptions): string;
41
+ /**
42
+ * The statement that drops a sequence: `DROP SEQUENCE [IF EXISTS] name`.
43
+ *
44
+ * @throws {TypeError} when the name cannot be delimited.
45
+ */
46
+ export declare function dropSequenceStatement(name: string, options?: {
47
+ ifExists?: boolean;
48
+ }): string;
49
+ /**
50
+ * The expression that draws the next value of a sequence: `nextval('name')`. Use it in the value
51
+ * list of an `INSERT`, or as a column default. A column default needs parentheses:
52
+ * `DEFAULT (nextval('name'))`.
53
+ *
54
+ * The name is a string argument, not an identifier, so it is quoted as a literal. It must still be
55
+ * a name that a `CREATE SEQUENCE` can delimit.
56
+ *
57
+ * @throws {TypeError} when the name cannot be a sequence name.
58
+ */
59
+ export declare function nextValueExpression(name: string): string;
60
+ /** The statement that draws one value: a `SELECT` with no `FROM`, which the server accepts. */
61
+ export declare function selectNextValueStatement(name: string): string;
62
+ //# sourceMappingURL=sequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEjD,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEnD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEhD,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEhD,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAqBhG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAEhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * This file is part of CamusDB
3
+ *
4
+ * For the full copyright and license information, please view the LICENSE.txt
5
+ * file that was distributed with this source code.
6
+ */
7
+ import { delimitIdentifier, sqlLiteral, validateIdentifier } from './sql-syntax.js';
8
+ /**
9
+ * The statement that creates a sequence:
10
+ * `CREATE SEQUENCE [IF NOT EXISTS] name [START WITH …] [INCREMENT BY …] [MINVALUE …] [MAXVALUE …]`.
11
+ *
12
+ * ```ts
13
+ * await client.executeDdl(createSequenceStatement('ticket_numbers', { startWith: 1000 }));
14
+ * ```
15
+ *
16
+ * @throws {TypeError} when the name cannot be delimited, when a value is not an integer, or when
17
+ * the increment is not positive.
18
+ */
19
+ export function createSequenceStatement(name, options = {}) {
20
+ let sql = `CREATE SEQUENCE ${options.ifNotExists === true ? 'IF NOT EXISTS ' : ''}${delimitIdentifier(name, 'name')}`;
21
+ if (options.startWith !== undefined)
22
+ sql += ` START WITH ${integer(options.startWith, 'startWith')}`;
23
+ if (options.incrementBy !== undefined) {
24
+ const increment = integer(options.incrementBy, 'incrementBy');
25
+ if (BigInt(increment) <= 0n) {
26
+ throw new TypeError(`A CamusDB sequence needs a positive increment; got ${increment} for sequence '${name}'.`);
27
+ }
28
+ sql += ` INCREMENT BY ${increment}`;
29
+ }
30
+ if (options.minValue !== undefined)
31
+ sql += ` MINVALUE ${integer(options.minValue, 'minValue')}`;
32
+ if (options.maxValue !== undefined)
33
+ sql += ` MAXVALUE ${integer(options.maxValue, 'maxValue')}`;
34
+ return sql;
35
+ }
36
+ /**
37
+ * The statement that drops a sequence: `DROP SEQUENCE [IF EXISTS] name`.
38
+ *
39
+ * @throws {TypeError} when the name cannot be delimited.
40
+ */
41
+ export function dropSequenceStatement(name, options = {}) {
42
+ return `DROP SEQUENCE ${options.ifExists === true ? 'IF EXISTS ' : ''}${delimitIdentifier(name, 'name')}`;
43
+ }
44
+ /**
45
+ * The expression that draws the next value of a sequence: `nextval('name')`. Use it in the value
46
+ * list of an `INSERT`, or as a column default. A column default needs parentheses:
47
+ * `DEFAULT (nextval('name'))`.
48
+ *
49
+ * The name is a string argument, not an identifier, so it is quoted as a literal. It must still be
50
+ * a name that a `CREATE SEQUENCE` can delimit.
51
+ *
52
+ * @throws {TypeError} when the name cannot be a sequence name.
53
+ */
54
+ export function nextValueExpression(name) {
55
+ validateIdentifier(name, 'name');
56
+ return `nextval(${sqlLiteral(name, `sequence name '${name}'`)})`;
57
+ }
58
+ /** The statement that draws one value: a `SELECT` with no `FROM`, which the server accepts. */
59
+ export function selectNextValueStatement(name) {
60
+ return `SELECT ${nextValueExpression(name)}`;
61
+ }
62
+ function integer(value, option) {
63
+ if (typeof value === 'bigint')
64
+ return value.toString();
65
+ if (!Number.isSafeInteger(value)) {
66
+ throw new TypeError(`The sequence option '${option}' needs a safe integer or a bigint; got ${String(value)}.`);
67
+ }
68
+ return String(value);
69
+ }
70
+ //# sourceMappingURL=sequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA6BpF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,UAAgC,EAAE;IACtF,IAAI,GAAG,GAAG,mBAAmB,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IAEtH,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,IAAI,eAAe,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;IAErG,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE9D,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,SAAS,CACjB,sDAAsD,SAAS,kBAAkB,IAAI,IAAI,CAC1F,CAAC;QACJ,CAAC;QAED,GAAG,IAAI,iBAAiB,SAAS,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,IAAI,aAAa,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;IAChG,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,IAAI,aAAa,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;IAEhG,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,UAAkC,EAAE;IACtF,OAAO,iBAAiB,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,WAAW,UAAU,CAAC,IAAI,EAAE,kBAAkB,IAAI,GAAG,CAAC,GAAG,CAAC;AACnE,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,UAAU,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,OAAO,CAAC,KAAsB,EAAE,MAAc;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAEvD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,wBAAwB,MAAM,2CAA2C,MAAM,CAAC,KAAK,CAAC,GAAG,CAC1F,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -34,11 +34,41 @@ export declare function validateSqlLiteral(value: string, target: string): void;
34
34
  * out of its quoting.
35
35
  */
36
36
  export declare function delimitIdentifier(identifier: string, parameterName: string): string;
37
- /** Refuses an identifier that cannot be delimited. */
37
+ /**
38
+ * Refuses an identifier that cannot be delimited.
39
+ *
40
+ * A trailing backslash is refused for the reason `validateSqlLiteral` refuses one: CamusDB's lexer
41
+ * reads a backslash and the character after it as one unit, so the backslash would consume the
42
+ * closing backtick and the identifier would run into the text after it.
43
+ */
38
44
  export declare function validateIdentifier(identifier: string, parameterName: string): void;
45
+ /**
46
+ * True when a string can serve as a database name.
47
+ *
48
+ * The name travels as a request field rather than as SQL text, so there is no injection to close
49
+ * here. What the test protects is the cache keys: the prepared-statement policy, the gRPC batcher,
50
+ * and the REST prepared-statement cache each join a database name and a statement with a newline,
51
+ * and each states that a database name holds no newline. A name that held one would make two
52
+ * distinct pairs collide on one key. Every control character is refused, not the newline alone,
53
+ * because none of them names a database.
54
+ *
55
+ * It reports a verdict rather than throwing, because the two call sites raise different error
56
+ * types: a configuration failure is a `CamusError`, and a bad argument is a `TypeError`.
57
+ */
58
+ export declare function isValidDatabaseName(database: string): boolean;
39
59
  /**
40
60
  * Refuses a name that is emitted into SQL as bare text and therefore cannot be escaped at all.
41
61
  * Letters, digits, and `_ - . :` are allowed.
42
62
  */
43
63
  export declare function validateBareName(name: string, maxLength: number, parameterName: string): void;
64
+ /**
65
+ * True when `sql` holds the keyword `RETURNING` as a token: not inside a string literal, a
66
+ * delimited identifier, or a comment, and not as part of a longer name or an `@placeholder`.
67
+ *
68
+ * `RETURNING` is a reserved word on the server, so a token match is the clause itself. A column or
69
+ * a table called `returning` must be written with backticks, which this skips. The scan follows the
70
+ * lexer rules that `validateSqlLiteral` describes: a backslash and the character after it are one
71
+ * unit, and a doubled quote stays inside the literal.
72
+ */
73
+ export declare function hasReturningKeyword(sql: string): boolean;
44
74
  //# sourceMappingURL=sql-syntax.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-syntax.d.ts","sourceRoot":"","sources":["../src/sql-syntax.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAoBtE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAGnF;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAUlF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAmB7F"}
1
+ {"version":3,"file":"sql-syntax.d.ts","sourceRoot":"","sources":["../src/sql-syntax.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAoBtE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAGnF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAiBlF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAmB7F;AAID;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAqCxD"}