camusdb 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +950 -0
  3. package/dist/auth/credentials.d.ts +30 -0
  4. package/dist/auth/credentials.d.ts.map +1 -0
  5. package/dist/auth/credentials.js +23 -0
  6. package/dist/auth/credentials.js.map +1 -0
  7. package/dist/auth/login-client.d.ts +37 -0
  8. package/dist/auth/login-client.d.ts.map +1 -0
  9. package/dist/auth/login-client.js +8 -0
  10. package/dist/auth/login-client.js.map +1 -0
  11. package/dist/auth/rest-login-client.d.ts +17 -0
  12. package/dist/auth/rest-login-client.d.ts.map +1 -0
  13. package/dist/auth/rest-login-client.js +71 -0
  14. package/dist/auth/rest-login-client.js.map +1 -0
  15. package/dist/auth/token-provider.d.ts +123 -0
  16. package/dist/auth/token-provider.d.ts.map +1 -0
  17. package/dist/auth/token-provider.js +209 -0
  18. package/dist/auth/token-provider.js.map +1 -0
  19. package/dist/backup.d.ts +98 -0
  20. package/dist/backup.d.ts.map +1 -0
  21. package/dist/backup.js +153 -0
  22. package/dist/backup.js.map +1 -0
  23. package/dist/cache.d.ts +90 -0
  24. package/dist/cache.d.ts.map +1 -0
  25. package/dist/cache.js +121 -0
  26. package/dist/cache.js.map +1 -0
  27. package/dist/client.d.ts +406 -0
  28. package/dist/client.d.ts.map +1 -0
  29. package/dist/client.js +724 -0
  30. package/dist/client.js.map +1 -0
  31. package/dist/column-type.d.ts +33 -0
  32. package/dist/column-type.d.ts.map +1 -0
  33. package/dist/column-type.js +50 -0
  34. package/dist/column-type.js.map +1 -0
  35. package/dist/column-value.d.ts +77 -0
  36. package/dist/column-value.d.ts.map +1 -0
  37. package/dist/column-value.js +60 -0
  38. package/dist/column-value.js.map +1 -0
  39. package/dist/config.d.ts +181 -0
  40. package/dist/config.d.ts.map +1 -0
  41. package/dist/config.js +315 -0
  42. package/dist/config.js.map +1 -0
  43. package/dist/connection-string.d.ts +45 -0
  44. package/dist/connection-string.d.ts.map +1 -0
  45. package/dist/connection-string.js +170 -0
  46. package/dist/connection-string.js.map +1 -0
  47. package/dist/endpoint-pool.d.ts +70 -0
  48. package/dist/endpoint-pool.d.ts.map +1 -0
  49. package/dist/endpoint-pool.js +120 -0
  50. package/dist/endpoint-pool.js.map +1 -0
  51. package/dist/error-codes.d.ts +44 -0
  52. package/dist/error-codes.d.ts.map +1 -0
  53. package/dist/error-codes.js +43 -0
  54. package/dist/error-codes.js.map +1 -0
  55. package/dist/errors.d.ts +24 -0
  56. package/dist/errors.d.ts.map +1 -0
  57. package/dist/errors.js +33 -0
  58. package/dist/errors.js.map +1 -0
  59. package/dist/hlc.d.ts +19 -0
  60. package/dist/hlc.d.ts.map +1 -0
  61. package/dist/hlc.js +11 -0
  62. package/dist/hlc.js.map +1 -0
  63. package/dist/index.d.ts +55 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +51 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/json.d.ts +41 -0
  68. package/dist/json.d.ts.map +1 -0
  69. package/dist/json.js +345 -0
  70. package/dist/json.js.map +1 -0
  71. package/dist/object-id.d.ts +39 -0
  72. package/dist/object-id.d.ts.map +1 -0
  73. package/dist/object-id.js +99 -0
  74. package/dist/object-id.js.map +1 -0
  75. package/dist/options.d.ts +77 -0
  76. package/dist/options.d.ts.map +1 -0
  77. package/dist/options.js +68 -0
  78. package/dist/options.js.map +1 -0
  79. package/dist/prepared/binder.d.ts +20 -0
  80. package/dist/prepared/binder.d.ts.map +1 -0
  81. package/dist/prepared/binder.js +32 -0
  82. package/dist/prepared/binder.js.map +1 -0
  83. package/dist/prepared/policy.d.ts +81 -0
  84. package/dist/prepared/policy.d.ts.map +1 -0
  85. package/dist/prepared/policy.js +164 -0
  86. package/dist/prepared/policy.js.map +1 -0
  87. package/dist/query-stream.d.ts +55 -0
  88. package/dist/query-stream.d.ts.map +1 -0
  89. package/dist/query-stream.js +94 -0
  90. package/dist/query-stream.js.map +1 -0
  91. package/dist/result-set.d.ts +62 -0
  92. package/dist/result-set.d.ts.map +1 -0
  93. package/dist/result-set.js +100 -0
  94. package/dist/result-set.js.map +1 -0
  95. package/dist/retry.d.ts +38 -0
  96. package/dist/retry.d.ts.map +1 -0
  97. package/dist/retry.js +93 -0
  98. package/dist/retry.js.map +1 -0
  99. package/dist/routing/advice.d.ts +63 -0
  100. package/dist/routing/advice.d.ts.map +1 -0
  101. package/dist/routing/advice.js +61 -0
  102. package/dist/routing/advice.js.map +1 -0
  103. package/dist/routing/route-cache.d.ts +53 -0
  104. package/dist/routing/route-cache.d.ts.map +1 -0
  105. package/dist/routing/route-cache.js +123 -0
  106. package/dist/routing/route-cache.js.map +1 -0
  107. package/dist/routing/router.d.ts +53 -0
  108. package/dist/routing/router.d.ts.map +1 -0
  109. package/dist/routing/router.js +89 -0
  110. package/dist/routing/router.js.map +1 -0
  111. package/dist/row-source.d.ts +48 -0
  112. package/dist/row-source.d.ts.map +1 -0
  113. package/dist/row-source.js +35 -0
  114. package/dist/row-source.js.map +1 -0
  115. package/dist/runtime.d.ts +58 -0
  116. package/dist/runtime.d.ts.map +1 -0
  117. package/dist/runtime.js +137 -0
  118. package/dist/runtime.js.map +1 -0
  119. package/dist/shared-registry.d.ts +32 -0
  120. package/dist/shared-registry.d.ts.map +1 -0
  121. package/dist/shared-registry.js +48 -0
  122. package/dist/shared-registry.js.map +1 -0
  123. package/dist/sql-syntax.d.ts +44 -0
  124. package/dist/sql-syntax.d.ts.map +1 -0
  125. package/dist/sql-syntax.js +83 -0
  126. package/dist/sql-syntax.js.map +1 -0
  127. package/dist/statements.d.ts +15 -0
  128. package/dist/statements.d.ts.map +1 -0
  129. package/dist/statements.js +90 -0
  130. package/dist/statements.js.map +1 -0
  131. package/dist/transaction.d.ts +117 -0
  132. package/dist/transaction.d.ts.map +1 -0
  133. package/dist/transaction.js +204 -0
  134. package/dist/transaction.js.map +1 -0
  135. package/dist/transport/authenticating-transport.d.ts +63 -0
  136. package/dist/transport/authenticating-transport.d.ts.map +1 -0
  137. package/dist/transport/authenticating-transport.js +119 -0
  138. package/dist/transport/authenticating-transport.js.map +1 -0
  139. package/dist/transport/branch-statements.d.ts +39 -0
  140. package/dist/transport/branch-statements.d.ts.map +1 -0
  141. package/dist/transport/branch-statements.js +74 -0
  142. package/dist/transport/branch-statements.js.map +1 -0
  143. package/dist/transport/error-text.d.ts +26 -0
  144. package/dist/transport/error-text.d.ts.map +1 -0
  145. package/dist/transport/error-text.js +75 -0
  146. package/dist/transport/error-text.js.map +1 -0
  147. package/dist/transport/grpc/batcher.d.ts +127 -0
  148. package/dist/transport/grpc/batcher.d.ts.map +1 -0
  149. package/dist/transport/grpc/batcher.js +399 -0
  150. package/dist/transport/grpc/batcher.js.map +1 -0
  151. package/dist/transport/grpc/codec.d.ts +40 -0
  152. package/dist/transport/grpc/codec.d.ts.map +1 -0
  153. package/dist/transport/grpc/codec.js +231 -0
  154. package/dist/transport/grpc/codec.js.map +1 -0
  155. package/dist/transport/grpc/grpc-transport.d.ts +115 -0
  156. package/dist/transport/grpc/grpc-transport.d.ts.map +1 -0
  157. package/dist/transport/grpc/grpc-transport.js +577 -0
  158. package/dist/transport/grpc/grpc-transport.js.map +1 -0
  159. package/dist/transport/grpc/messages.d.ts +221 -0
  160. package/dist/transport/grpc/messages.d.ts.map +1 -0
  161. package/dist/transport/grpc/messages.js +56 -0
  162. package/dist/transport/grpc/messages.js.map +1 -0
  163. package/dist/transport/grpc/proto.d.ts +71 -0
  164. package/dist/transport/grpc/proto.d.ts.map +1 -0
  165. package/dist/transport/grpc/proto.js +67 -0
  166. package/dist/transport/grpc/proto.js.map +1 -0
  167. package/dist/transport/http.d.ts +62 -0
  168. package/dist/transport/http.d.ts.map +1 -0
  169. package/dist/transport/http.js +169 -0
  170. package/dist/transport/http.js.map +1 -0
  171. package/dist/transport/ndjson-row-source.d.ts +38 -0
  172. package/dist/transport/ndjson-row-source.d.ts.map +1 -0
  173. package/dist/transport/ndjson-row-source.js +197 -0
  174. package/dist/transport/ndjson-row-source.js.map +1 -0
  175. package/dist/transport/rest-decode.d.ts +33 -0
  176. package/dist/transport/rest-decode.d.ts.map +1 -0
  177. package/dist/transport/rest-decode.js +162 -0
  178. package/dist/transport/rest-decode.js.map +1 -0
  179. package/dist/transport/rest-prepared-cache.d.ts +50 -0
  180. package/dist/transport/rest-prepared-cache.d.ts.map +1 -0
  181. package/dist/transport/rest-prepared-cache.js +101 -0
  182. package/dist/transport/rest-prepared-cache.js.map +1 -0
  183. package/dist/transport/rest-transport.d.ts +88 -0
  184. package/dist/transport/rest-transport.d.ts.map +1 -0
  185. package/dist/transport/rest-transport.js +388 -0
  186. package/dist/transport/rest-transport.js.map +1 -0
  187. package/dist/transport/transport-pool.d.ts +40 -0
  188. package/dist/transport/transport-pool.d.ts.map +1 -0
  189. package/dist/transport/transport-pool.js +48 -0
  190. package/dist/transport/transport-pool.js.map +1 -0
  191. package/dist/transport/transport.d.ts +199 -0
  192. package/dist/transport/transport.d.ts.map +1 -0
  193. package/dist/transport/transport.js +11 -0
  194. package/dist/transport/transport.js.map +1 -0
  195. package/dist/values/decode.d.ts +39 -0
  196. package/dist/values/decode.d.ts.map +1 -0
  197. package/dist/values/decode.js +75 -0
  198. package/dist/values/decode.js.map +1 -0
  199. package/dist/values/encode.d.ts +45 -0
  200. package/dist/values/encode.d.ts.map +1 -0
  201. package/dist/values/encode.js +271 -0
  202. package/dist/values/encode.js.map +1 -0
  203. package/dist/values/ticks.d.ts +31 -0
  204. package/dist/values/ticks.d.ts.map +1 -0
  205. package/dist/values/ticks.js +52 -0
  206. package/dist/values/ticks.js.map +1 -0
  207. package/dist/values/typed.d.ts +67 -0
  208. package/dist/values/typed.d.ts.map +1 -0
  209. package/dist/values/typed.js +134 -0
  210. package/dist/values/typed.js.map +1 -0
  211. package/dist/values/uuid.d.ts +27 -0
  212. package/dist/values/uuid.d.ts.map +1 -0
  213. package/dist/values/uuid.js +76 -0
  214. package/dist/values/uuid.js.map +1 -0
  215. package/dist/vector.d.ts +26 -0
  216. package/dist/vector.d.ts.map +1 -0
  217. package/dist/vector.js +48 -0
  218. package/dist/vector.js.map +1 -0
  219. package/package.json +86 -0
  220. package/proto/camus_sql.proto +566 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batcher.js","sourceRoot":"","sources":["../../../src/transport/grpc/batcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
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 type { CamusCacheMetadata } from '../../cache.js';
8
+ import type { ColumnValue } from '../../column-value.js';
9
+ import { CamusResultSet } from '../../result-set.js';
10
+ import type { CamusRoutingAdvice } from '../../routing/advice.js';
11
+ import type { GrpcCacheMetadata, GrpcResultRow, GrpcResultSchema, GrpcRoutingAdviceMessage, GrpcValue, Int64Wire } from './messages.js';
12
+ /**
13
+ * Converts between a `ColumnValue` and the compact-raw `Value` message.
14
+ *
15
+ * Every 64-bit field crosses as a decimal string, because the proto loader is configured that way,
16
+ * so a `bigint` converts to and from it exactly.
17
+ */
18
+ /** The wire message for one value. */
19
+ export declare function encodeValue(value: ColumnValue): GrpcValue;
20
+ /**
21
+ * The `ColumnValue` for one wire message.
22
+ *
23
+ * A message the loader decoded carries a `kind` field naming the branch that is set. One this
24
+ * driver built does not, and neither would one from a loader configured without that field, so the
25
+ * branch is inferred from which field is present when `kind` is absent. Only a `oneof` branch that
26
+ * was actually set is ever present on a decoded message, so the inference cannot pick the wrong
27
+ * one.
28
+ */
29
+ export declare function decodeValue(value: GrpcValue): ColumnValue;
30
+ /** A whole query result, from the schema message and the rows that followed it. */
31
+ export declare function buildResultSet(schema: GrpcResultSchema | undefined, rows: readonly GrpcResultRow[]): CamusResultSet;
32
+ /** The cache verdict a query terminator carried, or `undefined` when the statement was unhinted. */
33
+ export declare function decodeCacheMetadata(metadata: GrpcCacheMetadata | null | undefined): CamusCacheMetadata | undefined;
34
+ /** The routing advice a reply carried, or `undefined` when it carried none. */
35
+ export declare function decodeRoutingAdvice(advice: GrpcRoutingAdviceMessage | null | undefined): CamusRoutingAdvice | undefined;
36
+ /** A 64-bit value as the wire carries it. */
37
+ export declare function toWire(value: bigint | undefined): Int64Wire;
38
+ /** A 64-bit wire value as a `bigint`. It reads a number too, in case a loader setting changes. */
39
+ export declare function fromWire(value: Int64Wire | number | undefined | null): bigint;
40
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/codec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAEV,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,SAAS,EAEV,MAAM,eAAe,CAAC;AAGvB;;;;;GAKG;AAEH,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CA4CzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAsCzD;AA0BD,mFAAmF;AACnF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,IAAI,EAAE,SAAS,aAAa,EAAE,GAC7B,cAAc,CAwBhB;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC7C,kBAAkB,GAAG,SAAS,CAahC;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS,GAClD,kBAAkB,GAAG,SAAS,CAehC;AAED,6CAA6C;AAC7C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE3D;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAS7E"}
@@ -0,0 +1,231 @@
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 { makeCacheMetadata } from '../../cache.js';
8
+ import { ColumnType, isColumnType } from '../../column-type.js';
9
+ import { NULL_VALUE } from '../../column-value.js';
10
+ import { CamusError } from '../../errors.js';
11
+ import { CamusErrorCode } from '../../error-codes.js';
12
+ import { CamusResultSet } from '../../result-set.js';
13
+ import { makeRoutingAdvice } from '../../routing/advice.js';
14
+ import { bytesToHalves, halvesToBytes, uuidToBytes } from '../../values/uuid.js';
15
+ import { GrpcRoutingDisposition, GrpcRoutingReuseScope } from './messages.js';
16
+ /**
17
+ * Converts between a `ColumnValue` and the compact-raw `Value` message.
18
+ *
19
+ * Every 64-bit field crosses as a decimal string, because the proto loader is configured that way,
20
+ * so a `bigint` converts to and from it exactly.
21
+ */
22
+ /** The wire message for one value. */
23
+ export function encodeValue(value) {
24
+ switch (value.type) {
25
+ case ColumnType.Null:
26
+ return { nullValue: 0 };
27
+ case ColumnType.Id:
28
+ return { idValue: value.strValue ?? '' };
29
+ case ColumnType.Integer64:
30
+ return { int64Value: toWire(value.longValue) };
31
+ case ColumnType.String:
32
+ return { stringValue: value.strValue ?? '' };
33
+ case ColumnType.Bool:
34
+ return { boolValue: value.boolValue ?? false };
35
+ case ColumnType.Float64:
36
+ return { float64Value: value.floatValue ?? 0 };
37
+ case ColumnType.Float32:
38
+ return { float32Value: value.floatValue ?? 0 };
39
+ case ColumnType.Bytes:
40
+ return { bytesValue: Buffer.from(value.bytesValue ?? new Uint8Array(0)) };
41
+ case ColumnType.Date:
42
+ return { dateValue: toWire(value.longValue) };
43
+ case ColumnType.DateTime:
44
+ return { datetimeValue: toWire(value.longValue) };
45
+ case ColumnType.Uuid:
46
+ return { uuidValue: Buffer.from(encodeUuid(value)) };
47
+ case ColumnType.Array:
48
+ return { arrayValue: encodeArray(value) };
49
+ default:
50
+ throw new CamusError(CamusErrorCode.InvalidParameter, `Cannot encode the column type ${String(value.type)} for gRPC.`);
51
+ }
52
+ }
53
+ /**
54
+ * The `ColumnValue` for one wire message.
55
+ *
56
+ * A message the loader decoded carries a `kind` field naming the branch that is set. One this
57
+ * driver built does not, and neither would one from a loader configured without that field, so the
58
+ * branch is inferred from which field is present when `kind` is absent. Only a `oneof` branch that
59
+ * was actually set is ever present on a decoded message, so the inference cannot pick the wrong
60
+ * one.
61
+ */
62
+ export function decodeValue(value) {
63
+ switch (value.kind ?? valueKindOf(value)) {
64
+ case 'idValue':
65
+ return { type: ColumnType.Id, strValue: value.idValue ?? '' };
66
+ case 'int64Value':
67
+ return { type: ColumnType.Integer64, longValue: fromWire(value.int64Value) };
68
+ case 'stringValue':
69
+ return { type: ColumnType.String, strValue: value.stringValue ?? '' };
70
+ case 'boolValue':
71
+ return { type: ColumnType.Bool, boolValue: value.boolValue ?? false };
72
+ case 'float64Value':
73
+ return { type: ColumnType.Float64, floatValue: value.float64Value ?? 0 };
74
+ case 'float32Value':
75
+ return { type: ColumnType.Float32, floatValue: value.float32Value ?? 0 };
76
+ case 'bytesValue':
77
+ return { type: ColumnType.Bytes, bytesValue: toUint8Array(value.bytesValue) };
78
+ case 'dateValue':
79
+ return { type: ColumnType.Date, longValue: fromWire(value.dateValue) };
80
+ case 'datetimeValue':
81
+ return { type: ColumnType.DateTime, longValue: fromWire(value.datetimeValue) };
82
+ case 'uuidValue':
83
+ return decodeUuid(value.uuidValue);
84
+ case 'arrayValue':
85
+ return decodeArray(value.arrayValue);
86
+ default:
87
+ return NULL_VALUE;
88
+ }
89
+ }
90
+ /** Which branch of a `Value` is set, for a message that carries no discriminator. */
91
+ function valueKindOf(value) {
92
+ for (const kind of VALUE_KINDS) {
93
+ if (value[kind] !== undefined)
94
+ return kind;
95
+ }
96
+ return undefined;
97
+ }
98
+ const VALUE_KINDS = [
99
+ 'idValue',
100
+ 'int64Value',
101
+ 'stringValue',
102
+ 'boolValue',
103
+ 'float64Value',
104
+ 'float32Value',
105
+ 'bytesValue',
106
+ 'dateValue',
107
+ 'datetimeValue',
108
+ 'arrayValue',
109
+ 'uuidValue',
110
+ 'nullValue',
111
+ ];
112
+ /** A whole query result, from the schema message and the rows that followed it. */
113
+ export function buildResultSet(schema, rows) {
114
+ const columns = schema?.columns ?? [];
115
+ const columnCount = columns.length;
116
+ const names = new Array(columnCount);
117
+ const types = new Array(columnCount);
118
+ for (let i = 0; i < columnCount; i++) {
119
+ const column = columns[i];
120
+ names[i] = column.name;
121
+ types[i] = isColumnType(column.type) ? column.type : ColumnType.Null;
122
+ }
123
+ const cells = new Array(rows.length * columnCount).fill(NULL_VALUE);
124
+ for (let r = 0; r < rows.length; r++) {
125
+ const values = rows[r].values;
126
+ const base = r * columnCount;
127
+ const limit = Math.min(columnCount, values.length);
128
+ for (let c = 0; c < limit; c++)
129
+ cells[base + c] = decodeValue(values[c]);
130
+ }
131
+ return new CamusResultSet(names, types, cells, rows.length);
132
+ }
133
+ /** The cache verdict a query terminator carried, or `undefined` when the statement was unhinted. */
134
+ export function decodeCacheMetadata(metadata) {
135
+ if (metadata === null || metadata === undefined)
136
+ return undefined;
137
+ const hlc = metadata.cachedAtHlc;
138
+ return makeCacheMetadata({
139
+ rawStatus: metadata.status.length > 0 ? metadata.status : undefined,
140
+ bypassReason: metadata.bypassReason.length > 0 ? metadata.bypassReason : undefined,
141
+ name: metadata.name.length > 0 ? metadata.name : undefined,
142
+ cachedAtHlc: hlc ? { l: fromWire(hlc.l), c: hlc.c } : undefined,
143
+ ageMs: metadata.ageMs === null || metadata.ageMs === undefined ? undefined : Number(fromWire(metadata.ageMs)),
144
+ });
145
+ }
146
+ /** The routing advice a reply carried, or `undefined` when it carried none. */
147
+ export function decodeRoutingAdvice(advice) {
148
+ if (advice === null || advice === undefined)
149
+ return undefined;
150
+ return makeRoutingAdvice({
151
+ version: advice.version,
152
+ disposition: dispositionName(advice.disposition),
153
+ preferredNodeId: advice.preferredNodeId.length > 0 ? advice.preferredNodeId : undefined,
154
+ reuseScope: advice.reuseScope === GrpcRoutingReuseScope.StatementParametersIndependent
155
+ ? 'statementParametersIndependent'
156
+ : undefined,
157
+ dependencyToken: advice.dependencyToken.length > 0 ? advice.dependencyToken : undefined,
158
+ maxAgeMs: advice.maxAgeMs,
159
+ reason: advice.reason.length > 0 ? advice.reason : undefined,
160
+ });
161
+ }
162
+ /** A 64-bit value as the wire carries it. */
163
+ export function toWire(value) {
164
+ return (value ?? 0n).toString();
165
+ }
166
+ /** A 64-bit wire value as a `bigint`. It reads a number too, in case a loader setting changes. */
167
+ export function fromWire(value) {
168
+ if (value === undefined || value === null)
169
+ return 0n;
170
+ if (typeof value === 'number')
171
+ return BigInt(Math.trunc(value));
172
+ try {
173
+ return BigInt(value);
174
+ }
175
+ catch {
176
+ return 0n;
177
+ }
178
+ }
179
+ function dispositionName(disposition) {
180
+ switch (disposition) {
181
+ case GrpcRoutingDisposition.Prefer:
182
+ return 'prefer';
183
+ case GrpcRoutingDisposition.Clear:
184
+ return 'clear';
185
+ default:
186
+ return undefined;
187
+ }
188
+ }
189
+ function encodeArray(value) {
190
+ return {
191
+ elementType: value.arrayElementType ?? ColumnType.Null,
192
+ items: (value.arrayValues ?? []).map(encodeValue),
193
+ };
194
+ }
195
+ function decodeArray(array) {
196
+ const elementType = array?.elementType ?? ColumnType.Null;
197
+ return {
198
+ type: ColumnType.Array,
199
+ arrayValues: (array?.items ?? []).map(decodeValue),
200
+ arrayElementType: isColumnType(elementType) ? elementType : ColumnType.Null,
201
+ };
202
+ }
203
+ /**
204
+ * The 16 big-endian bytes of a UUID parameter.
205
+ *
206
+ * A parameter reaches here with the raw halves filled in, which is how the encoder builds one, or
207
+ * as a canonical string, which a hand-built value may hold. Both collapse to the same bytes; the
208
+ * halves path writes them directly, with no string to parse. All-zero halves fall through to the
209
+ * string forms, so a zero UUID carried only as a string still encodes correctly.
210
+ */
211
+ function encodeUuid(value) {
212
+ const high = value.uuidHigh ?? 0n;
213
+ const low = value.longValue ?? 0n;
214
+ if (high !== 0n || low !== 0n)
215
+ return halvesToBytes(high, low);
216
+ const text = value.strValue ?? value.uuidValue;
217
+ return text !== undefined && text !== null && text.length > 0 ? uuidToBytes(text) : halvesToBytes(0n, 0n);
218
+ }
219
+ function decodeUuid(uuid) {
220
+ if (uuid === undefined || uuid.length !== 16) {
221
+ throw new CamusError(CamusErrorCode.Generic, `A UUID value must be 16 bytes; got ${String(uuid?.length ?? 0)}.`);
222
+ }
223
+ const { high, low } = bytesToHalves(toUint8Array(uuid));
224
+ return { type: ColumnType.Uuid, uuidHigh: high, longValue: low };
225
+ }
226
+ function toUint8Array(buffer) {
227
+ if (buffer === undefined)
228
+ return new Uint8Array(0);
229
+ return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
230
+ }
231
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/transport/grpc/codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
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 type { CamusLoginClient, CamusLoginResult } from '../../auth/login-client.js';
8
+ import type { CamusTokenProvider } from '../../auth/token-provider.js';
9
+ import type { GrpcBatchOptions } from '../../config.js';
10
+ import type { CamusTransactionOptions } from '../../options.js';
11
+ import type { CamusRowSource } from '../../row-source.js';
12
+ import type { CamusBranchRow, CamusTransport, NonQueryTransportResult, PreparedStatementInfo, QueryTransportResult, StartTransactionResult, TransportInsertRequest, TransportSqlRequest } from '../transport.js';
13
+ /**
14
+ * The gRPC transport.
15
+ *
16
+ * Its data plane does not make one call per statement. Statements ride a small pool of long-lived
17
+ * `BatchExecute` duplex streams per endpoint, so many statements — and many concurrent
18
+ * transactions — share one HTTP/2 connection and one set of streams. DDL, ping, the typed row
19
+ * insert, and the credential exchange stay unary, because each is a single call whose reply has
20
+ * nowhere to interleave.
21
+ *
22
+ * The transport also carries the session's causal token. Every reply reports a hybrid-logical-clock
23
+ * instant, the transport keeps the greatest one it has seen, and every request carries it back. That
24
+ * is what makes a read see this session's own earlier writes even when it lands on a different node.
25
+ */
26
+ export declare class GrpcTransport implements CamusTransport, CamusLoginClient {
27
+ readonly protocol: "grpc";
28
+ private readonly auth;
29
+ private readonly batchOptions;
30
+ private readonly channels;
31
+ private runtime;
32
+ private causalToken;
33
+ private closed;
34
+ constructor(auth: CamusTokenProvider, batchOptions: GrpcBatchOptions);
35
+ startTransaction(endpoint: string, database: string, options: CamusTransactionOptions, timeoutSeconds: number, signal?: AbortSignal): Promise<StartTransactionResult>;
36
+ finalizeTransaction(commit: boolean, endpoint: string, database: string, txnIdPT: bigint, txnIdCounter: number, streamSlot: number | undefined, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
37
+ executeQuery(request: TransportSqlRequest): Promise<QueryTransportResult>;
38
+ /**
39
+ * The gRPC data plane multiplexes over shared streams that decode a whole result before
40
+ * returning, so this buffers and replays through the same interface. The caller's API is uniform
41
+ * across transports even though only REST is truly incremental; the streaming endpoint this
42
+ * feature targets is REST-only.
43
+ */
44
+ executeQueryStream(request: TransportSqlRequest): Promise<CamusRowSource>;
45
+ executeNonQuery(request: TransportSqlRequest): Promise<NonQueryTransportResult>;
46
+ prepare(endpoint: string, database: string, sql: string, timeoutSeconds: number, signal?: AbortSignal): Promise<PreparedStatementInfo>;
47
+ closePrepared(endpoint: string, database: string, sql: string, signal?: AbortSignal): Promise<void>;
48
+ /**
49
+ * Runs one statement over the batcher, as a prepared execution when the request asked for it.
50
+ *
51
+ * A registration that fails at all falls back to running the statement inline. An execution that
52
+ * names a handle the server or the stream no longer has is retried exactly once, after the
53
+ * registration is dropped and made again.
54
+ */
55
+ private executeBatched;
56
+ executeDdl(request: TransportSqlRequest): Promise<boolean>;
57
+ insert(request: TransportInsertRequest): Promise<number>;
58
+ ping(endpoint: string, timeoutSeconds: number, signal?: AbortSignal): Promise<boolean>;
59
+ createDatabase(endpoint: string, database: string, ifNotExists: boolean, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
60
+ createBranchDatabase(endpoint: string, branchName: string, sourceDatabaseName: string, ifNotExists: boolean, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
61
+ dropDatabase(endpoint: string, database: string, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
62
+ showBranches(endpoint: string, database: string, timeoutSeconds: number, signal?: AbortSignal): Promise<CamusBranchRow[]>;
63
+ showAncestors(endpoint: string, database: string, timeoutSeconds: number, signal?: AbortSignal): Promise<CamusBranchRow[]>;
64
+ private adminDdl;
65
+ private adminQuery;
66
+ login(endpoint: string, user: string, password: string, timeoutSeconds: number, signal?: AbortSignal): Promise<CamusLoginResult>;
67
+ logout(endpoint: string, token: string, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
68
+ private entryFor;
69
+ /**
70
+ * The batcher for an endpoint, opening its stream pool on first use.
71
+ *
72
+ * It is built lazily because the pool opens every stream at once: a client that only logs in,
73
+ * pings, or runs DDL never needs them, and — since a stream carries the token it was opened with
74
+ * — opening them before the first login would open them unauthenticated.
75
+ */
76
+ private batcherFor;
77
+ /**
78
+ * Opens one `BatchExecute` duplex call.
79
+ *
80
+ * The batcher rebuilds a faulted stream on its own, so the token is read here, at open time,
81
+ * rather than captured once. A stream re-opened after a token refresh carries the new token.
82
+ */
83
+ private createBatchStream;
84
+ private unary;
85
+ /**
86
+ * The call metadata, carrying the bearer token when this client has one.
87
+ *
88
+ * It is always a real `Metadata` instance, even when there is nothing to put in it. A call that
89
+ * passes four arguments — request, metadata, options, callback — is refused outright by grpc-js
90
+ * unless the second one is a `Metadata`, so an unauthenticated client cannot simply leave it out.
91
+ */
92
+ private buildMetadata;
93
+ private buildSqlRequest;
94
+ private buildPreparedSqlRequest;
95
+ private applyExecutionContext;
96
+ /**
97
+ * A transaction handle carrying this session's latest observed token, so the statements of a
98
+ * resumed transaction keep their causal ordering. All three clock components must travel: the
99
+ * node dimension participates in equality and is the tie-breaker, so a token without it is a
100
+ * lossy copy.
101
+ */
102
+ private buildHandle;
103
+ /**
104
+ * Merges a reply's token, keeping the clock maximum — physical component first, then the logical
105
+ * counter — so the token this session threads advances whatever order replies arrive in.
106
+ */
107
+ private observeToken;
108
+ /**
109
+ * Runs one operation under a deadline linked to the caller's own cancellation, so a wedged
110
+ * stream cannot hang a caller forever.
111
+ */
112
+ private withDeadline;
113
+ close(): Promise<void>;
114
+ }
115
+ //# sourceMappingURL=grpc-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/grpc-transport.ts"],"names":[],"mappings":"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"}