@ragestudio/scylla-odm 0.22.0 → 0.22.2

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 (196) hide show
  1. package/batch/index.d.ts +19 -21
  2. package/batch/index.d.ts.map +1 -0
  3. package/batch/index.js +37 -1
  4. package/batch/index.js.map +1 -0
  5. package/client.d.ts +24 -27
  6. package/client.d.ts.map +1 -0
  7. package/client.js +190 -1
  8. package/client.js.map +1 -0
  9. package/cql_gen/create_keyspace.d.ts +8 -9
  10. package/cql_gen/create_keyspace.d.ts.map +1 -0
  11. package/cql_gen/create_keyspace.js +14 -1
  12. package/cql_gen/create_keyspace.js.map +1 -0
  13. package/cql_gen/create_table.d.ts +3 -6
  14. package/cql_gen/create_table.d.ts.map +1 -0
  15. package/cql_gen/create_table.js +51 -1
  16. package/cql_gen/create_table.js.map +1 -0
  17. package/document/index.d.ts +11 -14
  18. package/document/index.d.ts.map +1 -0
  19. package/document/index.js +76 -1
  20. package/document/index.js.map +1 -0
  21. package/global.d.ts +6 -0
  22. package/global.d.ts.map +1 -0
  23. package/global.js +2 -0
  24. package/global.js.map +1 -0
  25. package/index.d.ts +9 -7
  26. package/index.d.ts.map +1 -0
  27. package/index.js +9 -1
  28. package/index.js.map +1 -0
  29. package/logger/index.d.ts +7 -8
  30. package/logger/index.d.ts.map +1 -0
  31. package/logger/index.js +14 -1
  32. package/logger/index.js.map +1 -0
  33. package/migrate/index.d.ts +12 -14
  34. package/migrate/index.d.ts.map +1 -0
  35. package/migrate/index.js +254 -4
  36. package/migrate/index.js.map +1 -0
  37. package/model/index.d.ts +64 -67
  38. package/model/index.d.ts.map +1 -0
  39. package/model/index.js +71 -1
  40. package/model/index.js.map +1 -0
  41. package/operations/countAll.d.ts +3 -6
  42. package/operations/countAll.d.ts.map +1 -0
  43. package/operations/countAll.js +13 -1
  44. package/operations/countAll.js.map +1 -0
  45. package/operations/delete.d.ts +5 -8
  46. package/operations/delete.d.ts.map +1 -0
  47. package/operations/delete.js +23 -1
  48. package/operations/delete.js.map +1 -0
  49. package/operations/find.d.ts +4 -7
  50. package/operations/find.d.ts.map +1 -0
  51. package/operations/find.js +19 -1
  52. package/operations/find.js.map +1 -0
  53. package/operations/findOne.d.ts +4 -7
  54. package/operations/findOne.d.ts.map +1 -0
  55. package/operations/findOne.js +21 -1
  56. package/operations/findOne.js.map +1 -0
  57. package/operations/insert.d.ts +5 -8
  58. package/operations/insert.d.ts.map +1 -0
  59. package/operations/insert.js +24 -1
  60. package/operations/insert.js.map +1 -0
  61. package/operations/sync.d.ts +3 -6
  62. package/operations/sync.d.ts.map +1 -0
  63. package/operations/sync.js +16 -1
  64. package/operations/sync.js.map +1 -0
  65. package/operations/tableExists.d.ts +3 -6
  66. package/operations/tableExists.d.ts.map +1 -0
  67. package/operations/tableExists.js +15 -2
  68. package/operations/tableExists.js.map +1 -0
  69. package/operations/update.d.ts +5 -8
  70. package/operations/update.d.ts.map +1 -0
  71. package/operations/update.js +35 -1
  72. package/operations/update.js.map +1 -0
  73. package/package.json +13 -3
  74. package/schema/index.d.ts +13 -15
  75. package/schema/index.d.ts.map +1 -0
  76. package/schema/index.js +23 -1
  77. package/schema/index.js.map +1 -0
  78. package/types.d.ts +98 -84
  79. package/types.d.ts.map +1 -0
  80. package/types.js +33 -1
  81. package/types.js.map +1 -0
  82. package/utils/buildMapper.d.ts +12 -4
  83. package/utils/buildMapper.d.ts.map +1 -0
  84. package/utils/buildMapper.js +11 -1
  85. package/utils/buildMapper.js.map +1 -0
  86. package/utils/delay.d.ts +3 -4
  87. package/utils/delay.d.ts.map +1 -0
  88. package/utils/delay.js +5 -1
  89. package/utils/delay.js.map +1 -0
  90. package/utils/fillDefaults.d.ts +2 -4
  91. package/utils/fillDefaults.d.ts.map +1 -0
  92. package/utils/fillDefaults.js +24 -1
  93. package/utils/fillDefaults.js.map +1 -0
  94. package/utils/isPlainObject.d.ts +3 -4
  95. package/utils/isPlainObject.d.ts.map +1 -0
  96. package/utils/isPlainObject.js +11 -1
  97. package/utils/isPlainObject.js.map +1 -0
  98. package/utils/loadModels.d.ts +3 -4
  99. package/utils/loadModels.d.ts.map +1 -0
  100. package/utils/loadModels.js +29 -1
  101. package/utils/loadModels.js.map +1 -0
  102. package/utils/queryParser.d.ts +5 -8
  103. package/utils/queryParser.d.ts.map +1 -0
  104. package/utils/queryParser.js +102 -1
  105. package/utils/queryParser.js.map +1 -0
  106. package/utils/typeChecker.d.ts +3 -6
  107. package/utils/typeChecker.d.ts.map +1 -0
  108. package/utils/typeChecker.js +90 -1
  109. package/utils/typeChecker.js.map +1 -0
  110. package/driver/auth/index.d.ts +0 -34
  111. package/driver/auth/index.js +0 -1
  112. package/driver/auth/no-auth-provider.js +0 -1
  113. package/driver/auth/plain-text-auth-provider.js +0 -1
  114. package/driver/auth/provider.js +0 -1
  115. package/driver/client-options.js +0 -1
  116. package/driver/client.js +0 -1
  117. package/driver/concurrent/index.d.ts +0 -1
  118. package/driver/concurrent/index.js +0 -1
  119. package/driver/connection.js +0 -1
  120. package/driver/control-connection.js +0 -1
  121. package/driver/encoder.js +0 -1
  122. package/driver/errors.js +0 -1
  123. package/driver/execution-options.js +0 -1
  124. package/driver/execution-profile.js +0 -1
  125. package/driver/host-connection-pool.js +0 -1
  126. package/driver/host.js +0 -1
  127. package/driver/index.d.ts +0 -212
  128. package/driver/index.js +0 -1
  129. package/driver/mapping/cache.js +0 -1
  130. package/driver/mapping/doc-info-adapter.js +0 -1
  131. package/driver/mapping/index.d.ts +0 -142
  132. package/driver/mapping/index.js +0 -1
  133. package/driver/mapping/mapper.js +0 -1
  134. package/driver/mapping/mapping-handler.js +0 -1
  135. package/driver/mapping/model-batch-item.js +0 -1
  136. package/driver/mapping/model-batch-mapper.js +0 -1
  137. package/driver/mapping/model-mapper.js +0 -1
  138. package/driver/mapping/model-mapping-info.js +0 -1
  139. package/driver/mapping/object-selector.js +0 -1
  140. package/driver/mapping/q.js +0 -1
  141. package/driver/mapping/query-generator.js +0 -9
  142. package/driver/mapping/result-mapper.js +0 -4
  143. package/driver/mapping/result.js +0 -1
  144. package/driver/mapping/table-mappings.js +0 -1
  145. package/driver/mapping/tree.js +0 -1
  146. package/driver/metadata/aggregate.js +0 -1
  147. package/driver/metadata/client-state.js +0 -1
  148. package/driver/metadata/data-collection.js +0 -1
  149. package/driver/metadata/event-debouncer.js +0 -1
  150. package/driver/metadata/index.d.ts +0 -184
  151. package/driver/metadata/index.js +0 -1
  152. package/driver/metadata/materialized-view.js +0 -1
  153. package/driver/metadata/schema-function.js +0 -1
  154. package/driver/metadata/schema-index.js +0 -1
  155. package/driver/metadata/schema-parser.js +0 -1
  156. package/driver/metadata/table-metadata.js +0 -1
  157. package/driver/operation-state.js +0 -1
  158. package/driver/policies/address-resolution.js +0 -1
  159. package/driver/policies/index.d.ts +0 -135
  160. package/driver/policies/index.js +0 -1
  161. package/driver/policies/load-balancing.js +0 -1
  162. package/driver/policies/reconnection.js +0 -1
  163. package/driver/policies/retry.js +0 -1
  164. package/driver/policies/speculative-execution.js +0 -1
  165. package/driver/policies/timestamp-generation.js +0 -1
  166. package/driver/prepare-handler.js +0 -1
  167. package/driver/promise-utils.js +0 -1
  168. package/driver/readers.js +0 -1
  169. package/driver/request-execution.js +0 -1
  170. package/driver/request-handler.js +0 -1
  171. package/driver/requests.js +0 -1
  172. package/driver/stream-id-stack.js +0 -1
  173. package/driver/streams.js +0 -1
  174. package/driver/token.js +0 -1
  175. package/driver/tokenizer.js +0 -1
  176. package/driver/types/big-decimal.js +0 -1
  177. package/driver/types/duration.js +0 -1
  178. package/driver/types/index.d.ts +0 -320
  179. package/driver/types/index.js +0 -1
  180. package/driver/types/inet-address.js +0 -1
  181. package/driver/types/integer.js +0 -1
  182. package/driver/types/local-date.js +0 -1
  183. package/driver/types/local-time.js +0 -1
  184. package/driver/types/mutable-long.js +0 -1
  185. package/driver/types/protocol-version.js +0 -1
  186. package/driver/types/result-set.js +0 -1
  187. package/driver/types/result-stream.js +0 -1
  188. package/driver/types/row.js +0 -1
  189. package/driver/types/time-uuid.js +0 -1
  190. package/driver/types/tuple.js +0 -1
  191. package/driver/types/uuid.js +0 -1
  192. package/driver/types/vector.js +0 -1
  193. package/driver/types/version-number.js +0 -1
  194. package/driver/utils.js +0 -4
  195. package/driver/writers.js +0 -1
  196. package/package.js +0 -1
@@ -1 +0,0 @@
1
- import{QueryAssignment as e,QueryOperator as t}from"./q.js";var n=class Cache{static*getSelectKey(e,t,n){yield*Cache._yieldKeyAndOperators(e,t),yield*Cache._getSelectDocInfo(n)}static*getSelectAllKey(e){yield`root`,yield*Cache._getSelectDocInfo(e)}static*_getSelectDocInfo(e){if(e&&(e.fields&&e.fields.length>0&&(yield`|f|`,yield*e.fields),typeof e.limit==`number`&&(yield`|l|`),e.orderBy)){yield`|o|`;let t=Object.keys(e.orderBy);for(let n=0;n<t.length;n++){let r=t[n];yield r,yield e.orderBy[r]}}}static*getInsertKey(e,t){yield*e,t&&(t.fields&&t.fields.length>0&&(yield`|f|`,yield*t.fields),typeof t.ttl==`number`&&(yield`|t|`),t.ifNotExists&&(yield`|e|`))}static*getUpdateKey(e,t,n){yield*Cache._yieldKeyAndAllQs(e,t),n&&(n.fields&&n.fields.length>0&&(yield`|f|`,yield*n.fields),typeof n.ttl==`number`&&(yield`|t|`),n.ifExists&&(yield`|e|`),n.when&&(yield*Cache._yieldKeyAndOperators(Object.keys(n.when),n.when)))}static*getRemoveKey(e,t,n){yield*Cache._yieldKeyAndOperators(e,t),n&&(n.fields&&n.fields.length>0&&(yield`|f|`,yield*n.fields),n.ifExists&&(yield`|e|`),n.deleteOnlyColumns&&(yield`|dc|`),n.when&&(yield*Cache._yieldKeyAndOperators(Object.keys(n.when),n.when)))}static*_yieldKeyAndOperators(e,t){for(let n=0;n<e.length;n++){let r=e[n];yield r,yield*Cache._yieldOperators(t[r])}}static*_yieldOperators(e){e!=null&&e instanceof t&&(yield e.key,e.hasChildValues&&(yield*Cache._yieldOperators(e.value[0]),yield`|/|`,yield*Cache._yieldOperators(e.value[1])))}static*_yieldKeyAndAllQs(n,r){for(let i=0;i<n.length;i++){let a=n[i];yield a;let o=r[a];o!=null&&(o instanceof t?yield*Cache._yieldOperators(o):o instanceof e&&(yield o.sign,yield o.inverted))}}};export{n as default};
@@ -1 +0,0 @@
1
- import e from"../errors.js";import t from"../utils.js";var DocInfoAdapter=class{static getPropertiesInfo(e,t,n,r){let i=e;return t&&t.fields&&t.fields.length>0&&(i=t.fields),i.map(e=>({propertyName:e,columnName:r.getColumnName(e),value:n[e],fromModel:r.getFromModelFn(e)}))}static adaptOrderBy(n,r){return!n||!n.orderBy?t.emptyArray:Object.keys(n.orderBy).map(t=>{let i=n.orderBy[t],a=typeof i==`string`?i.toUpperCase():i;if(a!==`ASC`&&a!==`DESC`)throw new e.ArgumentError(`Order must be either "ASC" or "DESC", obtained: `+i);return[r.getColumnName(t),a]})}static adaptOptions(e,t){let n={prepare:!0,executionProfile:void 0,timestamp:void 0,isIdempotent:t};return typeof e==`string`?n.executionProfile=e:e!=null&&(n.executionProfile=e.executionProfile,n.timestamp=e.timestamp,e.isIdempotent!==void 0&&(n.isIdempotent=e.isIdempotent)),n}static adaptAllOptions(e,t){let n={prepare:!0,executionProfile:void 0,fetchSize:void 0,pageState:void 0,timestamp:void 0,isIdempotent:void 0};return typeof e==`string`?n.executionProfile=e:e!=null&&(n.executionProfile=e.executionProfile,n.fetchSize=e.fetchSize,n.pageState=e.pageState,n.timestamp=e.timestamp,n.isIdempotent=e.isIdempotent),t&&(n.isIdempotent=!0),n}static adaptBatchOptions(e,t,n){let r={prepare:!0,executionProfile:void 0,timestamp:void 0,logged:void 0,isIdempotent:t,counter:n};return typeof e==`string`?r.executionProfile=e:e!=null&&(r.executionProfile=e.executionProfile,r.timestamp=e.timestamp,r.logged=e.logged!==!1,e.isIdempotent!==void 0&&(r.isIdempotent=e.isIdempotent)),r}};export{DocInfoAdapter as default};
@@ -1,142 +0,0 @@
1
- import { types } from "../types/index.js";
2
- import { Client } from "../index.js";
3
-
4
- //#region src/driver/mapping/index.d.ts
5
- declare namespace mapping {
6
- interface TableMappings {
7
- getColumnName(propName: string): string;
8
- getPropertyName(columnName: string): string;
9
- newObjectInstance(): any;
10
- }
11
- class DefaultTableMappings implements TableMappings {
12
- getColumnName(propName: string): string;
13
- getPropertyName(columnName: string): string;
14
- newObjectInstance(): any;
15
- }
16
- class UnderscoreCqlToCamelCaseMappings implements TableMappings {
17
- getColumnName(propName: string): string;
18
- getPropertyName(columnName: string): string;
19
- newObjectInstance(): any;
20
- }
21
- interface Result<T = any> extends Iterator<T> {
22
- wasApplied(): boolean;
23
- first(): T | null;
24
- forEach(callback: (currentValue: T, index: number) => void, thisArg?: any): void;
25
- toArray(): T[];
26
- }
27
- type MappingExecutionOptions = {
28
- executionProfile?: string;
29
- isIdempotent?: boolean;
30
- logged?: boolean;
31
- timestamp?: number | Long;
32
- fetchSize?: number;
33
- pageState?: number;
34
- };
35
- interface ModelTables {
36
- name: string;
37
- isView: boolean;
38
- }
39
- class Mapper {
40
- constructor(client: Client, options?: MappingOptions);
41
- batch(items: ModelBatchItem[], executionOptions?: string | MappingExecutionOptions): Promise<Result>;
42
- forModel<T = any>(name: string): ModelMapper<T>;
43
- }
44
- type MappingOptions = {
45
- models: {
46
- [key: string]: ModelOptions;
47
- };
48
- };
49
- type FindDocInfo = {
50
- fields?: string[];
51
- orderBy?: {
52
- [key: string]: string;
53
- };
54
- limit?: number;
55
- };
56
- type InsertDocInfo = {
57
- fields?: string[];
58
- ttl?: number;
59
- ifNotExists?: boolean;
60
- };
61
- type UpdateDocInfo = {
62
- fields?: string[];
63
- ttl?: number;
64
- ifExists?: boolean;
65
- when?: {
66
- [key: string]: any;
67
- };
68
- orderBy?: {
69
- [key: string]: string;
70
- };
71
- limit?: number;
72
- deleteOnlyColumns?: boolean;
73
- };
74
- type RemoveDocInfo = {
75
- fields?: string[];
76
- ttl?: number;
77
- ifExists?: boolean;
78
- when?: {
79
- [key: string]: any;
80
- };
81
- deleteOnlyColumns?: boolean;
82
- };
83
- type ModelOptions = {
84
- tables?: string[] | ModelTables[];
85
- mappings?: TableMappings;
86
- columns?: {
87
- [key: string]: string | ModelColumnOptions;
88
- };
89
- keyspace?: string;
90
- };
91
- type ModelColumnOptions = {
92
- name: string;
93
- toModel?: (columnValue: any) => any;
94
- fromModel?: (modelValue: any) => any;
95
- };
96
- interface ModelBatchItem {}
97
- interface ModelBatchMapper {
98
- insert(doc: any, docInfo?: InsertDocInfo): ModelBatchItem;
99
- remove(doc: any, docInfo?: RemoveDocInfo): ModelBatchItem;
100
- update(doc: any, docInfo?: UpdateDocInfo): ModelBatchItem;
101
- }
102
- interface ModelMapper<T = any> {
103
- name: string;
104
- batching: ModelBatchMapper;
105
- get(doc: {
106
- [key: string]: any;
107
- }, docInfo?: {
108
- fields?: string[];
109
- }, executionOptions?: string | MappingExecutionOptions): Promise<null | T>;
110
- find(doc: {
111
- [key: string]: any;
112
- }, docInfo?: FindDocInfo, executionOptions?: string | MappingExecutionOptions): Promise<Result<T>>;
113
- findAll(docInfo?: FindDocInfo, executionOptions?: string | MappingExecutionOptions): Promise<Result<T>>;
114
- insert(doc: {
115
- [key: string]: any;
116
- }, docInfo?: InsertDocInfo, executionOptions?: string | MappingExecutionOptions): Promise<Result<T>>;
117
- update(doc: {
118
- [key: string]: any;
119
- }, docInfo?: UpdateDocInfo, executionOptions?: string | MappingExecutionOptions): Promise<Result<T>>;
120
- remove(doc: {
121
- [key: string]: any;
122
- }, docInfo?: RemoveDocInfo, executionOptions?: string | MappingExecutionOptions): Promise<Result<T>>;
123
- mapWithQuery(query: string, paramsHandler: (doc: any) => any[], executionOptions?: string | MappingExecutionOptions): (doc: any, executionOptions?: string | MappingExecutionOptions) => Promise<Result<T>>;
124
- }
125
- namespace q {
126
- interface QueryOperator {}
127
- function in_(arr: any): QueryOperator;
128
- function gt(value: any): QueryOperator;
129
- function gte(value: any): QueryOperator;
130
- function lt(value: any): QueryOperator;
131
- function lte(value: any): QueryOperator;
132
- function notEq(value: any): QueryOperator;
133
- function and(condition1: any, condition2: any): QueryOperator;
134
- function incr(value: any): QueryOperator;
135
- function decr(value: any): QueryOperator;
136
- function append(value: any): QueryOperator;
137
- function prepend(value: any): QueryOperator;
138
- function remove(value: any): QueryOperator;
139
- }
140
- }
141
- //#endregion
142
- export { mapping };
@@ -1 +0,0 @@
1
- import{q as e}from"./q.js";import{ModelBatchItem as t}from"./model-batch-item.js";import n from"./model-batch-mapper.js";import r from"./model-mapper.js";import i from"./result.js";import{DefaultTableMappings as a,TableMappings as o,UnderscoreCqlToCamelCaseMappings as s}from"./table-mappings.js";import c from"./mapper.js";var l={Mapper:c,ModelMapper:r,ModelBatchMapper:n,ModelBatchItem:t,Result:i,TableMappings:o,DefaultTableMappings:a,UnderscoreCqlToCamelCaseMappings:s,q:e};export{l as default};
@@ -1 +0,0 @@
1
- import e from"../errors.js";import{ModelBatchItem as t}from"./model-batch-item.js";import n from"./model-mapper.js";import r from"./result-mapper.js";import i from"./result.js";import a from"./doc-info-adapter.js";import o from"./mapping-handler.js";import s from"./model-mapping-info.js";var Mapper=class{constructor(e,t){if(!e)throw Error(`client must be defined`);this.client=e,this._modelMappingInfos=s.parse(t,e.keyspace),this._modelMappers=new Map}forModel(e){let t=this._modelMappers.get(e);if(t===void 0){let r=this._modelMappingInfos.get(e);if(r===void 0){if(!this.client.keyspace)throw Error(`No mapping information found for model '${e}'. Mapper is unable to create default mappings without setting the keyspace`);r=s.createDefault(e,this.client.keyspace),this.client.log(`info`,`Mapping information for model '${e}' not found, creating default mapping. Keyspace: ${r.keyspace}; Table: ${r.tables[0].name}.`)}else this.client.log(`info`,`Creating model mapper for '${e}' using mapping information. Keyspace: ${r.keyspace}; Table${r.tables.length>1?`s`:``}: ${r.tables.map(e=>e.name)}.`);t=new n(e,new o(this.client,r)),this._modelMappers.set(e,t)}return t}batch(n,o){if(!Array.isArray(n)||!(n.length>0))return Promise.reject(new e.ArgumentError(`First parameter items should be an Array with 1 or more ModelBatchItem instances`));let s=[],c=!0,l;return Promise.all(n.map(e=>e instanceof t?e.pushQueries(s).then(e=>{c&&=e.isIdempotent,l=e.isCounter}):Promise.reject(Error(`Batch items must be instances of ModelBatchItem, use modelMapper.batching object to create each item`)))).then(()=>this.client.batch(s,a.adaptBatchOptions(o,c,l))).then(e=>new i(e,n[0].getMappingInfo(),r.getMutationAdapter(e)))}};export{Mapper as default};
@@ -1 +0,0 @@
1
- import e from"../utils.js";import t from"./tree.js";import n from"./cache.js";import r from"./query-generator.js";import i from"./result-mapper.js";import a from"./result.js";import o from"./object-selector.js";import s from"./doc-info-adapter.js";var MappingHandler=class{constructor(e,n){this._client=e,this._cache={select:new t().on(`add`,e=>this._validateCacheLength(e)),selectAll:new t().on(`add`,e=>this._validateCacheLength(e)),insert:new t().on(`add`,e=>this._validateCacheLength(e)),update:new t().on(`add`,e=>this._validateCacheLength(e)),remove:new t().on(`add`,e=>this._validateCacheLength(e)),customQueries:new Map},this.info=n}getSelectExecutor(t,i,a){let c=Object.keys(t);if(c.length===0)return Promise.reject(Error(`Expected object with keys`));let l=n.getSelectKey(c,t,i),u=this._cache.select.getOrCreate(l,()=>({executor:null,resultAdapter:null}));if(u.executor!==null)return Promise.resolve(u.executor);let d=s.getPropertiesInfo(c,null,t,this.info),f=s.getPropertiesInfo(e.emptyArray,i,t,this.info),p=s.adaptOrderBy(i,this.info),m=i&&i.limit;return this._client.connect().then(()=>o.getForSelect(this._client,this.info,a,d,f,p)).then(e=>{let t=r.getSelect(e,this.info.keyspace,d,f,p,m),n=r.selectParamsGetter(d,m),i=this;return u.executor=function(e,r,a){return i._executeSelect(t,n,e,r,a,u)},u.executor})}getSelectAllExecutor(t){let i=n.getSelectAllKey(t),a=this._cache.selectAll.getOrCreate(i,()=>({executor:null,resultAdapter:null}));if(a.executor!==null)return a.executor;let c=s.getPropertiesInfo(e.emptyArray,t,e.emptyObject,this.info),l=s.adaptOrderBy(t,this.info),u=t&&t.limit,d=o.getForSelectAll(this.info),f=r.getSelect(d,this.info.keyspace,e.emptyArray,c,l,u),p=r.selectParamsGetter(e.emptyArray,u),m=this;return a.executor=function(e,t){return m._executeSelect(f,p,null,e,t,a)},a.executor}_executeSelect(e,t,n,r,o,c){let l=s.adaptAllOptions(o,!0);return this._client.execute(e,t(n,r,this.info),l).then(e=>(c.resultAdapter===null&&(c.resultAdapter=i.getSelectAdapter(this.info,e)),new a(e,this.info,c.resultAdapter)))}getInsertExecutor(e,t){let r=Object.keys(e);if(r.length===0)return Promise.reject(Error(`Expected object with keys`));let i=n.getInsertKey(r,t),a=this._cache.insert.getOrCreate(i,()=>({executor:null}));return a.executor===null?this.createInsertQueries(r,e,t).then(e=>e.length===1?this._setSingleExecutor(a,e[0]):this._setBatchExecutor(a,e)):Promise.resolve(a.executor)}createInsertQueries(e,t,n){let i=s.getPropertiesInfo(e,n,t,this.info),a=n&&n.ifNotExists;return this._client.connect().then(()=>o.getForInsert(this._client,this.info,i)).then(e=>{if(e.length>1&&a)throw Error(`Batch with ifNotExists conditions cannot span multiple tables`);return e.map(e=>r.getInsert(e,this.info.keyspace,i,n,a))})}getUpdateExecutor(e,t){let r=Object.keys(e);if(r.length===0)return Promise.reject(Error(`Expected object with keys`));let i=n.getUpdateKey(r,e,t),a=this._cache.update.getOrCreate(i,()=>({executor:null}));return a.executor===null?this.createUpdateQueries(r,e,t).then(e=>e.length===1?this._setSingleExecutor(a,e[0]):this._setBatchExecutor(a,e)):Promise.resolve(a.executor)}createUpdateQueries(t,n,i){let a=s.getPropertiesInfo(t,i,n,this.info),c=i&&i.ifExists,l=i&&i.when?s.getPropertiesInfo(Object.keys(i.when),null,i.when,this.info):e.emptyArray;if(l.length>0&&c)throw Error(`Both when and ifExists conditions can not be applied to the same statement`);return this._client.connect().then(()=>o.getForUpdate(this._client,this.info,a,l)).then(e=>{if(e.length>1&&(l.length>0||c))throw Error(`Batch with when or ifExists conditions cannot span multiple tables`);return e.map(e=>r.getUpdate(e,this.info.keyspace,a,i,l,c))})}getDeleteExecutor(e,t){let r=Object.keys(e);if(r.length===0)return Promise.reject(Error(`Expected object with keys`));let i=n.getRemoveKey(r,e,t),a=this._cache.remove.getOrCreate(i,()=>({executor:null}));return a.executor===null?this.createDeleteQueries(r,e,t).then(e=>e.length===1?this._setSingleExecutor(a,e[0]):this._setBatchExecutor(a,e)):Promise.resolve(a.executor)}createDeleteQueries(t,n,i){let a=s.getPropertiesInfo(t,i,n,this.info),c=i&&i.ifExists,l=i&&i.when?s.getPropertiesInfo(Object.keys(i.when),null,i.when,this.info):e.emptyArray;if(l.length>0&&c)throw Error(`Both when and ifExists conditions can not be applied to the same statement`);return this._client.connect().then(()=>o.getForDelete(this._client,this.info,a,l)).then(e=>{if(e.length>1&&(l.length>0||c))throw Error(`Batch with when or ifExists conditions cannot span multiple tables`);return e.map(e=>r.getDelete(e,this.info.keyspace,a,i,l,c))})}getExecutorFromQuery(e,t,n){let r=this,o=n?s.adaptAllOptions(n):null;return function(n,c){let l=o||s.adaptAllOptions(c);return r._client.execute(e,t(n),l).then(t=>{let n=r._cache.customQueries.get(e);if(n===void 0){let a=i.getCustomQueryAdapter(r.info,t);n=a.fn,a.canCache&&(r._cache.customQueries.set(e,n),r._cache.customQueries.size===100&&r._client.log(`warning`,`Custom queries cache reached 100 items, this could be caused by hard-coding parameter values inside the query, which should be avoided`))}return new a(t,r.info,n)})}}_setSingleExecutor(e,t){let n=this;return e.executor=function(e,r,o){let c=s.adaptOptions(o,t.isIdempotent);return n._client.execute(t.query,t.paramsGetter(e,r,n.info),c).then(e=>new a(e,n.info,i.getMutationAdapter(e)))},e.executor}_setBatchExecutor(e,t){let n=this,r=t.reduce((e,t)=>e&&t.isIdempotent,!0);return e.executor=function(e,o,c){let l=t.map(t=>({query:t.query,params:t.paramsGetter(e,o,n.info)})),u=s.adaptOptions(c,r);return n._client.batch(l,u).then(e=>new a(e,n.info,i.getMutationAdapter(e)))},e.executor}_validateCacheLength(e){e===100&&this._client.log(`warning`,`ModelMapper cache reached 100 items, this could be caused by building the object to map in different ways (with different shapes) each time. Use the same or few object structures for a model and represent unset values with undefined or types.unset`)}};export{MappingHandler as default};
@@ -1 +0,0 @@
1
- import e from"./cache.js";var ModelBatchItem=class{constructor(e,t,n,r){this.doc=e,this.docInfo=t,this.handler=n,this.cache=r}getQueries(){let e=Object.keys(this.doc),t=this.cache.getOrCreate(this.getCacheKey(e),()=>({queries:null}));return t.queries===null&&(t.queries=this.createQueries(e)),t.queries}getCacheKey(e){throw Error(`getCacheKey must be implemented`)}createQueries(e){throw Error(`getCacheKey must be implemented`)}pushQueries(e){let t=!0,n;return this.getQueries().then(r=>(r.forEach(r=>{t&&=r.isIdempotent,n=r.isCounter,e.push({query:r.query,params:r.paramsGetter(this.doc,this.docInfo,this.getMappingInfo())})}),{isIdempotent:t,isCounter:n}))}getMappingInfo(){return this.handler.info}},InsertModelBatchItem=class extends ModelBatchItem{constructor(e,t,n,r){super(e,t,n,r)}getCacheKey(t){return e.getInsertKey(t,this.docInfo)}createQueries(e){return this.handler.createInsertQueries(e,this.doc,this.docInfo)}},UpdateModelBatchItem=class extends ModelBatchItem{constructor(e,t,n,r){super(e,t,n,r)}getCacheKey(t){return e.getUpdateKey(t,this.doc,this.docInfo)}createQueries(e){return this.handler.createUpdateQueries(e,this.doc,this.docInfo)}},RemoveModelBatchItem=class extends ModelBatchItem{constructor(e,t,n,r){super(e,t,n,r)}getCacheKey(t){return e.getRemoveKey(t,this.doc,this.docInfo)}createQueries(e){return this.handler.createDeleteQueries(e,this.doc,this.docInfo)}};export{InsertModelBatchItem,ModelBatchItem,RemoveModelBatchItem,UpdateModelBatchItem};
@@ -1 +0,0 @@
1
- import e from"./tree.js";import{InsertModelBatchItem as t,RemoveModelBatchItem as n,UpdateModelBatchItem as r}from"./model-batch-item.js";var ModelBatchMapper=class{constructor(t){this._handler=t,this._cache={insert:new e,update:new e,remove:new e}}insert(e,n){return new t(e,n,this._handler,this._cache.insert)}update(e,t){return new r(e,t,this._handler,this._cache.update)}remove(e,t){return new n(e,t,this._handler,this._cache.update)}};export{ModelBatchMapper as default};
@@ -1 +0,0 @@
1
- import e from"./model-batch-mapper.js";var ModelMapper=class{constructor(t,n){this.name=t,this._handler=n,this.batching=new e(this._handler)}get(e,t,n){return n===void 0&&typeof t==`string`&&(n=t,t=null),this._handler.getSelectExecutor(e,t,!0).then(r=>r(e,t,n)).then(e=>e.first())}find(e,t,n){return n===void 0&&typeof t==`string`&&(n=t,t=null),this._handler.getSelectExecutor(e,t,!1).then(r=>r(e,t,n))}findAll(e,t){return t===void 0&&typeof e==`string`&&(t=e,e=null),this._handler.getSelectAllExecutor(e)(e,t)}insert(e,t,n){return n===void 0&&typeof t==`string`&&(n=t,t=null),this._handler.getInsertExecutor(e,t).then(r=>r(e,t,n))}update(e,t,n){return n===void 0&&typeof t==`string`&&(n=t,t=null),this._handler.getUpdateExecutor(e,t).then(r=>r(e,t,n))}remove(e,t,n){return n===void 0&&typeof t==`string`&&(n=t,t=null),this._handler.getDeleteExecutor(e,t).then(r=>r(e,t,n))}mapWithQuery(e,t,n){return this._handler.getExecutorFromQuery(e,t,n)}};export{ModelMapper as default};
@@ -1 +0,0 @@
1
- import{DefaultTableMappings as e,TableMappings as t}from"./table-mappings.js";var n=class ModelMappingInfo{constructor(e,t,n,r){this.keyspace=e,this.tables=t,this._mappings=n,this._columns=r,this._documentProperties=new Map;for(let e of r.values())this._documentProperties.set(e.propertyName,e)}getColumnName(e){let t=this._documentProperties.get(e);return t===void 0?this._mappings.getColumnName(e):t.columnName}getPropertyName(e){let t=this._columns.get(e);return t===void 0?this._mappings.getPropertyName(e):t.propertyName}getFromModelFn(e){let t=this._documentProperties.get(e);return t===void 0?null:t.fromModel}getToModelFn(e){let t=this._columns.get(e);return t===void 0?null:t.toModel}newInstance(){return this._mappings.newObjectInstance()}static parse(e,t){let n=new Map;return!e||!e.models||Object.keys(e.models).forEach(r=>{let i=e.models[r];n.set(r,ModelMappingInfo._create(r,t,i))}),n}static _create(n,i,a){if(!i&&(!a||!a.keyspace))throw Error(`You should specify the keyspace of the model in the MappingOptions when the Client is not using a keyspace`);if(!a)return ModelMappingInfo.createDefault(n,i);let o;if(o=a.tables&&a.tables.length>0?a.tables.map(e=>{let t={name:null,isView:!1};if(typeof e==`string`?t.name=e:e&&(t.name=e.name,t.isView=!!e.isView),!t.name)throw Error(`Table name not specified for model '${n}'`);return t}):[{name:n,isView:!1}],a.mappings&&!(a.mappings instanceof t))throw Error(`mappings should be an instance of TableMappings`);let s=new Map;return a.columns!==null&&typeof a.columns==`object`&&Object.keys(a.columns).forEach(e=>{s.set(e,r.parse(e,a.columns[e]))}),new ModelMappingInfo(a.keyspace||i,o,a.mappings||new e,s)}static createDefault(t,n){return new ModelMappingInfo(n,[{name:t,isView:!1}],new e,new Map)}},r=class ModelColumnInfo{constructor(e,t,n,r){if(this.columnName=e,this.propertyName=t,n&&typeof n!=`function`)throw TypeError(`toModel type for property '${t}' should be a function (obtained ${typeof n})`);if(r&&typeof r!=`function`)throw TypeError(`fromModel type for property '${t}' should be a function (obtained ${typeof r})`);this.toModel=n,this.fromModel=r}static parse(e,t){return t?typeof t==`string`?new ModelColumnInfo(e,t):new ModelColumnInfo(e,t.name||e,t.toModel,t.fromModel):new ModelColumnInfo(e,e)}};export{n as default};
@@ -1 +0,0 @@
1
- const e={all:1,none:0,some:-1};var ObjectSelector=class{static getForSelect(t,n,r,i,a,o){return Promise.all(n.tables.map(e=>e.isView?t.metadata.getMaterializedView(n.keyspace,e.name):t.metadata.getTable(n.keyspace,e.name))).then(t=>{for(let s=0;s<t.length;s++){let c=t[s];if(c===null)throw Error(`Table "${n.tables[s].name}" could not be retrieved`);if(keysAreIncluded(c.partitionKeys,i)===e.all&&!(r&&keysAreIncluded(c.clusteringKeys,i)!==e.all)&&!(i.length>c.partitionKeys.length&&!i.reduce((e,t)=>e&&(contains(c.partitionKeys,e=>e.name===t.columnName)||contains(c.clusteringKeys,e=>e.name===t.columnName)),!0))&&a.reduce((e,t)=>e&&c.columnsByName[t.columnName]!==void 0,!0)&&o.reduce((e,t,n)=>{if(!e)return!1;let r=c.clusteringKeys[n];return r&&r.name===t[0]},!0))return c.name}let s=`No table matches the filter (${r?`all PKs have to be specified`:`PKs`}): [${i.map(e=>e.columnName)}]`;throw a.length>0&&(s+=`; fields: [${a.map(e=>e.columnName)}]`),o.length>0&&(s+=`; orderBy: [${o.map(e=>e[0])}]`),Error(s)})}static getForSelectAll(e){return e.tables[0].name}static getForInsert(t,n,r){return Promise.all(n.tables.filter(e=>!e.isView).map(e=>t.metadata.getTable(n.keyspace,e.name))).then(t=>{let i=t.filter((t,i)=>{if(t===null)throw Error(`Table "${n.tables[i].name}" could not be retrieved`);if(keysAreIncluded(t.partitionKeys,r)!==e.all)return!1;let a=keysAreIncluded(t.clusteringKeys,r);if(a===e.all)return!0;if(a===e.some)return!1;let o=staticColumnCount(t);return r.length===t.partitionKeys.length+o&&o>0});if(i.length===0)throw Error(`No table matches (all PKs have to be specified) fields: [${r.map(e=>e.columnName)}]`);return i})}static getForUpdate(t,n,r,i){return Promise.all(n.tables.filter(e=>!e.isView).map(e=>t.metadata.getTable(n.keyspace,e.name))).then(t=>{let a=t.filter((t,a)=>{if(t===null)throw Error(`Table "${n.tables[a].name}" could not be retrieved`);if(keysAreIncluded(t.partitionKeys,r)!==e.all)return!1;let o=keysAreIncluded(t.clusteringKeys,r);if(o===e.some||o===e.none&&!hasStaticColumn(t))return!1;let s=r.reduce((e,n)=>e+(t.columnsByName[n.columnName]===void 0?0:1),0);return s<=t.partitionKeys.length+t.clusteringKeys.length&&(!hasStaticColumn(t)||s<=t.partitionKeys.length)?!1:i.reduce((e,n)=>e&&t.columnsByName[n.columnName]!==void 0,!0)});if(a.length===0){let e=`No table matches (all PKs and columns to set have to be specified) fields: [${r.map(e=>e.columnName)}]`;throw i.length>0&&(e+=`; condition: [${i.map(e=>e.columnName)}]`),Error(e)}return a})}static getForDelete(e,t,n,r){return Promise.all(t.tables.filter(e=>!e.isView).map(n=>e.metadata.getTable(t.keyspace,n.name))).then(e=>{let i=e.filter((e,i)=>{if(e===null)throw Error(`Table "${t.tables[i].name}" could not be retrieved`);let a=e.partitionKeys.concat(e.clusteringKeys).map(e=>e.name),o=n.map(e=>e.columnName);for(let e=0;e<a.length;e++)if(o.indexOf(a[e])===-1)return!1;return r.reduce((t,n)=>t&&e.columnsByName[n.columnName]!==void 0,!0)});if(i.length===0){let e=`No table matches (all PKs have to be specified) fields: [${n.map(e=>e.columnName)}]`;throw r.length>0&&(e+=`; condition: [${r.map(e=>e.columnName)}]`),Error(e)}return i})}};function contains(e,t){return e.filter(t).length>0}function keysAreIncluded(t,n){if(t.length===0)return e.all;let r=n.reduce((e,n)=>e+ +!!contains(t,e=>n.columnName===e.name),0);return r===0?e.none:r===t.length?e.all:e.some}function hasStaticColumn(e){return staticColumnCount(e)>0}function staticColumnCount(e){return e.columns.reduce((e,t)=>e+ +!!t.isStatic,0)}export{ObjectSelector as default};
@@ -1 +0,0 @@
1
- import e from"../errors.js";var QueryOperator=class{constructor(e,t,n,r){this.key=e,this.value=t,this.hasChildValues=n,this.isInOperator=r}},QueryAssignment=class{constructor(e,t,n){this.sign=e,this.value=t,this.inverted=!!n}};const t={in_:function(t){if(!Array.isArray(t))throw new e.ArgumentError(`IN operator supports only Array values`);return new QueryOperator(`IN`,t,!1,!0)},gt:function(e){return new QueryOperator(`>`,e)},gte:function(e){return new QueryOperator(`>=`,e)},lt:function(e){return new QueryOperator(`<`,e)},lte:function(e){return new QueryOperator(`<=`,e)},notEq:function(e){return new QueryOperator(`!=`,e)},and:function(e,t){return new QueryOperator(`AND`,[e,t],!0)},incr:function(e){return new QueryAssignment(`+`,e)},decr:function(e){return new QueryAssignment(`-`,e)},append:function(e){return new QueryAssignment(`+`,e)},prepend:function(e){return new QueryAssignment(`+`,e,!0)},remove:function(e){return new QueryAssignment(`-`,e)}};export{QueryAssignment,QueryOperator,t as q};
@@ -1,9 +0,0 @@
1
- import e from"../types/index.js";import{QueryAssignment as t,QueryOperator as n}from"./q.js";import r from"vm";const i=e.dataTypes,a=`gen-param-getter`;var o=class QueryGenerator{static getSelect(e,t,n,r,i,a){let o=`SELECT `;return o+=r.length>0?r.map(e=>`"${e.columnName}"`).join(`, `):`*`,o+=` FROM ${t}.${e}`,n.length>0&&(o+=` WHERE `,o+=QueryGenerator._getConditionWithOperators(n)),i.length>0&&(o+=` ORDER BY `,o+=i.map(e=>`"${e[0]}" ${e[1]}`).join(`, `)),typeof a==`number`&&(o+=` LIMIT ?`),o}static selectParamsGetter(e,t){let n=`(function getParametersSelect(doc, docInfo, mappingInfo) {
2
- `;return n+=` return [`,n+=QueryGenerator._valueGetterExpression(e),typeof t==`number`&&(e.length>0&&(n+=`, `),n+=`docInfo['limit']`),n+=`];
3
- })`,new r.Script(n,{filename:a}).runInThisContext()}static getInsert(e,t,n,r,i){let a=r&&r.ttl,o=n.filter(t=>e.columnsByName[t.columnName]!==void 0);return{query:QueryGenerator._getInsertQuery(e.name,t,o,i,a),paramsGetter:QueryGenerator._insertParamsGetter(o,r),isIdempotent:!i}}static _getInsertQuery(e,t,n,r,i){let a=`INSERT INTO ${t}.${e} (`;return a+=n.map(e=>`"${e.columnName}"`).join(`, `),a+=`) VALUES (`,a+=n.map(()=>`?`).join(`, `),a+=`)`,r===!0&&(a+=` IF NOT EXISTS`),typeof i==`number`&&(a+=` USING TTL ?`),a}static _insertParamsGetter(e,t){let n=`(function getParametersInsert(doc, docInfo, mappingInfo) {
4
- `;return n+=` return [`,n+=QueryGenerator._valueGetterExpression(e),t&&typeof t.ttl==`number`&&(n+=`, docInfo['ttl']`),n+=`];
5
- })`,new r.Script(n,{filename:a}).runInThisContext()}static getUpdate(e,n,r,a,o,s){let c=a&&a.ttl,l=new Set(e.partitionKeys.concat(e.clusteringKeys).map(e=>e.name)),u=!0,d=!1,f=r.filter(n=>{let r=e.columnsByName[n.columnName];return r===void 0?!1:(r.type.code===i.list&&n.value instanceof t?u=!1:r.type.code===i.counter&&(u=!1,d=!0),!0)});return{query:QueryGenerator._getUpdateQuery(e.name,n,l,f,o,s,c),isIdempotent:u&&o.length===0&&!s,paramsGetter:QueryGenerator._updateParamsGetter(l,f,o,c),isCounter:d}}static _getUpdateQuery(e,n,r,i,a,o,s){let c=`UPDATE ${n}.${e} `;return typeof s==`number`&&(c+=`USING TTL ? `),c+=`SET `,c+=i.filter(e=>!r.has(e.columnName)).map(e=>e.value instanceof t?e.value.inverted?`"${e.columnName}" = ? ${e.value.sign} "${e.columnName}"`:`"${e.columnName}" = "${e.columnName}" ${e.value.sign} ?`:`"${e.columnName}" = ?`).join(`, `),c+=` WHERE `,c+=i.filter(e=>r.has(e.columnName)).map(e=>`"${e.columnName}" = ?`).join(` AND `),o===!0?c+=` IF EXISTS`:a.length>0&&(c+=` IF `+QueryGenerator._getConditionWithOperators(a)),c}static _updateParamsGetter(e,t,n,i){let o=`(function getParametersUpdate(doc, docInfo, mappingInfo) {
6
- `;return o+=` return [`,typeof i==`number`&&(o+=`docInfo['ttl'], `),o+=QueryGenerator._assignmentGetterExpression(t.filter(t=>!e.has(t.columnName))),o+=`, `,o+=QueryGenerator._valueGetterExpression(t.filter(t=>e.has(t.columnName))),n.length>0&&(o+=`, `+QueryGenerator._valueGetterExpression(n,`docInfo.when`)),o+=`];
7
- })`,new r.Script(o,{filename:a}).runInThisContext()}static getDelete(e,t,n,r,i,a){let o=r&&r.deleteOnlyColumns,s=new Set(e.partitionKeys.concat(e.clusteringKeys).map(e=>e.name)),c=n.filter(t=>e.columnsByName[t.columnName]!==void 0);return{query:QueryGenerator._getDeleteQuery(e.name,t,s,c,i,a,o),paramsGetter:QueryGenerator._deleteParamsGetter(s,c,i),isIdempotent:i.length===0&&!a}}static _getDeleteQuery(e,t,n,r,i,a,o){let s=`DELETE`;if(o){let e=r.filter(e=>!n.has(e.columnName)).map(e=>`"${e.columnName}"`).join(`, `);e!==``&&(s+=` `+e)}return s+=` FROM ${t}.${e} WHERE `,s+=r.filter(e=>n.has(e.columnName)).map(e=>`"${e.columnName}" = ?`).join(` AND `),a===!0?s+=` IF EXISTS`:i.length>0&&(s+=` IF `+QueryGenerator._getConditionWithOperators(i)),s}static _deleteParamsGetter(e,t,n){let i=`(function getParametersDelete(doc, docInfo, mappingInfo) {
8
- `;return i+=` return [`,i+=QueryGenerator._valueGetterExpression(t.filter(t=>e.has(t.columnName))),n.length>0&&(i+=`, `+QueryGenerator._valueGetterExpression(n,`docInfo.when`)),i+=`];
9
- })`,new r.Script(i,{filename:a}).runInThisContext()}static _valueGetterExpression(e,t){return t||=`doc`,e.map(e=>QueryGenerator._valueGetterSingle(`${t}['${e.propertyName}']`,e.propertyName,e.value,e.fromModel)).join(`, `)}static _valueGetterSingle(e,t,r,i){let a=e;if(r instanceof n){if(r.hasChildValues)return`${QueryGenerator._valueGetterSingle(`${e}.value[0]`,t,r.value[0],i)}, ${QueryGenerator._valueGetterSingle(`${e}.value[1]`,t,r.value[1],i)}`;if(a=`${e}.value`,r.isInOperator&&i)return`${a}.map(v => ${QueryGenerator._getMappingFunctionCall(t,`v`)})`}return i?QueryGenerator._getMappingFunctionCall(t,a):a}static _assignmentGetterExpression(e,n){return n||=`doc`,e.map(e=>{let r=`${n}['${e.propertyName}']${e.value instanceof t?`.value`:``}`;return e.fromModel?QueryGenerator._getMappingFunctionCall(e.propertyName,r):r}).join(`, `)}static _getConditionWithOperators(e){return e.map(e=>QueryGenerator._getSingleCondition(e.columnName,e.value)).join(` AND `)}static _getMappingFunctionCall(e,t){return`mappingInfo.getFromModelFn('${e}')(${t})`}static _getSingleCondition(e,t){return t instanceof n?t.hasChildValues?`${QueryGenerator._getSingleCondition(e,t.value[0])} ${t.key} ${QueryGenerator._getSingleCondition(e,t.value[1])}`:`"${e}" ${t.key} ?`:`"${e}" = ?`}};export{o as default};
@@ -1,4 +0,0 @@
1
- import e from"../utils.js";import t from"../types/index.js";import n from"vm";var r=class ResultMapper{static getSelectAdapter(e,t){let r=t.columns;if(!r)throw Error(`Expected ROWS result obtained VOID`);let i=`(function rowAdapter(row, info) {
2
- const item = info.newInstance();
3
- `;for(let t of r)i+=` item['${e.getPropertyName(t.name)}'] = `,e.getToModelFn(t.name)?i+=`info.getToModelFn('${t.name}')(row['${t.name}']);\n`:i+=`row['${t.name}'];\n`;return i+=` return item;
4
- })`,new n.Script(i,{filename:`gen-result-mapper`}).runInThisContext()}static getMutationAdapter(n){return n.columns===null||n.columns.length===1&&n.columns[0].name===`[applied]`&&n.columns[0].type.code===t.dataTypes.boolean?e.noop:ResultMapper._getConditionalRowAdapter(n)}static _getConditionalRowAdapter(e){return function(t,n){let r=n.newInstance();for(let i=1;i<e.columns.length;i++){let a=e.columns[i];r[n.getPropertyName(a.name)]=t[a.name]}return r}}static getCustomQueryAdapter(n,r){return r.columns===null||r.columns.length===0?{canCache:!0,fn:e.noop}:r.columns[0].name===`[applied]`&&r.columns[0].type.code===t.dataTypes.boolean?{canCache:!1,fn:ResultMapper._getConditionalRowAdapter(r)}:{canCache:!0,fn:ResultMapper.getSelectAdapter(n,r)}}};export{r as default};
@@ -1 +0,0 @@
1
- import e from"../utils.js";import t from"util";const n=t.inspect.custom||`inspect`;var Result=class{constructor(e,t,n){this._rs=e,this._info=t,this._rowAdapter=n,this._isEmptyLwt=e.columns!==null&&e.columns.length===1&&this._rs.rowLength===1&&e.columns[0].name===`[applied]`,this.length=this._isEmptyLwt?0:e.rowLength||0,this.pageState=e.pageState}wasApplied(){return this._rs.wasApplied()}first(){return!this._rs.rowLength||this._isEmptyLwt?null:this._rowAdapter(this._rs.rows[0],this._info)}*[Symbol.iterator](){if(!this._isEmptyLwt)for(let e=0;e<this._rs.rows.length;e++)yield this._rowAdapter(this._rs.rows[e],this._info)}toArray(){return this._isEmptyLwt||!this._rs.rows?e.emptyArray:this._rs.rows.map(e=>this._rowAdapter(e,this._info))}forEach(e,t){let n=0;t||=this;for(let r of this)e.call(t,r,n++)}[n](){return this.toArray()}};export{Result as default};
@@ -1 +0,0 @@
1
- var TableMappings=class{newObjectInstance(){return{}}getColumnName(e){return e}getPropertyName(e){return e}},UnderscoreCqlToCamelCaseMappings=class extends TableMappings{constructor(){super()}getColumnName(e){return e.replace(/[a-z][A-Z]/g,(e,t)=>e.charAt(0)+`_`+e.charAt(1)).toLowerCase()}getPropertyName(e){return e.replace(/_[a-z]/g,(e,t)=>t===0?e:e.substr(1).toUpperCase())}},DefaultTableMappings=class extends TableMappings{constructor(){super()}getColumnName(e){return super.getColumnName(e)}getPropertyName(e){return super.getPropertyName(e)}newObjectInstance(){return super.newObjectInstance()}};export{DefaultTableMappings,TableMappings,UnderscoreCqlToCamelCaseMappings};
@@ -1 +0,0 @@
1
- import e from"events";var Node=class extends e{constructor(e,t,n){super(),this.key=e,this.value=t,this.edges=n||[]}},Tree=class extends Node{constructor(){super([],null),this.length=0}getOrCreate(e,t){typeof e.next!=`function`&&(e=e[Symbol.iterator]());let n=this,r=!1,i=e.next();for(;;){let a;for(let r=1;r<n.key.length;r++){if(i.done||n.key[r]!==i.value){a=this._createBranch(n,r,i.done,t);break}i=e.next()}if(i.done){r=!0;break}if(a!==void 0)break;let o=n.edges,s;for(let t=0;t<o.length;t++){let n=o[t];if(n.key[0]===i.value){s=n,i=e.next();break}}if(s===void 0)break;n=s}if(!r){let r=t();return n.edges.push(new Node(iteratorToArray(i.value,e),r)),this._onItemAdded(),r}return n.value===null&&n.edges.length>0&&(n.value=t()),n.value}_createBranch(e,t,n,r){let i=new Node(e.key.slice(t),e.value,e.edges);return e.key=e.key.slice(0,t),e.edges=[i],n?(e.value=r(),this._onItemAdded()):e.value=null,i}_onItemAdded(){this.length++,this.emit(`add`,this.length)}};function iteratorToArray(e,t){let n=[e],r=t.next();for(;!r.done;)n.push(r.value),r=t.next();return n}export{Tree as default};
@@ -1 +0,0 @@
1
- function Aggregate(){this.name=null,this.keyspaceName=null,this.signature=null,this.argumentTypes=null,this.stateFunction=null,this.stateType=null,this.finalFunction=null,this.initConditionRaw=null,this.initCondition=null,this.returnType=null,this.deterministic=null}export{Aggregate as default};
@@ -1 +0,0 @@
1
- import e from"../errors.js";import t from"util";var n=class ClientState{constructor(e,t,n){this._hosts=e,this._openConnections=t,this._inFlightQueries=n}getConnectedHosts(){return this._hosts}getOpenConnections(t){if(!t)throw new e.ArgumentError(`Host is not defined`);return this._openConnections[t.address]||0}getInFlightQueries(t){if(!t)throw new e.ArgumentError(`Host is not defined`);return this._inFlightQueries[t.address]||0}toString(){return t.format(`{"hosts": %j, "openConnections": %j, "inFlightQueries": %j}`,this._hosts.map(function(e){return e.address}),this._openConnections,this._inFlightQueries)}static from(e){let t={},n={},r=[];return e.hosts.forEach(e=>{e.pool.connections.length!==0&&(r.push(e),t[e.address]=e.pool.connections.length,n[e.address]=e.getInFlight())}),new ClientState(r,t,n)}};export{n as default};
@@ -1 +0,0 @@
1
- import e from"util";import t from"events";function DataCollection(e){t.EventEmitter.call(this),this.setMaxListeners(0),Object.defineProperty(this,`loading`,{value:!1,enumerable:!1,writable:!0}),Object.defineProperty(this,`loaded`,{value:!1,enumerable:!1,writable:!0}),this.name=e,this.bloomFilterFalsePositiveChance=0,this.caching=null,this.comment=null,this.gcGraceSeconds=0,this.compactionClass=null,this.compactionOptions=null,this.compression=null,this.localReadRepairChance=0,this.readRepairChance=0,this.extensions=null,this.crcCheckChance=null,this.populateCacheOnFlush=!1,this.defaultTtl=0,this.speculativeRetry=`NONE`,this.minIndexInterval=128,this.maxIndexInterval=2048,this.columns=null,this.columnsByName=null,this.partitionKeys=[],this.clusteringKeys=[],this.clusteringOrder=[],this.nodesync=null}e.inherits(DataCollection,t.EventEmitter);export{DataCollection as default};
@@ -1 +0,0 @@
1
- import e from"../promise-utils.js";import t from"../utils.js";import n from"util";const r=1e3;var EventDebouncer=class{constructor(e,t){this._delay=e,this._logger=t,this._queue=null,this._timeout=null}eventReceived(t,i){return new Promise((a,o)=>{t.callback=e.getCallback(a,o),this._queue=this._queue||{callbacks:[],keyspaces:{}};let s=i?0:this._delay;if(t.all&&(this._queue.mainEvent=t),this._queue.callbacks.length===r&&this._logger(`warn`,n.format(`Event debouncer queue exceeded %d events`,r)),this._queue.callbacks.push(t.callback),this._queue.mainEvent)return this._slideDelay(s);let c=this._queue.keyspaces[t.keyspace];c||=this._queue.keyspaces[t.keyspace]={events:[]},t.cqlObject===void 0&&(c.mainEvent=t),c.events.push(t),this._slideDelay(s)})}_slideDelay(e){let t=this;function process(){let e=t._queue;t._queue=null,t._timeout=null,processQueue(e)}if(e===0)return this._timeout&&clearTimeout(this._timeout),process();let n=this._timeout;this._timeout=setTimeout(process,e),n&&clearTimeout(n)}shutdown(){this._queue&&(this._queue.callbacks.forEach(function(e){e()}),this._queue=null,clearTimeout(this._timeout),this._timeout=null)}};function processQueue(n){if(n.mainEvent)return e.toCallback(n.mainEvent.handler(),e=>{for(let t=0;t<n.callbacks.length;t++)n.callbacks[t](e)});t.each(Object.keys(n.keyspaces),function(t,r){let i=n.keyspaces[t];if(i.mainEvent)return e.toCallback(i.mainEvent.handler(),function(e){for(let t=0;t<i.events.length;t++)i.events[t].callback(e);r()});i.events.forEach(e=>{e.handler(),e.callback()}),r()})}export{EventDebouncer as default};
@@ -1,184 +0,0 @@
1
- import { types } from "../types/index.js";
2
- import { EmptyCallback, Host, ValueCallback, token } from "../index.js";
3
-
4
- //#region src/driver/metadata/index.d.ts
5
- declare namespace metadata {
6
- interface Aggregate {
7
- argumentTypes: Array<{
8
- code: dataTypes;
9
- info: any;
10
- }>;
11
- finalFunction: string;
12
- initCondition: string;
13
- keyspaceName: string;
14
- returnType: string;
15
- signature: string[];
16
- stateFunction: string;
17
- stateType: string;
18
- }
19
- interface ClientState {
20
- getConnectedHosts(): Host[];
21
- getInFlightQueries(host: Host): number;
22
- getOpenConnections(host: Host): number;
23
- toString(): string;
24
- }
25
- interface DataTypeInfo {
26
- code: dataTypes;
27
- info: string | DataTypeInfo | DataTypeInfo[];
28
- options: {
29
- frozen: boolean;
30
- reversed: boolean;
31
- };
32
- }
33
- interface ColumnInfo {
34
- name: string;
35
- type: DataTypeInfo;
36
- }
37
- enum IndexKind {
38
- custom = 0,
39
- keys,
40
- composites
41
- }
42
- interface Index {
43
- kind: IndexKind;
44
- name: string;
45
- options: object;
46
- target: string;
47
- isCompositesKind(): boolean;
48
- isCustomKind(): boolean;
49
- isKeysKind(): boolean;
50
- }
51
- interface DataCollection {
52
- bloomFilterFalsePositiveChance: number;
53
- caching: string;
54
- clusteringKeys: ColumnInfo[];
55
- clusteringOrder: string[];
56
- columns: ColumnInfo[];
57
- columnsByName: {
58
- [key: string]: ColumnInfo;
59
- };
60
- comment: string;
61
- compactionClass: string;
62
- compactionOptions: {
63
- [option: string]: any;
64
- };
65
- compression: {
66
- class?: string;
67
- [option: string]: any;
68
- };
69
- crcCheckChange?: number;
70
- defaultTtl: number;
71
- extensions: {
72
- [option: string]: any;
73
- };
74
- gcGraceSeconds: number;
75
- localReadRepairChance: number;
76
- maxIndexInterval?: number;
77
- minIndexInterval?: number;
78
- name: string;
79
- partitionKeys: ColumnInfo[];
80
- populateCacheOnFlush: boolean;
81
- readRepairChance: number;
82
- speculativeRetry: string;
83
- }
84
- interface MaterializedView extends DataCollection {
85
- tableName: string;
86
- whereClause: string;
87
- includeAllColumns: boolean;
88
- }
89
- interface TableMetadata extends DataCollection {
90
- indexes: Index[];
91
- indexInterval?: number;
92
- isCompact: boolean;
93
- memtableFlushPeriod: number;
94
- replicateOnWrite: boolean;
95
- cdc?: boolean;
96
- virtual: boolean;
97
- }
98
- interface QueryTrace {
99
- requestType: string;
100
- coordinator: InetAddress;
101
- parameters: {
102
- [key: string]: any;
103
- };
104
- startedAt: number | types.Long;
105
- duration: number;
106
- clientAddress: string;
107
- events: Array<{
108
- id: Uuid;
109
- activity: any;
110
- source: any;
111
- elapsed: any;
112
- thread: any;
113
- }>;
114
- }
115
- interface SchemaFunction {
116
- argumentNames: string[];
117
- argumentTypes: Array<{
118
- code: dataTypes;
119
- info: any;
120
- }>;
121
- body: string;
122
- calledOnNullInput: boolean;
123
- keyspaceName: string;
124
- language: string;
125
- name: string;
126
- returnType: string;
127
- signature: string[];
128
- }
129
- interface Udt {
130
- name: string;
131
- fields: ColumnInfo[];
132
- }
133
- interface Metadata {
134
- keyspaces: {
135
- [name: string]: {
136
- name: string;
137
- strategy: string;
138
- };
139
- };
140
- clearPrepared(): void;
141
- getAggregate(keyspaceName: string, name: string, signature: string[] | Array<{
142
- code: number;
143
- info: any;
144
- }>, callback: ValueCallback<Aggregate>): void;
145
- getAggregate(keyspaceName: string, name: string, signature: string[] | Array<{
146
- code: number;
147
- info: any;
148
- }>): Promise<Aggregate>;
149
- getAggregates(keyspaceName: string, name: string, callback: ValueCallback<Aggregate[]>): void;
150
- getAggregates(keyspaceName: string, name: string): Promise<Aggregate[]>;
151
- getFunction(keyspaceName: string, name: string, signature: string[] | Array<{
152
- code: number;
153
- info: any;
154
- }>, callback: ValueCallback<SchemaFunction>): void;
155
- getFunction(keyspaceName: string, name: string, signature: string[] | Array<{
156
- code: number;
157
- info: any;
158
- }>): Promise<SchemaFunction>;
159
- getFunctions(keyspaceName: string, name: string, callback: ValueCallback<SchemaFunction[]>): void;
160
- getFunctions(keyspaceName: string, name: string): Promise<SchemaFunction[]>;
161
- getMaterializedView(keyspaceName: string, name: string, callback: ValueCallback<MaterializedView>): void;
162
- getMaterializedView(keyspaceName: string, name: string, callback: EmptyCallback): Promise<MaterializedView>;
163
- getReplicas(keyspaceName: string, token: Buffer | token.Token | token.TokenRange): Host[];
164
- getTable(keyspaceName: string, name: string, callback: ValueCallback<TableMetadata>): void;
165
- getTable(keyspaceName: string, name: string): Promise<TableMetadata>;
166
- getTokenRanges(): Set<token.TokenRange>;
167
- getTokenRangesForHost(keyspaceName: string, host: Host): Set<token.TokenRange> | null;
168
- getTrace(traceId: Uuid, consistency: types.consistencies, callback: ValueCallback<QueryTrace>): void;
169
- getTrace(traceId: Uuid, consistency: types.consistencies): Promise<QueryTrace>;
170
- getTrace(traceId: Uuid, callback: ValueCallback<QueryTrace>): void;
171
- getTrace(traceId: Uuid): Promise<QueryTrace>;
172
- getUdt(keyspaceName: string, name: string, callback: ValueCallback<Udt>): void;
173
- getUdt(keyspaceName: string, name: string): Promise<Udt>;
174
- newToken(components: Buffer[] | Buffer | string): token.Token;
175
- newTokenRange(start: token.Token, end: token.Token): token.TokenRange;
176
- refreshKeyspace(name: string, callback: EmptyCallback): void;
177
- refreshKeyspace(name: string): Promise<void>;
178
- refreshKeyspaces(waitReconnect: boolean, callback: EmptyCallback): void;
179
- refreshKeyspaces(waitReconnect?: boolean): Promise<void>;
180
- refreshKeyspaces(callback: EmptyCallback): void;
181
- }
182
- }
183
- //#endregion
184
- export { metadata };
@@ -1 +0,0 @@
1
- import e from"../errors.js";import t from"../promise-utils.js";import n from"../utils.js";import r from"../types/index.js";import{ExecutionOptions as i}from"../execution-options.js";import a from"../requests.js";import{TokenRange as o}from"../token.js";import s from"../tokenizer.js";import c from"./schema-parser.js";import l from"util";import u from"events";var Metadata=class{constructor(t,r){if(!t)throw new e.ArgumentError(`Options are not defined`);Object.defineProperty(this,`options`,{value:t,enumerable:!1,writable:!1}),Object.defineProperty(this,`controlConnection`,{value:r,enumerable:!1,writable:!1}),this.keyspaces={},this.initialized=!1,this._isDbaas=!1,this._schemaParser=c.getByVersion(t,r,this.getUdt.bind(this)),this.log=n.log,this._preparedQueries=new PreparedQueries(t.maxPrepared,(...e)=>this.log(...e))}setCassandraVersion(e){this._schemaParser=c.getByVersion(this.options,this.controlConnection,this.getUdt.bind(this),e,this._schemaParser)}isDbaas(){return this._isDbaas}setProductTypeAsDbaas(){this._isDbaas=!0}setPartitioner(e){return/RandomPartitioner$/.test(e)?this.tokenizer=new s.RandomTokenizer:/ByteOrderedPartitioner$/.test(e)?this.tokenizer=new s.ByteOrderedTokenizer:this.tokenizer=new s.Murmur3Tokenizer}buildTokens(e){if(!this.tokenizer)return this.log(`error`,`Tokenizer could not be determined`);let t=[],r={},i=e.values(),a=this.tokenizer.stringify,s={};i.forEach(e=>{if(!e.tokens)return;e.tokens.forEach(i=>{let o=this.tokenizer.parse(i);n.insertSorted(t,o,(e,t)=>e.compare(t)),r[a(o)]=e});let i=s[e.datacenter];i||=s[e.datacenter]={hostLength:0,racks:new n.HashSet},i.hostLength++,i.racks.add(e.rack)}),this.primaryReplicas=r,this.ring=t;let c=new Set;if(this.ring.length===1){let e=this.tokenizer.minToken();c.add(new o(e,e,this.tokenizer))}else for(let e=0;e<this.ring.length;e++){let t=this.ring[e],n=this.ring[(e+1)%this.ring.length];c.add(new o(t,n,this.tokenizer))}this.tokenRanges=c,this.ringTokensAsStrings=Array(t.length);for(let e=0;e<t.length;e++)this.ringTokensAsStrings[e]=a(t[e]);this.datacenters=s}refreshKeyspace(e,n){return t.optionalCallback(this._refreshKeyspace(e),n)}async _refreshKeyspace(e){if(!this.initialized)throw this._uninitializedError();this.log(`info`,l.format(`Retrieving keyspace %s metadata`,e));try{let t=await this._schemaParser.getKeyspace(e);return t?(this.keyspaces[t.name]=t,t):(delete this.keyspaces[e],null)}catch(e){throw this.log(`error`,`There was an error while trying to retrieve keyspace information`,e),e}}refreshKeyspaces(e,n){if((typeof e==`function`||e===void 0)&&(n=e,e=!0),!this.initialized){let e=this._uninitializedError();return n?n(e):Promise.reject(e)}return t.optionalCallback(this.refreshKeyspacesInternal(e),n)}async refreshKeyspacesInternal(e){this.log(`info`,`Retrieving keyspaces metadata`);try{return this.keyspaces=await this._schemaParser.getKeyspaces(e),this.keyspaces}catch(e){throw this.log(`error`,`There was an error while trying to retrieve keyspaces information`,e),e}}_getKeyspaceReplicas(e){return e.replicas||=e.tokenToReplica(this.tokenizer,this.ringTokensAsStrings,this.primaryReplicas,this.datacenters),e.replicas}getReplicas(e,t){if(!this.ring)return null;Buffer.isBuffer(t)&&(t=this.tokenizer.hash(t)),t instanceof o&&(t=t.end);let r;if(e&&(r=this.keyspaces[e],!r))return null;let i=n.binarySearch(this.ring,t,(e,t)=>e.compare(t));i<0&&(i=~i),i>=this.ring.length&&(i%=this.ring.length);let a=this.ringTokensAsStrings[i];return e?this._getKeyspaceReplicas(r)[a]:[this.primaryReplicas[a]]}getTokenRanges(){return this.tokenRanges}getTokenRangesForHost(e,t){if(!this.ring)return null;let n;if(e&&(n=this.keyspaces[e],!n))return null;if(this.ring.length===1)return this.getTokenRanges();let r=this._getKeyspaceReplicas(n),i=new Set;return this.tokenRanges.forEach(e=>{r[this.tokenizer.stringify(e.end)].indexOf(t)!==-1&&i.add(e)}),i}newToken(e){if(!this.tokenizer)throw Error(`Partitioner not established. This should only happen if metadata was disabled or you have not connected yet.`);return Array.isArray(e)?this.tokenizer.hash(Buffer.concat(e)):typeof e==`string`?this.tokenizer.parse(e):this.tokenizer.hash(e)}newTokenRange(e,t){if(!this.tokenizer)throw Error(`Partitioner not established. This should only happen if metadata was disabled or you have not connected yet.`);return new o(e,t,this.tokenizer)}getPreparedInfo(e,t){return this._preparedQueries.getOrAdd(e,t)}clearPrepared(){this._preparedQueries.clear()}getPreparedById(e){return this._preparedQueries.getById(e)}setPreparedById(e){return this._preparedQueries.setById(e)}getAllPrepared(){return this._preparedQueries.getAll()}_uninitializedError(){return Error(`Metadata has not been initialized. This could only happen if you have not connected yet.`)}getUdt(e,n,r){return t.optionalCallback(this._getUdt(e,n),r)}async _getUdt(e,t){if(!this.initialized)throw this._uninitializedError();let n;if(this.options.isMetadataSyncEnabled){let t=this.keyspaces[e];if(!t)return null;n=t.udts}return await this._schemaParser.getUdt(e,t,n)}getTable(e,n,r){return t.optionalCallback(this._getTable(e,n),r)}async _getTable(e,t){if(!this.initialized)throw this._uninitializedError();let n,r;if(this.options.isMetadataSyncEnabled){let t=this.keyspaces[e];if(!t)return null;n=t.tables,r=t.virtual}return await this._schemaParser.getTable(e,t,n,r)}getFunctions(e,n,r){return t.optionalCallback(this._getFunctionsWrapper(e,n),r)}async _getFunctionsWrapper(t,n){if(!t||!n)throw new e.ArgumentError(`You must provide the keyspace name and cql function name to retrieve the metadata`);let r=await this._getFunctions(t,n,!1);return Array.from(r.values())}getFunction(e,n,r,i){return t.optionalCallback(this._getSingleFunction(e,n,r,!1),i)}getAggregates(e,n,r){return t.optionalCallback(this._getAggregates(e,n),r)}async _getAggregates(t,n){if(!t||!n)throw new e.ArgumentError(`You must provide the keyspace name and cql aggregate name to retrieve the metadata`);let r=await this._getFunctions(t,n,!0);return Array.from(r.values())}getAggregate(e,n,r,i){return t.optionalCallback(this._getSingleFunction(e,n,r,!0),i)}getMaterializedView(e,n,r){return t.optionalCallback(this._getMaterializedView(e,n),r)}async _getMaterializedView(e,t){if(!this.initialized)throw this._uninitializedError();let n;if(this.options.isMetadataSyncEnabled){let t=this.keyspaces[e];if(!t)return null;n=t.views}return await this._schemaParser.getMaterializedView(e,t,n)}async _getFunctions(e,t,n){if(!this.initialized)throw this._uninitializedError();let r;if(this.options.isMetadataSyncEnabled){let t=this.keyspaces[e];if(!t)return new Map;r=n?t.aggregates:t.functions}return await this._schemaParser.getFunctions(e,t,n,r)}async _getSingleFunction(t,n,i,a){if(!t||!n)throw new e.ArgumentError(`You must provide the keyspace name and cql function name to retrieve the metadata`);if(!Array.isArray(i))throw new e.ArgumentError(`Signature must be an array of types`);return i=i.map(e=>typeof e==`string`?e:r.getDataTypeNameByCode(e)),(await this._getFunctions(t,n,a)).get(i.join(`,`))||null}getTrace(e,n,r){return!r&&typeof n==`function`&&(r=n,n=null),t.optionalCallback(this._getTrace(e,n),r)}async _getTrace(e,n){if(!this.initialized)throw this._uninitializedError();let r,o=0,s=i.empty();s.getConsistency=()=>n;let c=new a.QueryRequest(l.format(`SELECT * FROM system_traces.sessions WHERE session_id=%s`,e),null,s),u=new a.QueryRequest(l.format(`SELECT * FROM system_traces.events WHERE session_id=%s`,e),null,s);for(;!r&&o++<5;){let e=(await this.controlConnection.query(c)).rows[0];if(!e||typeof e.duration!=`number`){await t.delay(400);continue}r={requestType:e.request,coordinator:e.coordinator,parameters:e.parameters,startedAt:e.started_at,duration:e.duration,clientAddress:e.client,events:null};let n=await this.controlConnection.query(u);r.events=n.rows.map(e=>({id:e.event_id,activity:e.activity,source:e.source,elapsed:e.source_elapsed,thread:e.thread}))}if(!r)throw Error(`Trace ${e.toString()} could not fully retrieved after 5 attempts`);return r}checkSchemaAgreement(e){return t.optionalCallback(this._checkSchemaAgreement(),e)}async _checkSchemaAgreement(){let e=this.controlConnection.connection;if(!e)return!1;try{return await this.compareSchemaVersions(e)}catch{return!1}}async adaptUserHints(e,t){if(!Array.isArray(t))return;let n=[];for(let i=0;i<t.length;i++){let a=t[i];if(typeof a!=`string`)continue;let o=r.dataTypes.getByName(a);this._checkUdtTypes(n,o,e),t[i]=o}for(let e of n){let t=await this.getUdt(e.info.keyspace,e.info.name);if(!t)throw TypeError(`User defined type not found: `+e.info.keyspace+`.`+e.info.name);e.info=t}}_checkUdtTypes(e,t,n){if(t.code===r.dataTypes.udt){let r=t.info.split(`.`);if(t.info={keyspace:r[0],name:r[1]},!t.info.name){if(!n)throw TypeError(`No keyspace specified for udt: `+r.join(`.`));t.info.name=t.info.keyspace,t.info.keyspace=n}e.push(t);return}if(t.info){if(t.code===r.dataTypes.list||t.code===r.dataTypes.set)return this._checkUdtTypes(e,t.info,n);t.code===r.dataTypes.map&&(this._checkUdtTypes(e,t.info[0],n),this._checkUdtTypes(e,t.info[1],n))}}async compareSchemaVersions(e){let t=new Set,n=await e.send(new a.QueryRequest(`SELECT schema_version FROM system.local`),null);n&&n.rows&&n.rows.length===1&&t.add(n.rows[0].schema_version.toString());let r=await e.send(new a.QueryRequest(`SELECT schema_version FROM system.peers`),null);if(r&&r.rows)for(let e of r.rows){let n=e.schema_version;n&&t.add(n.toString())}return t.size===1}},PreparedQueries=class{constructor(e,t){this.length=0,this._maxPrepared=e,this._mapByKey=new Map,this._mapById=new Map,this._logger=t}_getKey(e,t){return(e||``)+t}getOrAdd(e,t){let n=this._getKey(e,t),r=this._mapByKey.get(n);return r||(this._validateOverflow(),r=new u.EventEmitter,r.setMaxListeners(0),r.query=t,r.keyspace=e,this._mapByKey.set(n,r),this.length++,r)}_validateOverflow(){if(this.length<this._maxPrepared)return;let e=[];this._logger(`warning`,`Prepared statements exceeded maximum. This could be caused by preparing queries that contain parameters`);let t=this.length-this._maxPrepared+1;for(let[n,r]of this._mapByKey)if(r.queryId&&e.push([n,r])>=t)break;for(let[t,n]of e)this._mapByKey.delete(t),this._mapById.delete(n.queryId.toString(`hex`)),this.length--}setById(e){this._mapById.set(e.queryId.toString(`hex`),e)}getById(e){return this._mapById.get(e.toString(`hex`))}clear(){this._mapByKey=new Map,this._mapById=new Map,this.length=0}getAll(){return Array.from(this._mapByKey.values()).filter(e=>!!e.queryId)}};export{Metadata as default};
@@ -1 +0,0 @@
1
- import e from"./data-collection.js";import t from"util";function MaterializedView(t){e.call(this,t),this.tableName=null,this.whereClause=null,this.includeAllColumns=!1}t.inherits(MaterializedView,e);export{MaterializedView as default};
@@ -1 +0,0 @@
1
- function SchemaFunction(){this.name=null,this.keyspaceName=null,this.signature=null,this.argumentNames=null,this.argumentTypes=null,this.body=null,this.calledOnNullInput=null,this.language=null,this.returnType=null,this.deterministic=null,this.monotonic=null,this.monotonicOn=null}export{SchemaFunction as default};
@@ -1 +0,0 @@
1
- import e from"../utils.js";import t from"../types/index.js";import n from"util";const r={custom:0,keys:1,composites:2};function Index(e,t,n,r){this.name=e,this.target=t,this.kind=typeof n==`string`?getKindByName(n):n,this.options=r}Index.prototype.isCompositesKind=function(){return this.kind===r.composites},Index.prototype.isKeysKind=function(){return this.kind===r.keys},Index.prototype.isCustomKind=function(){return this.kind===r.custom},Index.fromRows=function(t){return!t||t.length===0?e.emptyArray:t.map(function(e){let t=e.options;return new Index(e.index_name,t.target,getKindByName(e.kind),t)})},Index.fromColumnRows=function(e,r){let i=[];for(let a=0;a<e.length;a++){let o=e[a],s=o.index_name;if(!s)continue;let c=r[o.column_name],l,u=JSON.parse(o.index_options);l=u!==null&&u.index_keys!==void 0?n.format(`keys(%s)`,c.name):u!==null&&u.index_keys_and_values!==void 0?n.format(`entries(%s)`,c.name):c.type.options.frozen&&(c.type.code===t.dataTypes.map||c.type.code===t.dataTypes.list||c.type.code===t.dataTypes.set)?n.format(`full(%s)`,c.name):c.name,i.push(new Index(s,l,getKindByName(o.index_type),u))}return i};function getKindByName(e){return e?r[e.toLowerCase()]:r.custom}export{Index as default};
@@ -1 +0,0 @@
1
- import e from"../errors.js";import t from"../promise-utils.js";import n from"../utils.js";import r from"../types/index.js";import i from"./table-metadata.js";import a from"./aggregate.js";import o from"./schema-function.js";import s from"./schema-index.js";import c from"./materialized-view.js";import l from"util";import u from"events";const{format:d}=l,f=`SELECT * FROM system_schema.keyspaces`,p=`SELECT * FROM system_schema.keyspaces where keyspace_name = '%s'`,m=`SELECT * FROM system_virtual_schema.tables where keyspace_name = '%s' and table_name='%s'`;var SchemaParser=class{constructor(e,t){this.cc=t,this.encodingOptions=e.encoding,this.selectTable=null,this.selectColumns=null,this.selectIndexes=null,this.selectUdt=null,this.selectAggregates=null,this.selectFunctions=null,this.supportsVirtual=!1}_createKeyspace(e,t,n,r,i){return{name:e,durableWrites:t,strategy:n,strategyOptions:r,virtual:i===!0,udts:{},tables:{},functions:{},aggregates:{},views:{},tokenToReplica:getTokenToReplicaMapper(n,r),graphEngine:void 0}}getKeyspace(e){}getKeyspaces(e){}async getTable(e,n,r,a){let o=r&&r[n];if(o||(o=new i(n),r&&(r[n]=o)),o.loaded)return o;if(o.loading)return t.fromEvent(o,`load`);try{o.loading=!0;let t,r=a,i=r?m:this.selectTable,s=l.format(i,e,n),c=await this._getFirstRow(s);if(!c&&this.supportsVirtual&&r===void 0){let t=l.format(m,e,n);try{c=await this._getFirstRow(t)}catch{}c&&(r=!0)}if(!c)return o.loading=!1,o.emit(`load`,null,null),null;let u=r?`SELECT * FROM system_virtual_schema.columns where keyspace_name = '%s' and table_name='%s'`:this.selectColumns,d=await this._getRows(l.format(u,e,n));return this.selectIndexes&&!r&&(t=await this._getRows(l.format(this.selectIndexes,e,n))),await this._parseTableOrView(o,c,d,t,r),o.loaded=!0,o.emit(`load`,null,o),o}catch(e){throw o.emit(`load`,e,null),e}finally{o.loading=!1}}async _getFirstRow(e){return(await this._getRows(e))[0]}async _getRows(e){return(await this.cc.query(e)).rows}async getUdt(e,n,r){let i=r&&r[n];if(i||(i=new u.EventEmitter,r&&(r[n]=i),i.setMaxListeners(0),i.loading=!1,i.name=n,i.keyspace=e,i.fields=null),i.fields)return i;if(i.loading)return t.fromEvent(i,`load`);i.loading=!0;let a=d(this.selectUdt,e,n);try{let e=await this._getFirstRow(a);return e?(await this._parseUdt(i,e),i.emit(`load`,null,i),i):(i.loading=!1,i.emit(`load`,null,null),null)}catch(e){throw i.emit(`load`,e),e}finally{i.loading=!1}}_parseUdt(e,t){}async _parseTableOrView(e,t,n,r,i){}getMaterializedView(e,t,n){}async getFunctions(e,n,r,i){let a=this.selectFunctions,parser=e=>this._parseFunction(e);r&&(a=this.selectAggregates,parser=e=>this._parseAggregate(e));let o=i&&i[n];if(o||(o=new u.EventEmitter,i&&(i[n]=o),o.setMaxListeners(0)),o.values)return o.values;if(o.loading)return t.fromEvent(o,`load`);o.loading=!0;try{let t=await this._getRows(d(a,e,n)),r=await Promise.all(t.map(parser)),i=new Map;return t.length>0&&(o.values=i),r.forEach(e=>o.values.set(e.signature.join(`,`),e)),o.emit(`load`,null,i),i}catch(e){throw o.emit(`load`,e),e}finally{o.loading=!1}}_parseAggregate(e){}_parseFunction(e){}_asMap(e){return e?this.encodingOptions.map&&e instanceof this.encodingOptions.map?e:new Map(Object.keys(e).map(t=>[t,e[t]])):new Map}_mapAsObject(e){if(!e)return e;if(this.encodingOptions.map&&e instanceof this.encodingOptions.map){let t={};return e.forEach((e,n)=>t[n]=e),t}return e}},SchemaParserV1=class extends SchemaParser{constructor(e,t){super(e,t),this.selectTable=`SELECT * FROM system.schema_columnfamilies WHERE keyspace_name='%s' AND columnfamily_name='%s'`,this.selectColumns=`SELECT * FROM system.schema_columns WHERE keyspace_name='%s' AND columnfamily_name='%s'`,this.selectUdt=`SELECT * FROM system.schema_usertypes WHERE keyspace_name='%s' AND type_name='%s'`,this.selectAggregates=`SELECT * FROM system.schema_aggregates WHERE keyspace_name = '%s' AND aggregate_name = '%s'`,this.selectFunctions=`SELECT * FROM system.schema_functions WHERE keyspace_name = '%s' AND function_name = '%s'`}async getKeyspaces(e){let t={},n=await this.cc.query(`SELECT * FROM system.schema_keyspaces`,e);for(let e=0;e<n.rows.length;e++){let r=n.rows[e],i=this._createKeyspace(r.keyspace_name,r.durable_writes,r.strategy_class,JSON.parse(r.strategy_options||null));t[i.name]=i}return t}async getKeyspace(e){let t=await this._getFirstRow(d(`SELECT * FROM system.schema_keyspaces where keyspace_name = '%s'`,e));return t?this._createKeyspace(t.keyspace_name,t.durable_writes,t.strategy_class,JSON.parse(t.strategy_options)):null}async _parseTableOrView(e,t,r,i,a){let o,c,l,u=this.cc.getEncoder(),d={},f=[],p=[];e.bloomFilterFalsePositiveChance=t.bloom_filter_fp_chance,e.caching=t.caching,e.comment=t.comment,e.compactionClass=t.compaction_strategy_class,e.compactionOptions=JSON.parse(t.compaction_strategy_options),e.compression=JSON.parse(t.compression_parameters),e.gcGraceSeconds=t.gc_grace_seconds,e.localReadRepairChance=t.local_read_repair_chance,e.readRepairChance=t.read_repair_chance,e.populateCacheOnFlush=t.populate_io_cache_on_flush||e.populateCacheOnFlush,e.memtableFlushPeriod=t.memtable_flush_period_in_ms||e.memtableFlushPeriod,e.defaultTtl=t.default_time_to_live||e.defaultTtl,e.speculativeRetry=t.speculative_retry||e.speculativeRetry,e.indexInterval=t.index_interval||e.indexInterval,t.min_index_interval===void 0?(e.minIndexInterval=null,e.maxIndexInterval=null):(e.minIndexInterval=t.min_index_interval||e.minIndexInterval,e.maxIndexInterval=t.max_index_interval||e.maxIndexInterval),t.replicate_on_write!==void 0&&(e.replicateOnWrite=t.replicate_on_write),e.columns=[];for(let t=0;t<r.length;t++){let n=r[t],i=u.parseFqTypeName(n.validator);switch(o={name:n.column_name,type:i,isStatic:!1},e.columns.push(o),d[o.name]=o,n.type){case`partition_key`:f.push({c:o,index:n.component_index||0});break;case`clustering_key`:p.push({c:o,index:n.component_index||0,order:o.type.options.reversed?`DESC`:`ASC`});break;case`static`:o.isStatic=!0;break}}f.length>0&&(e.partitionKeys=f.sort(n.propCompare(`index`)).map(e=>e.c),p.sort(n.propCompare(`index`)),e.clusteringKeys=p.map(e=>e.c),e.clusteringOrder=p.map(e=>e.order));let m=e.partitionKeys.length===0;if(m&&t.key_aliases){f=JSON.parse(t.key_aliases),l=u.parseKeyTypes(t.key_validator).types;for(let t=0;t<f.length;t++)c=f[t],o=d[c],o||(o={name:c,type:l[t]},e.columns.push(o)),e.partitionKeys.push(o)}let h=u.parseKeyTypes(t.comparator);if(m&&t.column_aliases){p=JSON.parse(t.column_aliases);for(let t=0;t<p.length;t++)c=p[t],o=d[c],o||(o={name:c,type:h.types[t]},e.columns.push(o)),e.clusteringKeys.push(o),e.clusteringOrder.push(o.type.options.reversed?`DESC`:`ASC`)}e.isCompact=!!t.is_dense,e.isCompact||=!h.isComposite||!h.hasCollections&&e.clusteringKeys.length!==h.types.length-1,c=t.value_alias,e.isCompact&&c&&!d[c]&&(o={name:c,type:u.parseFqTypeName(t.default_validator)},e.columns.push(o),d[c]=o),e.columnsByName=d,e.indexes=s.fromColumnRows(r,e.columnsByName)}getMaterializedView(t,n,r){return Promise.reject(new e.NotSupportedError(`Materialized views are not supported on Cassandra versions below 3.0`))}async _parseAggregate(e){let t=this.cc.getEncoder(),r=new a;r.name=e.aggregate_name,r.keyspaceName=e.keyspace_name,r.signature=e.signature||n.emptyArray,r.stateFunction=e.state_func,r.finalFunction=e.final_func,r.initConditionRaw=e.initcond,r.argumentTypes=(e.argument_types||n.emptyArray).map(e=>t.parseFqTypeName(e)),r.stateType=t.parseFqTypeName(e.state_type);let i=t.decode(r.initConditionRaw,r.stateType);return i!=null&&(r.initCondition=i.toString()),r.returnType=t.parseFqTypeName(e.return_type),r}async _parseFunction(e){let t=this.cc.getEncoder(),r=new o;return r.name=e.function_name,r.keyspaceName=e.keyspace_name,r.signature=e.signature||n.emptyArray,r.argumentNames=e.argument_names||n.emptyArray,r.body=e.body,r.calledOnNullInput=e.called_on_null_input,r.language=e.language,r.argumentTypes=(e.argument_types||n.emptyArray).map(e=>t.parseFqTypeName(e)),r.returnType=t.parseFqTypeName(e.return_type),r}async _parseUdt(e,t){let n=this.cc.getEncoder(),r=t.field_names,i=t.field_types,a=Array(r.length);for(let e=0;e<r.length;e++)a[e]={name:r[e],type:n.parseFqTypeName(i[e])};return e.fields=a,e}},SchemaParserV2=class extends SchemaParser{constructor(e,t,n){super(e,t),this.udtResolver=n,this.selectTable=`SELECT * FROM system_schema.tables WHERE keyspace_name='%s' AND table_name='%s'`,this.selectColumns=`SELECT * FROM system_schema.columns WHERE keyspace_name='%s' AND table_name='%s'`,this.selectUdt=`SELECT * FROM system_schema.types WHERE keyspace_name='%s' AND type_name='%s'`,this.selectAggregates=`SELECT * FROM system_schema.aggregates WHERE keyspace_name = '%s' AND aggregate_name = '%s'`,this.selectFunctions=`SELECT * FROM system_schema.functions WHERE keyspace_name = '%s' AND function_name = '%s'`,this.selectIndexes=`SELECT * FROM system_schema.indexes WHERE keyspace_name='%s' AND table_name='%s'`}async getKeyspaces(e){let t={},n=await this.cc.query(f,e);for(let e=0;e<n.rows.length;e++){let r=this._parseKeyspace(n.rows[e]);t[r.name]=r}return t}async getKeyspace(e){let t=await this._getFirstRow(d(p,e));return t?this._parseKeyspace(t):null}async getMaterializedView(e,n,r){let i=r&&r[n];if(i||(i=new c(n),r&&(r[n]=i)),i.loaded)return i;if(i.loading)return t.fromEvent(i,`load`);i.loading=!0;try{let t=await this._getFirstRow(d(`SELECT * FROM system_schema.views WHERE keyspace_name = '%s' AND view_name = '%s'`,e,n));if(!t)return i.emit(`load`,null,null),i.loading=!1,null;let r=await this._getRows(d(this.selectColumns,e,n));return await this._parseTableOrView(i,t,r,null,!1),i.loaded=!0,i.emit(`load`,null,i),i}catch(e){throw i.emit(`load`,e),e}finally{i.loading=!1}}_parseKeyspace(e,t){let n=e.replication,r,i;if(n){r=n.class,i={};for(let e in n)!n.hasOwnProperty(e)||e===`class`||(i[e]=n[e])}let a=this._createKeyspace(e.keyspace_name,e.durable_writes,r,i,t);return a.graphEngine=e.graph_engine,a}async _parseTableOrView(e,t,r,i,a){let o=this.cc.getEncoder(),s={},l=[],u=[];if(e.columns=await Promise.all(r.map(async e=>{let n=await o.parseTypeName(t.keyspace_name,e.type,0,null,this.udtResolver),r={name:e.column_name,type:n,isStatic:!1};switch(s[r.name]=r,e.kind){case`partition_key`:l.push({c:r,index:e.position||0});break;case`clustering`:u.push({c:r,index:e.position||0,order:e.clustering_order===`desc`?`DESC`:`ASC`});break;case`static`:r.isStatic=!0;break}return r})),e.columnsByName=s,e.partitionKeys=l.sort(n.propCompare(`index`)).map(e=>e.c),u.sort(n.propCompare(`index`)),e.clusteringKeys=u.map(e=>e.c),e.clusteringOrder=u.map(e=>e.order),a){e.virtual=!0;return}let d=e instanceof c;e.bloomFilterFalsePositiveChance=t.bloom_filter_fp_chance,e.caching=JSON.stringify(t.caching),e.comment=t.comment;let f=this._asMap(t.compaction);if(f&&(e.compactionOptions={},e.compactionClass=f.get(`class`),f.forEach((t,n)=>{n!==`class`&&(e.compactionOptions[n]=f.get(n))})),e.compression=this._mapAsObject(t.compression),e.gcGraceSeconds=t.gc_grace_seconds,e.localReadRepairChance=t.dclocal_read_repair_chance,e.readRepairChance=t.read_repair_chance,e.extensions=this._mapAsObject(t.extensions),e.crcCheckChance=t.crc_check_chance,e.memtableFlushPeriod=t.memtable_flush_period_in_ms||e.memtableFlushPeriod,e.defaultTtl=t.default_time_to_live||e.defaultTtl,e.speculativeRetry=t.speculative_retry||e.speculativeRetry,e.minIndexInterval=t.min_index_interval||e.minIndexInterval,e.maxIndexInterval=t.max_index_interval||e.maxIndexInterval,e.nodesync=t.nodesync||e.nodesync,!d){let n=t.cdc;n!==void 0&&(e.cdc=n)}if(d){e.tableName=t.base_table_name,e.whereClause=t.where_clause,e.includeAllColumns=t.include_all_columns;return}e.indexes=this._getIndexes(i);let p=t.flags;Array.isArray(p)&&(p=new Set(p));let m=p.has(`dense`),h=p.has(`super`),g=p.has(`compound`);e.isCompact=h||m||!g,!h&&!m&&!g?pruneStaticCompactTableColumns(e):m&&pruneDenseTableColumns(e)}_getIndexes(e){return!e||e.length===0?n.emptyArray:e.map(e=>{let t=this._mapAsObject(e.options);return new s(e.index_name,t.target,e.kind,t)})}async _parseAggregate(e){let t=this.cc.getEncoder(),r=new a;return r.name=e.aggregate_name,r.keyspaceName=e.keyspace_name,r.signature=e.argument_types||n.emptyArray,r.stateFunction=e.state_func,r.finalFunction=e.final_func,r.initConditionRaw=e.initcond,r.initCondition=r.initConditionRaw,r.deterministic=e.deterministic||!1,r.argumentTypes=await Promise.all(r.signature.map(n=>t.parseTypeName(e.keyspace_name,n,0,null,this.udtResolver))),r.stateType=await t.parseTypeName(e.keyspace_name,e.state_type,0,null,this.udtResolver),r.returnType=await t.parseTypeName(e.keyspace_name,e.return_type,0,null,this.udtResolver),r}async _parseFunction(e){let t=this.cc.getEncoder(),r=new o;return r.name=e.function_name,r.keyspaceName=e.keyspace_name,r.signature=e.argument_types||n.emptyArray,r.argumentNames=e.argument_names||n.emptyArray,r.body=e.body,r.calledOnNullInput=e.called_on_null_input,r.language=e.language,r.deterministic=e.deterministic||!1,r.monotonic=e.monotonic||!1,r.monotonicOn=e.monotonic_on||n.emptyArray,r.argumentTypes=await Promise.all(r.signature.map(n=>t.parseTypeName(e.keyspace_name,n,0,null,this.udtResolver))),r.returnType=await t.parseTypeName(e.keyspace_name,e.return_type,0,null,this.udtResolver),r}async _parseUdt(e,t){let n=this.cc.getEncoder(),r=t.field_types,i=t.keyspace_name;return e.fields=await Promise.all(t.field_names.map(async(e,t)=>({name:e,type:await n.parseTypeName(i,r[t],0,null,this.udtResolver)}))),e}},SchemaParserV3=class extends SchemaParserV2{constructor(e,t,n){super(e,t,n),this.supportsVirtual=!0}async getKeyspaces(e){let t={},n=[{query:f,virtual:!1},{query:`SELECT * FROM system_virtual_schema.keyspaces`,virtual:!0}];return await Promise.all(n.map(async n=>{let r=null;try{r=await this.cc.query(n.query,e)}catch(e){if(n.virtual)return;throw e}for(let e=0;e<r.rows.length;e++){let i=this._parseKeyspace(r.rows[e],n.virtual);t[i.name]=i}})),t}async getKeyspace(e){return await this._getKeyspace(p,e,!1)||this._getKeyspace(`SELECT * FROM system_virtual_schema.keyspaces where keyspace_name = '%s'`,e,!0)}async _getKeyspace(e,t,n){try{let r=await this._getFirstRow(d(e,t));return r?this._parseKeyspace(r,n):null}catch(e){if(n)return null;throw e}}};function pruneStaticCompactTableColumns(e){let t,r;for(t=0;t<e.clusteringKeys.length;t++){r=e.clusteringKeys[t];let n=e.columns.indexOf(r);e.columns.splice(n,1),delete e.columnsByName[r.name]}for(e.clusteringKeys=n.emptyArray,e.clusteringOrder=n.emptyArray,t=e.columns.length;t--;){if(r=e.columns[t],!r.isStatic&&e.partitionKeys.indexOf(r)===-1){e.columns.splice(t,1),delete e.columnsByName[r.name];continue}r.isStatic=!1}}function pruneDenseTableColumns(e){let t=e.columns.length;for(;t--;){let n=e.columns[t];if(!n.isStatic&&n.type.code===r.dataTypes.custom&&n.type.info===`empty`){e.columns.splice(t,1),delete e.columnsByName[n.name];continue}n.isStatic=!1}}function getTokenToReplicaMapper(e,t){if(/SimpleStrategy$/.test(e)){let e=parseInt(t.replication_factor,10);if(e>1)return getTokenToReplicaSimpleMapper(e)}return/NetworkTopologyStrategy$/.test(e)?getTokenToReplicaNetworkMapper(t):function(e,t,n){let r={};for(let e in n)n.hasOwnProperty(e)&&(r[e]=[n[e]]);return r}}function getTokenToReplicaSimpleMapper(e){return function(t,n,r){let i=n.length,a=Math.min(e,i),o={};for(let e=0;e<i;e++){let t=n[e],s=[r[t]];for(let t=1;t<i&&s.length<a;t++){let a=e+t;a>=i&&(a%=i);let o=r[n[a]];s.indexOf(o)===-1&&s.push(o)}o[t]=s}return o}}function getTokenToReplicaNetworkMapper(e){return function(t,r,i,a){let o={},s=r.length;for(let t=0;t<s;t++){let c=r[t],l=[],u={},d={},f=[];for(let o=0;o<s;o++){let c=t+o;c>=s&&(c%=s);let p=i[r[c]];if(l.indexOf(p)!==-1)continue;let m=p.datacenter,h=parseInt(e[m],10);if(!h)continue;h=Math.min(h,a[m].hostLength);let g=u[m]||0;if(g>=h)continue;let _=d[m];if(_||=d[m]=new n.HashSet,p.rack&&_.contains(p.rack)&&_.length<a[m].racks.length){f.length<h-g&&f.push(p);continue}if(u[p.datacenter]=++g,l.push(p),p.rack&&_.add(p.rack)&&_.length===a[m].racks.length&&(u[m]+=addSkippedHosts(h,g,l,f)),isDoneForToken(e,a,u))break}o[c]=l}return o}}function addSkippedHosts(e,t,n,r){let i;for(i=0;i<e-t&&i<r.length;i++)n.push(r[i]);return i}function isDoneForToken(e,t,n){let r=Object.keys(e);for(let i=0;i<r.length;i++){let a=r[i],o=t[a];if(!o)continue;let s=Math.min(parseInt(e[a],10),o.hostLength);if(s>0&&(!n[a]||n[a]<s))return!1}return!0}function getByVersion(e,t,n,r,i){let a=SchemaParserV1;return r&&r[0]===3?a=SchemaParserV2:r&&r[0]>=4&&(a=SchemaParserV3),!i||!(i instanceof a)?new a(e,t,n):i}var h={getByVersion,isDoneForToken};export{h as default};
@@ -1 +0,0 @@
1
- import e from"./data-collection.js";import t from"util";function TableMetadata(t){e.call(this,t),this.replicateOnWrite=!0,this.memtableFlushPeriod=0,this.indexInterval=null,this.isCompact=!1,this.indexes=null,this.cdc=null,this.virtual=!1}t.inherits(TableMetadata,e);export{TableMetadata as default};
@@ -1 +0,0 @@
1
- import e from"./errors.js";import t from"./utils.js";import{ExecuteRequest as n,QueryRequest as r}from"./requests.js";import i from"util";const a={init:0,completed:1,timedOut:2,cancelled:3};var OperationState=class{constructor(e,t,n){this.request=e,this._rowCallback=t,this._callback=n,this._deadline=0,this._state=a.init,this._rowIndex=0,this.streamId=-1}cancel(){this._state===a.init&&(this._state=a.cancelled,this._callback=t.noop,this._deadline=0)}canBeWritten(){return this._state===a.init}isByRow(){return this._rowCallback&&(this.request instanceof n||this.request instanceof r)}setRequestTimeout(e,t,n,r,i){if(this._state!==a.init)return;let o=e.getReadTimeout()===void 0?t:e.getReadTimeout();o>0&&(this._deadline=Date.now()+o,this._timeoutMillis=o,this._onTimeoutCb=r,this._onResponseCb=i,this._address=n)}checkTimeout(t){if(this._state!==a.init||!this._deadline||this._deadline>t)return!1;this._onTimeoutCb();let n=i.format(`The host %s did not reply before timeout %d ms`,this._address,this._timeoutMillis);return this._markAsTimedOut(new e.OperationTimedOutError(n,this._address),this._onResponseCb),!0}setResultRow(t,n,r,i,a){if(this._markAsCompleted(),!this._rowCallback)return this.setResult(new e.DriverInternalError(`RowCallback not found for streaming frame handler`));this._rowCallback(this._rowIndex++,t,r),this._rowIndex===r&&this._swapCallbackAndInvoke(null,{rowLength:r,meta:n,flags:i},a.bodyLength)}_markAsTimedOut(e,t){this._state===a.init&&(this._state=a.timedOut,this._swapCallbackAndInvoke(e,null,null,t))}_markAsCompleted(){this._state===a.init&&(this._state=a.completed,this._deadline=0)}setResult(e,t,n){this._markAsCompleted(),this._swapCallbackAndInvoke(e,t,n)}_swapCallbackAndInvoke(e,n,r,i){let a=this._callback;this._callback=i||t.noop,a(e,n,r)}};export{OperationState as default};
@@ -1 +0,0 @@
1
- import e from"../utils.js";import t from"util";import n from"dns";function AddressTranslator(){}AddressTranslator.prototype.translate=function(e,t,n){n(e+`:`+t)};function EC2MultiRegionTranslator(){}t.inherits(EC2MultiRegionTranslator,AddressTranslator),EC2MultiRegionTranslator.prototype.translate=function(t,r,i){let a=t,o=this,s;e.series([function(e){n.reverse(t,function(t,n){if(t)return e(t);if(!n)return e();s=n[0],e()})},function(e){if(!s)return e();n.lookup(s,function(t,n){if(t)return e(t);a=n,e()})}],function(e){e&&o.logError(t,e),i(a+`:`+r)})},EC2MultiRegionTranslator.prototype.logError=function(e,t){};var r={AddressTranslator,EC2MultiRegionTranslator};export{r as default};