@sphereon/ssi-sdk.data-store 0.19.1-next.2 → 0.19.1-unstable.63

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 (110) hide show
  1. package/dist/digitalCredential/AbstractDigitalCredentialStore.d.ts +10 -0
  2. package/dist/digitalCredential/AbstractDigitalCredentialStore.d.ts.map +1 -0
  3. package/dist/digitalCredential/AbstractDigitalCredentialStore.js +7 -0
  4. package/dist/digitalCredential/AbstractDigitalCredentialStore.js.map +1 -0
  5. package/dist/digitalCredential/DigitalCredentialStore.d.ts +15 -0
  6. package/dist/digitalCredential/DigitalCredentialStore.d.ts.map +1 -0
  7. package/dist/digitalCredential/DigitalCredentialStore.js +118 -0
  8. package/dist/digitalCredential/DigitalCredentialStore.js.map +1 -0
  9. package/dist/entities/digitalCredential/DigitalCredentialEntity.d.ts +23 -0
  10. package/dist/entities/digitalCredential/DigitalCredentialEntity.d.ts.map +1 -0
  11. package/dist/entities/digitalCredential/DigitalCredentialEntity.js +93 -0
  12. package/dist/entities/digitalCredential/DigitalCredentialEntity.js.map +1 -0
  13. package/dist/entities/xstate/StateEntity.d.ts +14 -0
  14. package/dist/entities/xstate/StateEntity.d.ts.map +1 -0
  15. package/dist/entities/xstate/StateEntity.js +60 -0
  16. package/dist/entities/xstate/StateEntity.js.map +1 -0
  17. package/dist/index.d.ts +10 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +19 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/migrations/generic/6-CreateDigitalCredential.d.ts +7 -0
  22. package/dist/migrations/generic/6-CreateDigitalCredential.d.ts.map +1 -0
  23. package/dist/migrations/generic/6-CreateDigitalCredential.js +78 -0
  24. package/dist/migrations/generic/6-CreateDigitalCredential.js.map +1 -0
  25. package/dist/migrations/generic/7-CreateXStateStore.d.ts +7 -0
  26. package/dist/migrations/generic/7-CreateXStateStore.d.ts.map +1 -0
  27. package/dist/migrations/generic/7-CreateXStateStore.js +78 -0
  28. package/dist/migrations/generic/7-CreateXStateStore.js.map +1 -0
  29. package/dist/migrations/generic/index.d.ts +4 -0
  30. package/dist/migrations/generic/index.d.ts.map +1 -1
  31. package/dist/migrations/generic/index.js +7 -1
  32. package/dist/migrations/generic/index.js.map +1 -1
  33. package/dist/migrations/index.d.ts +1 -1
  34. package/dist/migrations/index.d.ts.map +1 -1
  35. package/dist/migrations/index.js +3 -1
  36. package/dist/migrations/index.js.map +1 -1
  37. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.d.ts +7 -0
  38. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.d.ts.map +1 -0
  39. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js +59 -0
  40. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js.map +1 -0
  41. package/dist/migrations/postgres/1708797018115-CreateXStateStore.d.ts +7 -0
  42. package/dist/migrations/postgres/1708797018115-CreateXStateStore.d.ts.map +1 -0
  43. package/dist/migrations/postgres/1708797018115-CreateXStateStore.js +45 -0
  44. package/dist/migrations/postgres/1708797018115-CreateXStateStore.js.map +1 -0
  45. package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.d.ts +7 -0
  46. package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.d.ts.map +1 -0
  47. package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js +50 -0
  48. package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js.map +1 -0
  49. package/dist/migrations/sqlite/1708796002272-CreateXStateStore.d.ts +7 -0
  50. package/dist/migrations/sqlite/1708796002272-CreateXStateStore.d.ts.map +1 -0
  51. package/dist/migrations/sqlite/1708796002272-CreateXStateStore.js +42 -0
  52. package/dist/migrations/sqlite/1708796002272-CreateXStateStore.js.map +1 -0
  53. package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.d.ts +42 -0
  54. package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.d.ts.map +1 -0
  55. package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.js +3 -0
  56. package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.js.map +1 -0
  57. package/dist/types/digitalCredential/digitalCredential.d.ts +42 -0
  58. package/dist/types/digitalCredential/digitalCredential.d.ts.map +1 -0
  59. package/dist/types/digitalCredential/digitalCredential.js +28 -0
  60. package/dist/types/digitalCredential/digitalCredential.js.map +1 -0
  61. package/dist/types/index.d.ts +1 -0
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/index.js +1 -0
  64. package/dist/types/index.js.map +1 -1
  65. package/dist/types/xstate/IAbstractXStateStore.d.ts +38 -0
  66. package/dist/types/xstate/IAbstractXStateStore.d.ts.map +1 -0
  67. package/dist/types/xstate/IAbstractXStateStore.js +3 -0
  68. package/dist/types/xstate/IAbstractXStateStore.js.map +1 -0
  69. package/dist/utils/SortingUtils.d.ts +3 -0
  70. package/dist/utils/SortingUtils.d.ts.map +1 -0
  71. package/dist/utils/SortingUtils.js +18 -0
  72. package/dist/utils/SortingUtils.js.map +1 -0
  73. package/dist/utils/digitalCredential/MappingUtils.d.ts +7 -0
  74. package/dist/utils/digitalCredential/MappingUtils.d.ts.map +1 -0
  75. package/dist/utils/digitalCredential/MappingUtils.js +99 -0
  76. package/dist/utils/digitalCredential/MappingUtils.js.map +1 -0
  77. package/dist/xstate/IAbstractXStateStore.d.ts +9 -0
  78. package/dist/xstate/IAbstractXStateStore.d.ts.map +1 -0
  79. package/dist/xstate/IAbstractXStateStore.js +7 -0
  80. package/dist/xstate/IAbstractXStateStore.js.map +1 -0
  81. package/dist/xstate/XStateStore.d.ts +17 -0
  82. package/dist/xstate/XStateStore.d.ts.map +1 -0
  83. package/dist/xstate/XStateStore.js +110 -0
  84. package/dist/xstate/XStateStore.js.map +1 -0
  85. package/package.json +5 -4
  86. package/src/__tests__/digitalCredential.entities.test.ts +254 -0
  87. package/src/__tests__/digitalCredential.store.test.ts +294 -0
  88. package/src/__tests__/xstate.entities.test.ts +47 -0
  89. package/src/__tests__/xstate.store.test.ts +158 -0
  90. package/src/digitalCredential/AbstractDigitalCredentialStore.ts +17 -0
  91. package/src/digitalCredential/DigitalCredentialStore.ts +127 -0
  92. package/src/entities/digitalCredential/DigitalCredentialEntity.ts +64 -0
  93. package/src/entities/xstate/StateEntity.ts +34 -0
  94. package/src/index.ts +18 -0
  95. package/src/migrations/generic/6-CreateDigitalCredential.ts +66 -0
  96. package/src/migrations/generic/7-CreateXStateStore.ts +66 -0
  97. package/src/migrations/generic/index.ts +6 -0
  98. package/src/migrations/index.ts +2 -0
  99. package/src/migrations/postgres/1708525189001-CreateDigitalCredential.ts +44 -0
  100. package/src/migrations/postgres/1708797018115-CreateXStateStore.ts +29 -0
  101. package/src/migrations/sqlite/1708525189002-CreateDigitalCredential.ts +34 -0
  102. package/src/migrations/sqlite/1708796002272-CreateXStateStore.ts +26 -0
  103. package/src/types/digitalCredential/IAbstractDigitalCredentialStore.ts +37 -0
  104. package/src/types/digitalCredential/digitalCredential.ts +46 -0
  105. package/src/types/index.ts +1 -0
  106. package/src/types/xstate/IAbstractXStateStore.ts +39 -0
  107. package/src/utils/SortingUtils.ts +16 -0
  108. package/src/utils/digitalCredential/MappingUtils.ts +122 -0
  109. package/src/xstate/IAbstractXStateStore.ts +9 -0
  110. package/src/xstate/XStateStore.ts +107 -0
@@ -0,0 +1,42 @@
1
+ export type NonPersistedDigitalCredential = Omit<DigitalCredential, 'id'>;
2
+ export type DigitalCredential = {
3
+ id: string;
4
+ documentType: DocumentType;
5
+ documentFormat: CredentialDocumentFormat;
6
+ rawDocument: string;
7
+ uniformDocument: string;
8
+ hash: string;
9
+ issuerCorrelationType: CredentialCorrelationType;
10
+ subjectCorrelationType?: CredentialCorrelationType;
11
+ issuerCorrelationId: string;
12
+ subjectCorrelationId?: string;
13
+ verifiedState?: CredentialStateType;
14
+ tenantId?: string;
15
+ createdAt: Date;
16
+ lastUpdatedAt: Date;
17
+ validUntil?: Date;
18
+ validFrom?: Date;
19
+ verifiedAt?: Date;
20
+ revokedAt?: Date;
21
+ };
22
+ export declare enum DocumentType {
23
+ VC = "VC",
24
+ VP = "VP",
25
+ P = "P",
26
+ C = "C"
27
+ }
28
+ export declare enum CredentialDocumentFormat {
29
+ JSON_LD = "JSON_LD",
30
+ JWT = "JWT",
31
+ SD_JWT = "SD_JWT",
32
+ MDOC = "MDOC"
33
+ }
34
+ export declare enum CredentialCorrelationType {
35
+ DID = "DID"
36
+ }
37
+ export declare enum CredentialStateType {
38
+ REVOKED = "REVOKED",
39
+ VERIFIED = "VERIFIED",
40
+ EXPIRED = "EXPIRED"
41
+ }
42
+ //# sourceMappingURL=digitalCredential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalCredential.d.ts","sourceRoot":"","sources":["../../../src/types/digitalCredential/digitalCredential.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,wBAAwB,CAAA;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,qBAAqB,EAAE,yBAAyB,CAAA;IAChD,sBAAsB,CAAC,EAAE,yBAAyB,CAAA;IAClD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,EAAE,IAAI,CAAA;IACnB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED,oBAAY,YAAY;IACtB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,CAAC,MAAM;IACP,CAAC,MAAM;CACR;AAED,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,oBAAY,yBAAyB;IACnC,GAAG,QAAQ;CACZ;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CredentialStateType = exports.CredentialCorrelationType = exports.CredentialDocumentFormat = exports.DocumentType = void 0;
4
+ var DocumentType;
5
+ (function (DocumentType) {
6
+ DocumentType["VC"] = "VC";
7
+ DocumentType["VP"] = "VP";
8
+ DocumentType["P"] = "P";
9
+ DocumentType["C"] = "C";
10
+ })(DocumentType = exports.DocumentType || (exports.DocumentType = {}));
11
+ var CredentialDocumentFormat;
12
+ (function (CredentialDocumentFormat) {
13
+ CredentialDocumentFormat["JSON_LD"] = "JSON_LD";
14
+ CredentialDocumentFormat["JWT"] = "JWT";
15
+ CredentialDocumentFormat["SD_JWT"] = "SD_JWT";
16
+ CredentialDocumentFormat["MDOC"] = "MDOC";
17
+ })(CredentialDocumentFormat = exports.CredentialDocumentFormat || (exports.CredentialDocumentFormat = {}));
18
+ var CredentialCorrelationType;
19
+ (function (CredentialCorrelationType) {
20
+ CredentialCorrelationType["DID"] = "DID";
21
+ })(CredentialCorrelationType = exports.CredentialCorrelationType || (exports.CredentialCorrelationType = {}));
22
+ var CredentialStateType;
23
+ (function (CredentialStateType) {
24
+ CredentialStateType["REVOKED"] = "REVOKED";
25
+ CredentialStateType["VERIFIED"] = "VERIFIED";
26
+ CredentialStateType["EXPIRED"] = "EXPIRED";
27
+ })(CredentialStateType = exports.CredentialStateType || (exports.CredentialStateType = {}));
28
+ //# sourceMappingURL=digitalCredential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalCredential.js","sourceRoot":"","sources":["../../../src/types/digitalCredential/digitalCredential.ts"],"names":[],"mappings":";;;AAuBA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,yBAAS,CAAA;IACT,yBAAS,CAAA;IACT,uBAAO,CAAA;IACP,uBAAO,CAAA;AACT,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED,IAAY,wBAKX;AALD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,uCAAW,CAAA;IACX,6CAAiB,CAAA;IACjB,yCAAa,CAAA;AACf,CAAC,EALW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAKnC;AAED,IAAY,yBAEX;AAFD,WAAY,yBAAyB;IACnC,wCAAW,CAAA;AACb,CAAC,EAFW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAEpC;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B"}
@@ -7,4 +7,5 @@ export * from './statusList/statusList';
7
7
  export * from './statusList/IAbstractStatusListStore';
8
8
  export * from './eventLogger/IAbstractEventLoggerStore';
9
9
  export * from './eventLogger/eventLogger';
10
+ export * from './xstate/IAbstractXStateStore';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -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,+BAA+B,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("./xstate/IAbstractXStateStore"), 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,gEAA6C"}
@@ -0,0 +1,38 @@
1
+ export type SaveStateArgs = Omit<State, 'id' | 'createdAt' | 'updatedAt'>;
2
+ export type GetActiveStateArgs = Pick<State, 'machineType' | 'tenantId'>;
3
+ export type FindStatesArgs = Array<Partial<Omit<State, 'state'>>>;
4
+ export type GetStatesArgs = {
5
+ filter: FindStatesArgs;
6
+ };
7
+ export type NonPersistedXStateStoreEvent = SaveStateArgs;
8
+ export type DeleteStateArgs = {
9
+ id: string;
10
+ };
11
+ export type DeleteExpiredStateArgs = {
12
+ machineType?: string;
13
+ };
14
+ export type State = {
15
+ id: string;
16
+ /**
17
+ * value of the state's name. top level of event type. examples: acceptAgreement, enterPersonalDetails
18
+ */
19
+ stateName: string;
20
+ /**
21
+ * Machine type/id
22
+ */
23
+ machineType: string;
24
+ /**
25
+ * event types like SET_TOC, SET_FIRSTNAME, ...
26
+ */
27
+ xStateEventType: string;
28
+ /**
29
+ * state of the machine in this snapshot
30
+ */
31
+ state: unknown;
32
+ createdAt: Date;
33
+ expiresAt?: Date;
34
+ updatedAt: Date;
35
+ completedAt?: Date;
36
+ tenantId?: string;
37
+ };
38
+ //# sourceMappingURL=IAbstractXStateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractXStateStore.d.ts","sourceRoot":"","sources":["../../../src/types/xstate/IAbstractXStateStore.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAA;AAEzE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC,CAAA;AAExE,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAEjE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,cAAc,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,aAAa,CAAA;AAExD,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAC5C,MAAM,MAAM,sBAAsB,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IAbstractXStateStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractXStateStore.js","sourceRoot":"","sources":["../../../src/types/xstate/IAbstractXStateStore.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { BaseEntity, FindOptionsOrder } from 'typeorm';
2
+ export declare const parseAndValidateOrderOptions: <T extends BaseEntity>(order: string) => FindOptionsOrder<T>;
3
+ //# sourceMappingURL=SortingUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortingUtils.d.ts","sourceRoot":"","sources":["../../src/utils/SortingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,4BAA4B,gCAAiC,MAAM,wBAa/E,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseAndValidateOrderOptions = void 0;
4
+ const parseAndValidateOrderOptions = (order) => {
5
+ const orderPairs = order.split(',').map((pair) => pair.trim().split('.'));
6
+ const orderOptions = {};
7
+ orderPairs.forEach(([field, direction]) => {
8
+ const dir = direction.toUpperCase();
9
+ if (dir !== 'ASC' && dir !== 'DESC') {
10
+ throw new Error(`Invalid order direction: '${direction}'. Must be 'asc' or 'desc'.`);
11
+ }
12
+ ;
13
+ orderOptions[field] = dir;
14
+ });
15
+ return orderOptions;
16
+ };
17
+ exports.parseAndValidateOrderOptions = parseAndValidateOrderOptions;
18
+ //# sourceMappingURL=SortingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortingUtils.js","sourceRoot":"","sources":["../../src/utils/SortingUtils.ts"],"names":[],"mappings":";;;AAEO,MAAM,4BAA4B,GAAG,CAAuB,KAAa,EAAuB,EAAE;IACvG,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACzE,MAAM,YAAY,GAAwB,EAAE,CAAA;IAE5C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QACnC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,6BAA6B,CAAC,CAAA;SACrF;QACD,CAAC;QAAC,YAAoB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAbY,QAAA,4BAA4B,gCAaxC"}
@@ -0,0 +1,7 @@
1
+ import { AddCredentialArgs } from '../../types/digitalCredential/IAbstractDigitalCredentialStore';
2
+ import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity';
3
+ import { DigitalCredential, NonPersistedDigitalCredential } from '../../types/digitalCredential/digitalCredential';
4
+ export declare const nonPersistedDigitalCredentialEntityFromAddArgs: (addCredentialArgs: AddCredentialArgs) => NonPersistedDigitalCredential;
5
+ export declare const digitalCredentialFrom: (credentialEntity: DigitalCredentialEntity) => DigitalCredential;
6
+ export declare const digitalCredentialsFrom: (credentialEntities: Array<DigitalCredentialEntity>) => DigitalCredential[];
7
+ //# sourceMappingURL=MappingUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAA;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAA;AAWlG,OAAO,EAGL,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,iDAAiD,CAAA;AAqExD,eAAO,MAAM,8CAA8C,sBAAuB,iBAAiB,KAAG,6BAyBrG,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAAsB,uBAAuB,KAAG,iBAIjF,CAAA;AAED,eAAO,MAAM,sBAAsB,uBAAwB,MAAM,uBAAuB,CAAC,KAAG,iBAAiB,EAE5G,CAAA"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.digitalCredentialsFrom = exports.digitalCredentialFrom = exports.nonPersistedDigitalCredentialEntityFromAddArgs = void 0;
4
+ const ssi_types_1 = require("@sphereon/ssi-types");
5
+ const digitalCredential_1 = require("../../types/digitalCredential/digitalCredential");
6
+ const utils_1 = require("@veramo/utils");
7
+ function determineDocumentType(raw) {
8
+ const rawDocument = parseRawDocument(raw);
9
+ if (!rawDocument) {
10
+ throw new Error(`Couldn't parse the credential: ${raw}`);
11
+ }
12
+ const hasProof = ssi_types_1.CredentialMapper.hasProof(rawDocument);
13
+ const isCredential = ssi_types_1.CredentialMapper.isCredential(rawDocument);
14
+ const isPresentation = ssi_types_1.CredentialMapper.isPresentation(rawDocument);
15
+ if (isCredential) {
16
+ return hasProof ? digitalCredential_1.DocumentType.VC : digitalCredential_1.DocumentType.C;
17
+ }
18
+ else if (isPresentation) {
19
+ return hasProof ? digitalCredential_1.DocumentType.VP : digitalCredential_1.DocumentType.P;
20
+ }
21
+ throw new Error(`Couldn't determine the type of the credential: ${raw}`);
22
+ }
23
+ function parseRawDocument(raw) {
24
+ if (ssi_types_1.CredentialMapper.isJwtEncoded(raw) || ssi_types_1.CredentialMapper.isSdJwtEncoded(raw)) {
25
+ return raw;
26
+ }
27
+ try {
28
+ return JSON.parse(raw);
29
+ }
30
+ catch (e) {
31
+ throw new Error(`Can't parse the raw credential: ${raw}`);
32
+ }
33
+ }
34
+ function determineCredentialDocumentFormat(documentFormat) {
35
+ switch (documentFormat) {
36
+ case 1 /* DocumentFormat.JSONLD */:
37
+ return digitalCredential_1.CredentialDocumentFormat.JSON_LD;
38
+ case 0 /* DocumentFormat.JWT */:
39
+ return digitalCredential_1.CredentialDocumentFormat.JWT;
40
+ case 2 /* DocumentFormat.SD_JWT_VC */:
41
+ return digitalCredential_1.CredentialDocumentFormat.SD_JWT;
42
+ default:
43
+ throw new Error(`Not supported document format: ${documentFormat}`);
44
+ }
45
+ }
46
+ function getValidUntil(uniformDocument) {
47
+ if ('expirationDate' in uniformDocument) {
48
+ return new Date(uniformDocument.expirationDate);
49
+ }
50
+ else if ('validUntil' in uniformDocument) {
51
+ return new Date(uniformDocument.validUntil);
52
+ }
53
+ else if ('exp' in uniformDocument) {
54
+ return new Date(uniformDocument.exp);
55
+ }
56
+ return undefined;
57
+ }
58
+ function getValidFrom(uniformDocument) {
59
+ if ('issuanceDate' in uniformDocument) {
60
+ return new Date(uniformDocument.issuanceDate);
61
+ }
62
+ else if ('validFrom' in uniformDocument) {
63
+ return new Date(uniformDocument['validFrom']);
64
+ }
65
+ else if ('nbf' in uniformDocument) {
66
+ return new Date(uniformDocument['nbf'] * 1000);
67
+ }
68
+ else if ('iat' in uniformDocument) {
69
+ return new Date(uniformDocument['iat'] * 1000);
70
+ }
71
+ return undefined;
72
+ }
73
+ const nonPersistedDigitalCredentialEntityFromAddArgs = (addCredentialArgs) => {
74
+ var _a;
75
+ const documentType = determineDocumentType(addCredentialArgs.rawDocument);
76
+ const documentFormat = ssi_types_1.CredentialMapper.detectDocumentType(addCredentialArgs.rawDocument);
77
+ if (documentFormat === 2 /* DocumentFormat.SD_JWT_VC */ && !((_a = addCredentialArgs.opts) === null || _a === void 0 ? void 0 : _a.hasher)) {
78
+ throw new Error('No hasher function is provided for SD_JWT credential.');
79
+ }
80
+ const uniformDocument = documentFormat === 2 /* DocumentFormat.SD_JWT_VC */
81
+ ? (0, ssi_types_1.decodeSdJwtVc)(addCredentialArgs.rawDocument, addCredentialArgs.opts.hasher).decodedPayload
82
+ : documentType === digitalCredential_1.DocumentType.VC || documentType === digitalCredential_1.DocumentType.C
83
+ ? ssi_types_1.CredentialMapper.toUniformCredential(addCredentialArgs.rawDocument)
84
+ : ssi_types_1.CredentialMapper.toUniformPresentation(addCredentialArgs.rawDocument);
85
+ const validFrom = getValidFrom(uniformDocument);
86
+ const validUntil = getValidUntil(uniformDocument);
87
+ return Object.assign(Object.assign({}, addCredentialArgs), { documentType, documentFormat: determineCredentialDocumentFormat(documentFormat), createdAt: new Date(), hash: (0, utils_1.computeEntryHash)(addCredentialArgs.rawDocument), uniformDocument: JSON.stringify(uniformDocument), validFrom,
88
+ validUntil, lastUpdatedAt: new Date() });
89
+ };
90
+ exports.nonPersistedDigitalCredentialEntityFromAddArgs = nonPersistedDigitalCredentialEntityFromAddArgs;
91
+ const digitalCredentialFrom = (credentialEntity) => {
92
+ return Object.assign({}, credentialEntity);
93
+ };
94
+ exports.digitalCredentialFrom = digitalCredentialFrom;
95
+ const digitalCredentialsFrom = (credentialEntities) => {
96
+ return credentialEntities.map((credentialEntity) => (0, exports.digitalCredentialFrom)(credentialEntity));
97
+ };
98
+ exports.digitalCredentialsFrom = digitalCredentialsFrom;
99
+ //# sourceMappingURL=MappingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { DeleteExpiredStateArgs, DeleteStateArgs, GetActiveStateArgs, GetStatesArgs, SaveStateArgs, State } from '../types';
2
+ export declare abstract class IAbstractXStateStore {
3
+ abstract saveState(state: SaveStateArgs): Promise<State>;
4
+ abstract getActiveState(args: GetActiveStateArgs): Promise<State>;
5
+ abstract getStates(args?: GetStatesArgs): Promise<Array<State>>;
6
+ abstract deleteState(args: DeleteStateArgs): Promise<boolean>;
7
+ abstract deleteExpiredStates(args: DeleteExpiredStateArgs): Promise<boolean>;
8
+ }
9
+ //# sourceMappingURL=IAbstractXStateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractXStateStore.d.ts","sourceRoot":"","sources":["../../src/xstate/IAbstractXStateStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAE3H,8BAAsB,oBAAoB;IACxC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IACxD,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IACjE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7D,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;CAC7E"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IAbstractXStateStore = void 0;
4
+ class IAbstractXStateStore {
5
+ }
6
+ exports.IAbstractXStateStore = IAbstractXStateStore;
7
+ //# sourceMappingURL=IAbstractXStateStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractXStateStore.js","sourceRoot":"","sources":["../../src/xstate/IAbstractXStateStore.ts"],"names":[],"mappings":";;;AAEA,MAAsB,oBAAoB;CAMzC;AAND,oDAMC"}
@@ -0,0 +1,17 @@
1
+ import { OrPromise } from '@sphereon/ssi-types';
2
+ import { DataSource } from 'typeorm';
3
+ import { StateEntity } from '../entities/xstate/StateEntity';
4
+ import { DeleteExpiredStateArgs, DeleteStateArgs, GetActiveStateArgs, GetStatesArgs, SaveStateArgs, State } from '../types';
5
+ import { IAbstractXStateStore } from './IAbstractXStateStore';
6
+ export declare class XStateStore extends IAbstractXStateStore {
7
+ private readonly dbConnection;
8
+ constructor(dbConnection: OrPromise<DataSource>);
9
+ saveState(state: SaveStateArgs): Promise<State>;
10
+ getActiveState(args: GetActiveStateArgs): Promise<State>;
11
+ getStates(args?: GetStatesArgs): Promise<Array<State>>;
12
+ deleteState(args: DeleteStateArgs): Promise<boolean>;
13
+ deleteExpiredStates(args: DeleteExpiredStateArgs): Promise<boolean>;
14
+ static stateFrom: (stateEntity: StateEntity) => State;
15
+ static stateEntityFrom: (state: State | SaveStateArgs) => StateEntity;
16
+ }
17
+ //# sourceMappingURL=XStateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XStateStore.d.ts","sourceRoot":"","sources":["../../src/xstate/XStateStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAY,UAAU,EAA8B,MAAM,SAAS,CAAA;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAC3H,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,qBAAa,WAAY,SAAQ,oBAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;gBAExC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;IAKzC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IAM/C,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA+BxD,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAUtD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAepD,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAazE,OAAc,SAAS,gBAAiB,WAAW,KAAG,KAAK,CAK1D;IAED,OAAc,eAAe,UAAW,KAAK,GAAG,aAAa,KAAG,WAAW,CAK1E;CACF"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.XStateStore = void 0;
16
+ const debug_1 = __importDefault(require("debug"));
17
+ const typeorm_1 = require("typeorm");
18
+ const StateEntity_1 = require("../entities/xstate/StateEntity");
19
+ const IAbstractXStateStore_1 = require("./IAbstractXStateStore");
20
+ const debug = (0, debug_1.default)('sphereon:ssi-sdk:xstate');
21
+ class XStateStore extends IAbstractXStateStore_1.IAbstractXStateStore {
22
+ constructor(dbConnection) {
23
+ super();
24
+ this.dbConnection = dbConnection;
25
+ }
26
+ saveState(state) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const connection = yield this.dbConnection;
29
+ debug(`Executing saveState with state: ${JSON.stringify(state)}`);
30
+ return connection.getRepository(StateEntity_1.StateEntity).save(XStateStore.stateEntityFrom(state));
31
+ });
32
+ }
33
+ getActiveState(args) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const { tenantId, machineType } = args;
36
+ const connection = yield this.dbConnection;
37
+ debug(`Executing getActiveState query with machineType: ${machineType}, tenantId: ${tenantId}`);
38
+ const queryBuilder = connection
39
+ .getRepository(StateEntity_1.StateEntity)
40
+ .createQueryBuilder('state')
41
+ .where('state.completedAt IS NULL')
42
+ .andWhere(new typeorm_1.Brackets((qb) => {
43
+ qb.where('state.expiresAt IS NULL').orWhere('state.expiresAt > :now', { now: new Date() });
44
+ }))
45
+ .orderBy('state.updatedAt', 'DESC');
46
+ if (tenantId) {
47
+ queryBuilder.andWhere('state.tenantId = :tenantId', { tenantId });
48
+ }
49
+ if (machineType) {
50
+ queryBuilder.andWhere('state.machineType = :machineType', { machineType });
51
+ }
52
+ const result = yield queryBuilder.getOne();
53
+ if (!result) {
54
+ throw new Error(`No active state found for machineType: ${machineType}, tenantId: ${tenantId}`);
55
+ }
56
+ return XStateStore.stateFrom(result);
57
+ });
58
+ }
59
+ getStates(args) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const connection = yield this.dbConnection;
62
+ debug('Getting states', args);
63
+ const result = yield connection.getRepository(StateEntity_1.StateEntity).find(Object.assign({}, ((args === null || args === void 0 ? void 0 : args.filter) && { where: args === null || args === void 0 ? void 0 : args.filter })));
64
+ return result.map((event) => XStateStore.stateFrom(event));
65
+ });
66
+ }
67
+ deleteState(args) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ if (!args.id) {
70
+ throw new Error('No id parameter is provided.');
71
+ }
72
+ try {
73
+ const connection = yield this.dbConnection;
74
+ debug(`Executing deleteState query with id: ${args.id}`);
75
+ const result = yield connection.getRepository(StateEntity_1.StateEntity).delete(args.id);
76
+ return result.affected != null && result.affected > 0;
77
+ }
78
+ catch (error) {
79
+ debug(`Error deleting state: ${error}`);
80
+ return false;
81
+ }
82
+ });
83
+ }
84
+ deleteExpiredStates(args) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ try {
87
+ const connection = yield this.dbConnection;
88
+ debug(`Executing deleteExpiredStates query with params: ${JSON.stringify(args)}`);
89
+ const deleteCriteria = Object.assign({ expiresAt: (0, typeorm_1.LessThan)(new Date()) }, (args.machineType && { type: args.machineType }));
90
+ const result = yield connection.getRepository(StateEntity_1.StateEntity).delete(deleteCriteria);
91
+ return result.affected != null && result.affected > 0;
92
+ }
93
+ catch (error) {
94
+ debug(`Error deleting state: ${error}`);
95
+ return false;
96
+ }
97
+ });
98
+ }
99
+ }
100
+ exports.XStateStore = XStateStore;
101
+ XStateStore.stateFrom = (stateEntity) => {
102
+ return Object.assign(Object.assign({}, stateEntity), { state: JSON.parse(stateEntity.state) });
103
+ };
104
+ XStateStore.stateEntityFrom = (state) => {
105
+ const entity = new StateEntity_1.StateEntity();
106
+ Object.assign(entity, state);
107
+ entity.state = JSON.stringify(state.state);
108
+ return entity;
109
+ };
110
+ //# sourceMappingURL=XStateStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XStateStore.js","sourceRoot":"","sources":["../../src/xstate/XStateStore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.data-store",
3
- "version": "0.19.1-next.2+9c7c9efc",
3
+ "version": "0.19.1-unstable.63+a98fb8b0",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,9 +13,10 @@
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.19.1-next.2+9c7c9efc",
17
- "@sphereon/ssi-types": "0.19.1-next.2+9c7c9efc",
16
+ "@sphereon/ssi-sdk.core": "0.19.1-unstable.63+a98fb8b0",
17
+ "@sphereon/ssi-types": "0.19.1-unstable.63+a98fb8b0",
18
18
  "@veramo/core": "4.2.0",
19
+ "@veramo/utils": "4.2.0",
19
20
  "class-validator": "^0.14.0",
20
21
  "debug": "^4.3.4",
21
22
  "typeorm": "^0.3.12"
@@ -43,5 +44,5 @@
43
44
  "PostgreSQL",
44
45
  "Contact Store"
45
46
  ],
46
- "gitHead": "9c7c9efc9c766ab43a01760bc5cedf3abea4c769"
47
+ "gitHead": "a98fb8b0055b8fcb78c3865770014c00ddd0dc2a"
47
48
  }