@sphereon/ssi-sdk.data-store 0.18.2-unstable.98 → 0.19.1-next.100

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 (74) hide show
  1. package/dist/contact/AbstractContactStore.d.ts.map +1 -1
  2. package/dist/contact/AbstractContactStore.js.map +1 -1
  3. package/dist/contact/ContactStore.d.ts.map +1 -1
  4. package/dist/contact/ContactStore.js +12 -6
  5. package/dist/contact/ContactStore.js.map +1 -1
  6. package/dist/entities/machineState/MachineStateInfoEntity.d.ts +33 -0
  7. package/dist/entities/machineState/MachineStateInfoEntity.d.ts.map +1 -0
  8. package/dist/entities/machineState/MachineStateInfoEntity.js +85 -0
  9. package/dist/entities/machineState/MachineStateInfoEntity.js.map +1 -0
  10. package/dist/index.d.ts +7 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +11 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/issuanceBranding/IssuanceBrandingStore.d.ts.map +1 -1
  15. package/dist/issuanceBranding/IssuanceBrandingStore.js.map +1 -1
  16. package/dist/machineState/IAbstractMachineStateStore.d.ts +52 -0
  17. package/dist/machineState/IAbstractMachineStateStore.d.ts.map +1 -0
  18. package/dist/machineState/IAbstractMachineStateStore.js +13 -0
  19. package/dist/machineState/IAbstractMachineStateStore.js.map +1 -0
  20. package/dist/machineState/MachineStateStore.d.ts +21 -0
  21. package/dist/machineState/MachineStateStore.d.ts.map +1 -0
  22. package/dist/machineState/MachineStateStore.js +139 -0
  23. package/dist/machineState/MachineStateStore.js.map +1 -0
  24. package/dist/migrations/generic/7-CreateMachineStateStore.d.ts +7 -0
  25. package/dist/migrations/generic/7-CreateMachineStateStore.d.ts.map +1 -0
  26. package/dist/migrations/generic/7-CreateMachineStateStore.js +78 -0
  27. package/dist/migrations/generic/7-CreateMachineStateStore.js.map +1 -0
  28. package/dist/migrations/generic/index.d.ts +2 -0
  29. package/dist/migrations/generic/index.d.ts.map +1 -1
  30. package/dist/migrations/generic/index.js +4 -1
  31. package/dist/migrations/generic/index.js.map +1 -1
  32. package/dist/migrations/index.d.ts +1 -1
  33. package/dist/migrations/index.d.ts.map +1 -1
  34. package/dist/migrations/index.js +2 -1
  35. package/dist/migrations/index.js.map +1 -1
  36. package/dist/migrations/postgres/1708797018115-CreateMachineStateStore.d.ts +7 -0
  37. package/dist/migrations/postgres/1708797018115-CreateMachineStateStore.d.ts.map +1 -0
  38. package/dist/migrations/postgres/1708797018115-CreateMachineStateStore.js +45 -0
  39. package/dist/migrations/postgres/1708797018115-CreateMachineStateStore.js.map +1 -0
  40. package/dist/migrations/sqlite/1708796002272-CreateMachineStateStore.d.ts +7 -0
  41. package/dist/migrations/sqlite/1708796002272-CreateMachineStateStore.d.ts.map +1 -0
  42. package/dist/migrations/sqlite/1708796002272-CreateMachineStateStore.js +44 -0
  43. package/dist/migrations/sqlite/1708796002272-CreateMachineStateStore.js.map +1 -0
  44. package/dist/types/contact/contact.d.ts.map +1 -1
  45. package/dist/types/contact/contact.js.map +1 -1
  46. package/dist/types/index.d.ts +1 -0
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/dist/types/index.js +1 -0
  49. package/dist/types/index.js.map +1 -1
  50. package/dist/types/machineState/IAbstractMachineStateStore.d.ts +58 -0
  51. package/dist/types/machineState/IAbstractMachineStateStore.d.ts.map +1 -0
  52. package/dist/types/machineState/IAbstractMachineStateStore.js +3 -0
  53. package/dist/types/machineState/IAbstractMachineStateStore.js.map +1 -0
  54. package/package.json +4 -4
  55. package/src/__tests__/contact.entities.test.ts +32 -15
  56. package/src/__tests__/contact.store.test.ts +71 -28
  57. package/src/__tests__/machineState.entities.test.ts +51 -0
  58. package/src/__tests__/machineState.store.test.ts +174 -0
  59. package/src/contact/AbstractContactStore.ts +3 -2
  60. package/src/contact/ContactStore.ts +15 -9
  61. package/src/entities/contact/PhysicalAddressEntity.ts +1 -1
  62. package/src/entities/machineState/MachineStateInfoEntity.ts +58 -0
  63. package/src/index.ts +9 -0
  64. package/src/issuanceBranding/IssuanceBrandingStore.ts +6 -8
  65. package/src/machineState/IAbstractMachineStateStore.ts +65 -0
  66. package/src/machineState/MachineStateStore.ts +149 -0
  67. package/src/migrations/generic/7-CreateMachineStateStore.ts +66 -0
  68. package/src/migrations/generic/index.ts +3 -0
  69. package/src/migrations/index.ts +1 -0
  70. package/src/migrations/postgres/1708797018115-CreateMachineStateStore.ts +29 -0
  71. package/src/migrations/sqlite/1708796002272-CreateMachineStateStore.ts +28 -0
  72. package/src/types/contact/contact.ts +13 -2
  73. package/src/types/index.ts +1 -0
  74. package/src/types/machineState/IAbstractMachineStateStore.ts +68 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,mDAAmD,CAAA;AACjE,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,mDAAmD,CAAA;AACjE,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2BAA2B,CAAA;AACzC,cAAc,2CAA2C,CAAA"}
@@ -23,4 +23,5 @@ __exportStar(require("./statusList/statusList"), exports);
23
23
  __exportStar(require("./statusList/IAbstractStatusListStore"), exports);
24
24
  __exportStar(require("./eventLogger/IAbstractEventLoggerStore"), exports);
25
25
  __exportStar(require("./eventLogger/eventLogger"), exports);
26
+ __exportStar(require("./machineState/IAbstractMachineStateStore"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAmD;AACnD,oFAAiE;AACjE,oDAAiC;AACjC,kEAA+C;AAC/C,0DAAuC;AACvC,0DAAuC;AACvC,wEAAqD;AACrD,0EAAuD;AACvD,4DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAmD;AACnD,oFAAiE;AACjE,oDAAiC;AACjC,kEAA+C;AAC/C,0DAAuC;AACvC,0DAAuC;AACvC,wEAAqD;AACrD,0EAAuD;AACvD,4DAAyC;AACzC,4EAAyD"}
@@ -0,0 +1,58 @@
1
+ export type StoreMachineStatePersistArgs = Omit<StoreMachineStateInfo, 'createdAt' | 'updatedAt'>;
2
+ export type StoreMachineStatesFindActiveArgs = Partial<Pick<StoreMachineStateInfo, 'machineName' | 'tenantId' | 'instanceId'>>;
3
+ export type FindMachineStatesFilterArgs = Array<Partial<Omit<StoreMachineStateInfo, 'state'>>>;
4
+ export type StoreFindMachineStatesArgs = {
5
+ filter: FindMachineStatesFilterArgs;
6
+ };
7
+ export type StoreMachineStateGetArgs = Pick<StoreMachineStateInfo, 'instanceId' | 'tenantId'>;
8
+ export type StoreMachineStateDeleteArgs = StoreMachineStateGetArgs;
9
+ export type StoreMachineStateDeleteExpiredArgs = {
10
+ machineName?: string;
11
+ tenantId?: string;
12
+ deleteDoneStates?: boolean;
13
+ };
14
+ export interface StoreMachineStateInfo {
15
+ /**
16
+ * Unique instance ID of the machine
17
+ */
18
+ instanceId: string;
19
+ /**
20
+ * Session Id of the machine. Not necessarily unique
21
+ */
22
+ sessionId?: string;
23
+ /**
24
+ * Machine name
25
+ */
26
+ machineName: string;
27
+ /**
28
+ * The latest state name. Can be empty for a newly initialize machine
29
+ */
30
+ latestStateName?: string;
31
+ /**
32
+ * event types like SET_TOC, SET_FIRSTNAME, .... Will be xstate.init on a newly initialized machine
33
+ */
34
+ latestEventType: string;
35
+ /**
36
+ * Serialized Machine state
37
+ */
38
+ state: string;
39
+ /**
40
+ * Represents the creation date
41
+ */
42
+ createdAt: Date;
43
+ /**
44
+ * Represents the expiration date
45
+ */
46
+ expiresAt?: Date;
47
+ /**
48
+ * Represents the update date
49
+ */
50
+ updatedAt: Date;
51
+ /**
52
+ * Represents a counter for tracking updates.
53
+ */
54
+ updatedCount: number;
55
+ completedAt?: Date;
56
+ tenantId?: string;
57
+ }
58
+ //# sourceMappingURL=IAbstractMachineStateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractMachineStateStore.d.ts","sourceRoot":"","sources":["../../../src/types/machineState/IAbstractMachineStateStore.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,EAAE,WAAW,GAAG,WAAW,CAAC,CAAA;AAEjG,MAAM,MAAM,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC,CAAC,CAAA;AAE9H,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAE9F,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,UAAU,CAAC,CAAA;AAE7F,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAA;AAClE,MAAM,MAAM,kCAAkC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAExH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,SAAS,EAAE,IAAI,CAAA;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAA;IAEhB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAA;IAEf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IAbstractMachineStateStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractMachineStateStore.js","sourceRoot":"","sources":["../../../src/types/machineState/IAbstractMachineStateStore.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.data-store",
3
- "version": "0.18.2-unstable.98+ea3b7334",
3
+ "version": "0.19.1-next.100+489dac85",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,8 +13,8 @@
13
13
  "typeorm-postgres:migration:run": "pnpm run typeorm -- migration:run -c migration-postgres"
14
14
  },
15
15
  "dependencies": {
16
- "@sphereon/ssi-sdk.core": "0.18.2-unstable.98+ea3b7334",
17
- "@sphereon/ssi-types": "0.18.2-unstable.98+ea3b7334",
16
+ "@sphereon/ssi-sdk.core": "0.19.1-next.100+489dac85",
17
+ "@sphereon/ssi-types": "0.19.1-next.100+489dac85",
18
18
  "@veramo/core": "4.2.0",
19
19
  "@veramo/utils": "4.2.0",
20
20
  "class-validator": "^0.14.0",
@@ -44,5 +44,5 @@
44
44
  "PostgreSQL",
45
45
  "Contact Store"
46
46
  ],
47
- "gitHead": "ea3b7334f32ce03da3883c83245da29b6669a516"
47
+ "gitHead": "489dac859323dfd1b80c0ecf0273769751fbec41"
48
48
  }
@@ -30,7 +30,7 @@ import {
30
30
  NonPersistedPartyType,
31
31
  NonPersistedPhysicalAddress,
32
32
  Organization,
33
- PartyTypeEnum
33
+ PartyTypeEnum,
34
34
  } from '../types'
35
35
  import {
36
36
  connectionEntityFrom,
@@ -845,12 +845,14 @@ describe('Database entities tests', (): void => {
845
845
 
846
846
  const electronicAddress: NonPersistedElectronicAddress = {
847
847
  type: 'email',
848
- electronicAddress: 'example_electronic_address'
848
+ electronicAddress: 'example_electronic_address',
849
849
  }
850
850
  const electronicAddressEntity: ElectronicAddressEntity = electronicAddressEntityFrom(electronicAddress)
851
851
  electronicAddressEntity.party = savedParty1
852
852
 
853
- const savedElectronicAddress: ElectronicAddressEntity | null = await dbConnection.getRepository(ElectronicAddressEntity).save(electronicAddressEntity)
853
+ const savedElectronicAddress: ElectronicAddressEntity | null = await dbConnection
854
+ .getRepository(ElectronicAddressEntity)
855
+ .save(electronicAddressEntity)
854
856
 
855
857
  expect(savedElectronicAddress).toBeDefined()
856
858
 
@@ -2199,7 +2201,7 @@ describe('Database entities tests', (): void => {
2199
2201
  it('Should save email electronic address to database', async (): Promise<void> => {
2200
2202
  const electronicAddress: NonPersistedElectronicAddress = {
2201
2203
  type: 'email',
2202
- electronicAddress: 'example_email_address'
2204
+ electronicAddress: 'example_email_address',
2203
2205
  }
2204
2206
 
2205
2207
  const electronicAddressEntity: ElectronicAddressEntity = electronicAddressEntityFrom(electronicAddress)
@@ -2221,7 +2223,7 @@ describe('Database entities tests', (): void => {
2221
2223
  it('Should save phone electronic address to database', async (): Promise<void> => {
2222
2224
  const electronicAddress: NonPersistedElectronicAddress = {
2223
2225
  type: 'phone',
2224
- electronicAddress: 'example_phone_number'
2226
+ electronicAddress: 'example_phone_number',
2225
2227
  }
2226
2228
 
2227
2229
  const electronicAddressEntity: ElectronicAddressEntity = electronicAddressEntityFrom(electronicAddress)
@@ -2243,12 +2245,14 @@ describe('Database entities tests', (): void => {
2243
2245
  it('should throw error when saving electronic address with blank electronic address', async (): Promise<void> => {
2244
2246
  const electronicAddress: NonPersistedElectronicAddress = {
2245
2247
  type: 'email',
2246
- electronicAddress: ''
2248
+ electronicAddress: '',
2247
2249
  }
2248
2250
 
2249
2251
  const electronicAddressEntity: ElectronicAddressEntity = electronicAddressEntityFrom(electronicAddress)
2250
2252
 
2251
- await expect(dbConnection.getRepository(ElectronicAddressEntity).save(electronicAddressEntity)).rejects.toThrowError('Blank electronic addresses are not allowed')
2253
+ await expect(dbConnection.getRepository(ElectronicAddressEntity).save(electronicAddressEntity)).rejects.toThrowError(
2254
+ 'Blank electronic addresses are not allowed'
2255
+ )
2252
2256
  })
2253
2257
 
2254
2258
  it('Should save home physical address to database', async (): Promise<void> => {
@@ -2367,7 +2371,9 @@ describe('Database entities tests', (): void => {
2367
2371
 
2368
2372
  const physicalAddressEntity: PhysicalAddressEntity = physicalAddressEntityFrom(physicalAddress)
2369
2373
 
2370
- await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError('Blank street names are not allowed')
2374
+ await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError(
2375
+ 'Blank street names are not allowed'
2376
+ )
2371
2377
  })
2372
2378
 
2373
2379
  it('should throw error when saving physical address with blank street number', async (): Promise<void> => {
@@ -2384,7 +2390,9 @@ describe('Database entities tests', (): void => {
2384
2390
 
2385
2391
  const physicalAddressEntity: PhysicalAddressEntity = physicalAddressEntityFrom(physicalAddress)
2386
2392
 
2387
- await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError('Blank street numbers are not allowed')
2393
+ await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError(
2394
+ 'Blank street numbers are not allowed'
2395
+ )
2388
2396
  })
2389
2397
 
2390
2398
  it('should throw error when saving physical address with blank building name', async (): Promise<void> => {
@@ -2401,7 +2409,9 @@ describe('Database entities tests', (): void => {
2401
2409
 
2402
2410
  const physicalAddressEntity: PhysicalAddressEntity = physicalAddressEntityFrom(physicalAddress)
2403
2411
 
2404
- await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError('Blank building names are not allowed')
2412
+ await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError(
2413
+ 'Blank building names are not allowed'
2414
+ )
2405
2415
  })
2406
2416
 
2407
2417
  it('should throw error when saving physical address with blank postal code', async (): Promise<void> => {
@@ -2418,7 +2428,9 @@ describe('Database entities tests', (): void => {
2418
2428
 
2419
2429
  const physicalAddressEntity: PhysicalAddressEntity = physicalAddressEntityFrom(physicalAddress)
2420
2430
 
2421
- await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError('Blank postal codes are not allowed')
2431
+ await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError(
2432
+ 'Blank postal codes are not allowed'
2433
+ )
2422
2434
  })
2423
2435
 
2424
2436
  it('should throw error when saving physical address with blank city name', async (): Promise<void> => {
@@ -2435,7 +2447,9 @@ describe('Database entities tests', (): void => {
2435
2447
 
2436
2448
  const physicalAddressEntity: PhysicalAddressEntity = physicalAddressEntityFrom(physicalAddress)
2437
2449
 
2438
- await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError('Blank city names are not allowed')
2450
+ await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError(
2451
+ 'Blank city names are not allowed'
2452
+ )
2439
2453
  })
2440
2454
 
2441
2455
  it('should throw error when saving physical address with blank province name', async (): Promise<void> => {
@@ -2452,7 +2466,9 @@ describe('Database entities tests', (): void => {
2452
2466
 
2453
2467
  const physicalAddressEntity: PhysicalAddressEntity = physicalAddressEntityFrom(physicalAddress)
2454
2468
 
2455
- await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError('Blank province names are not allowed')
2469
+ await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError(
2470
+ 'Blank province names are not allowed'
2471
+ )
2456
2472
  })
2457
2473
 
2458
2474
  it('should throw error when saving physical address with blank country code', async (): Promise<void> => {
@@ -2469,7 +2485,8 @@ describe('Database entities tests', (): void => {
2469
2485
 
2470
2486
  const physicalAddressEntity: PhysicalAddressEntity = physicalAddressEntityFrom(physicalAddress)
2471
2487
 
2472
- await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError('Blank country codes are not allowed')
2488
+ await expect(dbConnection.getRepository(PhysicalAddressEntity).save(physicalAddressEntity)).rejects.toThrowError(
2489
+ 'Blank country codes are not allowed'
2490
+ )
2473
2491
  })
2474
-
2475
2492
  })
@@ -1804,7 +1804,7 @@ describe('Contact store tests', (): void => {
1804
1804
 
1805
1805
  const electronicAddress: NonPersistedElectronicAddress = {
1806
1806
  type: 'email',
1807
- electronicAddress: 'example_electronic_address'
1807
+ electronicAddress: 'example_electronic_address',
1808
1808
  }
1809
1809
  const savedElectronicAddress: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress })
1810
1810
  expect(savedElectronicAddress).toBeDefined()
@@ -1817,7 +1817,9 @@ describe('Contact store tests', (): void => {
1817
1817
  it('should throw error when getting electronic address with unknown id', async (): Promise<void> => {
1818
1818
  const electronicAddressId = 'unknownElectronicAddressId'
1819
1819
 
1820
- await expect(contactStore.getElectronicAddress({ electronicAddressId })).rejects.toThrow(`No electronic address found for id: ${electronicAddressId}`)
1820
+ await expect(contactStore.getElectronicAddress({ electronicAddressId })).rejects.toThrow(
1821
+ `No electronic address found for id: ${electronicAddressId}`
1822
+ )
1821
1823
  })
1822
1824
 
1823
1825
  it('should get all electronic addresses for contact', async (): Promise<void> => {
@@ -1840,16 +1842,22 @@ describe('Contact store tests', (): void => {
1840
1842
 
1841
1843
  const electronicAddress1: NonPersistedElectronicAddress = {
1842
1844
  type: 'email',
1843
- electronicAddress: 'example_electronic_address1'
1845
+ electronicAddress: 'example_electronic_address1',
1844
1846
  }
1845
- const savedElectronicAddress1: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress: electronicAddress1 })
1847
+ const savedElectronicAddress1: ElectronicAddress = await contactStore.addElectronicAddress({
1848
+ partyId: savedParty.id,
1849
+ electronicAddress: electronicAddress1,
1850
+ })
1846
1851
  expect(savedElectronicAddress1).toBeDefined()
1847
1852
 
1848
1853
  const electronicAddress2: NonPersistedElectronicAddress = {
1849
1854
  type: 'email',
1850
- electronicAddress: 'example_electronic_address2'
1855
+ electronicAddress: 'example_electronic_address2',
1851
1856
  }
1852
- const savedElectronicAddress2: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress: electronicAddress2 })
1857
+ const savedElectronicAddress2: ElectronicAddress = await contactStore.addElectronicAddress({
1858
+ partyId: savedParty.id,
1859
+ electronicAddress: electronicAddress2,
1860
+ })
1853
1861
  expect(savedElectronicAddress2).toBeDefined()
1854
1862
 
1855
1863
  const args: GetElectronicAddressesArgs = {
@@ -1881,16 +1889,22 @@ describe('Contact store tests', (): void => {
1881
1889
 
1882
1890
  const electronicAddress1: NonPersistedElectronicAddress = {
1883
1891
  type: 'email',
1884
- electronicAddress: 'example_electronic_address1'
1892
+ electronicAddress: 'example_electronic_address1',
1885
1893
  }
1886
- const savedElectronicAddress1: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress: electronicAddress1 })
1894
+ const savedElectronicAddress1: ElectronicAddress = await contactStore.addElectronicAddress({
1895
+ partyId: savedParty.id,
1896
+ electronicAddress: electronicAddress1,
1897
+ })
1887
1898
  expect(savedElectronicAddress1).toBeDefined()
1888
1899
 
1889
1900
  const electronicAddress2: NonPersistedElectronicAddress = {
1890
1901
  type: 'email',
1891
- electronicAddress: 'example_electronic_address2'
1902
+ electronicAddress: 'example_electronic_address2',
1892
1903
  }
1893
- const savedElectronicAddress2: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress: electronicAddress2 })
1904
+ const savedElectronicAddress2: ElectronicAddress = await contactStore.addElectronicAddress({
1905
+ partyId: savedParty.id,
1906
+ electronicAddress: electronicAddress2,
1907
+ })
1894
1908
  expect(savedElectronicAddress2).toBeDefined()
1895
1909
 
1896
1910
  const result: Array<ElectronicAddress> = await contactStore.getElectronicAddresses()
@@ -1919,16 +1933,22 @@ describe('Contact store tests', (): void => {
1919
1933
  const electronicAddress = 'example_electronic_address1'
1920
1934
  const electronicAddress1: NonPersistedElectronicAddress = {
1921
1935
  type: 'email',
1922
- electronicAddress
1936
+ electronicAddress,
1923
1937
  }
1924
- const savedElectronicAddress1: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress: electronicAddress1 })
1938
+ const savedElectronicAddress1: ElectronicAddress = await contactStore.addElectronicAddress({
1939
+ partyId: savedParty.id,
1940
+ electronicAddress: electronicAddress1,
1941
+ })
1925
1942
  expect(savedElectronicAddress1).toBeDefined()
1926
1943
 
1927
1944
  const electronicAddress2: NonPersistedElectronicAddress = {
1928
1945
  type: 'email',
1929
- electronicAddress: 'example_electronic_address2'
1946
+ electronicAddress: 'example_electronic_address2',
1930
1947
  }
1931
- const savedElectronicAddress2: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress: electronicAddress2 })
1948
+ const savedElectronicAddress2: ElectronicAddress = await contactStore.addElectronicAddress({
1949
+ partyId: savedParty.id,
1950
+ electronicAddress: electronicAddress2,
1951
+ })
1932
1952
  expect(savedElectronicAddress2).toBeDefined()
1933
1953
 
1934
1954
  const args: GetElectronicAddressesArgs = {
@@ -1960,7 +1980,7 @@ describe('Contact store tests', (): void => {
1960
1980
 
1961
1981
  const electronicAddress: NonPersistedElectronicAddress = {
1962
1982
  type: 'email',
1963
- electronicAddress: 'example_electronic_address'
1983
+ electronicAddress: 'example_electronic_address',
1964
1984
  }
1965
1985
  const savedElectronicAddress: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress })
1966
1986
  expect(savedElectronicAddress).toBeDefined()
@@ -1989,7 +2009,7 @@ describe('Contact store tests', (): void => {
1989
2009
 
1990
2010
  const electronicAddress: NonPersistedElectronicAddress = {
1991
2011
  type: 'email',
1992
- electronicAddress: 'example_electronic_address'
2012
+ electronicAddress: 'example_electronic_address',
1993
2013
  }
1994
2014
  const savedElectronicAddress: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress })
1995
2015
  const newElectronicAddress = 'new_example_electronic_address'
@@ -2022,20 +2042,24 @@ describe('Contact store tests', (): void => {
2022
2042
 
2023
2043
  const electronicAddress: NonPersistedElectronicAddress = {
2024
2044
  type: 'email',
2025
- electronicAddress: 'example_electronic_address'
2045
+ electronicAddress: 'example_electronic_address',
2026
2046
  }
2027
2047
  const savedElectronicAddress: ElectronicAddress = await contactStore.addElectronicAddress({ partyId: savedParty.id, electronicAddress })
2028
2048
  expect(savedElectronicAddress).toBeDefined()
2029
2049
 
2030
2050
  await contactStore.removeElectronicAddress({ electronicAddressId: savedElectronicAddress.id })
2031
2051
 
2032
- await expect(contactStore.getElectronicAddress({ electronicAddressId: savedElectronicAddress.id })).rejects.toThrow(`No electronic address found for id: ${savedElectronicAddress.id}`)
2052
+ await expect(contactStore.getElectronicAddress({ electronicAddressId: savedElectronicAddress.id })).rejects.toThrow(
2053
+ `No electronic address found for id: ${savedElectronicAddress.id}`
2054
+ )
2033
2055
  })
2034
2056
 
2035
2057
  it('should throw error when removing electronic address with unknown id', async (): Promise<void> => {
2036
2058
  const electronicAddressId = 'unknownElectronicAddressId'
2037
2059
 
2038
- await expect(contactStore.removeElectronicAddress({ electronicAddressId })).rejects.toThrow(`No electronic address found for id: ${electronicAddressId}`)
2060
+ await expect(contactStore.removeElectronicAddress({ electronicAddressId })).rejects.toThrow(
2061
+ `No electronic address found for id: ${electronicAddressId}`
2062
+ )
2039
2063
  })
2040
2064
 
2041
2065
  it('should get physical address by id', async (): Promise<void> => {
@@ -2108,7 +2132,10 @@ describe('Contact store tests', (): void => {
2108
2132
  provinceName: 'example_province_name',
2109
2133
  countryCode: 'example_country_code',
2110
2134
  }
2111
- const savedPhysicalAddress1: PhysicalAddress = await contactStore.addPhysicalAddress({ partyId: savedParty.id, physicalAddress: physicalAddress1 })
2135
+ const savedPhysicalAddress1: PhysicalAddress = await contactStore.addPhysicalAddress({
2136
+ partyId: savedParty.id,
2137
+ physicalAddress: physicalAddress1,
2138
+ })
2112
2139
  expect(savedPhysicalAddress1).toBeDefined()
2113
2140
 
2114
2141
  const physicalAddress2: NonPersistedPhysicalAddress = {
@@ -2121,7 +2148,10 @@ describe('Contact store tests', (): void => {
2121
2148
  provinceName: 'example_province_name',
2122
2149
  countryCode: 'example_country_code',
2123
2150
  }
2124
- const savedPhysicalAddress2: PhysicalAddress = await contactStore.addPhysicalAddress({ partyId: savedParty.id, physicalAddress: physicalAddress2 })
2151
+ const savedPhysicalAddress2: PhysicalAddress = await contactStore.addPhysicalAddress({
2152
+ partyId: savedParty.id,
2153
+ physicalAddress: physicalAddress2,
2154
+ })
2125
2155
  expect(savedPhysicalAddress2).toBeDefined()
2126
2156
 
2127
2157
  const args: GetPhysicalAddressesArgs = {
@@ -2130,7 +2160,7 @@ describe('Contact store tests', (): void => {
2130
2160
 
2131
2161
  const result: Array<PhysicalAddress> = await contactStore.getPhysicalAddresses(args)
2132
2162
 
2133
- expect(result.length). toEqual(2)
2163
+ expect(result.length).toEqual(2)
2134
2164
  })
2135
2165
 
2136
2166
  it('should get all electronic addresses', async (): Promise<void> => {
@@ -2161,7 +2191,10 @@ describe('Contact store tests', (): void => {
2161
2191
  provinceName: 'example_province_name',
2162
2192
  countryCode: 'example_country_code',
2163
2193
  }
2164
- const savedPhysicalAddress1: PhysicalAddress = await contactStore.addPhysicalAddress({ partyId: savedParty.id, physicalAddress: physicalAddress1 })
2194
+ const savedPhysicalAddress1: PhysicalAddress = await contactStore.addPhysicalAddress({
2195
+ partyId: savedParty.id,
2196
+ physicalAddress: physicalAddress1,
2197
+ })
2165
2198
  expect(savedPhysicalAddress1).toBeDefined()
2166
2199
 
2167
2200
  const physicalAddress2: NonPersistedPhysicalAddress = {
@@ -2174,7 +2207,10 @@ describe('Contact store tests', (): void => {
2174
2207
  provinceName: 'example_province_name',
2175
2208
  countryCode: 'example_country_code',
2176
2209
  }
2177
- const savedPhysicalAddress2: PhysicalAddress = await contactStore.addPhysicalAddress({ partyId: savedParty.id, physicalAddress: physicalAddress2 })
2210
+ const savedPhysicalAddress2: PhysicalAddress = await contactStore.addPhysicalAddress({
2211
+ partyId: savedParty.id,
2212
+ physicalAddress: physicalAddress2,
2213
+ })
2178
2214
  expect(savedPhysicalAddress2).toBeDefined()
2179
2215
 
2180
2216
  const result: Array<PhysicalAddress> = await contactStore.getPhysicalAddresses()
@@ -2211,7 +2247,10 @@ describe('Contact store tests', (): void => {
2211
2247
  provinceName: 'example_province_name1',
2212
2248
  countryCode: 'example_country_code1',
2213
2249
  }
2214
- const savedPhysicalAddress1: PhysicalAddress = await contactStore.addPhysicalAddress({ partyId: savedParty.id, physicalAddress: physicalAddress1 })
2250
+ const savedPhysicalAddress1: PhysicalAddress = await contactStore.addPhysicalAddress({
2251
+ partyId: savedParty.id,
2252
+ physicalAddress: physicalAddress1,
2253
+ })
2215
2254
  expect(savedPhysicalAddress1).toBeDefined()
2216
2255
 
2217
2256
  const physicalAddress2: NonPersistedPhysicalAddress = {
@@ -2224,7 +2263,10 @@ describe('Contact store tests', (): void => {
2224
2263
  provinceName: 'example_province_name2',
2225
2264
  countryCode: 'example_country_code2',
2226
2265
  }
2227
- const savedPhysicalAddress2: PhysicalAddress = await contactStore.addPhysicalAddress({ partyId: savedParty.id, physicalAddress: physicalAddress2 })
2266
+ const savedPhysicalAddress2: PhysicalAddress = await contactStore.addPhysicalAddress({
2267
+ partyId: savedParty.id,
2268
+ physicalAddress: physicalAddress2,
2269
+ })
2228
2270
  expect(savedPhysicalAddress2).toBeDefined()
2229
2271
 
2230
2272
  const args: GetPhysicalAddressesArgs = {
@@ -2343,7 +2385,9 @@ describe('Contact store tests', (): void => {
2343
2385
 
2344
2386
  await contactStore.removePhysicalAddress({ physicalAddressId: savedPhysicalAddress.id })
2345
2387
 
2346
- await expect(contactStore.getPhysicalAddress({ physicalAddressId: savedPhysicalAddress.id })).rejects.toThrow(`No physical address found for id: ${savedPhysicalAddress.id}`)
2388
+ await expect(contactStore.getPhysicalAddress({ physicalAddressId: savedPhysicalAddress.id })).rejects.toThrow(
2389
+ `No physical address found for id: ${savedPhysicalAddress.id}`
2390
+ )
2347
2391
  })
2348
2392
 
2349
2393
  it('should throw error when removing physical address with unknown id', async (): Promise<void> => {
@@ -2351,5 +2395,4 @@ describe('Contact store tests', (): void => {
2351
2395
 
2352
2396
  await expect(contactStore.removePhysicalAddress({ physicalAddressId })).rejects.toThrow(`No physical address found for id: ${physicalAddressId}`)
2353
2397
  })
2354
-
2355
2398
  })
@@ -0,0 +1,51 @@
1
+ import { DataSource } from 'typeorm'
2
+ import { MachineStateInfoEntity } from '../entities/machineState/MachineStateInfoEntity'
3
+
4
+ import { DataStoreMachineStateEntities, DataStoreMachineStateMigrations, StoreMachineStatePersistArgs, MachineStateStore } from '../index'
5
+
6
+ describe('Machine State Info Database entities tests', (): void => {
7
+ let dbConnection: DataSource
8
+
9
+ beforeEach(async (): Promise<void> => {
10
+ dbConnection = await new DataSource({
11
+ type: 'sqlite',
12
+ database: ':memory:',
13
+ //logging: 'all',
14
+ migrationsRun: false,
15
+ migrations: DataStoreMachineStateMigrations,
16
+ synchronize: false,
17
+ entities: [...DataStoreMachineStateEntities],
18
+ }).initialize()
19
+ await dbConnection.runMigrations()
20
+ expect(await dbConnection.showMigrations()).toBeFalsy()
21
+ })
22
+
23
+ afterEach(async (): Promise<void> => {
24
+ await dbConnection.destroy()
25
+ })
26
+
27
+ it('should save machine state info to database', async (): Promise<void> => {
28
+ const expiresAt = new Date()
29
+ expiresAt.setTime(expiresAt.getTime() + 100000)
30
+ const machineInfo: StoreMachineStatePersistArgs = {
31
+ instanceId: 'Onboarding1',
32
+ latestStateName: 'acceptAgreement',
33
+ machineName: 'Onboarding',
34
+ updatedCount: 0,
35
+ latestEventType: 'SET_TOC',
36
+ state: JSON.stringify({ myState: 'test_state' }),
37
+ tenantId: 'test_tenant_id',
38
+ expiresAt,
39
+ }
40
+ const fromDb: MachineStateInfoEntity = await dbConnection
41
+ .getRepository(MachineStateInfoEntity)
42
+ .save(MachineStateStore.machineStateInfoEntityFrom(machineInfo))
43
+
44
+ expect(fromDb).toBeDefined()
45
+ expect(fromDb?.instanceId).not.toBeNull()
46
+ expect(fromDb?.machineName).toEqual(machineInfo.machineName)
47
+ expect(fromDb?.state).toEqual(machineInfo.state)
48
+ expect(fromDb?.tenantId).toEqual(machineInfo.tenantId)
49
+ expect(fromDb?.completedAt).toBeNull()
50
+ })
51
+ })