@loomcore/common 0.0.58 → 0.0.59

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.
@@ -8,6 +8,7 @@ export interface IPersonModel extends IEntity, IAuditable {
8
8
  isClient: boolean;
9
9
  isEmployee: boolean;
10
10
  dateOfBirth?: Date;
11
+ socialSecurityNumber?: number;
11
12
  extendedTypes?: number;
12
13
  }
13
14
  export declare const personSchema: import("@sinclair/typebox").TObject<{
@@ -20,6 +21,33 @@ export declare const personSchema: import("@sinclair/typebox").TObject<{
20
21
  isClient: import("@sinclair/typebox").TBoolean;
21
22
  isEmployee: import("@sinclair/typebox").TBoolean;
22
23
  dateOfBirth: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
24
+ socialSecurityNumber: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
23
25
  extendedTypes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
24
26
  }>;
27
+ export declare const publicPersonSchema: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TObject<{
28
+ _id: import("@sinclair/typebox").TSchema;
29
+ externalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
30
+ firstName: import("@sinclair/typebox").TString;
31
+ middleName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
32
+ lastName: import("@sinclair/typebox").TString;
33
+ isAgent: import("@sinclair/typebox").TBoolean;
34
+ isClient: import("@sinclair/typebox").TBoolean;
35
+ isEmployee: import("@sinclair/typebox").TBoolean;
36
+ dateOfBirth: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
37
+ socialSecurityNumber: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
38
+ extendedTypes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
39
+ }>, {
40
+ last4ssn: string | undefined;
41
+ externalId?: string | undefined;
42
+ middleName?: string | undefined;
43
+ dateOfBirth?: Date | undefined;
44
+ socialSecurityNumber?: number | undefined;
45
+ extendedTypes?: number | undefined;
46
+ _id: unknown;
47
+ firstName: string;
48
+ lastName: string;
49
+ isAgent: boolean;
50
+ isClient: boolean;
51
+ isEmployee: boolean;
52
+ }>;
25
53
  export declare const personModelSpec: import("@loomcore/common/models").IModelSpec<import("@sinclair/typebox").TSchema>;
@@ -12,6 +12,19 @@ export const personSchema = Type.Object({
12
12
  isClient: Type.Boolean(),
13
13
  isEmployee: Type.Boolean(),
14
14
  dateOfBirth: Type.Optional(TypeboxIsoDate({ title: 'Date of Birth' })),
15
+ socialSecurityNumber: Type.Optional(Type.Number()),
15
16
  extendedTypes: Type.Optional(Type.Number()),
16
17
  });
17
- export const personModelSpec = entityUtils.getModelSpec(personSchema, { isAuditable: true });
18
+ export const publicPersonSchema = Type.Transform(personSchema)
19
+ .Decode((person) => {
20
+ const shortSsn = person.socialSecurityNumber ? person.socialSecurityNumber.toString().slice(-4) : undefined;
21
+ delete person.socialSecurityNumber;
22
+ return {
23
+ ...person,
24
+ last4ssn: shortSsn,
25
+ };
26
+ })
27
+ .Encode((person) => {
28
+ return person;
29
+ });
30
+ export const personModelSpec = entityUtils.getModelSpec(publicPersonSchema, { isAuditable: true });
@@ -28,11 +28,11 @@ export declare const UserSchema: import("@sinclair/typebox").TObject<{
28
28
  }>;
29
29
  export declare const UserSpec: import("./model-spec.interface.js").IModelSpec<import("@sinclair/typebox").TSchema>;
30
30
  export declare const PublicUserSchema: import("@sinclair/typebox").TObject<{
31
- email: import("@sinclair/typebox").TString;
32
31
  _id: import("@sinclair/typebox").TSchema;
33
32
  externalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
34
- displayName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
33
+ email: import("@sinclair/typebox").TString;
35
34
  personId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TSchema>;
35
+ displayName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
36
36
  _lastLoggedIn: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
37
37
  _lastPasswordChange: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TString, Date>>;
38
38
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loomcore/common",
3
- "version": "0.0.58",
3
+ "version": "0.0.59",
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": {