@wisemen/wise-crm 0.0.4 → 0.0.5

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.
Files changed (37) hide show
  1. package/dist/clients/wise-crm-service-user-client/token.store.d.ts +11 -0
  2. package/dist/clients/wise-crm-service-user-client/token.store.js +59 -0
  3. package/dist/clients/wise-crm-service-user-client/token.store.js.map +1 -0
  4. package/dist/clients/wise-crm-service-user-client/wise-crm-service-user.client.d.ts +12 -6
  5. package/dist/clients/wise-crm-service-user-client/wise-crm-service-user.client.js +62 -62
  6. package/dist/clients/wise-crm-service-user-client/wise-crm-service-user.client.js.map +1 -1
  7. package/dist/types/business/create-business.command.d.ts +19 -0
  8. package/dist/types/business/create-business.command.js +17 -0
  9. package/dist/types/business/create-business.command.js.map +1 -0
  10. package/dist/types/business/create-business.response.d.ts +4 -0
  11. package/dist/types/business/create-business.response.js +2 -0
  12. package/dist/types/business/create-business.response.js.map +1 -0
  13. package/dist/types/business/index.d.ts +2 -0
  14. package/dist/types/business/index.js +2 -0
  15. package/dist/types/business/index.js.map +1 -1
  16. package/dist/types/index.d.ts +1 -0
  17. package/dist/types/index.js +1 -0
  18. package/dist/types/index.js.map +1 -1
  19. package/dist/types/individual/create-individual.command.d.ts +12 -0
  20. package/dist/types/individual/create-individual.command.js +12 -0
  21. package/dist/types/individual/create-individual.command.js.map +1 -0
  22. package/dist/types/individual/create-individual.response.d.ts +4 -0
  23. package/dist/types/individual/create-individual.response.js +2 -0
  24. package/dist/types/individual/create-individual.response.js.map +1 -0
  25. package/dist/types/tenant/assign-user-as-admin.command.d.ts +3 -0
  26. package/dist/types/tenant/assign-user-as-admin.command.js +4 -0
  27. package/dist/types/tenant/assign-user-as-admin.command.js.map +1 -0
  28. package/dist/types/tenant/create-tenant.command.d.ts +8 -0
  29. package/dist/types/tenant/create-tenant.command.js +9 -0
  30. package/dist/types/tenant/create-tenant.command.js.map +1 -0
  31. package/dist/types/tenant/create-tenant.reponse.d.ts +3 -0
  32. package/dist/types/tenant/create-tenant.reponse.js +2 -0
  33. package/dist/types/tenant/create-tenant.reponse.js.map +1 -0
  34. package/dist/types/tenant/index.d.ts +1 -0
  35. package/dist/types/tenant/index.js +2 -0
  36. package/dist/types/tenant/index.js.map +1 -0
  37. package/package.json +2 -1
@@ -0,0 +1,11 @@
1
+ export declare class ZitadelTokenStore {
2
+ private readonly issuer;
3
+ private readonly key;
4
+ private readonly projectId;
5
+ private accessToken;
6
+ private expiresAt;
7
+ constructor(issuer: string, key: string, projectId: string);
8
+ getToken(): Promise<string>;
9
+ private getJwt;
10
+ private fetchToken;
11
+ }
@@ -0,0 +1,59 @@
1
+ import jwt from 'jsonwebtoken';
2
+ import dayjs from 'dayjs';
3
+ import axios from 'axios';
4
+ export class ZitadelTokenStore {
5
+ issuer;
6
+ key;
7
+ projectId;
8
+ accessToken = null;
9
+ expiresAt = null;
10
+ constructor(issuer, key, projectId) {
11
+ this.issuer = issuer;
12
+ this.key = key;
13
+ this.projectId = projectId;
14
+ }
15
+ async getToken() {
16
+ if (this.accessToken == null
17
+ || this.expiresAt == null
18
+ || dayjs().isAfter(this.expiresAt)) {
19
+ return await this.fetchToken();
20
+ }
21
+ return this.accessToken;
22
+ }
23
+ getJwt() {
24
+ const jsonString = Buffer.from(this.key, 'base64').toString('utf-8');
25
+ const serviceUserKey = JSON.parse(jsonString);
26
+ const payload = {
27
+ iss: serviceUserKey.userId,
28
+ sub: serviceUserKey.userId,
29
+ aud: this.issuer,
30
+ exp: dayjs().add(1, 'hour').unix(),
31
+ iat: dayjs().unix()
32
+ };
33
+ const options = {
34
+ algorithm: 'RS256',
35
+ keyid: serviceUserKey.keyId
36
+ };
37
+ return jwt.sign(payload, serviceUserKey.key, options);
38
+ }
39
+ async fetchToken() {
40
+ const scopes = [
41
+ `urn:zitadel:iam:org:project:id:${this.projectId}:aud`,
42
+ 'urn:zitadel:iam:user:resourceowner'
43
+ ];
44
+ const jwt = this.getJwt();
45
+ const response = await axios.post(`${this.issuer}/oauth/v2/token`, new URLSearchParams({
46
+ grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
47
+ assertion: jwt,
48
+ scope: scopes.join(' ')
49
+ }), {
50
+ headers: {
51
+ 'Content-Type': 'application/x-www-form-urlencoded'
52
+ }
53
+ });
54
+ this.accessToken = response.data.access_token;
55
+ this.expiresAt = dayjs().add(response.data.expires_in, 'second').subtract(1, 'minute');
56
+ return this.accessToken;
57
+ }
58
+ }
59
+ //# sourceMappingURL=token.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.store.js","sourceRoot":"","sources":["../../../lib/clients/wise-crm-service-user-client/token.store.ts"],"names":[],"mappings":"AAAA,OAAO,GAAoB,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,MAAM,OAAO,iBAAiB;IAKT;IACA;IACA;IANX,WAAW,GAAkB,IAAI,CAAA;IACjC,SAAS,GAAuB,IAAI,CAAA;IAE5C,YACmB,MAAc,EACd,GAAW,EACX,SAAiB;QAFjB,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAQ;QACX,cAAS,GAAT,SAAS,CAAQ;IACjC,CAAC;IAEG,KAAK,CAAC,QAAQ;QACnB,IACE,IAAI,CAAC,WAAW,IAAI,IAAI;eACrB,IAAI,CAAC,SAAS,IAAI,IAAI;eACtB,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAClC,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAChC,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEO,MAAM;QACZ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAe,CAAA;QAE3D,MAAM,OAAO,GAAW;YACtB,GAAG,EAAE,cAAc,CAAC,MAAM;YAC1B,GAAG,EAAE,cAAc,CAAC,MAAM;YAC1B,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;YAClC,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE;SACpB,CAAA;QAED,MAAM,OAAO,GAAgB;YAC3B,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,cAAc,CAAC,KAAK;SAC5B,CAAA;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,MAAM,GAAG;YACb,kCAAkC,IAAI,CAAC,SAAS,MAAM;YACtD,oCAAoC;SACrC,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAEzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,GAAG,IAAI,CAAC,MAAM,iBAAiB,EAC/B,IAAI,eAAe,CAAC;YAClB,UAAU,EAAE,6CAA6C;YACzD,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACxB,CAAC,EACF;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAA;QAEJ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAA;QAC7C,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QAEtF,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;CACF"}
@@ -1,5 +1,10 @@
1
- import { BusinessDetailResponse } from "../../types/index.js";
1
+ import { BusinessDetailResponse, CreateBusinessResponse, CreateTenantCommand } from "../../types/index.js";
2
2
  import { ViewIndividualDetailResponse } from "../../types/individual/individual-detail.response.js";
3
+ import { CreateTenantResponse } from "../../types/tenant/create-tenant.reponse.js";
4
+ import { CreateBusinessCommand } from "../../types/business/create-business.command.js";
5
+ import { CreateIndividualResponse } from "../../types/individual/create-individual.response.js";
6
+ import { CreateIndividualCommand } from "../../types/individual/create-individual.command.js";
7
+ import { AssignUserAsAdminCommand } from "../../types/tenant/assign-user-as-admin.command.js";
3
8
  export interface WiseCrmServiceUserClientOptions {
4
9
  host: string;
5
10
  issuer: string;
@@ -7,13 +12,14 @@ export interface WiseCrmServiceUserClientOptions {
7
12
  projectId: string;
8
13
  }
9
14
  export declare class WiseCrmServiceUserClient {
10
- private readonly issuer;
11
15
  private readonly baseUrl;
12
- private readonly serviceUserKey;
13
- private readonly projectId;
16
+ private readonly tokenStore;
17
+ private readonly client;
14
18
  constructor(options: WiseCrmServiceUserClientOptions);
15
19
  getBusinessOrFail(businessUuid: string): Promise<BusinessDetailResponse>;
20
+ createBusiness(command: CreateBusinessCommand): Promise<CreateBusinessResponse>;
16
21
  getIndividualOrFail(individualUuid: string): Promise<ViewIndividualDetailResponse>;
17
- private getToken;
18
- private getJwt;
22
+ createIndividual(command: CreateIndividualCommand): Promise<CreateIndividualResponse>;
23
+ createTenant(command: CreateTenantCommand): Promise<CreateTenantResponse>;
24
+ assignUserAsAdmin(tenantUuid: string, command: AssignUserAsAdminCommand): Promise<void>;
19
25
  }
@@ -8,78 +8,78 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import axios from "axios";
11
- import dayjs from "dayjs";
12
- import jwt from "jsonwebtoken";
13
11
  import { Injectable } from "@nestjs/common";
12
+ import { ZitadelTokenStore } from "./token.store.js";
14
13
  let WiseCrmServiceUserClient = class WiseCrmServiceUserClient {
15
- issuer;
16
14
  baseUrl;
17
- serviceUserKey;
18
- projectId;
15
+ tokenStore;
16
+ client;
19
17
  constructor(options) {
20
- this.issuer = options.issuer;
21
- this.baseUrl = `${options.host}/api/v1`;
22
- this.serviceUserKey = options.serviceUserKey;
23
- this.projectId = options.projectId;
18
+ this.baseUrl = `${options.host}`;
19
+ this.client = axios.create({
20
+ baseURL: this.baseUrl,
21
+ headers: {
22
+ 'Content-Type': 'application/json'
23
+ }
24
+ });
25
+ this.tokenStore = new ZitadelTokenStore(options.issuer, options.serviceUserKey, options.projectId);
26
+ this.client.interceptors.request.use(async (request) => {
27
+ const token = await this.tokenStore.getToken();
28
+ request.headers.Authorization = `Bearer ${token}`;
29
+ return request;
30
+ });
24
31
  }
25
32
  async getBusinessOrFail(businessUuid) {
26
- const token = await this.getToken();
27
- try {
28
- return await axios.get(`${this.baseUrl}/businesses/${businessUuid}`, { headers: {
29
- 'Authorization': `Bearer ${token}`,
30
- } }).then(res => res.data);
31
- }
32
- catch (error) {
33
- throw new Error('Failed to fetch business from CRM');
34
- }
33
+ const res = await this.client.get(`/api/v1/businesses/${businessUuid}`);
34
+ return res.data;
35
+ }
36
+ async createBusiness(command) {
37
+ const res = await this.client.post('/api/v1/businesses', {
38
+ name: command.name,
39
+ email: command.email,
40
+ phone: command.phone,
41
+ mobilePhone: command.mobilePhone,
42
+ vatNumber: command.vatNumber,
43
+ companyNumber: command.companyNumber,
44
+ address: command.address,
45
+ customFields: command.customFields,
46
+ parentUuid: command.parentUuid,
47
+ childUuid: command.childUuid
48
+ });
49
+ return res.data;
35
50
  }
36
51
  async getIndividualOrFail(individualUuid) {
37
- const token = await this.getToken();
38
- try {
39
- return await axios.get(`${this.baseUrl}/individuals/${individualUuid}`, { headers: {
40
- 'Authorization': `Bearer ${token}`,
41
- } }).then(res => res.data);
42
- }
43
- catch (error) {
44
- throw new Error('Failed to fetch individual from CRM');
45
- }
52
+ const res = await this.client.get(`/api/v1/individuals/${individualUuid}`);
53
+ return res.data;
46
54
  }
47
- async getToken() {
48
- const authCrmTokenUrl = `${this.issuer}/oauth/v2/token`;
49
- const authCrmProjectId = this.projectId;
50
- const scopes = [
51
- `urn:zitadel:iam:org:project:id:${authCrmProjectId}:aud`,
52
- 'urn:zitadel:iam:user:resourceowner'
53
- ];
54
- const jwt = this.getJwt();
55
- try {
56
- const response = await axios.post(authCrmTokenUrl, new URLSearchParams({
57
- grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
58
- assertion: jwt,
59
- scope: scopes.join(' ')
60
- }), {
61
- headers: {
62
- 'Content-Type': 'application/x-www-form-urlencoded'
63
- }
64
- });
65
- return response.data.access_token;
66
- }
67
- catch (error) {
68
- throw new Error('Token exchange failed');
69
- }
55
+ async createIndividual(command) {
56
+ const res = await this.client.post('/api/v1/individuals', {
57
+ firstName: command.firstName,
58
+ lastName: command.lastName,
59
+ email: command.email,
60
+ phone: command.phone,
61
+ mobilePhone: command.mobilePhone,
62
+ socialSecurityNumber: command.socialSecurityNumber,
63
+ birthDate: command.birthDate,
64
+ address: command.address,
65
+ customFields: command.customFields
66
+ });
67
+ return res.data;
68
+ }
69
+ async createTenant(command) {
70
+ const res = await this.client.post('/api/v1/tenants', {
71
+ name: command.name,
72
+ slug: command.slug,
73
+ domain: command.domain,
74
+ oidcIssuer: command.oidcIssuer,
75
+ oidcAudience: command.oidcAudience,
76
+ oidcOrganizationId: command.oidcOrganizationId
77
+ });
78
+ return res.data;
70
79
  }
71
- getJwt() {
72
- const encodedServiceUserKey = this.serviceUserKey;
73
- const serviceUserKey = JSON.parse(Buffer.from(encodedServiceUserKey, 'base64').toString('utf-8'));
74
- return jwt.sign({
75
- iss: serviceUserKey.userId,
76
- sub: serviceUserKey.userId,
77
- aud: this.issuer,
78
- exp: dayjs().add(1, 'hour').unix(),
79
- iat: dayjs().unix()
80
- }, serviceUserKey.key, {
81
- algorithm: 'RS256',
82
- keyid: serviceUserKey.keyId
80
+ async assignUserAsAdmin(tenantUuid, command) {
81
+ await this.client.post(`/api/v1/tenants${tenantUuid}/assign-user-as-admin`, {
82
+ userId: command.userId
83
83
  });
84
84
  }
85
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wise-crm-service-user.client.js","sourceRoot":"","sources":["../../../lib/clients/wise-crm-service-user-client/wise-crm-service-user.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wise-crm-service-user.client.js","sourceRoot":"","sources":["../../../lib/clients/wise-crm-service-user-client/wise-crm-service-user.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { CountryCode } from "@wisemen/vies";
2
+ import { AddressCommand } from "../address/address-command.js";
3
+ import { BusinessUuid } from "./business.uuid.js";
4
+ export declare class CreateBusinessCommand {
5
+ name: string;
6
+ email: string | null;
7
+ phone: string | null;
8
+ mobilePhone: string | null;
9
+ vatNumber: VatNumberCommand | null;
10
+ companyNumber: string | null;
11
+ address: AddressCommand;
12
+ customFields: object | null;
13
+ parentUuid: BusinessUuid | null;
14
+ childUuid: BusinessUuid | null;
15
+ }
16
+ export declare class VatNumberCommand {
17
+ countryCode: CountryCode;
18
+ number: string;
19
+ }
@@ -0,0 +1,17 @@
1
+ export class CreateBusinessCommand {
2
+ name;
3
+ email;
4
+ phone;
5
+ mobilePhone;
6
+ vatNumber;
7
+ companyNumber;
8
+ address;
9
+ customFields;
10
+ parentUuid;
11
+ childUuid;
12
+ }
13
+ export class VatNumberCommand {
14
+ countryCode;
15
+ number;
16
+ }
17
+ //# sourceMappingURL=create-business.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-business.command.js","sourceRoot":"","sources":["../../../lib/types/business/create-business.command.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,qBAAqB;IAChC,IAAI,CAAQ;IACZ,KAAK,CAAe;IACpB,KAAK,CAAe;IACpB,WAAW,CAAe;IAC1B,SAAS,CAAyB;IAClC,aAAa,CAAe;IAC5B,OAAO,CAAgB;IACvB,YAAY,CAAe;IAC3B,UAAU,CAAqB;IAC/B,SAAS,CAAqB;CAC/B;AAED,MAAM,OAAO,gBAAgB;IAC3B,WAAW,CAAa;IACxB,MAAM,CAAQ;CACf"}
@@ -0,0 +1,4 @@
1
+ import { BusinessUuid } from "./business.uuid.js";
2
+ export interface CreateBusinessResponse {
3
+ uuid: BusinessUuid;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-business.response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-business.response.js","sourceRoot":"","sources":["../../../lib/types/business/create-business.response.ts"],"names":[],"mappings":""}
@@ -5,3 +5,5 @@ export * from './business-index.query.js';
5
5
  export * from './business-index.response.js';
6
6
  export * from './business.uuid.js';
7
7
  export * from './child-parent-business.response.js';
8
+ export * from './create-business.command.js';
9
+ export * from './create-business.response.js';
@@ -5,4 +5,6 @@ export * from './business-index.query.js';
5
5
  export * from './business-index.response.js';
6
6
  export * from './business.uuid.js';
7
7
  export * from './child-parent-business.response.js';
8
+ export * from './create-business.command.js';
9
+ export * from './create-business.response.js';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/business/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAA;AAC1D,cAAc,uCAAuC,CAAA;AACrD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/business/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAA;AAC1D,cAAc,uCAAuC,CAAA;AACrD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA"}
@@ -3,3 +3,4 @@ export * from './business/index.js';
3
3
  export * from './individual/index.js';
4
4
  export * from './location/index.js';
5
5
  export * from './integration-events/index.js';
6
+ export * from './tenant/index.js';
@@ -3,4 +3,5 @@ export * from './business/index.js';
3
3
  export * from './individual/index.js';
4
4
  export * from './location/index.js';
5
5
  export * from './integration-events/index.js';
6
+ export * from './tenant/index.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,+BAA+B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { AddressCommand } from "../address/address-command.js";
2
+ export declare class CreateIndividualCommand {
3
+ firstName: string;
4
+ lastName: string;
5
+ email: string | null;
6
+ phone: string | null;
7
+ mobilePhone: string | null;
8
+ socialSecurityNumber: string | null;
9
+ birthDate: string | null;
10
+ address: AddressCommand | null;
11
+ customFields: object | null;
12
+ }
@@ -0,0 +1,12 @@
1
+ export class CreateIndividualCommand {
2
+ firstName;
3
+ lastName;
4
+ email;
5
+ phone;
6
+ mobilePhone;
7
+ socialSecurityNumber;
8
+ birthDate;
9
+ address;
10
+ customFields;
11
+ }
12
+ //# sourceMappingURL=create-individual.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-individual.command.js","sourceRoot":"","sources":["../../../lib/types/individual/create-individual.command.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IAClC,SAAS,CAAQ;IACjB,QAAQ,CAAQ;IAChB,KAAK,CAAe;IACpB,KAAK,CAAe;IACpB,WAAW,CAAe;IAC1B,oBAAoB,CAAe;IACnC,SAAS,CAAe;IACxB,OAAO,CAAuB;IAC9B,YAAY,CAAe;CAC5B"}
@@ -0,0 +1,4 @@
1
+ import { IndividualUuid } from "./individual.uuid.js";
2
+ export interface CreateIndividualResponse {
3
+ uuid: IndividualUuid;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-individual.response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-individual.response.js","sourceRoot":"","sources":["../../../lib/types/individual/create-individual.response.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare class AssignUserAsAdminCommand {
2
+ userId: string;
3
+ }
@@ -0,0 +1,4 @@
1
+ export class AssignUserAsAdminCommand {
2
+ userId;
3
+ }
4
+ //# sourceMappingURL=assign-user-as-admin.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign-user-as-admin.command.js","sourceRoot":"","sources":["../../../lib/types/tenant/assign-user-as-admin.command.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,wBAAwB;IACnC,MAAM,CAAQ;CACf"}
@@ -0,0 +1,8 @@
1
+ export declare class CreateTenantCommand {
2
+ name: string;
3
+ slug: string;
4
+ domain: string | null;
5
+ oidcIssuer: string;
6
+ oidcAudience: string;
7
+ oidcOrganizationId: string;
8
+ }
@@ -0,0 +1,9 @@
1
+ export class CreateTenantCommand {
2
+ name;
3
+ slug;
4
+ domain;
5
+ oidcIssuer;
6
+ oidcAudience;
7
+ oidcOrganizationId;
8
+ }
9
+ //# sourceMappingURL=create-tenant.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-tenant.command.js","sourceRoot":"","sources":["../../../lib/types/tenant/create-tenant.command.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAmB;IAC9B,IAAI,CAAQ;IACZ,IAAI,CAAQ;IACZ,MAAM,CAAe;IACrB,UAAU,CAAQ;IAClB,YAAY,CAAQ;IACpB,kBAAkB,CAAQ;CAC3B"}
@@ -0,0 +1,3 @@
1
+ export interface CreateTenantResponse {
2
+ uuid: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-tenant.reponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-tenant.reponse.js","sourceRoot":"","sources":["../../../lib/types/tenant/create-tenant.reponse.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './create-tenant.command.js';
@@ -0,0 +1,2 @@
1
+ export * from './create-tenant.command.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/tenant/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/wise-crm",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",
@@ -21,6 +21,7 @@
21
21
  "@nestjs/common": "^11.1.6",
22
22
  "@wisemen/coordinates": "^0.0.10",
23
23
  "@wisemen/pagination": "^0.0.7",
24
+ "@wisemen/vies": "^0.0.9",
24
25
  "axios": "^1.12.2",
25
26
  "dayjs": "^1.11.18",
26
27
  "jsonwebtoken": "^9.0.2"