@nmshd/runtime 2.0.0-beta.19 → 2.0.0-beta.21

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.
@@ -448,11 +448,11 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
448
448
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
449
449
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
450
450
  exports.buildInformation = {
451
- version: "2.0.0-beta.19",
452
- build: "105",
453
- date: "2022-08-25T07:21:14+00:00",
454
- commit: "3dbdc14c8ff985fed7b06bc64c683f2b103e7ed4",
455
- dependencies: {"@js-soft/docdb-querytranslator":"1.1.0","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.4","@js-soft/ts-utils":"^2.2.2","@nmshd/consumption":"2.0.0-beta.8","@nmshd/content":"2.0.0-beta.13","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-beta.4","ajv":"^8.11.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","luxon":"^3.0.1","qrcode":"1.5.1","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
451
+ version: "2.0.0-beta.21",
452
+ build: "107",
453
+ date: "2022-09-05T12:27:48+00:00",
454
+ commit: "085c7c588c9938e918820540abd82c9fec4170b3",
455
+ dependencies: {"@js-soft/docdb-querytranslator":"1.1.0","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.4","@js-soft/ts-utils":"^2.2.2","@nmshd/consumption":"2.0.0-beta.11","@nmshd/content":"2.0.0-beta.13","@nmshd/crypto":"2.0.1","@nmshd/transport":"2.0.0-beta.4","ajv":"^8.11.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","luxon":"^3.0.3","qrcode":"1.5.1","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
456
456
  libraries: {
457
457
  serval: ts_serval_1.buildInformation,
458
458
  consumption: consumption_1.buildInformation,
@@ -710,7 +710,11 @@ let DataViewExpander = class DataViewExpander {
710
710
  async expandRelationshipTemplateDTO(template) {
711
711
  let onNewRelationship;
712
712
  let onExistingRelationship;
713
- let name = "i18n://dvo.template.name";
713
+ const createdBy = await this.expandAddress(template.createdBy);
714
+ const type = template.isOwn ? "RelationshipTemplateDVO" : "PeerRelationshipTemplateDVO";
715
+ let name = template.isOwn ? "i18n://dvo.template.outgoing.name" : "i18n://dvo.template.incoming.name";
716
+ const description = template.isOwn ? "i18n://dvo.template.outgoing.description" : "i18n://dvo.template.incoming.description";
717
+ let expandedLocalRequest;
714
718
  if (template.content["@type"] === "RelationshipTemplateBody") {
715
719
  const templateBody = content_1.RelationshipTemplateBody.from(template.content).toJSON();
716
720
  if (templateBody.title) {
@@ -718,20 +722,28 @@ let DataViewExpander = class DataViewExpander {
718
722
  }
719
723
  let localRequest;
720
724
  if (!template.isOwn) {
721
- const onNewRelationshipRequest = await this.consumption.incomingRequests.getRequests({
725
+ const incomingRequestResult = await this.consumption.incomingRequests.getRequests({
722
726
  query: {
723
- "source.reference": template.id
727
+ "source.reference": template.id,
728
+ status: consumption_1.LocalRequestStatus.ManualDecisionRequired
724
729
  }
725
730
  });
726
- localRequest = onNewRelationshipRequest.value[0];
727
- return {
728
- name,
729
- type: "PeerRelationshipTemplateDVO",
730
- date: template.createdAt,
731
- ...template,
732
- createdBy: await this.expandAddress(template.createdBy),
733
- onNewRelationship: await this.expandLocalRequestDTO(localRequest)
734
- };
731
+ if (incomingRequestResult.value.length > 0) {
732
+ localRequest = incomingRequestResult.value[0];
733
+ expandedLocalRequest = await this.expandLocalRequestDTO(localRequest);
734
+ }
735
+ else {
736
+ const completedRequestResult = await this.consumption.incomingRequests.getRequests({
737
+ query: {
738
+ "source.reference": template.id,
739
+ status: [consumption_1.LocalRequestStatus.Decided, consumption_1.LocalRequestStatus.Completed]
740
+ }
741
+ });
742
+ if (completedRequestResult.value.length > 0) {
743
+ localRequest = completedRequestResult.value[0];
744
+ expandedLocalRequest = await this.expandLocalRequestDTO(localRequest);
745
+ }
746
+ }
735
747
  }
736
748
  onNewRelationship = await this.expandRequest(templateBody.onNewRelationship);
737
749
  if (templateBody.onExistingRelationship) {
@@ -740,10 +752,12 @@ let DataViewExpander = class DataViewExpander {
740
752
  }
741
753
  return {
742
754
  name,
743
- type: "RelationshipTemplateDVO",
755
+ description,
756
+ type,
744
757
  date: template.createdAt,
745
758
  ...template,
746
- createdBy: await this.expandAddress(template.createdBy),
759
+ createdBy,
760
+ request: expandedLocalRequest,
747
761
  onNewRelationship,
748
762
  onExistingRelationship
749
763
  };
@@ -983,10 +997,12 @@ let DataViewExpander = class DataViewExpander {
983
997
  }
984
998
  const directionLabel = request.isOwn ? "outgoing" : "incoming";
985
999
  const statusText = `i18n://dvo.localRequest.status.${request.status}`;
1000
+ const response = request.response ? await this.expandLocalResponseDTO(request.response, request) : undefined;
986
1001
  // TODO: Wait for request.title from content and use it
1002
+ const requestIdOutOfResponse = request.response ? request.response.content.requestId : "";
987
1003
  return {
988
1004
  ...request,
989
- id: request.id,
1005
+ id: request.id ? request.id : requestIdOutOfResponse,
990
1006
  content: requestDVO,
991
1007
  items: requestDVO.items,
992
1008
  name: `i18n://dvo.localRequest.${directionLabel}.name`,
@@ -996,7 +1012,7 @@ let DataViewExpander = class DataViewExpander {
996
1012
  createdBy: request.isOwn ? this.expandSelf() : peerDVO,
997
1013
  decider: request.isOwn ? peerDVO : this.expandSelf(),
998
1014
  peer: peerDVO,
999
- response: request.response ? await this.expandLocalResponseDTO(request.response, request) : undefined,
1015
+ response,
1000
1016
  statusText: statusText,
1001
1017
  isDecidable
1002
1018
  };
@@ -1403,7 +1419,8 @@ let DataViewExpander = class DataViewExpander {
1403
1419
  items: expandedAttributes,
1404
1420
  nameMap: stringByType,
1405
1421
  changes: changes,
1406
- changeCount: changes.length
1422
+ changeCount: changes.length,
1423
+ templateId: relationship.template.id
1407
1424
  };
1408
1425
  }
1409
1426
  async expandRelationshipDTO(relationship) {
@@ -5524,7 +5541,7 @@ const ajv_formats_1 = __importDefault(__webpack_require__(/*! ajv-formats */ "./
5524
5541
  class SchemaRepository {
5525
5542
  constructor() {
5526
5543
  this.jsonSchemas = new Map();
5527
- this.compiler = new ajv_1.default({ allErrors: true });
5544
+ this.compiler = new ajv_1.default({ allErrors: true, allowUnionTypes: true });
5528
5545
  (0, ajv_formats_1.default)(this.compiler);
5529
5546
  (0, ajv_errors_1.default)(this.compiler);
5530
5547
  }
@@ -5570,8 +5587,8 @@ exports.JsonSchema = JsonSchema;
5570
5587
  "use strict";
5571
5588
 
5572
5589
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5573
- exports.CreateDeviceOnboardingTokenRequest = exports.CreateDeviceRequest = exports.ValidateChallengeRequest = exports.CreateChallengeRequest = exports.CreateDeviceChallengeRequest = exports.CreateIdentityChallengeRequest = exports.CreateRelationshipChallengeRequest = exports.SyncEverythingRequest = exports.DownloadAttachmentRequest = exports.SyncDatawalletRequest = exports.RegisterPushNotificationTokenRequest = exports.LoadItemFromTruncatedReferenceRequest = exports.DownloadFileRequest = exports.UpdateSettingRequest = exports.GetSettingsRequest = exports.GetSettingRequest = exports.DeleteSettingRequest = exports.CreateSettingRequest = exports.SentOutgoingRequestRequest = exports.RequireManualDecisionOfIncomingRequestRequest = exports.ReceivedIncomingRequestRequest = exports.GetOutgoingRequestsRequest = exports.GetOutgoingRequestRequest = exports.GetIncomingRequestsRequest = exports.GetIncomingRequestRequest = exports.CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest = exports.CompleteOutgoingRequestRequest = exports.CompleteIncomingRequestRequest = exports.CheckPrerequisitesOfIncomingRequestRequest = exports.RejectIncomingRequestRequest = exports.CreateOutgoingRequestRequest = exports.AcceptIncomingRequestRequest = exports.UpdateDraftRequest = exports.GetDraftsRequest = exports.GetDraftRequest = exports.DeleteDraftRequest = exports.CreateDraftRequest = exports.UpdateAttributeRequest = exports.SucceedAttributeRequest = exports.GetSharedToPeerAttributesRequest = exports.GetPeerAttributesRequest = exports.GetAttributesRequest = exports.GetAttributeRequest = exports.ExecuteRelationshipAttributeQueryRequest = exports.ExecuteIdentityAttributeQueryRequest = exports.DeleteAttributeRequest = exports.CreateSharedAttributeCopyRequest = exports.CreateAttributeRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
5574
- exports.LoadPeerTokenRequest = exports.LoadPeerTokenViaSecretRequest = exports.LoadPeerTokenViaReferenceRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.LoadPeerRelationshipTemplateViaReferenceRequest = exports.LoadPeerRelationshipTemplateViaSecretRequest = exports.GetRelationshipTemplatesRequest = exports.GetRelationshipTemplateRequest = exports.CreateTokenQrCodeForOwnTemplateRequest = exports.CreateTokenForOwnTemplateRequest = exports.CreateQrCodeForOwnTemplateRequest = exports.CreateOwnRelationshipTemplateRequest = exports.RevokeRelationshipChangeRequest = exports.RejectRelationshipChangeRequest = exports.GetRelationshipsRequest = exports.GetRelationshipByAddressRequest = exports.GetRelationshipRequest = exports.GetAttributesForRelationshipRequest = exports.CreateRelationshipChangeRequest = exports.CreateRelationshipRequest = exports.AcceptRelationshipChangeRequest = exports.SendMessageRequest = exports.GetMessagesRequest = exports.GetMessageRequest = exports.GetAttachmentMetadataRequest = exports.CheckIdentityRequest = exports.UploadOwnFileValidatableRequest = exports.UploadOwnFileRequest = exports.GetOrLoadFileRequest = exports.GetOrLoadFileViaReferenceRequest = exports.GetOrLoadFileViaSecretRequest = exports.GetFilesRequest = exports.GetFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.CreateQrCodeForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = exports.GetDeviceRequest = exports.DeleteDeviceRequest = void 0;
5590
+ exports.CreateDeviceRequest = exports.ValidateChallengeRequest = exports.CreateChallengeRequest = exports.CreateDeviceChallengeRequest = exports.CreateIdentityChallengeRequest = exports.CreateRelationshipChallengeRequest = exports.SyncEverythingRequest = exports.DownloadAttachmentRequest = exports.SyncDatawalletRequest = exports.RegisterPushNotificationTokenRequest = exports.LoadItemFromTruncatedReferenceRequest = exports.DownloadFileRequest = exports.UpdateSettingRequest = exports.GetSettingsRequest = exports.GetSettingRequest = exports.DeleteSettingRequest = exports.CreateSettingRequest = exports.SentOutgoingRequestRequest = exports.RequireManualDecisionOfIncomingRequestRequest = exports.ReceivedIncomingRequestRequest = exports.GetOutgoingRequestsRequest = exports.GetOutgoingRequestRequest = exports.GetIncomingRequestsRequest = exports.GetIncomingRequestRequest = exports.CreateOutgoingRequestRequest = exports.CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest = exports.CompleteOutgoingRequestRequest = exports.CompleteIncomingRequestRequest = exports.CheckPrerequisitesOfIncomingRequestRequest = exports.RejectIncomingRequestRequest = exports.CanCreateOutgoingRequestRequest = exports.AcceptIncomingRequestRequest = exports.UpdateDraftRequest = exports.GetDraftsRequest = exports.GetDraftRequest = exports.DeleteDraftRequest = exports.CreateDraftRequest = exports.UpdateAttributeRequest = exports.SucceedAttributeRequest = exports.GetSharedToPeerAttributesRequest = exports.GetPeerAttributesRequest = exports.GetAttributesRequest = exports.GetAttributeRequest = exports.ExecuteRelationshipAttributeQueryRequest = exports.ExecuteIdentityAttributeQueryRequest = exports.DeleteAttributeRequest = exports.CreateSharedAttributeCopyRequest = exports.CreateAttributeRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
5591
+ exports.LoadPeerTokenRequest = exports.LoadPeerTokenViaSecretRequest = exports.LoadPeerTokenViaReferenceRequest = exports.GetTokensRequest = exports.GetTokenRequest = exports.GetQRCodeForTokenRequest = exports.CreateOwnTokenRequest = exports.LoadPeerRelationshipTemplateRequest = exports.LoadPeerRelationshipTemplateViaReferenceRequest = exports.LoadPeerRelationshipTemplateViaSecretRequest = exports.GetRelationshipTemplatesRequest = exports.GetRelationshipTemplateRequest = exports.CreateTokenQrCodeForOwnTemplateRequest = exports.CreateTokenForOwnTemplateRequest = exports.CreateQrCodeForOwnTemplateRequest = exports.CreateOwnRelationshipTemplateRequest = exports.RevokeRelationshipChangeRequest = exports.RejectRelationshipChangeRequest = exports.GetRelationshipsRequest = exports.GetRelationshipByAddressRequest = exports.GetRelationshipRequest = exports.GetAttributesForRelationshipRequest = exports.CreateRelationshipChangeRequest = exports.CreateRelationshipRequest = exports.AcceptRelationshipChangeRequest = exports.SendMessageRequest = exports.GetMessagesRequest = exports.GetMessageRequest = exports.GetAttachmentMetadataRequest = exports.CheckIdentityRequest = exports.UploadOwnFileValidatableRequest = exports.UploadOwnFileRequest = exports.GetOrLoadFileRequest = exports.GetOrLoadFileViaReferenceRequest = exports.GetOrLoadFileViaSecretRequest = exports.GetFilesRequest = exports.GetFileRequest = exports.CreateTokenQrCodeForFileRequest = exports.CreateTokenForFileRequest = exports.CreateQrCodeForFileRequest = exports.UpdateDeviceRequest = exports.GetDeviceOnboardingInfoRequest = exports.GetDeviceRequest = exports.DeleteDeviceRequest = exports.CreateDeviceOnboardingTokenRequest = void 0;
5575
5592
  exports.LoadPeerTokenAnonymousByIdAndKeyRequest = {
5576
5593
  "$schema": "http://json-schema.org/draft-07/schema#",
5577
5594
  "$ref": "#/definitions/LoadPeerTokenAnonymousByIdAndKeyRequest",
@@ -7345,11 +7362,11 @@ exports.AcceptIncomingRequestRequest = {
7345
7362
  }
7346
7363
  }
7347
7364
  };
7348
- exports.CreateOutgoingRequestRequest = {
7365
+ exports.CanCreateOutgoingRequestRequest = {
7349
7366
  "$schema": "http://json-schema.org/draft-07/schema#",
7350
- "$ref": "#/definitions/CreateOutgoingRequestRequest",
7367
+ "$ref": "#/definitions/CanCreateOutgoingRequestRequest",
7351
7368
  "definitions": {
7352
- "CreateOutgoingRequestRequest": {
7369
+ "CanCreateOutgoingRequestRequest": {
7353
7370
  "type": "object",
7354
7371
  "properties": {
7355
7372
  "content": {
@@ -7439,8 +7456,7 @@ exports.CreateOutgoingRequestRequest = {
7439
7456
  }
7440
7457
  },
7441
7458
  "required": [
7442
- "content",
7443
- "peer"
7459
+ "content"
7444
7460
  ],
7445
7461
  "additionalProperties": false
7446
7462
  },
@@ -9009,132 +9025,1394 @@ exports.CompleteOutgoingRequestRequest = {
9009
9025
  "@version": {
9010
9026
  "type": "string"
9011
9027
  },
9012
- "result": {
9013
- "type": "string",
9014
- "const": "Accepted"
9028
+ "result": {
9029
+ "type": "string",
9030
+ "const": "Accepted"
9031
+ }
9032
+ },
9033
+ "required": [
9034
+ "@type",
9035
+ "result"
9036
+ ],
9037
+ "additionalProperties": false
9038
+ },
9039
+ "CreateRelationshipAttributeAcceptResponseItemJSON": {
9040
+ "type": "object",
9041
+ "properties": {
9042
+ "@type": {
9043
+ "type": "string"
9044
+ },
9045
+ "@context": {
9046
+ "type": "string"
9047
+ },
9048
+ "@version": {
9049
+ "type": "string"
9050
+ },
9051
+ "result": {
9052
+ "type": "string",
9053
+ "const": "Accepted"
9054
+ },
9055
+ "attributeId": {
9056
+ "type": "string"
9057
+ }
9058
+ },
9059
+ "required": [
9060
+ "@type",
9061
+ "attributeId",
9062
+ "result"
9063
+ ],
9064
+ "additionalProperties": false
9065
+ },
9066
+ "ShareAttributeAcceptResponseItemJSON": {
9067
+ "type": "object",
9068
+ "properties": {
9069
+ "@type": {
9070
+ "type": "string"
9071
+ },
9072
+ "@context": {
9073
+ "type": "string"
9074
+ },
9075
+ "@version": {
9076
+ "type": "string"
9077
+ },
9078
+ "result": {
9079
+ "type": "string",
9080
+ "const": "Accepted"
9081
+ },
9082
+ "attributeId": {
9083
+ "type": "string"
9084
+ }
9085
+ },
9086
+ "required": [
9087
+ "@type",
9088
+ "attributeId",
9089
+ "result"
9090
+ ],
9091
+ "additionalProperties": false
9092
+ },
9093
+ "ProposeAttributeAcceptResponseItemJSON": {
9094
+ "type": "object",
9095
+ "properties": {
9096
+ "@type": {
9097
+ "type": "string"
9098
+ },
9099
+ "@context": {
9100
+ "type": "string"
9101
+ },
9102
+ "@version": {
9103
+ "type": "string"
9104
+ },
9105
+ "result": {
9106
+ "type": "string",
9107
+ "const": "Accepted"
9108
+ },
9109
+ "attributeId": {
9110
+ "type": "string"
9111
+ },
9112
+ "attribute": {
9113
+ "anyOf": [
9114
+ {
9115
+ "$ref": "#/definitions/IdentityAttributeJSON"
9116
+ },
9117
+ {
9118
+ "$ref": "#/definitions/RelationshipAttributeJSON"
9119
+ }
9120
+ ]
9121
+ }
9122
+ },
9123
+ "required": [
9124
+ "@type",
9125
+ "attribute",
9126
+ "attributeId",
9127
+ "result"
9128
+ ],
9129
+ "additionalProperties": false
9130
+ },
9131
+ "IdentityAttributeJSON": {
9132
+ "type": "object",
9133
+ "properties": {
9134
+ "@type": {
9135
+ "type": "string"
9136
+ },
9137
+ "@context": {
9138
+ "type": "string"
9139
+ },
9140
+ "@version": {
9141
+ "type": "string"
9142
+ },
9143
+ "owner": {
9144
+ "type": "string"
9145
+ },
9146
+ "validFrom": {
9147
+ "type": "string"
9148
+ },
9149
+ "validTo": {
9150
+ "type": "string"
9151
+ },
9152
+ "value": {
9153
+ "$ref": "#/definitions/AbstractAttributeValueJSON"
9154
+ },
9155
+ "tags": {
9156
+ "type": "array",
9157
+ "items": {
9158
+ "type": "string"
9159
+ }
9160
+ }
9161
+ },
9162
+ "required": [
9163
+ "@type",
9164
+ "owner",
9165
+ "value"
9166
+ ],
9167
+ "additionalProperties": false
9168
+ },
9169
+ "AbstractAttributeValueJSON": {
9170
+ "type": "object",
9171
+ "properties": {
9172
+ "@type": {
9173
+ "type": "string"
9174
+ },
9175
+ "@context": {
9176
+ "type": "string"
9177
+ },
9178
+ "@version": {
9179
+ "type": "string"
9180
+ }
9181
+ },
9182
+ "required": [
9183
+ "@type"
9184
+ ]
9185
+ },
9186
+ "RelationshipAttributeJSON": {
9187
+ "type": "object",
9188
+ "properties": {
9189
+ "@type": {
9190
+ "type": "string"
9191
+ },
9192
+ "@context": {
9193
+ "type": "string"
9194
+ },
9195
+ "@version": {
9196
+ "type": "string"
9197
+ },
9198
+ "owner": {
9199
+ "type": "string"
9200
+ },
9201
+ "validFrom": {
9202
+ "type": "string"
9203
+ },
9204
+ "validTo": {
9205
+ "type": "string"
9206
+ },
9207
+ "value": {
9208
+ "$ref": "#/definitions/AbstractAttributeValueJSON"
9209
+ },
9210
+ "key": {
9211
+ "type": "string"
9212
+ },
9213
+ "isTechnical": {
9214
+ "type": "boolean"
9215
+ },
9216
+ "confidentiality": {
9217
+ "$ref": "#/definitions/RelationshipAttributeConfidentiality"
9218
+ }
9219
+ },
9220
+ "required": [
9221
+ "@type",
9222
+ "confidentiality",
9223
+ "key",
9224
+ "owner",
9225
+ "value"
9226
+ ],
9227
+ "additionalProperties": false
9228
+ },
9229
+ "RelationshipAttributeConfidentiality": {
9230
+ "type": "string",
9231
+ "enum": [
9232
+ "public",
9233
+ "private",
9234
+ "protected"
9235
+ ]
9236
+ },
9237
+ "ReadAttributeAcceptResponseItemJSON": {
9238
+ "type": "object",
9239
+ "properties": {
9240
+ "@type": {
9241
+ "type": "string"
9242
+ },
9243
+ "@context": {
9244
+ "type": "string"
9245
+ },
9246
+ "@version": {
9247
+ "type": "string"
9248
+ },
9249
+ "result": {
9250
+ "type": "string",
9251
+ "const": "Accepted"
9252
+ },
9253
+ "attributeId": {
9254
+ "type": "string"
9255
+ },
9256
+ "attribute": {
9257
+ "anyOf": [
9258
+ {
9259
+ "$ref": "#/definitions/IdentityAttributeJSON"
9260
+ },
9261
+ {
9262
+ "$ref": "#/definitions/RelationshipAttributeJSON"
9263
+ }
9264
+ ]
9265
+ }
9266
+ },
9267
+ "required": [
9268
+ "@type",
9269
+ "attribute",
9270
+ "attributeId",
9271
+ "result"
9272
+ ],
9273
+ "additionalProperties": false
9274
+ },
9275
+ "RejectResponseItemJSONDerivations": {
9276
+ "$ref": "#/definitions/RejectResponseItemJSON"
9277
+ },
9278
+ "RejectResponseItemJSON": {
9279
+ "type": "object",
9280
+ "properties": {
9281
+ "@type": {
9282
+ "type": "string"
9283
+ },
9284
+ "@context": {
9285
+ "type": "string"
9286
+ },
9287
+ "@version": {
9288
+ "type": "string"
9289
+ },
9290
+ "result": {
9291
+ "type": "string",
9292
+ "const": "Rejected"
9293
+ },
9294
+ "code": {
9295
+ "type": "string"
9296
+ },
9297
+ "message": {
9298
+ "type": "string"
9299
+ }
9300
+ },
9301
+ "required": [
9302
+ "@type",
9303
+ "result"
9304
+ ],
9305
+ "additionalProperties": false
9306
+ },
9307
+ "ErrorResponseItemJSONDerivations": {
9308
+ "$ref": "#/definitions/ErrorResponseItemJSON"
9309
+ },
9310
+ "ErrorResponseItemJSON": {
9311
+ "type": "object",
9312
+ "properties": {
9313
+ "@type": {
9314
+ "type": "string"
9315
+ },
9316
+ "@context": {
9317
+ "type": "string"
9318
+ },
9319
+ "@version": {
9320
+ "type": "string"
9321
+ },
9322
+ "result": {
9323
+ "type": "string",
9324
+ "const": "Error"
9325
+ },
9326
+ "code": {
9327
+ "type": "string"
9328
+ },
9329
+ "message": {
9330
+ "type": "string"
9331
+ }
9332
+ },
9333
+ "required": [
9334
+ "@type",
9335
+ "code",
9336
+ "message",
9337
+ "result"
9338
+ ],
9339
+ "additionalProperties": false
9340
+ },
9341
+ "MessageIdString": {
9342
+ "type": "string",
9343
+ "pattern": "MSG[A-Za-z0-9]{17}"
9344
+ }
9345
+ }
9346
+ };
9347
+ exports.CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest = {
9348
+ "$schema": "http://json-schema.org/draft-07/schema#",
9349
+ "$ref": "#/definitions/CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest",
9350
+ "definitions": {
9351
+ "CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest": {
9352
+ "type": "object",
9353
+ "properties": {
9354
+ "templateId": {
9355
+ "$ref": "#/definitions/RelationshipTemplateIdString"
9356
+ },
9357
+ "relationshipChangeId": {
9358
+ "$ref": "#/definitions/RelationshipChangeIdString"
9359
+ }
9360
+ },
9361
+ "required": [
9362
+ "templateId",
9363
+ "relationshipChangeId"
9364
+ ],
9365
+ "additionalProperties": false
9366
+ },
9367
+ "RelationshipTemplateIdString": {
9368
+ "type": "string",
9369
+ "pattern": "RLT[A-Za-z0-9]{17}"
9370
+ },
9371
+ "RelationshipChangeIdString": {
9372
+ "type": "string",
9373
+ "pattern": "RCH[A-Za-z0-9]{17}"
9374
+ }
9375
+ }
9376
+ };
9377
+ exports.CreateOutgoingRequestRequest = {
9378
+ "$schema": "http://json-schema.org/draft-07/schema#",
9379
+ "$ref": "#/definitions/CreateOutgoingRequestRequest",
9380
+ "definitions": {
9381
+ "CreateOutgoingRequestRequest": {
9382
+ "type": "object",
9383
+ "properties": {
9384
+ "content": {
9385
+ "type": "object",
9386
+ "properties": {
9387
+ "expiresAt": {
9388
+ "anyOf": [
9389
+ {
9390
+ "type": "string",
9391
+ "description": "The point in time the request is considered obsolete either technically (e.g. the request is no longer valid or its response is no longer accepted) or from a business perspective (e.g. the request is no longer of interest).",
9392
+ "default": "undefined - the request won't expire"
9393
+ },
9394
+ {
9395
+ "$ref": "#/definitions/ICoreDate",
9396
+ "description": "The point in time the request is considered obsolete either technically (e.g. the request is no longer valid or its response is no longer accepted) or from a business perspective (e.g. the request is no longer of interest).",
9397
+ "default": "undefined - the request won't expire"
9398
+ }
9399
+ ],
9400
+ "description": "The point in time the request is considered obsolete either technically (e.g. the request is no longer valid or its response is no longer accepted) or from a business perspective (e.g. the request is no longer of interest).",
9401
+ "default": "undefined - the request won't expire"
9402
+ },
9403
+ "items": {
9404
+ "anyOf": [
9405
+ {
9406
+ "type": "array",
9407
+ "items": {
9408
+ "anyOf": [
9409
+ {
9410
+ "$ref": "#/definitions/RequestItemGroupJSON"
9411
+ },
9412
+ {
9413
+ "$ref": "#/definitions/RequestItemJSONDerivations"
9414
+ }
9415
+ ]
9416
+ },
9417
+ "description": "The items of the Request. Can be either a single {@link RequestItemJSONDerivations RequestItem } or a {@link RequestItemGroupJSON RequestItemGroup } , which itself can contain further {@link RequestItemJSONDerivations RequestItems } ."
9418
+ },
9419
+ {
9420
+ "type": "array",
9421
+ "items": {
9422
+ "anyOf": [
9423
+ {
9424
+ "$ref": "#/definitions/IRequestItemGroup"
9425
+ },
9426
+ {
9427
+ "$ref": "#/definitions/IRequestItemDerivations"
9428
+ }
9429
+ ]
9430
+ },
9431
+ "description": "The items of the Request. Can be either a single {@link IRequestItemDerivations RequestItem } or a {@link IRequestItemGroup RequestItemGroup } , which itself can contain further {@link IRequestItemDerivations RequestItems } ."
9432
+ }
9433
+ ],
9434
+ "description": "The items of the Request. Can be either a single {@link RequestItemJSONDerivations RequestItem } or a {@link RequestItemGroupJSON RequestItemGroup } , which itself can contain further {@link RequestItemJSONDerivations RequestItems } ."
9435
+ },
9436
+ "title": {
9437
+ "type": "string",
9438
+ "description": "The human-readable title of this Request."
9439
+ },
9440
+ "description": {
9441
+ "type": "string",
9442
+ "description": "The human-readable description of this Request."
9443
+ },
9444
+ "metadata": {
9445
+ "anyOf": [
9446
+ {
9447
+ "type": "object",
9448
+ "description": "This property can be used to add some arbitrary metadata to this request. The content of this property will be copied into the response on the side of the recipient."
9449
+ },
9450
+ {
9451
+ "type": "object",
9452
+ "description": "This property can be used to add some arbitrary metadata to this request. The content of this property will be copied into the response on the side of the recipient."
9453
+ }
9454
+ ],
9455
+ "description": "This property can be used to add some arbitrary metadata to this request. The content of this property will be copied into the response on the side of the recipient."
9456
+ },
9457
+ "@context": {
9458
+ "type": "string"
9459
+ }
9460
+ },
9461
+ "required": [
9462
+ "items"
9463
+ ],
9464
+ "additionalProperties": false
9465
+ },
9466
+ "peer": {
9467
+ "$ref": "#/definitions/AddressString"
9468
+ }
9469
+ },
9470
+ "required": [
9471
+ "content",
9472
+ "peer"
9473
+ ],
9474
+ "additionalProperties": false
9475
+ },
9476
+ "ICoreDate": {
9477
+ "type": "object",
9478
+ "properties": {
9479
+ "date": {
9480
+ "type": "string"
9481
+ }
9482
+ },
9483
+ "required": [
9484
+ "date"
9485
+ ],
9486
+ "additionalProperties": false
9487
+ },
9488
+ "RequestItemGroupJSON": {
9489
+ "type": "object",
9490
+ "properties": {
9491
+ "@type": {
9492
+ "type": "string"
9493
+ },
9494
+ "@context": {
9495
+ "type": "string"
9496
+ },
9497
+ "@version": {
9498
+ "type": "string"
9499
+ },
9500
+ "title": {
9501
+ "type": "string",
9502
+ "description": "The human-readable title of this group."
9503
+ },
9504
+ "description": {
9505
+ "type": "string",
9506
+ "description": "The human-readable description of this group."
9507
+ },
9508
+ "mustBeAccepted": {
9509
+ "type": "boolean",
9510
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not."
9511
+ },
9512
+ "metadata": {
9513
+ "type": "object",
9514
+ "description": "This property can be used to add some arbitrary metadata to this group. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
9515
+ },
9516
+ "items": {
9517
+ "type": "array",
9518
+ "items": {
9519
+ "$ref": "#/definitions/RequestItemJSONDerivations"
9520
+ },
9521
+ "description": "The items of this group."
9522
+ }
9523
+ },
9524
+ "required": [
9525
+ "@type",
9526
+ "items",
9527
+ "mustBeAccepted"
9528
+ ],
9529
+ "additionalProperties": false,
9530
+ "description": "A RequestItemGroup can be used to group one or more RequestItems. This is useful if you want to\n* make sure that the items in the group can only be accepted together\n\n Example: when sending a `CreateRelationshipAttributeRequestItem` **and** a `ShareAttributeRequestItem` in a single Request where the latter one targets an attribute created by the first one, it it should be impossible to reject the first item, while accepting the second one.\n* visually group items on the UI and give the a common title/description"
9531
+ },
9532
+ "RequestItemJSONDerivations": {
9533
+ "anyOf": [
9534
+ {
9535
+ "$ref": "#/definitions/RequestItemJSON"
9536
+ },
9537
+ {
9538
+ "$ref": "#/definitions/CreateRelationshipAttributeRequestItemJSON"
9539
+ },
9540
+ {
9541
+ "$ref": "#/definitions/ShareAttributeRequestItemJSON"
9542
+ },
9543
+ {
9544
+ "$ref": "#/definitions/ProposeAttributeRequestItemJSON"
9545
+ },
9546
+ {
9547
+ "$ref": "#/definitions/ReadAttributeRequestItemJSON"
9548
+ },
9549
+ {
9550
+ "$ref": "#/definitions/ConsentRequestItemJSON"
9551
+ },
9552
+ {
9553
+ "$ref": "#/definitions/AuthenticationRequestItemJSON"
9554
+ }
9555
+ ]
9556
+ },
9557
+ "RequestItemJSON": {
9558
+ "type": "object",
9559
+ "properties": {
9560
+ "@type": {
9561
+ "type": "string"
9562
+ },
9563
+ "@context": {
9564
+ "type": "string"
9565
+ },
9566
+ "@version": {
9567
+ "type": "string"
9568
+ },
9569
+ "title": {
9570
+ "type": "string",
9571
+ "description": "The human-readable title of this item."
9572
+ },
9573
+ "description": {
9574
+ "type": "string",
9575
+ "description": "The human-readable description of this item."
9576
+ },
9577
+ "metadata": {
9578
+ "type": "object",
9579
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
9580
+ },
9581
+ "mustBeAccepted": {
9582
+ "type": "boolean",
9583
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
9584
+ },
9585
+ "requireManualDecision": {
9586
+ "type": "boolean",
9587
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
9588
+ }
9589
+ },
9590
+ "required": [
9591
+ "@type",
9592
+ "mustBeAccepted"
9593
+ ],
9594
+ "additionalProperties": false
9595
+ },
9596
+ "CreateRelationshipAttributeRequestItemJSON": {
9597
+ "type": "object",
9598
+ "properties": {
9599
+ "@type": {
9600
+ "type": "string"
9601
+ },
9602
+ "@context": {
9603
+ "type": "string"
9604
+ },
9605
+ "@version": {
9606
+ "type": "string"
9607
+ },
9608
+ "title": {
9609
+ "type": "string",
9610
+ "description": "The human-readable title of this item."
9611
+ },
9612
+ "description": {
9613
+ "type": "string",
9614
+ "description": "The human-readable description of this item."
9615
+ },
9616
+ "metadata": {
9617
+ "type": "object",
9618
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
9619
+ },
9620
+ "mustBeAccepted": {
9621
+ "type": "boolean",
9622
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
9623
+ },
9624
+ "requireManualDecision": {
9625
+ "type": "boolean",
9626
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
9627
+ },
9628
+ "attribute": {
9629
+ "$ref": "#/definitions/RelationshipAttributeJSON"
9630
+ }
9631
+ },
9632
+ "required": [
9633
+ "@type",
9634
+ "attribute",
9635
+ "mustBeAccepted"
9636
+ ],
9637
+ "additionalProperties": false
9638
+ },
9639
+ "RelationshipAttributeJSON": {
9640
+ "type": "object",
9641
+ "properties": {
9642
+ "@type": {
9643
+ "type": "string"
9644
+ },
9645
+ "@context": {
9646
+ "type": "string"
9647
+ },
9648
+ "@version": {
9649
+ "type": "string"
9650
+ },
9651
+ "owner": {
9652
+ "type": "string"
9653
+ },
9654
+ "validFrom": {
9655
+ "type": "string"
9656
+ },
9657
+ "validTo": {
9658
+ "type": "string"
9659
+ },
9660
+ "value": {
9661
+ "$ref": "#/definitions/AbstractAttributeValueJSON"
9662
+ },
9663
+ "key": {
9664
+ "type": "string"
9665
+ },
9666
+ "isTechnical": {
9667
+ "type": "boolean"
9668
+ },
9669
+ "confidentiality": {
9670
+ "$ref": "#/definitions/RelationshipAttributeConfidentiality"
9671
+ }
9672
+ },
9673
+ "required": [
9674
+ "@type",
9675
+ "confidentiality",
9676
+ "key",
9677
+ "owner",
9678
+ "value"
9679
+ ],
9680
+ "additionalProperties": false
9681
+ },
9682
+ "AbstractAttributeValueJSON": {
9683
+ "type": "object",
9684
+ "properties": {
9685
+ "@type": {
9686
+ "type": "string"
9687
+ },
9688
+ "@context": {
9689
+ "type": "string"
9690
+ },
9691
+ "@version": {
9692
+ "type": "string"
9693
+ }
9694
+ },
9695
+ "required": [
9696
+ "@type"
9697
+ ]
9698
+ },
9699
+ "RelationshipAttributeConfidentiality": {
9700
+ "type": "string",
9701
+ "enum": [
9702
+ "public",
9703
+ "private",
9704
+ "protected"
9705
+ ]
9706
+ },
9707
+ "ShareAttributeRequestItemJSON": {
9708
+ "type": "object",
9709
+ "properties": {
9710
+ "@type": {
9711
+ "type": "string"
9712
+ },
9713
+ "@context": {
9714
+ "type": "string"
9715
+ },
9716
+ "@version": {
9717
+ "type": "string"
9718
+ },
9719
+ "title": {
9720
+ "type": "string",
9721
+ "description": "The human-readable title of this item."
9722
+ },
9723
+ "description": {
9724
+ "type": "string",
9725
+ "description": "The human-readable description of this item."
9726
+ },
9727
+ "metadata": {
9728
+ "type": "object",
9729
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
9730
+ },
9731
+ "mustBeAccepted": {
9732
+ "type": "boolean",
9733
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
9734
+ },
9735
+ "requireManualDecision": {
9736
+ "type": "boolean",
9737
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
9738
+ },
9739
+ "attribute": {
9740
+ "anyOf": [
9741
+ {
9742
+ "$ref": "#/definitions/IdentityAttributeJSON"
9743
+ },
9744
+ {
9745
+ "$ref": "#/definitions/RelationshipAttributeJSON"
9746
+ }
9747
+ ]
9748
+ },
9749
+ "sourceAttributeId": {
9750
+ "type": "string"
9751
+ }
9752
+ },
9753
+ "required": [
9754
+ "@type",
9755
+ "attribute",
9756
+ "mustBeAccepted",
9757
+ "sourceAttributeId"
9758
+ ],
9759
+ "additionalProperties": false
9760
+ },
9761
+ "IdentityAttributeJSON": {
9762
+ "type": "object",
9763
+ "properties": {
9764
+ "@type": {
9765
+ "type": "string"
9766
+ },
9767
+ "@context": {
9768
+ "type": "string"
9769
+ },
9770
+ "@version": {
9771
+ "type": "string"
9772
+ },
9773
+ "owner": {
9774
+ "type": "string"
9775
+ },
9776
+ "validFrom": {
9777
+ "type": "string"
9778
+ },
9779
+ "validTo": {
9780
+ "type": "string"
9781
+ },
9782
+ "value": {
9783
+ "$ref": "#/definitions/AbstractAttributeValueJSON"
9784
+ },
9785
+ "tags": {
9786
+ "type": "array",
9787
+ "items": {
9788
+ "type": "string"
9789
+ }
9790
+ }
9791
+ },
9792
+ "required": [
9793
+ "@type",
9794
+ "owner",
9795
+ "value"
9796
+ ],
9797
+ "additionalProperties": false
9798
+ },
9799
+ "ProposeAttributeRequestItemJSON": {
9800
+ "type": "object",
9801
+ "properties": {
9802
+ "@type": {
9803
+ "type": "string"
9804
+ },
9805
+ "@context": {
9806
+ "type": "string"
9807
+ },
9808
+ "@version": {
9809
+ "type": "string"
9810
+ },
9811
+ "title": {
9812
+ "type": "string",
9813
+ "description": "The human-readable title of this item."
9814
+ },
9815
+ "description": {
9816
+ "type": "string",
9817
+ "description": "The human-readable description of this item."
9818
+ },
9819
+ "metadata": {
9820
+ "type": "object",
9821
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
9822
+ },
9823
+ "mustBeAccepted": {
9824
+ "type": "boolean",
9825
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
9826
+ },
9827
+ "requireManualDecision": {
9828
+ "type": "boolean",
9829
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
9830
+ },
9831
+ "query": {
9832
+ "anyOf": [
9833
+ {
9834
+ "$ref": "#/definitions/IdentityAttributeQueryJSON"
9835
+ },
9836
+ {
9837
+ "$ref": "#/definitions/RelationshipAttributeQueryJSON"
9838
+ }
9839
+ ]
9840
+ },
9841
+ "attribute": {
9842
+ "anyOf": [
9843
+ {
9844
+ "$ref": "#/definitions/IdentityAttributeJSON"
9845
+ },
9846
+ {
9847
+ "$ref": "#/definitions/RelationshipAttributeJSON"
9848
+ }
9849
+ ]
9850
+ }
9851
+ },
9852
+ "required": [
9853
+ "@type",
9854
+ "attribute",
9855
+ "mustBeAccepted",
9856
+ "query"
9857
+ ],
9858
+ "additionalProperties": false
9859
+ },
9860
+ "IdentityAttributeQueryJSON": {
9861
+ "type": "object",
9862
+ "properties": {
9863
+ "@type": {
9864
+ "type": "string"
9865
+ },
9866
+ "@context": {
9867
+ "type": "string"
9868
+ },
9869
+ "@version": {
9870
+ "type": "string"
9871
+ },
9872
+ "valueType": {
9873
+ "type": "string"
9874
+ },
9875
+ "validFrom": {
9876
+ "type": "string"
9877
+ },
9878
+ "validTo": {
9879
+ "type": "string"
9880
+ },
9881
+ "tags": {
9882
+ "type": "array",
9883
+ "items": {
9884
+ "type": "string"
9885
+ }
9886
+ }
9887
+ },
9888
+ "additionalProperties": false,
9889
+ "required": [
9890
+ "@type",
9891
+ "valueType"
9892
+ ]
9893
+ },
9894
+ "RelationshipAttributeQueryJSON": {
9895
+ "type": "object",
9896
+ "properties": {
9897
+ "@type": {
9898
+ "type": "string"
9899
+ },
9900
+ "@context": {
9901
+ "type": "string"
9902
+ },
9903
+ "@version": {
9904
+ "type": "string"
9905
+ },
9906
+ "valueType": {
9907
+ "type": "string"
9908
+ },
9909
+ "validFrom": {
9910
+ "type": "string"
9911
+ },
9912
+ "validTo": {
9913
+ "type": "string"
9914
+ },
9915
+ "key": {
9916
+ "type": "string"
9917
+ },
9918
+ "owner": {
9919
+ "type": "string"
9920
+ },
9921
+ "thirdParty": {
9922
+ "type": "string"
9923
+ },
9924
+ "attributeCreationHints": {
9925
+ "$ref": "#/definitions/RelationshipAttributeCreationHintsJSON"
9926
+ }
9927
+ },
9928
+ "required": [
9929
+ "@type",
9930
+ "attributeCreationHints",
9931
+ "key",
9932
+ "owner",
9933
+ "valueType"
9934
+ ],
9935
+ "additionalProperties": false
9936
+ },
9937
+ "RelationshipAttributeCreationHintsJSON": {
9938
+ "type": "object",
9939
+ "properties": {
9940
+ "title": {
9941
+ "type": "string"
9942
+ },
9943
+ "description": {
9944
+ "type": "string"
9945
+ },
9946
+ "valueHints": {
9947
+ "$ref": "#/definitions/ValueHintsJSON"
9948
+ },
9949
+ "isTechnical": {
9950
+ "type": "boolean"
9951
+ },
9952
+ "confidentiality": {
9953
+ "$ref": "#/definitions/RelationshipAttributeConfidentiality"
9954
+ }
9955
+ },
9956
+ "required": [
9957
+ "title",
9958
+ "confidentiality"
9959
+ ],
9960
+ "additionalProperties": false
9961
+ },
9962
+ "ValueHintsJSON": {
9963
+ "type": "object",
9964
+ "properties": {
9965
+ "@type": {
9966
+ "type": "string"
9967
+ },
9968
+ "@context": {
9969
+ "type": "string"
9970
+ },
9971
+ "@version": {
9972
+ "type": "string"
9973
+ },
9974
+ "editHelp": {
9975
+ "type": "string"
9976
+ },
9977
+ "min": {
9978
+ "type": "number"
9979
+ },
9980
+ "max": {
9981
+ "type": "number"
9982
+ },
9983
+ "pattern": {
9984
+ "type": "string"
9985
+ },
9986
+ "values": {
9987
+ "type": "array",
9988
+ "items": {
9989
+ "$ref": "#/definitions/ValueHintsValueJSON"
9990
+ }
9991
+ },
9992
+ "defaultValue": {
9993
+ "type": [
9994
+ "string",
9995
+ "number",
9996
+ "boolean"
9997
+ ]
9998
+ },
9999
+ "propertyHints": {
10000
+ "type": "object",
10001
+ "additionalProperties": {
10002
+ "$ref": "#/definitions/ValueHintsJSON"
10003
+ }
10004
+ }
10005
+ },
10006
+ "additionalProperties": false,
10007
+ "required": [
10008
+ "@type"
10009
+ ]
10010
+ },
10011
+ "ValueHintsValueJSON": {
10012
+ "type": "object",
10013
+ "properties": {
10014
+ "key": {
10015
+ "type": [
10016
+ "string",
10017
+ "number",
10018
+ "boolean"
10019
+ ]
10020
+ },
10021
+ "displayName": {
10022
+ "type": "string"
10023
+ }
10024
+ },
10025
+ "required": [
10026
+ "key",
10027
+ "displayName"
10028
+ ],
10029
+ "additionalProperties": false
10030
+ },
10031
+ "ReadAttributeRequestItemJSON": {
10032
+ "type": "object",
10033
+ "properties": {
10034
+ "@type": {
10035
+ "type": "string"
10036
+ },
10037
+ "@context": {
10038
+ "type": "string"
10039
+ },
10040
+ "@version": {
10041
+ "type": "string"
10042
+ },
10043
+ "title": {
10044
+ "type": "string",
10045
+ "description": "The human-readable title of this item."
10046
+ },
10047
+ "description": {
10048
+ "type": "string",
10049
+ "description": "The human-readable description of this item."
10050
+ },
10051
+ "metadata": {
10052
+ "type": "object",
10053
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10054
+ },
10055
+ "mustBeAccepted": {
10056
+ "type": "boolean",
10057
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
10058
+ },
10059
+ "requireManualDecision": {
10060
+ "type": "boolean",
10061
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
10062
+ },
10063
+ "query": {
10064
+ "$ref": "#/definitions/AbstractAttributeQueryJSON"
10065
+ }
10066
+ },
10067
+ "required": [
10068
+ "@type",
10069
+ "mustBeAccepted",
10070
+ "query"
10071
+ ],
10072
+ "additionalProperties": false
10073
+ },
10074
+ "AbstractAttributeQueryJSON": {
10075
+ "type": "object",
10076
+ "properties": {
10077
+ "@type": {
10078
+ "type": "string"
10079
+ },
10080
+ "@context": {
10081
+ "type": "string"
10082
+ },
10083
+ "@version": {
10084
+ "type": "string"
10085
+ },
10086
+ "valueType": {
10087
+ "type": "string"
10088
+ },
10089
+ "validFrom": {
10090
+ "type": "string"
10091
+ },
10092
+ "validTo": {
10093
+ "type": "string"
10094
+ }
10095
+ },
10096
+ "required": [
10097
+ "@type",
10098
+ "valueType"
10099
+ ],
10100
+ "additionalProperties": false
10101
+ },
10102
+ "ConsentRequestItemJSON": {
10103
+ "type": "object",
10104
+ "properties": {
10105
+ "@type": {
10106
+ "type": "string"
10107
+ },
10108
+ "@context": {
10109
+ "type": "string"
10110
+ },
10111
+ "@version": {
10112
+ "type": "string"
10113
+ },
10114
+ "title": {
10115
+ "type": "string",
10116
+ "description": "The human-readable title of this item."
10117
+ },
10118
+ "description": {
10119
+ "type": "string",
10120
+ "description": "The human-readable description of this item."
10121
+ },
10122
+ "metadata": {
10123
+ "type": "object",
10124
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10125
+ },
10126
+ "mustBeAccepted": {
10127
+ "type": "boolean",
10128
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
10129
+ },
10130
+ "requireManualDecision": {
10131
+ "type": "boolean",
10132
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
10133
+ },
10134
+ "consent": {
10135
+ "type": "string"
10136
+ },
10137
+ "link": {
10138
+ "type": "string"
10139
+ }
10140
+ },
10141
+ "required": [
10142
+ "@type",
10143
+ "consent",
10144
+ "mustBeAccepted"
10145
+ ],
10146
+ "additionalProperties": false
10147
+ },
10148
+ "AuthenticationRequestItemJSON": {
10149
+ "type": "object",
10150
+ "additionalProperties": false,
10151
+ "properties": {
10152
+ "@type": {
10153
+ "type": "string"
10154
+ },
10155
+ "@context": {
10156
+ "type": "string"
10157
+ },
10158
+ "@version": {
10159
+ "type": "string"
10160
+ },
10161
+ "title": {
10162
+ "type": "string",
10163
+ "description": "The human-readable title of this item."
10164
+ },
10165
+ "description": {
10166
+ "type": "string",
10167
+ "description": "The human-readable description of this item."
10168
+ },
10169
+ "metadata": {
10170
+ "type": "object",
10171
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10172
+ },
10173
+ "mustBeAccepted": {
10174
+ "type": "boolean",
10175
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroupJSON RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItemJSON RequestItem } can only be accepted if the parent group is accepted as well."
10176
+ },
10177
+ "requireManualDecision": {
10178
+ "type": "boolean",
10179
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
10180
+ }
10181
+ },
10182
+ "required": [
10183
+ "@type",
10184
+ "mustBeAccepted"
10185
+ ]
10186
+ },
10187
+ "IRequestItemGroup": {
10188
+ "type": "object",
10189
+ "properties": {
10190
+ "title": {
10191
+ "type": "string",
10192
+ "description": "The human-readable title of this group."
10193
+ },
10194
+ "description": {
10195
+ "type": "string",
10196
+ "description": "The human-readable description of this group."
10197
+ },
10198
+ "mustBeAccepted": {
10199
+ "type": "boolean",
10200
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not."
10201
+ },
10202
+ "metadata": {
10203
+ "type": "object",
10204
+ "description": "This property can be used to add some arbitrary metadata to this group. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10205
+ },
10206
+ "items": {
10207
+ "type": "array",
10208
+ "items": {
10209
+ "$ref": "#/definitions/IRequestItemDerivations"
10210
+ },
10211
+ "description": "The items of this group."
10212
+ }
10213
+ },
10214
+ "required": [
10215
+ "mustBeAccepted",
10216
+ "items"
10217
+ ],
10218
+ "additionalProperties": false,
10219
+ "description": "A RequestItemGroup can be used to group one or more RequestItems. This is useful if you want to\n* make sure that the items in the group can only be accepted together\n\n Example: when sending a `CreateRelationshipAttributeRequestItem` **and** a `ShareAttributeRequestItem` in a single Request where the latter one targets an attribute created by the first one, it it should be impossible to reject the first item, while accepting the second one.\n* visually group items on the UI and give the a common title/description"
10220
+ },
10221
+ "IRequestItemDerivations": {
10222
+ "anyOf": [
10223
+ {
10224
+ "$ref": "#/definitions/IRequestItem"
10225
+ },
10226
+ {
10227
+ "$ref": "#/definitions/ICreateRelationshipAttributeRequestItem"
10228
+ },
10229
+ {
10230
+ "$ref": "#/definitions/IShareAttributeRequestItem"
10231
+ },
10232
+ {
10233
+ "$ref": "#/definitions/IProposeAttributeRequestItem"
10234
+ },
10235
+ {
10236
+ "$ref": "#/definitions/IReadAttributeRequestItem"
10237
+ },
10238
+ {
10239
+ "$ref": "#/definitions/IConsentRequestItem"
10240
+ },
10241
+ {
10242
+ "$ref": "#/definitions/IAuthenticationRequestItem"
10243
+ }
10244
+ ]
10245
+ },
10246
+ "IRequestItem": {
10247
+ "type": "object",
10248
+ "properties": {
10249
+ "title": {
10250
+ "type": "string",
10251
+ "description": "The human-readable title of this item."
10252
+ },
10253
+ "description": {
10254
+ "type": "string",
10255
+ "description": "The human-readable description of this item."
10256
+ },
10257
+ "metadata": {
10258
+ "type": "object",
10259
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10260
+ },
10261
+ "mustBeAccepted": {
10262
+ "type": "boolean",
10263
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
10264
+ },
10265
+ "requireManualDecision": {
10266
+ "type": "boolean",
10267
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
10268
+ }
10269
+ },
10270
+ "required": [
10271
+ "mustBeAccepted"
10272
+ ],
10273
+ "additionalProperties": false
10274
+ },
10275
+ "ICreateRelationshipAttributeRequestItem": {
10276
+ "type": "object",
10277
+ "properties": {
10278
+ "title": {
10279
+ "type": "string",
10280
+ "description": "The human-readable title of this item."
10281
+ },
10282
+ "description": {
10283
+ "type": "string",
10284
+ "description": "The human-readable description of this item."
10285
+ },
10286
+ "metadata": {
10287
+ "type": "object",
10288
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10289
+ },
10290
+ "mustBeAccepted": {
10291
+ "type": "boolean",
10292
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
10293
+ },
10294
+ "requireManualDecision": {
10295
+ "type": "boolean",
10296
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
10297
+ },
10298
+ "attribute": {
10299
+ "$ref": "#/definitions/IRelationshipAttribute"
9015
10300
  }
9016
10301
  },
9017
10302
  "required": [
9018
- "@type",
9019
- "result"
10303
+ "attribute",
10304
+ "mustBeAccepted"
9020
10305
  ],
9021
10306
  "additionalProperties": false
9022
10307
  },
9023
- "CreateRelationshipAttributeAcceptResponseItemJSON": {
10308
+ "IRelationshipAttribute": {
9024
10309
  "type": "object",
9025
10310
  "properties": {
9026
- "@type": {
9027
- "type": "string"
10311
+ "owner": {
10312
+ "$ref": "#/definitions/ICoreAddress"
9028
10313
  },
9029
- "@context": {
9030
- "type": "string"
10314
+ "validFrom": {
10315
+ "$ref": "#/definitions/ICoreDate"
9031
10316
  },
9032
- "@version": {
9033
- "type": "string"
10317
+ "validTo": {
10318
+ "$ref": "#/definitions/ICoreDate"
9034
10319
  },
9035
- "result": {
9036
- "type": "string",
9037
- "const": "Accepted"
10320
+ "value": {
10321
+ "$ref": "#/definitions/IAbstractAttributeValue"
9038
10322
  },
9039
- "attributeId": {
10323
+ "key": {
9040
10324
  "type": "string"
10325
+ },
10326
+ "isTechnical": {
10327
+ "type": "boolean"
10328
+ },
10329
+ "confidentiality": {
10330
+ "$ref": "#/definitions/RelationshipAttributeConfidentiality"
9041
10331
  }
9042
10332
  },
9043
10333
  "required": [
9044
- "@type",
9045
- "attributeId",
9046
- "result"
10334
+ "confidentiality",
10335
+ "key",
10336
+ "owner",
10337
+ "value"
9047
10338
  ],
9048
10339
  "additionalProperties": false
9049
10340
  },
9050
- "ShareAttributeAcceptResponseItemJSON": {
10341
+ "ICoreAddress": {
9051
10342
  "type": "object",
9052
10343
  "properties": {
9053
- "@type": {
9054
- "type": "string"
9055
- },
9056
- "@context": {
9057
- "type": "string"
9058
- },
9059
- "@version": {
9060
- "type": "string"
9061
- },
9062
- "result": {
9063
- "type": "string",
9064
- "const": "Accepted"
9065
- },
9066
- "attributeId": {
10344
+ "address": {
9067
10345
  "type": "string"
9068
10346
  }
9069
10347
  },
9070
10348
  "required": [
9071
- "@type",
9072
- "attributeId",
9073
- "result"
10349
+ "address"
9074
10350
  ],
9075
10351
  "additionalProperties": false
9076
10352
  },
9077
- "ProposeAttributeAcceptResponseItemJSON": {
10353
+ "IAbstractAttributeValue": {
10354
+ "type": "object",
10355
+ "additionalProperties": false,
10356
+ "properties": {}
10357
+ },
10358
+ "IShareAttributeRequestItem": {
9078
10359
  "type": "object",
9079
10360
  "properties": {
9080
- "@type": {
9081
- "type": "string"
10361
+ "title": {
10362
+ "type": "string",
10363
+ "description": "The human-readable title of this item."
9082
10364
  },
9083
- "@context": {
9084
- "type": "string"
10365
+ "description": {
10366
+ "type": "string",
10367
+ "description": "The human-readable description of this item."
9085
10368
  },
9086
- "@version": {
9087
- "type": "string"
10369
+ "metadata": {
10370
+ "type": "object",
10371
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
9088
10372
  },
9089
- "result": {
9090
- "type": "string",
9091
- "const": "Accepted"
10373
+ "mustBeAccepted": {
10374
+ "type": "boolean",
10375
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
9092
10376
  },
9093
- "attributeId": {
9094
- "type": "string"
10377
+ "requireManualDecision": {
10378
+ "type": "boolean",
10379
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
9095
10380
  },
9096
10381
  "attribute": {
9097
10382
  "anyOf": [
9098
10383
  {
9099
- "$ref": "#/definitions/IdentityAttributeJSON"
10384
+ "$ref": "#/definitions/IIdentityAttribute"
9100
10385
  },
9101
10386
  {
9102
- "$ref": "#/definitions/RelationshipAttributeJSON"
10387
+ "$ref": "#/definitions/IRelationshipAttribute"
9103
10388
  }
9104
10389
  ]
10390
+ },
10391
+ "sourceAttributeId": {
10392
+ "$ref": "#/definitions/ICoreId"
9105
10393
  }
9106
10394
  },
9107
10395
  "required": [
9108
- "@type",
9109
10396
  "attribute",
9110
- "attributeId",
9111
- "result"
10397
+ "mustBeAccepted",
10398
+ "sourceAttributeId"
9112
10399
  ],
9113
10400
  "additionalProperties": false
9114
10401
  },
9115
- "IdentityAttributeJSON": {
10402
+ "IIdentityAttribute": {
9116
10403
  "type": "object",
9117
10404
  "properties": {
9118
- "@type": {
9119
- "type": "string"
9120
- },
9121
- "@context": {
9122
- "type": "string"
9123
- },
9124
- "@version": {
9125
- "type": "string"
9126
- },
9127
10405
  "owner": {
9128
- "type": "string"
10406
+ "$ref": "#/definitions/ICoreAddress"
9129
10407
  },
9130
10408
  "validFrom": {
9131
- "type": "string"
10409
+ "$ref": "#/definitions/ICoreDate"
9132
10410
  },
9133
10411
  "validTo": {
9134
- "type": "string"
10412
+ "$ref": "#/definitions/ICoreDate"
9135
10413
  },
9136
10414
  "value": {
9137
- "$ref": "#/definitions/AbstractAttributeValueJSON"
10415
+ "$ref": "#/definitions/IAbstractAttributeValue"
9138
10416
  },
9139
10417
  "tags": {
9140
10418
  "type": "array",
@@ -9144,56 +10422,143 @@ exports.CompleteOutgoingRequestRequest = {
9144
10422
  }
9145
10423
  },
9146
10424
  "required": [
9147
- "@type",
9148
10425
  "owner",
9149
10426
  "value"
9150
10427
  ],
9151
10428
  "additionalProperties": false
9152
10429
  },
9153
- "AbstractAttributeValueJSON": {
10430
+ "ICoreId": {
9154
10431
  "type": "object",
9155
10432
  "properties": {
9156
- "@type": {
10433
+ "id": {
9157
10434
  "type": "string"
10435
+ }
10436
+ },
10437
+ "required": [
10438
+ "id"
10439
+ ],
10440
+ "additionalProperties": false
10441
+ },
10442
+ "IProposeAttributeRequestItem": {
10443
+ "type": "object",
10444
+ "properties": {
10445
+ "title": {
10446
+ "type": "string",
10447
+ "description": "The human-readable title of this item."
9158
10448
  },
9159
- "@context": {
9160
- "type": "string"
10449
+ "description": {
10450
+ "type": "string",
10451
+ "description": "The human-readable description of this item."
9161
10452
  },
9162
- "@version": {
9163
- "type": "string"
10453
+ "metadata": {
10454
+ "type": "object",
10455
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10456
+ },
10457
+ "mustBeAccepted": {
10458
+ "type": "boolean",
10459
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
10460
+ },
10461
+ "requireManualDecision": {
10462
+ "type": "boolean",
10463
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
10464
+ },
10465
+ "query": {
10466
+ "anyOf": [
10467
+ {
10468
+ "$ref": "#/definitions/IIdentityAttributeQuery"
10469
+ },
10470
+ {
10471
+ "$ref": "#/definitions/IRelationshipAttributeQuery"
10472
+ }
10473
+ ]
10474
+ },
10475
+ "attribute": {
10476
+ "anyOf": [
10477
+ {
10478
+ "$ref": "#/definitions/IIdentityAttribute"
10479
+ },
10480
+ {
10481
+ "$ref": "#/definitions/IRelationshipAttribute"
10482
+ }
10483
+ ]
9164
10484
  }
9165
10485
  },
9166
10486
  "required": [
9167
- "@type"
9168
- ]
10487
+ "attribute",
10488
+ "mustBeAccepted",
10489
+ "query"
10490
+ ],
10491
+ "additionalProperties": false
9169
10492
  },
9170
- "RelationshipAttributeJSON": {
10493
+ "IIdentityAttributeQuery": {
9171
10494
  "type": "object",
9172
10495
  "properties": {
9173
- "@type": {
10496
+ "valueType": {
9174
10497
  "type": "string"
9175
10498
  },
9176
- "@context": {
9177
- "type": "string"
10499
+ "validFrom": {
10500
+ "$ref": "#/definitions/ICoreDate"
9178
10501
  },
9179
- "@version": {
9180
- "type": "string"
10502
+ "validTo": {
10503
+ "$ref": "#/definitions/ICoreDate"
9181
10504
  },
9182
- "owner": {
10505
+ "tags": {
10506
+ "type": "array",
10507
+ "items": {
10508
+ "type": "string"
10509
+ }
10510
+ }
10511
+ },
10512
+ "additionalProperties": false,
10513
+ "required": [
10514
+ "valueType"
10515
+ ]
10516
+ },
10517
+ "IRelationshipAttributeQuery": {
10518
+ "type": "object",
10519
+ "properties": {
10520
+ "valueType": {
9183
10521
  "type": "string"
9184
10522
  },
9185
10523
  "validFrom": {
9186
- "type": "string"
10524
+ "$ref": "#/definitions/ICoreDate"
9187
10525
  },
9188
10526
  "validTo": {
10527
+ "$ref": "#/definitions/ICoreDate"
10528
+ },
10529
+ "key": {
9189
10530
  "type": "string"
9190
10531
  },
9191
- "value": {
9192
- "$ref": "#/definitions/AbstractAttributeValueJSON"
10532
+ "owner": {
10533
+ "$ref": "#/definitions/ICoreAddress"
9193
10534
  },
9194
- "key": {
10535
+ "thirdParty": {
10536
+ "$ref": "#/definitions/ICoreAddress"
10537
+ },
10538
+ "attributeCreationHints": {
10539
+ "$ref": "#/definitions/IRelationshipAttributeCreationHints"
10540
+ }
10541
+ },
10542
+ "required": [
10543
+ "attributeCreationHints",
10544
+ "key",
10545
+ "owner",
10546
+ "valueType"
10547
+ ],
10548
+ "additionalProperties": false
10549
+ },
10550
+ "IRelationshipAttributeCreationHints": {
10551
+ "type": "object",
10552
+ "properties": {
10553
+ "title": {
10554
+ "type": "string"
10555
+ },
10556
+ "description": {
9195
10557
  "type": "string"
9196
10558
  },
10559
+ "valueHints": {
10560
+ "$ref": "#/definitions/IValueHints"
10561
+ },
9197
10562
  "isTechnical": {
9198
10563
  "type": "boolean"
9199
10564
  },
@@ -9202,159 +10567,187 @@ exports.CompleteOutgoingRequestRequest = {
9202
10567
  }
9203
10568
  },
9204
10569
  "required": [
9205
- "@type",
9206
- "confidentiality",
9207
- "key",
9208
- "owner",
9209
- "value"
10570
+ "title",
10571
+ "confidentiality"
9210
10572
  ],
9211
10573
  "additionalProperties": false
9212
10574
  },
9213
- "RelationshipAttributeConfidentiality": {
9214
- "type": "string",
9215
- "enum": [
9216
- "public",
9217
- "private",
9218
- "protected"
9219
- ]
9220
- },
9221
- "ReadAttributeAcceptResponseItemJSON": {
10575
+ "IValueHints": {
9222
10576
  "type": "object",
9223
10577
  "properties": {
9224
- "@type": {
10578
+ "editHelp": {
9225
10579
  "type": "string"
9226
10580
  },
9227
- "@context": {
9228
- "type": "string"
10581
+ "min": {
10582
+ "type": "number"
9229
10583
  },
9230
- "@version": {
10584
+ "max": {
10585
+ "type": "number"
10586
+ },
10587
+ "pattern": {
9231
10588
  "type": "string"
9232
10589
  },
9233
- "result": {
9234
- "type": "string",
9235
- "const": "Accepted"
10590
+ "values": {
10591
+ "type": "array",
10592
+ "items": {
10593
+ "$ref": "#/definitions/IValueHintsValue"
10594
+ }
9236
10595
  },
9237
- "attributeId": {
9238
- "type": "string"
10596
+ "defaultValue": {
10597
+ "type": [
10598
+ "string",
10599
+ "number",
10600
+ "boolean"
10601
+ ]
9239
10602
  },
9240
- "attribute": {
9241
- "anyOf": [
9242
- {
9243
- "$ref": "#/definitions/IdentityAttributeJSON"
9244
- },
9245
- {
9246
- "$ref": "#/definitions/RelationshipAttributeJSON"
9247
- }
10603
+ "propertyHints": {
10604
+ "type": "object",
10605
+ "additionalProperties": {
10606
+ "$ref": "#/definitions/IValueHints"
10607
+ }
10608
+ }
10609
+ },
10610
+ "additionalProperties": false
10611
+ },
10612
+ "IValueHintsValue": {
10613
+ "type": "object",
10614
+ "properties": {
10615
+ "key": {
10616
+ "type": [
10617
+ "string",
10618
+ "number",
10619
+ "boolean"
9248
10620
  ]
10621
+ },
10622
+ "displayName": {
10623
+ "type": "string"
9249
10624
  }
9250
10625
  },
9251
10626
  "required": [
9252
- "@type",
9253
- "attribute",
9254
- "attributeId",
9255
- "result"
10627
+ "key",
10628
+ "displayName"
9256
10629
  ],
9257
10630
  "additionalProperties": false
9258
10631
  },
9259
- "RejectResponseItemJSONDerivations": {
9260
- "$ref": "#/definitions/RejectResponseItemJSON"
9261
- },
9262
- "RejectResponseItemJSON": {
10632
+ "IReadAttributeRequestItem": {
9263
10633
  "type": "object",
9264
10634
  "properties": {
9265
- "@type": {
9266
- "type": "string"
10635
+ "title": {
10636
+ "type": "string",
10637
+ "description": "The human-readable title of this item."
9267
10638
  },
9268
- "@context": {
9269
- "type": "string"
10639
+ "description": {
10640
+ "type": "string",
10641
+ "description": "The human-readable description of this item."
9270
10642
  },
9271
- "@version": {
9272
- "type": "string"
10643
+ "metadata": {
10644
+ "type": "object",
10645
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
9273
10646
  },
9274
- "result": {
9275
- "type": "string",
9276
- "const": "Rejected"
10647
+ "mustBeAccepted": {
10648
+ "type": "boolean",
10649
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
9277
10650
  },
9278
- "code": {
9279
- "type": "string"
10651
+ "requireManualDecision": {
10652
+ "type": "boolean",
10653
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
9280
10654
  },
9281
- "message": {
9282
- "type": "string"
10655
+ "query": {
10656
+ "$ref": "#/definitions/IAbstractAttributeQuery"
9283
10657
  }
9284
10658
  },
9285
10659
  "required": [
9286
- "@type",
9287
- "result"
10660
+ "mustBeAccepted",
10661
+ "query"
9288
10662
  ],
9289
10663
  "additionalProperties": false
9290
10664
  },
9291
- "ErrorResponseItemJSONDerivations": {
9292
- "$ref": "#/definitions/ErrorResponseItemJSON"
9293
- },
9294
- "ErrorResponseItemJSON": {
10665
+ "IAbstractAttributeQuery": {
9295
10666
  "type": "object",
9296
10667
  "properties": {
9297
- "@type": {
10668
+ "valueType": {
9298
10669
  "type": "string"
9299
10670
  },
9300
- "@context": {
9301
- "type": "string"
10671
+ "validFrom": {
10672
+ "$ref": "#/definitions/ICoreDate"
9302
10673
  },
9303
- "@version": {
9304
- "type": "string"
10674
+ "validTo": {
10675
+ "$ref": "#/definitions/ICoreDate"
10676
+ }
10677
+ },
10678
+ "required": [
10679
+ "valueType"
10680
+ ],
10681
+ "additionalProperties": false
10682
+ },
10683
+ "IConsentRequestItem": {
10684
+ "type": "object",
10685
+ "properties": {
10686
+ "title": {
10687
+ "type": "string",
10688
+ "description": "The human-readable title of this item."
9305
10689
  },
9306
- "result": {
10690
+ "description": {
9307
10691
  "type": "string",
9308
- "const": "Error"
10692
+ "description": "The human-readable description of this item."
9309
10693
  },
9310
- "code": {
10694
+ "metadata": {
10695
+ "type": "object",
10696
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10697
+ },
10698
+ "mustBeAccepted": {
10699
+ "type": "boolean",
10700
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
10701
+ },
10702
+ "requireManualDecision": {
10703
+ "type": "boolean",
10704
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
10705
+ },
10706
+ "consent": {
9311
10707
  "type": "string"
9312
10708
  },
9313
- "message": {
10709
+ "link": {
9314
10710
  "type": "string"
9315
10711
  }
9316
10712
  },
9317
10713
  "required": [
9318
- "@type",
9319
- "code",
9320
- "message",
9321
- "result"
10714
+ "consent",
10715
+ "mustBeAccepted"
9322
10716
  ],
9323
10717
  "additionalProperties": false
9324
10718
  },
9325
- "MessageIdString": {
9326
- "type": "string",
9327
- "pattern": "MSG[A-Za-z0-9]{17}"
9328
- }
9329
- }
9330
- };
9331
- exports.CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest = {
9332
- "$schema": "http://json-schema.org/draft-07/schema#",
9333
- "$ref": "#/definitions/CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest",
9334
- "definitions": {
9335
- "CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest": {
10719
+ "IAuthenticationRequestItem": {
9336
10720
  "type": "object",
10721
+ "additionalProperties": false,
9337
10722
  "properties": {
9338
- "templateId": {
9339
- "$ref": "#/definitions/RelationshipTemplateIdString"
10723
+ "title": {
10724
+ "type": "string",
10725
+ "description": "The human-readable title of this item."
9340
10726
  },
9341
- "relationshipChangeId": {
9342
- "$ref": "#/definitions/RelationshipChangeIdString"
10727
+ "description": {
10728
+ "type": "string",
10729
+ "description": "The human-readable description of this item."
10730
+ },
10731
+ "metadata": {
10732
+ "type": "object",
10733
+ "description": "This property can be used to add some arbitrary metadata to this item. The content of this property will be copied into the response on the side of the recipient, so the sender can use it to identify the group content as they receive the response."
10734
+ },
10735
+ "mustBeAccepted": {
10736
+ "type": "boolean",
10737
+ "description": "If set to `true`, the recipient has to accept this group if he wants to accept the Request. If set to `false`, the recipient can decide whether he wants to accept it or not.\n\nCaution: this setting does not take effect in case it is inside of a\n {@link RequestItemGroup RequestItemGroup } , which is not accepted by the recipient, since a {@link RequestItem RequestItem } can only be accepted if the parent group is accepted as well."
10738
+ },
10739
+ "requireManualDecision": {
10740
+ "type": "boolean",
10741
+ "description": "If set to `true`, it advices the recipient of this RequestItem to carefully consider their decision and especially do not decide based on some automation rules."
9343
10742
  }
9344
10743
  },
9345
10744
  "required": [
9346
- "templateId",
9347
- "relationshipChangeId"
9348
- ],
9349
- "additionalProperties": false
9350
- },
9351
- "RelationshipTemplateIdString": {
9352
- "type": "string",
9353
- "pattern": "RLT[A-Za-z0-9]{17}"
10745
+ "mustBeAccepted"
10746
+ ]
9354
10747
  },
9355
- "RelationshipChangeIdString": {
10748
+ "AddressString": {
9356
10749
  "type": "string",
9357
- "pattern": "RCH[A-Za-z0-9]{17}"
10750
+ "pattern": "id1[A-Za-z0-9]{32,33}"
9358
10751
  }
9359
10752
  }
9360
10753
  };
@@ -14377,16 +15770,25 @@ const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transpor
14377
15770
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
14378
15771
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
14379
15772
  const RequestValidationResultMapper_1 = __webpack_require__(/*! ./RequestValidationResultMapper */ "./dist/useCases/consumption/requests/RequestValidationResultMapper.js");
15773
+ let Validator = class Validator extends common_1.SchemaValidator {
15774
+ constructor(schemaRepository) {
15775
+ super(schemaRepository.getSchema("CanCreateOutgoingRequestRequest"));
15776
+ }
15777
+ };
15778
+ Validator = __decorate([
15779
+ __param(0, typescript_ioc_1.Inject),
15780
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
15781
+ ], Validator);
14380
15782
  let CanCreateOutgoingRequestUseCase = class CanCreateOutgoingRequestUseCase extends common_1.UseCase {
14381
- constructor(outgoingRequestsController) {
14382
- super();
15783
+ constructor(outgoingRequestsController, validator) {
15784
+ super(validator);
14383
15785
  this.outgoingRequestsController = outgoingRequestsController;
14384
15786
  }
14385
15787
  async executeInternal(request) {
14386
15788
  const params = {
14387
15789
  // @ts-expect-error // TODO: remove this as soon as the Type Definitions are correct
14388
15790
  content: request.content,
14389
- peer: transport_1.CoreAddress.from(request.peer)
15791
+ peer: request.peer ? transport_1.CoreAddress.from(request.peer) : undefined
14390
15792
  };
14391
15793
  const validationResult = await this.outgoingRequestsController.canCreate(params);
14392
15794
  const dto = RequestValidationResultMapper_1.RequestValidationResultMapper.toRequestValidationResultDTO(validationResult);
@@ -14395,7 +15797,8 @@ let CanCreateOutgoingRequestUseCase = class CanCreateOutgoingRequestUseCase exte
14395
15797
  };
14396
15798
  CanCreateOutgoingRequestUseCase = __decorate([
14397
15799
  __param(0, typescript_ioc_1.Inject),
14398
- __metadata("design:paramtypes", [consumption_1.OutgoingRequestsController])
15800
+ __param(1, typescript_ioc_1.Inject),
15801
+ __metadata("design:paramtypes", [consumption_1.OutgoingRequestsController, Validator])
14399
15802
  ], CanCreateOutgoingRequestUseCase);
14400
15803
  exports.CanCreateOutgoingRequestUseCase = CanCreateOutgoingRequestUseCase;
14401
15804
  //# sourceMappingURL=CanCreateOutgoingRequest.js.map
@@ -34379,7 +35782,8 @@ function clone$1(dur, alts, clear = false) {
34379
35782
  ...(alts.values || {})
34380
35783
  },
34381
35784
  loc: dur.loc.clone(alts.loc),
34382
- conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy
35785
+ conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,
35786
+ matrix: alts.matrix || dur.matrix
34383
35787
  };
34384
35788
  return new Duration(conf);
34385
35789
  }
@@ -34418,7 +35822,7 @@ function normalizeValues(matrix, vals) {
34418
35822
  *
34419
35823
  * Here is a brief overview of commonly used methods and getters in Duration:
34420
35824
  *
34421
- * * **Creation** To create a Duration, use {@link Duration#fromMillis}, {@link Duration#fromObject}, or {@link Duration#fromISO}.
35825
+ * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.
34422
35826
  * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.
34423
35827
  * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.
34424
35828
  * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.
@@ -34434,10 +35838,16 @@ class Duration {
34434
35838
  */
34435
35839
  constructor(config) {
34436
35840
  const accurate = config.conversionAccuracy === "longterm" || false;
35841
+ let matrix = accurate ? accurateMatrix : casualMatrix;
35842
+
35843
+ if (config.matrix) {
35844
+ matrix = config.matrix;
35845
+ }
34437
35846
  /**
34438
35847
  * @access private
34439
35848
  */
34440
35849
 
35850
+
34441
35851
  this.values = config.values;
34442
35852
  /**
34443
35853
  * @access private
@@ -34458,7 +35868,7 @@ class Duration {
34458
35868
  * @access private
34459
35869
  */
34460
35870
 
34461
- this.matrix = accurate ? accurateMatrix : casualMatrix;
35871
+ this.matrix = matrix;
34462
35872
  /**
34463
35873
  * @access private
34464
35874
  */
@@ -34497,7 +35907,8 @@ class Duration {
34497
35907
  * @param {Object} [opts=[]] - options for creating this Duration
34498
35908
  * @param {string} [opts.locale='en-US'] - the locale to use
34499
35909
  * @param {string} opts.numberingSystem - the numbering system to use
34500
- * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use
35910
+ * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use
35911
+ * @param {string} [opts.matrix=Object] - the custom conversion system to use
34501
35912
  * @return {Duration}
34502
35913
  */
34503
35914
 
@@ -34510,7 +35921,8 @@ class Duration {
34510
35921
  return new Duration({
34511
35922
  values: normalizeObject(obj, Duration.normalizeUnit),
34512
35923
  loc: Locale.fromObject(opts),
34513
- conversionAccuracy: opts.conversionAccuracy
35924
+ conversionAccuracy: opts.conversionAccuracy,
35925
+ matrix: opts.matrix
34514
35926
  });
34515
35927
  }
34516
35928
  /**
@@ -34542,7 +35954,8 @@ class Duration {
34542
35954
  * @param {Object} opts - options for parsing
34543
35955
  * @param {string} [opts.locale='en-US'] - the locale to use
34544
35956
  * @param {string} opts.numberingSystem - the numbering system to use
34545
- * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use
35957
+ * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use
35958
+ * @param {string} [opts.matrix=Object] - the preset conversion system to use
34546
35959
  * @see https://en.wikipedia.org/wiki/ISO_8601#Durations
34547
35960
  * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }
34548
35961
  * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }
@@ -34566,7 +35979,8 @@ class Duration {
34566
35979
  * @param {Object} opts - options for parsing
34567
35980
  * @param {string} [opts.locale='en-US'] - the locale to use
34568
35981
  * @param {string} opts.numberingSystem - the numbering system to use
34569
- * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use
35982
+ * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use
35983
+ * @param {string} [opts.matrix=Object] - the conversion system to use
34570
35984
  * @see https://en.wikipedia.org/wiki/ISO_8601#Times
34571
35985
  * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }
34572
35986
  * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }
@@ -34897,7 +36311,7 @@ class Duration {
34897
36311
  * Scale this Duration by the specified amount. Return a newly-constructed Duration.
34898
36312
  * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.
34899
36313
  * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }
34900
- * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === "hour" ? x * 2 : x) //=> { hours: 2, minutes: 30 }
36314
+ * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === "hours" ? x * 2 : x) //=> { hours: 2, minutes: 30 }
34901
36315
  * @return {Duration}
34902
36316
  */
34903
36317
 
@@ -34955,20 +36369,18 @@ class Duration {
34955
36369
  reconfigure({
34956
36370
  locale,
34957
36371
  numberingSystem,
34958
- conversionAccuracy
36372
+ conversionAccuracy,
36373
+ matrix
34959
36374
  } = {}) {
34960
36375
  const loc = this.loc.clone({
34961
36376
  locale,
34962
36377
  numberingSystem
34963
- }),
34964
- opts = {
34965
- loc
36378
+ });
36379
+ const opts = {
36380
+ loc,
36381
+ matrix,
36382
+ conversionAccuracy
34966
36383
  };
34967
-
34968
- if (conversionAccuracy) {
34969
- opts.conversionAccuracy = conversionAccuracy;
34970
- }
34971
-
34972
36384
  return clone$1(this, opts);
34973
36385
  }
34974
36386
  /**
@@ -35242,10 +36654,10 @@ function validateStartEnd(start, end) {
35242
36654
  *
35243
36655
  * Here is a brief overview of the most commonly used methods and getters in Interval:
35244
36656
  *
35245
- * * **Creation** To create an Interval, use {@link Interval#fromDateTimes}, {@link Interval#after}, {@link Interval#before}, or {@link Interval#fromISO}.
36657
+ * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.
35246
36658
  * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.
35247
36659
  * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.
35248
- * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval#merge}, {@link Interval#xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.
36660
+ * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.
35249
36661
  * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}
35250
36662
  * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.
35251
36663
  */
@@ -36686,7 +38098,6 @@ function expandMacroTokens(tokens, locale) {
36686
38098
  * @private
36687
38099
  */
36688
38100
 
36689
-
36690
38101
  function explainFromTokens(locale, input, format) {
36691
38102
  const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),
36692
38103
  units = tokens.map(t => unitForToken(t, locale)),
@@ -37282,7 +38693,7 @@ function lastOpts(argList) {
37282
38693
  *
37283
38694
  * Here is a brief overview of the most commonly used functionality it provides:
37284
38695
  *
37285
- * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime#local}, {@link DateTime#utc}, and (most flexibly) {@link DateTime#fromObject}. To create one from a standard string format, use {@link DateTime#fromISO}, {@link DateTime#fromHTTP}, and {@link DateTime#fromRFC2822}. To create one from a custom string format, use {@link DateTime#fromFormat}. To create one from a native JS date, use {@link DateTime#fromJSDate}.
38696
+ * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.
37286
38697
  * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},
37287
38698
  * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.
37288
38699
  * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.
@@ -37821,6 +39232,19 @@ class DateTime {
37821
39232
  static parseFormatForOpts(formatOpts, localeOpts = {}) {
37822
39233
  const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));
37823
39234
  return !tokenList ? null : tokenList.map(t => t ? t.val : null).join("");
39235
+ }
39236
+ /**
39237
+ * Produce the the fully expanded format token for the locale
39238
+ * Does NOT quote characters, so quoted tokens will not round trip correctly
39239
+ * @param fmt
39240
+ * @param localeOpts
39241
+ * @returns {string}
39242
+ */
39243
+
39244
+
39245
+ static expandFormat(fmt, localeOpts = {}) {
39246
+ const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));
39247
+ return expanded.map(t => t.val).join("");
37824
39248
  } // INFO
37825
39249
 
37826
39250
  /**
@@ -38513,8 +39937,8 @@ class DateTime {
38513
39937
  * @param {Object} opts - opts to override the configuration options on this DateTime
38514
39938
  * @example DateTime.now().toLocaleString(); //=> 4/20/2017
38515
39939
  * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'
38516
- * @example DateTime.now().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'
38517
39940
  * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'
39941
+ * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'
38518
39942
  * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'
38519
39943
  * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'
38520
39944
  * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'
@@ -38551,7 +39975,7 @@ class DateTime {
38551
39975
  * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0
38552
39976
  * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0
38553
39977
  * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'
38554
- * @param {boolean} [opts.extendedZone=true] - add the time zone format extension
39978
+ * @param {boolean} [opts.extendedZone=false] - add the time zone format extension
38555
39979
  * @param {string} [opts.format='extended'] - choose between the basic and extended format
38556
39980
  * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'
38557
39981
  * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'
@@ -39256,7 +40680,7 @@ function friendlyDateTime(dateTimeish) {
39256
40680
  }
39257
40681
  }
39258
40682
 
39259
- const VERSION = "3.0.1";
40683
+ const VERSION = "3.0.3";
39260
40684
 
39261
40685
  exports.DateTime = DateTime;
39262
40686
  exports.Duration = Duration;