@truvity/sdk 0.28.9 → 0.30.7
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.
- package/api/resources/apiKeys/client/Client.js +9 -9
- package/api/resources/apiKeys/client/Client.js.map +1 -1
- package/api/resources/credentials/client/Client.js +12 -12
- package/api/resources/credentials/client/Client.js.map +1 -1
- package/api/resources/desk/client/Client.js +2 -2
- package/api/resources/desk/client/Client.js.map +1 -1
- package/api/resources/didcommMessages/client/Client.js +9 -9
- package/api/resources/didcommMessages/client/Client.js.map +1 -1
- package/api/resources/dids/client/Client.js +1 -1
- package/api/resources/dids/client/Client.js.map +1 -1
- package/api/resources/drafts/client/Client.js +12 -12
- package/api/resources/drafts/client/Client.js.map +1 -1
- package/api/resources/files/client/Client.js +12 -12
- package/api/resources/files/client/Client.js.map +1 -1
- package/api/resources/gdpr/client/Client.js +1 -1
- package/api/resources/gdpr/client/Client.js.map +1 -1
- package/api/resources/keys/client/Client.js +13 -13
- package/api/resources/keys/client/Client.js.map +1 -1
- package/api/resources/presentations/client/Client.js +14 -14
- package/api/resources/presentations/client/Client.js.map +1 -1
- package/api/types/Credential.d.ts +1 -1
- package/api/types/Credential.d.ts.map +1 -1
- package/api/types/Credential.js.map +1 -1
- package/api/types/File_.d.ts +1 -1
- package/api/types/File_.d.ts.map +1 -1
- package/api/types/File_.js.map +1 -1
- package/api/types/Presentation.d.ts +1 -1
- package/api/types/Presentation.d.ts.map +1 -1
- package/api/types/Presentation.js.map +1 -1
- package/documents/credential/claims.d.ts +29 -0
- package/documents/credential/claims.d.ts.map +1 -0
- package/documents/credential/claims.js +228 -0
- package/documents/credential/claims.js.map +1 -0
- package/documents/credential/claims.spec.d.ts +2 -0
- package/documents/credential/claims.spec.d.ts.map +1 -0
- package/documents/credential/{document.spec.js → claims.spec.js} +77 -129
- package/documents/credential/claims.spec.js.map +1 -0
- package/documents/credential/document/vcdm.d.ts +50 -0
- package/documents/credential/document/vcdm.d.ts.map +1 -0
- package/documents/credential/document/vcdm.js +76 -0
- package/documents/credential/document/vcdm.js.map +1 -0
- package/documents/credential/document.d.ts +6 -24
- package/documents/credential/document.d.ts.map +1 -1
- package/documents/credential/document.js +15 -137
- package/documents/credential/document.js.map +1 -1
- package/documents/credential/draft.d.ts +7 -5
- package/documents/credential/draft.d.ts.map +1 -1
- package/documents/credential/draft.js +15 -14
- package/documents/credential/draft.js.map +1 -1
- package/documents/credential/flavor/vcdm1_1.d.ts +76 -0
- package/documents/credential/flavor/vcdm1_1.d.ts.map +1 -0
- package/documents/credential/flavor/vcdm1_1.js +148 -0
- package/documents/credential/flavor/vcdm1_1.js.map +1 -0
- package/documents/credential/flavor/vcdm2_0.d.ts +83 -0
- package/documents/credential/flavor/vcdm2_0.d.ts.map +1 -0
- package/documents/credential/flavor/vcdm2_0.js +76 -0
- package/documents/credential/flavor/vcdm2_0.js.map +1 -0
- package/documents/credential/flavor.d.ts +8 -32
- package/documents/credential/flavor.d.ts.map +1 -1
- package/documents/credential/flavor.js +22 -99
- package/documents/credential/flavor.js.map +1 -1
- package/documents/credential/flavor.spec.js +31 -102
- package/documents/credential/flavor.spec.js.map +1 -1
- package/documents/credential/testdata/udt.d.ts +53 -0
- package/documents/credential/testdata/udt.d.ts.map +1 -0
- package/documents/credential/testdata/udt.js +243 -0
- package/documents/credential/testdata/udt.js.map +1 -0
- package/documents/credential/types.d.ts +39 -0
- package/documents/credential/types.d.ts.map +1 -0
- package/documents/credential/types.js +3 -0
- package/documents/credential/types.js.map +1 -0
- package/documents/credential/unknown.d.ts +5 -5
- package/documents/credential/unknown.d.ts.map +1 -1
- package/documents/credential/unknown.js +3 -4
- package/documents/credential/unknown.js.map +1 -1
- package/documents/credential/unknown.spec.js +12 -9
- package/documents/credential/unknown.spec.js.map +1 -1
- package/documents/credential/{baseVerifiableCredential.d.ts → verifiable.d.ts} +8 -5
- package/documents/credential/verifiable.d.ts.map +1 -0
- package/documents/credential/{baseVerifiableCredential.js → verifiable.js} +11 -7
- package/documents/credential/verifiable.js.map +1 -0
- package/documents/credential/with-claims.d.ts +15 -0
- package/documents/credential/with-claims.d.ts.map +1 -0
- package/documents/credential/{issued.js → with-claims.js} +12 -12
- package/documents/credential/with-claims.js.map +1 -0
- package/documents/credential.d.ts +13 -15
- package/documents/credential.d.ts.map +1 -1
- package/documents/credential.js +21 -102
- package/documents/credential.js.map +1 -1
- package/documents/index.d.ts +1 -0
- package/documents/index.d.ts.map +1 -1
- package/documents/index.js +1 -0
- package/documents/index.js.map +1 -1
- package/documents/models.d.ts +13 -13
- package/documents/models.d.ts.map +1 -1
- package/documents/models.js +4 -4
- package/documents/models.js.map +1 -1
- package/documents/presentation/issued.d.ts +1 -1
- package/documents/presentation/issued.d.ts.map +1 -1
- package/documents/presentation/issued.js +2 -2
- package/documents/presentation/issued.js.map +1 -1
- package/documents/presentation.d.ts +5 -5
- package/documents/presentation.d.ts.map +1 -1
- package/documents/presentation.js +4 -4
- package/documents/presentation.js.map +1 -1
- package/documents/types.d.ts +12 -32
- package/documents/types.d.ts.map +1 -1
- package/documents/types.js +25 -1
- package/documents/types.js.map +1 -1
- package/documents/utils/converters.d.ts +1 -1
- package/documents/utils/converters.d.ts.map +1 -1
- package/documents/utils/converters.js +1 -1
- package/documents/utils/converters.js.map +1 -1
- package/documents/utils/idempotency.d.ts +2 -0
- package/documents/utils/idempotency.d.ts.map +1 -0
- package/documents/utils/idempotency.js +9 -0
- package/documents/utils/idempotency.js.map +1 -0
- package/documents/utils/stream.d.ts +1 -0
- package/documents/utils/stream.d.ts.map +1 -1
- package/documents/utils/stream.js +3 -2
- package/documents/utils/stream.js.map +1 -1
- package/package.json +1 -1
- package/documents/credential/baseVerifiableCredential.d.ts.map +0 -1
- package/documents/credential/baseVerifiableCredential.js.map +0 -1
- package/documents/credential/document.spec.d.ts +0 -7
- package/documents/credential/document.spec.d.ts.map +0 -1
- package/documents/credential/document.spec.js.map +0 -1
- package/documents/credential/issued.d.ts +0 -13
- package/documents/credential/issued.d.ts.map +0 -1
- package/documents/credential/issued.js.map +0 -1
- package/documents/credential.spec.d.ts +0 -8
- package/documents/credential.spec.d.ts.map +0 -1
- package/documents/credential.spec.js +0 -246
- package/documents/credential.spec.js.map +0 -1
- package/documents/guards.d.ts +0 -6
- package/documents/guards.d.ts.map +0 -1
- package/documents/guards.js +0 -32
- package/documents/guards.js.map +0 -1
- package/documents/helpers.d.ts +0 -2
- package/documents/helpers.d.ts.map +0 -1
- package/documents/helpers.js +0 -9
- package/documents/helpers.js.map +0 -1
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -18,122 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
18
9
|
});
|
|
19
10
|
};
|
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.TestCredentialDocument = void 0;
|
|
22
|
-
const decorators_1 = require("../decorators");
|
|
23
12
|
const models_1 = require("../models");
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const NAMESPACE = 'https://docs.truvity.com/vocab';
|
|
27
|
-
let Foo = class Foo {
|
|
28
|
-
};
|
|
29
|
-
__decorate([
|
|
30
|
-
decorators_1.VcNotEmptyClaim,
|
|
31
|
-
__metadata("design:type", String)
|
|
32
|
-
], Foo.prototype, "foo", void 0);
|
|
33
|
-
Foo = __decorate([
|
|
34
|
-
(0, decorators_1.VcContext)({ name: 'Foo', namespace: NAMESPACE })
|
|
35
|
-
], Foo);
|
|
36
|
-
let Bar = class Bar {
|
|
37
|
-
};
|
|
38
|
-
__decorate([
|
|
39
|
-
decorators_1.VcNotEmptyClaim,
|
|
40
|
-
__metadata("design:type", String)
|
|
41
|
-
], Bar.prototype, "bar", void 0);
|
|
42
|
-
Bar = __decorate([
|
|
43
|
-
(0, decorators_1.VcContext)({ name: 'Bar', namespace: NAMESPACE })
|
|
44
|
-
], Bar);
|
|
45
|
-
let NestedStruct = class NestedStruct {
|
|
46
|
-
};
|
|
47
|
-
__decorate([
|
|
48
|
-
decorators_1.VcLinkedCredentialClaim,
|
|
49
|
-
__metadata("design:type", models_1.LinkedCredential)
|
|
50
|
-
], NestedStruct.prototype, "linkedProp", void 0);
|
|
51
|
-
NestedStruct = __decorate([
|
|
52
|
-
(0, decorators_1.VcContext)({ name: 'NestedStruct', namespace: NAMESPACE })
|
|
53
|
-
], NestedStruct);
|
|
54
|
-
let Baz = class Baz {
|
|
55
|
-
};
|
|
56
|
-
__decorate([
|
|
57
|
-
decorators_1.VcLinkedCredentialClaim,
|
|
58
|
-
__metadata("design:type", models_1.LinkedCredential)
|
|
59
|
-
], Baz.prototype, "field1", void 0);
|
|
60
|
-
__decorate([
|
|
61
|
-
decorators_1.VcLinkedFileClaim,
|
|
62
|
-
decorators_1.VcNotEmptyClaim,
|
|
63
|
-
__metadata("design:type", models_1.LinkedFile)
|
|
64
|
-
], Baz.prototype, "field2", void 0);
|
|
65
|
-
__decorate([
|
|
66
|
-
decorators_1.VcNotEmptyClaim,
|
|
67
|
-
__metadata("design:type", Bar)
|
|
68
|
-
], Baz.prototype, "field3", void 0);
|
|
69
|
-
__decorate([
|
|
70
|
-
(0, decorators_1.VcStringEnumClaim)([
|
|
71
|
-
{ value: 'option1', title: 'Option 1' },
|
|
72
|
-
{ value: 'option2', title: 'Option 2' },
|
|
73
|
-
]),
|
|
74
|
-
decorators_1.VcNotEmptyClaim,
|
|
75
|
-
__metadata("design:type", String)
|
|
76
|
-
], Baz.prototype, "field4", void 0);
|
|
77
|
-
__decorate([
|
|
78
|
-
decorators_1.VcLinkedCredentialClaim,
|
|
79
|
-
decorators_1.VcNotEmptyClaim,
|
|
80
|
-
__metadata("design:type", Array)
|
|
81
|
-
], Baz.prototype, "field5", void 0);
|
|
82
|
-
__decorate([
|
|
83
|
-
decorators_1.VcNotEmptyClaim,
|
|
84
|
-
__metadata("design:type", NestedStruct)
|
|
85
|
-
], Baz.prototype, "field6", void 0);
|
|
86
|
-
__decorate([
|
|
87
|
-
decorators_1.VcNotEmptyClaim,
|
|
88
|
-
__metadata("design:type", models_1.Rfc3339DateTime)
|
|
89
|
-
], Baz.prototype, "field7", void 0);
|
|
90
|
-
__decorate([
|
|
91
|
-
decorators_1.VcNotEmptyClaim,
|
|
92
|
-
__metadata("design:type", models_1.Rfc3339Date)
|
|
93
|
-
], Baz.prototype, "field8", void 0);
|
|
94
|
-
__decorate([
|
|
95
|
-
(0, decorators_1.VcArrayClaim)(String),
|
|
96
|
-
__metadata("design:type", Array)
|
|
97
|
-
], Baz.prototype, "field11_1", void 0);
|
|
98
|
-
__decorate([
|
|
99
|
-
(0, decorators_1.VcArrayClaim)(String),
|
|
100
|
-
decorators_1.VcClaim,
|
|
101
|
-
__metadata("design:type", Array)
|
|
102
|
-
], Baz.prototype, "field11_2", void 0);
|
|
103
|
-
__decorate([
|
|
104
|
-
decorators_1.VcClaim,
|
|
105
|
-
(0, decorators_1.VcArrayClaim)(String),
|
|
106
|
-
__metadata("design:type", Array)
|
|
107
|
-
], Baz.prototype, "field11_3", void 0);
|
|
108
|
-
__decorate([
|
|
109
|
-
(0, decorators_1.VcArrayClaim)(Bar),
|
|
110
|
-
__metadata("design:type", Array)
|
|
111
|
-
], Baz.prototype, "field12_1", void 0);
|
|
112
|
-
__decorate([
|
|
113
|
-
(0, decorators_1.VcArrayClaim)(Bar),
|
|
114
|
-
decorators_1.VcClaim,
|
|
115
|
-
__metadata("design:type", Array)
|
|
116
|
-
], Baz.prototype, "field12_2", void 0);
|
|
117
|
-
__decorate([
|
|
118
|
-
decorators_1.VcClaim,
|
|
119
|
-
(0, decorators_1.VcArrayClaim)(Bar),
|
|
120
|
-
__metadata("design:type", Array)
|
|
121
|
-
], Baz.prototype, "field12_3", void 0);
|
|
122
|
-
Baz = __decorate([
|
|
123
|
-
(0, decorators_1.VcContext)({ name: 'Baz', namespace: NAMESPACE })
|
|
124
|
-
], Baz);
|
|
13
|
+
const claims_1 = require("./claims");
|
|
14
|
+
const udt_1 = require("./testdata/udt");
|
|
125
15
|
const createDummyApiClient = () => ({});
|
|
126
|
-
|
|
127
|
-
constructor(model) {
|
|
128
|
-
super(createDummyApiClient(), new flavor_1.CredentialFlavor(model));
|
|
129
|
-
this.model = model;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
exports.TestCredentialDocument = TestCredentialDocument;
|
|
133
|
-
describe('CredentialDocument', () => {
|
|
16
|
+
describe('UdtClaims', () => {
|
|
134
17
|
it('should enhance linkable fields with corresponding class instances', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
135
18
|
var _a, _b, _c, _d, _e, _f;
|
|
136
|
-
const
|
|
19
|
+
const claims = new claims_1.UdtClaims(createDummyApiClient(), udt_1.Baz);
|
|
137
20
|
const apiReceivedClaims = {
|
|
138
21
|
field1: {
|
|
139
22
|
id: 'urn:credential:111',
|
|
@@ -166,7 +49,7 @@ describe('CredentialDocument', () => {
|
|
|
166
49
|
field12_2: [{ bar: 'field12_2_value0' }],
|
|
167
50
|
field12_3: [{ bar: 'field12_3_value0' }],
|
|
168
51
|
};
|
|
169
|
-
const enhancedClaims =
|
|
52
|
+
const enhancedClaims = claims.unmarshalValuesToCredential(apiReceivedClaims);
|
|
170
53
|
expect(enhancedClaims.field1).toBeInstanceOf(models_1.LinkedCredential);
|
|
171
54
|
expect((_a = enhancedClaims.field1) === null || _a === void 0 ? void 0 : _a.id).toBe('urn:credential:111');
|
|
172
55
|
expect((_b = enhancedClaims.field1) === null || _b === void 0 ? void 0 : _b.type).toBe('LinkedCredential');
|
|
@@ -195,8 +78,8 @@ describe('CredentialDocument', () => {
|
|
|
195
78
|
expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);
|
|
196
79
|
}));
|
|
197
80
|
it('should properly serialize linked entities', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
198
|
-
var _g
|
|
199
|
-
const
|
|
81
|
+
var _g;
|
|
82
|
+
const claims = new claims_1.UdtClaims(createDummyApiClient(), udt_1.Baz);
|
|
200
83
|
const userSentClaims = {
|
|
201
84
|
field1: {
|
|
202
85
|
id: '111',
|
|
@@ -224,12 +107,12 @@ describe('CredentialDocument', () => {
|
|
|
224
107
|
field12_2: [{ bar: 'field12_2_value0' }],
|
|
225
108
|
field12_3: [{ bar: 'field12_3_value0' }],
|
|
226
109
|
};
|
|
227
|
-
const enhancedClaims =
|
|
228
|
-
expect(
|
|
229
|
-
expect(
|
|
110
|
+
const enhancedClaims = claims.marshalValues(userSentClaims);
|
|
111
|
+
expect(enhancedClaims.field1.type).toBe('LinkedCredential');
|
|
112
|
+
expect(enhancedClaims.field1.digestMultibase).toBe('digestMultibase');
|
|
230
113
|
expect(enhancedClaims.field2.type).toBe('LinkedFile');
|
|
231
114
|
expect(enhancedClaims.field5[0].type).toBe('LinkedCredential');
|
|
232
|
-
expect((
|
|
115
|
+
expect((_g = enhancedClaims.field6.linkedProp) === null || _g === void 0 ? void 0 : _g.type).toBe('LinkedCredential');
|
|
233
116
|
expect(enhancedClaims.field7).toBeInstanceOf(models_1.Rfc3339DateTime);
|
|
234
117
|
expect(enhancedClaims.field8).toBeInstanceOf(models_1.Rfc3339Date);
|
|
235
118
|
expect(enhancedClaims.field11_1).toEqual(['field11_1_value0']);
|
|
@@ -239,5 +122,70 @@ describe('CredentialDocument', () => {
|
|
|
239
122
|
expect(enhancedClaims.field12_2).toEqual([{ bar: 'field12_2_value0' }]);
|
|
240
123
|
expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);
|
|
241
124
|
}));
|
|
125
|
+
it('should map registered claims to api', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
126
|
+
const claims = new claims_1.UdtClaims(createDummyApiClient(), udt_1.Qux);
|
|
127
|
+
const schema = claims.getDraftSchema();
|
|
128
|
+
expect(schema).toEqual({
|
|
129
|
+
fields: [
|
|
130
|
+
{ name: 'field1_1', kind: 'LINK', notEmpty: true },
|
|
131
|
+
{ name: 'field1_2', kind: 'LINK', notEmpty: true },
|
|
132
|
+
{ name: 'field1_3', kind: 'LINK' },
|
|
133
|
+
{ name: 'field1_4', kind: 'LINK' },
|
|
134
|
+
{ name: 'field2_1', notEmpty: true, kind: 'FILE' },
|
|
135
|
+
{ name: 'field2_2', notEmpty: true, kind: 'FILE' },
|
|
136
|
+
{
|
|
137
|
+
name: 'field3_1',
|
|
138
|
+
notEmpty: true,
|
|
139
|
+
kind: 'STRING',
|
|
140
|
+
enum: [
|
|
141
|
+
{ value: 'option1', title: 'Option 1' },
|
|
142
|
+
{ value: 'option2', title: 'Option 2' },
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'field3_2',
|
|
147
|
+
notEmpty: true,
|
|
148
|
+
kind: 'STRING',
|
|
149
|
+
enum: [
|
|
150
|
+
{ value: 'option1', title: 'Option 1' },
|
|
151
|
+
{ value: 'option2', title: 'Option 2' },
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{ name: 'field4_1', kind: 'NUMBER', notEmpty: true, isArray: true },
|
|
155
|
+
{ name: 'field4_2', kind: 'NUMBER', notEmpty: true, isArray: true },
|
|
156
|
+
{ name: 'field5_1', kind: 'NUMBER', notEmpty: true, title: 'Field title' },
|
|
157
|
+
{ name: 'field5_2', kind: 'NUMBER', notEmpty: true, title: 'Field title' },
|
|
158
|
+
{ name: 'field6_1', kind: 'NUMBER', notEmpty: true },
|
|
159
|
+
{ name: 'field6_2', kind: 'NUMBER', notEmpty: true },
|
|
160
|
+
{ name: 'field7_1', kind: 'DATETIME', notEmpty: true, isArray: true },
|
|
161
|
+
{ name: 'field7_2', kind: 'DATETIME', notEmpty: true, isArray: true },
|
|
162
|
+
{ name: 'field8_1', kind: 'DATE', notEmpty: true, isArray: true },
|
|
163
|
+
{ name: 'field8_2', kind: 'DATE', notEmpty: true, isArray: true },
|
|
164
|
+
{
|
|
165
|
+
name: 'field9',
|
|
166
|
+
notEmpty: true,
|
|
167
|
+
kind: 'STRUCT',
|
|
168
|
+
fields: [{ name: 'bar', notEmpty: true, kind: 'STRING' }],
|
|
169
|
+
vocabNamespace: udt_1.VOCAB_NAMESPACE,
|
|
170
|
+
vocabName: 'Bar',
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'field10',
|
|
174
|
+
title: 'Field 10',
|
|
175
|
+
isArray: true,
|
|
176
|
+
kind: 'STRUCT',
|
|
177
|
+
fields: [{ name: 'bar', notEmpty: true, kind: 'STRING' }],
|
|
178
|
+
vocabNamespace: udt_1.VOCAB_NAMESPACE,
|
|
179
|
+
vocabName: 'Bar',
|
|
180
|
+
},
|
|
181
|
+
{ name: 'field11_1', kind: 'STRING', isArray: true },
|
|
182
|
+
{ name: 'field11_2', kind: 'STRING', isArray: true },
|
|
183
|
+
{ name: 'field11_3', kind: 'STRING', isArray: true },
|
|
184
|
+
],
|
|
185
|
+
vocabNamespace: udt_1.VOCAB_NAMESPACE,
|
|
186
|
+
vocabName: 'Qux',
|
|
187
|
+
vcType: ['BazCredential'],
|
|
188
|
+
});
|
|
189
|
+
}));
|
|
242
190
|
});
|
|
243
|
-
//# sourceMappingURL=
|
|
191
|
+
//# sourceMappingURL=claims.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.spec.js","sourceRoot":"","sources":["../../../src/documents/credential/claims.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,sCAAuF;AAEvF,qCAAqC;AACrC,wCAA2D;AAG3D,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAc,CAAC;AAErD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,mEAAmE,EAAE,GAAS,EAAE;;QAC/E,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,oBAAoB,EAAE,EAAE,SAAG,CAAC,CAAC;QAC1D,MAAM,iBAAiB,GAAS;YAC5B,MAAM,EAAE;gBACJ,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,kBAAkB;gBACxB,eAAe,EAAE,iBAAiB;aACrC;YACD,MAAM,EAAE;gBACJ,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,YAAY;gBAClB,eAAe,EAAE,iBAAiB;aACrC;YACD,MAAM,EAAE;gBACJ,GAAG,EAAE,KAAK;aACb;YACD,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;YAChE,MAAM,EAAE;gBACJ,UAAU,EAAE;oBACR,EAAE,EAAE,oBAAoB;oBACxB,IAAI,EAAE,kBAAkB;oBACxB,eAAe,EAAE,iBAAiB;iBACrC;aACJ;YACD,MAAM,EAAE,IAAI,wBAAe,EAAE,CAAC,MAAM,EAAE;YACtC,MAAM,EAAE,IAAI,oBAAW,EAAE,CAAC,MAAM,EAAE;YAClC,SAAS,EAAE,CAAC,kBAAkB,CAAC;YAC/B,SAAS,EAAE,CAAC,kBAAkB,CAAC;YAC/B,SAAS,EAAE,CAAC,kBAAkB,CAAC;YAC/B,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;YACxC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;YACxC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;SAC3C,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QAE7E,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,yBAAgB,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAA,cAAc,CAAC,MAAM,0CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAA,cAAc,CAAC,MAAM,0CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAA,cAAc,CAAC,MAAM,0CAAE,eAAe,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEvE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,mBAAU,CAAC,CAAC;QACzD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtE,+CAA+C;QAC/C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YAClC,GAAG,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,yBAAgB,CAAC,CAAC;QAElE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,yBAAgB,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAA,cAAc,CAAC,MAAM,CAAC,UAAU,0CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxE,MAAM,CAAC,MAAA,cAAc,CAAC,MAAM,CAAC,UAAU,0CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxE,MAAM,CAAC,MAAA,cAAc,CAAC,MAAM,CAAC,UAAU,0CAAE,eAAe,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAElF,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,wBAAe,CAAC,CAAC;QAC9D,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,oBAAW,CAAC,CAAC;QAE1D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAE/D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAS,EAAE;;QACvD,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,oBAAoB,EAAE,EAAE,SAAG,CAAC,CAAC;QAC1D,MAAM,cAAc,GAA0B;YAC1C,MAAM,EAAE;gBACJ,EAAE,EAAE,KAAK;gBACT,eAAe,EAAE,iBAAiB;aACrC;YACD,MAAM,EAAE;gBACJ,EAAE,EAAE,KAAK;aACZ;YACD,MAAM,EAAE;gBACJ;oBACI,EAAE,EAAE,KAAK;iBACZ;aACJ;YACD,MAAM,EAAE;gBACJ,UAAU,EAAE;oBACR,EAAE,EAAE,KAAK;iBACZ;aACJ;YACD,MAAM,EAAE,IAAI,wBAAe,EAAE;YAC7B,MAAM,EAAE,IAAI,oBAAW,EAAE;YACzB,SAAS,EAAE,CAAC,kBAAkB,CAAC;YAC/B,SAAS,EAAE,CAAC,kBAAkB,CAAC;YAC/B,SAAS,EAAE,CAAC,kBAAkB,CAAC;YAC/B,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;YACxC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;YACxC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;SAC3C,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAE5D,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAA,cAAc,CAAC,MAAM,CAAC,UAAU,0CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAExE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,wBAAe,CAAC,CAAC;QAC9D,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,oBAAW,CAAC,CAAC;QAE1D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAE/D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACjD,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,oBAAoB,EAAE,EAAE,SAAG,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,MAAM,EAAE;gBACJ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAClD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAClD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;gBAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;gBAElC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAClD,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAElD;oBACI,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACF,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;wBACvC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;qBAC1C;iBACJ;gBACD;oBACI,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACF,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;wBACvC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;qBAC1C;iBACJ;gBAED,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBACnE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAEnE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;gBAC1E,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;gBAE1E,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAEpD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBACrE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAErE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBACjE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAEjE;oBACI,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBACzD,cAAc,EAAE,qBAAe;oBAC/B,SAAS,EAAE,KAAK;iBACnB;gBAED;oBACI,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBACzD,cAAc,EAAE,qBAAe;oBAC/B,SAAS,EAAE,KAAK;iBACnB;gBAED,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;gBACpD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;gBACpD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;aACvD;YACD,cAAc,EAAE,qBAAe;YAC/B,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,CAAC,eAAe,CAAC;SAC5B,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { ApiClient, UserUpdateClaims } from '../types';\nimport { LinkedCredential, LinkedFile, Rfc3339Date, Rfc3339DateTime } from '../models';\n\nimport { UdtClaims } from './claims';\nimport { Baz, Qux, VOCAB_NAMESPACE } from './testdata/udt';\nimport { Json } from './types';\n\nconst createDummyApiClient = () => ({}) as ApiClient;\n\ndescribe('UdtClaims', () => {\n it('should enhance linkable fields with corresponding class instances', async () => {\n const claims = new UdtClaims(createDummyApiClient(), Baz);\n const apiReceivedClaims: Json = {\n field1: {\n id: 'urn:credential:111',\n type: 'LinkedCredential',\n digestMultibase: 'digestMultibase',\n },\n field2: {\n id: 'urn:file:222',\n type: 'LinkedFile',\n digestMultibase: 'digestMultibase',\n },\n field3: {\n bar: '333',\n },\n field4: 'option2',\n field5: [{ id: 'urn:credential:111', type: 'LinkedCredential' }],\n field6: {\n linkedProp: {\n id: 'urn:credential:111',\n type: 'LinkedCredential',\n digestMultibase: 'digestMultibase',\n },\n },\n field7: new Rfc3339DateTime().toJSON(),\n field8: new Rfc3339Date().toJSON(),\n field11_1: ['field11_1_value0'],\n field11_2: ['field11_2_value0'],\n field11_3: ['field11_3_value0'],\n field12_1: [{ bar: 'field12_1_value0' }],\n field12_2: [{ bar: 'field12_2_value0' }],\n field12_3: [{ bar: 'field12_3_value0' }],\n };\n const enhancedClaims = claims.unmarshalValuesToCredential(apiReceivedClaims);\n\n expect(enhancedClaims.field1).toBeInstanceOf(LinkedCredential);\n expect(enhancedClaims.field1?.id).toBe('urn:credential:111');\n expect(enhancedClaims.field1?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field1?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field2).toBeInstanceOf(LinkedFile);\n expect(enhancedClaims.field2.id).toBe('urn:file:222');\n expect(enhancedClaims.field2.type).toBe('LinkedFile');\n expect(enhancedClaims.field2.digestMultibase).toBe('digestMultibase');\n\n // Non-linkable fields should be resolved as-is\n expect(enhancedClaims.field3).toEqual({\n bar: '333',\n });\n\n expect(enhancedClaims.field4).toEqual('option2');\n\n expect(enhancedClaims.field5[0]).toBeInstanceOf(LinkedCredential);\n\n expect(enhancedClaims.field6.linkedProp).toBeInstanceOf(LinkedCredential);\n expect(enhancedClaims.field6.linkedProp?.id).toBe('urn:credential:111');\n expect(enhancedClaims.field6.linkedProp?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field6.linkedProp?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field7).toBeInstanceOf(Rfc3339DateTime);\n expect(enhancedClaims.field8).toBeInstanceOf(Rfc3339Date);\n\n expect(enhancedClaims.field11_1).toEqual(['field11_1_value0']);\n expect(enhancedClaims.field11_2).toEqual(['field11_2_value0']);\n expect(enhancedClaims.field11_3).toEqual(['field11_3_value0']);\n\n expect(enhancedClaims.field12_1).toEqual([{ bar: 'field12_1_value0' }]);\n expect(enhancedClaims.field12_2).toEqual([{ bar: 'field12_2_value0' }]);\n expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);\n });\n\n it('should properly serialize linked entities', async () => {\n const claims = new UdtClaims(createDummyApiClient(), Baz);\n const userSentClaims: UserUpdateClaims<Baz> = {\n field1: {\n id: '111',\n digestMultibase: 'digestMultibase',\n },\n field2: {\n id: '222',\n },\n field5: [\n {\n id: '111',\n },\n ],\n field6: {\n linkedProp: {\n id: '111',\n },\n },\n field7: new Rfc3339DateTime(),\n field8: new Rfc3339Date(),\n field11_1: ['field11_1_value0'],\n field11_2: ['field11_2_value0'],\n field11_3: ['field11_3_value0'],\n field12_1: [{ bar: 'field12_1_value0' }],\n field12_2: [{ bar: 'field12_2_value0' }],\n field12_3: [{ bar: 'field12_3_value0' }],\n };\n const enhancedClaims = claims.marshalValues(userSentClaims);\n\n expect(enhancedClaims.field1.type).toBe('LinkedCredential');\n expect(enhancedClaims.field1.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field2.type).toBe('LinkedFile');\n\n expect(enhancedClaims.field5[0].type).toBe('LinkedCredential');\n\n expect(enhancedClaims.field6.linkedProp?.type).toBe('LinkedCredential');\n\n expect(enhancedClaims.field7).toBeInstanceOf(Rfc3339DateTime);\n expect(enhancedClaims.field8).toBeInstanceOf(Rfc3339Date);\n\n expect(enhancedClaims.field11_1).toEqual(['field11_1_value0']);\n expect(enhancedClaims.field11_2).toEqual(['field11_2_value0']);\n expect(enhancedClaims.field11_3).toEqual(['field11_3_value0']);\n\n expect(enhancedClaims.field12_1).toEqual([{ bar: 'field12_1_value0' }]);\n expect(enhancedClaims.field12_2).toEqual([{ bar: 'field12_2_value0' }]);\n expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);\n });\n\n it('should map registered claims to api', async () => {\n const claims = new UdtClaims(createDummyApiClient(), Qux);\n const schema = claims.getDraftSchema();\n\n expect(schema).toEqual({\n fields: [\n { name: 'field1_1', kind: 'LINK', notEmpty: true },\n { name: 'field1_2', kind: 'LINK', notEmpty: true },\n { name: 'field1_3', kind: 'LINK' },\n { name: 'field1_4', kind: 'LINK' },\n\n { name: 'field2_1', notEmpty: true, kind: 'FILE' },\n { name: 'field2_2', notEmpty: true, kind: 'FILE' },\n\n {\n name: 'field3_1',\n notEmpty: true,\n kind: 'STRING',\n enum: [\n { value: 'option1', title: 'Option 1' },\n { value: 'option2', title: 'Option 2' },\n ],\n },\n {\n name: 'field3_2',\n notEmpty: true,\n kind: 'STRING',\n enum: [\n { value: 'option1', title: 'Option 1' },\n { value: 'option2', title: 'Option 2' },\n ],\n },\n\n { name: 'field4_1', kind: 'NUMBER', notEmpty: true, isArray: true },\n { name: 'field4_2', kind: 'NUMBER', notEmpty: true, isArray: true },\n\n { name: 'field5_1', kind: 'NUMBER', notEmpty: true, title: 'Field title' },\n { name: 'field5_2', kind: 'NUMBER', notEmpty: true, title: 'Field title' },\n\n { name: 'field6_1', kind: 'NUMBER', notEmpty: true },\n { name: 'field6_2', kind: 'NUMBER', notEmpty: true },\n\n { name: 'field7_1', kind: 'DATETIME', notEmpty: true, isArray: true },\n { name: 'field7_2', kind: 'DATETIME', notEmpty: true, isArray: true },\n\n { name: 'field8_1', kind: 'DATE', notEmpty: true, isArray: true },\n { name: 'field8_2', kind: 'DATE', notEmpty: true, isArray: true },\n\n {\n name: 'field9',\n notEmpty: true,\n kind: 'STRUCT',\n fields: [{ name: 'bar', notEmpty: true, kind: 'STRING' }],\n vocabNamespace: VOCAB_NAMESPACE,\n vocabName: 'Bar',\n },\n\n {\n name: 'field10',\n title: 'Field 10',\n isArray: true,\n kind: 'STRUCT',\n fields: [{ name: 'bar', notEmpty: true, kind: 'STRING' }],\n vocabNamespace: VOCAB_NAMESPACE,\n vocabName: 'Bar',\n },\n\n { name: 'field11_1', kind: 'STRING', isArray: true },\n { name: 'field11_2', kind: 'STRING', isArray: true },\n { name: 'field11_3', kind: 'STRING', isArray: true },\n ],\n vocabNamespace: VOCAB_NAMESPACE,\n vocabName: 'Qux',\n vcType: ['BazCredential'],\n });\n });\n});\n"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as core from '../../../core';
|
|
2
|
+
import { inferParsedObject } from '../../../core/schemas';
|
|
3
|
+
import type { CredentialBlob, Json } from '../types';
|
|
4
|
+
import { CredentialDocument } from '../document';
|
|
5
|
+
export declare const jsonldVocabSchema: core.serialization.Schema<string | core.serialization.inferRawObjectFromPropertySchemas<{}>, string | core.serialization.inferParsedObjectFromPropertySchemas<{}>>;
|
|
6
|
+
export declare const jsonldContextSchema: core.serialization.Schema<string | core.serialization.inferRawObjectFromPropertySchemas<{}> | (string | core.serialization.inferRawObjectFromPropertySchemas<{}>)[], string | core.serialization.inferParsedObjectFromPropertySchemas<{}> | (string | core.serialization.inferParsedObjectFromPropertySchemas<{}>)[]>;
|
|
7
|
+
export declare const credentialSchemaSchema: core.serialization.inferObjectSchemaFromPropertySchemas<{
|
|
8
|
+
id: core.serialization.Schema<string, string>;
|
|
9
|
+
type: core.serialization.Schema<string | string[], string | string[]>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const vcdmProofSchema: core.serialization.inferObjectSchemaFromPropertySchemas<{
|
|
12
|
+
type: core.serialization.Schema<string, string>;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const vcdmProofSetSchema: core.serialization.Schema<core.serialization.inferRawObjectFromPropertySchemas<{
|
|
15
|
+
type: core.serialization.Schema<string, string>;
|
|
16
|
+
}> | core.serialization.inferRawObjectFromPropertySchemas<{
|
|
17
|
+
type: core.serialization.Schema<string, string>;
|
|
18
|
+
}>[], core.serialization.inferParsedObjectFromPropertySchemas<{
|
|
19
|
+
type: core.serialization.Schema<string, string>;
|
|
20
|
+
}> | core.serialization.inferParsedObjectFromPropertySchemas<{
|
|
21
|
+
type: core.serialization.Schema<string, string>;
|
|
22
|
+
}>[]>;
|
|
23
|
+
export declare const jsonSchemaCredentialSubjectSchema: core.serialization.inferObjectSchemaFromPropertySchemas<{
|
|
24
|
+
id: core.serialization.Schema<string, string>;
|
|
25
|
+
type: core.serialization.Schema<"JsonSchema", "JsonSchema">;
|
|
26
|
+
jsonSchema: core.serialization.inferObjectSchemaFromPropertySchemas<{
|
|
27
|
+
$schema: core.serialization.Schema<"https://json-schema.org/draft/2020-12/schema", "https://json-schema.org/draft/2020-12/schema">;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
30
|
+
export declare const vcdmDocumentSchema: core.serialization.inferObjectSchemaFromPropertySchemas<{
|
|
31
|
+
'@context': core.serialization.Schema<string | core.serialization.inferRawObjectFromPropertySchemas<{}> | (string | core.serialization.inferRawObjectFromPropertySchemas<{}>)[], string | core.serialization.inferParsedObjectFromPropertySchemas<{}> | (string | core.serialization.inferParsedObjectFromPropertySchemas<{}>)[]>;
|
|
32
|
+
type: core.serialization.Schema<string[], string[]>;
|
|
33
|
+
credentialSubject: core.serialization.inferObjectSchemaFromPropertySchemas<{
|
|
34
|
+
id: core.serialization.Schema<string | null | undefined, string | undefined>;
|
|
35
|
+
type: core.serialization.Schema<string | null | undefined, string | undefined>;
|
|
36
|
+
}>;
|
|
37
|
+
credentialSchema: core.serialization.Schema<core.serialization.inferRawObjectFromPropertySchemas<{
|
|
38
|
+
id: core.serialization.Schema<string, string>;
|
|
39
|
+
type: core.serialization.Schema<string | string[], string | string[]>;
|
|
40
|
+
}> | null | undefined, core.serialization.inferParsedObjectFromPropertySchemas<{
|
|
41
|
+
id: core.serialization.Schema<string, string>;
|
|
42
|
+
type: core.serialization.Schema<string | string[], string | string[]>;
|
|
43
|
+
}> | undefined>;
|
|
44
|
+
}>;
|
|
45
|
+
export declare type VcdmDocument = inferParsedObject<typeof vcdmDocumentSchema>;
|
|
46
|
+
export declare class VcdmCredentialDocument extends CredentialDocument {
|
|
47
|
+
protected jsonToVcdm(input: Json): VcdmDocument;
|
|
48
|
+
protected blobToVcdm(input: CredentialBlob): VcdmDocument;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=vcdm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcdm.d.ts","sourceRoot":"","sources":["../../../../src/documents/credential/document/vcdm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,iBAAiB,oKAG5B,CAAC;AAEH,eAAO,MAAM,mBAAmB,uTAG9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;EAMjC,CAAC;AAEH,eAAO,MAAM,eAAe;;EAE1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;KAG7B,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;EAM5C,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;EAQ7B,CAAC;AAEH,oBAAY,YAAY,GAAG,iBAAiB,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC1D,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,YAAY;IAI/C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY;CAG5D"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.VcdmCredentialDocument = exports.vcdmDocumentSchema = exports.jsonSchemaCredentialSubjectSchema = exports.vcdmProofSetSchema = exports.vcdmProofSchema = exports.credentialSchemaSchema = exports.jsonldContextSchema = exports.jsonldVocabSchema = void 0;
|
|
27
|
+
const core = __importStar(require("../../../core"));
|
|
28
|
+
const document_1 = require("../document");
|
|
29
|
+
exports.jsonldVocabSchema = core.serialization.undiscriminatedUnion([
|
|
30
|
+
core.serialization.string(),
|
|
31
|
+
core.serialization.object({}),
|
|
32
|
+
]);
|
|
33
|
+
exports.jsonldContextSchema = core.serialization.undiscriminatedUnion([
|
|
34
|
+
exports.jsonldVocabSchema,
|
|
35
|
+
core.serialization.list(exports.jsonldVocabSchema),
|
|
36
|
+
]);
|
|
37
|
+
exports.credentialSchemaSchema = core.serialization.object({
|
|
38
|
+
id: core.serialization.string(),
|
|
39
|
+
type: core.serialization.undiscriminatedUnion([
|
|
40
|
+
core.serialization.string(),
|
|
41
|
+
core.serialization.list(core.serialization.string()),
|
|
42
|
+
]),
|
|
43
|
+
});
|
|
44
|
+
exports.vcdmProofSchema = core.serialization.object({
|
|
45
|
+
type: core.serialization.string(),
|
|
46
|
+
});
|
|
47
|
+
exports.vcdmProofSetSchema = core.serialization.undiscriminatedUnion([
|
|
48
|
+
exports.vcdmProofSchema,
|
|
49
|
+
core.serialization.list(exports.vcdmProofSchema),
|
|
50
|
+
]);
|
|
51
|
+
exports.jsonSchemaCredentialSubjectSchema = core.serialization.object({
|
|
52
|
+
id: core.serialization.string(),
|
|
53
|
+
type: core.serialization.stringLiteral('JsonSchema'),
|
|
54
|
+
jsonSchema: core.serialization.object({
|
|
55
|
+
$schema: core.serialization.stringLiteral('https://json-schema.org/draft/2020-12/schema'),
|
|
56
|
+
}),
|
|
57
|
+
});
|
|
58
|
+
exports.vcdmDocumentSchema = core.serialization.object({
|
|
59
|
+
'@context': exports.jsonldContextSchema,
|
|
60
|
+
type: core.serialization.list(core.serialization.string()),
|
|
61
|
+
credentialSubject: core.serialization.object({
|
|
62
|
+
id: core.serialization.string().optional(),
|
|
63
|
+
type: core.serialization.string().optional(),
|
|
64
|
+
}),
|
|
65
|
+
credentialSchema: exports.credentialSchemaSchema.optional(),
|
|
66
|
+
});
|
|
67
|
+
class VcdmCredentialDocument extends document_1.CredentialDocument {
|
|
68
|
+
jsonToVcdm(input) {
|
|
69
|
+
return this.parseJson(exports.vcdmDocumentSchema, input);
|
|
70
|
+
}
|
|
71
|
+
blobToVcdm(input) {
|
|
72
|
+
return this.parseBlob(exports.vcdmDocumentSchema, input);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.VcdmCredentialDocument = VcdmCredentialDocument;
|
|
76
|
+
//# sourceMappingURL=vcdm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcdm.js","sourceRoot":"","sources":["../../../../src/documents/credential/document/vcdm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAGtC,0CAAiD;AAEpC,QAAA,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC;IACrE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;CAChC,CAAC,CAAC;AAEU,QAAA,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC;IACvE,yBAAiB;IACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAiB,CAAC;CAC7C,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IAC5D,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC/B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;QAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;KACvD,CAAC;CACL,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACrD,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;CACpC,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC;IACtE,uBAAe;IACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAe,CAAC;CAC3C,CAAC,CAAC;AAEU,QAAA,iCAAiC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACvE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC/B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC;IACpD,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAClC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,8CAA8C,CAAC;KAC5F,CAAC;CACL,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACxD,UAAU,EAAE,2BAAmB;IAC/B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IAC1D,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACzC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/C,CAAC;IACF,gBAAgB,EAAE,8BAAsB,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAIH,MAAa,sBAAuB,SAAQ,6BAAkB;IAChD,UAAU,CAAC,KAAW;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,0BAAkB,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAES,UAAU,CAAC,KAAqB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,0BAAkB,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;CACJ;AARD,wDAQC","sourcesContent":["import * as core from '../../../core';\nimport { inferParsedObject } from '../../../core/schemas';\nimport type { CredentialBlob, Json } from '../types';\nimport { CredentialDocument } from '../document';\n\nexport const jsonldVocabSchema = core.serialization.undiscriminatedUnion([\n core.serialization.string(),\n core.serialization.object({}),\n]);\n\nexport const jsonldContextSchema = core.serialization.undiscriminatedUnion([\n jsonldVocabSchema,\n core.serialization.list(jsonldVocabSchema),\n]);\n\nexport const credentialSchemaSchema = core.serialization.object({\n id: core.serialization.string(),\n type: core.serialization.undiscriminatedUnion([\n core.serialization.string(),\n core.serialization.list(core.serialization.string()),\n ]),\n});\n\nexport const vcdmProofSchema = core.serialization.object({\n type: core.serialization.string(),\n});\n\nexport const vcdmProofSetSchema = core.serialization.undiscriminatedUnion([\n vcdmProofSchema,\n core.serialization.list(vcdmProofSchema),\n]);\n\nexport const jsonSchemaCredentialSubjectSchema = core.serialization.object({\n id: core.serialization.string(),\n type: core.serialization.stringLiteral('JsonSchema'),\n jsonSchema: core.serialization.object({\n $schema: core.serialization.stringLiteral('https://json-schema.org/draft/2020-12/schema'),\n }),\n});\n\nexport const vcdmDocumentSchema = core.serialization.object({\n '@context': jsonldContextSchema,\n type: core.serialization.list(core.serialization.string()),\n credentialSubject: core.serialization.object({\n id: core.serialization.string().optional(),\n type: core.serialization.string().optional(),\n }),\n credentialSchema: credentialSchemaSchema.optional(),\n});\n\nexport type VcdmDocument = inferParsedObject<typeof vcdmDocumentSchema>;\n\nexport class VcdmCredentialDocument extends CredentialDocument {\n protected jsonToVcdm(input: Json): VcdmDocument {\n return this.parseJson(vcdmDocumentSchema, input);\n }\n\n protected blobToVcdm(input: CredentialBlob): VcdmDocument {\n return this.parseBlob(vcdmDocumentSchema, input);\n }\n}\n"]}
|
|
@@ -1,26 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
protected
|
|
6
|
-
protected
|
|
7
|
-
constructor(client: ApiClient, flavor: CredentialFlavor<T>);
|
|
8
|
-
private processValues;
|
|
9
|
-
private getClaimTypeInfo;
|
|
10
|
-
/** convertApiValuesToUdt maps and converts the API received claims values to the UDT claims model */
|
|
11
|
-
protected convertApiValuesToUdt<K extends Claims>(model: Ctor<any>, input: Json): K;
|
|
12
|
-
/** convertUdtToApiValues maps and converts the user received claims values onto UDT claims model */
|
|
13
|
-
protected convertUdtToApiValues<K extends Claims>(model: Ctor<any>, input: K): Json;
|
|
14
|
-
/**
|
|
15
|
-
* Marshalling is the process of transforming the internal representation of values to a data format suitable
|
|
16
|
-
* for transmission.
|
|
17
|
-
*/
|
|
18
|
-
marshalValues(input: UserUpdateClaims<T>): Json;
|
|
19
|
-
/**
|
|
20
|
-
* Unmarshalling is the reverse process of marshalling. It involves converting data from a serialized format back
|
|
21
|
-
* into an internal representation.
|
|
22
|
-
*/
|
|
23
|
-
unmarshalValuesToDraft(input: Json): ReadDraftClaims<T>;
|
|
24
|
-
unmarshalValuesToCredential(input: Json): ReadClaims<T>;
|
|
1
|
+
import { inferParsed, Schema } from '../../core/schemas';
|
|
2
|
+
import type { CredentialBlob, Json } from './types';
|
|
3
|
+
export declare class CredentialDocument {
|
|
4
|
+
protected blobToJson(input: CredentialBlob): Json;
|
|
5
|
+
protected parseJson<T extends Schema<any, any>>(schema: T, input: Json): inferParsed<T>;
|
|
6
|
+
protected parseBlob<T extends Schema<any, any>>(schema: T, input: CredentialBlob): inferParsed<T>;
|
|
25
7
|
}
|
|
26
8
|
//# sourceMappingURL=document.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/document.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,kBAAkB;IAC3B,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IASjD,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;IAQvF,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC;CAGpG"}
|
|
@@ -1,147 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CredentialDocument = void 0;
|
|
4
|
-
const guards_1 = require("../guards");
|
|
5
|
-
const decorators_1 = require("../decorators");
|
|
6
|
-
const models_1 = require("../models");
|
|
7
|
-
const issued_1 = require("./issued");
|
|
8
|
-
const unknown_1 = require("./unknown");
|
|
9
4
|
class CredentialDocument {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const value = input[descriptor.name];
|
|
18
|
-
let processedValue;
|
|
19
|
-
if (descriptor.isArray) {
|
|
20
|
-
if (value == null) {
|
|
21
|
-
processedValue = null;
|
|
22
|
-
}
|
|
23
|
-
if (Array.isArray(value)) {
|
|
24
|
-
processedValue = value.map((item) => {
|
|
25
|
-
return processValue(descriptor, item);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
throw new Error(`Can't convert received value as it has an unexpected type. The value is defined in UDT as "Array". Please reach out to support for assistance.`);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
processedValue = processValue(descriptor, value);
|
|
34
|
-
}
|
|
35
|
-
Reflect.set(result, descriptor.name, processedValue);
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
}, initialValue);
|
|
39
|
-
}
|
|
40
|
-
getClaimTypeInfo(model, descriptor) {
|
|
41
|
-
const typeInfo = descriptor.nestedType ? descriptor.nestedType : (0, decorators_1.getTsDataTypeMetadata)(model, descriptor.name);
|
|
42
|
-
if (typeInfo == null) {
|
|
43
|
-
throw new Error(`Can't convert received value. Inconsistent data definition. Please reach out to support for assistance.`);
|
|
5
|
+
blobToJson(input) {
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(input.toString('utf8'));
|
|
8
|
+
}
|
|
9
|
+
catch (err) {
|
|
10
|
+
console.error(err);
|
|
11
|
+
throw new Error('Invalid JSON in Credential Blob');
|
|
44
12
|
}
|
|
45
|
-
return typeInfo;
|
|
46
|
-
}
|
|
47
|
-
/** convertApiValuesToUdt maps and converts the API received claims values to the UDT claims model */
|
|
48
|
-
convertApiValuesToUdt(model, input) {
|
|
49
|
-
const processValue = (descriptor, value) => {
|
|
50
|
-
if (value == null) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
if ((0, guards_1.isLinkedEntityDescriptor)(value)) {
|
|
54
|
-
const isLinkedCredential = (0, decorators_1.getClaimLinkedCredentialMetadata)(model, descriptor.name);
|
|
55
|
-
if (isLinkedCredential) {
|
|
56
|
-
return new models_1.LinkedCredential(this.client, value.id, value.digestMultibase);
|
|
57
|
-
}
|
|
58
|
-
const isLinkedFile = (0, decorators_1.getClaimLinkedFileMetadata)(model, descriptor.name);
|
|
59
|
-
if (isLinkedFile) {
|
|
60
|
-
return new models_1.LinkedFile(this.client, value.id, value.digestMultibase);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
const typeInfo = this.getClaimTypeInfo(model, descriptor);
|
|
64
|
-
if (typeInfo === Date) {
|
|
65
|
-
if (typeof value !== 'string') {
|
|
66
|
-
throw new Error(`Can't convert received value as it has an unexpected type. The value is defined in UDT as "Date". Please reach out to support for assistance.`);
|
|
67
|
-
}
|
|
68
|
-
return new Date(value);
|
|
69
|
-
}
|
|
70
|
-
if (typeInfo === models_1.Rfc3339DateTime) {
|
|
71
|
-
if (typeof value !== 'string') {
|
|
72
|
-
throw new Error(`Can't convert received value as it has an unexpected type. The value is defined in UDT as "Rfc3339DateTime". Please reach out to support for assistance.`);
|
|
73
|
-
}
|
|
74
|
-
return new models_1.Rfc3339DateTime(value);
|
|
75
|
-
}
|
|
76
|
-
if (typeInfo === models_1.Rfc3339Date) {
|
|
77
|
-
if (typeof value !== 'string') {
|
|
78
|
-
throw new Error(`Can't convert received value as it has an unexpected type. The value is defined in UDT as "Rfc3339Date". Please reach out to support for assistance.`);
|
|
79
|
-
}
|
|
80
|
-
return new models_1.Rfc3339Date(value);
|
|
81
|
-
}
|
|
82
|
-
// Primitive values should be returned as-is
|
|
83
|
-
if (Array.of(String, Number, Boolean, Object).includes(typeInfo)) {
|
|
84
|
-
return value;
|
|
85
|
-
}
|
|
86
|
-
if (!(value instanceof Object)) {
|
|
87
|
-
throw new Error(`Can't convert received value as it has an unexpected type. The value is defined in UDT as "${typeInfo.name}". Please reach out to support for assistance.`);
|
|
88
|
-
}
|
|
89
|
-
return this.convertApiValuesToUdt(typeInfo, value);
|
|
90
|
-
};
|
|
91
|
-
return this.processValues(model, input, processValue, new model());
|
|
92
|
-
}
|
|
93
|
-
/** convertUdtToApiValues maps and converts the user received claims values onto UDT claims model */
|
|
94
|
-
convertUdtToApiValues(model, input) {
|
|
95
|
-
const processValue = (descriptor, value) => {
|
|
96
|
-
if (value == null) {
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
const typeInfo = this.getClaimTypeInfo(model, descriptor);
|
|
100
|
-
if ((0, decorators_1.getClaimLinkedCredentialMetadata)(model, descriptor.name)) {
|
|
101
|
-
if (value instanceof models_1.LinkedCredential) {
|
|
102
|
-
return value.toJSON();
|
|
103
|
-
}
|
|
104
|
-
if (value instanceof issued_1.VerifiableCredential || value instanceof unknown_1.UnknownVerifiableCredential) {
|
|
105
|
-
return value.toLinkedCredential().toJSON();
|
|
106
|
-
}
|
|
107
|
-
if ((0, guards_1.isValueWithId)(value)) {
|
|
108
|
-
return models_1.LinkedCredential.createLinkedEntityDescriptor(value.id, value.digestMultibase);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if ((0, decorators_1.getClaimLinkedFileMetadata)(model, descriptor.name)) {
|
|
112
|
-
if (value instanceof models_1.LinkedFile) {
|
|
113
|
-
return value.toJSON();
|
|
114
|
-
}
|
|
115
|
-
if ((0, guards_1.isValueWithId)(value)) {
|
|
116
|
-
return models_1.LinkedFile.createLinkedEntityDescriptor(value.id, value.digestMultibase);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (Array.of(String, Number, Date, models_1.Rfc3339DateTime, models_1.Rfc3339Date, Boolean, Object, Function).includes(typeInfo)) {
|
|
120
|
-
return value;
|
|
121
|
-
}
|
|
122
|
-
if (!(value instanceof Object)) {
|
|
123
|
-
throw new Error(`Can't convert received value as it has an unexpected type. The value is defined in UDT as "${typeInfo.name}". Please reach out to support for assistance.`);
|
|
124
|
-
}
|
|
125
|
-
return this.convertUdtToApiValues(typeInfo, value);
|
|
126
|
-
};
|
|
127
|
-
return this.processValues(model, input, processValue, {});
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Marshalling is the process of transforming the internal representation of values to a data format suitable
|
|
131
|
-
* for transmission.
|
|
132
|
-
*/
|
|
133
|
-
marshalValues(input) {
|
|
134
|
-
return this.convertUdtToApiValues(this.flavor.claimsModel, input);
|
|
135
13
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
14
|
+
parseJson(schema, input) {
|
|
15
|
+
return schema.parseOrThrow(input, {
|
|
16
|
+
unrecognizedObjectKeys: 'passthrough',
|
|
17
|
+
allowUnrecognizedUnionMembers: true,
|
|
18
|
+
allowUnrecognizedEnumValues: true,
|
|
19
|
+
});
|
|
142
20
|
}
|
|
143
|
-
|
|
144
|
-
return this.
|
|
21
|
+
parseBlob(schema, input) {
|
|
22
|
+
return this.parseJson(schema, this.blobToJson(input));
|
|
145
23
|
}
|
|
146
24
|
}
|
|
147
25
|
exports.CredentialDocument = CredentialDocument;
|