@loomcore/common 0.0.11 → 0.0.13

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.
@@ -0,0 +1,6 @@
1
+ export interface IAuthState {
2
+ accessToken?: string;
3
+ refreshToken?: string;
4
+ isAuthenticated?: boolean;
5
+ error?: Error;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -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';
@@ -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 class QueryOptions implements IQueryOptions {
26
- orderBy?: string;
27
- sortDirection: SortDirection;
28
- page: number;
29
- pageSize: number;
30
- filters?: {
31
- [key: string]: Filter;
32
- };
33
- constructor(options?: IQueryOptions);
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
- export class QueryOptions {
2
- orderBy;
3
- sortDirection;
4
- page;
5
- pageSize;
6
- filters;
7
- constructor(options = {}) {
8
- this.orderBy = options.orderBy;
9
- this.sortDirection = options.sortDirection ?? 'asc';
10
- this.page = options.page ?? 1;
11
- this.pageSize = options.pageSize ?? 10;
12
- this.filters = options.filters;
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
+ };
@@ -24,7 +24,6 @@ export function initializeSystemUserContext(systemEmail, metaOrgId) {
24
24
  },
25
25
  _orgId: metaOrgId,
26
26
  };
27
- console.log('SystemUserContext initialized successfully');
28
27
  return _systemUserContext;
29
28
  }
30
29
  export function getSystemUserContext() {
@@ -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.11",
3
+ "version": "0.0.13",
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": {