@nmshd/runtime 2.5.1 → 2.5.3

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.
@@ -548,11 +548,11 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
548
548
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
549
549
  const transport_1 = __webpack_require__(/*! @nmshd/transport */ "@nmshd/transport");
550
550
  exports.buildInformation = {
551
- version: "2.5.1",
552
- build: "154",
553
- date: "2023-07-13T06:09:32+00:00",
554
- commit: "cf16d30efc4aab9c0b7e2955eabd75b0a14aa376",
555
- dependencies: {"@js-soft/docdb-querytranslator":"1.1.0","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.8","@js-soft/ts-utils":"^2.3.1","@nmshd/consumption":"3.2.1","@nmshd/content":"2.3.4","@nmshd/crypto":"2.0.4","@nmshd/transport":"2.0.5","ajv":"^8.12.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.3.0","qrcode":"1.5.3","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
551
+ version: "2.5.3",
552
+ build: "157",
553
+ date: "2023-07-14T09:42:05+00:00",
554
+ commit: "43b0467c1a9c013a2b022018255a71083377abd5",
555
+ dependencies: {"@js-soft/docdb-querytranslator":"1.1.0","@js-soft/logging-abstractions":"1.0.0","@js-soft/ts-serval":"2.0.8","@js-soft/ts-utils":"^2.3.1","@nmshd/consumption":"3.2.2","@nmshd/content":"2.3.6","@nmshd/crypto":"2.0.4","@nmshd/transport":"2.0.5","ajv":"^8.12.0","ajv-errors":"^3.0.0","ajv-formats":"^2.1.1","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^3.3.0","qrcode":"1.5.3","reflect-metadata":"0.1.13","ts-simple-nameof":"1.3.1","typescript-ioc":"3.2.2"},
556
556
  libraries: {
557
557
  serval: ts_serval_1.buildInformation,
558
558
  consumption: consumption_1.buildInformation,
@@ -1528,8 +1528,6 @@ let DataViewExpander = exports.DataViewExpander = class DataViewExpander {
1528
1528
  id: "",
1529
1529
  name,
1530
1530
  description,
1531
- validFrom: query.validFrom,
1532
- validTo: query.validTo,
1533
1531
  queryString: query.queryString,
1534
1532
  isProcessed: false
1535
1533
  };
@@ -3679,7 +3677,7 @@ exports.AttributesFacade = void 0;
3679
3677
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
3680
3678
  const useCases_1 = __webpack_require__(/*! ../../../useCases */ "./dist/useCases/index.js");
3681
3679
  let AttributesFacade = exports.AttributesFacade = class AttributesFacade {
3682
- constructor(createAttributeUseCase, createSharedAttributeCopyUseCase, deleteAttributeUseCase, getPeerAttributesUseCase, getSharedToPeerAttributesUseCase, getAttributeUseCase, getAttributesUseCase, succeedAttributeUseCase, updateAttributeUseCase, executeIdentityAttributeQueryUseCase, executeRelationshipAttributeQueryUseCase, executeThirdPartyRelationshipAttributeQueryUseCase, executeIQLQueryUseCase, shareAttributeUseCase) {
3680
+ constructor(createAttributeUseCase, createSharedAttributeCopyUseCase, deleteAttributeUseCase, getPeerAttributesUseCase, getSharedToPeerAttributesUseCase, getAttributeUseCase, getAttributesUseCase, succeedAttributeUseCase, updateAttributeUseCase, executeIdentityAttributeQueryUseCase, executeRelationshipAttributeQueryUseCase, executeThirdPartyRelationshipAttributeQueryUseCase, executeIQLQueryUseCase, validateIQLQueryUseCase, shareAttributeUseCase) {
3683
3681
  this.createAttributeUseCase = createAttributeUseCase;
3684
3682
  this.createSharedAttributeCopyUseCase = createSharedAttributeCopyUseCase;
3685
3683
  this.deleteAttributeUseCase = deleteAttributeUseCase;
@@ -3693,6 +3691,7 @@ let AttributesFacade = exports.AttributesFacade = class AttributesFacade {
3693
3691
  this.executeRelationshipAttributeQueryUseCase = executeRelationshipAttributeQueryUseCase;
3694
3692
  this.executeThirdPartyRelationshipAttributeQueryUseCase = executeThirdPartyRelationshipAttributeQueryUseCase;
3695
3693
  this.executeIQLQueryUseCase = executeIQLQueryUseCase;
3694
+ this.validateIQLQueryUseCase = validateIQLQueryUseCase;
3696
3695
  this.shareAttributeUseCase = shareAttributeUseCase;
3697
3696
  }
3698
3697
  async createAttribute(request) {
@@ -3728,6 +3727,9 @@ let AttributesFacade = exports.AttributesFacade = class AttributesFacade {
3728
3727
  async executeIQLQuery(request) {
3729
3728
  return await this.executeIQLQueryUseCase.execute(request);
3730
3729
  }
3730
+ async validateIQLQuery(request) {
3731
+ return await this.validateIQLQueryUseCase.execute(request);
3732
+ }
3731
3733
  async succeedAttribute(request) {
3732
3734
  return await this.succeedAttributeUseCase.execute(request);
3733
3735
  }
@@ -3753,6 +3755,7 @@ exports.AttributesFacade = AttributesFacade = __decorate([
3753
3755
  __param(11, typescript_ioc_1.Inject),
3754
3756
  __param(12, typescript_ioc_1.Inject),
3755
3757
  __param(13, typescript_ioc_1.Inject),
3758
+ __param(14, typescript_ioc_1.Inject),
3756
3759
  __metadata("design:paramtypes", [useCases_1.CreateAttributeUseCase,
3757
3760
  useCases_1.CreateSharedAttributeCopyUseCase,
3758
3761
  useCases_1.DeleteAttributeUseCase,
@@ -3766,6 +3769,7 @@ exports.AttributesFacade = AttributesFacade = __decorate([
3766
3769
  useCases_1.ExecuteRelationshipAttributeQueryUseCase,
3767
3770
  useCases_1.ExecuteThirdPartyRelationshipAttributeQueryUseCase,
3768
3771
  useCases_1.ExecuteIQLQueryUseCase,
3772
+ useCases_1.ValidateIQLQueryUseCase,
3769
3773
  useCases_1.ShareAttributeUseCase])
3770
3774
  ], AttributesFacade);
3771
3775
  //# sourceMappingURL=AttributesFacade.js.map
@@ -6309,8 +6313,8 @@ exports.JsonSchema = JsonSchema;
6309
6313
  "use strict";
6310
6314
 
6311
6315
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6312
- 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.UpdateDraftRequest = exports.GetDraftsRequest = exports.GetDraftRequest = exports.DeleteDraftRequest = exports.CreateDraftRequest = exports.UpdateAttributeRequest = exports.SucceedAttributeRequest = exports.ShareAttributeRequest = exports.SentOutgoingRequestRequest = exports.RequireManualDecisionOfIncomingRequestRequest = exports.ReceivedIncomingRequestRequest = exports.GetOutgoingRequestsRequest = exports.GetOutgoingRequestRequest = exports.GetIncomingRequestsRequest = exports.GetIncomingRequestRequest = exports.DiscardOutgoingRequestRequest = exports.CreateOutgoingRequestRequest = exports.CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseRequest = exports.CompleteOutgoingRequestRequest = exports.CompleteIncomingRequestRequest = exports.CheckPrerequisitesOfIncomingRequestRequest = exports.RejectIncomingRequestRequest = exports.CanCreateOutgoingRequestRequest = exports.AcceptIncomingRequestRequest = exports.GetSharedToPeerAttributesRequest = exports.GetPeerAttributesRequest = exports.GetAttributesRequest = exports.GetAttributeRequest = exports.ExecuteThirdPartyRelationshipAttributeQueryRequest = exports.ExecuteRelationshipAttributeQueryRequest = exports.ExecuteIQLQueryRequest = exports.ExecuteIdentityAttributeQueryRequest = exports.DeleteAttributeRequest = exports.CreateSharedAttributeCopyRequest = exports.CreateAttributeRequest = exports.GetAttributeListenerRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
6313
- 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.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 = exports.CreateDeviceRequest = exports.ValidateChallengeRequest = exports.CreateChallengeRequest = exports.CreateDeviceChallengeRequest = exports.CreateIdentityChallengeRequest = void 0;
6316
+ exports.SyncEverythingRequest = exports.DownloadAttachmentRequest = exports.SyncDatawalletRequest = exports.RegisterPushNotificationTokenRequest = exports.LoadItemFromTruncatedReferenceRequest = exports.DownloadFileRequest = exports.UpdateSettingRequest = exports.GetSettingsRequest = exports.GetSettingRequest = exports.DeleteSettingRequest = exports.CreateSettingRequest = exports.UpdateDraftRequest = exports.GetDraftsRequest = exports.GetDraftRequest = exports.DeleteDraftRequest = exports.CreateDraftRequest = exports.ValidateIQLQueryRequest = exports.UpdateAttributeRequest = exports.SucceedAttributeRequest = exports.ShareAttributeRequest = exports.SentOutgoingRequestRequest = exports.RequireManualDecisionOfIncomingRequestRequest = exports.ReceivedIncomingRequestRequest = exports.GetOutgoingRequestsRequest = exports.GetOutgoingRequestRequest = exports.GetIncomingRequestsRequest = exports.GetIncomingRequestRequest = exports.DiscardOutgoingRequestRequest = exports.CreateOutgoingRequestRequest = exports.CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseRequest = exports.CompleteOutgoingRequestRequest = exports.CompleteIncomingRequestRequest = exports.CheckPrerequisitesOfIncomingRequestRequest = exports.RejectIncomingRequestRequest = exports.CanCreateOutgoingRequestRequest = exports.AcceptIncomingRequestRequest = exports.GetSharedToPeerAttributesRequest = exports.GetPeerAttributesRequest = exports.GetAttributesRequest = exports.GetAttributeRequest = exports.ExecuteThirdPartyRelationshipAttributeQueryRequest = exports.ExecuteRelationshipAttributeQueryRequest = exports.ExecuteIQLQueryRequest = exports.ExecuteIdentityAttributeQueryRequest = exports.DeleteAttributeRequest = exports.CreateSharedAttributeCopyRequest = exports.CreateAttributeRequest = exports.GetAttributeListenerRequest = exports.LoadPeerTokenAnonymousByTruncatedReferenceRequest = exports.LoadPeerTokenAnonymousByIdAndKeyRequest = void 0;
6317
+ 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.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 = exports.CreateDeviceRequest = exports.ValidateChallengeRequest = exports.CreateChallengeRequest = exports.CreateDeviceChallengeRequest = exports.CreateIdentityChallengeRequest = exports.CreateRelationshipChallengeRequest = void 0;
6314
6318
  exports.LoadPeerTokenAnonymousByIdAndKeyRequest = {
6315
6319
  "$schema": "http://json-schema.org/draft-07/schema#",
6316
6320
  "$ref": "#/definitions/LoadPeerTokenAnonymousByIdAndKeyRequest",
@@ -8334,12 +8338,6 @@ exports.ExecuteIdentityAttributeQueryRequest = {
8334
8338
  "IIdentityAttributeQuery": {
8335
8339
  "type": "object",
8336
8340
  "properties": {
8337
- "validFrom": {
8338
- "$ref": "#/definitions/ICoreDate"
8339
- },
8340
- "validTo": {
8341
- "$ref": "#/definitions/ICoreDate"
8342
- },
8343
8341
  "valueType": {
8344
8342
  "$ref": "#/definitions/AttributeValues.Identity.TypeName"
8345
8343
  },
@@ -8348,6 +8346,12 @@ exports.ExecuteIdentityAttributeQueryRequest = {
8348
8346
  "items": {
8349
8347
  "type": "string"
8350
8348
  }
8349
+ },
8350
+ "validFrom": {
8351
+ "$ref": "#/definitions/ICoreDate"
8352
+ },
8353
+ "validTo": {
8354
+ "$ref": "#/definitions/ICoreDate"
8351
8355
  }
8352
8356
  },
8353
8357
  "required": [
@@ -8355,18 +8359,6 @@ exports.ExecuteIdentityAttributeQueryRequest = {
8355
8359
  ],
8356
8360
  "additionalProperties": false
8357
8361
  },
8358
- "ICoreDate": {
8359
- "type": "object",
8360
- "properties": {
8361
- "date": {
8362
- "type": "string"
8363
- }
8364
- },
8365
- "required": [
8366
- "date"
8367
- ],
8368
- "additionalProperties": false
8369
- },
8370
8362
  "AttributeValues.Identity.TypeName": {
8371
8363
  "anyOf": [
8372
8364
  {
@@ -8427,6 +8419,18 @@ exports.ExecuteIdentityAttributeQueryRequest = {
8427
8419
  "ZipCode"
8428
8420
  ]
8429
8421
  },
8422
+ "ICoreDate": {
8423
+ "type": "object",
8424
+ "properties": {
8425
+ "date": {
8426
+ "type": "string"
8427
+ }
8428
+ },
8429
+ "required": [
8430
+ "date"
8431
+ ],
8432
+ "additionalProperties": false
8433
+ },
8430
8434
  "IdentityAttributeQueryJSON": {
8431
8435
  "type": "object",
8432
8436
  "properties": {
@@ -8440,12 +8444,6 @@ exports.ExecuteIdentityAttributeQueryRequest = {
8440
8444
  "@version": {
8441
8445
  "type": "string"
8442
8446
  },
8443
- "validFrom": {
8444
- "type": "string"
8445
- },
8446
- "validTo": {
8447
- "type": "string"
8448
- },
8449
8447
  "valueType": {
8450
8448
  "$ref": "#/definitions/AttributeValues.Identity.TypeName"
8451
8449
  },
@@ -8454,6 +8452,12 @@ exports.ExecuteIdentityAttributeQueryRequest = {
8454
8452
  "items": {
8455
8453
  "type": "string"
8456
8454
  }
8455
+ },
8456
+ "validFrom": {
8457
+ "type": "string"
8458
+ },
8459
+ "validTo": {
8460
+ "type": "string"
8457
8461
  }
8458
8462
  },
8459
8463
  "required": [
@@ -8490,12 +8494,6 @@ exports.ExecuteIQLQueryRequest = {
8490
8494
  "IIQLQuery": {
8491
8495
  "type": "object",
8492
8496
  "properties": {
8493
- "validFrom": {
8494
- "$ref": "#/definitions/ICoreDate"
8495
- },
8496
- "validTo": {
8497
- "$ref": "#/definitions/ICoreDate"
8498
- },
8499
8497
  "queryString": {
8500
8498
  "type": "string"
8501
8499
  }
@@ -8505,18 +8503,6 @@ exports.ExecuteIQLQueryRequest = {
8505
8503
  ],
8506
8504
  "additionalProperties": false
8507
8505
  },
8508
- "ICoreDate": {
8509
- "type": "object",
8510
- "properties": {
8511
- "date": {
8512
- "type": "string"
8513
- }
8514
- },
8515
- "required": [
8516
- "date"
8517
- ],
8518
- "additionalProperties": false
8519
- },
8520
8506
  "IQLQueryJSON": {
8521
8507
  "type": "object",
8522
8508
  "properties": {
@@ -8530,12 +8516,6 @@ exports.ExecuteIQLQueryRequest = {
8530
8516
  "@version": {
8531
8517
  "type": "string"
8532
8518
  },
8533
- "validFrom": {
8534
- "type": "string"
8535
- },
8536
- "validTo": {
8537
- "type": "string"
8538
- },
8539
8519
  "queryString": {
8540
8520
  "type": "string"
8541
8521
  }
@@ -8574,12 +8554,6 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8574
8554
  "IRelationshipAttributeQuery": {
8575
8555
  "type": "object",
8576
8556
  "properties": {
8577
- "validFrom": {
8578
- "$ref": "#/definitions/ICoreDate"
8579
- },
8580
- "validTo": {
8581
- "$ref": "#/definitions/ICoreDate"
8582
- },
8583
8557
  "key": {
8584
8558
  "type": "string"
8585
8559
  },
@@ -8588,6 +8562,12 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8588
8562
  },
8589
8563
  "attributeCreationHints": {
8590
8564
  "$ref": "#/definitions/IRelationshipAttributeCreationHints"
8565
+ },
8566
+ "validFrom": {
8567
+ "$ref": "#/definitions/ICoreDate"
8568
+ },
8569
+ "validTo": {
8570
+ "$ref": "#/definitions/ICoreDate"
8591
8571
  }
8592
8572
  },
8593
8573
  "required": [
@@ -8597,18 +8577,6 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8597
8577
  ],
8598
8578
  "additionalProperties": false
8599
8579
  },
8600
- "ICoreDate": {
8601
- "type": "object",
8602
- "properties": {
8603
- "date": {
8604
- "type": "string"
8605
- }
8606
- },
8607
- "required": [
8608
- "date"
8609
- ],
8610
- "additionalProperties": false
8611
- },
8612
8580
  "ICoreAddress": {
8613
8581
  "type": "object",
8614
8582
  "properties": {
@@ -8638,6 +8606,12 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8638
8606
  },
8639
8607
  "confidentiality": {
8640
8608
  "$ref": "#/definitions/RelationshipAttributeConfidentiality"
8609
+ },
8610
+ "validFrom": {
8611
+ "$ref": "#/definitions/ICoreDate"
8612
+ },
8613
+ "validTo": {
8614
+ "$ref": "#/definitions/ICoreDate"
8641
8615
  }
8642
8616
  },
8643
8617
  "required": [
@@ -8730,6 +8704,18 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8730
8704
  "protected"
8731
8705
  ]
8732
8706
  },
8707
+ "ICoreDate": {
8708
+ "type": "object",
8709
+ "properties": {
8710
+ "date": {
8711
+ "type": "string"
8712
+ }
8713
+ },
8714
+ "required": [
8715
+ "date"
8716
+ ],
8717
+ "additionalProperties": false
8718
+ },
8733
8719
  "RelationshipAttributeQueryJSON": {
8734
8720
  "type": "object",
8735
8721
  "properties": {
@@ -8743,12 +8729,6 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8743
8729
  "@version": {
8744
8730
  "type": "string"
8745
8731
  },
8746
- "validFrom": {
8747
- "type": "string"
8748
- },
8749
- "validTo": {
8750
- "type": "string"
8751
- },
8752
8732
  "key": {
8753
8733
  "type": "string"
8754
8734
  },
@@ -8757,6 +8737,12 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8757
8737
  },
8758
8738
  "attributeCreationHints": {
8759
8739
  "$ref": "#/definitions/RelationshipAttributeCreationHintsJSON"
8740
+ },
8741
+ "validFrom": {
8742
+ "type": "string"
8743
+ },
8744
+ "validTo": {
8745
+ "type": "string"
8760
8746
  }
8761
8747
  },
8762
8748
  "required": [
@@ -8784,6 +8770,12 @@ exports.ExecuteRelationshipAttributeQueryRequest = {
8784
8770
  },
8785
8771
  "confidentiality": {
8786
8772
  "$ref": "#/definitions/RelationshipAttributeConfidentiality"
8773
+ },
8774
+ "validFrom": {
8775
+ "type": "string"
8776
+ },
8777
+ "validTo": {
8778
+ "type": "string"
8787
8779
  }
8788
8780
  },
8789
8781
  "required": [
@@ -8891,12 +8883,6 @@ exports.ExecuteThirdPartyRelationshipAttributeQueryRequest = {
8891
8883
  "IThirdPartyRelationshipAttributeQuery": {
8892
8884
  "type": "object",
8893
8885
  "properties": {
8894
- "validFrom": {
8895
- "$ref": "#/definitions/ICoreDate"
8896
- },
8897
- "validTo": {
8898
- "$ref": "#/definitions/ICoreDate"
8899
- },
8900
8886
  "key": {
8901
8887
  "type": "string"
8902
8888
  },
@@ -8908,6 +8894,12 @@ exports.ExecuteThirdPartyRelationshipAttributeQueryRequest = {
8908
8894
  "items": {
8909
8895
  "$ref": "#/definitions/ICoreAddress"
8910
8896
  }
8897
+ },
8898
+ "validFrom": {
8899
+ "$ref": "#/definitions/ICoreDate"
8900
+ },
8901
+ "validTo": {
8902
+ "$ref": "#/definitions/ICoreDate"
8911
8903
  }
8912
8904
  },
8913
8905
  "required": [
@@ -8917,27 +8909,27 @@ exports.ExecuteThirdPartyRelationshipAttributeQueryRequest = {
8917
8909
  ],
8918
8910
  "additionalProperties": false
8919
8911
  },
8920
- "ICoreDate": {
8912
+ "ICoreAddress": {
8921
8913
  "type": "object",
8922
8914
  "properties": {
8923
- "date": {
8915
+ "address": {
8924
8916
  "type": "string"
8925
8917
  }
8926
8918
  },
8927
8919
  "required": [
8928
- "date"
8920
+ "address"
8929
8921
  ],
8930
8922
  "additionalProperties": false
8931
8923
  },
8932
- "ICoreAddress": {
8924
+ "ICoreDate": {
8933
8925
  "type": "object",
8934
8926
  "properties": {
8935
- "address": {
8927
+ "date": {
8936
8928
  "type": "string"
8937
8929
  }
8938
8930
  },
8939
8931
  "required": [
8940
- "address"
8932
+ "date"
8941
8933
  ],
8942
8934
  "additionalProperties": false
8943
8935
  },
@@ -8954,12 +8946,6 @@ exports.ExecuteThirdPartyRelationshipAttributeQueryRequest = {
8954
8946
  "@version": {
8955
8947
  "type": "string"
8956
8948
  },
8957
- "validFrom": {
8958
- "type": "string"
8959
- },
8960
- "validTo": {
8961
- "type": "string"
8962
- },
8963
8949
  "key": {
8964
8950
  "type": "string"
8965
8951
  },
@@ -8971,6 +8957,12 @@ exports.ExecuteThirdPartyRelationshipAttributeQueryRequest = {
8971
8957
  "items": {
8972
8958
  "type": "string"
8973
8959
  }
8960
+ },
8961
+ "validFrom": {
8962
+ "type": "string"
8963
+ },
8964
+ "validTo": {
8965
+ "type": "string"
8974
8966
  }
8975
8967
  },
8976
8968
  "required": [
@@ -11867,12 +11859,6 @@ exports.CanCreateOutgoingRequestRequest = {
11867
11859
  "@version": {
11868
11860
  "type": "string"
11869
11861
  },
11870
- "validFrom": {
11871
- "type": "string"
11872
- },
11873
- "validTo": {
11874
- "type": "string"
11875
- },
11876
11862
  "valueType": {
11877
11863
  "$ref": "#/definitions/AttributeValues.Identity.TypeName"
11878
11864
  },
@@ -11881,6 +11867,12 @@ exports.CanCreateOutgoingRequestRequest = {
11881
11867
  "items": {
11882
11868
  "type": "string"
11883
11869
  }
11870
+ },
11871
+ "validFrom": {
11872
+ "type": "string"
11873
+ },
11874
+ "validTo": {
11875
+ "type": "string"
11884
11876
  }
11885
11877
  },
11886
11878
  "required": [
@@ -11962,12 +11954,6 @@ exports.CanCreateOutgoingRequestRequest = {
11962
11954
  "@version": {
11963
11955
  "type": "string"
11964
11956
  },
11965
- "validFrom": {
11966
- "type": "string"
11967
- },
11968
- "validTo": {
11969
- "type": "string"
11970
- },
11971
11957
  "key": {
11972
11958
  "type": "string"
11973
11959
  },
@@ -11976,6 +11962,12 @@ exports.CanCreateOutgoingRequestRequest = {
11976
11962
  },
11977
11963
  "attributeCreationHints": {
11978
11964
  "$ref": "#/definitions/RelationshipAttributeCreationHintsJSON"
11965
+ },
11966
+ "validFrom": {
11967
+ "type": "string"
11968
+ },
11969
+ "validTo": {
11970
+ "type": "string"
11979
11971
  }
11980
11972
  },
11981
11973
  "required": [
@@ -12003,6 +11995,12 @@ exports.CanCreateOutgoingRequestRequest = {
12003
11995
  },
12004
11996
  "confidentiality": {
12005
11997
  "$ref": "#/definitions/RelationshipAttributeConfidentiality"
11998
+ },
11999
+ "validFrom": {
12000
+ "type": "string"
12001
+ },
12002
+ "validTo": {
12003
+ "type": "string"
12006
12004
  }
12007
12005
  },
12008
12006
  "required": [
@@ -12043,12 +12041,6 @@ exports.CanCreateOutgoingRequestRequest = {
12043
12041
  "@version": {
12044
12042
  "type": "string"
12045
12043
  },
12046
- "validFrom": {
12047
- "type": "string"
12048
- },
12049
- "validTo": {
12050
- "type": "string"
12051
- },
12052
12044
  "queryString": {
12053
12045
  "type": "string"
12054
12046
  }
@@ -12129,12 +12121,6 @@ exports.CanCreateOutgoingRequestRequest = {
12129
12121
  "@version": {
12130
12122
  "type": "string"
12131
12123
  },
12132
- "validFrom": {
12133
- "type": "string"
12134
- },
12135
- "validTo": {
12136
- "type": "string"
12137
- },
12138
12124
  "key": {
12139
12125
  "type": "string"
12140
12126
  },
@@ -12146,6 +12132,12 @@ exports.CanCreateOutgoingRequestRequest = {
12146
12132
  "items": {
12147
12133
  "type": "string"
12148
12134
  }
12135
+ },
12136
+ "validFrom": {
12137
+ "type": "string"
12138
+ },
12139
+ "validTo": {
12140
+ "type": "string"
12149
12141
  }
12150
12142
  },
12151
12143
  "required": [
@@ -19261,12 +19253,6 @@ exports.CreateOutgoingRequestRequest = {
19261
19253
  "@version": {
19262
19254
  "type": "string"
19263
19255
  },
19264
- "validFrom": {
19265
- "type": "string"
19266
- },
19267
- "validTo": {
19268
- "type": "string"
19269
- },
19270
19256
  "valueType": {
19271
19257
  "$ref": "#/definitions/AttributeValues.Identity.TypeName"
19272
19258
  },
@@ -19275,6 +19261,12 @@ exports.CreateOutgoingRequestRequest = {
19275
19261
  "items": {
19276
19262
  "type": "string"
19277
19263
  }
19264
+ },
19265
+ "validFrom": {
19266
+ "type": "string"
19267
+ },
19268
+ "validTo": {
19269
+ "type": "string"
19278
19270
  }
19279
19271
  },
19280
19272
  "required": [
@@ -19356,12 +19348,6 @@ exports.CreateOutgoingRequestRequest = {
19356
19348
  "@version": {
19357
19349
  "type": "string"
19358
19350
  },
19359
- "validFrom": {
19360
- "type": "string"
19361
- },
19362
- "validTo": {
19363
- "type": "string"
19364
- },
19365
19351
  "key": {
19366
19352
  "type": "string"
19367
19353
  },
@@ -19370,6 +19356,12 @@ exports.CreateOutgoingRequestRequest = {
19370
19356
  },
19371
19357
  "attributeCreationHints": {
19372
19358
  "$ref": "#/definitions/RelationshipAttributeCreationHintsJSON"
19359
+ },
19360
+ "validFrom": {
19361
+ "type": "string"
19362
+ },
19363
+ "validTo": {
19364
+ "type": "string"
19373
19365
  }
19374
19366
  },
19375
19367
  "required": [
@@ -19397,6 +19389,12 @@ exports.CreateOutgoingRequestRequest = {
19397
19389
  },
19398
19390
  "confidentiality": {
19399
19391
  "$ref": "#/definitions/RelationshipAttributeConfidentiality"
19392
+ },
19393
+ "validFrom": {
19394
+ "type": "string"
19395
+ },
19396
+ "validTo": {
19397
+ "type": "string"
19400
19398
  }
19401
19399
  },
19402
19400
  "required": [
@@ -19437,12 +19435,6 @@ exports.CreateOutgoingRequestRequest = {
19437
19435
  "@version": {
19438
19436
  "type": "string"
19439
19437
  },
19440
- "validFrom": {
19441
- "type": "string"
19442
- },
19443
- "validTo": {
19444
- "type": "string"
19445
- },
19446
19438
  "queryString": {
19447
19439
  "type": "string"
19448
19440
  }
@@ -19523,12 +19515,6 @@ exports.CreateOutgoingRequestRequest = {
19523
19515
  "@version": {
19524
19516
  "type": "string"
19525
19517
  },
19526
- "validFrom": {
19527
- "type": "string"
19528
- },
19529
- "validTo": {
19530
- "type": "string"
19531
- },
19532
19518
  "key": {
19533
19519
  "type": "string"
19534
19520
  },
@@ -19540,6 +19526,12 @@ exports.CreateOutgoingRequestRequest = {
19540
19526
  "items": {
19541
19527
  "type": "string"
19542
19528
  }
19529
+ },
19530
+ "validFrom": {
19531
+ "type": "string"
19532
+ },
19533
+ "validTo": {
19534
+ "type": "string"
19543
19535
  }
19544
19536
  },
19545
19537
  "required": [
@@ -22456,12 +22448,6 @@ exports.ReceivedIncomingRequestRequest = {
22456
22448
  "@version": {
22457
22449
  "type": "string"
22458
22450
  },
22459
- "validFrom": {
22460
- "type": "string"
22461
- },
22462
- "validTo": {
22463
- "type": "string"
22464
- },
22465
22451
  "valueType": {
22466
22452
  "$ref": "#/definitions/AttributeValues.Identity.TypeName"
22467
22453
  },
@@ -22470,6 +22456,12 @@ exports.ReceivedIncomingRequestRequest = {
22470
22456
  "items": {
22471
22457
  "type": "string"
22472
22458
  }
22459
+ },
22460
+ "validFrom": {
22461
+ "type": "string"
22462
+ },
22463
+ "validTo": {
22464
+ "type": "string"
22473
22465
  }
22474
22466
  },
22475
22467
  "required": [
@@ -22551,12 +22543,6 @@ exports.ReceivedIncomingRequestRequest = {
22551
22543
  "@version": {
22552
22544
  "type": "string"
22553
22545
  },
22554
- "validFrom": {
22555
- "type": "string"
22556
- },
22557
- "validTo": {
22558
- "type": "string"
22559
- },
22560
22546
  "key": {
22561
22547
  "type": "string"
22562
22548
  },
@@ -22565,6 +22551,12 @@ exports.ReceivedIncomingRequestRequest = {
22565
22551
  },
22566
22552
  "attributeCreationHints": {
22567
22553
  "$ref": "#/definitions/RelationshipAttributeCreationHintsJSON"
22554
+ },
22555
+ "validFrom": {
22556
+ "type": "string"
22557
+ },
22558
+ "validTo": {
22559
+ "type": "string"
22568
22560
  }
22569
22561
  },
22570
22562
  "required": [
@@ -22592,6 +22584,12 @@ exports.ReceivedIncomingRequestRequest = {
22592
22584
  },
22593
22585
  "confidentiality": {
22594
22586
  "$ref": "#/definitions/RelationshipAttributeConfidentiality"
22587
+ },
22588
+ "validFrom": {
22589
+ "type": "string"
22590
+ },
22591
+ "validTo": {
22592
+ "type": "string"
22595
22593
  }
22596
22594
  },
22597
22595
  "required": [
@@ -22632,12 +22630,6 @@ exports.ReceivedIncomingRequestRequest = {
22632
22630
  "@version": {
22633
22631
  "type": "string"
22634
22632
  },
22635
- "validFrom": {
22636
- "type": "string"
22637
- },
22638
- "validTo": {
22639
- "type": "string"
22640
- },
22641
22633
  "queryString": {
22642
22634
  "type": "string"
22643
22635
  }
@@ -22718,12 +22710,6 @@ exports.ReceivedIncomingRequestRequest = {
22718
22710
  "@version": {
22719
22711
  "type": "string"
22720
22712
  },
22721
- "validFrom": {
22722
- "type": "string"
22723
- },
22724
- "validTo": {
22725
- "type": "string"
22726
- },
22727
22713
  "key": {
22728
22714
  "type": "string"
22729
22715
  },
@@ -22735,6 +22721,12 @@ exports.ReceivedIncomingRequestRequest = {
22735
22721
  "items": {
22736
22722
  "type": "string"
22737
22723
  }
22724
+ },
22725
+ "validFrom": {
22726
+ "type": "string"
22727
+ },
22728
+ "validTo": {
22729
+ "type": "string"
22738
22730
  }
22739
22731
  },
22740
22732
  "required": [
@@ -26806,6 +26798,66 @@ exports.UpdateAttributeRequest = {
26806
26798
  }
26807
26799
  }
26808
26800
  };
26801
+ exports.ValidateIQLQueryRequest = {
26802
+ "$schema": "http://json-schema.org/draft-07/schema#",
26803
+ "$ref": "#/definitions/ValidateIQLQueryRequest",
26804
+ "definitions": {
26805
+ "ValidateIQLQueryRequest": {
26806
+ "type": "object",
26807
+ "properties": {
26808
+ "query": {
26809
+ "anyOf": [
26810
+ {
26811
+ "$ref": "#/definitions/IIQLQuery"
26812
+ },
26813
+ {
26814
+ "$ref": "#/definitions/IQLQueryJSON"
26815
+ }
26816
+ ]
26817
+ }
26818
+ },
26819
+ "required": [
26820
+ "query"
26821
+ ],
26822
+ "additionalProperties": false
26823
+ },
26824
+ "IIQLQuery": {
26825
+ "type": "object",
26826
+ "properties": {
26827
+ "queryString": {
26828
+ "type": "string"
26829
+ }
26830
+ },
26831
+ "required": [
26832
+ "queryString"
26833
+ ],
26834
+ "additionalProperties": false
26835
+ },
26836
+ "IQLQueryJSON": {
26837
+ "type": "object",
26838
+ "properties": {
26839
+ "@type": {
26840
+ "type": "string",
26841
+ "const": "IQLQuery"
26842
+ },
26843
+ "@context": {
26844
+ "type": "string"
26845
+ },
26846
+ "@version": {
26847
+ "type": "string"
26848
+ },
26849
+ "queryString": {
26850
+ "type": "string"
26851
+ }
26852
+ },
26853
+ "required": [
26854
+ "@type",
26855
+ "queryString"
26856
+ ],
26857
+ "additionalProperties": false
26858
+ }
26859
+ }
26860
+ };
26809
26861
  exports.CreateDraftRequest = {
26810
26862
  "$schema": "http://json-schema.org/draft-07/schema#",
26811
26863
  "$ref": "#/definitions/CreateDraftRequest",
@@ -29717,9 +29769,18 @@ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
29717
29769
  const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
29718
29770
  const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
29719
29771
  const AttributeMapper_1 = __webpack_require__(/*! ./AttributeMapper */ "./dist/useCases/consumption/attributes/AttributeMapper.js");
29772
+ let Validator = class Validator extends common_1.SchemaValidator {
29773
+ constructor(schemaRepository) {
29774
+ super(schemaRepository.getSchema("ExecuteIQLQueryRequest"));
29775
+ }
29776
+ };
29777
+ Validator = __decorate([
29778
+ __param(0, typescript_ioc_1.Inject),
29779
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
29780
+ ], Validator);
29720
29781
  let ExecuteIQLQueryUseCase = exports.ExecuteIQLQueryUseCase = class ExecuteIQLQueryUseCase extends common_1.UseCase {
29721
- constructor(attributeController) {
29722
- super();
29782
+ constructor(attributeController, validator) {
29783
+ super(validator);
29723
29784
  this.attributeController = attributeController;
29724
29785
  }
29725
29786
  async executeInternal(request) {
@@ -29730,7 +29791,8 @@ let ExecuteIQLQueryUseCase = exports.ExecuteIQLQueryUseCase = class ExecuteIQLQu
29730
29791
  };
29731
29792
  exports.ExecuteIQLQueryUseCase = ExecuteIQLQueryUseCase = __decorate([
29732
29793
  __param(0, typescript_ioc_1.Inject),
29733
- __metadata("design:paramtypes", [consumption_1.AttributesController])
29794
+ __param(1, typescript_ioc_1.Inject),
29795
+ __metadata("design:paramtypes", [consumption_1.AttributesController, Validator])
29734
29796
  ], ExecuteIQLQueryUseCase);
29735
29797
  //# sourceMappingURL=ExecuteIQLQuery.js.map
29736
29798
 
@@ -30419,6 +30481,60 @@ exports.UpdateAttributeUseCase = UpdateAttributeUseCase = __decorate([
30419
30481
 
30420
30482
  /***/ }),
30421
30483
 
30484
+ /***/ "./dist/useCases/consumption/attributes/ValidateIQLQuery.js":
30485
+ /*!******************************************************************!*\
30486
+ !*** ./dist/useCases/consumption/attributes/ValidateIQLQuery.js ***!
30487
+ \******************************************************************/
30488
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
30489
+
30490
+ "use strict";
30491
+
30492
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
30493
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30494
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30495
+ 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;
30496
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
30497
+ };
30498
+ var __metadata = (this && this.__metadata) || function (k, v) {
30499
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
30500
+ };
30501
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
30502
+ return function (target, key) { decorator(target, key, paramIndex); }
30503
+ };
30504
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
30505
+ exports.ValidateIQLQueryUseCase = void 0;
30506
+ const ts_utils_1 = __webpack_require__(/*! @js-soft/ts-utils */ "./node_modules/@js-soft/ts-utils/dist/index.js");
30507
+ const content_1 = __webpack_require__(/*! @nmshd/content */ "@nmshd/content");
30508
+ const iql_1 = __webpack_require__(/*! @nmshd/iql */ "./node_modules/@nmshd/iql/dist/src/index.js");
30509
+ const typescript_ioc_1 = __webpack_require__(/*! typescript-ioc */ "./node_modules/typescript-ioc/dist/typescript-ioc.js");
30510
+ const common_1 = __webpack_require__(/*! ../../common */ "./dist/useCases/common/index.js");
30511
+ let Validator = class Validator extends common_1.SchemaValidator {
30512
+ constructor(schemaRepository) {
30513
+ super(schemaRepository.getSchema("ValidateIQLQueryRequest"));
30514
+ }
30515
+ };
30516
+ Validator = __decorate([
30517
+ __param(0, typescript_ioc_1.Inject),
30518
+ __metadata("design:paramtypes", [common_1.SchemaRepository])
30519
+ ], Validator);
30520
+ let ValidateIQLQueryUseCase = exports.ValidateIQLQueryUseCase = class ValidateIQLQueryUseCase extends common_1.UseCase {
30521
+ constructor(validator) {
30522
+ super(validator);
30523
+ }
30524
+ executeInternal(request) {
30525
+ const query = content_1.IQLQuery.from(request.query);
30526
+ const validationResult = (0, iql_1.validate)(query.queryString);
30527
+ return ts_utils_1.Result.ok(validationResult);
30528
+ }
30529
+ };
30530
+ exports.ValidateIQLQueryUseCase = ValidateIQLQueryUseCase = __decorate([
30531
+ __param(0, typescript_ioc_1.Inject),
30532
+ __metadata("design:paramtypes", [Validator])
30533
+ ], ValidateIQLQueryUseCase);
30534
+ //# sourceMappingURL=ValidateIQLQuery.js.map
30535
+
30536
+ /***/ }),
30537
+
30422
30538
  /***/ "./dist/useCases/consumption/attributes/index.js":
30423
30539
  /*!*******************************************************!*\
30424
30540
  !*** ./dist/useCases/consumption/attributes/index.js ***!
@@ -30457,6 +30573,7 @@ __exportStar(__webpack_require__(/*! ./GetSharedToPeerAttributes */ "./dist/useC
30457
30573
  __exportStar(__webpack_require__(/*! ./ShareAttribute */ "./dist/useCases/consumption/attributes/ShareAttribute.js"), exports);
30458
30574
  __exportStar(__webpack_require__(/*! ./SucceedAttribute */ "./dist/useCases/consumption/attributes/SucceedAttribute.js"), exports);
30459
30575
  __exportStar(__webpack_require__(/*! ./UpdateAttribute */ "./dist/useCases/consumption/attributes/UpdateAttribute.js"), exports);
30576
+ __exportStar(__webpack_require__(/*! ./ValidateIQLQuery */ "./dist/useCases/consumption/attributes/ValidateIQLQuery.js"), exports);
30460
30577
  //# sourceMappingURL=index.js.map
30461
30578
 
30462
30579
  /***/ }),
@@ -37829,6 +37946,1574 @@ exports.sleep = sleep;
37829
37946
 
37830
37947
  /***/ }),
37831
37948
 
37949
+ /***/ "./node_modules/@nmshd/iql/dist/generated/iql.js":
37950
+ /*!*******************************************************!*\
37951
+ !*** ./node_modules/@nmshd/iql/dist/generated/iql.js ***!
37952
+ \*******************************************************/
37953
+ /***/ ((module) => {
37954
+
37955
+ "use strict";
37956
+ // Generated by Peggy 3.0.2.
37957
+ //
37958
+ // https://peggyjs.org/
37959
+
37960
+ /**
37961
+ * Takes the path through a nested dict as an array of strings and returns
37962
+ * the value, or a fallback value, if the path does not exist.
37963
+ */
37964
+ function resolvePath(dict, path, fallback = null) {
37965
+ let val = dict;
37966
+ for (const e of path) {
37967
+ if (!Object.keys(val).includes(e)) {
37968
+ return fallback;
37969
+ }
37970
+ val = val[e];
37971
+ }
37972
+ return val;
37973
+ }
37974
+ /**
37975
+ * Generic matching function for attributes.
37976
+ *
37977
+ * attributes: Array of attributes
37978
+ * path: Path to data field to apply matchFn to, represented as an
37979
+ * array of strings. E.g. Foo.bar.baz is represented as ["Foo",
37980
+ * "bar", "baz"].
37981
+ * matchFn: Predicate function applied to the value of the extracted
37982
+ * attribute data field represented by 'path'.
37983
+ * attributeType: See comment below.
37984
+ */
37985
+ function match(attributes, path, matchFn, attributeType = undefined) {
37986
+ const indices = [];
37987
+ for (let ii = 0; ii < attributes.length; ii++) {
37988
+ const val = resolvePath(attributes[ii], path, null);
37989
+ // If attributeType is defined, assert that it matches the attribute's
37990
+ // type. When matching primary fields the mechanism presented by matchFn
37991
+ // below is insufficient as it's not given the full attribute but only
37992
+ // the selected data field.
37993
+ if (attributeType !== undefined && attributes[ii].value["@type"] !== attributeType) {
37994
+ continue;
37995
+ }
37996
+ if (val !== null && matchFn(val)) {
37997
+ indices.push(ii);
37998
+ }
37999
+ }
38000
+ return indices;
38001
+ }
38002
+ /**
38003
+ * Returns the union of two sets (represented as arrays of primitive
38004
+ * elements).
38005
+ */
38006
+ function union(arr1, arr2) {
38007
+ const result = Array.from(new Set([...arr1, ...arr2]));
38008
+ result.sort((a, b) => { return a - b; });
38009
+ return result;
38010
+ }
38011
+ /**
38012
+ * Returns the intersection of two sets (represented as arrays of primitive
38013
+ * elements).
38014
+ */
38015
+ function intersect(b, ...a) {
38016
+ const result = [b, ...a].reduce((p, c) => p.filter(e => c.includes(e)));
38017
+ result.sort((a, b) => { return a - b; });
38018
+ return result;
38019
+ }
38020
+ /**
38021
+ * Returns the asymmetric difference of two sets (represented as arrays of
38022
+ * primitive elements).
38023
+ */
38024
+ function diffAsym(arr1, arr2) {
38025
+ const result = arr1.filter((x) => { return !arr2.includes(x); });
38026
+ result.sort((a, b) => { return a - b; });
38027
+ return result;
38028
+ }
38029
+ function peg$subclass(child, parent) {
38030
+ function C() { this.constructor = child; }
38031
+ C.prototype = parent.prototype;
38032
+ child.prototype = new C();
38033
+ }
38034
+ function peg$SyntaxError(message, expected, found, location) {
38035
+ var self = Error.call(this, message);
38036
+ // istanbul ignore next Check is a necessary evil to support older environments
38037
+ if (Object.setPrototypeOf) {
38038
+ Object.setPrototypeOf(self, peg$SyntaxError.prototype);
38039
+ }
38040
+ self.expected = expected;
38041
+ self.found = found;
38042
+ self.location = location;
38043
+ self.name = "SyntaxError";
38044
+ return self;
38045
+ }
38046
+ peg$subclass(peg$SyntaxError, Error);
38047
+ function peg$padEnd(str, targetLength, padString) {
38048
+ padString = padString || " ";
38049
+ if (str.length > targetLength) {
38050
+ return str;
38051
+ }
38052
+ targetLength -= str.length;
38053
+ padString += padString.repeat(targetLength);
38054
+ return str + padString.slice(0, targetLength);
38055
+ }
38056
+ peg$SyntaxError.prototype.format = function (sources) {
38057
+ var str = "Error: " + this.message;
38058
+ if (this.location) {
38059
+ var src = null;
38060
+ var k;
38061
+ for (k = 0; k < sources.length; k++) {
38062
+ if (sources[k].source === this.location.source) {
38063
+ src = sources[k].text.split(/\r\n|\n|\r/g);
38064
+ break;
38065
+ }
38066
+ }
38067
+ var s = this.location.start;
38068
+ var offset_s = (this.location.source && (typeof this.location.source.offset === "function"))
38069
+ ? this.location.source.offset(s)
38070
+ : s;
38071
+ var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;
38072
+ if (src) {
38073
+ var e = this.location.end;
38074
+ var filler = peg$padEnd("", offset_s.line.toString().length, ' ');
38075
+ var line = src[s.line - 1];
38076
+ var last = s.line === e.line ? e.column : line.length + 1;
38077
+ var hatLen = (last - s.column) || 1;
38078
+ str += "\n --> " + loc + "\n"
38079
+ + filler + " |\n"
38080
+ + offset_s.line + " | " + line + "\n"
38081
+ + filler + " | " + peg$padEnd("", s.column - 1, ' ')
38082
+ + peg$padEnd("", hatLen, "^");
38083
+ }
38084
+ else {
38085
+ str += "\n at " + loc;
38086
+ }
38087
+ }
38088
+ return str;
38089
+ };
38090
+ peg$SyntaxError.buildMessage = function (expected, found) {
38091
+ var DESCRIBE_EXPECTATION_FNS = {
38092
+ literal: function (expectation) {
38093
+ return "\"" + literalEscape(expectation.text) + "\"";
38094
+ },
38095
+ class: function (expectation) {
38096
+ var escapedParts = expectation.parts.map(function (part) {
38097
+ return Array.isArray(part)
38098
+ ? classEscape(part[0]) + "-" + classEscape(part[1])
38099
+ : classEscape(part);
38100
+ });
38101
+ return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";
38102
+ },
38103
+ any: function () {
38104
+ return "any character";
38105
+ },
38106
+ end: function () {
38107
+ return "end of input";
38108
+ },
38109
+ other: function (expectation) {
38110
+ return expectation.description;
38111
+ }
38112
+ };
38113
+ function hex(ch) {
38114
+ return ch.charCodeAt(0).toString(16).toUpperCase();
38115
+ }
38116
+ function literalEscape(s) {
38117
+ return s
38118
+ .replace(/\\/g, "\\\\")
38119
+ .replace(/"/g, "\\\"")
38120
+ .replace(/\0/g, "\\0")
38121
+ .replace(/\t/g, "\\t")
38122
+ .replace(/\n/g, "\\n")
38123
+ .replace(/\r/g, "\\r")
38124
+ .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
38125
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
38126
+ }
38127
+ function classEscape(s) {
38128
+ return s
38129
+ .replace(/\\/g, "\\\\")
38130
+ .replace(/\]/g, "\\]")
38131
+ .replace(/\^/g, "\\^")
38132
+ .replace(/-/g, "\\-")
38133
+ .replace(/\0/g, "\\0")
38134
+ .replace(/\t/g, "\\t")
38135
+ .replace(/\n/g, "\\n")
38136
+ .replace(/\r/g, "\\r")
38137
+ .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
38138
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
38139
+ }
38140
+ function describeExpectation(expectation) {
38141
+ return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
38142
+ }
38143
+ function describeExpected(expected) {
38144
+ var descriptions = expected.map(describeExpectation);
38145
+ var i, j;
38146
+ descriptions.sort();
38147
+ if (descriptions.length > 0) {
38148
+ for (i = 1, j = 1; i < descriptions.length; i++) {
38149
+ if (descriptions[i - 1] !== descriptions[i]) {
38150
+ descriptions[j] = descriptions[i];
38151
+ j++;
38152
+ }
38153
+ }
38154
+ descriptions.length = j;
38155
+ }
38156
+ switch (descriptions.length) {
38157
+ case 1:
38158
+ return descriptions[0];
38159
+ case 2:
38160
+ return descriptions[0] + " or " + descriptions[1];
38161
+ default:
38162
+ return descriptions.slice(0, -1).join(", ")
38163
+ + ", or "
38164
+ + descriptions[descriptions.length - 1];
38165
+ }
38166
+ }
38167
+ function describeFound(found) {
38168
+ return found ? "\"" + literalEscape(found) + "\"" : "end of input";
38169
+ }
38170
+ return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
38171
+ };
38172
+ function peg$parse(input, options) {
38173
+ options = options !== undefined ? options : {};
38174
+ var peg$FAILED = {};
38175
+ var peg$source = options.grammarSource;
38176
+ var peg$startRuleFunctions = { Expr: peg$parseExpr };
38177
+ var peg$startRuleFunction = peg$parseExpr;
38178
+ var peg$c0 = "||";
38179
+ var peg$c1 = "&&";
38180
+ var peg$c2 = "!";
38181
+ var peg$c3 = "(";
38182
+ var peg$c4 = ")";
38183
+ var peg$c5 = ".";
38184
+ var peg$c6 = "#";
38185
+ var peg$c7 = "'";
38186
+ var peg$c8 = "\\\\";
38187
+ var peg$c9 = "\\'";
38188
+ var peg$r0 = /^[=><~]/;
38189
+ var peg$r1 = /^[?]/;
38190
+ var peg$r2 = /^[^'\\]/;
38191
+ var peg$r3 = /^[^'\\ ]/;
38192
+ var peg$r4 = /^[a-z]/;
38193
+ var peg$r5 = /^[A-za-z0-9]/;
38194
+ var peg$r6 = /^[A-Z]/;
38195
+ var peg$r7 = /^[A-Za-z0-9]/;
38196
+ var peg$r8 = /^[ \t\n\r]/;
38197
+ var peg$e0 = peg$literalExpectation("||", false);
38198
+ var peg$e1 = peg$literalExpectation("&&", false);
38199
+ var peg$e2 = peg$literalExpectation("!", false);
38200
+ var peg$e3 = peg$literalExpectation("(", false);
38201
+ var peg$e4 = peg$literalExpectation(")", false);
38202
+ var peg$e5 = peg$otherExpectation("metadata field term");
38203
+ var peg$e6 = peg$literalExpectation(".", false);
38204
+ var peg$e7 = peg$otherExpectation("tag term");
38205
+ var peg$e8 = peg$literalExpectation("#", false);
38206
+ var peg$e9 = peg$otherExpectation("primary field term");
38207
+ var peg$e10 = peg$classExpectation(["=", ">", "<", "~"], false, false);
38208
+ var peg$e11 = peg$classExpectation(["?"], false, false);
38209
+ var peg$e12 = peg$literalExpectation("'", false);
38210
+ var peg$e13 = peg$literalExpectation("\\\\", false);
38211
+ var peg$e14 = peg$literalExpectation("\\'", false);
38212
+ var peg$e15 = peg$classExpectation(["'", "\\"], true, false);
38213
+ var peg$e16 = peg$classExpectation(["'", "\\", " "], true, false);
38214
+ var peg$e17 = peg$classExpectation([["a", "z"]], false, false);
38215
+ var peg$e18 = peg$classExpectation([["A", "z"], ["a", "z"], ["0", "9"]], false, false);
38216
+ var peg$e19 = peg$otherExpectation("attribute type");
38217
+ var peg$e20 = peg$classExpectation([["A", "Z"]], false, false);
38218
+ var peg$e21 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"]], false, false);
38219
+ var peg$e22 = peg$otherExpectation("whitespace");
38220
+ var peg$e23 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
38221
+ var peg$f0 = function (h, t) {
38222
+ return t.reduce((acc, element) => {
38223
+ return union(acc, element);
38224
+ }, h);
38225
+ };
38226
+ var peg$f1 = function (h, t) {
38227
+ return t.reduce((acc, element) => {
38228
+ return intersect(acc, element);
38229
+ }, h);
38230
+ };
38231
+ var peg$f2 = function (expr) {
38232
+ const allIndices = [...Array(options.attributes.length).keys()];
38233
+ return diffAsym(allIndices, expr);
38234
+ };
38235
+ var peg$f3 = function (pathPrefix, pathSuffix, matchFn) {
38236
+ return match(options.attributes, [pathPrefix, ...pathSuffix], matchFn);
38237
+ };
38238
+ var peg$f4 = function (tag) {
38239
+ return match(options.attributes, ["tags"], (fieldVal) => { return Array.isArray(fieldVal) && fieldVal.includes(tag); });
38240
+ };
38241
+ var peg$f5 = function (attributeType, path, matchFn) {
38242
+ const result = match(options.attributes, ["value", ...path], matchFn, attributeType);
38243
+ return result;
38244
+ };
38245
+ var peg$f6 = function (attributeType, matchFn) {
38246
+ return match(options.attributes, ["value", "value"], matchFn, attributeType);
38247
+ };
38248
+ var peg$f7 = function (attributeType) {
38249
+ // Providing only the attribute type returns attributes whose type
38250
+ // matches. E.g. 'PhoneNumber' will return all attributes whose type is
38251
+ // 'PhoneNumber', regardless of the values of any of their fields.
38252
+ return match(options.attributes, ["value", "@type"], (fieldVal) => { return fieldVal === attributeType; });
38253
+ };
38254
+ var peg$f8 = function (op, rhs) {
38255
+ switch (op) {
38256
+ case "=":
38257
+ return (fieldVal) => { return String(fieldVal) === rhs; };
38258
+ case ">":
38259
+ return (fieldVal) => { return new Date(fieldVal) >= new Date(rhs); };
38260
+ case "<":
38261
+ return (fieldVal) => { return new Date(fieldVal) <= new Date(rhs); };
38262
+ case "~":
38263
+ return (fieldVal) => { return Array.isArray(fieldVal) && fieldVal.includes(rhs); };
38264
+ }
38265
+ };
38266
+ var peg$f9 = function (op) {
38267
+ switch (op) {
38268
+ case "?":
38269
+ return (fieldVal) => { return fieldVal != undefined; };
38270
+ }
38271
+ };
38272
+ var peg$f10 = function (val) {
38273
+ return val.join("").replaceAll("\\\\", "\\").replaceAll("\\'", "'");
38274
+ };
38275
+ var peg$f11 = function (val) {
38276
+ return val.join("").replaceAll("\\\\", "\\").replaceAll("\\'", "'");
38277
+ };
38278
+ var peg$currPos = 0;
38279
+ var peg$savedPos = 0;
38280
+ var peg$posDetailsCache = [{ line: 1, column: 1 }];
38281
+ var peg$maxFailPos = 0;
38282
+ var peg$maxFailExpected = [];
38283
+ var peg$silentFails = 0;
38284
+ var peg$result;
38285
+ if ("startRule" in options) {
38286
+ if (!(options.startRule in peg$startRuleFunctions)) {
38287
+ throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
38288
+ }
38289
+ peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
38290
+ }
38291
+ function text() {
38292
+ return input.substring(peg$savedPos, peg$currPos);
38293
+ }
38294
+ function offset() {
38295
+ return peg$savedPos;
38296
+ }
38297
+ function range() {
38298
+ return {
38299
+ source: peg$source,
38300
+ start: peg$savedPos,
38301
+ end: peg$currPos
38302
+ };
38303
+ }
38304
+ function location() {
38305
+ return peg$computeLocation(peg$savedPos, peg$currPos);
38306
+ }
38307
+ function expected(description, location) {
38308
+ location = location !== undefined
38309
+ ? location
38310
+ : peg$computeLocation(peg$savedPos, peg$currPos);
38311
+ throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location);
38312
+ }
38313
+ function error(message, location) {
38314
+ location = location !== undefined
38315
+ ? location
38316
+ : peg$computeLocation(peg$savedPos, peg$currPos);
38317
+ throw peg$buildSimpleError(message, location);
38318
+ }
38319
+ function peg$literalExpectation(text, ignoreCase) {
38320
+ return { type: "literal", text: text, ignoreCase: ignoreCase };
38321
+ }
38322
+ function peg$classExpectation(parts, inverted, ignoreCase) {
38323
+ return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
38324
+ }
38325
+ function peg$anyExpectation() {
38326
+ return { type: "any" };
38327
+ }
38328
+ function peg$endExpectation() {
38329
+ return { type: "end" };
38330
+ }
38331
+ function peg$otherExpectation(description) {
38332
+ return { type: "other", description: description };
38333
+ }
38334
+ function peg$computePosDetails(pos) {
38335
+ var details = peg$posDetailsCache[pos];
38336
+ var p;
38337
+ if (details) {
38338
+ return details;
38339
+ }
38340
+ else {
38341
+ p = pos - 1;
38342
+ while (!peg$posDetailsCache[p]) {
38343
+ p--;
38344
+ }
38345
+ details = peg$posDetailsCache[p];
38346
+ details = {
38347
+ line: details.line,
38348
+ column: details.column
38349
+ };
38350
+ while (p < pos) {
38351
+ if (input.charCodeAt(p) === 10) {
38352
+ details.line++;
38353
+ details.column = 1;
38354
+ }
38355
+ else {
38356
+ details.column++;
38357
+ }
38358
+ p++;
38359
+ }
38360
+ peg$posDetailsCache[pos] = details;
38361
+ return details;
38362
+ }
38363
+ }
38364
+ function peg$computeLocation(startPos, endPos, offset) {
38365
+ var startPosDetails = peg$computePosDetails(startPos);
38366
+ var endPosDetails = peg$computePosDetails(endPos);
38367
+ var res = {
38368
+ source: peg$source,
38369
+ start: {
38370
+ offset: startPos,
38371
+ line: startPosDetails.line,
38372
+ column: startPosDetails.column
38373
+ },
38374
+ end: {
38375
+ offset: endPos,
38376
+ line: endPosDetails.line,
38377
+ column: endPosDetails.column
38378
+ }
38379
+ };
38380
+ if (offset && peg$source && (typeof peg$source.offset === "function")) {
38381
+ res.start = peg$source.offset(res.start);
38382
+ res.end = peg$source.offset(res.end);
38383
+ }
38384
+ return res;
38385
+ }
38386
+ function peg$fail(expected) {
38387
+ if (peg$currPos < peg$maxFailPos) {
38388
+ return;
38389
+ }
38390
+ if (peg$currPos > peg$maxFailPos) {
38391
+ peg$maxFailPos = peg$currPos;
38392
+ peg$maxFailExpected = [];
38393
+ }
38394
+ peg$maxFailExpected.push(expected);
38395
+ }
38396
+ function peg$buildSimpleError(message, location) {
38397
+ return new peg$SyntaxError(message, null, null, location);
38398
+ }
38399
+ function peg$buildStructuredError(expected, found, location) {
38400
+ return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location);
38401
+ }
38402
+ function peg$parseExpr() {
38403
+ var s0, s1, s2, s3, s4, s5, s6, s7;
38404
+ s0 = peg$currPos;
38405
+ s1 = peg$parseExpr0();
38406
+ if (s1 !== peg$FAILED) {
38407
+ s2 = [];
38408
+ s3 = peg$currPos;
38409
+ s4 = [];
38410
+ s5 = peg$parse_();
38411
+ if (s5 !== peg$FAILED) {
38412
+ while (s5 !== peg$FAILED) {
38413
+ s4.push(s5);
38414
+ s5 = peg$parse_();
38415
+ }
38416
+ }
38417
+ else {
38418
+ s4 = peg$FAILED;
38419
+ }
38420
+ if (s4 !== peg$FAILED) {
38421
+ if (input.substr(peg$currPos, 2) === peg$c0) {
38422
+ s5 = peg$c0;
38423
+ peg$currPos += 2;
38424
+ }
38425
+ else {
38426
+ s5 = peg$FAILED;
38427
+ if (peg$silentFails === 0) {
38428
+ peg$fail(peg$e0);
38429
+ }
38430
+ }
38431
+ if (s5 !== peg$FAILED) {
38432
+ s6 = [];
38433
+ s7 = peg$parse_();
38434
+ if (s7 !== peg$FAILED) {
38435
+ while (s7 !== peg$FAILED) {
38436
+ s6.push(s7);
38437
+ s7 = peg$parse_();
38438
+ }
38439
+ }
38440
+ else {
38441
+ s6 = peg$FAILED;
38442
+ }
38443
+ if (s6 !== peg$FAILED) {
38444
+ s7 = peg$parseExpr0();
38445
+ if (s7 !== peg$FAILED) {
38446
+ s3 = s7;
38447
+ }
38448
+ else {
38449
+ peg$currPos = s3;
38450
+ s3 = peg$FAILED;
38451
+ }
38452
+ }
38453
+ else {
38454
+ peg$currPos = s3;
38455
+ s3 = peg$FAILED;
38456
+ }
38457
+ }
38458
+ else {
38459
+ peg$currPos = s3;
38460
+ s3 = peg$FAILED;
38461
+ }
38462
+ }
38463
+ else {
38464
+ peg$currPos = s3;
38465
+ s3 = peg$FAILED;
38466
+ }
38467
+ while (s3 !== peg$FAILED) {
38468
+ s2.push(s3);
38469
+ s3 = peg$currPos;
38470
+ s4 = [];
38471
+ s5 = peg$parse_();
38472
+ if (s5 !== peg$FAILED) {
38473
+ while (s5 !== peg$FAILED) {
38474
+ s4.push(s5);
38475
+ s5 = peg$parse_();
38476
+ }
38477
+ }
38478
+ else {
38479
+ s4 = peg$FAILED;
38480
+ }
38481
+ if (s4 !== peg$FAILED) {
38482
+ if (input.substr(peg$currPos, 2) === peg$c0) {
38483
+ s5 = peg$c0;
38484
+ peg$currPos += 2;
38485
+ }
38486
+ else {
38487
+ s5 = peg$FAILED;
38488
+ if (peg$silentFails === 0) {
38489
+ peg$fail(peg$e0);
38490
+ }
38491
+ }
38492
+ if (s5 !== peg$FAILED) {
38493
+ s6 = [];
38494
+ s7 = peg$parse_();
38495
+ if (s7 !== peg$FAILED) {
38496
+ while (s7 !== peg$FAILED) {
38497
+ s6.push(s7);
38498
+ s7 = peg$parse_();
38499
+ }
38500
+ }
38501
+ else {
38502
+ s6 = peg$FAILED;
38503
+ }
38504
+ if (s6 !== peg$FAILED) {
38505
+ s7 = peg$parseExpr0();
38506
+ if (s7 !== peg$FAILED) {
38507
+ s3 = s7;
38508
+ }
38509
+ else {
38510
+ peg$currPos = s3;
38511
+ s3 = peg$FAILED;
38512
+ }
38513
+ }
38514
+ else {
38515
+ peg$currPos = s3;
38516
+ s3 = peg$FAILED;
38517
+ }
38518
+ }
38519
+ else {
38520
+ peg$currPos = s3;
38521
+ s3 = peg$FAILED;
38522
+ }
38523
+ }
38524
+ else {
38525
+ peg$currPos = s3;
38526
+ s3 = peg$FAILED;
38527
+ }
38528
+ }
38529
+ peg$savedPos = s0;
38530
+ s0 = peg$f0(s1, s2);
38531
+ }
38532
+ else {
38533
+ peg$currPos = s0;
38534
+ s0 = peg$FAILED;
38535
+ }
38536
+ return s0;
38537
+ }
38538
+ function peg$parseExpr0() {
38539
+ var s0, s1, s2, s3, s4, s5, s6, s7;
38540
+ s0 = peg$currPos;
38541
+ s1 = peg$parseExpr1();
38542
+ if (s1 !== peg$FAILED) {
38543
+ s2 = [];
38544
+ s3 = peg$currPos;
38545
+ s4 = [];
38546
+ s5 = peg$parse_();
38547
+ if (s5 !== peg$FAILED) {
38548
+ while (s5 !== peg$FAILED) {
38549
+ s4.push(s5);
38550
+ s5 = peg$parse_();
38551
+ }
38552
+ }
38553
+ else {
38554
+ s4 = peg$FAILED;
38555
+ }
38556
+ if (s4 !== peg$FAILED) {
38557
+ if (input.substr(peg$currPos, 2) === peg$c1) {
38558
+ s5 = peg$c1;
38559
+ peg$currPos += 2;
38560
+ }
38561
+ else {
38562
+ s5 = peg$FAILED;
38563
+ if (peg$silentFails === 0) {
38564
+ peg$fail(peg$e1);
38565
+ }
38566
+ }
38567
+ if (s5 !== peg$FAILED) {
38568
+ s6 = [];
38569
+ s7 = peg$parse_();
38570
+ if (s7 !== peg$FAILED) {
38571
+ while (s7 !== peg$FAILED) {
38572
+ s6.push(s7);
38573
+ s7 = peg$parse_();
38574
+ }
38575
+ }
38576
+ else {
38577
+ s6 = peg$FAILED;
38578
+ }
38579
+ if (s6 !== peg$FAILED) {
38580
+ s7 = peg$parseExpr1();
38581
+ if (s7 !== peg$FAILED) {
38582
+ s3 = s7;
38583
+ }
38584
+ else {
38585
+ peg$currPos = s3;
38586
+ s3 = peg$FAILED;
38587
+ }
38588
+ }
38589
+ else {
38590
+ peg$currPos = s3;
38591
+ s3 = peg$FAILED;
38592
+ }
38593
+ }
38594
+ else {
38595
+ peg$currPos = s3;
38596
+ s3 = peg$FAILED;
38597
+ }
38598
+ }
38599
+ else {
38600
+ peg$currPos = s3;
38601
+ s3 = peg$FAILED;
38602
+ }
38603
+ while (s3 !== peg$FAILED) {
38604
+ s2.push(s3);
38605
+ s3 = peg$currPos;
38606
+ s4 = [];
38607
+ s5 = peg$parse_();
38608
+ if (s5 !== peg$FAILED) {
38609
+ while (s5 !== peg$FAILED) {
38610
+ s4.push(s5);
38611
+ s5 = peg$parse_();
38612
+ }
38613
+ }
38614
+ else {
38615
+ s4 = peg$FAILED;
38616
+ }
38617
+ if (s4 !== peg$FAILED) {
38618
+ if (input.substr(peg$currPos, 2) === peg$c1) {
38619
+ s5 = peg$c1;
38620
+ peg$currPos += 2;
38621
+ }
38622
+ else {
38623
+ s5 = peg$FAILED;
38624
+ if (peg$silentFails === 0) {
38625
+ peg$fail(peg$e1);
38626
+ }
38627
+ }
38628
+ if (s5 !== peg$FAILED) {
38629
+ s6 = [];
38630
+ s7 = peg$parse_();
38631
+ if (s7 !== peg$FAILED) {
38632
+ while (s7 !== peg$FAILED) {
38633
+ s6.push(s7);
38634
+ s7 = peg$parse_();
38635
+ }
38636
+ }
38637
+ else {
38638
+ s6 = peg$FAILED;
38639
+ }
38640
+ if (s6 !== peg$FAILED) {
38641
+ s7 = peg$parseExpr1();
38642
+ if (s7 !== peg$FAILED) {
38643
+ s3 = s7;
38644
+ }
38645
+ else {
38646
+ peg$currPos = s3;
38647
+ s3 = peg$FAILED;
38648
+ }
38649
+ }
38650
+ else {
38651
+ peg$currPos = s3;
38652
+ s3 = peg$FAILED;
38653
+ }
38654
+ }
38655
+ else {
38656
+ peg$currPos = s3;
38657
+ s3 = peg$FAILED;
38658
+ }
38659
+ }
38660
+ else {
38661
+ peg$currPos = s3;
38662
+ s3 = peg$FAILED;
38663
+ }
38664
+ }
38665
+ peg$savedPos = s0;
38666
+ s0 = peg$f1(s1, s2);
38667
+ }
38668
+ else {
38669
+ peg$currPos = s0;
38670
+ s0 = peg$FAILED;
38671
+ }
38672
+ return s0;
38673
+ }
38674
+ function peg$parseExpr1() {
38675
+ var s0, s1, s2;
38676
+ s0 = peg$currPos;
38677
+ if (input.charCodeAt(peg$currPos) === 33) {
38678
+ s1 = peg$c2;
38679
+ peg$currPos++;
38680
+ }
38681
+ else {
38682
+ s1 = peg$FAILED;
38683
+ if (peg$silentFails === 0) {
38684
+ peg$fail(peg$e2);
38685
+ }
38686
+ }
38687
+ if (s1 !== peg$FAILED) {
38688
+ s2 = peg$parseExpr1();
38689
+ if (s2 !== peg$FAILED) {
38690
+ peg$savedPos = s0;
38691
+ s0 = peg$f2(s2);
38692
+ }
38693
+ else {
38694
+ peg$currPos = s0;
38695
+ s0 = peg$FAILED;
38696
+ }
38697
+ }
38698
+ else {
38699
+ peg$currPos = s0;
38700
+ s0 = peg$FAILED;
38701
+ }
38702
+ if (s0 === peg$FAILED) {
38703
+ s0 = peg$parseExpr2();
38704
+ }
38705
+ return s0;
38706
+ }
38707
+ function peg$parseExpr2() {
38708
+ var s0, s1, s2, s3, s4, s5;
38709
+ s0 = peg$currPos;
38710
+ if (input.charCodeAt(peg$currPos) === 40) {
38711
+ s1 = peg$c3;
38712
+ peg$currPos++;
38713
+ }
38714
+ else {
38715
+ s1 = peg$FAILED;
38716
+ if (peg$silentFails === 0) {
38717
+ peg$fail(peg$e3);
38718
+ }
38719
+ }
38720
+ if (s1 !== peg$FAILED) {
38721
+ s2 = [];
38722
+ s3 = peg$parse_();
38723
+ if (s3 !== peg$FAILED) {
38724
+ while (s3 !== peg$FAILED) {
38725
+ s2.push(s3);
38726
+ s3 = peg$parse_();
38727
+ }
38728
+ }
38729
+ else {
38730
+ s2 = peg$FAILED;
38731
+ }
38732
+ if (s2 !== peg$FAILED) {
38733
+ s3 = peg$parseExpr();
38734
+ if (s3 !== peg$FAILED) {
38735
+ s4 = [];
38736
+ s5 = peg$parse_();
38737
+ if (s5 !== peg$FAILED) {
38738
+ while (s5 !== peg$FAILED) {
38739
+ s4.push(s5);
38740
+ s5 = peg$parse_();
38741
+ }
38742
+ }
38743
+ else {
38744
+ s4 = peg$FAILED;
38745
+ }
38746
+ if (s4 !== peg$FAILED) {
38747
+ if (input.charCodeAt(peg$currPos) === 41) {
38748
+ s5 = peg$c4;
38749
+ peg$currPos++;
38750
+ }
38751
+ else {
38752
+ s5 = peg$FAILED;
38753
+ if (peg$silentFails === 0) {
38754
+ peg$fail(peg$e4);
38755
+ }
38756
+ }
38757
+ if (s5 !== peg$FAILED) {
38758
+ s0 = s3;
38759
+ }
38760
+ else {
38761
+ peg$currPos = s0;
38762
+ s0 = peg$FAILED;
38763
+ }
38764
+ }
38765
+ else {
38766
+ peg$currPos = s0;
38767
+ s0 = peg$FAILED;
38768
+ }
38769
+ }
38770
+ else {
38771
+ peg$currPos = s0;
38772
+ s0 = peg$FAILED;
38773
+ }
38774
+ }
38775
+ else {
38776
+ peg$currPos = s0;
38777
+ s0 = peg$FAILED;
38778
+ }
38779
+ }
38780
+ else {
38781
+ peg$currPos = s0;
38782
+ s0 = peg$FAILED;
38783
+ }
38784
+ if (s0 === peg$FAILED) {
38785
+ s0 = peg$parseTerm();
38786
+ }
38787
+ return s0;
38788
+ }
38789
+ function peg$parseTerm() {
38790
+ var s0;
38791
+ s0 = peg$parsePrimaryFieldTerm();
38792
+ if (s0 === peg$FAILED) {
38793
+ s0 = peg$parseMetadataFieldTerm();
38794
+ if (s0 === peg$FAILED) {
38795
+ s0 = peg$parseTagTerm();
38796
+ }
38797
+ }
38798
+ return s0;
38799
+ }
38800
+ function peg$parseMetadataFieldTerm() {
38801
+ var s0, s1, s2, s3, s4, s5;
38802
+ peg$silentFails++;
38803
+ s0 = peg$currPos;
38804
+ s1 = peg$parsePathSegment();
38805
+ if (s1 !== peg$FAILED) {
38806
+ s2 = [];
38807
+ s3 = peg$currPos;
38808
+ if (input.charCodeAt(peg$currPos) === 46) {
38809
+ s4 = peg$c5;
38810
+ peg$currPos++;
38811
+ }
38812
+ else {
38813
+ s4 = peg$FAILED;
38814
+ if (peg$silentFails === 0) {
38815
+ peg$fail(peg$e6);
38816
+ }
38817
+ }
38818
+ if (s4 !== peg$FAILED) {
38819
+ s5 = peg$parsePathSegment();
38820
+ if (s5 !== peg$FAILED) {
38821
+ s3 = s5;
38822
+ }
38823
+ else {
38824
+ peg$currPos = s3;
38825
+ s3 = peg$FAILED;
38826
+ }
38827
+ }
38828
+ else {
38829
+ peg$currPos = s3;
38830
+ s3 = peg$FAILED;
38831
+ }
38832
+ while (s3 !== peg$FAILED) {
38833
+ s2.push(s3);
38834
+ s3 = peg$currPos;
38835
+ if (input.charCodeAt(peg$currPos) === 46) {
38836
+ s4 = peg$c5;
38837
+ peg$currPos++;
38838
+ }
38839
+ else {
38840
+ s4 = peg$FAILED;
38841
+ if (peg$silentFails === 0) {
38842
+ peg$fail(peg$e6);
38843
+ }
38844
+ }
38845
+ if (s4 !== peg$FAILED) {
38846
+ s5 = peg$parsePathSegment();
38847
+ if (s5 !== peg$FAILED) {
38848
+ s3 = s5;
38849
+ }
38850
+ else {
38851
+ peg$currPos = s3;
38852
+ s3 = peg$FAILED;
38853
+ }
38854
+ }
38855
+ else {
38856
+ peg$currPos = s3;
38857
+ s3 = peg$FAILED;
38858
+ }
38859
+ }
38860
+ s3 = peg$parsePredicate();
38861
+ if (s3 !== peg$FAILED) {
38862
+ peg$savedPos = s0;
38863
+ s0 = peg$f3(s1, s2, s3);
38864
+ }
38865
+ else {
38866
+ peg$currPos = s0;
38867
+ s0 = peg$FAILED;
38868
+ }
38869
+ }
38870
+ else {
38871
+ peg$currPos = s0;
38872
+ s0 = peg$FAILED;
38873
+ }
38874
+ peg$silentFails--;
38875
+ if (s0 === peg$FAILED) {
38876
+ s1 = peg$FAILED;
38877
+ if (peg$silentFails === 0) {
38878
+ peg$fail(peg$e5);
38879
+ }
38880
+ }
38881
+ return s0;
38882
+ }
38883
+ function peg$parseTagTerm() {
38884
+ var s0, s1, s2;
38885
+ peg$silentFails++;
38886
+ s0 = peg$currPos;
38887
+ if (input.charCodeAt(peg$currPos) === 35) {
38888
+ s1 = peg$c6;
38889
+ peg$currPos++;
38890
+ }
38891
+ else {
38892
+ s1 = peg$FAILED;
38893
+ if (peg$silentFails === 0) {
38894
+ peg$fail(peg$e8);
38895
+ }
38896
+ }
38897
+ if (s1 !== peg$FAILED) {
38898
+ s2 = peg$parsePredicateRHS();
38899
+ if (s2 !== peg$FAILED) {
38900
+ peg$savedPos = s0;
38901
+ s0 = peg$f4(s2);
38902
+ }
38903
+ else {
38904
+ peg$currPos = s0;
38905
+ s0 = peg$FAILED;
38906
+ }
38907
+ }
38908
+ else {
38909
+ peg$currPos = s0;
38910
+ s0 = peg$FAILED;
38911
+ }
38912
+ peg$silentFails--;
38913
+ if (s0 === peg$FAILED) {
38914
+ s1 = peg$FAILED;
38915
+ if (peg$silentFails === 0) {
38916
+ peg$fail(peg$e7);
38917
+ }
38918
+ }
38919
+ return s0;
38920
+ }
38921
+ function peg$parsePrimaryFieldTerm() {
38922
+ var s0, s1, s2, s3, s4, s5;
38923
+ peg$silentFails++;
38924
+ s0 = peg$currPos;
38925
+ s1 = peg$parseAttributeType();
38926
+ if (s1 !== peg$FAILED) {
38927
+ s2 = [];
38928
+ s3 = peg$currPos;
38929
+ if (input.charCodeAt(peg$currPos) === 46) {
38930
+ s4 = peg$c5;
38931
+ peg$currPos++;
38932
+ }
38933
+ else {
38934
+ s4 = peg$FAILED;
38935
+ if (peg$silentFails === 0) {
38936
+ peg$fail(peg$e6);
38937
+ }
38938
+ }
38939
+ if (s4 !== peg$FAILED) {
38940
+ s5 = peg$parsePathSegment();
38941
+ if (s5 !== peg$FAILED) {
38942
+ s3 = s5;
38943
+ }
38944
+ else {
38945
+ peg$currPos = s3;
38946
+ s3 = peg$FAILED;
38947
+ }
38948
+ }
38949
+ else {
38950
+ peg$currPos = s3;
38951
+ s3 = peg$FAILED;
38952
+ }
38953
+ if (s3 !== peg$FAILED) {
38954
+ while (s3 !== peg$FAILED) {
38955
+ s2.push(s3);
38956
+ s3 = peg$currPos;
38957
+ if (input.charCodeAt(peg$currPos) === 46) {
38958
+ s4 = peg$c5;
38959
+ peg$currPos++;
38960
+ }
38961
+ else {
38962
+ s4 = peg$FAILED;
38963
+ if (peg$silentFails === 0) {
38964
+ peg$fail(peg$e6);
38965
+ }
38966
+ }
38967
+ if (s4 !== peg$FAILED) {
38968
+ s5 = peg$parsePathSegment();
38969
+ if (s5 !== peg$FAILED) {
38970
+ s3 = s5;
38971
+ }
38972
+ else {
38973
+ peg$currPos = s3;
38974
+ s3 = peg$FAILED;
38975
+ }
38976
+ }
38977
+ else {
38978
+ peg$currPos = s3;
38979
+ s3 = peg$FAILED;
38980
+ }
38981
+ }
38982
+ }
38983
+ else {
38984
+ s2 = peg$FAILED;
38985
+ }
38986
+ if (s2 !== peg$FAILED) {
38987
+ s3 = peg$parsePredicate();
38988
+ if (s3 !== peg$FAILED) {
38989
+ peg$savedPos = s0;
38990
+ s0 = peg$f5(s1, s2, s3);
38991
+ }
38992
+ else {
38993
+ peg$currPos = s0;
38994
+ s0 = peg$FAILED;
38995
+ }
38996
+ }
38997
+ else {
38998
+ peg$currPos = s0;
38999
+ s0 = peg$FAILED;
39000
+ }
39001
+ }
39002
+ else {
39003
+ peg$currPos = s0;
39004
+ s0 = peg$FAILED;
39005
+ }
39006
+ if (s0 === peg$FAILED) {
39007
+ s0 = peg$currPos;
39008
+ s1 = peg$parseAttributeType();
39009
+ if (s1 !== peg$FAILED) {
39010
+ s2 = peg$parsePredicate();
39011
+ if (s2 !== peg$FAILED) {
39012
+ peg$savedPos = s0;
39013
+ s0 = peg$f6(s1, s2);
39014
+ }
39015
+ else {
39016
+ peg$currPos = s0;
39017
+ s0 = peg$FAILED;
39018
+ }
39019
+ }
39020
+ else {
39021
+ peg$currPos = s0;
39022
+ s0 = peg$FAILED;
39023
+ }
39024
+ if (s0 === peg$FAILED) {
39025
+ s0 = peg$currPos;
39026
+ s1 = peg$parseAttributeType();
39027
+ if (s1 !== peg$FAILED) {
39028
+ peg$savedPos = s0;
39029
+ s1 = peg$f7(s1);
39030
+ }
39031
+ s0 = s1;
39032
+ }
39033
+ }
39034
+ peg$silentFails--;
39035
+ if (s0 === peg$FAILED) {
39036
+ s1 = peg$FAILED;
39037
+ if (peg$silentFails === 0) {
39038
+ peg$fail(peg$e9);
39039
+ }
39040
+ }
39041
+ return s0;
39042
+ }
39043
+ function peg$parsePredicate() {
39044
+ var s0, s1, s2;
39045
+ s0 = peg$currPos;
39046
+ if (peg$r0.test(input.charAt(peg$currPos))) {
39047
+ s1 = input.charAt(peg$currPos);
39048
+ peg$currPos++;
39049
+ }
39050
+ else {
39051
+ s1 = peg$FAILED;
39052
+ if (peg$silentFails === 0) {
39053
+ peg$fail(peg$e10);
39054
+ }
39055
+ }
39056
+ if (s1 !== peg$FAILED) {
39057
+ s2 = peg$parsePredicateRHS();
39058
+ if (s2 !== peg$FAILED) {
39059
+ peg$savedPos = s0;
39060
+ s0 = peg$f8(s1, s2);
39061
+ }
39062
+ else {
39063
+ peg$currPos = s0;
39064
+ s0 = peg$FAILED;
39065
+ }
39066
+ }
39067
+ else {
39068
+ peg$currPos = s0;
39069
+ s0 = peg$FAILED;
39070
+ }
39071
+ if (s0 === peg$FAILED) {
39072
+ s0 = peg$currPos;
39073
+ if (peg$r1.test(input.charAt(peg$currPos))) {
39074
+ s1 = input.charAt(peg$currPos);
39075
+ peg$currPos++;
39076
+ }
39077
+ else {
39078
+ s1 = peg$FAILED;
39079
+ if (peg$silentFails === 0) {
39080
+ peg$fail(peg$e11);
39081
+ }
39082
+ }
39083
+ if (s1 !== peg$FAILED) {
39084
+ peg$savedPos = s0;
39085
+ s1 = peg$f9(s1);
39086
+ }
39087
+ s0 = s1;
39088
+ }
39089
+ return s0;
39090
+ }
39091
+ function peg$parsePredicateRHS() {
39092
+ var s0, s1, s2, s3;
39093
+ s0 = peg$currPos;
39094
+ if (input.charCodeAt(peg$currPos) === 39) {
39095
+ s1 = peg$c7;
39096
+ peg$currPos++;
39097
+ }
39098
+ else {
39099
+ s1 = peg$FAILED;
39100
+ if (peg$silentFails === 0) {
39101
+ peg$fail(peg$e12);
39102
+ }
39103
+ }
39104
+ if (s1 !== peg$FAILED) {
39105
+ s2 = [];
39106
+ if (input.substr(peg$currPos, 2) === peg$c8) {
39107
+ s3 = peg$c8;
39108
+ peg$currPos += 2;
39109
+ }
39110
+ else {
39111
+ s3 = peg$FAILED;
39112
+ if (peg$silentFails === 0) {
39113
+ peg$fail(peg$e13);
39114
+ }
39115
+ }
39116
+ if (s3 === peg$FAILED) {
39117
+ if (input.substr(peg$currPos, 2) === peg$c9) {
39118
+ s3 = peg$c9;
39119
+ peg$currPos += 2;
39120
+ }
39121
+ else {
39122
+ s3 = peg$FAILED;
39123
+ if (peg$silentFails === 0) {
39124
+ peg$fail(peg$e14);
39125
+ }
39126
+ }
39127
+ if (s3 === peg$FAILED) {
39128
+ if (peg$r2.test(input.charAt(peg$currPos))) {
39129
+ s3 = input.charAt(peg$currPos);
39130
+ peg$currPos++;
39131
+ }
39132
+ else {
39133
+ s3 = peg$FAILED;
39134
+ if (peg$silentFails === 0) {
39135
+ peg$fail(peg$e15);
39136
+ }
39137
+ }
39138
+ }
39139
+ }
39140
+ while (s3 !== peg$FAILED) {
39141
+ s2.push(s3);
39142
+ if (input.substr(peg$currPos, 2) === peg$c8) {
39143
+ s3 = peg$c8;
39144
+ peg$currPos += 2;
39145
+ }
39146
+ else {
39147
+ s3 = peg$FAILED;
39148
+ if (peg$silentFails === 0) {
39149
+ peg$fail(peg$e13);
39150
+ }
39151
+ }
39152
+ if (s3 === peg$FAILED) {
39153
+ if (input.substr(peg$currPos, 2) === peg$c9) {
39154
+ s3 = peg$c9;
39155
+ peg$currPos += 2;
39156
+ }
39157
+ else {
39158
+ s3 = peg$FAILED;
39159
+ if (peg$silentFails === 0) {
39160
+ peg$fail(peg$e14);
39161
+ }
39162
+ }
39163
+ if (s3 === peg$FAILED) {
39164
+ if (peg$r2.test(input.charAt(peg$currPos))) {
39165
+ s3 = input.charAt(peg$currPos);
39166
+ peg$currPos++;
39167
+ }
39168
+ else {
39169
+ s3 = peg$FAILED;
39170
+ if (peg$silentFails === 0) {
39171
+ peg$fail(peg$e15);
39172
+ }
39173
+ }
39174
+ }
39175
+ }
39176
+ }
39177
+ if (input.charCodeAt(peg$currPos) === 39) {
39178
+ s3 = peg$c7;
39179
+ peg$currPos++;
39180
+ }
39181
+ else {
39182
+ s3 = peg$FAILED;
39183
+ if (peg$silentFails === 0) {
39184
+ peg$fail(peg$e12);
39185
+ }
39186
+ }
39187
+ if (s3 !== peg$FAILED) {
39188
+ peg$savedPos = s0;
39189
+ s0 = peg$f10(s2);
39190
+ }
39191
+ else {
39192
+ peg$currPos = s0;
39193
+ s0 = peg$FAILED;
39194
+ }
39195
+ }
39196
+ else {
39197
+ peg$currPos = s0;
39198
+ s0 = peg$FAILED;
39199
+ }
39200
+ if (s0 === peg$FAILED) {
39201
+ s0 = peg$currPos;
39202
+ s1 = [];
39203
+ if (input.substr(peg$currPos, 2) === peg$c8) {
39204
+ s2 = peg$c8;
39205
+ peg$currPos += 2;
39206
+ }
39207
+ else {
39208
+ s2 = peg$FAILED;
39209
+ if (peg$silentFails === 0) {
39210
+ peg$fail(peg$e13);
39211
+ }
39212
+ }
39213
+ if (s2 === peg$FAILED) {
39214
+ if (input.substr(peg$currPos, 2) === peg$c9) {
39215
+ s2 = peg$c9;
39216
+ peg$currPos += 2;
39217
+ }
39218
+ else {
39219
+ s2 = peg$FAILED;
39220
+ if (peg$silentFails === 0) {
39221
+ peg$fail(peg$e14);
39222
+ }
39223
+ }
39224
+ if (s2 === peg$FAILED) {
39225
+ if (peg$r3.test(input.charAt(peg$currPos))) {
39226
+ s2 = input.charAt(peg$currPos);
39227
+ peg$currPos++;
39228
+ }
39229
+ else {
39230
+ s2 = peg$FAILED;
39231
+ if (peg$silentFails === 0) {
39232
+ peg$fail(peg$e16);
39233
+ }
39234
+ }
39235
+ }
39236
+ }
39237
+ while (s2 !== peg$FAILED) {
39238
+ s1.push(s2);
39239
+ if (input.substr(peg$currPos, 2) === peg$c8) {
39240
+ s2 = peg$c8;
39241
+ peg$currPos += 2;
39242
+ }
39243
+ else {
39244
+ s2 = peg$FAILED;
39245
+ if (peg$silentFails === 0) {
39246
+ peg$fail(peg$e13);
39247
+ }
39248
+ }
39249
+ if (s2 === peg$FAILED) {
39250
+ if (input.substr(peg$currPos, 2) === peg$c9) {
39251
+ s2 = peg$c9;
39252
+ peg$currPos += 2;
39253
+ }
39254
+ else {
39255
+ s2 = peg$FAILED;
39256
+ if (peg$silentFails === 0) {
39257
+ peg$fail(peg$e14);
39258
+ }
39259
+ }
39260
+ if (s2 === peg$FAILED) {
39261
+ if (peg$r3.test(input.charAt(peg$currPos))) {
39262
+ s2 = input.charAt(peg$currPos);
39263
+ peg$currPos++;
39264
+ }
39265
+ else {
39266
+ s2 = peg$FAILED;
39267
+ if (peg$silentFails === 0) {
39268
+ peg$fail(peg$e16);
39269
+ }
39270
+ }
39271
+ }
39272
+ }
39273
+ }
39274
+ peg$savedPos = s0;
39275
+ s1 = peg$f11(s1);
39276
+ s0 = s1;
39277
+ }
39278
+ return s0;
39279
+ }
39280
+ function peg$parsePathSegment() {
39281
+ var s0, s1, s2, s3, s4;
39282
+ s0 = peg$currPos;
39283
+ s1 = peg$currPos;
39284
+ if (peg$r4.test(input.charAt(peg$currPos))) {
39285
+ s2 = input.charAt(peg$currPos);
39286
+ peg$currPos++;
39287
+ }
39288
+ else {
39289
+ s2 = peg$FAILED;
39290
+ if (peg$silentFails === 0) {
39291
+ peg$fail(peg$e17);
39292
+ }
39293
+ }
39294
+ if (s2 !== peg$FAILED) {
39295
+ s3 = [];
39296
+ if (peg$r5.test(input.charAt(peg$currPos))) {
39297
+ s4 = input.charAt(peg$currPos);
39298
+ peg$currPos++;
39299
+ }
39300
+ else {
39301
+ s4 = peg$FAILED;
39302
+ if (peg$silentFails === 0) {
39303
+ peg$fail(peg$e18);
39304
+ }
39305
+ }
39306
+ if (s4 !== peg$FAILED) {
39307
+ while (s4 !== peg$FAILED) {
39308
+ s3.push(s4);
39309
+ if (peg$r5.test(input.charAt(peg$currPos))) {
39310
+ s4 = input.charAt(peg$currPos);
39311
+ peg$currPos++;
39312
+ }
39313
+ else {
39314
+ s4 = peg$FAILED;
39315
+ if (peg$silentFails === 0) {
39316
+ peg$fail(peg$e18);
39317
+ }
39318
+ }
39319
+ }
39320
+ }
39321
+ else {
39322
+ s3 = peg$FAILED;
39323
+ }
39324
+ if (s3 !== peg$FAILED) {
39325
+ s2 = [s2, s3];
39326
+ s1 = s2;
39327
+ }
39328
+ else {
39329
+ peg$currPos = s1;
39330
+ s1 = peg$FAILED;
39331
+ }
39332
+ }
39333
+ else {
39334
+ peg$currPos = s1;
39335
+ s1 = peg$FAILED;
39336
+ }
39337
+ if (s1 !== peg$FAILED) {
39338
+ s0 = input.substring(s0, peg$currPos);
39339
+ }
39340
+ else {
39341
+ s0 = s1;
39342
+ }
39343
+ return s0;
39344
+ }
39345
+ function peg$parseAttributeType() {
39346
+ var s0, s1, s2, s3, s4;
39347
+ peg$silentFails++;
39348
+ s0 = peg$currPos;
39349
+ s1 = peg$currPos;
39350
+ if (peg$r6.test(input.charAt(peg$currPos))) {
39351
+ s2 = input.charAt(peg$currPos);
39352
+ peg$currPos++;
39353
+ }
39354
+ else {
39355
+ s2 = peg$FAILED;
39356
+ if (peg$silentFails === 0) {
39357
+ peg$fail(peg$e20);
39358
+ }
39359
+ }
39360
+ if (s2 !== peg$FAILED) {
39361
+ s3 = [];
39362
+ if (peg$r7.test(input.charAt(peg$currPos))) {
39363
+ s4 = input.charAt(peg$currPos);
39364
+ peg$currPos++;
39365
+ }
39366
+ else {
39367
+ s4 = peg$FAILED;
39368
+ if (peg$silentFails === 0) {
39369
+ peg$fail(peg$e21);
39370
+ }
39371
+ }
39372
+ while (s4 !== peg$FAILED) {
39373
+ s3.push(s4);
39374
+ if (peg$r7.test(input.charAt(peg$currPos))) {
39375
+ s4 = input.charAt(peg$currPos);
39376
+ peg$currPos++;
39377
+ }
39378
+ else {
39379
+ s4 = peg$FAILED;
39380
+ if (peg$silentFails === 0) {
39381
+ peg$fail(peg$e21);
39382
+ }
39383
+ }
39384
+ }
39385
+ s2 = [s2, s3];
39386
+ s1 = s2;
39387
+ }
39388
+ else {
39389
+ peg$currPos = s1;
39390
+ s1 = peg$FAILED;
39391
+ }
39392
+ if (s1 !== peg$FAILED) {
39393
+ s0 = input.substring(s0, peg$currPos);
39394
+ }
39395
+ else {
39396
+ s0 = s1;
39397
+ }
39398
+ peg$silentFails--;
39399
+ if (s0 === peg$FAILED) {
39400
+ s1 = peg$FAILED;
39401
+ if (peg$silentFails === 0) {
39402
+ peg$fail(peg$e19);
39403
+ }
39404
+ }
39405
+ return s0;
39406
+ }
39407
+ function peg$parse_() {
39408
+ var s0, s1;
39409
+ peg$silentFails++;
39410
+ if (peg$r8.test(input.charAt(peg$currPos))) {
39411
+ s0 = input.charAt(peg$currPos);
39412
+ peg$currPos++;
39413
+ }
39414
+ else {
39415
+ s0 = peg$FAILED;
39416
+ if (peg$silentFails === 0) {
39417
+ peg$fail(peg$e23);
39418
+ }
39419
+ }
39420
+ peg$silentFails--;
39421
+ if (s0 === peg$FAILED) {
39422
+ s1 = peg$FAILED;
39423
+ if (peg$silentFails === 0) {
39424
+ peg$fail(peg$e22);
39425
+ }
39426
+ }
39427
+ return s0;
39428
+ }
39429
+ peg$result = peg$startRuleFunction();
39430
+ if (peg$result !== peg$FAILED && peg$currPos === input.length) {
39431
+ return peg$result;
39432
+ }
39433
+ else {
39434
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
39435
+ peg$fail(peg$endExpectation());
39436
+ }
39437
+ throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length
39438
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
39439
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
39440
+ }
39441
+ }
39442
+ module.exports = {
39443
+ SyntaxError: peg$SyntaxError,
39444
+ parse: peg$parse
39445
+ };
39446
+ //# sourceMappingURL=iql.js.map
39447
+
39448
+ /***/ }),
39449
+
39450
+ /***/ "./node_modules/@nmshd/iql/dist/src/index.js":
39451
+ /*!***************************************************!*\
39452
+ !*** ./node_modules/@nmshd/iql/dist/src/index.js ***!
39453
+ \***************************************************/
39454
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
39455
+
39456
+ "use strict";
39457
+
39458
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
39459
+ exports.validate = exports.execute = void 0;
39460
+ const iql_js_1 = __webpack_require__(/*! ../generated/iql.js */ "./node_modules/@nmshd/iql/dist/generated/iql.js");
39461
+ /**
39462
+ * Executes IQL query, returning array of indicies of matched attributes in
39463
+ * attribute array.
39464
+ */
39465
+ function execute(iqlQuery, attributes) {
39466
+ return (0, iql_js_1.parse)(iqlQuery, { attributes });
39467
+ }
39468
+ exports.execute = execute;
39469
+ function validate(iqlQuery) {
39470
+ try {
39471
+ (0, iql_js_1.parse)(iqlQuery, { attributes: [] });
39472
+ return { isValid: true };
39473
+ }
39474
+ catch (error) {
39475
+ // FIXME: Is there a cleaner way to catch IQL SyntaxErrors?
39476
+ // For the sake of backwards compatibility peggy compiles to old
39477
+ // js without the use of classes. Thus the static type inference
39478
+ // for the SyntaxError type is severely crippled.
39479
+ if (error instanceof iql_js_1.SyntaxError) {
39480
+ const err = error; // see FIXME above.
39481
+ return {
39482
+ isValid: false,
39483
+ error: {
39484
+ message: err.message,
39485
+ location: {
39486
+ start: err.location.start,
39487
+ end: err.location.end
39488
+ }
39489
+ }
39490
+ };
39491
+ }
39492
+ return {
39493
+ isValid: false,
39494
+ error: {
39495
+ message: JSON.stringify(error),
39496
+ location: {
39497
+ start: {
39498
+ column: 0,
39499
+ line: 0,
39500
+ offset: 0
39501
+ },
39502
+ end: {
39503
+ column: 0,
39504
+ line: 0,
39505
+ offset: 0
39506
+ }
39507
+ }
39508
+ }
39509
+ };
39510
+ }
39511
+ }
39512
+ exports.validate = validate;
39513
+ //# sourceMappingURL=index.js.map
39514
+
39515
+ /***/ }),
39516
+
37832
39517
  /***/ "./node_modules/ajv-errors/dist/index.js":
37833
39518
  /*!***********************************************!*\
37834
39519
  !*** ./node_modules/ajv-errors/dist/index.js ***!