@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.
- package/batch/index.d.ts +19 -21
- package/batch/index.d.ts.map +1 -0
- package/batch/index.js +37 -1
- package/batch/index.js.map +1 -0
- package/client.d.ts +24 -27
- package/client.d.ts.map +1 -0
- package/client.js +190 -1
- package/client.js.map +1 -0
- package/cql_gen/create_keyspace.d.ts +8 -9
- package/cql_gen/create_keyspace.d.ts.map +1 -0
- package/cql_gen/create_keyspace.js +14 -1
- package/cql_gen/create_keyspace.js.map +1 -0
- package/cql_gen/create_table.d.ts +3 -6
- package/cql_gen/create_table.d.ts.map +1 -0
- package/cql_gen/create_table.js +51 -1
- package/cql_gen/create_table.js.map +1 -0
- package/document/index.d.ts +11 -14
- package/document/index.d.ts.map +1 -0
- package/document/index.js +76 -1
- package/document/index.js.map +1 -0
- package/global.d.ts +6 -0
- package/global.d.ts.map +1 -0
- package/global.js +2 -0
- package/global.js.map +1 -0
- package/index.d.ts +9 -7
- package/index.d.ts.map +1 -0
- package/index.js +9 -1
- package/index.js.map +1 -0
- package/logger/index.d.ts +7 -8
- package/logger/index.d.ts.map +1 -0
- package/logger/index.js +14 -1
- package/logger/index.js.map +1 -0
- package/migrate/index.d.ts +12 -14
- package/migrate/index.d.ts.map +1 -0
- package/migrate/index.js +254 -4
- package/migrate/index.js.map +1 -0
- package/model/index.d.ts +64 -67
- package/model/index.d.ts.map +1 -0
- package/model/index.js +71 -1
- package/model/index.js.map +1 -0
- package/operations/countAll.d.ts +3 -6
- package/operations/countAll.d.ts.map +1 -0
- package/operations/countAll.js +13 -1
- package/operations/countAll.js.map +1 -0
- package/operations/delete.d.ts +5 -8
- package/operations/delete.d.ts.map +1 -0
- package/operations/delete.js +23 -1
- package/operations/delete.js.map +1 -0
- package/operations/find.d.ts +4 -7
- package/operations/find.d.ts.map +1 -0
- package/operations/find.js +19 -1
- package/operations/find.js.map +1 -0
- package/operations/findOne.d.ts +4 -7
- package/operations/findOne.d.ts.map +1 -0
- package/operations/findOne.js +21 -1
- package/operations/findOne.js.map +1 -0
- package/operations/insert.d.ts +5 -8
- package/operations/insert.d.ts.map +1 -0
- package/operations/insert.js +24 -1
- package/operations/insert.js.map +1 -0
- package/operations/sync.d.ts +3 -6
- package/operations/sync.d.ts.map +1 -0
- package/operations/sync.js +16 -1
- package/operations/sync.js.map +1 -0
- package/operations/tableExists.d.ts +3 -6
- package/operations/tableExists.d.ts.map +1 -0
- package/operations/tableExists.js +15 -2
- package/operations/tableExists.js.map +1 -0
- package/operations/update.d.ts +5 -8
- package/operations/update.d.ts.map +1 -0
- package/operations/update.js +35 -1
- package/operations/update.js.map +1 -0
- package/package.json +13 -3
- package/schema/index.d.ts +13 -15
- package/schema/index.d.ts.map +1 -0
- package/schema/index.js +23 -1
- package/schema/index.js.map +1 -0
- package/types.d.ts +98 -84
- package/types.d.ts.map +1 -0
- package/types.js +33 -1
- package/types.js.map +1 -0
- package/utils/buildMapper.d.ts +12 -4
- package/utils/buildMapper.d.ts.map +1 -0
- package/utils/buildMapper.js +11 -1
- package/utils/buildMapper.js.map +1 -0
- package/utils/delay.d.ts +3 -4
- package/utils/delay.d.ts.map +1 -0
- package/utils/delay.js +5 -1
- package/utils/delay.js.map +1 -0
- package/utils/fillDefaults.d.ts +2 -4
- package/utils/fillDefaults.d.ts.map +1 -0
- package/utils/fillDefaults.js +24 -1
- package/utils/fillDefaults.js.map +1 -0
- package/utils/isPlainObject.d.ts +3 -4
- package/utils/isPlainObject.d.ts.map +1 -0
- package/utils/isPlainObject.js +11 -1
- package/utils/isPlainObject.js.map +1 -0
- package/utils/loadModels.d.ts +3 -4
- package/utils/loadModels.d.ts.map +1 -0
- package/utils/loadModels.js +29 -1
- package/utils/loadModels.js.map +1 -0
- package/utils/queryParser.d.ts +5 -8
- package/utils/queryParser.d.ts.map +1 -0
- package/utils/queryParser.js +102 -1
- package/utils/queryParser.js.map +1 -0
- package/utils/typeChecker.d.ts +3 -6
- package/utils/typeChecker.d.ts.map +1 -0
- package/utils/typeChecker.js +90 -1
- package/utils/typeChecker.js.map +1 -0
- package/driver/auth/index.d.ts +0 -34
- package/driver/auth/index.js +0 -1
- package/driver/auth/no-auth-provider.js +0 -1
- package/driver/auth/plain-text-auth-provider.js +0 -1
- package/driver/auth/provider.js +0 -1
- package/driver/client-options.js +0 -1
- package/driver/client.js +0 -1
- package/driver/concurrent/index.d.ts +0 -1
- package/driver/concurrent/index.js +0 -1
- package/driver/connection.js +0 -1
- package/driver/control-connection.js +0 -1
- package/driver/encoder.js +0 -1
- package/driver/errors.js +0 -1
- package/driver/execution-options.js +0 -1
- package/driver/execution-profile.js +0 -1
- package/driver/host-connection-pool.js +0 -1
- package/driver/host.js +0 -1
- package/driver/index.d.ts +0 -212
- package/driver/index.js +0 -1
- package/driver/mapping/cache.js +0 -1
- package/driver/mapping/doc-info-adapter.js +0 -1
- package/driver/mapping/index.d.ts +0 -142
- package/driver/mapping/index.js +0 -1
- package/driver/mapping/mapper.js +0 -1
- package/driver/mapping/mapping-handler.js +0 -1
- package/driver/mapping/model-batch-item.js +0 -1
- package/driver/mapping/model-batch-mapper.js +0 -1
- package/driver/mapping/model-mapper.js +0 -1
- package/driver/mapping/model-mapping-info.js +0 -1
- package/driver/mapping/object-selector.js +0 -1
- package/driver/mapping/q.js +0 -1
- package/driver/mapping/query-generator.js +0 -9
- package/driver/mapping/result-mapper.js +0 -4
- package/driver/mapping/result.js +0 -1
- package/driver/mapping/table-mappings.js +0 -1
- package/driver/mapping/tree.js +0 -1
- package/driver/metadata/aggregate.js +0 -1
- package/driver/metadata/client-state.js +0 -1
- package/driver/metadata/data-collection.js +0 -1
- package/driver/metadata/event-debouncer.js +0 -1
- package/driver/metadata/index.d.ts +0 -184
- package/driver/metadata/index.js +0 -1
- package/driver/metadata/materialized-view.js +0 -1
- package/driver/metadata/schema-function.js +0 -1
- package/driver/metadata/schema-index.js +0 -1
- package/driver/metadata/schema-parser.js +0 -1
- package/driver/metadata/table-metadata.js +0 -1
- package/driver/operation-state.js +0 -1
- package/driver/policies/address-resolution.js +0 -1
- package/driver/policies/index.d.ts +0 -135
- package/driver/policies/index.js +0 -1
- package/driver/policies/load-balancing.js +0 -1
- package/driver/policies/reconnection.js +0 -1
- package/driver/policies/retry.js +0 -1
- package/driver/policies/speculative-execution.js +0 -1
- package/driver/policies/timestamp-generation.js +0 -1
- package/driver/prepare-handler.js +0 -1
- package/driver/promise-utils.js +0 -1
- package/driver/readers.js +0 -1
- package/driver/request-execution.js +0 -1
- package/driver/request-handler.js +0 -1
- package/driver/requests.js +0 -1
- package/driver/stream-id-stack.js +0 -1
- package/driver/streams.js +0 -1
- package/driver/token.js +0 -1
- package/driver/tokenizer.js +0 -1
- package/driver/types/big-decimal.js +0 -1
- package/driver/types/duration.js +0 -1
- package/driver/types/index.d.ts +0 -320
- package/driver/types/index.js +0 -1
- package/driver/types/inet-address.js +0 -1
- package/driver/types/integer.js +0 -1
- package/driver/types/local-date.js +0 -1
- package/driver/types/local-time.js +0 -1
- package/driver/types/mutable-long.js +0 -1
- package/driver/types/protocol-version.js +0 -1
- package/driver/types/result-set.js +0 -1
- package/driver/types/result-stream.js +0 -1
- package/driver/types/row.js +0 -1
- package/driver/types/time-uuid.js +0 -1
- package/driver/types/tuple.js +0 -1
- package/driver/types/uuid.js +0 -1
- package/driver/types/vector.js +0 -1
- package/driver/types/version-number.js +0 -1
- package/driver/utils.js +0 -4
- package/driver/writers.js +0 -1
- package/package.js +0 -1
package/types.d.ts
CHANGED
|
@@ -1,93 +1,107 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { Schema } from "./schema
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
52
|
-
|
|
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
|
-
|
|
56
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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> = {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
82
|
-
|
|
86
|
+
export type InsertQueryOptions<T> = {
|
|
87
|
+
batch?: boolean;
|
|
88
|
+
raw?: boolean;
|
|
83
89
|
} & mapping.InsertDocInfo;
|
|
84
|
-
type DeleteQueryOptions<T> = {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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> = {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
export
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,MAAM,YAAY,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACT,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,wBAAwB,CAAC,EAAE,MAAM,CAAA;KACjC,CAAA;CACD,GAAG,aAAa,CAAA;AAEjB,oBAAY,WAAW;IACtB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;CACjB;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACrD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAA;AAE9E,MAAM,WAAW,MAAM,CAAC,CAAC,EAAE,QAAQ,SAAS,OAAO,GAAG,KAAK;IAC1D,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACnB;AAED,eAAO,MAAM,YAAY,GACvB,CAAC,QACD,CAAC,SAAS,OAAO,GAAG,KAAK,UAAU;IACnC,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,CAAC,EAAE,CAAC,CAAA;CACZ,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAEd,CAAA;AAKF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC/B,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,GAAG,CAAC,EAAE,CAAC,EAAE,CAAA;IACT,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IACjC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;KAAE,CAAA;CAC7C,GAAG,OAAO,CAAC,WAAW,CAAA;AAEvB,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IACnC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;KAAE,CAAA;IAC7C,IAAI,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;KAAE,CAAA;CAC/B,GAAG,OAAO,CAAC,aAAa,CAAA;AAEzB,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IACnC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;CACb,GAAG,OAAO,CAAC,aAAa,CAAA;AAEzB,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IACnC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;KAAE,CAAA;CAC/B,GAAG,OAAO,CAAC,aAAa,CAAA;AAMzB,KAAK,QAAQ,CAAC,CAAC,IAAI;KACjB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAEnD,MAAM,MAAM,QAAQ,CAAC,CAAC,IACrB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GACtB,QAAQ,CACR;KACE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,GACpC,KAAK,GACL,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAC7B,CAAC,GACD,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAC1C,CAAC,GACD,CAAC,CAAC,CAAC,CAAC;CACP,GAAG;KACF,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,GACpC,KAAK,GACL,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAC7B,KAAK,GACL,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrD,CACD,GACA,GAAG,CAAA"}
|
package/types.js
CHANGED
|
@@ -1 +1,33 @@
|
|
|
1
|
-
|
|
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"}
|
package/utils/buildMapper.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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"}
|
package/utils/buildMapper.js
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
//#
|
|
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
|
@@ -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"}
|
package/utils/fillDefaults.d.ts
CHANGED
|
@@ -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"}
|
package/utils/fillDefaults.js
CHANGED
|
@@ -1 +1,24 @@
|
|
|
1
|
-
function fillDefaults(
|
|
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"}
|
package/utils/isPlainObject.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
declare
|
|
3
|
-
//#
|
|
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"}
|
package/utils/isPlainObject.js
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
|
|
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"}
|
package/utils/loadModels.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
declare
|
|
3
|
-
//#
|
|
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"}
|
package/utils/loadModels.js
CHANGED
|
@@ -1 +1,29 @@
|
|
|
1
|
-
import
|
|
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"}
|
package/utils/queryParser.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { Model } from "../model
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
declare function
|
|
5
|
-
|
|
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"}
|
package/utils/queryParser.js
CHANGED
|
@@ -1 +1,102 @@
|
|
|
1
|
-
|
|
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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"}
|
package/utils/typeChecker.d.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { Model } from "../model
|
|
2
|
-
|
|
3
|
-
//#
|
|
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"}
|