@ragestudio/scylla-odm 0.15.0 → 0.16.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 (297) hide show
  1. package/README.md +246 -0
  2. package/_virtual/_rolldown/runtime.js +1 -26
  3. package/client.d.ts +1 -2
  4. package/client.js +1 -119
  5. package/cql_gen/create_keyspace.d.ts +1 -2
  6. package/cql_gen/create_keyspace.js +1 -14
  7. package/cql_gen/create_table.d.ts +1 -2
  8. package/cql_gen/create_table.js +1 -38
  9. package/document/index.d.ts +1 -2
  10. package/document/index.js +1 -63
  11. package/driver/index.d.ts +13 -10
  12. package/driver/index.js +1 -53
  13. package/driver/lib/auth/base-dse-authenticator.js +1 -58
  14. package/driver/lib/auth/dse-gssapi-auth-provider.js +1 -177
  15. package/driver/lib/auth/dse-plain-text-auth-provider.js +1 -90
  16. package/driver/lib/auth/gssapi-client.js +1 -113
  17. package/driver/lib/auth/index.d.ts +2 -3
  18. package/driver/lib/auth/index.js +1 -31
  19. package/driver/lib/auth/no-auth-provider.js +1 -52
  20. package/driver/lib/auth/plain-text-auth-provider.js +1 -66
  21. package/driver/lib/auth/provider.js +1 -59
  22. package/driver/lib/client-options.js +1 -230
  23. package/driver/lib/client.js +1 -982
  24. package/driver/lib/concurrent/index.d.ts +25 -1
  25. package/driver/lib/concurrent/index.js +1 -244
  26. package/driver/lib/connection.js +1 -578
  27. package/driver/lib/control-connection.js +1 -765
  28. package/driver/lib/datastax/graph/complex-type-helper.js +1 -60
  29. package/driver/lib/datastax/graph/custom-type-serializers.js +1 -279
  30. package/driver/lib/datastax/graph/graph-executor.js +1 -182
  31. package/driver/lib/datastax/graph/graph-serializer.js +1 -196
  32. package/driver/lib/datastax/graph/index.d.ts +63 -0
  33. package/driver/lib/datastax/graph/index.js +1 -67
  34. package/driver/lib/datastax/graph/options.js +1 -232
  35. package/driver/lib/datastax/graph/result-set.js +1 -125
  36. package/driver/lib/datastax/graph/structure.js +1 -147
  37. package/driver/lib/datastax/graph/type-serializers.js +1 -380
  38. package/driver/lib/datastax/graph/wrappers.js +1 -80
  39. package/driver/lib/datastax/index.d.ts +7 -0
  40. package/driver/lib/datastax/search/date-range.js +1 -380
  41. package/driver/lib/datastax/search/index.d.ts +49 -0
  42. package/driver/lib/datastax/search/index.js +1 -21
  43. package/driver/lib/encoder.js +1 -1584
  44. package/driver/lib/errors.js +1 -155
  45. package/driver/lib/execution-options.js +1 -453
  46. package/driver/lib/execution-profile.js +1 -222
  47. package/driver/lib/geometry/geometry.js +1 -101
  48. package/driver/lib/geometry/index.d.ts +49 -0
  49. package/driver/lib/geometry/index.js +1 -25
  50. package/driver/lib/geometry/line-string.js +1 -150
  51. package/driver/lib/geometry/point.js +1 -108
  52. package/driver/lib/geometry/polygon.js +1 -196
  53. package/driver/lib/host-connection-pool.js +1 -338
  54. package/driver/lib/host.js +1 -517
  55. package/driver/lib/insights-client.js +1 -355
  56. package/driver/lib/mapping/cache.js +1 -143
  57. package/driver/lib/mapping/doc-info-adapter.js +1 -123
  58. package/driver/lib/mapping/index.d.ts +2 -3
  59. package/driver/lib/mapping/index.js +1 -30
  60. package/driver/lib/mapping/mapper.js +1 -149
  61. package/driver/lib/mapping/mapping-handler.js +1 -258
  62. package/driver/lib/mapping/model-batch-item.js +1 -168
  63. package/driver/lib/mapping/model-batch-mapper.js +1 -113
  64. package/driver/lib/mapping/model-mapper.js +1 -276
  65. package/driver/lib/mapping/model-mapping-info.js +1 -120
  66. package/driver/lib/mapping/object-selector.js +1 -162
  67. package/driver/lib/mapping/q.js +1 -105
  68. package/driver/lib/mapping/query-generator.js +9 -285
  69. package/driver/lib/mapping/result-mapper.js +4 -73
  70. package/driver/lib/mapping/result.js +1 -103
  71. package/driver/lib/mapping/table-mappings.js +1 -103
  72. package/driver/lib/mapping/tree.js +1 -109
  73. package/driver/lib/metadata/aggregate.js +1 -69
  74. package/driver/lib/metadata/client-state.js +1 -80
  75. package/driver/lib/metadata/data-collection.js +1 -171
  76. package/driver/lib/metadata/event-debouncer.js +1 -113
  77. package/driver/lib/metadata/index.d.ts +2 -3
  78. package/driver/lib/metadata/index.js +1 -810
  79. package/driver/lib/metadata/materialized-view.js +1 -40
  80. package/driver/lib/metadata/schema-function.js +1 -88
  81. package/driver/lib/metadata/schema-index.js +1 -121
  82. package/driver/lib/metadata/schema-parser.js +1 -928
  83. package/driver/lib/metadata/table-metadata.js +1 -66
  84. package/driver/lib/metrics/client-metrics.js +1 -102
  85. package/driver/lib/metrics/default-metrics.js +1 -168
  86. package/driver/lib/metrics/index.d.ts +2 -3
  87. package/driver/lib/metrics/index.js +1 -20
  88. package/driver/lib/operation-state.js +1 -144
  89. package/driver/lib/policies/address-resolution.js +1 -108
  90. package/driver/lib/policies/index.d.ts +2 -3
  91. package/driver/lib/policies/index.js +1 -75
  92. package/driver/lib/policies/load-balancing.js +1 -630
  93. package/driver/lib/policies/reconnection.js +1 -118
  94. package/driver/lib/policies/retry.js +1 -226
  95. package/driver/lib/policies/speculative-execution.js +1 -102
  96. package/driver/lib/policies/timestamp-generation.js +1 -131
  97. package/driver/lib/prepare-handler.js +1 -203
  98. package/driver/lib/promise-utils.js +1 -125
  99. package/driver/lib/readers.js +1 -429
  100. package/driver/lib/request-execution.js +1 -301
  101. package/driver/lib/request-handler.js +1 -201
  102. package/driver/lib/requests.js +1 -390
  103. package/driver/lib/stream-id-stack.js +1 -154
  104. package/driver/lib/streams.js +1 -528
  105. package/driver/lib/token.js +1 -231
  106. package/driver/lib/tokenizer.js +1 -392
  107. package/driver/lib/tracker/index.d.ts +2 -3
  108. package/driver/lib/tracker/index.js +1 -17
  109. package/driver/lib/tracker/request-logger.js +1 -195
  110. package/driver/lib/tracker/request-tracker.js +1 -55
  111. package/driver/lib/types/big-decimal.js +1 -210
  112. package/driver/lib/types/duration.js +1 -415
  113. package/driver/lib/types/index.d.ts +2 -3
  114. package/driver/lib/types/index.js +1 -560
  115. package/driver/lib/types/inet-address.js +1 -179
  116. package/driver/lib/types/integer.js +1 -579
  117. package/driver/lib/types/local-date.js +1 -191
  118. package/driver/lib/types/local-time.js +1 -235
  119. package/driver/lib/types/mutable-long.js +1 -252
  120. package/driver/lib/types/protocol-version.js +1 -281
  121. package/driver/lib/types/result-set.js +1 -224
  122. package/driver/lib/types/result-stream.js +1 -105
  123. package/driver/lib/types/row.js +1 -64
  124. package/driver/lib/types/time-uuid.js +1 -326
  125. package/driver/lib/types/tuple.js +1 -77
  126. package/driver/lib/types/uuid.js +1 -112
  127. package/driver/lib/types/vector.js +1 -88
  128. package/driver/lib/types/version-number.js +1 -71
  129. package/driver/lib/utils.js +4 -1020
  130. package/driver/lib/writers.js +1 -256
  131. package/index.js +1 -11
  132. package/logger/index.d.ts +1 -2
  133. package/logger/index.js +1 -17
  134. package/model/index.d.ts +1 -2
  135. package/model/index.js +1 -44
  136. package/operations/countAll.d.ts +1 -2
  137. package/operations/countAll.js +1 -16
  138. package/operations/delete.d.ts +1 -2
  139. package/operations/delete.js +1 -11
  140. package/operations/find.d.ts +1 -2
  141. package/operations/find.js +1 -22
  142. package/operations/findOne.d.ts +1 -2
  143. package/operations/findOne.js +1 -17
  144. package/operations/sync.d.ts +1 -2
  145. package/operations/sync.js +1 -16
  146. package/operations/tableExists.d.ts +1 -2
  147. package/operations/tableExists.js +2 -15
  148. package/operations/update.d.ts +1 -2
  149. package/operations/update.js +1 -16
  150. package/package.js +1 -29
  151. package/package.json +2 -2
  152. package/schema/index.d.ts +1 -2
  153. package/schema/index.js +1 -16
  154. package/types.d.ts +1 -2
  155. package/types.js +1 -34
  156. package/utils/buildMapper.d.ts +1 -2
  157. package/utils/buildMapper.js +1 -13
  158. package/utils/delay.d.ts +1 -2
  159. package/utils/delay.js +1 -8
  160. package/utils/fillDefaults.d.ts +1 -2
  161. package/utils/fillDefaults.js +1 -18
  162. package/utils/loadModels.d.ts +1 -2
  163. package/utils/loadModels.js +1 -30
  164. package/utils/queryParser.d.ts +1 -2
  165. package/utils/queryParser.js +1 -94
  166. package/utils/typeChecker.d.ts +1 -2
  167. package/utils/typeChecker.js +1 -64
  168. package/client.js.map +0 -1
  169. package/cql_gen/create_keyspace.js.map +0 -1
  170. package/cql_gen/create_table.js.map +0 -1
  171. package/document/index.js.map +0 -1
  172. package/driver/index.js.map +0 -1
  173. package/driver/lib/auth/base-dse-authenticator.js.map +0 -1
  174. package/driver/lib/auth/dse-gssapi-auth-provider.js.map +0 -1
  175. package/driver/lib/auth/dse-plain-text-auth-provider.js.map +0 -1
  176. package/driver/lib/auth/gssapi-client.js.map +0 -1
  177. package/driver/lib/auth/index.js.map +0 -1
  178. package/driver/lib/auth/no-auth-provider.js.map +0 -1
  179. package/driver/lib/auth/plain-text-auth-provider.js.map +0 -1
  180. package/driver/lib/auth/provider.js.map +0 -1
  181. package/driver/lib/client-options.js.map +0 -1
  182. package/driver/lib/client.js.map +0 -1
  183. package/driver/lib/concurrent/index.js.map +0 -1
  184. package/driver/lib/connection.js.map +0 -1
  185. package/driver/lib/control-connection.js.map +0 -1
  186. package/driver/lib/datastax/graph/complex-type-helper.js.map +0 -1
  187. package/driver/lib/datastax/graph/custom-type-serializers.js.map +0 -1
  188. package/driver/lib/datastax/graph/graph-executor.js.map +0 -1
  189. package/driver/lib/datastax/graph/graph-serializer.js.map +0 -1
  190. package/driver/lib/datastax/graph/index.js.map +0 -1
  191. package/driver/lib/datastax/graph/options.js.map +0 -1
  192. package/driver/lib/datastax/graph/result-set.js.map +0 -1
  193. package/driver/lib/datastax/graph/structure.js.map +0 -1
  194. package/driver/lib/datastax/graph/type-serializers.js.map +0 -1
  195. package/driver/lib/datastax/graph/wrappers.js.map +0 -1
  196. package/driver/lib/datastax/search/date-range.js.map +0 -1
  197. package/driver/lib/datastax/search/index.js.map +0 -1
  198. package/driver/lib/encoder.js.map +0 -1
  199. package/driver/lib/errors.js.map +0 -1
  200. package/driver/lib/execution-options.js.map +0 -1
  201. package/driver/lib/execution-profile.js.map +0 -1
  202. package/driver/lib/geometry/geometry.js.map +0 -1
  203. package/driver/lib/geometry/index.js.map +0 -1
  204. package/driver/lib/geometry/line-string.js.map +0 -1
  205. package/driver/lib/geometry/point.js.map +0 -1
  206. package/driver/lib/geometry/polygon.js.map +0 -1
  207. package/driver/lib/host-connection-pool.js.map +0 -1
  208. package/driver/lib/host.js.map +0 -1
  209. package/driver/lib/insights-client.js.map +0 -1
  210. package/driver/lib/mapping/cache.js.map +0 -1
  211. package/driver/lib/mapping/doc-info-adapter.js.map +0 -1
  212. package/driver/lib/mapping/index.js.map +0 -1
  213. package/driver/lib/mapping/mapper.js.map +0 -1
  214. package/driver/lib/mapping/mapping-handler.js.map +0 -1
  215. package/driver/lib/mapping/model-batch-item.js.map +0 -1
  216. package/driver/lib/mapping/model-batch-mapper.js.map +0 -1
  217. package/driver/lib/mapping/model-mapper.js.map +0 -1
  218. package/driver/lib/mapping/model-mapping-info.js.map +0 -1
  219. package/driver/lib/mapping/object-selector.js.map +0 -1
  220. package/driver/lib/mapping/q.js.map +0 -1
  221. package/driver/lib/mapping/query-generator.js.map +0 -1
  222. package/driver/lib/mapping/result-mapper.js.map +0 -1
  223. package/driver/lib/mapping/result.js.map +0 -1
  224. package/driver/lib/mapping/table-mappings.js.map +0 -1
  225. package/driver/lib/mapping/tree.js.map +0 -1
  226. package/driver/lib/metadata/aggregate.js.map +0 -1
  227. package/driver/lib/metadata/client-state.js.map +0 -1
  228. package/driver/lib/metadata/data-collection.js.map +0 -1
  229. package/driver/lib/metadata/event-debouncer.js.map +0 -1
  230. package/driver/lib/metadata/index.js.map +0 -1
  231. package/driver/lib/metadata/materialized-view.js.map +0 -1
  232. package/driver/lib/metadata/schema-function.js.map +0 -1
  233. package/driver/lib/metadata/schema-index.js.map +0 -1
  234. package/driver/lib/metadata/schema-parser.js.map +0 -1
  235. package/driver/lib/metadata/table-metadata.js.map +0 -1
  236. package/driver/lib/metrics/client-metrics.js.map +0 -1
  237. package/driver/lib/metrics/default-metrics.js.map +0 -1
  238. package/driver/lib/metrics/index.js.map +0 -1
  239. package/driver/lib/operation-state.js.map +0 -1
  240. package/driver/lib/policies/address-resolution.js.map +0 -1
  241. package/driver/lib/policies/index.js.map +0 -1
  242. package/driver/lib/policies/load-balancing.js.map +0 -1
  243. package/driver/lib/policies/reconnection.js.map +0 -1
  244. package/driver/lib/policies/retry.js.map +0 -1
  245. package/driver/lib/policies/speculative-execution.js.map +0 -1
  246. package/driver/lib/policies/timestamp-generation.js.map +0 -1
  247. package/driver/lib/prepare-handler.js.map +0 -1
  248. package/driver/lib/promise-utils.js.map +0 -1
  249. package/driver/lib/readers.js.map +0 -1
  250. package/driver/lib/request-execution.js.map +0 -1
  251. package/driver/lib/request-handler.js.map +0 -1
  252. package/driver/lib/requests.js.map +0 -1
  253. package/driver/lib/stream-id-stack.js.map +0 -1
  254. package/driver/lib/streams.js.map +0 -1
  255. package/driver/lib/token.js.map +0 -1
  256. package/driver/lib/tokenizer.js.map +0 -1
  257. package/driver/lib/tracker/index.js.map +0 -1
  258. package/driver/lib/tracker/request-logger.js.map +0 -1
  259. package/driver/lib/tracker/request-tracker.js.map +0 -1
  260. package/driver/lib/types/big-decimal.js.map +0 -1
  261. package/driver/lib/types/duration.js.map +0 -1
  262. package/driver/lib/types/index.js.map +0 -1
  263. package/driver/lib/types/inet-address.js.map +0 -1
  264. package/driver/lib/types/integer.js.map +0 -1
  265. package/driver/lib/types/local-date.js.map +0 -1
  266. package/driver/lib/types/local-time.js.map +0 -1
  267. package/driver/lib/types/mutable-long.js.map +0 -1
  268. package/driver/lib/types/protocol-version.js.map +0 -1
  269. package/driver/lib/types/result-set.js.map +0 -1
  270. package/driver/lib/types/result-stream.js.map +0 -1
  271. package/driver/lib/types/row.js.map +0 -1
  272. package/driver/lib/types/time-uuid.js.map +0 -1
  273. package/driver/lib/types/tuple.js.map +0 -1
  274. package/driver/lib/types/uuid.js.map +0 -1
  275. package/driver/lib/types/vector.js.map +0 -1
  276. package/driver/lib/types/version-number.js.map +0 -1
  277. package/driver/lib/utils.js.map +0 -1
  278. package/driver/lib/writers.js.map +0 -1
  279. package/index.js.map +0 -1
  280. package/logger/index.js.map +0 -1
  281. package/model/index.js.map +0 -1
  282. package/operations/countAll.js.map +0 -1
  283. package/operations/delete.js.map +0 -1
  284. package/operations/find.js.map +0 -1
  285. package/operations/findOne.js.map +0 -1
  286. package/operations/sync.js.map +0 -1
  287. package/operations/tableExists.js.map +0 -1
  288. package/operations/update.js.map +0 -1
  289. package/package.js.map +0 -1
  290. package/schema/index.js.map +0 -1
  291. package/types.js.map +0 -1
  292. package/utils/buildMapper.js.map +0 -1
  293. package/utils/delay.js.map +0 -1
  294. package/utils/fillDefaults.js.map +0 -1
  295. package/utils/loadModels.js.map +0 -1
  296. package/utils/queryParser.js.map +0 -1
  297. package/utils/typeChecker.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,246 @@
1
+ # @ragestudio/scylla-odm
2
+
3
+ > A lightweight ODM for ScyllaDB and Cassandra.
4
+
5
+ > **Warning:** under active development, not production-ready.
6
+
7
+ ---
8
+
9
+ ## why this exists
10
+
11
+ Most of (not existent) Node.js ODMs for ScyllaDB/Cassandra rely on the official `cassandra-driver`.
12
+
13
+ The official `cassandra-driver` ships a built-in mapper, but it has no
14
+ TypeScript support or a friendly interface.
15
+ You define your columns with plain strings and get
16
+ plain objects back — no autocomplete, no type checking, no safety net.
17
+
18
+ This ODM is built on top of a modified `cassandra-driver` and adds:
19
+
20
+ - **Type-safe schemas** — your column types are inferred, so `find`,
21
+ `create`, and `save` all know the shape of your data
22
+ - **ODM Methods** — easier & friendly API for interacting with your data
23
+ - **Full TypeScript support** — autocomplete, type checking, and inference
24
+ from schema to model to document
25
+ - **MongoDB-style query operators** — `$gt`, `$in`, `$lte`, etc., all typed
26
+
27
+ We also stripped out everything you probably never use (DataStax Insights,
28
+ metrics, heavy dependencies, and other services) and applied a bunch of performance patches on
29
+ top of the driver itself.
30
+
31
+ The result is a leaner driver with less overhead, fewer timers, and better
32
+ memory usage.
33
+
34
+ ---
35
+
36
+ ## install
37
+
38
+ ```bash
39
+ npm install @ragestudio/scylla-odm
40
+ ```
41
+
42
+ ---
43
+
44
+ ## quick start
45
+
46
+ ```ts
47
+ import Client, { Schema, Model, ColumnTypes } from "@ragestudio/scylla-odm";
48
+ import type { Column } from "@ragestudio/scylla-odm/types";
49
+
50
+ // 1. define a schema
51
+ const userSchema = new Schema(
52
+ {
53
+ table_name: "users",
54
+ keys: ["id"], // partition key and clustering keys
55
+ },
56
+ {
57
+ id: { type: ColumnTypes.Int, required: true } as Column<number>,
58
+ name: { type: ColumnTypes.Text, required: true } as Column<string>,
59
+ email: { type: ColumnTypes.Text, required: true } as Column<string>,
60
+ age: { type: ColumnTypes.Int } as Column<number>,
61
+ },
62
+ );
63
+
64
+ // 2. create a model
65
+ const User = new Model("User", userSchema);
66
+
67
+ // 3. create a client
68
+ const client = new Client({
69
+ contactPoints: ["127.0.0.1"],
70
+ localDataCenter: "datacenter1",
71
+ keyspace: "myapp",
72
+ });
73
+
74
+ // 4. initialize and connect
75
+ await client.initialize();
76
+
77
+ // 4. create and save documents
78
+ const user = User.create({
79
+ id: 1234,
80
+ name: "Alice",
81
+ email: "alice@example.com",
82
+ age: 30,
83
+ });
84
+
85
+ await user.save();
86
+
87
+ // 5. query
88
+ const found = await User.findOne({ id: 1234 });
89
+ console.log(found?.name); // "Alice"
90
+
91
+ // 6. shutdown
92
+ await client.shutdown();
93
+ ```
94
+
95
+ ---
96
+
97
+ ## schema
98
+
99
+ A schema describes a table: its name, primary keys, and columns.
100
+
101
+ ```ts
102
+ const productSchema = new Schema(
103
+ {
104
+ table_name: "products",
105
+ keys: [["category"], "id"], // compound partition key
106
+ clustering_order: { created_at: "desc" }, // optional
107
+ },
108
+ {
109
+ category: { type: ColumnTypes.Text, required: true } as Column<string>,
110
+ id: { type: ColumnTypes.Uuid, required: true } as Column<string>,
111
+ title: { type: ColumnTypes.Text, required: true } as Column<string>,
112
+ price: { type: ColumnTypes.Double, required: true } as Column<number>,
113
+ created_at: { type: ColumnTypes.Timestamp } as Column<Date>,
114
+ },
115
+ );
116
+ ```
117
+
118
+ ---
119
+
120
+ ## model
121
+
122
+ A model wraps a schema and provides the query interface.
123
+
124
+ ```ts
125
+ const Product = new Model("Product", productSchema);
126
+ ```
127
+
128
+ ### methods
129
+
130
+ | method | description |
131
+ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
132
+ | `create(data)` / `obj()` | create a new document (not persisted yet) |
133
+ | `find(query, options?)` | find documents matching the query, returns an array of documents |
134
+ | `findOne(query, options?)` | find a single document, if no document is found, returns `null`. Due the mapper limitation, note that all partition and clustering keys must be defined in order to use this method. |
135
+ | |
136
+ | `update(query)` | update documents matching the query |
137
+ | `delete(query)` | delete documents matching the query |
138
+ | `countAll()` | count all documents in the table |
139
+
140
+ ---
141
+
142
+ ## document
143
+
144
+ Documents are the objects you work with. They carry the data and a few helpers.
145
+
146
+ ```ts
147
+ const product = Product.create({
148
+ category: "books",
149
+ id: uuid(),
150
+ title: "ODM 101",
151
+ price: 29.99,
152
+ });
153
+
154
+ await product.save(); // persist to ScyllaDB
155
+ await product.delete(); // delete from ScyllaDB
156
+ product.toRaw(); // plain object without internal fields
157
+ product.getChangedFields(original); // diff between current and original data
158
+ ```
159
+
160
+ ---
161
+
162
+ ## query operators
163
+
164
+ Use MongoDB-style operators in your queries:
165
+
166
+ ```ts
167
+ // exact match
168
+ await User.find({ name: "Alice" });
169
+
170
+ // comparison operators
171
+ await Product.find({ price: { $gt: 10, $lte: 50 } });
172
+
173
+ // list matching
174
+ await User.find({ age: { $in: [25, 30, 35] } });
175
+
176
+ // sorting
177
+ await Product.find({ category: "books" }, { $orderby: { created_at: "desc" } });
178
+
179
+ // raw results (skip document wrapping)
180
+ const raw = await Product.find({ category: "books" }, { raw: true });
181
+ ```
182
+
183
+ ---
184
+
185
+ ## configuration
186
+
187
+ ```ts
188
+ const client = new Client({
189
+ modelsPath: "./db",
190
+ contactPoints: ["127.0.0.1"],
191
+ localDataCenter: "datacenter1",
192
+ keyspace: "myapp",
193
+ port: 9042,
194
+ maxRetries: 3,
195
+ retryDelay: 1000,
196
+ pooling: {
197
+ coreConnectionsPerHost: {
198
+ local: 2,
199
+ },
200
+ maxRequestsPerConnection: 1024,
201
+ },
202
+ });
203
+ ```
204
+
205
+ You can also configure via environment variables:
206
+
207
+ | variable | default |
208
+ | -------------------------- | ------------------ |
209
+ | `SCYLLA_CONTACT_POINTS` | `127.0.0.1` |
210
+ | `SCYLLA_LOCAL_DATA_CENTER` | `datacenter1` |
211
+ | `SCYLLA_KEYSPACE` | `default_keyspace` |
212
+
213
+ ---
214
+
215
+ ## about the driver
216
+
217
+ This package ships a modified version of the `cassandra-driver`
218
+
219
+ ---
220
+
221
+ ## license
222
+
223
+ This project is licensed under the [MIT license](https://opensource.org/licenses/MIT).
224
+
225
+ The bundled `cassandra-driver` is licensed under the
226
+ [Apache License, Version 2.0](src/driver/LICENSE.txt).
227
+
228
+ ```
229
+ Apache Cassandra NodeJS Driver
230
+ Copyright 2013 The Apache Software Foundation
231
+
232
+ Licensed under the Apache License, Version 2.0 (the "License");
233
+ you may not use this file except in compliance with the License.
234
+ You may obtain a copy of the License at
235
+
236
+ http://www.apache.org/licenses/LICENSE-2.0
237
+
238
+ Unless required by applicable law or agreed to in writing, software
239
+ distributed under the License is distributed on an "AS IS" BASIS,
240
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
241
+ See the License for the specific language governing permissions and
242
+ limitations under the License.
243
+ ```
244
+
245
+ See [`src/driver/LICENSE.txt`](src/driver/LICENSE.txt) and
246
+ [`src/driver/NOTICE.txt`](src/driver/NOTICE.txt) for the full legal text.
@@ -1,26 +1 @@
1
- import { createRequire } from "node:module";
2
- //#region \0rolldown/runtime.js
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
- key = keys[i];
13
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: ((k) => from[k]).bind(null, key),
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
21
- value: mod,
22
- enumerable: true
23
- }) : target, mod));
24
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
25
- //#endregion
26
- export { __commonJSMin, __require, __toESM };
1
+ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};export{t as __exportAll};
package/client.d.ts CHANGED
@@ -22,5 +22,4 @@ declare class Client {
22
22
  private isRetryableError;
23
23
  }
24
24
  //#endregion
25
- export { Client, Client as default };
26
- //# sourceMappingURL=client.d.ts.map
25
+ export { Client, Client as default };
package/client.js CHANGED
@@ -1,119 +1 @@
1
- import { __toESM } from "./_virtual/_rolldown/runtime.js";
2
- import { require_driver } from "./driver/index.js";
3
- import { Model } from "./model/index.js";
4
- import { Logger } from "./logger/index.js";
5
- import loadModels_default from "./utils/loadModels.js";
6
- import buildMapper_default from "./utils/buildMapper.js";
7
- import delay from "./utils/delay.js";
8
- import path from "node:path";
9
- //#region src/client.ts
10
- var import_driver = /* @__PURE__ */ __toESM(require_driver(), 1);
11
- const DEFAULT_MAX_RETRIES = 3;
12
- const DEFAULT_RETRY_DELAY = 1e3;
13
- const { SCYLLA_CONTACT_POINTS, SCYLLA_LOCAL_DATA_CENTER, SCYLLA_KEYSPACE } = process.env;
14
- var Client = class {
15
- constructor(config = {}) {
16
- if (globalThis.__scylla_client) throw new Error("An instance of Scylla Client is already initialized");
17
- this.config = {
18
- modelsPath: path.resolve(process.cwd(), "db"),
19
- contactPoints: config.contactPoints ?? SCYLLA_CONTACT_POINTS?.split(",") ?? ["127.0.0.1"],
20
- localDataCenter: config.localDataCenter ?? SCYLLA_LOCAL_DATA_CENTER ?? "datacenter1",
21
- keyspace: config.keyspace ?? SCYLLA_KEYSPACE ?? "default_keyspace",
22
- port: 9042,
23
- maxRetries: DEFAULT_MAX_RETRIES,
24
- retryDelay: DEFAULT_RETRY_DELAY,
25
- ...config
26
- };
27
- const clientOptions = {
28
- contactPoints: this.config.contactPoints,
29
- localDataCenter: this.config.localDataCenter,
30
- keyspace: this.config.keyspace,
31
- protocolOptions: { port: this.config.port }
32
- };
33
- if (this.config.pooling) clientOptions.pooling = this.config.pooling;
34
- this.driver = new import_driver.Client(clientOptions);
35
- }
36
- config;
37
- driver;
38
- mapper;
39
- models = /* @__PURE__ */ new Map();
40
- model(name) {
41
- return this.models.get(name);
42
- }
43
- logger = new Logger();
44
- async initialize(options = {}) {
45
- let models;
46
- try {
47
- models = await loadModels_default(this.config.modelsPath);
48
- } catch (error) {
49
- throw new Error(`Failed to load models: ${error.message}`);
50
- }
51
- models = models.filter((schema) => schema instanceof Model);
52
- this.mapper = new import_driver.mapping.Mapper(this.driver, { models: buildMapper_default(models) });
53
- globalThis.__scylla_client = this;
54
- this.logger.log("Connecting...");
55
- await this.connectWithRetry();
56
- this.logger.log("Connected");
57
- for (let model of models) {
58
- this.models.set(model.name, model);
59
- if (options?.sync === true) await model._sync();
60
- }
61
- }
62
- async shutdown() {
63
- try {
64
- await this.driver.shutdown();
65
- this.logger.log("connection closed");
66
- delete globalThis.__scylla_client;
67
- } catch (error) {
68
- this.logger.error("error shutting down connection:", error);
69
- throw error;
70
- }
71
- }
72
- async connectWithRetry() {
73
- let lastError = null;
74
- for (let attempt = 1; attempt <= this.config.maxRetries; attempt++) try {
75
- await this.driver.connect();
76
- return;
77
- } catch (error) {
78
- lastError = error;
79
- this.logger.warn(`Connection attempt ${attempt} failed: ${error.message}`);
80
- if (attempt < this.config.maxRetries) {
81
- this.logger.log(`Retrying in ${this.config.retryDelay}ms...`);
82
- await delay(this.config.retryDelay);
83
- }
84
- }
85
- throw new Error(`Failed to connect to ScyllaDB after ${this.config.maxRetries} attempts: ${lastError?.message}`);
86
- }
87
- async executeWithRetry(operation, operationName = "operation") {
88
- let lastError = null;
89
- for (let attempt = 1; attempt <= this.config.maxRetries; attempt++) try {
90
- return await operation();
91
- } catch (error) {
92
- lastError = error;
93
- if (this.isRetryableError(error) && attempt < this.config.maxRetries) {
94
- this.logger.warn(`Operation ${operationName} attempt ${attempt} failed: ${error.message}`);
95
- this.logger.log(`Retrying in ${this.config.retryDelay}ms...`);
96
- await delay(this.config.retryDelay);
97
- continue;
98
- }
99
- throw error;
100
- }
101
- throw new Error(`Operation ${operationName} failed after ${this.config.maxRetries} attempts: ${lastError?.message}`);
102
- }
103
- isRetryableError(error) {
104
- const retryableMessages = [
105
- "timeout",
106
- "connection",
107
- "network",
108
- "unavailable",
109
- "overloaded",
110
- "no hosts available"
111
- ];
112
- const errorMessage = error.message?.toLowerCase() || "";
113
- return retryableMessages.some((msg) => errorMessage.includes(msg));
114
- }
115
- };
116
- //#endregion
117
- export { Client, Client as default };
118
-
119
- //# sourceMappingURL=client.js.map
1
+ import e from"./driver/index.js";import{Model as t}from"./model/index.js";import{Logger as n}from"./logger/index.js";import r from"./utils/loadModels.js";import i from"./utils/buildMapper.js";import a from"./utils/delay.js";import o from"node:path";const{SCYLLA_CONTACT_POINTS:s,SCYLLA_LOCAL_DATA_CENTER:c,SCYLLA_KEYSPACE:l}=process.env;var u=class{constructor(t={}){if(globalThis.__scylla_client)throw Error(`An instance of Scylla Client is already initialized`);this.config={modelsPath:o.resolve(process.cwd(),`db`),contactPoints:t.contactPoints??s?.split(`,`)??[`127.0.0.1`],localDataCenter:t.localDataCenter??c??`datacenter1`,keyspace:t.keyspace??l??`default_keyspace`,port:9042,maxRetries:3,retryDelay:1e3,...t};let n={contactPoints:this.config.contactPoints,localDataCenter:this.config.localDataCenter,keyspace:this.config.keyspace,protocolOptions:{port:this.config.port}};this.config.pooling&&(n.pooling=this.config.pooling),this.driver=new e.Client(n)}config;driver;mapper;models=new Map;model(e){return this.models.get(e)}logger=new n;async initialize(n={}){let a;try{a=await r(this.config.modelsPath)}catch(e){throw Error(`Failed to load models: ${e.message}`)}a=a.filter(e=>e instanceof t),this.mapper=new e.mapping.Mapper(this.driver,{models:i(a)}),globalThis.__scylla_client=this,this.logger.log(`Connecting...`),await this.connectWithRetry(),this.logger.log(`Connected`);for(let e of a)this.models.set(e.name,e),n?.sync===!0&&await e._sync()}async shutdown(){try{await this.driver.shutdown(),this.logger.log(`connection closed`),delete globalThis.__scylla_client}catch(e){throw this.logger.error(`error shutting down connection:`,e),e}}async connectWithRetry(){let e=null;for(let t=1;t<=this.config.maxRetries;t++)try{await this.driver.connect();return}catch(n){e=n,this.logger.warn(`Connection attempt ${t} failed: ${n.message}`),t<this.config.maxRetries&&(this.logger.log(`Retrying in ${this.config.retryDelay}ms...`),await a(this.config.retryDelay))}throw Error(`Failed to connect to ScyllaDB after ${this.config.maxRetries} attempts: ${e?.message}`)}async executeWithRetry(e,t=`operation`){let n=null;for(let r=1;r<=this.config.maxRetries;r++)try{return await e()}catch(e){if(n=e,this.isRetryableError(e)&&r<this.config.maxRetries){this.logger.warn(`Operation ${t} attempt ${r} failed: ${e.message}`),this.logger.log(`Retrying in ${this.config.retryDelay}ms...`),await a(this.config.retryDelay);continue}throw e}throw Error(`Operation ${t} failed after ${this.config.maxRetries} attempts: ${n?.message}`)}isRetryableError(e){let t=[`timeout`,`connection`,`network`,`unavailable`,`overloaded`,`no hosts available`],n=e.message?.toLowerCase()||``;return t.some(e=>n.includes(e))}};export{u as Client,u as default};
@@ -8,5 +8,4 @@ type KeyspaceCreateOptions = {
8
8
  };
9
9
  declare function createKeyspace(options: KeyspaceCreateOptions): string;
10
10
  //#endregion
11
- export { createKeyspace as default };
12
- //# sourceMappingURL=create_keyspace.d.ts.map
11
+ export { createKeyspace as default };
@@ -1,14 +1 @@
1
- //#region src/cql_gen/create_keyspace.ts
2
- function createKeyspace(options) {
3
- let clause = {};
4
- if (options.replication) clause = options.replication;
5
- else clause = {
6
- strategy: "SimpleStrategy",
7
- options: { replication_factor: "1" }
8
- };
9
- return `CREATE KEYSPACE IF NOT EXISTS ${options.keyspace} WITH REPLICATION = ${JSON.stringify(clause)};`;
10
- }
11
- //#endregion
12
- export { createKeyspace as default };
13
-
14
- //# sourceMappingURL=create_keyspace.js.map
1
+ function e(e){let t={};return t=e.replication?e.replication:{strategy:`SimpleStrategy`,options:{replication_factor:`1`}},`CREATE KEYSPACE IF NOT EXISTS ${e.keyspace} WITH REPLICATION = ${JSON.stringify(t)};`}export{e as default};
@@ -3,5 +3,4 @@ import { Model } from "../model/index.js";
3
3
  //#region src/cql_gen/create_table.d.ts
4
4
  declare function export_default(model: Model): string;
5
5
  //#endregion
6
- export { export_default as default };
7
- //# sourceMappingURL=create_table.d.ts.map
6
+ export { export_default as default };
@@ -1,38 +1 @@
1
- //#region src/cql_gen/create_table.ts
2
- function create_table_default(model) {
3
- const desc = model.schema;
4
- const tableName = desc.table_name;
5
- const keyspace = model.client.config.keyspace;
6
- const fields = desc.fields;
7
- const key = desc.keys;
8
- const clusteringOrder = desc.clustering_order;
9
- let columnsDef = "";
10
- for (const fieldName in fields) {
11
- const field = fields[fieldName];
12
- const typeStr = typeof field === "string" ? field : field?.type;
13
- if (!typeStr) throw new Error(`Invalid field type for "${fieldName}" in model "${tableName}"`);
14
- columnsDef += `"${fieldName}" ${typeStr.toUpperCase()}, `;
15
- }
16
- let pkDef = "";
17
- if (typeof key === "string") pkDef = `"${key}"`;
18
- else if (Array.isArray(key) && key.length > 0) {
19
- const first = key[0];
20
- if (Array.isArray(first)) pkDef = `(${first.map((k) => `"${k}"`).join(", ")})`;
21
- else pkDef = `"${first}"`;
22
- for (let i = 1; i < key.length; i++) pkDef += `, "${key[i]}"`;
23
- } else throw new Error(`Missing or invalid primary key in model "${tableName}"`);
24
- let clusterClause = "";
25
- if (clusteringOrder) {
26
- let orderDef = "";
27
- for (const col in clusteringOrder) {
28
- if (orderDef !== "") orderDef += ", ";
29
- orderDef += `"${col}" ${clusteringOrder[col].toUpperCase()}`;
30
- }
31
- if (orderDef !== "") clusterClause = ` WITH CLUSTERING ORDER BY (${orderDef})`;
32
- }
33
- return `CREATE TABLE IF NOT EXISTS ${keyspace}.${tableName} (${columnsDef}PRIMARY KEY (${pkDef}))${clusterClause}`;
34
- }
35
- //#endregion
36
- export { create_table_default as default };
37
-
38
- //# sourceMappingURL=create_table.js.map
1
+ function e(e){let t=e.schema,n=t.table_name,r=e.client.config.keyspace,i=t.fields,a=t.keys,o=t.clustering_order,s=``;for(let e in i){let t=i[e],r=typeof t==`string`?t:t?.type;if(!r)throw Error(`Invalid field type for "${e}" in model "${n}"`);s+=`"${e}" ${r.toUpperCase()}, `}let c=``;if(typeof a==`string`)c=`"${a}"`;else if(Array.isArray(a)&&a.length>0){let e=a[0];c=Array.isArray(e)?`(${e.map(e=>`"${e}"`).join(`, `)})`:`"${e}"`;for(let e=1;e<a.length;e++)c+=`, "${a[e]}"`}else throw Error(`Missing or invalid primary key in model "${n}"`);let l=``;if(o){let e=``;for(let t in o)e!==``&&(e+=`, `),e+=`"${t}" ${o[t].toUpperCase()}`;e!==``&&(l=` WITH CLUSTERING ORDER BY (${e})`)}return`CREATE TABLE IF NOT EXISTS ${r}.${n} (${s}PRIMARY KEY (${c}))${l}`}export{e as default};
@@ -13,5 +13,4 @@ declare class Document<TDoc = any> {
13
13
  getChangedFields(original: Partial<TDoc>): (keyof TDoc)[];
14
14
  }
15
15
  //#endregion
16
- export { Document, Document as default };
17
- //# sourceMappingURL=index.d.ts.map
16
+ export { Document, Document as default };
package/document/index.js CHANGED
@@ -1,63 +1 @@
1
- //#region src/document/index.ts
2
- var Document = class {
3
- constructor(data, model) {
4
- if (data == null) throw new Error("Cannot create Document with null or undefined data");
5
- if (typeof data !== "object" || Array.isArray(data)) throw new Error("Document data must be an object");
6
- Object.assign(this, data);
7
- Object.defineProperty(this, "_model", {
8
- value: model,
9
- enumerable: false,
10
- writable: false,
11
- configurable: false
12
- });
13
- }
14
- _model;
15
- async save() {
16
- try {
17
- const data = this.toRaw();
18
- return await this._model.update(data);
19
- } catch (error) {
20
- throw new Error(`Failed to save document: ${error.message}`);
21
- }
22
- }
23
- async delete() {
24
- try {
25
- return await this._model.delete(this.toRaw());
26
- } catch (error) {
27
- throw new Error(`Failed to delete document: ${error.message}`);
28
- }
29
- }
30
- toRaw() {
31
- const raw = {};
32
- for (const key in this) {
33
- if (key === "_model") continue;
34
- if (this.propertyIsEnumerable(key)) {
35
- const value = this[key];
36
- try {
37
- JSON.stringify(value);
38
- raw[key] = value;
39
- } catch (error) {
40
- raw[key] = String(value);
41
- }
42
- }
43
- }
44
- return raw;
45
- }
46
- isValid() {
47
- try {
48
- return true;
49
- } catch {
50
- return false;
51
- }
52
- }
53
- getChangedFields(original) {
54
- const current = this.toRaw();
55
- const changed = [];
56
- for (const key in current) if (!(key in original) || current[key] !== original[key]) changed.push(key);
57
- return changed;
58
- }
59
- };
60
- //#endregion
61
- export { Document, Document as default };
62
-
63
- //# sourceMappingURL=index.js.map
1
+ var e=class{constructor(e,t){if(e==null)throw Error(`Cannot create Document with null or undefined data`);if(typeof e!=`object`||Array.isArray(e))throw Error(`Document data must be an object`);Object.assign(this,e),Object.defineProperty(this,`_model`,{value:t,enumerable:!1,writable:!1,configurable:!1})}_model;async save(){try{let e=this.toRaw();return await this._model.update(e)}catch(e){throw Error(`Failed to save document: ${e.message}`)}}async delete(){try{return await this._model.delete(this.toRaw())}catch(e){throw Error(`Failed to delete document: ${e.message}`)}}toRaw(){let e={};for(let t in this)if(t!==`_model`&&this.propertyIsEnumerable(t)){let n=this[t];try{JSON.stringify(n),e[t]=n}catch{e[t]=String(n)}}return e}isValid(){try{return!0}catch{return!1}}getChangedFields(e){let t=this.toRaw(),n=[];for(let r in t)(!(r in e)||t[r]!==e[r])&&n.push(r);return n}};export{e as Document,e as default};
package/driver/index.d.ts CHANGED
@@ -4,17 +4,21 @@ import { policies } from "./lib/policies/index.js";
4
4
  import { metrics } from "./lib/metrics/index.js";
5
5
  import { tracker } from "./lib/tracker/index.js";
6
6
  import { metadata } from "./lib/metadata/index.js";
7
+ import { concurrent } from "./lib/concurrent/index.js";
7
8
  import { mapping } from "./lib/mapping/index.js";
8
- import * as events from "events";
9
- import * as tls from "tls";
9
+ import { geometry } from "./lib/geometry/index.js";
10
+ import * as events$1 from "events";
11
+ import * as tls$1 from "tls";
10
12
 
11
- //#region driver/index.d.ts
13
+ //#region src/driver/index.d.ts
14
+ declare const version: number;
15
+ declare function defaultOptions(): ClientOptions;
12
16
  type ValueCallback<T> = (err: Error, val: T) => void;
13
17
  type EmptyCallback = (err: Error) => void;
14
18
  type ArrayOrObject = any[] | {
15
19
  [key: string]: any;
16
20
  };
17
- declare class Client extends events.EventEmitter {
21
+ declare class Client extends events$1.EventEmitter {
18
22
  hosts: HostMap;
19
23
  keyspace: string;
20
24
  metadata: metadata.Metadata;
@@ -39,7 +43,7 @@ declare class Client extends events.EventEmitter {
39
43
  eachRow(query: string, params: ArrayOrObject, options: QueryOptions, rowCallback: (n: number, row: types.Row) => void, callback?: ValueCallback<types.ResultSet>): void;
40
44
  eachRow(query: string, params: ArrayOrObject, rowCallback: (n: number, row: types.Row) => void, callback?: ValueCallback<types.ResultSet>): void;
41
45
  eachRow(query: string, rowCallback: (n: number, row: types.Row) => void): void;
42
- stream(query: string, params?: ArrayOrObject, options?: QueryOptions, callback?: EmptyCallback): events.EventEmitter;
46
+ stream(query: string, params?: ArrayOrObject, options?: QueryOptions, callback?: EmptyCallback): events$1.EventEmitter;
43
47
  batch(queries: Array<string | {
44
48
  query: string;
45
49
  params?: ArrayOrObject;
@@ -57,14 +61,14 @@ declare class Client extends events.EventEmitter {
57
61
  getReplicas(keyspace: string, token: Buffer): Host[];
58
62
  getState(): metadata.ClientState;
59
63
  }
60
- interface HostMap extends events.EventEmitter {
64
+ interface HostMap extends events$1.EventEmitter {
61
65
  length: number;
62
66
  forEach(callback: (value: Host, key: string) => void): void;
63
67
  get(key: string): Host;
64
68
  keys(): string[];
65
69
  values(): Host[];
66
70
  }
67
- interface Host extends events.EventEmitter {
71
+ interface Host extends events$1.EventEmitter {
68
72
  address: string;
69
73
  cassandraVersion: string;
70
74
  datacenter: string;
@@ -159,7 +163,7 @@ interface ClientOptions {
159
163
  readTimeout?: number;
160
164
  tcpNoDelay?: boolean;
161
165
  };
162
- sslOptions?: tls.ConnectionOptions;
166
+ sslOptions?: tls$1.ConnectionOptions;
163
167
  }
164
168
  interface QueryOptions {
165
169
  autoPage?: boolean;
@@ -297,5 +301,4 @@ declare namespace token {
297
301
  }
298
302
  }
299
303
  //#endregion
300
- export { Client, ClientOptions, EmptyCallback, ExecutionOptions, Host, HostMap, ValueCallback, errors, token };
301
- //# sourceMappingURL=index.d.ts.map
304
+ export { ArrayOrObject, Client, ClientOptions, DseClientOptions, EmptyCallback, ExecutionOptions, ExecutionProfile, GraphOptions, GraphQueryOptions, Host, HostMap, QueryOptions, ValueCallback, auth, concurrent, defaultOptions, errors, geometry, mapping, metadata, metrics, policies, token, tracker, types, version };
package/driver/index.js CHANGED
@@ -1,53 +1 @@
1
- import { __commonJSMin } from "../_virtual/_rolldown/runtime.js";
2
- import { require_errors } from "./lib/errors.js";
3
- import { require_types } from "./lib/types/index.js";
4
- import { require_policies } from "./lib/policies/index.js";
5
- import { require_tracker } from "./lib/tracker/index.js";
6
- import { require_metrics } from "./lib/metrics/index.js";
7
- import { require_auth } from "./lib/auth/index.js";
8
- import { require_client_options } from "./lib/client-options.js";
9
- import { require_execution_profile } from "./lib/execution-profile.js";
10
- import { require_execution_options } from "./lib/execution-options.js";
11
- import { require_package } from "../package.js";
12
- import { require_token } from "./lib/token.js";
13
- import { require_geometry } from "./lib/geometry/index.js";
14
- import { require_encoder } from "./lib/encoder.js";
15
- import { require_metadata } from "./lib/metadata/index.js";
16
- import { require_client } from "./lib/client.js";
17
- import { require_mapping } from "./lib/mapping/index.js";
18
- import { require_concurrent } from "./lib/concurrent/index.js";
19
- //#region driver/index.js
20
- var require_driver = /* @__PURE__ */ __commonJSMin(((exports) => {
21
- const clientOptions = require_client_options();
22
- exports.Client = require_client();
23
- exports.ExecutionProfile = require_execution_profile().ExecutionProfile;
24
- exports.ExecutionOptions = require_execution_options().ExecutionOptions;
25
- exports.types = require_types();
26
- exports.errors = require_errors();
27
- exports.policies = require_policies();
28
- exports.auth = require_auth();
29
- exports.mapping = require_mapping();
30
- exports.tracker = require_tracker();
31
- exports.metrics = require_metrics();
32
- exports.concurrent = require_concurrent();
33
- const token = require_token();
34
- exports.token = {
35
- Token: token.Token,
36
- TokenRange: token.TokenRange
37
- };
38
- exports.metadata = { Metadata: require_metadata() };
39
- exports.Encoder = require_encoder();
40
- exports.geometry = require_geometry();
41
- /**
42
- * Returns a new instance of the default [options]{@link ClientOptions} used by the driver.
43
- */
44
- exports.defaultOptions = function() {
45
- return clientOptions.defaultOptions();
46
- };
47
- exports.version = require_package().version;
48
- }));
49
- //#endregion
50
- export default require_driver();
51
- export { require_driver };
52
-
53
- //# sourceMappingURL=index.js.map
1
+ import e from"./lib/errors.js";import t from"./lib/types/index.js";import n from"./lib/policies/index.js";import r from"./lib/tracker/index.js";import i from"./lib/metrics/index.js";import a from"./lib/auth/index.js";import o from"./lib/client-options.js";import{ExecutionProfile as s}from"./lib/execution-profile.js";import{ExecutionOptions as c}from"./lib/execution-options.js";import{version as l}from"../package.js";import{Token as u,TokenRange as d}from"./lib/token.js";import f from"./lib/geometry/index.js";import p from"./lib/encoder.js";import m from"./lib/metadata/index.js";import h from"./lib/client.js";import g from"./lib/mapping/index.js";import _ from"./lib/concurrent/index.js";const v={Token:u,TokenRange:d},y={Metadata:m};function b(){return o.defaultOptions()}const x={Client:h,ExecutionProfile:s,ExecutionOptions:c,types:t,errors:e,policies:n,auth:a,mapping:g,tracker:r,metrics:i,concurrent:_,token:v,metadata:y,Encoder:p,geometry:f,defaultOptions:b,version:l};export{x as default};