@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
package/types.d.ts CHANGED
@@ -1,93 +1,107 @@
1
- import { mapping } from "./driver/mapping/index.js";
2
- import { ClientOptions } from "./driver/index.js";
3
- import { Schema } from "./schema/index.js";
4
- import { Document } from "./document/index.js";
5
-
6
- //#region src/types.d.ts
7
- type ClientConfig = {
8
- modelsPath?: string;
9
- contactPoints?: string[];
10
- localDataCenter?: string;
11
- keyspace?: string;
12
- port?: number;
13
- maxRetries?: number;
14
- retryDelay?: number;
15
- pooling?: {
16
- coreConnectionsPerHost?: Record<string, number>;
17
- maxRequestsPerConnection?: number;
18
- };
1
+ import { ClientOptions } from "./driver";
2
+ import Document from "./document";
3
+ import { Schema } from "./schema";
4
+ import type { mapping } from "./driver/mapping";
5
+ export type ClientConfig = {
6
+ modelsPath?: string;
7
+ contactPoints?: string[];
8
+ localDataCenter?: string;
9
+ keyspace?: string;
10
+ port?: number;
11
+ maxRetries?: number;
12
+ retryDelay?: number;
13
+ pooling?: {
14
+ coreConnectionsPerHost?: Record<string, number>;
15
+ maxRequestsPerConnection?: number;
16
+ };
19
17
  } & ClientOptions;
20
- declare enum ColumnTypes {
21
- Ascii = "ascii",
22
- Bigint = "bigint",
23
- Blob = "blob",
24
- Boolean = "boolean",
25
- Counter = "counter",
26
- Date = "date",
27
- Decimal = "decimal",
28
- Double = "double",
29
- Duration = "duration",
30
- Float = "float",
31
- Frozen = "frozen",
32
- Inet = "inet",
33
- Int = "int",
34
- List = "list",
35
- Map = "map",
36
- Set = "set",
37
- Smallint = "smallint",
38
- Text = "text",
39
- Time = "time",
40
- Timestamp = "timestamp",
41
- Timeuuid = "timeuuid",
42
- Tinyint = "tinyint",
43
- Tuple = "tuple",
44
- Uuid = "uuid",
45
- Varchar = "varchar",
46
- Varint = "varint"
18
+ export declare enum ColumnTypes {
19
+ Ascii = "ascii",
20
+ Bigint = "bigint",
21
+ Blob = "blob",
22
+ Boolean = "boolean",
23
+ Counter = "counter",
24
+ Date = "date",
25
+ Decimal = "decimal",
26
+ Double = "double",
27
+ Duration = "duration",
28
+ Float = "float",
29
+ Frozen = "frozen",
30
+ Inet = "inet",
31
+ Int = "int",
32
+ List = "list",
33
+ Map = "map",
34
+ Set = "set",
35
+ Smallint = "smallint",
36
+ Text = "text",
37
+ Time = "time",
38
+ Timestamp = "timestamp",
39
+ Timeuuid = "timeuuid",
40
+ Tinyint = "tinyint",
41
+ Tuple = "tuple",
42
+ Uuid = "uuid",
43
+ Varchar = "varchar",
44
+ Varint = "varint"
47
45
  }
48
- type TableKeys<T> = (keyof T | TableKeys<T>)[];
49
- type TableClusteringOrder<T> = Partial<Record<keyof T, "asc" | "desc">>;
50
- interface Column<T, Required extends boolean = false> {
51
- type?: ColumnTypes[] | string;
52
- required?: Required;
46
+ export type TableKeys<T> = (keyof T | TableKeys<T>)[];
47
+ export type TableClusteringOrder<T> = Partial<Record<keyof T, "asc" | "desc">>;
48
+ export interface Column<T, Required extends boolean = false> {
49
+ type?: ColumnTypes[] | string;
50
+ required?: Required;
53
51
  }
54
- declare const defineColumn: <T>() => <R extends boolean = false>(config: {
55
- type: any;
56
- required?: R;
52
+ export declare const defineColumn: <T>() => <R extends boolean = false>(config: {
53
+ type: any;
54
+ required?: R;
57
55
  }) => Column<T, R>;
58
- type QueryOperators<T> = {
59
- $eq?: T;
60
- $ne?: T;
61
- $in?: T[];
62
- $gt?: T;
63
- $gte?: T;
64
- $lt?: T;
65
- $lte?: T;
66
- $and?: Query<T>[];
67
- __v?: number;
56
+ export type QueryOperators<T> = {
57
+ $eq?: T;
58
+ $ne?: T;
59
+ $in?: T[];
60
+ $gt?: T;
61
+ $gte?: T;
62
+ $lt?: T;
63
+ $lte?: T;
64
+ $and?: Query<T>[];
65
+ __v?: number;
68
66
  };
69
- type Query<T> = { [K in keyof T]?: T[K] | QueryOperators<T[K]> };
70
- type FindQueryOptions<T> = {
71
- raw?: boolean;
72
- orderBy?: { [K in keyof T]?: "asc" | "desc" };
67
+ export type Query<T> = {
68
+ [K in keyof T]?: T[K] | QueryOperators<T[K]>;
69
+ };
70
+ export type FindQueryOptions<T> = {
71
+ raw?: boolean;
72
+ orderBy?: {
73
+ [K in keyof T]?: "asc" | "desc";
74
+ };
73
75
  } & mapping.FindDocInfo;
74
- type UpdateQueryOptions<T> = {
75
- batch?: boolean;
76
- raw?: boolean;
77
- orderBy?: { [K in keyof T]?: "asc" | "desc" };
78
- when?: { [K in keyof T]?: any };
76
+ export type UpdateQueryOptions<T> = {
77
+ batch?: boolean;
78
+ raw?: boolean;
79
+ orderBy?: {
80
+ [K in keyof T]?: "asc" | "desc";
81
+ };
82
+ when?: {
83
+ [K in keyof T]?: any;
84
+ };
79
85
  } & mapping.UpdateDocInfo;
80
- type InsertQueryOptions<T> = {
81
- batch?: boolean;
82
- raw?: boolean;
86
+ export type InsertQueryOptions<T> = {
87
+ batch?: boolean;
88
+ raw?: boolean;
83
89
  } & mapping.InsertDocInfo;
84
- type DeleteQueryOptions<T> = {
85
- batch?: boolean;
86
- raw?: boolean;
87
- when?: { [K in keyof T]?: any };
90
+ export type DeleteQueryOptions<T> = {
91
+ batch?: boolean;
92
+ raw?: boolean;
93
+ when?: {
94
+ [K in keyof T]?: any;
95
+ };
88
96
  } & mapping.RemoveDocInfo;
89
- type Prettify<T> = { [K in keyof T]: T[K] } & {};
90
- type Doc<TDoc = any> = Document<TDoc> & TDoc;
91
- type InferDoc<S> = S extends Schema<infer T> ? Prettify<{ [K in keyof T as K extends `$${string}` ? never : T[K] extends Column<any, true> ? K : never]: T[K] extends Column<infer U, any> ? U : T[K] } & { [K in keyof T as K extends `$${string}` ? never : T[K] extends Column<any, true> ? never : K]?: T[K] extends Column<infer U, any> ? U : T[K] }> : any;
92
- //#endregion
93
- export { ClientConfig, Column, ColumnTypes, DeleteQueryOptions, Doc, FindQueryOptions, InferDoc, InsertQueryOptions, Query, QueryOperators, TableClusteringOrder, TableKeys, UpdateQueryOptions, defineColumn };
97
+ type Prettify<T> = {
98
+ [K in keyof T]: T[K];
99
+ } & {};
100
+ export type Doc<TDoc = any> = Document<TDoc> & TDoc;
101
+ export type InferDoc<S> = S extends Schema<infer T> ? Prettify<{
102
+ [K in keyof T as K extends `$${string}` ? never : T[K] extends Column<any, true> ? K : never]: T[K] extends Column<infer U, any> ? U : T[K];
103
+ } & {
104
+ [K in keyof T as K extends `$${string}` ? never : T[K] extends Column<any, true> ? never : K]?: T[K] extends Column<infer U, any> ? U : T[K];
105
+ }> : any;
106
+ export {};
107
+ //# sourceMappingURL=types.d.ts.map
package/types.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/types.js CHANGED
@@ -1 +1,33 @@
1
- let e=function(e){return e.Ascii=`ascii`,e.Bigint=`bigint`,e.Blob=`blob`,e.Boolean=`boolean`,e.Counter=`counter`,e.Date=`date`,e.Decimal=`decimal`,e.Double=`double`,e.Duration=`duration`,e.Float=`float`,e.Frozen=`frozen`,e.Inet=`inet`,e.Int=`int`,e.List=`list`,e.Map=`map`,e.Set=`set`,e.Smallint=`smallint`,e.Text=`text`,e.Time=`time`,e.Timestamp=`timestamp`,e.Timeuuid=`timeuuid`,e.Tinyint=`tinyint`,e.Tuple=`tuple`,e.Uuid=`uuid`,e.Varchar=`varchar`,e.Varint=`varint`,e}({});const defineColumn=()=>e=>e;export{e as ColumnTypes,defineColumn};
1
+ export var ColumnTypes;
2
+ (function (ColumnTypes) {
3
+ ColumnTypes["Ascii"] = "ascii";
4
+ ColumnTypes["Bigint"] = "bigint";
5
+ ColumnTypes["Blob"] = "blob";
6
+ ColumnTypes["Boolean"] = "boolean";
7
+ ColumnTypes["Counter"] = "counter";
8
+ ColumnTypes["Date"] = "date";
9
+ ColumnTypes["Decimal"] = "decimal";
10
+ ColumnTypes["Double"] = "double";
11
+ ColumnTypes["Duration"] = "duration";
12
+ ColumnTypes["Float"] = "float";
13
+ ColumnTypes["Frozen"] = "frozen";
14
+ ColumnTypes["Inet"] = "inet";
15
+ ColumnTypes["Int"] = "int";
16
+ ColumnTypes["List"] = "list";
17
+ ColumnTypes["Map"] = "map";
18
+ ColumnTypes["Set"] = "set";
19
+ ColumnTypes["Smallint"] = "smallint";
20
+ ColumnTypes["Text"] = "text";
21
+ ColumnTypes["Time"] = "time";
22
+ ColumnTypes["Timestamp"] = "timestamp";
23
+ ColumnTypes["Timeuuid"] = "timeuuid";
24
+ ColumnTypes["Tinyint"] = "tinyint";
25
+ ColumnTypes["Tuple"] = "tuple";
26
+ ColumnTypes["Uuid"] = "uuid";
27
+ ColumnTypes["Varchar"] = "varchar";
28
+ ColumnTypes["Varint"] = "varint";
29
+ })(ColumnTypes || (ColumnTypes = {}));
30
+ export const defineColumn = () => (config) => {
31
+ return config;
32
+ };
33
+ //# sourceMappingURL=types.js.map
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAN,IAAY,WA2BX;AA3BD,WAAY,WAAW;IACtB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,0BAAW,CAAA;IACX,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;AAClB,CAAC,EA3BW,WAAW,KAAX,WAAW,QA2BtB;AAUD,MAAM,CAAC,MAAM,YAAY,GACxB,GAAM,EAAE,CACR,CAA4B,MAG3B,EAAgB,EAAE;IAClB,OAAO,MAAa,CAAA;AACrB,CAAC,CAAA"}
@@ -1,4 +1,12 @@
1
- //#region src/utils/buildMapper.d.ts
2
- declare const _default: (map: any) => any;
3
- //#endregion
4
- export { _default as default };
1
+ export type MapSchema = {
2
+ name: string;
3
+ schema: {
4
+ table_name: string;
5
+ columns: {
6
+ [name: string]: string;
7
+ };
8
+ };
9
+ };
10
+ export default _default;
11
+ declare function _default(map: MapSchema[]): {};
12
+ //# sourceMappingURL=buildMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMapper.d.ts","sourceRoot":"","sources":["../../src/utils/buildMapper.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE;YACR,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;SACtB,CAAA;KACD,CAAA;CACD,CAAA;;0BACe,GAAG,EAAE,SAAS,EAAE"}
@@ -1 +1,11 @@
1
- var buildMapper_default=e=>e.reduce((e,{name:t,schema:n})=>({...e,[t]:{tables:[n.table_name]}}),{});export{buildMapper_default as default};
1
+ export default (map) => {
2
+ return map.reduce((obj, { name, schema }) => {
3
+ return {
4
+ ...obj,
5
+ [name]: {
6
+ tables: [schema.table_name],
7
+ },
8
+ };
9
+ }, {});
10
+ };
11
+ //# sourceMappingURL=buildMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMapper.js","sourceRoot":"","sources":["../../src/utils/buildMapper.ts"],"names":[],"mappings":"AASA,eAAe,CAAC,GAAgB,EAAE,EAAE;IACnC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,OAAO;YACN,GAAG,GAAG;YACN,CAAC,IAAI,CAAC,EAAE;gBACP,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;aAC3B;SACD,CAAA;IACF,CAAC,EAAE,EAAE,CAAC,CAAA;AACP,CAAC,CAAA"}
package/utils/delay.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- //#region src/utils/delay.d.ts
2
- declare function delay(ms: number): Promise<void>;
3
- //#endregion
4
- export { delay as default, delay };
1
+ export declare function delay(ms: number): Promise<void>;
2
+ export default delay;
3
+ //# sourceMappingURL=delay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../src/utils/delay.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;eAEc,KAAK"}
package/utils/delay.js CHANGED
@@ -1 +1,5 @@
1
- function delay(e){return new Promise(t=>setTimeout(t,e))}export{delay as default,delay};
1
+ export function delay(ms) {
2
+ return new Promise((resolve) => setTimeout(resolve, ms));
3
+ }
4
+ export default delay;
5
+ //# sourceMappingURL=delay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delay.js","sourceRoot":"","sources":["../../src/utils/delay.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,EAAU;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,eAAe,KAAK,CAAA"}
@@ -1,4 +1,2 @@
1
- //#region src/utils/fillDefaults.d.ts
2
- declare function fillDefaults(schema: any, data: any): any;
3
- //#endregion
4
- export { fillDefaults as default };
1
+ export default function fillDefaults(schema: any, data: any): any;
2
+ //# sourceMappingURL=fillDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fillDefaults.d.ts","sourceRoot":"","sources":["../../src/utils/fillDefaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OA6B1D"}
@@ -1 +1,24 @@
1
- function fillDefaults(e,t){let n=e.options?.defaults;if(!n||Object.keys(n).length===0)return t;let r=!1;for(let e in n)if(t[e]==null){r=!0;break}if(!r)return t;let i=Object.assign({},t);for(let e in n)i[e]??(i[e]=n[e]);return i}export{fillDefaults as default};
1
+ export default function fillDefaults(schema, data) {
2
+ const defaults = schema.options?.defaults;
3
+ if (!defaults || Object.keys(defaults).length === 0) {
4
+ return data;
5
+ }
6
+ let needsDefaults = false;
7
+ for (const key in defaults) {
8
+ if (data[key] == null) {
9
+ needsDefaults = true;
10
+ break;
11
+ }
12
+ }
13
+ if (!needsDefaults) {
14
+ return data;
15
+ }
16
+ const result = Object.assign({}, data);
17
+ for (const key in defaults) {
18
+ if (result[key] == null) {
19
+ result[key] = defaults[key];
20
+ }
21
+ }
22
+ return result;
23
+ }
24
+ //# sourceMappingURL=fillDefaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fillDefaults.js","sourceRoot":"","sources":["../../src/utils/fillDefaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAW,EAAE,IAAS;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAA;IAEzC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,aAAa,GAAG,KAAK,CAAA;IAEzB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACvB,aAAa,GAAG,IAAI,CAAA;YACpB,MAAK;QACN,CAAC;IACF,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAEtC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC"}
@@ -1,4 +1,3 @@
1
- //#region src/utils/isPlainObject.d.ts
2
- declare const _default: (value: any) => boolean;
3
- //#endregion
4
- export { _default as default };
1
+ export default _default;
2
+ declare function _default(value: any): boolean;
3
+ //# sourceMappingURL=isPlainObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPlainObject.d.ts","sourceRoot":"","sources":["../../src/utils/isPlainObject.ts"],"names":[],"mappings":";0BAAgB,KAAK,EAAE,GAAG,GAAG,OAAO"}
@@ -1 +1,11 @@
1
- var isPlainObject_default=e=>{if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype};export{isPlainObject_default as default};
1
+ export default (value) => {
2
+ if (typeof value !== "object" || value === null) {
3
+ return false;
4
+ }
5
+ if (Object.prototype.toString.call(value) !== "[object Object]") {
6
+ return false;
7
+ }
8
+ const proto = Object.getPrototypeOf(value);
9
+ return proto === null || proto === Object.prototype;
10
+ };
11
+ //# sourceMappingURL=isPlainObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPlainObject.js","sourceRoot":"","sources":["../../src/utils/isPlainObject.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,KAAU,EAAW,EAAE;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,EAAE,CAAC;QACjE,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAE1C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAA;AACpD,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- //#region src/utils/loadModels.d.ts
2
- declare const _default: (fromPath: string) => Promise<any[]>;
3
- //#endregion
4
- export { _default as default };
1
+ export default _default;
2
+ declare function _default(fromPath: string): Promise<any[]>;
3
+ //# sourceMappingURL=loadModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadModels.d.ts","sourceRoot":"","sources":["../../src/utils/loadModels.ts"],"names":[],"mappings":";0BAGsB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC"}
@@ -1 +1,29 @@
1
- import e from"node:path";import t from"node:fs";var loadModels_default=async n=>{if(typeof n!=`string`)return[];if(!t.existsSync(n))return console.warn(`Cannot load models from [${n}] case this path does not exist`),[];let r=[],i=await t.promises.readdir(n);i=i.filter(e=>e.endsWith(`.js`)||e.endsWith(`.ts`));for await(let t of i){let i=t.replace(`.js`,``),a=e.join(n,t);try{let e=await import(a);e=e.default,r.push(e)}catch(e){console.error(`Failed to load model [${i}]:`,e);continue}}return r};export{loadModels_default as default};
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ export default async (fromPath) => {
4
+ if (typeof fromPath !== "string") {
5
+ return [];
6
+ }
7
+ if (!fs.existsSync(fromPath)) {
8
+ console.warn(`Cannot load models from [${fromPath}] case this path does not exist`);
9
+ return [];
10
+ }
11
+ let mods = [];
12
+ let files = await fs.promises.readdir(fromPath);
13
+ files = files.filter((file) => file.endsWith(".js") || file.endsWith(".ts"));
14
+ for await (const file of files) {
15
+ const name = file.replace(".js", "");
16
+ const file_path = path.join(fromPath, file);
17
+ try {
18
+ let mod = await import(file_path);
19
+ mod = mod.default;
20
+ mods.push(mod);
21
+ }
22
+ catch (error) {
23
+ console.error(`Failed to load model [${name}]:`, error);
24
+ continue;
25
+ }
26
+ }
27
+ return mods;
28
+ };
29
+ //# sourceMappingURL=loadModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadModels.js","sourceRoot":"","sources":["../../src/utils/loadModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,eAAe,KAAK,EAAE,QAAgB,EAAkB,EAAE;IACzD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,EAAE,CAAA;IACV,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CACX,4BAA4B,QAAQ,iCAAiC,CACrE,CAAA;QACD,OAAO,EAAE,CAAA;IACV,CAAC;IAED,IAAI,IAAI,GAAU,EAAE,CAAA;IAEpB,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE/C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAE5E,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAE3C,IAAI,CAAC;YACJ,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;YAEjC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;YAEjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,IAAI,IAAI,EAAE,KAAK,CAAC,CAAA;YACvD,SAAQ;QACT,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA"}
@@ -1,8 +1,5 @@
1
- import { Model } from "../model/index.js";
2
-
3
- //#region src/utils/queryParser.d.ts
4
- declare function queryParser(model: Model<any>, query: any, depth?: number): any;
5
- declare function isValidFieldName(fields: Record<string, any>, fieldName: string): boolean;
6
- declare function isValidOperator(operator: string): boolean;
7
- //#endregion
8
- export { queryParser as default, isValidFieldName, isValidOperator };
1
+ import type { Model } from "../model";
2
+ export default function queryParser(model: Model<any>, query: any, depth?: number): any;
3
+ export declare function isValidFieldName(fields: Record<string, any>, fieldName: string): boolean;
4
+ export declare function isValidOperator(operator: string): boolean;
5
+ //# sourceMappingURL=queryParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryParser.d.ts","sourceRoot":"","sources":["../../src/utils/queryParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AA6ErC,MAAM,CAAC,OAAO,UAAU,WAAW,CAClC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,KAAK,EAAE,GAAG,EACV,KAAK,GAAE,MAAU,OA6BjB;AAWD,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,EAAE,MAAM,GACf,OAAO,CAYT;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -1 +1,102 @@
1
- import e from"../driver/index.js";import t from"./isPlainObject.js";const{q:n}=e.mapping,r=1e3,i=new Set([`$eq`,`$ne`,`$gt`,`$gte`,`$lt`,`$lte`,`$in`]);function requireNotNull(e,t){if(e==null)throw Error(`${t} operator cannot compare with null or undefined`)}function buildOperator(e,t){if(!i.has(e))throw Error(`Invalid operator: ${e}`);switch(e){case`$eq`:return t;case`$ne`:return requireNotNull(t,`$ne`),n.notEq(t);case`$in`:if(!Array.isArray(t))throw Error(`$in operator requires an array`);if(t.length>r)throw Error(`$in operator exceeds maximum of ${r} elements`);for(let e=0;e<t.length;e++)if(t[e]===null||t[e]===void 0)throw Error(`$in array element at index ${e} cannot be null or undefined`);return n.in_(t);case`$gt`:return requireNotNull(t,`$gt`),n.gt(t);case`$gte`:return requireNotNull(t,`$gte`),n.gte(t);case`$lt`:return requireNotNull(t,`$lt`),n.lt(t);case`$lte`:return requireNotNull(t,`$lte`),n.lte(t)}}function queryParser(e,n,r=0){if(r>3)throw Error(`Query depth exceeds maximum of 3`);if(!n||typeof n!=`object`)return n;let i={};for(let r of Object.keys(n)){let a=n[r];if(!isValidFieldName(e.schema.fields,r))throw Error(`Invalid field name: [${r}] or it does not exist in schema`);t(a)?i[r]=parseField(a):i[r]=a}return i}function parseField(e){let t=Object.keys(e).map(t=>buildOperator(t,e[t]));return t.length===1?t[0]:n.and(...t)}function isValidFieldName(e,t){for(let e of[/^[0-9]/,/[^a-zA-Z0-9_]/,/^(select|insert|update|delete|drop|create|alter|truncate)$/i])if(e.test(t))return!1;return t in e}function isValidOperator(e){return i.has(e)}export{queryParser as default,isValidFieldName,isValidOperator};
1
+ // @ts-ignore
2
+ import cassandra from "../driver";
3
+ import isPlainObject from "./isPlainObject";
4
+ const { q } = cassandra.mapping;
5
+ const MAX_QUERY_DEPTH = 3;
6
+ const MAX_IN_ELEMENTS = 1000;
7
+ const VALID_OPERATORS = new Set([
8
+ "$eq",
9
+ "$ne",
10
+ "$gt",
11
+ "$gte",
12
+ "$lt",
13
+ "$lte",
14
+ "$in",
15
+ ]);
16
+ function requireNotNull(value, operator) {
17
+ if (value === null || value === undefined) {
18
+ throw new Error(`${operator} operator cannot compare with null or undefined`);
19
+ }
20
+ }
21
+ function buildOperator(operator, opValue) {
22
+ if (!VALID_OPERATORS.has(operator)) {
23
+ throw new Error(`Invalid operator: ${operator}`);
24
+ }
25
+ switch (operator) {
26
+ case "$eq":
27
+ return opValue;
28
+ case "$ne":
29
+ requireNotNull(opValue, "$ne");
30
+ return q.notEq(opValue);
31
+ case "$in":
32
+ if (!Array.isArray(opValue)) {
33
+ throw new Error("$in operator requires an array");
34
+ }
35
+ if (opValue.length > MAX_IN_ELEMENTS) {
36
+ throw new Error(`$in operator exceeds maximum of ${MAX_IN_ELEMENTS} elements`);
37
+ }
38
+ for (let i = 0; i < opValue.length; i++) {
39
+ if (opValue[i] === null || opValue[i] === undefined) {
40
+ throw new Error(`$in array element at index ${i} cannot be null or undefined`);
41
+ }
42
+ }
43
+ return q.in_(opValue);
44
+ case "$gt":
45
+ requireNotNull(opValue, "$gt");
46
+ return q.gt(opValue);
47
+ case "$gte":
48
+ requireNotNull(opValue, "$gte");
49
+ return q.gte(opValue);
50
+ case "$lt":
51
+ requireNotNull(opValue, "$lt");
52
+ return q.lt(opValue);
53
+ case "$lte":
54
+ requireNotNull(opValue, "$lte");
55
+ return q.lte(opValue);
56
+ }
57
+ }
58
+ export default function queryParser(model, query, depth = 0) {
59
+ if (depth > MAX_QUERY_DEPTH) {
60
+ throw new Error(`Query depth exceeds maximum of ${MAX_QUERY_DEPTH}`);
61
+ }
62
+ if (!query || typeof query !== "object") {
63
+ return query;
64
+ }
65
+ const parsedQuery = {};
66
+ for (const fieldKey of Object.keys(query)) {
67
+ const value = query[fieldKey];
68
+ if (!isValidFieldName(model.schema.fields, fieldKey)) {
69
+ throw new Error(`Invalid field name: [${fieldKey}] or it does not exist in schema`);
70
+ }
71
+ if (isPlainObject(value)) {
72
+ parsedQuery[fieldKey] = parseField(value);
73
+ }
74
+ else {
75
+ parsedQuery[fieldKey] = value;
76
+ }
77
+ }
78
+ return parsedQuery;
79
+ }
80
+ function parseField(value) {
81
+ const operators = Object.keys(value);
82
+ const compiledOps = operators.map((op) => buildOperator(op, value[op]));
83
+ return compiledOps.length === 1
84
+ ? compiledOps[0]
85
+ : q.and(...compiledOps);
86
+ }
87
+ export function isValidFieldName(fields, fieldName) {
88
+ const invalidPatterns = [
89
+ /^[0-9]/,
90
+ /[^a-zA-Z0-9_]/,
91
+ /^(select|insert|update|delete|drop|create|alter|truncate)$/i,
92
+ ];
93
+ for (const pattern of invalidPatterns) {
94
+ if (pattern.test(fieldName))
95
+ return false;
96
+ }
97
+ return fieldName in fields;
98
+ }
99
+ export function isValidOperator(operator) {
100
+ return VALID_OPERATORS.has(operator);
101
+ }
102
+ //# sourceMappingURL=queryParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryParser.js","sourceRoot":"","sources":["../../src/utils/queryParser.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- import { Model } from "../model/index.js";
2
-
3
- //#region src/utils/typeChecker.d.ts
4
- declare function typeChecker(model: Model<any>, data: any): boolean;
5
- //#endregion
6
- export { typeChecker as default };
1
+ import type { Model } from "../model";
2
+ export default function typeChecker(model: Model<any>, data: any): boolean;
3
+ //# sourceMappingURL=typeChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeChecker.d.ts","sourceRoot":"","sources":["../../src/utils/typeChecker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAkFrC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAoCzE"}