samlesa 3.2.2 → 3.3.1
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/src/binding-post.js +9 -0
- package/build/src/entity.js +10 -12
- package/build/src/extractor.js +275 -283
- package/build/src/flow.js +10 -1
- package/build/src/libsaml.js +2 -46
- package/build/src/urn.js +78 -15
- package/package.json +1 -1
- package/types/src/binding-post.d.ts.map +1 -1
- package/types/src/binding-redirect.d.ts.map +1 -1
- package/types/src/entity.d.ts +11 -8
- package/types/src/entity.d.ts.map +1 -1
- package/types/src/extractor.d.ts +14 -40
- package/types/src/extractor.d.ts.map +1 -1
- package/types/src/flow.d.ts.map +1 -1
- package/types/src/libsaml.d.ts +0 -9
- package/types/src/libsaml.d.ts.map +1 -1
- package/types/src/urn.d.ts +48 -14
- package/types/src/urn.d.ts.map +1 -1
package/build/src/flow.js
CHANGED
|
@@ -276,7 +276,16 @@ async function postFlow(options) {
|
|
|
276
276
|
// LogoutRequest 是 IdP → SP,SP 是接收方
|
|
277
277
|
// 必须验证 Destination 是否为 SP 的 SLO endpoint(Single Logout Service)
|
|
278
278
|
const destination = response?.destination; // 注意:LogoutRequest 的 root 元素是 <samlp:LogoutRequest>
|
|
279
|
-
|
|
279
|
+
/** 必须检查是否为对象*/
|
|
280
|
+
let singleLogoutService = [];
|
|
281
|
+
if (self?.entityMeta?.meta?.singleLogoutService?.binding) {
|
|
282
|
+
// @ts-ignore
|
|
283
|
+
singleLogoutService = [self?.entityMeta?.meta?.singleLogoutService];
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
singleLogoutService = self?.entityMeta?.meta?.singleLogoutService;
|
|
287
|
+
}
|
|
288
|
+
const validSLOUrls = singleLogoutService
|
|
280
289
|
.map((item) => item.location)
|
|
281
290
|
.filter(Boolean);
|
|
282
291
|
if (destination && !validSLOUrls.includes(destination)) {
|
package/build/src/libsaml.js
CHANGED
|
@@ -17,7 +17,7 @@ import xmlEscape from 'xml-escape';
|
|
|
17
17
|
import * as fs from 'fs';
|
|
18
18
|
import { DOMParser } from '@xmldom/xmldom';
|
|
19
19
|
const signatureAlgorithms = algorithms.signature;
|
|
20
|
-
const digestAlgorithms = algorithms.
|
|
20
|
+
const digestAlgorithms = algorithms.signatureToDigestMap;
|
|
21
21
|
const certUse = wording.certUse;
|
|
22
22
|
const urlParams = wording.urlParams;
|
|
23
23
|
const libSaml = () => {
|
|
@@ -328,7 +328,7 @@ xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="{ID}"
|
|
|
328
328
|
* @return {string} base64 encoded string
|
|
329
329
|
*/
|
|
330
330
|
constructSAMLSignature(opts) {
|
|
331
|
-
const { rawSamlMessage, referenceTagXPath, privateKey, privateKeyPass, signatureAlgorithm = signatureAlgorithms.
|
|
331
|
+
const { rawSamlMessage, referenceTagXPath, privateKey, privateKeyPass, signatureAlgorithm = signatureAlgorithms.RSA_SHA256, transformationAlgorithms = [
|
|
332
332
|
'http://www.w3.org/2000/09/xmldsig#enveloped-signature',
|
|
333
333
|
'http://www.w3.org/2001/10/xml-exc-c14n#',
|
|
334
334
|
], signingCert, signatureConfig, isBase64Output = true, isMessageSigned = false, } = opts;
|
|
@@ -1019,49 +1019,6 @@ xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="{ID}"
|
|
|
1019
1019
|
}
|
|
1020
1020
|
});
|
|
1021
1021
|
},
|
|
1022
|
-
/**
|
|
1023
|
-
* @desc Decrypt the assertion section in Response
|
|
1024
|
-
* @param {string} type only accept SAMLResponse to proceed decryption
|
|
1025
|
-
* @param {Entity} here this entity
|
|
1026
|
-
* @param {Entity} from from the entity where the message is sent
|
|
1027
|
-
* @param {string} entireXML response in xml string format
|
|
1028
|
-
* @return {function} a promise to get back the entire xml with decrypted assertion
|
|
1029
|
-
*/
|
|
1030
|
-
decryptAssertion(here, entireXML) {
|
|
1031
|
-
return new Promise((resolve, reject) => {
|
|
1032
|
-
// Implement decryption first then check the signature
|
|
1033
|
-
if (!entireXML) {
|
|
1034
|
-
return reject(new Error('ERR_UNDEFINED_ASSERTION'));
|
|
1035
|
-
}
|
|
1036
|
-
// Perform encryption depends on the setting of where the message is sent, default is false
|
|
1037
|
-
const hereSetting = here.entitySetting;
|
|
1038
|
-
const { dom } = getContext();
|
|
1039
|
-
const doc = dom.parseFromString(entireXML, 'application/xml');
|
|
1040
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
1041
|
-
const encryptedAssertions = select("/*[contains(local-name(), 'Response')]/*[local-name(.)='EncryptedAssertion']", doc);
|
|
1042
|
-
if (!Array.isArray(encryptedAssertions) || encryptedAssertions.length === 0) {
|
|
1043
|
-
throw new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION');
|
|
1044
|
-
}
|
|
1045
|
-
if (encryptedAssertions.length > 1) {
|
|
1046
|
-
throw new Error('ERR_MULTIPLE_ASSERTION');
|
|
1047
|
-
}
|
|
1048
|
-
const encAssertionNode = encryptedAssertions[0];
|
|
1049
|
-
return xmlenc.decrypt(encAssertionNode.toString(), {
|
|
1050
|
-
key: utility.readPrivateKey(hereSetting.encPrivateKey, hereSetting.encPrivateKeyPass),
|
|
1051
|
-
}, (err, res) => {
|
|
1052
|
-
if (err) {
|
|
1053
|
-
return reject(new Error('ERR_EXCEPTION_OF_ASSERTION_DECRYPTION'));
|
|
1054
|
-
}
|
|
1055
|
-
if (!res) {
|
|
1056
|
-
return reject(new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION'));
|
|
1057
|
-
}
|
|
1058
|
-
const rawAssertionDoc = dom.parseFromString(res, 'application/xml');
|
|
1059
|
-
// @ts-ignore
|
|
1060
|
-
doc.documentElement.replaceChild(rawAssertionDoc.documentElement, encAssertionNode);
|
|
1061
|
-
return resolve([doc.toString(), res]);
|
|
1062
|
-
});
|
|
1063
|
-
});
|
|
1064
|
-
},
|
|
1065
1022
|
/**
|
|
1066
1023
|
* 同步版本的断言解密函数
|
|
1067
1024
|
*/
|
|
@@ -1082,7 +1039,6 @@ xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="{ID}"
|
|
|
1082
1039
|
}
|
|
1083
1040
|
const encAssertionNode = encryptedAssertions[0];
|
|
1084
1041
|
let decryptedResult = null;
|
|
1085
|
-
console.log(utility.readPrivateKey(hereSetting.encPrivateKey, hereSetting.encPrivateKeyPass));
|
|
1086
1042
|
// 使用同步方式处理解密
|
|
1087
1043
|
xmlenc.decrypt(encAssertionNode.toString(), {
|
|
1088
1044
|
key: utility.readPrivateKey(hereSetting.encPrivateKey, hereSetting.encPrivateKeyPass),
|
package/build/src/urn.js
CHANGED
|
@@ -139,35 +139,98 @@ const messageConfigurations = {
|
|
|
139
139
|
},
|
|
140
140
|
};
|
|
141
141
|
const algorithms = {
|
|
142
|
+
// 1. 签名算法定义 (SignatureMethod)
|
|
142
143
|
signature: {
|
|
144
|
+
// ❌ 原文错误修正:ECDSA 不能用 rsa-sha256 的 URI
|
|
145
|
+
ECDSA_SHA256: 'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha256',
|
|
146
|
+
ECDSA_SHA384: 'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha384',
|
|
147
|
+
ECDSA_SHA512: 'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha512',
|
|
148
|
+
DSA_SHA1: 'http://www.w3.org/2000/09/xmldsig#dsa-sha1',
|
|
143
149
|
RSA_SHA1: 'http://www.w3.org/2000/09/xmldsig#rsa-sha1',
|
|
144
|
-
|
|
150
|
+
RSA_SHA224: 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha224',
|
|
151
|
+
RSA_SHA256: 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256', // 推荐
|
|
152
|
+
RSA_SHA384: 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384',
|
|
145
153
|
RSA_SHA512: 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512',
|
|
154
|
+
// XML Signature 1.1 PSS 填充 (更安全)
|
|
155
|
+
RSA_PSS_SHA256: 'http://www.w3.org/2007/05/xmldsig-more#rsa-pss-sha256',
|
|
156
|
+
// EdDSA (Ed25519)
|
|
157
|
+
EDDSA_ED25519: 'http://www.w3.org/2007/05/xmldsig-more#eddsa-ed25519'
|
|
158
|
+
},
|
|
159
|
+
// 2. 摘要算法定义 (DigestMethod)
|
|
160
|
+
// 注意:这里直接使用标准推荐的 URI,SHA-2xx 系列推荐使用 xmlenc 命名空间
|
|
161
|
+
digest: {
|
|
162
|
+
SHA1: 'http://www.w3.org/2000/09/xmldsig#sha1',
|
|
163
|
+
SHA224: 'http://www.w3.org/2001/04/xmldsig-more#sha224', // 较少见,有时也用 xmlenc 但 xmldsig-more 更准确对应
|
|
164
|
+
SHA256: 'http://www.w3.org/2001/04/xmlenc#sha256', // ✅ 标准推荐
|
|
165
|
+
SHA384: 'http://www.w3.org/2001/04/xmlenc#sha384', // ✅ 标准推荐
|
|
166
|
+
SHA512: 'http://www.w3.org/2001/04/xmlenc#sha512' // ✅ 标准推荐
|
|
167
|
+
},
|
|
168
|
+
// 3. 映射关系表:给定一个签名算法 URI,它应该配合哪个摘要算法 URI?
|
|
169
|
+
// 这修复了你原代码中 digest 字段作为 "Map" 的意图
|
|
170
|
+
signatureToDigestMap: {
|
|
171
|
+
'http://www.w3.org/2000/09/xmldsig#rsa-sha1': 'http://www.w3.org/2000/09/xmldsig#sha1',
|
|
172
|
+
'http://www.w3.org/2000/09/xmldsig#dsa-sha1': 'http://www.w3.org/2000/09/xmldsig#sha1',
|
|
173
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha224': 'http://www.w3.org/2001/04/xmldsig-more#sha224',
|
|
174
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256': 'http://www.w3.org/2001/04/xmlenc#sha256',
|
|
175
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384': 'http://www.w3.org/2001/04/xmlenc#sha384',
|
|
176
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512': 'http://www.w3.org/2001/04/xmlenc#sha512',
|
|
177
|
+
'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha256': 'http://www.w3.org/2001/04/xmlenc#sha256',
|
|
178
|
+
'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha384': 'http://www.w3.org/2001/04/xmlenc#sha384',
|
|
179
|
+
'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha512': 'http://www.w3.org/2001/04/xmlenc#sha512',
|
|
180
|
+
'http://www.w3.org/2007/05/xmldsig-more#rsa-pss-sha256': 'http://www.w3.org/2001/04/xmlenc#sha256',
|
|
181
|
+
// EdDSA 比较特殊,它内部硬编码了 SHA-512,但在 XML 结构中如果需要显式声明 DigestMethod,通常指向 SHA-512
|
|
182
|
+
'http://www.w3.org/2007/05/xmldsig-more#eddsa-ed25519': 'http://www.w3.org/2001/04/xmlenc#sha512'
|
|
146
183
|
},
|
|
147
184
|
encryption: {
|
|
148
185
|
data: {
|
|
149
|
-
|
|
150
|
-
|
|
186
|
+
// --- CBC 模式 (XML Enc 1.0 - 兼容性最好) ---
|
|
187
|
+
AES_128_CBC: 'http://www.w3.org/2001/04/xmlenc#aes128-cbc',
|
|
188
|
+
AES_192_CBC: 'http://www.w3.org/2001/04/xmlenc#aes192-cbc',
|
|
189
|
+
AES_256_CBC: 'http://www.w3.org/2001/04/xmlenc#aes256-cbc',
|
|
190
|
+
// --- GCM 模式 (XML Enc 1.1 - 推荐,提供完整性保护) ---
|
|
191
|
+
AES_128_GCM: 'http://www.w3.org/2009/xmlenc11#aes128-gcm',
|
|
192
|
+
AES_192_GCM: 'http://www.w3.org/2009/xmlenc11#aes192-gcm',
|
|
151
193
|
AES_256_GCM: 'http://www.w3.org/2009/xmlenc11#aes256-gcm',
|
|
152
|
-
|
|
153
|
-
|
|
194
|
+
// --- CTR 模式 (XML Enc 1.1) ---
|
|
195
|
+
AES_128_CTR: 'http://www.w3.org/2009/xmlenc11#aes128-ctr',
|
|
196
|
+
AES_192_CTR: 'http://www.w3.org/2009/xmlenc11#aes192-ctr',
|
|
197
|
+
AES_256_CTR: 'http://www.w3.org/2009/xmlenc11#aes256-ctr',
|
|
198
|
+
// --- 旧算法 (不推荐,仅用于遗留系统) ---
|
|
199
|
+
TRIPLE_DES: 'http://www.w3.org/2001/04/xmlenc#tripledes-cbc'
|
|
154
200
|
},
|
|
201
|
+
/**
|
|
202
|
+
* 密钥加密算法 (用于加密生成的 AES 会话密钥)
|
|
203
|
+
* 这里包含了 RSA-OAEP 和 AES Key Wrap
|
|
204
|
+
*/
|
|
155
205
|
key: {
|
|
206
|
+
// --- RSA OAEP (推荐) ---
|
|
207
|
+
// 默认使用 SHA-1 的 OAEP (XML Enc 1.0)
|
|
156
208
|
RSA_OAEP_MGF1P: 'http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p',
|
|
209
|
+
// XML Enc 1.1 的通用 OAEP (通常配合 DigestMethod 参数使用 SHA-256)
|
|
210
|
+
RSA_OAEP: 'http://www.w3.org/2009/xmlenc11#rsa-oaep',
|
|
211
|
+
// --- RSA PKCS#1 v1.5 (旧标准,不推荐,但广泛存在) ---
|
|
157
212
|
RSA_1_5: 'http://www.w3.org/2001/04/xmlenc#rsa-1_5',
|
|
213
|
+
// --- AES Key Wrap (用于对称密钥加密对称密钥的场景) ---
|
|
214
|
+
AES_128_KW: 'http://www.w3.org/2001/04/xmlenc#kw-aes128',
|
|
215
|
+
AES_192_KW: 'http://www.w3.org/2001/04/xmlenc#kw-aes192',
|
|
216
|
+
AES_256_KW: 'http://www.w3.org/2001/04/xmlenc#kw-aes256',
|
|
217
|
+
// --- AES GCM Key Wrap (XML Enc 1.1) ---
|
|
218
|
+
AES_128_GCM_KW: 'http://www.w3.org/2009/xmlenc11#aes128-gcmkw',
|
|
219
|
+
AES_192_GCM_KW: 'http://www.w3.org/2009/xmlenc11#aes192-gcmkw',
|
|
220
|
+
AES_256_GCM_KW: 'http://www.w3.org/2009/xmlenc11#aes256-gcmkw',
|
|
158
221
|
},
|
|
159
222
|
},
|
|
160
|
-
digest: {
|
|
161
|
-
'http://www.w3.org/2000/09/xmldsig#rsa-sha1': 'http://www.w3.org/2000/09/xmldsig#sha1',
|
|
162
|
-
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256': 'http://www.w3.org/2001/04/xmlenc#sha256',
|
|
163
|
-
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384': 'http://www.w3.org/2001/04/xmlenc#sha384',
|
|
164
|
-
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512': 'http://www.w3.org/2001/04/xmlenc#sha512', // support hashing algorithm sha512 in xml-crypto after 0.8.0
|
|
165
|
-
'http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1': 'http://www.w3.org/2001/04/xmlenc#sha256',
|
|
166
|
-
'http://www.w3.org/2007/05/xmldsig-more#sha384-rsa-MGF1': 'http://www.w3.org/2001/04/xmlenc#sha384',
|
|
167
|
-
'http://www.w3.org/2007/05/xmldsig-more#sha512-rsa-MGF1': 'http://www.w3.org/2001/04/xmlenc#sha512', // support hashing algorithm sha512 in xml-crypto after 0.8.0
|
|
168
|
-
'http://www.w3.org/2007/05/xmldsig-more#eddsa-ed25519': 'http://www.w3.org/2001/04/xmlenc#sha512'
|
|
169
|
-
},
|
|
170
223
|
};
|
|
224
|
+
// 使用示例:
|
|
225
|
+
// 如果你选择了 RSA_SHA256 签名
|
|
226
|
+
const selectedSigAlg = algorithms.signature.RSA_SHA256;
|
|
227
|
+
// 自动获取对应的摘要算法
|
|
228
|
+
const requiredDigestAlg = algorithms.signatureToDigestMap[selectedSigAlg];
|
|
229
|
+
console.log(`Signature: ${selectedSigAlg}`);
|
|
230
|
+
console.log(`Required Digest: ${requiredDigestAlg}`);
|
|
231
|
+
// 输出:
|
|
232
|
+
// Signature: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
|
|
233
|
+
// Required Digest: http://www.w3.org/2001/04/xmlenc#sha256
|
|
171
234
|
export var ParserType;
|
|
172
235
|
(function (ParserType) {
|
|
173
236
|
ParserType["SAMLRequest"] = "SAMLRequest";
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-post.d.ts","sourceRoot":"","sources":["../../src/binding-post.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAQhD,OAAO,EAAC,yBAAyB,EAAC,MAAM,YAAY,CAAC;AAKrD;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAiE/I;AAGD;;;;;;;;;GASG;AACH,iBAAe,mBAAmB,CAAC,EAAC,WAAgB,EAAE,MAAM,EAAE,IAAS,EAAE,oBAAoB,EAAE,eAAuB,EAAE,kBAAuB,EAAE,OAAO,EAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAgK7M;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,CA2D1K;AAED;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"binding-post.d.ts","sourceRoot":"","sources":["../../src/binding-post.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAQhD,OAAO,EAAC,yBAAyB,EAAC,MAAM,YAAY,CAAC;AAKrD;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAiE/I;AAGD;;;;;;;;;GASG;AACH,iBAAe,mBAAmB,CAAC,EAAC,WAAgB,EAAE,MAAM,EAAE,IAAS,EAAE,oBAAoB,EAAE,eAAuB,EAAE,kBAAuB,EAAE,OAAO,EAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAgK7M;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,CA2D1K;AAED;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAsEvI;AAED,QAAA,MAAM,WAAW;;;;;CAKhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-redirect.d.ts","sourceRoot":"","sources":["../../src/binding-redirect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,gBAAgB,IAAI,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,eAAe,IAAI,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAOrD,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAiED;;;;;GAKG;AAEH,iBAAS,uBAAuB,CAAC,MAAM,EAAE;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,GAAG,CA0CnE;AACD;;;;;GAKG;AAEH,iBAAS,0BAA0B,CAAC,MAAM,EAAE;IACxC,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC9B,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,GAAG,CAyFnE;AAID;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,EAAE,kBAAkB,UAAK,GAAG,cAAc,CAmG1M;AAED;;;;;;GAMG;AACH,iBAAS,wBAAwB,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAwC9J;AAED;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"binding-redirect.d.ts","sourceRoot":"","sources":["../../src/binding-redirect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,gBAAgB,IAAI,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,eAAe,IAAI,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAOrD,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAiED;;;;;GAKG;AAEH,iBAAS,uBAAuB,CAAC,MAAM,EAAE;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,GAAG,CA0CnE;AACD;;;;;GAKG;AAEH,iBAAS,0BAA0B,CAAC,MAAM,EAAE;IACxC,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC9B,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,GAAG,CAyFnE;AAID;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,EAAE,kBAAkB,UAAK,GAAG,cAAc,CAmG1M;AAED;;;;;;GAMG;AACH,iBAAS,wBAAwB,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAwC9J;AAED;;;;;GAKG;AACF,iBAAS,yBAAyB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAyCnK;AAED,QAAA,MAAM,eAAe;;;;;;CAMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
package/types/src/entity.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { IdpMetadata as IdpMetadataConstructor } from './metadata-idp.js';
|
|
|
2
2
|
import { SpMetadata as SpMetadataConstructor } from './metadata-sp.js';
|
|
3
3
|
import type { MetadataIdpConstructor, MetadataSpConstructor, EntitySetting } from './types.js';
|
|
4
4
|
import { type FlowResult } from './flow.js';
|
|
5
|
+
import { ServiceProviderConstructor as ServiceProvider } from './types.js';
|
|
5
6
|
export interface ESamlHttpRequest {
|
|
6
7
|
query?: any;
|
|
7
8
|
body?: any;
|
|
@@ -72,14 +73,16 @@ export default class Entity {
|
|
|
72
73
|
*/
|
|
73
74
|
createLogoutRequest(targetEntity: any, binding: any, user: any, relayState?: string, customTagReplacement?: any): BindingContext | PostBindingContext;
|
|
74
75
|
/**
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
* @desc Generates the logout response for developers to design their own method
|
|
77
|
+
* @param params
|
|
78
|
+
*/
|
|
79
|
+
createLogoutResponse(params: {
|
|
80
|
+
sp: ServiceProvider;
|
|
81
|
+
requestInfo?: Record<string, any>;
|
|
82
|
+
binding?: string;
|
|
83
|
+
relayState?: string;
|
|
84
|
+
customTagReplacement?: (template: string) => BindingContext | PostBindingContext;
|
|
85
|
+
}): Promise<BindingContext | PostBindingContext>;
|
|
83
86
|
/**
|
|
84
87
|
* @desc Validation of the parsed the URL parameters
|
|
85
88
|
* @param {IdentityProvider} idp object of identity provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity.ts"],"names":[],"mappings":"AAQA,OAAoB,EAAE,WAAW,IAAI,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAmB,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAQ,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/entity.ts"],"names":[],"mappings":"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"}
|
package/types/src/extractor.d.ts
CHANGED
|
@@ -1,53 +1,27 @@
|
|
|
1
1
|
interface ExtractorField {
|
|
2
2
|
key: string;
|
|
3
|
-
localPath
|
|
4
|
-
attributes
|
|
3
|
+
localPath?: string[] | string[][];
|
|
4
|
+
attributes?: string[];
|
|
5
5
|
index?: string[];
|
|
6
6
|
attributePath?: string[];
|
|
7
7
|
context?: boolean;
|
|
8
|
+
listMode?: boolean;
|
|
9
|
+
shortcut?: string;
|
|
8
10
|
}
|
|
9
11
|
export type ExtractorFields = ExtractorField[];
|
|
10
12
|
export declare const loginRequestFields: ExtractorFields;
|
|
11
|
-
export declare const artifactResolveFields:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} | {
|
|
17
|
-
key: string;
|
|
18
|
-
localPath: string[];
|
|
19
|
-
attributes: never[];
|
|
20
|
-
context: boolean;
|
|
21
|
-
})[];
|
|
22
|
-
export declare const artifactResponseFields: ({
|
|
23
|
-
key: string;
|
|
24
|
-
localPath: string[];
|
|
25
|
-
attributes: string[];
|
|
26
|
-
context?: undefined;
|
|
27
|
-
} | {
|
|
28
|
-
key: string;
|
|
29
|
-
localPath: string[];
|
|
30
|
-
attributes: never[];
|
|
31
|
-
context: boolean;
|
|
32
|
-
})[];
|
|
33
|
-
export declare const loginResponseStatusFields: {
|
|
34
|
-
key: string;
|
|
35
|
-
localPath: string[];
|
|
36
|
-
attributes: string[];
|
|
37
|
-
}[];
|
|
38
|
-
export declare const loginArtifactResponseStatusFields: {
|
|
39
|
-
key: string;
|
|
40
|
-
localPath: string[];
|
|
41
|
-
attributes: string[];
|
|
42
|
-
}[];
|
|
43
|
-
export declare const logoutResponseStatusFields: {
|
|
44
|
-
key: string;
|
|
45
|
-
localPath: string[];
|
|
46
|
-
attributes: string[];
|
|
47
|
-
}[];
|
|
13
|
+
export declare const artifactResolveFields: ExtractorFields;
|
|
14
|
+
export declare const artifactResponseFields: ExtractorFields;
|
|
15
|
+
export declare const loginResponseStatusFields: ExtractorFields;
|
|
16
|
+
export declare const loginArtifactResponseStatusFields: ExtractorFields;
|
|
17
|
+
export declare const logoutResponseStatusFields: ExtractorFields;
|
|
48
18
|
export declare const loginResponseFields: ((assertion: any) => ExtractorFields);
|
|
49
19
|
export declare const logoutRequestFields: ExtractorFields;
|
|
50
20
|
export declare const logoutResponseFields: ExtractorFields;
|
|
51
|
-
export declare
|
|
21
|
+
export declare const idpMetadataFields: ExtractorFields;
|
|
22
|
+
export declare const spMetadataFields: ExtractorFields;
|
|
23
|
+
export declare function extract(context: string, fields: ExtractorFields): any;
|
|
24
|
+
export declare function extractIdp(context: string): any;
|
|
25
|
+
export declare function extractSp(context: string): any;
|
|
52
26
|
export {};
|
|
53
27
|
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AAgC/C,eAAO,MAAM,kBAAkB,EAAE,eAMhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAKpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAGvC,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,eAG/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eAGxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,KAAK,eAAe,CAWrE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAIlC,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,eAiI/B,CAAC;AAQF,eAAO,MAAM,gBAAgB,EAAE,eAmB9B,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,OAiN/D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,OAEzC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,OAExC"}
|
package/types/src/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAqsBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BhG;AAED,wBAAgB,IAAI,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,UAAU,CAAC,CA0BjD"}
|
package/types/src/libsaml.d.ts
CHANGED
|
@@ -257,15 +257,6 @@ declare const _default: {
|
|
|
257
257
|
* @return {Promise} a promise to resolve the finalized xml
|
|
258
258
|
*/
|
|
259
259
|
encryptAssertion(sourceEntity: any, targetEntity: any, xml?: string): Promise<string>;
|
|
260
|
-
/**
|
|
261
|
-
* @desc Decrypt the assertion section in Response
|
|
262
|
-
* @param {string} type only accept SAMLResponse to proceed decryption
|
|
263
|
-
* @param {Entity} here this entity
|
|
264
|
-
* @param {Entity} from from the entity where the message is sent
|
|
265
|
-
* @param {string} entireXML response in xml string format
|
|
266
|
-
* @return {function} a promise to get back the entire xml with decrypted assertion
|
|
267
|
-
*/
|
|
268
|
-
decryptAssertion(here: any, entireXML: string): Promise<[string, any]>;
|
|
269
260
|
/**
|
|
270
261
|
* 同步版本的断言解密函数
|
|
271
262
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libsaml.d.ts","sourceRoot":"","sources":["../../src/libsaml.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"libsaml.d.ts","sourceRoot":"","sources":["../../src/libsaml.ts"],"names":[],"mappings":"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"}
|
package/types/src/urn.d.ts
CHANGED
|
@@ -133,33 +133,67 @@ declare const messageConfigurations: {
|
|
|
133
133
|
};
|
|
134
134
|
declare const algorithms: {
|
|
135
135
|
signature: {
|
|
136
|
+
ECDSA_SHA256: string;
|
|
137
|
+
ECDSA_SHA384: string;
|
|
138
|
+
ECDSA_SHA512: string;
|
|
139
|
+
DSA_SHA1: string;
|
|
136
140
|
RSA_SHA1: string;
|
|
141
|
+
RSA_SHA224: string;
|
|
137
142
|
RSA_SHA256: string;
|
|
143
|
+
RSA_SHA384: string;
|
|
138
144
|
RSA_SHA512: string;
|
|
145
|
+
RSA_PSS_SHA256: string;
|
|
146
|
+
EDDSA_ED25519: string;
|
|
147
|
+
};
|
|
148
|
+
digest: {
|
|
149
|
+
SHA1: string;
|
|
150
|
+
SHA224: string;
|
|
151
|
+
SHA256: string;
|
|
152
|
+
SHA384: string;
|
|
153
|
+
SHA512: string;
|
|
154
|
+
};
|
|
155
|
+
signatureToDigestMap: {
|
|
156
|
+
'http://www.w3.org/2000/09/xmldsig#rsa-sha1': string;
|
|
157
|
+
'http://www.w3.org/2000/09/xmldsig#dsa-sha1': string;
|
|
158
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha224': string;
|
|
159
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256': string;
|
|
160
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384': string;
|
|
161
|
+
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512': string;
|
|
162
|
+
'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha256': string;
|
|
163
|
+
'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha384': string;
|
|
164
|
+
'http://www.w3.org/2007/05/xmldsig-more#ecdsa-sha512': string;
|
|
165
|
+
'http://www.w3.org/2007/05/xmldsig-more#rsa-pss-sha256': string;
|
|
166
|
+
'http://www.w3.org/2007/05/xmldsig-more#eddsa-ed25519': string;
|
|
139
167
|
};
|
|
140
168
|
encryption: {
|
|
141
169
|
data: {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
TRI_DEC: string;
|
|
170
|
+
AES_128_CBC: string;
|
|
171
|
+
AES_192_CBC: string;
|
|
172
|
+
AES_256_CBC: string;
|
|
146
173
|
AES_128_GCM: string;
|
|
174
|
+
AES_192_GCM: string;
|
|
175
|
+
AES_256_GCM: string;
|
|
176
|
+
AES_128_CTR: string;
|
|
177
|
+
AES_192_CTR: string;
|
|
178
|
+
AES_256_CTR: string;
|
|
179
|
+
TRIPLE_DES: string;
|
|
147
180
|
};
|
|
181
|
+
/**
|
|
182
|
+
* 密钥加密算法 (用于加密生成的 AES 会话密钥)
|
|
183
|
+
* 这里包含了 RSA-OAEP 和 AES Key Wrap
|
|
184
|
+
*/
|
|
148
185
|
key: {
|
|
149
186
|
RSA_OAEP_MGF1P: string;
|
|
187
|
+
RSA_OAEP: string;
|
|
150
188
|
RSA_1_5: string;
|
|
189
|
+
AES_128_KW: string;
|
|
190
|
+
AES_192_KW: string;
|
|
191
|
+
AES_256_KW: string;
|
|
192
|
+
AES_128_GCM_KW: string;
|
|
193
|
+
AES_192_GCM_KW: string;
|
|
194
|
+
AES_256_GCM_KW: string;
|
|
151
195
|
};
|
|
152
196
|
};
|
|
153
|
-
digest: {
|
|
154
|
-
'http://www.w3.org/2000/09/xmldsig#rsa-sha1': string;
|
|
155
|
-
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256': string;
|
|
156
|
-
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384': string;
|
|
157
|
-
'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512': string;
|
|
158
|
-
'http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1': string;
|
|
159
|
-
'http://www.w3.org/2007/05/xmldsig-more#sha384-rsa-MGF1': string;
|
|
160
|
-
'http://www.w3.org/2007/05/xmldsig-more#sha512-rsa-MGF1': string;
|
|
161
|
-
'http://www.w3.org/2007/05/xmldsig-more#eddsa-ed25519': string;
|
|
162
|
-
};
|
|
163
197
|
};
|
|
164
198
|
export declare enum ParserType {
|
|
165
199
|
SAMLRequest = "SAMLRequest",
|
package/types/src/urn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,gBAAgB;
|
|
1
|
+
{"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,gBAAgB;IAC1B,QAAQ,uDAAuD;IAC/D,IAAI,mDAAmD;IACvD,UAAU,8DAA8D;IACxE,QAAQ,uDAAuD;CAChE;AAED,oBAAY,qBAAqB;IAC/B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;CAC1B;AAED,oBAAY,UAAU;IAEpB,OAAO,+CAA+C;IACtD,SAAS,iDAAiD;IAC1D,SAAS,iDAAiD;IAC1D,eAAe,uDAAuD;IAEtE,UAAU,mDAAmD;IAC7D,sBAAsB,8DAA8D;IACpF,mBAAmB,2DAA2D;IAC9E,cAAc,sDAAsD;IACpE,cAAc,sDAAsD;IACpE,SAAS,iDAAiD;IAC1D,cAAc,sDAAsD;IACpE,aAAa,qDAAqD;IAClE,kBAAkB,0DAA0D;IAC5E,aAAa,qDAAqD;IAClE,kBAAkB,0DAA0D;IAC5E,wBAAwB,gEAAgE;IACxF,qBAAqB,6DAA6D;IAClF,oBAAoB,4DAA4D;IAChF,qBAAqB,6DAA6D;IAClF,gBAAgB,wDAAwD;IACxE,kBAAkB,0DAA0D;IAC5E,gBAAgB,wDAAwD;IACxE,kBAAkB,0DAA0D;CAC7E;AAED,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDd,CAAC;AAEF,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BT,CAAC;AAEF,QAAA,MAAM,qBAAqB;;;;;CAK1B,CAAC;AAEF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2EZ;;;WAGG;;;;;;;;;;;;;CAwBN,CAAC;AAcF,oBAAY,UAAU;IACpB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;CAClC;AAED,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAyBZ,CAAC;AAIF,QAAA,MAAM,aAAa;;;;CAIlB,CAAC;AAEF,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAC,CAAC"}
|