@antelopejs/interface-database-decorators 0.1.0 → 0.1.1
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/dist/antelope.test.js +5 -9
- package/dist/antelope.test.js.map +1 -1
- package/dist/common.d.ts +2 -1
- package/dist/common.js +1 -1
- package/dist/common.js.map +1 -1
- package/dist/database.d.ts +3 -11
- package/dist/database.js +7 -16
- package/dist/database.js.map +1 -1
- package/dist/model.d.ts +27 -6
- package/dist/model.js +79 -7
- package/dist/model.js.map +1 -1
- package/dist/table.d.ts +5 -11
- package/dist/table.js +8 -15
- package/dist/table.js.map +1 -1
- package/dist/tests/codec_helpers.d.ts +27 -0
- package/dist/tests/codec_helpers.js +27 -0
- package/dist/tests/codec_helpers.js.map +1 -0
- package/dist/tests/database.test.js +26 -58
- package/dist/tests/database.test.js.map +1 -1
- package/dist/tests/integration.test.js +97 -0
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/model.test.js +148 -11
- package/dist/tests/model.test.js.map +1 -1
- package/dist/tests/table.test.js +38 -0
- package/dist/tests/table.test.js.map +1 -1
- package/package.json +2 -2
package/dist/antelope.test.js
CHANGED
|
@@ -7,18 +7,14 @@ exports.default = (0, config_1.defineConfig)({
|
|
|
7
7
|
name: "interface-database-decorators-test",
|
|
8
8
|
cacheFolder: ".antelope/cache",
|
|
9
9
|
modules: {
|
|
10
|
+
local: {
|
|
11
|
+
source: { type: "local", path: "." },
|
|
12
|
+
},
|
|
10
13
|
mongodb: {
|
|
11
14
|
source: {
|
|
12
15
|
type: "package",
|
|
13
16
|
package: "@antelopejs/mongodb",
|
|
14
|
-
version: "1.1
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
database_decorators: {
|
|
18
|
-
source: {
|
|
19
|
-
type: "package",
|
|
20
|
-
package: "@antelopejs/database-decorators",
|
|
21
|
-
version: "1.1.0",
|
|
17
|
+
version: "1.2.1",
|
|
22
18
|
},
|
|
23
19
|
},
|
|
24
20
|
api: {
|
|
@@ -39,7 +35,7 @@ exports.default = (0, config_1.defineConfig)({
|
|
|
39
35
|
return {
|
|
40
36
|
modules: {
|
|
41
37
|
mongodb: {
|
|
42
|
-
config: { url: mongod.getUri() },
|
|
38
|
+
config: { url: mongod.getUri(), database: "antelopejs_test" },
|
|
43
39
|
},
|
|
44
40
|
},
|
|
45
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antelope.test.js","sourceRoot":"","sources":["../src/antelope.test.ts"],"names":[],"mappings":";;AAAA,8DAAiE;AACjE,2EAA+D;AAE/D,IAAI,MAAyB,CAAC;AAE9B,kBAAe,IAAA,qBAAY,EAAC;IAC1B,IAAI,EAAE,oCAAoC;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE;QACP,
|
|
1
|
+
{"version":3,"file":"antelope.test.js","sourceRoot":"","sources":["../src/antelope.test.ts"],"names":[],"mappings":";;AAAA,8DAAiE;AACjE,2EAA+D;AAE/D,IAAI,MAAyB,CAAC;AAE9B,kBAAe,IAAA,qBAAY,EAAC;IAC1B,IAAI,EAAE,oCAAoC;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE;QACP,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;SACrC;QACD,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,OAAO;aACjB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,OAAO;aACjB;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAC/D;SACF;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,YAAY;QACpB,KAAK,CAAC,KAAK;YACT,MAAM,GAAG,MAAM,8CAAiB,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO;gBACL,OAAO,EAAE;oBACP,OAAO,EAAE;wBACP,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE;qBAC9D;iBACF;aACF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO;YACX,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;KACF;CACF,CAAC,CAAC"}
|
package/dist/common.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FieldType } from "@antelopejs/interface-database/schema";
|
|
1
2
|
export type Constructible<T = object, A extends unknown[] = unknown[]> = new (...args: A) => T;
|
|
2
3
|
export type DeepPartial<T> = {
|
|
3
4
|
[K in keyof T]?: T[K] extends Array<infer U1> ? Array<DeepPartial<U1>> : T[K] extends ReadonlyArray<infer U2> ? ReadonlyArray<DeepPartial<U2>> : T[K] extends object ? DeepPartial<T[K]> : T[K];
|
|
@@ -15,9 +16,9 @@ export declare class DatumStaticMetadata {
|
|
|
15
16
|
tableName?: string;
|
|
16
17
|
schemaName?: string;
|
|
17
18
|
readonly indexes: Record<string, Array<string>>;
|
|
19
|
+
readonly fields: Record<string, FieldType>;
|
|
18
20
|
primary: string;
|
|
19
21
|
generator?: DatumGenerator;
|
|
20
|
-
tenantScoped: boolean;
|
|
21
22
|
addIndex(key: string, group: string): void;
|
|
22
23
|
}
|
|
23
24
|
export declare function getMetadata<TMetadata, TTarget extends object>(target: TTarget, metadataClass: MetadataClass<TMetadata>, inherit?: boolean): TMetadata;
|
package/dist/common.js
CHANGED
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;AAiDA,kCAsBC;AA3CD;;GAEG;AACH,MAAa,mBAAmB;IACvB,MAAM,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC;IAEtB,SAAS,CAAU;IACnB,UAAU,CAAU;IACX,OAAO,GAAkC,EAAE,CAAC;IAC5C,MAAM,GAA8B,EAAE,CAAC;IAChD,OAAO,GAAW,KAAK,CAAC;IACxB,SAAS,CAAkB;IAElC,QAAQ,CAAC,GAAW,EAAE,KAAa;QACjC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;;AAfH,kDAgBC;AAED,SAAgB,WAAW,CACzB,MAAe,EACf,aAAuC,EACvC,UAAmB,IAAI;IAEvB,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAE5D,CAAC;IACd,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAmB,CAAC;IAClE,MAAM,iBAAiB,GACrB,OAAO,IAAI,SAAS;QAClB,CAAC,CAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAEtC;QAChB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG,iBAAiB,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/database.d.ts
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import { type SchemaOptions } from "@antelopejs/interface-database";
|
|
2
1
|
/**
|
|
3
2
|
* Registers a schema with the database adapter and runs any fixtures.
|
|
4
3
|
*
|
|
5
4
|
* Reads the table classes registered for `schemaId` via `@RegisterTable`,
|
|
6
|
-
* builds a `SchemaDefinition
|
|
7
|
-
*
|
|
8
|
-
* provisions in its physical store), then inserts fixtures for any
|
|
9
|
-
* non-tenant-scoped table that declares one.
|
|
10
|
-
*
|
|
11
|
-
* Tenant-scoped tables cannot carry fixtures: there is no global tenant id
|
|
12
|
-
* to stamp them with. Boot-time seeding of tenant data should be done via
|
|
13
|
-
* an explicit "create tenant" hook in the application.
|
|
5
|
+
* builds a `SchemaDefinition`, constructs the `Schema` (which the adapter
|
|
6
|
+
* provisions), then inserts fixtures for any table that declares one.
|
|
14
7
|
*
|
|
15
8
|
* @param schemaId Schema id matching the `@RegisterTable(_, schemaId)` calls
|
|
16
|
-
* @param options Schema options (e.g. `physicalStore`)
|
|
17
9
|
*/
|
|
18
|
-
export declare function RegisterSchema(schemaId: string
|
|
10
|
+
export declare function RegisterSchema(schemaId: string): Promise<void>;
|
package/dist/database.js
CHANGED
|
@@ -13,23 +13,16 @@ const schema_1 = require("./schema");
|
|
|
13
13
|
* Registers a schema with the database adapter and runs any fixtures.
|
|
14
14
|
*
|
|
15
15
|
* Reads the table classes registered for `schemaId` via `@RegisterTable`,
|
|
16
|
-
* builds a `SchemaDefinition
|
|
17
|
-
*
|
|
18
|
-
* provisions in its physical store), then inserts fixtures for any
|
|
19
|
-
* non-tenant-scoped table that declares one.
|
|
20
|
-
*
|
|
21
|
-
* Tenant-scoped tables cannot carry fixtures: there is no global tenant id
|
|
22
|
-
* to stamp them with. Boot-time seeding of tenant data should be done via
|
|
23
|
-
* an explicit "create tenant" hook in the application.
|
|
16
|
+
* builds a `SchemaDefinition`, constructs the `Schema` (which the adapter
|
|
17
|
+
* provisions), then inserts fixtures for any table that declares one.
|
|
24
18
|
*
|
|
25
19
|
* @param schemaId Schema id matching the `@RegisterTable(_, schemaId)` calls
|
|
26
|
-
* @param options Schema options (e.g. `physicalStore`)
|
|
27
20
|
*/
|
|
28
|
-
async function RegisterSchema(schemaId
|
|
21
|
+
async function RegisterSchema(schemaId) {
|
|
29
22
|
const tables = (0, schema_1.getTablesForSchema)(schemaId);
|
|
30
23
|
(0, node_assert_1.default)(tables, `No tables registered for schema '${schemaId}'`);
|
|
31
24
|
const definition = buildSchemaDefinition(tables);
|
|
32
|
-
const schema = new interface_database_1.Schema(schemaId, definition
|
|
25
|
+
const schema = new interface_database_1.Schema(schemaId, definition);
|
|
33
26
|
await insertAllFixtureData(schema, tables);
|
|
34
27
|
}
|
|
35
28
|
function buildSchemaDefinition(tables) {
|
|
@@ -43,9 +36,8 @@ function buildSchemaDefinition(tables) {
|
|
|
43
36
|
};
|
|
44
37
|
}
|
|
45
38
|
definition[tableName] = {
|
|
46
|
-
fields:
|
|
39
|
+
fields: metadata.fields,
|
|
47
40
|
indexes,
|
|
48
|
-
tenantScoped: metadata.tenantScoped ? true : undefined,
|
|
49
41
|
};
|
|
50
42
|
}
|
|
51
43
|
return definition;
|
|
@@ -53,14 +45,13 @@ function buildSchemaDefinition(tables) {
|
|
|
53
45
|
async function insertAllFixtureData(schema, tables) {
|
|
54
46
|
await Promise.all(Object.entries(tables).map(([tableName, tableClass]) => {
|
|
55
47
|
const metadata = (0, common_1.getMetadata)(tableClass, common_1.DatumStaticMetadata);
|
|
56
|
-
return insertFixtureData(schema, tableName, tableClass, metadata.
|
|
48
|
+
return insertFixtureData(schema, tableName, tableClass, metadata.generator);
|
|
57
49
|
}));
|
|
58
50
|
}
|
|
59
|
-
async function insertFixtureData(schema, tableName, tableClass,
|
|
51
|
+
async function insertFixtureData(schema, tableName, tableClass, generator) {
|
|
60
52
|
if (!generator) {
|
|
61
53
|
return;
|
|
62
54
|
}
|
|
63
|
-
(0, node_assert_1.default)(!tenantScoped, `Fixture on tenant-scoped table '${tableName}' is not supported: there is no implicit tenant id at registration time. Seed tenant data from a create-tenant hook instead.`);
|
|
64
55
|
const count = await schema.instance().table(tableName).count();
|
|
65
56
|
if (count > 0) {
|
|
66
57
|
return;
|
package/dist/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type RequestContext } from "@antelopejs/interface-api";
|
|
2
2
|
import { type Class } from "@antelopejs/interface-core/decorators";
|
|
3
3
|
import type * as DatabaseDev from "@antelopejs/interface-database";
|
|
4
|
-
import { type
|
|
4
|
+
import { type InstanceId } from "@antelopejs/interface-database";
|
|
5
5
|
import { type Constructible, type DeepPartial } from "./common";
|
|
6
6
|
export type DataModel<T = any> = {
|
|
7
7
|
readonly schemaName: string;
|
|
@@ -12,6 +12,19 @@ export type DataModel<T = any> = {
|
|
|
12
12
|
fromDatabase(obj: any): T | undefined;
|
|
13
13
|
fromPlainData(obj: any): T;
|
|
14
14
|
};
|
|
15
|
+
export type FieldError = {
|
|
16
|
+
field: string;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
export type ValidationResult = {
|
|
20
|
+
ok: true;
|
|
21
|
+
} | {
|
|
22
|
+
ok: false;
|
|
23
|
+
errors: FieldError[];
|
|
24
|
+
};
|
|
25
|
+
export type ValidateInputOptions = {
|
|
26
|
+
partial?: boolean;
|
|
27
|
+
};
|
|
15
28
|
/**
|
|
16
29
|
* Utility Class factory to create a basic Data Model with 1 table.
|
|
17
30
|
*
|
|
@@ -53,7 +66,7 @@ export declare function BasicDataModel<T extends object>(dataType: Constructible
|
|
|
53
66
|
* @param options Insert options
|
|
54
67
|
* @returns Insert result
|
|
55
68
|
*/
|
|
56
|
-
insert(obj: DeepPartial<T> | Array<DeepPartial<T
|
|
69
|
+
insert(obj: DeepPartial<T> | Array<DeepPartial<T>>, options?: ValidateOptions): Promise<string[]>;
|
|
57
70
|
/**
|
|
58
71
|
* Updates a single element in the table.
|
|
59
72
|
*
|
|
@@ -62,8 +75,8 @@ export declare function BasicDataModel<T extends object>(dataType: Constructible
|
|
|
62
75
|
* @param options Update options
|
|
63
76
|
* @returns Update result
|
|
64
77
|
*/
|
|
65
|
-
update(id: string, obj: DeepPartial<T
|
|
66
|
-
update(obj: DeepPartial<T
|
|
78
|
+
update(id: string, obj: DeepPartial<T>, options?: ValidateOptions): Promise<number>;
|
|
79
|
+
update(obj: DeepPartial<T>, options?: ValidateOptions): Promise<number>;
|
|
67
80
|
/**
|
|
68
81
|
* Delete an element from the table.
|
|
69
82
|
*
|
|
@@ -94,9 +107,17 @@ export declare function BasicDataModel<T extends object>(dataType: Constructible
|
|
|
94
107
|
* @returns Database-ready data
|
|
95
108
|
*/
|
|
96
109
|
toDatabase(obj: any): Record<string, any>;
|
|
110
|
+
/**
|
|
111
|
+
* Validates a plain object against every io-ts codec attached via `@Field`.
|
|
112
|
+
* Pass `{ partial: true }` to skip fields not present on `obj` (patch semantics).
|
|
113
|
+
*/
|
|
114
|
+
validate(obj: unknown, options?: ValidateInputOptions): ValidationResult;
|
|
115
|
+
};
|
|
116
|
+
export type ValidateOptions = {
|
|
117
|
+
validate?: boolean;
|
|
97
118
|
};
|
|
98
|
-
export declare function GetModel<M extends InstanceType<DataModel>>(cl: DataModel & Class<M>, instanceId?:
|
|
119
|
+
export declare function GetModel<M extends InstanceType<DataModel>>(cl: DataModel & Class<M>, instanceId?: InstanceId): M;
|
|
99
120
|
export declare const Model: (cl: DataModel<any> & Class<{
|
|
100
121
|
readonly database: DatabaseDev.SchemaInstance<any>;
|
|
101
122
|
readonly table: DatabaseDev.Table<any>;
|
|
102
|
-
}>, instanceIdOrCallback?: DatabaseDev.
|
|
123
|
+
}>, instanceIdOrCallback?: DatabaseDev.InstanceId | ((ctx: RequestContext) => InstanceId | undefined) | undefined) => import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator;
|
package/dist/model.js
CHANGED
|
@@ -12,6 +12,16 @@ const decorators_1 = require("@antelopejs/interface-core/decorators");
|
|
|
12
12
|
const interface_database_1 = require("@antelopejs/interface-database");
|
|
13
13
|
const common_1 = require("./common");
|
|
14
14
|
const common_2 = require("./modifiers/common");
|
|
15
|
+
function isCodec(type) {
|
|
16
|
+
return (typeof type === "object" &&
|
|
17
|
+
type !== null &&
|
|
18
|
+
!Array.isArray(type) &&
|
|
19
|
+
typeof type.decode === "function");
|
|
20
|
+
}
|
|
21
|
+
function decodeFieldError(field, result) {
|
|
22
|
+
const message = result.left.map((e) => e.message).find(Boolean) ?? `invalid ${field}`;
|
|
23
|
+
return { field, message };
|
|
24
|
+
}
|
|
15
25
|
/**
|
|
16
26
|
* Utility Class factory to create a basic Data Model with 1 table.
|
|
17
27
|
*
|
|
@@ -56,6 +66,29 @@ function BasicDataModel(dataType, tableName) {
|
|
|
56
66
|
const instance = obj instanceof dataType ? obj : Model.fromPlainData(obj);
|
|
57
67
|
return (0, common_2.toDatabase)(instance);
|
|
58
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Validates a plain object against every io-ts codec attached via `@Field`.
|
|
71
|
+
* Pass `{ partial: true }` to skip fields not present on `obj` (patch semantics).
|
|
72
|
+
*/
|
|
73
|
+
static validate(obj, options) {
|
|
74
|
+
const fields = metadata.fields;
|
|
75
|
+
const errors = [];
|
|
76
|
+
const partial = options?.partial === true;
|
|
77
|
+
const record = typeof obj === "object" && obj !== null
|
|
78
|
+
? obj
|
|
79
|
+
: undefined;
|
|
80
|
+
for (const [field, type] of Object.entries(fields)) {
|
|
81
|
+
if (!isCodec(type))
|
|
82
|
+
continue;
|
|
83
|
+
if (partial && (!record || !(field in record)))
|
|
84
|
+
continue;
|
|
85
|
+
const result = type.decode(record?.[field]);
|
|
86
|
+
if (result._tag === "Left") {
|
|
87
|
+
errors.push(decodeFieldError(field, result));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return errors.length === 0 ? { ok: true } : { ok: false, errors };
|
|
91
|
+
}
|
|
59
92
|
/**
|
|
60
93
|
* AQL Table reference.
|
|
61
94
|
*/
|
|
@@ -100,7 +133,18 @@ function BasicDataModel(dataType, tableName) {
|
|
|
100
133
|
* @param options Insert options
|
|
101
134
|
* @returns Insert result
|
|
102
135
|
*/
|
|
103
|
-
insert(obj) {
|
|
136
|
+
async insert(obj, options) {
|
|
137
|
+
if (options?.validate) {
|
|
138
|
+
const entries = Array.isArray(obj) ? obj : [obj];
|
|
139
|
+
const allErrors = [];
|
|
140
|
+
for (const entry of entries) {
|
|
141
|
+
const result = Model.validate(entry);
|
|
142
|
+
if (!result.ok)
|
|
143
|
+
allErrors.push(...result.errors);
|
|
144
|
+
}
|
|
145
|
+
if (allErrors.length > 0)
|
|
146
|
+
throw makeValidationError(allErrors);
|
|
147
|
+
}
|
|
104
148
|
const converter = (entry) => {
|
|
105
149
|
const instance = Model.fromPlainData(entry);
|
|
106
150
|
(0, common_2.triggerEvent)(instance, "insert");
|
|
@@ -110,15 +154,24 @@ function BasicDataModel(dataType, tableName) {
|
|
|
110
154
|
.insert(Array.isArray(obj) ? obj.map(converter) : converter(obj))
|
|
111
155
|
.run();
|
|
112
156
|
}
|
|
113
|
-
update(
|
|
114
|
-
|
|
115
|
-
|
|
157
|
+
async update(idOrObj, objOrOptions, options) {
|
|
158
|
+
const parsed = parseUpdateArgs(idOrObj, objOrOptions, options);
|
|
159
|
+
if (parsed.options?.validate) {
|
|
160
|
+
const result = Model.validate(parsed.data, { partial: true });
|
|
161
|
+
if (!result.ok)
|
|
162
|
+
throw makeValidationError(result.errors);
|
|
163
|
+
}
|
|
164
|
+
if (parsed.id !== undefined) {
|
|
165
|
+
const instance = Model.fromPlainData(parsed.data);
|
|
116
166
|
(0, common_2.triggerEvent)(instance, "update");
|
|
117
|
-
return this.table
|
|
167
|
+
return this.table
|
|
168
|
+
.get(parsed.id)
|
|
169
|
+
.update(Model.toDatabase(instance))
|
|
170
|
+
.run();
|
|
118
171
|
}
|
|
119
|
-
const instance = Model.fromPlainData(
|
|
172
|
+
const instance = Model.fromPlainData(parsed.data);
|
|
120
173
|
(0, common_2.triggerEvent)(instance, "update");
|
|
121
|
-
const id =
|
|
174
|
+
const id = parsed.data[primaryKey];
|
|
122
175
|
(0, node_assert_1.default)(id !== undefined, "Missing primary key in object update.");
|
|
123
176
|
return this.table.get(id).update(Model.toDatabase(instance)).run();
|
|
124
177
|
}
|
|
@@ -142,6 +195,25 @@ function cacheKeyOf(instanceId) {
|
|
|
142
195
|
return instanceId;
|
|
143
196
|
return instanceId;
|
|
144
197
|
}
|
|
198
|
+
function makeValidationError(errors) {
|
|
199
|
+
const summary = errors.map((e) => `${e.field} (${e.message})`).join(", ");
|
|
200
|
+
const err = new Error(`validation failed: ${summary}`);
|
|
201
|
+
err.errors = errors;
|
|
202
|
+
return err;
|
|
203
|
+
}
|
|
204
|
+
function parseUpdateArgs(idOrObj, objOrOptions, options) {
|
|
205
|
+
if (typeof idOrObj === "string") {
|
|
206
|
+
return {
|
|
207
|
+
id: idOrObj,
|
|
208
|
+
data: objOrOptions,
|
|
209
|
+
options,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
data: idOrObj,
|
|
214
|
+
options: objOrOptions,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
145
217
|
function GetModel(cl, instanceId) {
|
|
146
218
|
if (!modelCache.has(cl)) {
|
|
147
219
|
modelCache.set(cl, new Map());
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/table.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ClassDecorator } from "@antelopejs/interface-core/decorators";
|
|
2
|
+
import type { FieldType } from "@antelopejs/interface-database/schema";
|
|
2
3
|
import { type Constructible } from "./common";
|
|
3
4
|
import { MixinSymbol, type MixinType } from "./modifiers/common";
|
|
4
5
|
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
@@ -43,6 +44,10 @@ export declare class Table {
|
|
|
43
44
|
export declare const Index: (options?: {
|
|
44
45
|
group?: string;
|
|
45
46
|
} | undefined) => import("@antelopejs/interface-core/decorators").PropertyDecorator;
|
|
47
|
+
/**
|
|
48
|
+
* Database Table Field type decorator.
|
|
49
|
+
*/
|
|
50
|
+
export declare const Field: (type: FieldType) => import("@antelopejs/interface-core/decorators").PropertyDecorator;
|
|
46
51
|
type AwaitableArray<T> = Promise<T | T[]> | T | T[];
|
|
47
52
|
/**
|
|
48
53
|
* Database Table class decorator to create default data on table creation.
|
|
@@ -50,15 +55,4 @@ type AwaitableArray<T> = Promise<T | T[]> | T | T[];
|
|
|
50
55
|
* @param generator Data generator
|
|
51
56
|
*/
|
|
52
57
|
export declare const Fixture: <T extends typeof Table>(generator: (p: T) => AwaitableArray<Partial<InstanceType<T>>>) => ClassDecorator<T>;
|
|
53
|
-
/**
|
|
54
|
-
* Marks a Table as tenant-scoped.
|
|
55
|
-
*
|
|
56
|
-
* Implementations stamp `tenant_id` on insert, filter reads/updates/deletes
|
|
57
|
-
* on it, and reject queries that omit a tenant context (`Schema.instance(id)`).
|
|
58
|
-
*
|
|
59
|
-
* The query path supports a `CROSS_TENANT` sentinel for legitimate admin
|
|
60
|
-
* operations that need to span every tenant; see `@antelopejs/interface-database`
|
|
61
|
-
* for the contract.
|
|
62
|
-
*/
|
|
63
|
-
export declare const TenantScoped: () => ClassDecorator<typeof Table>;
|
|
64
58
|
export {};
|
package/dist/table.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.Fixture = exports.Field = exports.Index = exports.Table = exports.TableRefSymbol = exports.TableMetaSymbol = void 0;
|
|
4
4
|
const decorators_1 = require("@antelopejs/interface-core/decorators");
|
|
5
5
|
const common_1 = require("./common");
|
|
6
6
|
const common_2 = require("./modifiers/common");
|
|
@@ -51,6 +51,13 @@ exports.Index = (0, decorators_1.MakePropertyDecorator)((target, propertyKey, op
|
|
|
51
51
|
const metadata = (0, common_1.getMetadata)(target.constructor, common_1.DatumStaticMetadata);
|
|
52
52
|
metadata.addIndex(propertyKey, options?.group || propertyKey);
|
|
53
53
|
});
|
|
54
|
+
/**
|
|
55
|
+
* Database Table Field type decorator.
|
|
56
|
+
*/
|
|
57
|
+
exports.Field = (0, decorators_1.MakePropertyDecorator)((target, propertyKey, type) => {
|
|
58
|
+
const metadata = (0, common_1.getMetadata)(target.constructor, common_1.DatumStaticMetadata);
|
|
59
|
+
metadata.fields[propertyKey] = type;
|
|
60
|
+
});
|
|
54
61
|
/**
|
|
55
62
|
* Database Table class decorator to create default data on table creation.
|
|
56
63
|
*
|
|
@@ -60,18 +67,4 @@ exports.Fixture = (0, decorators_1.MakeClassDecorator)((target, generator) => {
|
|
|
60
67
|
const metadata = (0, common_1.getMetadata)(target, common_1.DatumStaticMetadata);
|
|
61
68
|
metadata.generator = generator;
|
|
62
69
|
});
|
|
63
|
-
/**
|
|
64
|
-
* Marks a Table as tenant-scoped.
|
|
65
|
-
*
|
|
66
|
-
* Implementations stamp `tenant_id` on insert, filter reads/updates/deletes
|
|
67
|
-
* on it, and reject queries that omit a tenant context (`Schema.instance(id)`).
|
|
68
|
-
*
|
|
69
|
-
* The query path supports a `CROSS_TENANT` sentinel for legitimate admin
|
|
70
|
-
* operations that need to span every tenant; see `@antelopejs/interface-database`
|
|
71
|
-
* for the contract.
|
|
72
|
-
*/
|
|
73
|
-
exports.TenantScoped = (0, decorators_1.MakeClassDecorator)((target) => {
|
|
74
|
-
const metadata = (0, common_1.getMetadata)(target, common_1.DatumStaticMetadata);
|
|
75
|
-
metadata.tenantScoped = true;
|
|
76
|
-
});
|
|
77
70
|
//# sourceMappingURL=table.js.map
|
package/dist/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":";;;AAAA,sEAI+C;
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":";;;AAAA,sEAI+C;AAE/C,qCAAgF;AAChF,+CAAiE;AAQpD,QAAA,eAAe,GAAG,MAAM,EAAE,CAAC;AAC3B,QAAA,cAAc,GAAG,MAAM,EAAE,CAAC;AAgCvC;;GAEG;AACH,MAAa,KAAK;IAGhB;;;;;OAKG;IACI,MAAM,CAAC,IAAI,CAKhB,GAAG,MAAS;QAQZ,4GAA4G;QAC5G,MAAM,CAAC,GAAG,MAAM,eAAgB,SAAS,IAAY;SAAG,CAAC;QACzD,KAAK,MAAM,KAAK,IAAI,MAAM;aACvB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,UAAU,EAAE,CAAC;aAC7D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,oBAAW,CAAC,CAAC;aACpC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9D,IAAI,GAAG,KAAK,aAAa,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7C,CAAC,CAAC,SAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpB,CAAC,CAAC,SAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAY,CAAC,CAAC;IAChB,CAAC;CACF;AAzCD,sBAyCC;AAED;;;;;;;GAOG;AACU,QAAA,KAAK,GAAG,IAAA,kCAAqB,EACxC,CAAC,MAAM,EAAE,WAAW,EAAE,OAA4B,EAAE,EAAE;IACpD,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,4BAAmB,CAAC,CAAC;IACtE,QAAQ,CAAC,QAAQ,CACP,WAAW,EACnB,OAAO,EAAE,KAAK,IAAY,WAAW,CACtC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;GAEG;AACU,QAAA,KAAK,GAAG,IAAA,kCAAqB,EACxC,CAAC,MAAM,EAAE,WAAW,EAAE,IAAe,EAAE,EAAE;IACvC,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,4BAAmB,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,CAAC,WAAqB,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC,CACF,CAAC;AAGF;;;;GAIG;AACU,QAAA,OAAO,GAEK,IAAA,+BAAkB,EAAC,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,4BAAmB,CAAC,CAAC;IAC1D,QAAQ,CAAC,SAAS,GAAG,SAAwD,CAAC;AAChF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { FieldType } from "@antelopejs/interface-database/schema";
|
|
2
|
+
export type DecodeLeft = {
|
|
3
|
+
_tag: "Left";
|
|
4
|
+
left: Array<{
|
|
5
|
+
value: unknown;
|
|
6
|
+
context: unknown[];
|
|
7
|
+
message?: string;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
export type DecodeRight<T> = {
|
|
11
|
+
_tag: "Right";
|
|
12
|
+
right: T;
|
|
13
|
+
};
|
|
14
|
+
export type DecodeResult<T> = DecodeLeft | DecodeRight<T>;
|
|
15
|
+
export type TestCodec<T> = {
|
|
16
|
+
readonly _A: T;
|
|
17
|
+
readonly _O: T;
|
|
18
|
+
readonly _I: unknown;
|
|
19
|
+
readonly name: string;
|
|
20
|
+
is(u: unknown): u is T;
|
|
21
|
+
encode(a: T): unknown;
|
|
22
|
+
decode(u: unknown): DecodeResult<T>;
|
|
23
|
+
};
|
|
24
|
+
export declare function makeCodec<T>(name: string, guard: (u: unknown) => u is T): TestCodec<T>;
|
|
25
|
+
export declare const stringCodec: TestCodec<string>;
|
|
26
|
+
export declare const numberCodec: TestCodec<number>;
|
|
27
|
+
export declare function asFieldType(codec: TestCodec<unknown>): FieldType;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.numberCodec = exports.stringCodec = void 0;
|
|
4
|
+
exports.makeCodec = makeCodec;
|
|
5
|
+
exports.asFieldType = asFieldType;
|
|
6
|
+
function makeCodec(name, guard) {
|
|
7
|
+
return {
|
|
8
|
+
_A: undefined,
|
|
9
|
+
_O: undefined,
|
|
10
|
+
_I: undefined,
|
|
11
|
+
name,
|
|
12
|
+
is: guard,
|
|
13
|
+
encode: (a) => a,
|
|
14
|
+
decode: (u) => guard(u)
|
|
15
|
+
? { _tag: "Right", right: u }
|
|
16
|
+
: {
|
|
17
|
+
_tag: "Left",
|
|
18
|
+
left: [{ value: u, context: [], message: `not ${name}` }],
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.stringCodec = makeCodec("string", (u) => typeof u === "string");
|
|
23
|
+
exports.numberCodec = makeCodec("number", (u) => typeof u === "number");
|
|
24
|
+
function asFieldType(codec) {
|
|
25
|
+
return codec;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=codec_helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec_helpers.js","sourceRoot":"","sources":["../../src/tests/codec_helpers.ts"],"names":[],"mappings":";;;AAmBA,8BAmBC;AAWD,kCAEC;AAhCD,SAAgB,SAAS,CACvB,IAAY,EACZ,KAA6B;IAE7B,OAAO;QACL,EAAE,EAAE,SAAyB;QAC7B,EAAE,EAAE,SAAyB;QAC7B,EAAE,EAAE,SAAoB;QACxB,IAAI;QACJ,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,KAAK,CAAC,CAAC,CAAC;YACN,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;YAC7B,CAAC,CAAC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;aAC1D;KACR,CAAC;AACJ,CAAC;AAEY,QAAA,WAAW,GAAsB,SAAS,CACrD,QAAQ,EACR,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC1C,CAAC;AACW,QAAA,WAAW,GAAsB,SAAS,CACrD,QAAQ,EACR,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC1C,CAAC;AAEF,SAAgB,WAAW,CAAC,KAAyB;IACnD,OAAO,KAA6B,CAAC;AACvC,CAAC"}
|
|
@@ -14,6 +14,7 @@ const database_1 = require("@antelopejs/interface-database-decorators/database")
|
|
|
14
14
|
const schema_1 = require("@antelopejs/interface-database-decorators/schema");
|
|
15
15
|
const table_1 = require("@antelopejs/interface-database-decorators/table");
|
|
16
16
|
const chai_1 = require("chai");
|
|
17
|
+
const codec_helpers_1 = require("./codec_helpers");
|
|
17
18
|
describe("Database - initialization", () => {
|
|
18
19
|
it("creates a schema", async () => CreateSchemaTest());
|
|
19
20
|
it("creates tables with default primary key", async () => CreateTablesWithDefaultPrimaryKeyTest());
|
|
@@ -21,9 +22,7 @@ describe("Database - initialization", () => {
|
|
|
21
22
|
it("creates tables with grouped indexes", async () => CreateTablesWithGroupedIndexesTest());
|
|
22
23
|
it("creates tables with fixture data", async () => CreateTablesWithFixtureDataTest());
|
|
23
24
|
it("handles multiple tables", async () => HandleMultipleTablesTest());
|
|
24
|
-
it("
|
|
25
|
-
it("rejects fixtures on tenant-scoped tables", async () => RejectsFixturesOnTenantScopedTablesTest());
|
|
26
|
-
it("propagates tenantScoped flag to schema definition", async () => PropagatesTenantScopedFlagTest());
|
|
25
|
+
it("populates TableDefinition.fields from @Field declarations", () => PopulatesTableDefinitionFieldsTest());
|
|
27
26
|
});
|
|
28
27
|
async function CreateSchemaTest() {
|
|
29
28
|
let _TestTable = class _TestTable extends table_1.Table {
|
|
@@ -103,10 +102,34 @@ async function CreateTablesWithFixtureDataTest() {
|
|
|
103
102
|
const result = await schema.instance().table("fixture_table");
|
|
104
103
|
for (const val of result) {
|
|
105
104
|
delete val._id;
|
|
105
|
+
delete val._instance;
|
|
106
106
|
}
|
|
107
107
|
const sortById = (a, b) => a.id.localeCompare(b.id);
|
|
108
108
|
(0, chai_1.expect)(result.sort(sortById)).to.deep.equal(testData.sort(sortById));
|
|
109
109
|
}
|
|
110
|
+
async function PopulatesTableDefinitionFieldsTest() {
|
|
111
|
+
let _Order = class _Order extends table_1.Table {
|
|
112
|
+
};
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, table_1.Field)("string"),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], _Order.prototype, "status", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
119
|
+
__metadata("design:type", Number)
|
|
120
|
+
], _Order.prototype, "total", void 0);
|
|
121
|
+
_Order = __decorate([
|
|
122
|
+
(0, schema_1.RegisterTable)("orders", "test-fields-schema")
|
|
123
|
+
], _Order);
|
|
124
|
+
await (0, database_1.RegisterSchema)("test-fields-schema");
|
|
125
|
+
const schema = interface_database_1.Schema.get("test-fields-schema");
|
|
126
|
+
if (!schema)
|
|
127
|
+
throw new Error("Schema not found");
|
|
128
|
+
const fields = schema.definition.orders.fields;
|
|
129
|
+
(0, chai_1.expect)(fields.status).to.equal("string");
|
|
130
|
+
(0, chai_1.expect)(fields.total).to.equal(codec_helpers_1.numberCodec);
|
|
131
|
+
(0, chai_1.expect)("untyped" in fields).to.equal(false);
|
|
132
|
+
}
|
|
110
133
|
async function HandleMultipleTablesTest() {
|
|
111
134
|
let _UserTable = class _UserTable extends table_1.Table {
|
|
112
135
|
};
|
|
@@ -130,59 +153,4 @@ async function HandleMultipleTablesTest() {
|
|
|
130
153
|
const schema = interface_database_1.Schema.get("test-multi-table-schema");
|
|
131
154
|
(0, chai_1.expect)(schema).to.not.equal(undefined);
|
|
132
155
|
}
|
|
133
|
-
async function SharedPhysicalStoreTest() {
|
|
134
|
-
let _GlobalTable = class _GlobalTable extends table_1.Table {
|
|
135
|
-
};
|
|
136
|
-
_GlobalTable = __decorate([
|
|
137
|
-
(0, schema_1.RegisterTable)("global_table", "test-store-global")
|
|
138
|
-
], _GlobalTable);
|
|
139
|
-
let _TenantTable = class _TenantTable extends table_1.Table {
|
|
140
|
-
};
|
|
141
|
-
_TenantTable = __decorate([
|
|
142
|
-
(0, schema_1.RegisterTable)("tenant_table", "test-store-tenant"),
|
|
143
|
-
(0, table_1.TenantScoped)()
|
|
144
|
-
], _TenantTable);
|
|
145
|
-
await (0, database_1.RegisterSchema)("test-store-global", { physicalStore: "test-shared" });
|
|
146
|
-
await (0, database_1.RegisterSchema)("test-store-tenant", { physicalStore: "test-shared" });
|
|
147
|
-
const globalSchema = interface_database_1.Schema.get("test-store-global");
|
|
148
|
-
const tenantSchema = interface_database_1.Schema.get("test-store-tenant");
|
|
149
|
-
(0, chai_1.expect)(globalSchema).to.not.equal(undefined);
|
|
150
|
-
(0, chai_1.expect)(tenantSchema).to.not.equal(undefined);
|
|
151
|
-
(0, chai_1.expect)(globalSchema?.options.physicalStore).to.equal("test-shared");
|
|
152
|
-
(0, chai_1.expect)(tenantSchema?.options.physicalStore).to.equal("test-shared");
|
|
153
|
-
}
|
|
154
|
-
async function RejectsFixturesOnTenantScopedTablesTest() {
|
|
155
|
-
let _ForbiddenTable = class _ForbiddenTable extends table_1.Table {
|
|
156
|
-
};
|
|
157
|
-
_ForbiddenTable = __decorate([
|
|
158
|
-
(0, table_1.Fixture)(() => [{ name: "boom" }]),
|
|
159
|
-
(0, table_1.TenantScoped)(),
|
|
160
|
-
(0, schema_1.RegisterTable)("forbidden_fixture", "test-fixture-tenant-schema")
|
|
161
|
-
], _ForbiddenTable);
|
|
162
|
-
let threw = false;
|
|
163
|
-
try {
|
|
164
|
-
await (0, database_1.RegisterSchema)("test-fixture-tenant-schema");
|
|
165
|
-
}
|
|
166
|
-
catch {
|
|
167
|
-
threw = true;
|
|
168
|
-
}
|
|
169
|
-
(0, chai_1.expect)(threw).to.equal(true);
|
|
170
|
-
}
|
|
171
|
-
async function PropagatesTenantScopedFlagTest() {
|
|
172
|
-
let _GlobalTable = class _GlobalTable extends table_1.Table {
|
|
173
|
-
};
|
|
174
|
-
_GlobalTable = __decorate([
|
|
175
|
-
(0, schema_1.RegisterTable)("global_only", "test-flag-schema")
|
|
176
|
-
], _GlobalTable);
|
|
177
|
-
let _TenantTable = class _TenantTable extends table_1.Table {
|
|
178
|
-
};
|
|
179
|
-
_TenantTable = __decorate([
|
|
180
|
-
(0, schema_1.RegisterTable)("tenant_only", "test-flag-schema"),
|
|
181
|
-
(0, table_1.TenantScoped)()
|
|
182
|
-
], _TenantTable);
|
|
183
|
-
await (0, database_1.RegisterSchema)("test-flag-schema");
|
|
184
|
-
const schema = interface_database_1.Schema.get("test-flag-schema");
|
|
185
|
-
(0, chai_1.expect)(schema?.definition.global_only.tenantScoped).to.equal(undefined);
|
|
186
|
-
(0, chai_1.expect)(schema?.definition.tenant_only.tenantScoped).to.equal(true);
|
|
187
|
-
}
|
|
188
156
|
//# sourceMappingURL=database.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.test.js","sourceRoot":"","sources":["../../src/tests/database.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uEAAwD;AACxD,iFAAoF;AACpF,6EAAiF;AACjF,2EAKyD;AACzD,+BAA8B;
|
|
1
|
+
{"version":3,"file":"database.test.js","sourceRoot":"","sources":["../../src/tests/database.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ const localization_1 = require("@antelopejs/interface-database-decorators/modifi
|
|
|
18
18
|
const schema_1 = require("@antelopejs/interface-database-decorators/schema");
|
|
19
19
|
const table_1 = require("@antelopejs/interface-database-decorators/table");
|
|
20
20
|
const chai_1 = require("chai");
|
|
21
|
+
const codec_helpers_1 = require("./codec_helpers");
|
|
21
22
|
function getDatabase(schemaId) {
|
|
22
23
|
const instance = interface_database_1.Schema.get(schemaId)?.instance();
|
|
23
24
|
if (!instance)
|
|
@@ -35,6 +36,102 @@ describe("Integration - real database operations", () => {
|
|
|
35
36
|
it("performs bulk operations", async () => PerformBulkOperationsTest());
|
|
36
37
|
it("manages database initialization", async () => ManageDatabaseInitializationTest());
|
|
37
38
|
});
|
|
39
|
+
describe("Model - validate-on-write", () => {
|
|
40
|
+
it("rejects insert with validate:true on bad input", () => ValidateOnInsertRejectsTest());
|
|
41
|
+
it("accepts insert with validate:true on good input", () => ValidateOnInsertAcceptsTest());
|
|
42
|
+
it("rejects update with validate:true on bad input", () => ValidateOnUpdateRejectsTest());
|
|
43
|
+
it("accepts partial update with validate:true when omitted fields are absent", () => ValidateOnUpdateAcceptsPartialTest());
|
|
44
|
+
});
|
|
45
|
+
async function ValidateOnInsertRejectsTest() {
|
|
46
|
+
let _T = class _T extends table_1.Table {
|
|
47
|
+
};
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
50
|
+
__metadata("design:type", Number)
|
|
51
|
+
], _T.prototype, "age", void 0);
|
|
52
|
+
_T = __decorate([
|
|
53
|
+
(0, schema_1.RegisterTable)("v_insert_bad", "model-vow-schema-1")
|
|
54
|
+
], _T);
|
|
55
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_insert_bad");
|
|
56
|
+
await (0, database_1.RegisterSchema)("model-vow-schema-1");
|
|
57
|
+
const model = (0, model_1.GetModel)(TM);
|
|
58
|
+
let threw = false;
|
|
59
|
+
try {
|
|
60
|
+
await model.insert({ age: "old" }, { validate: true });
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
threw = true;
|
|
64
|
+
const errors = e.errors;
|
|
65
|
+
(0, chai_1.expect)(Array.isArray(errors)).to.equal(true);
|
|
66
|
+
(0, chai_1.expect)(errors?.[0].field).to.equal("age");
|
|
67
|
+
}
|
|
68
|
+
(0, chai_1.expect)(threw).to.equal(true);
|
|
69
|
+
}
|
|
70
|
+
async function ValidateOnInsertAcceptsTest() {
|
|
71
|
+
let _T = class _T extends table_1.Table {
|
|
72
|
+
};
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
75
|
+
__metadata("design:type", Number)
|
|
76
|
+
], _T.prototype, "age", void 0);
|
|
77
|
+
_T = __decorate([
|
|
78
|
+
(0, schema_1.RegisterTable)("v_insert_ok", "model-vow-schema-2")
|
|
79
|
+
], _T);
|
|
80
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_insert_ok");
|
|
81
|
+
await (0, database_1.RegisterSchema)("model-vow-schema-2");
|
|
82
|
+
const model = (0, model_1.GetModel)(TM);
|
|
83
|
+
const ids = await model.insert({ age: 30 }, { validate: true });
|
|
84
|
+
(0, chai_1.expect)(ids).to.not.equal(undefined);
|
|
85
|
+
}
|
|
86
|
+
async function ValidateOnUpdateRejectsTest() {
|
|
87
|
+
let _T = class _T extends table_1.Table {
|
|
88
|
+
};
|
|
89
|
+
__decorate([
|
|
90
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
91
|
+
__metadata("design:type", Number)
|
|
92
|
+
], _T.prototype, "age", void 0);
|
|
93
|
+
_T = __decorate([
|
|
94
|
+
(0, schema_1.RegisterTable)("v_update_bad", "model-vow-schema-3")
|
|
95
|
+
], _T);
|
|
96
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_update_bad");
|
|
97
|
+
await (0, database_1.RegisterSchema)("model-vow-schema-3");
|
|
98
|
+
const model = (0, model_1.GetModel)(TM);
|
|
99
|
+
const inserted = await model.insert({ age: 30 });
|
|
100
|
+
const id = Array.isArray(inserted) ? inserted[0] : inserted;
|
|
101
|
+
let threw = false;
|
|
102
|
+
try {
|
|
103
|
+
await model.update(id, { age: "old" }, { validate: true });
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
threw = true;
|
|
107
|
+
(0, chai_1.expect)(e.message).to.contain("validation failed");
|
|
108
|
+
}
|
|
109
|
+
(0, chai_1.expect)(threw).to.equal(true);
|
|
110
|
+
}
|
|
111
|
+
async function ValidateOnUpdateAcceptsPartialTest() {
|
|
112
|
+
let _T = class _T extends table_1.Table {
|
|
113
|
+
};
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
116
|
+
__metadata("design:type", Number)
|
|
117
|
+
], _T.prototype, "age", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
120
|
+
__metadata("design:type", Number)
|
|
121
|
+
], _T.prototype, "score", void 0);
|
|
122
|
+
_T = __decorate([
|
|
123
|
+
(0, schema_1.RegisterTable)("v_update_partial", "model-vow-schema-4")
|
|
124
|
+
], _T);
|
|
125
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_update_partial");
|
|
126
|
+
await (0, database_1.RegisterSchema)("model-vow-schema-4");
|
|
127
|
+
const model = (0, model_1.GetModel)(TM);
|
|
128
|
+
const inserted = await model.insert({ age: 30, score: 100 });
|
|
129
|
+
const id = Array.isArray(inserted) ? inserted[0] : inserted;
|
|
130
|
+
const updated = await model.update(id, { age: 31 }, {
|
|
131
|
+
validate: true,
|
|
132
|
+
});
|
|
133
|
+
(0, chai_1.expect)(updated).to.not.equal(undefined);
|
|
134
|
+
}
|
|
38
135
|
async function CreateAndQueryUserWithModifiersTest() {
|
|
39
136
|
let User = class User extends table_1.Table.with(hash_1.HashModifier, encryption_1.EncryptionModifier) {
|
|
40
137
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uEAAwD;AACxD,iFAAoF;AAEpF,2EAGyD;AACzD,+FAGwE;AACxE,mFAGkE;AAClE,mGAG0E;AAC1E,6EAAiF;AACjF,2EAKyD;AACzD,+BAA8B;AAC9B,mDAA2D;AAE3D,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,QAAQ,GAAG,2BAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE,CACvD,mCAAmC,EAAE,CAAC,CAAC;IACzC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE,CACpD,mCAAmC,EAAE,CAAC,CAAC;IACzC,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC1E,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE,CAChD,gCAAgC,EAAE,CAAC,CAAC;IACtC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAC5E,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE,CAC9C,8BAA8B,EAAE,CAAC,CAAC;IACpC,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE,CAC7C,8BAA8B,EAAE,CAAC,CAAC;IACpC,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACxE,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE,CAC/C,gCAAgC,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE,CACxD,2BAA2B,EAAE,CAAC,CAAC;IACjC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE,CACzD,2BAA2B,EAAE,CAAC,CAAC;IACjC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE,CACxD,2BAA2B,EAAE,CAAC,CAAC;IACjC,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE,CAClF,kCAAkC,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,2BAA2B;IAExC,IAAM,EAAE,GAAR,MAAM,EAAG,SAAQ,aAAK;KAGrB,CAAA;IADS;QADP,IAAA,aAAK,EAAC,IAAA,2BAAW,EAAC,2BAAW,CAAC,CAAC;;mCACZ;IAFhB,EAAE;QADP,IAAA,sBAAa,EAAC,cAAc,EAAE,oBAAoB,CAAC;OAC9C,EAAE,CAGP;IACD,MAAM,EAAE,GAAG,IAAA,sBAAc,EAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC9C,MAAM,IAAA,yBAAc,EAAC,oBAAoB,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,CAAC;QACb,MAAM,MAAM,GAAI,CAAuC,CAAC,MAAM,CAAC;QAC/D,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAA,aAAM,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,2BAA2B;IAExC,IAAM,EAAE,GAAR,MAAM,EAAG,SAAQ,aAAK;KAGrB,CAAA;IADS;QADP,IAAA,aAAK,EAAC,IAAA,2BAAW,EAAC,2BAAW,CAAC,CAAC;;mCACZ;IAFhB,EAAE;QADP,IAAA,sBAAa,EAAC,aAAa,EAAE,oBAAoB,CAAC;OAC7C,EAAE,CAGP;IACD,MAAM,EAAE,GAAG,IAAA,sBAAc,EAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,IAAA,yBAAc,EAAC,oBAAoB,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,2BAA2B;IAExC,IAAM,EAAE,GAAR,MAAM,EAAG,SAAQ,aAAK;KAGrB,CAAA;IADS;QADP,IAAA,aAAK,EAAC,IAAA,2BAAW,EAAC,2BAAW,CAAC,CAAC;;mCACZ;IAFhB,EAAE;QADP,IAAA,sBAAa,EAAC,cAAc,EAAE,oBAAoB,CAAC;OAC9C,EAAE,CAGP;IACD,MAAM,EAAE,GAAG,IAAA,sBAAc,EAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC9C,MAAM,IAAA,yBAAc,EAAC,oBAAoB,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAS,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5D,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,EAAY,EAAE,EAAE,GAAG,EAAE,KAAK,EAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,CAAC;QACb,IAAA,aAAM,EAAE,CAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/D,CAAC;IACD,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,kCAAkC;IAE/C,IAAM,EAAE,GAAR,MAAM,EAAG,SAAQ,aAAK;KAKrB,CAAA;IAHS;QADP,IAAA,aAAK,EAAC,IAAA,2BAAW,EAAC,2BAAW,CAAC,CAAC;;mCACZ;IAEZ;QADP,IAAA,aAAK,EAAC,IAAA,2BAAW,EAAC,2BAAW,CAAC,CAAC;;qCACV;IAJlB,EAAE;QADP,IAAA,sBAAa,EAAC,kBAAkB,EAAE,oBAAoB,CAAC;OAClD,EAAE,CAKP;IACD,MAAM,EAAE,GAAG,IAAA,sBAAc,EAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAClD,MAAM,IAAA,yBAAc,EAAC,oBAAoB,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAS,CAAC,CAAC;IACpE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAS,EAAE;QACnE,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,mCAAmC;IAEhD,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,aAAK,CAAC,IAAI,CAAC,mBAAY,EAAE,+BAAkB,CAAC;KAY9D,CAAA;IAVS;QADP,IAAA,aAAK,GAAE;;uCACc;IAGd;QADP,IAAA,aAAM,EAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;;0CACP;IAGjB;QADP,IAAA,sBAAS,EAAC,EAAE,SAAS,EAAE,kCAAkC,EAAE,CAAC;;4CACjB;IARxC,IAAI;QADT,IAAA,sBAAa,EAAC,OAAO,EAAE,8BAA8B,CAAC;OACjD,IAAI,CAYT;IAED,MAAM,SAAS,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEhD,MAAM,IAAA,yBAAc,EAAC,8BAA8B,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,WAAW,CAAC,8BAA8B,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG;QACf,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,mBAAmB;QAC7B,UAAU,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;QACzC,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,EAAE;KACR,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,sBAAsB,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,yBAAyB,GAAG,MAAM,cAAc;SACnD,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,MAAM,CAAC;SACX,GAAG,EAAE,CAAC;IAET,IAAA,aAAM,EAAC,sBAAsB,CAAC;SAC3B,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SACzB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACnC,IAAA,aAAM,EAAC,sBAAsB,CAAC;SAC3B,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;SACxB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,IAAA,aAAM,EAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvE,IAAA,aAAM,EAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC3E,IAAA,aAAM,EAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;QACvD,KAAK,EAAE,kBAAkB;KAC1B,CAAC,CAAC;IACH,IAAA,aAAM,EAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9D,KAAK,EAAE,kBAAkB;KAC1B,CAAC,CAAC;IAEH,IAAI,sBAAsB,EAAE,QAAQ,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,sBAAsB,CAAC,QAAQ,CACrD,UAAU,EACV,mBAAmB,CACpB,CAAC;QACF,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAKpE,CAAC;IACF,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzE,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,mCAAmC;IAEhD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,aAAK;KAU1B,CAAA;IARS;QADP,IAAA,aAAK,GAAE;;yCACa;IAGb;QADP,IAAA,aAAK,GAAE;;6CACiB;IALrB,OAAO;QADZ,IAAA,sBAAa,EAAC,UAAU,EAAE,yBAAyB,CAAC;OAC/C,OAAO,CAUZ;IAED,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,IAAA,yBAAc,EAAC,yBAAyB,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,KAAK;QACZ,aAAa,EAAE,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC9E,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtE,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;IACvD,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzD,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzE,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzD,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,0BAA0B;IAEvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,aAAK,CAAC,IAAI,CAAC,mCAAoB,CAAC;KAQ9D,CAAA;IAJS;QADP,IAAA,wBAAS,EAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;;mDACd;IAGd;QADP,IAAA,wBAAS,EAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;;yDACR;IAPxB,gBAAgB;QADrB,IAAA,sBAAa,EAAC,mBAAmB,EAAE,yBAAyB,CAAC;OACxD,gBAAgB,CAQrB;IAED,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IAE3E,MAAM,IAAA,yBAAc,EAAC,yBAAyB,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACvC,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC;IAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,qBAAqB,CAAC;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,oBAAoB,CAAC;IAE1D,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACzD,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE1E,IAAI,gBAAgB,EAAE,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,IAAA,aAAM,EAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEjE,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,IAAA,aAAM,EAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACvD,IAAA,aAAM,EAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAEnE,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,IAAA,aAAM,EAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtD,IAAA,aAAM,EAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gCAAgC;IAE7C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,aAAK,CAAC,IAAI,CAAC,+BAAkB,CAAC;KAQzD,CAAA;IANS;QADP,IAAA,sBAAS,EAAC,EAAE,SAAS,EAAE,kCAAkC,EAAE,CAAC;;qDAClC;IAGnB;QADP,IAAA,sBAAS,EAAC,EAAE,SAAS,EAAE,kCAAkC,EAAE,CAAC;;8CACzC;IALhB,aAAa;QADlB,IAAA,sBAAa,EAAC,gBAAgB,EAAE,4BAA4B,CAAC;OACxD,aAAa,CAQlB;IAED,MAAM,kBAAkB,GAAG,IAAA,sBAAc,EAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAE3E,MAAM,IAAA,yBAAc,EAAC,4BAA4B,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG;QACpB,UAAU,EAAE,qBAAqB;QACjC,GAAG,EAAE,aAAa;QAClB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAE/B,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxE,IAAA,aAAM,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAClE,IAAA,aAAM,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc;SACjC,KAAK,CAAC,gBAAgB,CAAC;SACvB,GAAG,CAAC,MAAM,CAAC;SACX,GAAG,EAAE,CAIP,CAAC;IACF,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjE,IAAA,aAAM,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/D,IAAA,aAAM,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,2BAA2B;IAExC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAK,CAAC,IAAI,CAAC,mBAAY,CAAC;KAQjD,CAAA;IANS;QADP,IAAA,aAAK,GAAE;;iDACiB;IAGjB;QADP,IAAA,aAAM,EAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;;iDACP;IALrB,WAAW;QADhB,IAAA,sBAAa,EAAC,eAAe,EAAE,yBAAyB,CAAC;OACpD,WAAW,CAQhB;IAED,MAAM,gBAAgB,GAAG,IAAA,sBAAc,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAEtE,MAAM,IAAA,yBAAc,EAAC,yBAAyB,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG;QAClB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,qBAAqB;QAC/B,KAAK,EAAE,kBAAkB;KAC1B,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9E,IAAA,aAAM,EAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEvE,IAAI,gBAAgB,EAAE,QAAQ,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAC/C,UAAU,EACV,qBAAqB,CACtB,CAAC;QACF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CACjD,UAAU,EACV,eAAe,CAChB,CAAC;QAEF,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,8BAA8B;IAE3C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,aAAK;KAK7B,CAAA;IAHS;QADP,IAAA,aAAK,GAAE;;6CACc;IAFlB,UAAU;QADf,IAAA,sBAAa,EAAC,cAAc,EAAE,wBAAwB,CAAC;OAClD,UAAU,CAKf;IAGD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,aAAK;KAKhC,CAAA;IAHS;QADP,IAAA,aAAK,GAAE;;+CACa;IAFjB,aAAa;QADlB,IAAA,sBAAa,EAAC,iBAAiB,EAAE,wBAAwB,CAAC;OACrD,aAAa,CAKlB;IAED,MAAM,IAAA,yBAAc,EAAC,wBAAwB,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAA,sBAAc,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAEtE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAClE,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAE3D,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE7D,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,IAAA,aAAM,EAAC,aAAa,CAAC;SAClB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SACzB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACnC,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAChF,CAAC;AAED,KAAK,UAAU,8BAA8B;IAE3C,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,aAAK;KASxB,CAAA;IAPS;QADP,IAAA,aAAK,GAAE;;6CACmB;IAGnB;QADP,IAAA,aAAK,GAAE;kCACW,IAAI;4CAAC;IALpB,KAAK;QADV,IAAA,sBAAa,EAAC,QAAQ,EAAE,wBAAwB,CAAC;OAC5C,KAAK,CASV;IAGD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,aAAK;KAS5B,CAAA;IAPS;QADP,IAAA,aAAK,GAAE;;8CACgB;IAGhB;QADP,IAAA,aAAK,GAAE;;gDACkB;IALtB,SAAS;QADd,IAAA,sBAAa,EAAC,aAAa,EAAE,wBAAwB,CAAC;OACjD,SAAS,CASd;IAED,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,IAAA,sBAAc,EAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEhE,MAAM,IAAA,yBAAc,EAAC,wBAAwB,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,cAAc,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAG;QAChB,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAE/B,MAAM,cAAc,GAAG;QACrB,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QACjE,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;KAClE,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACrE,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrD,IAAA,aAAM,EAAC,cAAc,CAAC;SACnB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;SAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9B,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3E,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClE,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACrC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,yBAAyB;IAEtC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAK;KAM9B,CAAA;IAJS;QADP,IAAA,aAAK,GAAE;;iDACiB;IAFrB,WAAW;QADhB,IAAA,sBAAa,EAAC,eAAe,EAAE,yBAAyB,CAAC;OACpD,WAAW,CAMhB;IAED,MAAM,gBAAgB,GAAG,IAAA,sBAAc,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAEtE,MAAM,IAAA,yBAAc,EAAC,yBAAyB,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG;QACf,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;QAC7D,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;QACtD,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;QACtD,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;KAC1D,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;IACpD,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACtC,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAM,mBAAmB,GAAG,MAAM,gBAAgB,CAAC,KAAK,CACtD,UAAU,EACV,aAAa,CACd,CAAC;IACF,IAAA,aAAM,EAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAA,aAAM,EAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxE,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACxC,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,gCAAgC;IAM7C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAK;KAK9B,CAAA;IAHS;QADP,IAAA,aAAK,GAAE;;8CACc;IAFlB,WAAW;QALhB,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC;YACb,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAClE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,EAAE;SACnE,CAAC;QACD,IAAA,sBAAa,EAAC,eAAe,EAAE,4BAA4B,CAAC;OACvD,WAAW,CAKhB;IAED,MAAM,IAAA,yBAAc,EAAC,4BAA4B,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,IAAA,sBAAc,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;IACjD,IAAA,aAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/tests/model.test.js
CHANGED
|
@@ -16,6 +16,7 @@ const model_1 = require("@antelopejs/interface-database-decorators/model");
|
|
|
16
16
|
const schema_1 = require("@antelopejs/interface-database-decorators/schema");
|
|
17
17
|
const table_1 = require("@antelopejs/interface-database-decorators/table");
|
|
18
18
|
const chai_1 = require("chai");
|
|
19
|
+
const codec_helpers_1 = require("./codec_helpers");
|
|
19
20
|
describe("Model - data operations", () => {
|
|
20
21
|
it("creates basic data model", async () => CreateBasicDataModelTest());
|
|
21
22
|
it("creates basic data model from metadata", async () => CreateBasicDataModelFromMetadataTest());
|
|
@@ -28,6 +29,143 @@ describe("Model - data operations", () => {
|
|
|
28
29
|
it("handles model with string instance id", async () => HandleModelWithStringInstanceIdTest());
|
|
29
30
|
it("handles model with callback instance id", async () => HandleModelWithCallbackInstanceIdTest());
|
|
30
31
|
});
|
|
32
|
+
describe("Model - validate", () => {
|
|
33
|
+
it("returns ok for valid input", () => ValidateOkTest());
|
|
34
|
+
it("returns errors for invalid input", () => ValidateErrorsTest());
|
|
35
|
+
it("returns ok for unannotated tables", () => ValidateUnannotatedTest());
|
|
36
|
+
it("skips string-token fields", () => ValidateSkipsStringTokensTest());
|
|
37
|
+
it("rejects partial input by default", () => ValidatePartialDefaultsToStrictTest());
|
|
38
|
+
it("accepts partial input with partial:true", () => ValidatePartialModeAcceptsAbsentTest());
|
|
39
|
+
it("still rejects present-but-invalid fields in partial mode", () => ValidatePartialModeChecksPresentFieldsTest());
|
|
40
|
+
});
|
|
41
|
+
function ValidateOkTest() {
|
|
42
|
+
let _T = class _T extends table_1.Table {
|
|
43
|
+
};
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.stringCodec)),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], _T.prototype, "name", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
50
|
+
__metadata("design:type", Number)
|
|
51
|
+
], _T.prototype, "age", void 0);
|
|
52
|
+
_T = __decorate([
|
|
53
|
+
(0, schema_1.RegisterTable)("v_ok", "model-validate-schema")
|
|
54
|
+
], _T);
|
|
55
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_ok");
|
|
56
|
+
const result = TM.validate({ name: "Alice", age: 30 });
|
|
57
|
+
(0, chai_1.expect)(result.ok).to.equal(true);
|
|
58
|
+
}
|
|
59
|
+
function ValidateErrorsTest() {
|
|
60
|
+
let _T = class _T extends table_1.Table {
|
|
61
|
+
};
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.stringCodec)),
|
|
64
|
+
__metadata("design:type", String)
|
|
65
|
+
], _T.prototype, "name", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
68
|
+
__metadata("design:type", Number)
|
|
69
|
+
], _T.prototype, "age", void 0);
|
|
70
|
+
_T = __decorate([
|
|
71
|
+
(0, schema_1.RegisterTable)("v_err", "model-validate-schema")
|
|
72
|
+
], _T);
|
|
73
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_err");
|
|
74
|
+
const result = TM.validate({ name: 42, age: "old" });
|
|
75
|
+
(0, chai_1.expect)(result.ok).to.equal(false);
|
|
76
|
+
if (result.ok)
|
|
77
|
+
throw new Error("expected failure branch");
|
|
78
|
+
const fields = result.errors.map((e) => e.field).sort();
|
|
79
|
+
(0, chai_1.expect)(fields).to.deep.equal(["age", "name"]);
|
|
80
|
+
}
|
|
81
|
+
function ValidateUnannotatedTest() {
|
|
82
|
+
let _T = class _T extends table_1.Table {
|
|
83
|
+
};
|
|
84
|
+
_T = __decorate([
|
|
85
|
+
(0, schema_1.RegisterTable)("v_un", "model-validate-schema")
|
|
86
|
+
], _T);
|
|
87
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_un");
|
|
88
|
+
(0, chai_1.expect)(TM.validate({ name: "anything" }).ok).to.equal(true);
|
|
89
|
+
(0, chai_1.expect)(TM.validate({}).ok).to.equal(true);
|
|
90
|
+
}
|
|
91
|
+
function ValidateSkipsStringTokensTest() {
|
|
92
|
+
let _T = class _T extends table_1.Table {
|
|
93
|
+
};
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, table_1.Field)("string"),
|
|
96
|
+
__metadata("design:type", String)
|
|
97
|
+
], _T.prototype, "name", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
100
|
+
__metadata("design:type", Number)
|
|
101
|
+
], _T.prototype, "age", void 0);
|
|
102
|
+
_T = __decorate([
|
|
103
|
+
(0, schema_1.RegisterTable)("v_skip", "model-validate-schema")
|
|
104
|
+
], _T);
|
|
105
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_skip");
|
|
106
|
+
(0, chai_1.expect)(TM.validate({ name: 123, age: 4 }).ok).to.equal(true);
|
|
107
|
+
(0, chai_1.expect)(TM.validate({ name: "n", age: "bad" }).ok).to.equal(false);
|
|
108
|
+
}
|
|
109
|
+
function ValidatePartialDefaultsToStrictTest() {
|
|
110
|
+
let _T = class _T extends table_1.Table {
|
|
111
|
+
};
|
|
112
|
+
__decorate([
|
|
113
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.stringCodec)),
|
|
114
|
+
__metadata("design:type", String)
|
|
115
|
+
], _T.prototype, "name", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
118
|
+
__metadata("design:type", Number)
|
|
119
|
+
], _T.prototype, "age", void 0);
|
|
120
|
+
_T = __decorate([
|
|
121
|
+
(0, schema_1.RegisterTable)("v_partial_strict", "model-validate-schema")
|
|
122
|
+
], _T);
|
|
123
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_partial_strict");
|
|
124
|
+
const result = TM.validate({ name: "Alice" });
|
|
125
|
+
(0, chai_1.expect)(result.ok).to.equal(false);
|
|
126
|
+
if (result.ok)
|
|
127
|
+
throw new Error("expected failure branch");
|
|
128
|
+
(0, chai_1.expect)(result.errors.map((e) => e.field)).to.deep.equal(["age"]);
|
|
129
|
+
}
|
|
130
|
+
function ValidatePartialModeAcceptsAbsentTest() {
|
|
131
|
+
let _T = class _T extends table_1.Table {
|
|
132
|
+
};
|
|
133
|
+
__decorate([
|
|
134
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.stringCodec)),
|
|
135
|
+
__metadata("design:type", String)
|
|
136
|
+
], _T.prototype, "name", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
139
|
+
__metadata("design:type", Number)
|
|
140
|
+
], _T.prototype, "age", void 0);
|
|
141
|
+
_T = __decorate([
|
|
142
|
+
(0, schema_1.RegisterTable)("v_partial_accept", "model-validate-schema")
|
|
143
|
+
], _T);
|
|
144
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_partial_accept");
|
|
145
|
+
(0, chai_1.expect)(TM.validate({ name: "Alice" }, { partial: true }).ok).to.equal(true);
|
|
146
|
+
(0, chai_1.expect)(TM.validate({}, { partial: true }).ok).to.equal(true);
|
|
147
|
+
}
|
|
148
|
+
function ValidatePartialModeChecksPresentFieldsTest() {
|
|
149
|
+
let _T = class _T extends table_1.Table {
|
|
150
|
+
};
|
|
151
|
+
__decorate([
|
|
152
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.stringCodec)),
|
|
153
|
+
__metadata("design:type", String)
|
|
154
|
+
], _T.prototype, "name", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.numberCodec)),
|
|
157
|
+
__metadata("design:type", Number)
|
|
158
|
+
], _T.prototype, "age", void 0);
|
|
159
|
+
_T = __decorate([
|
|
160
|
+
(0, schema_1.RegisterTable)("v_partial_check", "model-validate-schema")
|
|
161
|
+
], _T);
|
|
162
|
+
const TM = (0, model_1.BasicDataModel)(_T, "v_partial_check");
|
|
163
|
+
const result = TM.validate({ age: "old" }, { partial: true });
|
|
164
|
+
(0, chai_1.expect)(result.ok).to.equal(false);
|
|
165
|
+
if (result.ok)
|
|
166
|
+
throw new Error("expected failure branch");
|
|
167
|
+
(0, chai_1.expect)(result.errors.map((e) => e.field)).to.deep.equal(["age"]);
|
|
168
|
+
}
|
|
31
169
|
async function CreateBasicDataModelTest() {
|
|
32
170
|
class TestTable extends table_1.Table {
|
|
33
171
|
name;
|
|
@@ -115,19 +253,18 @@ async function CreateNewModelWhenNotCachedTest() {
|
|
|
115
253
|
name;
|
|
116
254
|
};
|
|
117
255
|
TestTable = __decorate([
|
|
118
|
-
(0,
|
|
119
|
-
(0, schema_1.RegisterTable)("nocache_tenant", "model-nocache-schema")
|
|
256
|
+
(0, schema_1.RegisterTable)("nocache_instances", "model-nocache-schema")
|
|
120
257
|
], TestTable);
|
|
121
|
-
const TestModel = (0, model_1.BasicDataModel)(TestTable, "
|
|
258
|
+
const TestModel = (0, model_1.BasicDataModel)(TestTable, "nocache_instances");
|
|
122
259
|
await (0, database_1.RegisterSchema)("model-nocache-schema");
|
|
123
|
-
const
|
|
124
|
-
const
|
|
125
|
-
const cross = (0, model_1.GetModel)(TestModel, interface_database_1.
|
|
126
|
-
(0, chai_1.expect)(
|
|
127
|
-
(0, chai_1.expect)(
|
|
128
|
-
(0, chai_1.expect)(
|
|
129
|
-
(0, chai_1.expect)(
|
|
130
|
-
(0, chai_1.expect)(
|
|
260
|
+
const instance1 = (0, model_1.GetModel)(TestModel, "instance-1");
|
|
261
|
+
const instance2 = (0, model_1.GetModel)(TestModel, "instance-2");
|
|
262
|
+
const cross = (0, model_1.GetModel)(TestModel, interface_database_1.CROSS_INSTANCE);
|
|
263
|
+
(0, chai_1.expect)(instance1).to.not.equal(instance2);
|
|
264
|
+
(0, chai_1.expect)(instance1).to.not.equal(cross);
|
|
265
|
+
(0, chai_1.expect)(instance2).to.not.equal(cross);
|
|
266
|
+
(0, chai_1.expect)(instance1).to.be.instanceOf(TestModel);
|
|
267
|
+
(0, chai_1.expect)(instance2).to.be.instanceOf(TestModel);
|
|
131
268
|
(0, chai_1.expect)(cross).to.be.instanceOf(TestModel);
|
|
132
269
|
}
|
|
133
270
|
async function HandleModelWithStringInstanceIdTest() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.test.js","sourceRoot":"","sources":["../../src/tests/model.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.test.js","sourceRoot":"","sources":["../../src/tests/model.test.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/table.test.js
CHANGED
|
@@ -13,6 +13,7 @@ const common_1 = require("@antelopejs/interface-database-decorators/common");
|
|
|
13
13
|
const common_2 = require("@antelopejs/interface-database-decorators/modifiers/common");
|
|
14
14
|
const table_1 = require("@antelopejs/interface-database-decorators/table");
|
|
15
15
|
const chai_1 = require("chai");
|
|
16
|
+
const codec_helpers_1 = require("./codec_helpers");
|
|
16
17
|
describe("Table - decorators", () => {
|
|
17
18
|
it("creates table with default primary key", async () => CreateTableWithDefaultPrimaryKeyTest());
|
|
18
19
|
it("creates table with multiple indexes", async () => CreateTableWithMultipleIndexesTest());
|
|
@@ -88,6 +89,43 @@ async function CreateTableWithFixtureDataTest() {
|
|
|
88
89
|
(0, chai_1.expect)(metadata.generator).to.be.a("function");
|
|
89
90
|
(0, chai_1.expect)(metadata.primary).to.equal("_id");
|
|
90
91
|
}
|
|
92
|
+
describe("Table - @Field decorator", () => {
|
|
93
|
+
it("stores a string-token type on metadata.fields", () => StoresStringTokenFieldTest());
|
|
94
|
+
it("stores an io-ts codec on metadata.fields", () => StoresCodecFieldTest());
|
|
95
|
+
it("stacks with @Index", () => StacksWithIndexTest());
|
|
96
|
+
});
|
|
97
|
+
function StoresStringTokenFieldTest() {
|
|
98
|
+
class _T extends table_1.Table {
|
|
99
|
+
}
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, table_1.Field)("string"),
|
|
102
|
+
__metadata("design:type", String)
|
|
103
|
+
], _T.prototype, "name", void 0);
|
|
104
|
+
const metadata = (0, common_1.getMetadata)(_T, common_1.DatumStaticMetadata);
|
|
105
|
+
(0, chai_1.expect)(metadata.fields.name).to.equal("string");
|
|
106
|
+
}
|
|
107
|
+
function StoresCodecFieldTest() {
|
|
108
|
+
class _T extends table_1.Table {
|
|
109
|
+
}
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, table_1.Field)((0, codec_helpers_1.asFieldType)(codec_helpers_1.stringCodec)),
|
|
112
|
+
__metadata("design:type", String)
|
|
113
|
+
], _T.prototype, "name", void 0);
|
|
114
|
+
const metadata = (0, common_1.getMetadata)(_T, common_1.DatumStaticMetadata);
|
|
115
|
+
(0, chai_1.expect)(metadata.fields.name).to.equal(codec_helpers_1.stringCodec);
|
|
116
|
+
}
|
|
117
|
+
function StacksWithIndexTest() {
|
|
118
|
+
class _T extends table_1.Table {
|
|
119
|
+
}
|
|
120
|
+
__decorate([
|
|
121
|
+
(0, table_1.Index)(),
|
|
122
|
+
(0, table_1.Field)("string"),
|
|
123
|
+
__metadata("design:type", String)
|
|
124
|
+
], _T.prototype, "email", void 0);
|
|
125
|
+
const metadata = (0, common_1.getMetadata)(_T, common_1.DatumStaticMetadata);
|
|
126
|
+
(0, chai_1.expect)(metadata.fields.email).to.equal("string");
|
|
127
|
+
(0, chai_1.expect)(metadata.indexes.email).to.deep.equal(["email"]);
|
|
128
|
+
}
|
|
91
129
|
async function CombineTableWithMixinsTest() {
|
|
92
130
|
class TestMixin {
|
|
93
131
|
testMethodUnunvailable() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.test.js","sourceRoot":"","sources":["../../src/tests/table.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6EAG0D;AAC1D,uFAAyF;AACzF,
|
|
1
|
+
{"version":3,"file":"table.test.js","sourceRoot":"","sources":["../../src/tests/table.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/interface-database-decorators",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "AntelopeJS interface for database schema decorators and model definitions",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"antelopejs",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@antelopejs/interface-api": "^0.0.3",
|
|
77
77
|
"@antelopejs/interface-core": "^0.0.3",
|
|
78
|
-
"@antelopejs/interface-database": "^0.1.
|
|
78
|
+
"@antelopejs/interface-database": "^0.1.1",
|
|
79
79
|
"randomstring": "^1.3.1",
|
|
80
80
|
"reflect-metadata": "^0.2.2"
|
|
81
81
|
},
|