@loomcore/common 0.0.12 → 0.0.14
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/models/auditable.model.d.ts +4 -0
- package/dist/models/auditable.model.js +2 -0
- package/dist/models/auth.state.interface.d.ts +6 -0
- package/dist/models/auth.state.interface.js +1 -0
- package/dist/models/index.d.ts +6 -5
- package/dist/models/index.js +6 -5
- package/dist/models/query-options.model.d.ts +38 -10
- package/dist/models/query-options.model.js +37 -14
- package/dist/utils/entity.utils.js +2 -2
- package/package.json +2 -2
|
@@ -3,10 +3,14 @@ export interface IAuditable {
|
|
|
3
3
|
_createdBy: string;
|
|
4
4
|
_updated: Date;
|
|
5
5
|
_updatedBy: string;
|
|
6
|
+
_deleted?: Date;
|
|
7
|
+
_deletedBy?: string;
|
|
6
8
|
}
|
|
7
9
|
export declare const AuditableSchema: import("@sinclair/typebox").TObject<{
|
|
8
10
|
_created: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
|
|
9
11
|
_createdBy: import("@sinclair/typebox").TString;
|
|
10
12
|
_updated: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
|
|
11
13
|
_updatedBy: import("@sinclair/typebox").TString;
|
|
14
|
+
_deleted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
|
|
15
|
+
_deletedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
12
16
|
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/models/index.d.ts
CHANGED
|
@@ -6,10 +6,11 @@ export * from './login-response.model.js';
|
|
|
6
6
|
export * from './token-response.model.js';
|
|
7
7
|
export * from './auditable.model.js';
|
|
8
8
|
export * from './query-options.model.js';
|
|
9
|
-
export * from './password-reset-token.interface.js';
|
|
10
|
-
export * from './model-spec.interface.js';
|
|
11
|
-
export * from './paged-result.interface.js';
|
|
12
|
-
export * from './geo-json.interface.js';
|
|
13
9
|
export * from './address.interface.js';
|
|
14
|
-
export * from './error.interface.js';
|
|
15
10
|
export * from './api-response.interface.js';
|
|
11
|
+
export * from './auth.state.interface.js';
|
|
12
|
+
export * from './error.interface.js';
|
|
13
|
+
export * from './geo-json.interface.js';
|
|
14
|
+
export * from './model-spec.interface.js';
|
|
15
|
+
export * from './paged-result.interface.js';
|
|
16
|
+
export * from './password-reset-token.interface.js';
|
package/dist/models/index.js
CHANGED
|
@@ -6,10 +6,11 @@ export * from './login-response.model.js';
|
|
|
6
6
|
export * from './token-response.model.js';
|
|
7
7
|
export * from './auditable.model.js';
|
|
8
8
|
export * from './query-options.model.js';
|
|
9
|
-
export * from './password-reset-token.interface.js';
|
|
10
|
-
export * from './model-spec.interface.js';
|
|
11
|
-
export * from './paged-result.interface.js';
|
|
12
|
-
export * from './geo-json.interface.js';
|
|
13
9
|
export * from './address.interface.js';
|
|
14
|
-
export * from './error.interface.js';
|
|
15
10
|
export * from './api-response.interface.js';
|
|
11
|
+
export * from './auth.state.interface.js';
|
|
12
|
+
export * from './error.interface.js';
|
|
13
|
+
export * from './geo-json.interface.js';
|
|
14
|
+
export * from './model-spec.interface.js';
|
|
15
|
+
export * from './paged-result.interface.js';
|
|
16
|
+
export * from './password-reset-token.interface.js';
|
|
@@ -13,6 +13,20 @@ export type Filter = {
|
|
|
13
13
|
contains?: string;
|
|
14
14
|
in?: string[] | number[] | Date[];
|
|
15
15
|
};
|
|
16
|
+
export declare const FilterSchema: import("@sinclair/typebox").TObject<{
|
|
17
|
+
eq: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TDate]>>;
|
|
18
|
+
ne: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TDate]>>;
|
|
19
|
+
any: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
|
|
20
|
+
all: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
|
|
21
|
+
lt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
22
|
+
lte: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
23
|
+
gt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
24
|
+
gte: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
25
|
+
startsWith: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
26
|
+
endsWith: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
27
|
+
contains: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
28
|
+
in: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TDate>]>>;
|
|
29
|
+
}>;
|
|
16
30
|
export interface IQueryOptions {
|
|
17
31
|
orderBy?: string;
|
|
18
32
|
sortDirection?: SortDirection;
|
|
@@ -22,13 +36,27 @@ export interface IQueryOptions {
|
|
|
22
36
|
[key: string]: Filter;
|
|
23
37
|
};
|
|
24
38
|
}
|
|
25
|
-
export declare
|
|
26
|
-
orderBy
|
|
27
|
-
sortDirection:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
export declare const QueryOptionsSchema: import("@sinclair/typebox").TObject<{
|
|
40
|
+
orderBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
41
|
+
sortDirection: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<1>, import("@sinclair/typebox").TLiteral<-1>, import("@sinclair/typebox").TLiteral<"asc">, import("@sinclair/typebox").TLiteral<"desc">, import("@sinclair/typebox").TLiteral<"ascending">, import("@sinclair/typebox").TLiteral<"descending">, import("@sinclair/typebox").TObject<{
|
|
42
|
+
$meta: import("@sinclair/typebox").TString;
|
|
43
|
+
}>]>>;
|
|
44
|
+
page: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
45
|
+
pageSize: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
46
|
+
filters: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
|
|
47
|
+
eq: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TDate]>>;
|
|
48
|
+
ne: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TDate]>>;
|
|
49
|
+
any: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
|
|
50
|
+
all: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
|
|
51
|
+
lt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
52
|
+
lte: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
53
|
+
gt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
54
|
+
gte: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TDate]>>;
|
|
55
|
+
startsWith: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
56
|
+
endsWith: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
57
|
+
contains: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
58
|
+
in: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TDate>]>>;
|
|
59
|
+
}>>>;
|
|
60
|
+
}>;
|
|
61
|
+
export declare const QueryOptionsSpec: import("./model-spec.interface.js").IModelSpec<import("@sinclair/typebox").TSchema>;
|
|
62
|
+
export declare const DefaultQueryOptions: IQueryOptions;
|
|
@@ -1,14 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { Type } from '@sinclair/typebox';
|
|
2
|
+
import { entityUtils } from '../utils/entity.utils.js';
|
|
3
|
+
export const FilterSchema = Type.Object({
|
|
4
|
+
eq: Type.Optional(Type.Union([Type.String(), Type.Number(), Type.Boolean(), Type.Date()])),
|
|
5
|
+
ne: Type.Optional(Type.Union([Type.String(), Type.Number(), Type.Boolean(), Type.Date()])),
|
|
6
|
+
any: Type.Optional(Type.Union([Type.Array(Type.String()), Type.Array(Type.Number())])),
|
|
7
|
+
all: Type.Optional(Type.Union([Type.Array(Type.String()), Type.Array(Type.Number())])),
|
|
8
|
+
lt: Type.Optional(Type.Union([Type.Number(), Type.Date()])),
|
|
9
|
+
lte: Type.Optional(Type.Union([Type.Number(), Type.Date()])),
|
|
10
|
+
gt: Type.Optional(Type.Union([Type.Number(), Type.Date()])),
|
|
11
|
+
gte: Type.Optional(Type.Union([Type.Number(), Type.Date()])),
|
|
12
|
+
startsWith: Type.Optional(Type.String()),
|
|
13
|
+
endsWith: Type.Optional(Type.String()),
|
|
14
|
+
contains: Type.Optional(Type.String()),
|
|
15
|
+
in: Type.Optional(Type.Union([Type.Array(Type.String()), Type.Array(Type.Number()), Type.Array(Type.Date())])),
|
|
16
|
+
});
|
|
17
|
+
export const QueryOptionsSchema = Type.Object({
|
|
18
|
+
orderBy: Type.Optional(Type.String({ title: 'Order By' })),
|
|
19
|
+
sortDirection: Type.Optional(Type.Union([
|
|
20
|
+
Type.Literal(1),
|
|
21
|
+
Type.Literal(-1),
|
|
22
|
+
Type.Literal('asc'),
|
|
23
|
+
Type.Literal('desc'),
|
|
24
|
+
Type.Literal('ascending'),
|
|
25
|
+
Type.Literal('descending'),
|
|
26
|
+
Type.Object({ $meta: Type.String() })
|
|
27
|
+
], { title: 'Sort Direction' })),
|
|
28
|
+
page: Type.Optional(Type.Number({ title: 'Page', minimum: 1 })),
|
|
29
|
+
pageSize: Type.Optional(Type.Number({ title: 'Page Size', minimum: 1, maximum: 1000 })),
|
|
30
|
+
filters: Type.Optional(Type.Record(Type.String(), FilterSchema, { title: 'Filters' })),
|
|
31
|
+
});
|
|
32
|
+
export const QueryOptionsSpec = entityUtils.getModelSpec(QueryOptionsSchema);
|
|
33
|
+
export const DefaultQueryOptions = {
|
|
34
|
+
sortDirection: 'asc',
|
|
35
|
+
page: 1,
|
|
36
|
+
pageSize: 10,
|
|
37
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ValidationError } from '../errors/index.js';
|
|
2
1
|
import { Type } from '@sinclair/typebox';
|
|
2
|
+
import { Value } from '@sinclair/typebox/value';
|
|
3
3
|
import { TypeCompiler } from '@sinclair/typebox/compiler';
|
|
4
|
+
import { ValidationError } from '../errors/index.js';
|
|
4
5
|
import { EntitySchema } from '../models/entity.model.js';
|
|
5
6
|
import { AuditableSchema } from '../models/auditable.model.js';
|
|
6
|
-
import { Value } from '@sinclair/typebox/value';
|
|
7
7
|
function getValidator(schema) {
|
|
8
8
|
const validator = TypeCompiler.Compile(schema);
|
|
9
9
|
return validator;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loomcore/common",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Loom Core Models- common models, interfaces, types, and utils for Loom Core. All things common to both api and client apps.",
|
|
6
6
|
"scripts": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"decimal.js": "^10.5.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@sinclair/typebox": "
|
|
42
|
+
"@sinclair/typebox": "0.34.33"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"cross-env": "^7.0.3",
|