samlesa 2.17.1 → 2.17.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.
package/build/index.js CHANGED
@@ -10,11 +10,11 @@ export { default as SamlLib } from './src/libsaml.js';
10
10
  import * as Constants from './src/urn.js';
11
11
  import * as Extractor from './src/extractor.js';
12
12
  import * as Soap from './src/soap.js';
13
- import { validate } from './src/schemaValidator.js';
13
+ import { validate, validateMetadata } from './src/schemaValidator.js';
14
14
  // exposed methods for customizing samlify
15
15
  import { setSchemaValidator, setDOMParserOptions } from './src/api.js';
16
16
  export { Constants, Extractor,
17
17
  // temp: resolve the conflict after version >= 3.0
18
18
  IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance,
19
19
  // set context
20
- setSchemaValidator, setDOMParserOptions, validate, Soap };
20
+ setSchemaValidator, setDOMParserOptions, validate, validateMetadata, Soap };
@@ -31,30 +31,28 @@ export class IdpMetadata extends Metadata {
31
31
  for (const cert of castArrayOpt(encryptCert)) {
32
32
  IDPSSODescriptor.push(libsaml.createKeySection('encryption', cert));
33
33
  }
34
- if (isNonEmptyArray(nameIDFormat)) {
35
- nameIDFormat.forEach(f => IDPSSODescriptor.push({ NameIDFormat: f }));
36
- }
37
- if (isNonEmptyArray(singleSignOnService)) {
38
- singleSignOnService.forEach((a, indexCount) => {
39
- const attr = {
40
- Binding: a.Binding,
41
- Location: a.Location,
42
- };
43
- if (a.isDefault) {
44
- attr.isDefault = true;
45
- }
46
- IDPSSODescriptor.push({ SingleSignOnService: [{ _attr: attr }] });
34
+ if (isNonEmptyArray(artifactResolutionService)) {
35
+ let indexCounts = 0;
36
+ artifactResolutionService.forEach((a, indexCount) => {
37
+ const attr = {};
38
+ /* if (a.isDefault) {
39
+ attr.isDefault = true;
40
+ }*/
41
+ attr.index = String(indexCounts++),
42
+ attr.Binding = a.Binding;
43
+ attr.Location = a.Location;
44
+ IDPSSODescriptor.push({ ArtifactResolutionService: [{ _attr: attr }] });
47
45
  });
48
46
  }
49
47
  else {
50
- throw new Error('ERR_IDP_METADATA_MISSING_SINGLE_SIGN_ON_SERVICE');
48
+ console.warn('Construct identity provider - missing endpoint of ArtifactResolutionService');
51
49
  }
52
50
  if (isNonEmptyArray(singleLogoutService)) {
53
51
  singleLogoutService.forEach((a, indexCount) => {
54
52
  const attr = {};
55
- if (a.isDefault) {
56
- attr.isDefault = true;
57
- }
53
+ /* if (a.isDefault) {
54
+ attr.isDefault = true;
55
+ }*/
58
56
  attr.Binding = a.Binding;
59
57
  attr.Location = a.Location;
60
58
  IDPSSODescriptor.push({ SingleLogoutService: [{ _attr: attr }] });
@@ -63,19 +61,23 @@ export class IdpMetadata extends Metadata {
63
61
  else {
64
62
  console.warn('Construct identity provider - missing endpoint of SingleLogoutService');
65
63
  }
66
- if (isNonEmptyArray(artifactResolutionService)) {
67
- artifactResolutionService.forEach((a, indexCount) => {
68
- const attr = {};
69
- if (a.isDefault) {
70
- attr.isDefault = true;
71
- }
72
- attr.Binding = a.Binding;
73
- attr.Location = a.Location;
74
- IDPSSODescriptor.push({ ArtifactResolutionService: [{ _attr: attr }] });
64
+ if (isNonEmptyArray(nameIDFormat)) {
65
+ nameIDFormat.forEach(f => IDPSSODescriptor.push({ NameIDFormat: f }));
66
+ }
67
+ if (isNonEmptyArray(singleSignOnService)) {
68
+ singleSignOnService.forEach((a, indexCount) => {
69
+ const attr = {
70
+ Binding: a.Binding,
71
+ Location: a.Location,
72
+ };
73
+ /* if (a.isDefault) {
74
+ attr.isDefault = true;
75
+ }*/
76
+ IDPSSODescriptor.push({ SingleSignOnService: [{ _attr: attr }] });
75
77
  });
76
78
  }
77
79
  else {
78
- console.warn('Construct identity provider - missing endpoint of ArtifactResolutionService');
80
+ throw new Error('ERR_IDP_METADATA_MISSING_SINGLE_SIGN_ON_SERVICE');
79
81
  }
80
82
  // Create a new metadata by setting
81
83
  meta = xml([{
@@ -51,39 +51,39 @@ export class SpMetadata extends Metadata {
51
51
  for (const cert of castArrayOpt(encryptCert)) {
52
52
  descriptors.KeyDescriptor.push(libsaml.createKeySection('encryption', cert).KeyDescriptor);
53
53
  }
54
- if (isNonEmptyArray(nameIDFormat)) {
55
- nameIDFormat.forEach(f => descriptors.NameIDFormat.push(f));
56
- }
57
- else {
58
- // default value
59
- descriptors.NameIDFormat.push(namespace.format.emailAddress);
60
- }
61
- if (isNonEmptyArray(singleLogoutService)) {
62
- singleLogoutService.forEach(a => {
54
+ if (isNonEmptyArray(artifactResolutionService)) {
55
+ let indexCount = 0;
56
+ artifactResolutionService.forEach(a => {
63
57
  const attr = {
58
+ index: String(indexCount++),
64
59
  Binding: a.Binding,
65
60
  Location: a.Location,
66
61
  };
67
62
  if (a.isDefault) {
68
63
  attr.isDefault = true;
69
64
  }
70
- descriptors.SingleLogoutService.push([{ _attr: attr }]);
65
+ descriptors.ArtifactResolutionService.push([{ _attr: attr }]);
71
66
  });
72
67
  }
73
- if (isNonEmptyArray(artifactResolutionService)) {
74
- let indexCount = 0;
75
- artifactResolutionService.forEach(a => {
68
+ if (isNonEmptyArray(singleLogoutService)) {
69
+ singleLogoutService.forEach(a => {
76
70
  const attr = {
77
- index: String(indexCount++),
78
71
  Binding: a.Binding,
79
72
  Location: a.Location,
80
73
  };
81
- if (a.isDefault) {
82
- attr.isDefault = true;
83
- }
84
- descriptors.ArtifactResolutionService.push([{ _attr: attr }]);
74
+ /* if (a.isDefault) {
75
+ attr.isDefault = true;
76
+ }*/
77
+ descriptors.SingleLogoutService.push([{ _attr: attr }]);
85
78
  });
86
79
  }
80
+ if (isNonEmptyArray(nameIDFormat)) {
81
+ nameIDFormat.forEach(f => descriptors.NameIDFormat.push(f));
82
+ }
83
+ else {
84
+ // default value
85
+ descriptors.NameIDFormat.push(namespace.format.emailAddress);
86
+ }
87
87
  if (isNonEmptyArray(assertionConsumerService)) {
88
88
  let indexCount = 0;
89
89
  assertionConsumerService.forEach(a => {
@@ -18,6 +18,7 @@
18
18
  schemaLocation="saml-schema-assertion-2.0.xsd"/>
19
19
  <import namespace="http://www.w3.org/XML/1998/namespace"
20
20
  schemaLocation="xml.xsd"/>
21
+
21
22
  <annotation>
22
23
  <documentation>
23
24
  Document identifier: saml-schema-metadata-2.0
@@ -47,14 +48,14 @@
47
48
  </extension>
48
49
  </simpleContent>
49
50
  </complexType>
50
-
51
+
51
52
  <element name="Extensions" type="md:ExtensionsType"/>
52
53
  <complexType final="#all" name="ExtensionsType">
53
54
  <sequence>
54
55
  <any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
55
56
  </sequence>
56
57
  </complexType>
57
-
58
+
58
59
  <complexType name="EndpointType">
59
60
  <sequence>
60
61
  <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
@@ -64,7 +65,7 @@
64
65
  <attribute name="ResponseLocation" type="anyURI" use="optional"/>
65
66
  <anyAttribute namespace="##other" processContents="lax"/>
66
67
  </complexType>
67
-
68
+
68
69
  <complexType name="IndexedEndpointType">
69
70
  <complexContent>
70
71
  <extension base="md:EndpointType">
@@ -73,7 +74,7 @@
73
74
  </extension>
74
75
  </complexContent>
75
76
  </complexType>
76
-
77
+
77
78
  <element name="EntitiesDescriptor" type="md:EntitiesDescriptorType"/>
78
79
  <complexType name="EntitiesDescriptorType">
79
80
  <sequence>
@@ -116,7 +117,7 @@
116
117
  <attribute name="ID" type="ID" use="optional"/>
117
118
  <anyAttribute namespace="##other" processContents="lax"/>
118
119
  </complexType>
119
-
120
+
120
121
  <element name="Organization" type="md:OrganizationType"/>
121
122
  <complexType name="OrganizationType">
122
123
  <sequence>
@@ -202,7 +203,7 @@
202
203
  </restriction>
203
204
  </simpleType>
204
205
  <element name="EncryptionMethod" type="xenc:EncryptionMethodType"/>
205
-
206
+
206
207
  <complexType name="SSODescriptorType" abstract="true">
207
208
  <complexContent>
208
209
  <extension base="md:RoleDescriptorType">
@@ -239,7 +240,7 @@
239
240
  <element name="NameIDMappingService" type="md:EndpointType"/>
240
241
  <element name="AssertionIDRequestService" type="md:EndpointType"/>
241
242
  <element name="AttributeProfile" type="anyURI"/>
242
-
243
+
243
244
  <element name="SPSSODescriptor" type="md:SPSSODescriptorType"/>
244
245
  <complexType name="SPSSODescriptorType">
245
246
  <complexContent>
@@ -274,7 +275,7 @@
274
275
  </extension>
275
276
  </complexContent>
276
277
  </complexType>
277
-
278
+
278
279
  <element name="AuthnAuthorityDescriptor" type="md:AuthnAuthorityDescriptorType"/>
279
280
  <complexType name="AuthnAuthorityDescriptorType">
280
281
  <complexContent>
@@ -318,7 +319,7 @@
318
319
  </complexContent>
319
320
  </complexType>
320
321
  <element name="AttributeService" type="md:EndpointType"/>
321
-
322
+
322
323
  <element name="AffiliationDescriptor" type="md:AffiliationDescriptorType"/>
323
324
  <complexType name="AffiliationDescriptorType">
324
325
  <sequence>
@@ -2,6 +2,7 @@ import { validateXML } from 'xmllint-wasm';
2
2
  import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
+ import { DOMParser } from '@xmldom/xmldom';
5
6
  const __filename = fileURLToPath(import.meta.url);
6
7
  const __dirname = path.dirname(__filename);
7
8
  let normal = [
@@ -30,6 +31,13 @@ let soapSchema = [
30
31
  'saml-schema-ecp-2.0.xsd', // ECP扩展
31
32
  'saml-schema-dce-2.0.xsd' // DCE扩展
32
33
  ];
34
+ let meta = [
35
+ 'saml-schema-metadata-2.0.xsd', // 元数据
36
+ 'xml.xsd',
37
+ 'saml-schema-assertion-2.0.xsd',
38
+ 'xmldsig-core-schema.xsd',
39
+ 'xenc-schema.xsd',
40
+ ];
33
41
  let schemas = normal;
34
42
  function detectXXEIndicators(samlString) {
35
43
  const xxePatterns = [
@@ -85,3 +93,62 @@ export const validate = async (xml, isSoap = false) => {
85
93
  throw new Error('ERR_EXCEPTION_VALIDATE_XML');
86
94
  }
87
95
  };
96
+ export const validateMetadata = async (xml, isParse = false) => {
97
+ const indicators = detectXXEIndicators(xml);
98
+ if (indicators) {
99
+ throw new Error('ERR_EXCEPTION_VALIDATE_XML');
100
+ }
101
+ schemas = meta;
102
+ const schemaPath = path.resolve(__dirname, 'schema');
103
+ const [xmlParse, ...preload] = await Promise.all(schemas.map(async (file) => ({
104
+ fileName: file,
105
+ contents: await fs.promises.readFile(`${schemaPath}/${file}`, 'utf-8')
106
+ })));
107
+ try {
108
+ const validationResult = await validateXML({
109
+ xml: [
110
+ {
111
+ fileName: 'content.xml',
112
+ contents: xml,
113
+ },
114
+ ],
115
+ extension: 'schema',
116
+ schema: [xmlParse],
117
+ preload: [xmlParse, ...preload],
118
+ });
119
+ if (validationResult.valid) {
120
+ if (isParse) {
121
+ // 解析 XML 为 DOM 对象
122
+ const parser = new DOMParser();
123
+ const xmlDoc = parser.parseFromString(xml, 'text/xml');
124
+ // 检查 IdP 和 SP 描述符元素
125
+ const idpDescriptor = xmlDoc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:metadata', 'IDPSSODescriptor');
126
+ const spDescriptor = xmlDoc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:metadata', 'SPSSODescriptor');
127
+ // 判断元数据类型
128
+ let metadataType;
129
+ if (idpDescriptor.length > 0 && spDescriptor.length > 0) {
130
+ metadataType = 'both'; // 同时包含 IdP 和 SP
131
+ }
132
+ else if (idpDescriptor.length > 0) {
133
+ metadataType = 'IdP'; // 身份提供者
134
+ }
135
+ else if (spDescriptor.length > 0) {
136
+ metadataType = 'SP'; // 服务提供者
137
+ }
138
+ else {
139
+ metadataType = 'unknown'; // 无法确定
140
+ }
141
+ // 返回验证结果和元数据类型
142
+ return {
143
+ isValid: true,
144
+ metadataType: metadataType
145
+ };
146
+ }
147
+ return true;
148
+ }
149
+ throw validationResult.errors;
150
+ }
151
+ catch (error) {
152
+ return error;
153
+ }
154
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "samlesa",
3
- "version": "2.17.1",
3
+ "version": "2.17.3",
4
4
  "description": "High-level API for Single Sign On (SAML 2.0) baseed on samlify ",
5
5
  "main": "build/index.js",
6
6
  "keywords": [
package/types/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { default as SamlLib } from './src/libsaml.js';
7
7
  import * as Constants from './src/urn.js';
8
8
  import * as Extractor from './src/extractor.js';
9
9
  import * as Soap from './src/soap.js';
10
- import { validate } from './src/schemaValidator.js';
10
+ import { validate, validateMetadata } from './src/schemaValidator.js';
11
11
  import { setSchemaValidator, setDOMParserOptions } from './src/api.js';
12
- export { Constants, Extractor, IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance, setSchemaValidator, setDOMParserOptions, validate, Soap };
12
+ export { Constants, Extractor, IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance, setSchemaValidator, setDOMParserOptions, validate, validateMetadata, Soap };
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,EAAE,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,eAAe,EAAE,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EACL,SAAS,EACT,SAAS,EAET,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EAEvB,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,IAAI,EAEL,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,EAAE,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,eAAe,EAAE,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EACL,SAAS,EACT,SAAS,EAET,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EAEvB,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,IAAI,EAEL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"binding-post.d.ts","sourceRoot":"","sources":["../../src/binding-post.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAYhD;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CA4D/I;AAID;;;;;;;;GAQG;AACH,iBAAe,mBAAmB,CAAC,WAAW,EAAE,GAAG,YAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,EAAE,eAAe,GAAE,OAAe,EAAE,kBAAkB,UAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAkJtO;AAED;;;;;;;GAOG;AACH,iBAAS,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,KAAA,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAwD1K;AAED;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CA2DvI;AAED,QAAA,MAAM,WAAW;;;;;CAKhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"binding-post.d.ts","sourceRoot":"","sources":["../../src/binding-post.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAYhD;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CA4D/I;AAID;;;;;;;;GAQG;AACH,iBAAe,mBAAmB,CAAC,WAAW,EAAE,GAAG,YAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,EAAE,eAAe,GAAE,OAAe,EAAE,kBAAkB,UAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAmJtO;AAED;;;;;;;GAOG;AACH,iBAAS,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,KAAA,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAwD1K;AAED;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CA2DvI;AAED,QAAA,MAAM,WAAW;;;;;CAKhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-idp.d.ts","sourceRoot":"","sources":["../../src/metadata-idp.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,OAAO,QAAQ,EAAE,EAAE,KAAM,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAQ,KAAK,EAAsB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAM9E,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;CAE9D;AAKD,MAAM,CAAC,OAAO,WAAU,IAAI,EAAE,sBAAsB,eAEnD;AAED,qBAAa,WAAY,SAAQ,QAAQ;gBAE3B,IAAI,EAAE,sBAAsB;IAmHxC;;;MAGE;IACF,yBAAyB,IAAI,OAAO;IAQpC;;;;MAIE;IACF,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAUxD;;;;OAIG;IACH,4BAA4B,CAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;CAUhE"}
1
+ {"version":3,"file":"metadata-idp.d.ts","sourceRoot":"","sources":["../../src/metadata-idp.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,OAAO,QAAQ,EAAE,EAAE,KAAM,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAQ,KAAK,EAAsB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAM9E,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;CAE9D;AAKD,MAAM,CAAC,OAAO,WAAU,IAAI,EAAE,sBAAsB,eAEnD;AAED,qBAAa,WAAY,SAAQ,QAAQ;gBAE3B,IAAI,EAAE,sBAAsB;IAsHxC;;;MAGE;IACF,yBAAyB,IAAI,OAAO;IAQpC;;;;MAIE;IACF,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAUxD;;;;OAIG;IACH,4BAA4B,CAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;CAUhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-sp.d.ts","sourceRoot":"","sources":["../../src/metadata-sp.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,OAAO,QAAQ,EAAE,EAAC,KAAK,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAE7D;AAeD,MAAM,CAAC,OAAO,WAAU,IAAI,EAAE,qBAAqB,cAElD;AAED;;EAEE;AACF,qBAAa,UAAW,SAAQ,QAAQ;IAEtC;;;MAGE;gBACU,IAAI,EAAE,qBAAqB;IAgNvC;;;MAGE;IACK,sBAAsB,IAAI,OAAO;IAGxC;;;MAGE;IACK,oBAAoB,IAAI,OAAO;IAGtC;;;;MAIE;IACK,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE;CAoBvE"}
1
+ {"version":3,"file":"metadata-sp.d.ts","sourceRoot":"","sources":["../../src/metadata-sp.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,OAAO,QAAQ,EAAE,EAAC,KAAK,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAE7D;AAeD,MAAM,CAAC,OAAO,WAAU,IAAI,EAAE,qBAAqB,cAElD;AAED;;EAEE;AACF,qBAAa,UAAW,SAAQ,QAAQ;IAEtC;;;MAGE;gBACU,IAAI,EAAE,qBAAqB;IAiNvC;;;MAGE;IACK,sBAAsB,IAAI,OAAO;IAGxC;;;MAGE;IACK,oBAAoB,IAAI,OAAO;IAGtC;;;;MAIE;IACK,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE;CAoBvE"}
@@ -1,2 +1,3 @@
1
1
  export declare const validate: (xml: string, isSoap?: boolean) => Promise<boolean>;
2
+ export declare const validateMetadata: (xml: string, isParse?: boolean) => Promise<any>;
2
3
  //# sourceMappingURL=schemaValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaValidator.d.ts","sourceRoot":"","sources":["../../src/schemaValidator.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,EAAC,SAAQ,OAAe,qBAmCjE,CAAC"}
1
+ {"version":3,"file":"schemaValidator.d.ts","sourceRoot":"","sources":["../../src/schemaValidator.ts"],"names":[],"mappings":"AA6EA,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,EAAC,SAAQ,OAAe,qBAmCjE,CAAC;AACF,eAAO,MAAM,gBAAgB,GAAU,KAAK,MAAM,EAAC,UAAS,OAAe,iBA6D1E,CAAC"}