@loomcore/common 0.0.26 → 0.0.28

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.
@@ -1,15 +1,12 @@
1
1
  import { IAuditable, IEntity } from "./index.js";
2
2
  export interface IAuthorization extends IEntity, IAuditable {
3
+ role: string;
3
4
  feature: string;
4
- config?: object;
5
+ config?: any;
5
6
  }
6
7
  export declare const AuthorizationSchema: import("@sinclair/typebox").TObject<{
8
+ role: import("@sinclair/typebox").TString;
7
9
  feature: import("@sinclair/typebox").TString;
8
- config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
10
+ config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
9
11
  }>;
10
12
  export declare const AuthorizationModelSpec: import("./model-spec.interface.js").IModelSpec<import("@sinclair/typebox").TSchema>;
11
- export declare const PublicAuthorizationSchema: import("@sinclair/typebox").TObject<{
12
- feature: import("@sinclair/typebox").TString;
13
- config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
14
- }>;
15
- export declare const PublicAuthorizationSpec: import("./model-spec.interface.js").IModelSpec<import("@sinclair/typebox").TSchema>;
@@ -1,12 +1,8 @@
1
1
  import { Type } from "@sinclair/typebox";
2
2
  import { entityUtils } from "../utils/index.js";
3
3
  export const AuthorizationSchema = Type.Object({
4
+ role: Type.String({ minLength: 1 }),
4
5
  feature: Type.String({ minLength: 1 }),
5
- config: Type.Optional(Type.Object({}))
6
+ config: Type.Optional(Type.Any())
6
7
  });
7
8
  export const AuthorizationModelSpec = entityUtils.getModelSpec(AuthorizationSchema, { isAuditable: true });
8
- export const PublicAuthorizationSchema = Type.Object({
9
- feature: Type.String({ minLength: 1 }),
10
- config: Type.Optional(Type.Object({}))
11
- });
12
- export const PublicAuthorizationSpec = entityUtils.getModelSpec(PublicAuthorizationSchema);
@@ -11,18 +11,29 @@ export declare const LoginResponseSchema: import("@sinclair/typebox").TObject<{
11
11
  expiresOn: import("@sinclair/typebox").TNumber;
12
12
  }>;
13
13
  userContext: import("@sinclair/typebox").TObject<{
14
- user: import("@sinclair/typebox").TObject<{
14
+ user: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
15
+ _id: import("@sinclair/typebox").TString;
16
+ _orgId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
17
+ }>, import("@sinclair/typebox").TObject<{
18
+ _created: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
19
+ _createdBy: import("@sinclair/typebox").TString;
20
+ _updated: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
21
+ _updatedBy: import("@sinclair/typebox").TString;
22
+ _deleted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
23
+ _deletedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
+ }>, import("@sinclair/typebox").TObject<{
15
25
  email: import("@sinclair/typebox").TString;
16
26
  firstName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
17
27
  lastName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
28
  displayName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
29
  authorizations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
30
+ role: import("@sinclair/typebox").TString;
20
31
  feature: import("@sinclair/typebox").TString;
21
- config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
32
+ config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
22
33
  }>>>;
23
34
  _lastLoggedIn: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
24
35
  _lastPasswordChange: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
25
- }>;
36
+ }>]>;
26
37
  _orgId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
27
38
  }>;
28
39
  }>;
@@ -5,7 +5,17 @@ export interface IUserContext {
5
5
  }
6
6
  export declare const EmptyUserContext: IUserContext;
7
7
  export declare const UserContextSchema: import("@sinclair/typebox").TObject<{
8
- user: import("@sinclair/typebox").TObject<{
8
+ user: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
9
+ _id: import("@sinclair/typebox").TString;
10
+ _orgId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
+ }>, import("@sinclair/typebox").TObject<{
12
+ _created: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
13
+ _createdBy: import("@sinclair/typebox").TString;
14
+ _updated: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
15
+ _updatedBy: import("@sinclair/typebox").TString;
16
+ _deleted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
17
+ _deletedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
+ }>, import("@sinclair/typebox").TObject<{
9
19
  email: import("@sinclair/typebox").TString;
10
20
  firstName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
21
  lastName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
@@ -13,23 +23,34 @@ export declare const UserContextSchema: import("@sinclair/typebox").TObject<{
13
23
  password: import("@sinclair/typebox").TString;
14
24
  _lastLoggedIn: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
15
25
  _lastPasswordChange: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
16
- }>;
26
+ }>]>;
17
27
  _orgId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
28
  }>;
19
29
  export declare const UserContextSpec: import("./model-spec.interface.js").IModelSpec<import("@sinclair/typebox").TSchema>;
20
30
  export declare const PublicUserContextSchema: import("@sinclair/typebox").TObject<{
21
- user: import("@sinclair/typebox").TObject<{
31
+ user: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
32
+ _id: import("@sinclair/typebox").TString;
33
+ _orgId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
34
+ }>, import("@sinclair/typebox").TObject<{
35
+ _created: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
36
+ _createdBy: import("@sinclair/typebox").TString;
37
+ _updated: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>;
38
+ _updatedBy: import("@sinclair/typebox").TString;
39
+ _deleted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
40
+ _deletedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
41
+ }>, import("@sinclair/typebox").TObject<{
22
42
  email: import("@sinclair/typebox").TString;
23
43
  firstName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
44
  lastName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
45
  displayName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
46
  authorizations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
47
+ role: import("@sinclair/typebox").TString;
27
48
  feature: import("@sinclair/typebox").TString;
28
- config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
49
+ config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
29
50
  }>>>;
30
51
  _lastLoggedIn: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
31
52
  _lastPasswordChange: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
32
- }>;
53
+ }>]>;
33
54
  _orgId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
34
55
  }>;
35
56
  export declare const PublicUserContextSpec: import("./model-spec.interface.js").IModelSpec<import("@sinclair/typebox").TSchema>;
@@ -2,18 +2,20 @@ import { UserSchema } from './user.model.js';
2
2
  import { Type } from '@sinclair/typebox';
3
3
  import { PublicUserSchema } from './user.model.js';
4
4
  import { entityUtils } from '../utils/entity.utils.js';
5
+ import { EntitySchema } from './entity.model.js';
6
+ import { AuditableSchema } from './auditable.model.js';
5
7
  export const EmptyUserContext = {
6
8
  user: {},
7
9
  _orgId: undefined
8
10
  };
9
11
  let _systemUserContext = null;
10
12
  export const UserContextSchema = Type.Object({
11
- user: UserSchema,
13
+ user: Type.Intersect([EntitySchema, AuditableSchema, UserSchema]),
12
14
  _orgId: Type.Optional(Type.String())
13
15
  });
14
16
  export const UserContextSpec = entityUtils.getModelSpec(UserContextSchema);
15
17
  export const PublicUserContextSchema = Type.Object({
16
- user: PublicUserSchema,
18
+ user: Type.Intersect([EntitySchema, AuditableSchema, PublicUserSchema]),
17
19
  _orgId: Type.Optional(Type.String())
18
20
  });
19
21
  export const PublicUserContextSpec = entityUtils.getModelSpec(PublicUserContextSchema);
@@ -22,12 +24,16 @@ export function initializeSystemUserContext(systemEmail, metaOrgId) {
22
24
  user: {
23
25
  _id: 'system',
24
26
  _orgId: metaOrgId,
27
+ firstName: 'System',
28
+ lastName: 'User',
29
+ displayName: 'System User',
25
30
  email: systemEmail,
26
31
  password: '',
27
32
  authorizations: [{
28
33
  _id: 'system-authorization',
29
34
  _orgId: metaOrgId,
30
- feature: 'system-authorization',
35
+ role: 'system',
36
+ feature: 'system',
31
37
  _created: new Date(),
32
38
  _createdBy: 'system',
33
39
  _updated: new Date(),
@@ -33,8 +33,9 @@ export declare const PublicUserSchema: import("@sinclair/typebox").TObject<{
33
33
  lastName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
34
34
  displayName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
35
35
  authorizations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
36
+ role: import("@sinclair/typebox").TString;
36
37
  feature: import("@sinclair/typebox").TString;
37
- config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
38
+ config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
38
39
  }>>>;
39
40
  _lastLoggedIn: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
40
41
  _lastPasswordChange: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
@@ -2,7 +2,7 @@ import { TypeboxIsoDate } from '../validation/typebox-extensions.js';
2
2
  import { Type } from '@sinclair/typebox';
3
3
  import { entityUtils } from '../utils/entity.utils.js';
4
4
  import { TypeCompiler } from '@sinclair/typebox/compiler';
5
- import { PublicAuthorizationSchema } from './authorization.model.js';
5
+ import { AuthorizationSchema } from './authorization.model.js';
6
6
  export const UserPasswordSchema = Type.Object({
7
7
  password: Type.String({
8
8
  title: 'Password',
@@ -44,7 +44,7 @@ export const PublicUserSchema = Type.Object({
44
44
  displayName: Type.Optional(Type.String({
45
45
  title: 'Display Name'
46
46
  })),
47
- authorizations: Type.Optional(Type.Array(PublicAuthorizationSchema)),
47
+ authorizations: Type.Optional(Type.Array(AuthorizationSchema)),
48
48
  _lastLoggedIn: Type.Optional(TypeboxIsoDate({ title: 'Last Login Date' })),
49
49
  _lastPasswordChange: Type.Optional(TypeboxIsoDate({ title: 'Last Password Change Date' })),
50
50
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loomcore/common",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
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": {