samlesa 2.13.0 → 2.14.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.

Potentially problematic release.


This version of samlesa might be problematic. Click here for more details.

Files changed (149) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +36 -65
  3. package/build/.idea/deployment.xml +14 -0
  4. package/{src → build}/.idea/modules.xml +1 -1
  5. package/build/.idea/workspace.xml +57 -0
  6. package/build/index.js +18 -54
  7. package/build/index.js.map +1 -1
  8. package/build/src/api.js +18 -24
  9. package/build/src/api.js.map +1 -1
  10. package/build/src/binding-post.js +337 -365
  11. package/build/src/binding-post.js.map +1 -1
  12. package/build/src/binding-redirect.js +312 -340
  13. package/build/src/binding-redirect.js.map +1 -1
  14. package/build/src/binding-simplesign.js +201 -229
  15. package/build/src/binding-simplesign.js.map +1 -1
  16. package/build/src/entity-idp.js +119 -127
  17. package/build/src/entity-idp.js.map +1 -1
  18. package/build/src/entity-sp.js +88 -96
  19. package/build/src/entity-sp.js.map +1 -1
  20. package/build/src/entity.js +193 -225
  21. package/build/src/entity.js.map +1 -1
  22. package/build/src/extractor.js +361 -369
  23. package/build/src/extractor.js.map +1 -1
  24. package/build/src/flow.js +313 -320
  25. package/build/src/flow.js.map +1 -1
  26. package/build/src/libsaml.js +693 -721
  27. package/build/src/libsaml.js.map +1 -1
  28. package/build/src/metadata-idp.js +119 -127
  29. package/build/src/metadata-idp.js.map +1 -1
  30. package/build/src/metadata-sp.js +223 -231
  31. package/build/src/metadata-sp.js.map +1 -1
  32. package/build/src/metadata.js +138 -166
  33. package/build/src/metadata.js.map +1 -1
  34. package/build/src/types.js +4 -11
  35. package/build/src/types.js.map +1 -1
  36. package/build/src/urn.js +204 -212
  37. package/build/src/urn.js.map +1 -1
  38. package/build/src/utility.js +277 -292
  39. package/build/src/utility.js.map +1 -1
  40. package/build/src/validator.js +24 -27
  41. package/build/src/validator.js.map +1 -1
  42. package/package.json +19 -14
  43. package/types/api.d.ts +15 -0
  44. package/types/api.d.ts.map +1 -0
  45. package/types/binding-post.d.ts +48 -0
  46. package/types/binding-post.d.ts.map +1 -0
  47. package/types/binding-redirect.d.ts +54 -0
  48. package/types/binding-redirect.d.ts.map +1 -0
  49. package/types/binding-simplesign.d.ts +41 -0
  50. package/types/binding-simplesign.d.ts.map +1 -0
  51. package/types/entity-idp.d.ts +38 -0
  52. package/types/entity-idp.d.ts.map +1 -0
  53. package/types/entity-sp.d.ts +38 -0
  54. package/types/entity-sp.d.ts.map +1 -0
  55. package/types/entity.d.ts +100 -0
  56. package/types/entity.d.ts.map +1 -0
  57. package/types/extractor.d.ts +26 -0
  58. package/types/extractor.d.ts.map +1 -0
  59. package/types/flow.d.ts +7 -0
  60. package/types/flow.d.ts.map +1 -0
  61. package/types/index.d.ts +11 -10
  62. package/types/index.d.ts.map +1 -0
  63. package/types/libsaml.d.ts +208 -0
  64. package/types/libsaml.d.ts.map +1 -0
  65. package/types/metadata-idp.d.ts +25 -0
  66. package/types/metadata-idp.d.ts.map +1 -0
  67. package/types/metadata-sp.d.ts +37 -0
  68. package/types/metadata-sp.d.ts.map +1 -0
  69. package/types/metadata.d.ts +58 -0
  70. package/types/metadata.d.ts.map +1 -0
  71. package/types/src/api.d.ts +15 -13
  72. package/types/src/api.d.ts.map +1 -0
  73. package/types/src/binding-post.d.ts +48 -47
  74. package/types/src/binding-post.d.ts.map +1 -0
  75. package/types/src/binding-redirect.d.ts +54 -53
  76. package/types/src/binding-redirect.d.ts.map +1 -0
  77. package/types/src/binding-simplesign.d.ts +41 -40
  78. package/types/src/binding-simplesign.d.ts.map +1 -0
  79. package/types/src/entity-idp.d.ts +38 -37
  80. package/types/src/entity-idp.d.ts.map +1 -0
  81. package/types/src/entity-sp.d.ts +38 -36
  82. package/types/src/entity-sp.d.ts.map +1 -0
  83. package/types/src/entity.d.ts +100 -101
  84. package/types/src/entity.d.ts.map +1 -0
  85. package/types/src/extractor.d.ts +26 -25
  86. package/types/src/extractor.d.ts.map +1 -0
  87. package/types/src/flow.d.ts +7 -6
  88. package/types/src/flow.d.ts.map +1 -0
  89. package/types/src/libsaml.d.ts +208 -209
  90. package/types/src/libsaml.d.ts.map +1 -0
  91. package/types/src/metadata-idp.d.ts +25 -24
  92. package/types/src/metadata-idp.d.ts.map +1 -0
  93. package/types/src/metadata-sp.d.ts +37 -36
  94. package/types/src/metadata-sp.d.ts.map +1 -0
  95. package/types/src/metadata.d.ts +58 -59
  96. package/types/src/metadata.d.ts.map +1 -0
  97. package/types/src/types.d.ts +128 -129
  98. package/types/src/types.d.ts.map +1 -0
  99. package/types/src/urn.d.ts +195 -194
  100. package/types/src/urn.d.ts.map +1 -0
  101. package/types/src/utility.d.ts +133 -134
  102. package/types/src/utility.d.ts.map +1 -0
  103. package/types/src/validator.d.ts +4 -3
  104. package/types/src/validator.d.ts.map +1 -0
  105. package/types/types.d.ts +128 -0
  106. package/types/types.d.ts.map +1 -0
  107. package/types/urn.d.ts +195 -0
  108. package/types/urn.d.ts.map +1 -0
  109. package/types/utility.d.ts +133 -0
  110. package/types/utility.d.ts.map +1 -0
  111. package/types/validator.d.ts +4 -0
  112. package/types/validator.d.ts.map +1 -0
  113. package/.editorconfig +0 -19
  114. package/.github/FUNDING.yml +0 -1
  115. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  116. package/.idea/modules.xml +0 -8
  117. package/.idea/vcs.xml +0 -6
  118. package/.pre-commit.sh +0 -15
  119. package/.snyk +0 -8
  120. package/.travis.yml +0 -29
  121. package/Makefile +0 -25
  122. package/index.d.ts +0 -10
  123. package/index.js +0 -19
  124. package/index.js.map +0 -1
  125. package/index.ts +0 -28
  126. package/qodana.yaml +0 -29
  127. package/src/.idea/src.iml +0 -12
  128. package/src/.idea/vcs.xml +0 -6
  129. package/src/api.ts +0 -36
  130. package/src/binding-post.ts +0 -348
  131. package/src/binding-redirect.ts +0 -356
  132. package/src/binding-simplesign.ts +0 -238
  133. package/src/entity-idp.ts +0 -153
  134. package/src/entity-sp.ts +0 -114
  135. package/src/entity.ts +0 -243
  136. package/src/extractor.ts +0 -392
  137. package/src/flow.ts +0 -467
  138. package/src/libsaml.ts +0 -895
  139. package/src/metadata-idp.ts +0 -146
  140. package/src/metadata-sp.ts +0 -268
  141. package/src/metadata.ts +0 -166
  142. package/src/types.ts +0 -153
  143. package/src/urn.ts +0 -211
  144. package/src/utility.ts +0 -319
  145. package/src/validator.ts +0 -39
  146. package/tsconfig.json +0 -38
  147. package/tslint.json +0 -35
  148. package/types.d.ts +0 -2
  149. /package/{.idea/samlify.iml → build/.idea/build.iml} +0 -0
@@ -1,134 +1,133 @@
1
- /**
2
- * @file utility.ts
3
- * @author tngan
4
- * @desc Library for some common functions (e.g. de/inflation, en/decoding)
5
- */
6
- /// <reference types="node" />
7
- /// <reference types="node" />
8
- /**
9
- * @desc Mimic lodash.zipObject
10
- * @param arr1 {string[]}
11
- * @param arr2 {[]}
12
- */
13
- export declare function zipObject(arr1: string[], arr2: any[], skipDuplicated?: boolean): {};
14
- /**
15
- * @desc Alternative to lodash.flattenDeep
16
- * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_flattendeep
17
- * @param input {[]}
18
- */
19
- export declare function flattenDeep(input: any[]): any;
20
- /**
21
- * @desc Alternative to lodash.last
22
- * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_last
23
- * @param input {[]}
24
- */
25
- export declare function last(input: any[]): any;
26
- /**
27
- * @desc Alternative to lodash.uniq
28
- * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_uniq
29
- * @param input {string[]}
30
- */
31
- export declare function uniq(input: string[]): string[];
32
- /**
33
- * @desc Alternative to lodash.get
34
- * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_get
35
- * @param obj
36
- * @param path
37
- * @param defaultValue
38
- */
39
- export declare function get(obj: any, path: any, defaultValue: any): any;
40
- /**
41
- * @desc Check if the input is string
42
- * @param {any} input
43
- */
44
- export declare function isString(input: any): boolean;
45
- /**
46
- * @desc Encode string with base64 format
47
- * @param {string} message plain-text message
48
- * @return {string} base64 encoded string
49
- */
50
- declare function base64Encode(message: string | number[]): string;
51
- /**
52
- * @desc Decode string from base64 format
53
- * @param {string} base64Message encoded string
54
- * @param {boolean} isBytes determine the return value type (True: bytes False: string)
55
- * @return {bytes/string} decoded bytes/string depends on isBytes, default is {string}
56
- */
57
- export declare function base64Decode(base64Message: string, isBytes?: boolean): string | Buffer;
58
- /**
59
- * @desc Compress the string
60
- * @param {string} message
61
- * @return {string} compressed string
62
- */
63
- declare function deflateString(message: string): number[];
64
- /**
65
- * @desc Decompress the compressed string
66
- * @param {string} compressedString
67
- * @return {string} decompressed string
68
- */
69
- export declare function inflateString(compressedString: string): string;
70
- /**
71
- * @desc Parse the .cer to string format without line break, header and footer
72
- * @param {string} certString declares the certificate contents
73
- * @return {string} certificiate in string format
74
- */
75
- declare function normalizeCerString(certString: string | Buffer): string;
76
- /**
77
- * @desc Normalize the string in .pem format without line break, header and footer
78
- * @param {string} pemString
79
- * @return {string} private key in string format
80
- */
81
- declare function normalizePemString(pemString: string | Buffer): string;
82
- /**
83
- * @desc Return the complete URL
84
- * @param {object} req HTTP request
85
- * @return {string} URL
86
- */
87
- declare function getFullURL(req: any): string;
88
- /**
89
- * @desc Parse input string, return default value if it is undefined
90
- * @param {string/boolean}
91
- * @return {boolean}
92
- */
93
- declare function parseString(str: any, defaultValue?: string): any;
94
- /**
95
- * @desc Override the object by another object (rtl)
96
- * @param {object} default object
97
- * @param {object} object applied to the default object
98
- * @return {object} result object
99
- */
100
- declare function applyDefault(obj1: any, obj2: any): any;
101
- /**
102
- * @desc Get public key in pem format from the certificate included in the metadata
103
- * @param {string} x509 certificate
104
- * @return {string} public key fetched from the certificate
105
- */
106
- declare function getPublicKeyPemFromCertificate(x509CertificateString: string): string | Buffer;
107
- export declare function readPrivateKey(keyString: string | Buffer, passphrase?: string, isOutputString?: boolean): string | Buffer;
108
- /**
109
- * @desc Inline syntax sugar
110
- */
111
- declare function convertToString(input: any, isOutputString: any): any;
112
- /**
113
- * @desc Check if the input is an array with non-zero size
114
- */
115
- export declare function isNonEmptyArray(a: any): boolean;
116
- export declare function castArrayOpt<T>(a?: T | T[]): T[];
117
- export declare function notEmpty<TValue>(value: TValue | null | undefined): value is TValue;
118
- declare const utility: {
119
- isString: typeof isString;
120
- base64Encode: typeof base64Encode;
121
- base64Decode: typeof base64Decode;
122
- deflateString: typeof deflateString;
123
- inflateString: typeof inflateString;
124
- normalizeCerString: typeof normalizeCerString;
125
- normalizePemString: typeof normalizePemString;
126
- getFullURL: typeof getFullURL;
127
- parseString: typeof parseString;
128
- applyDefault: typeof applyDefault;
129
- getPublicKeyPemFromCertificate: typeof getPublicKeyPemFromCertificate;
130
- readPrivateKey: typeof readPrivateKey;
131
- convertToString: typeof convertToString;
132
- isNonEmptyArray: typeof isNonEmptyArray;
133
- };
134
- export default utility;
1
+ /**
2
+ * @file utility.ts
3
+ * @author tngan
4
+ * @desc Library for some common functions (e.g. de/inflation, en/decoding)
5
+ */
6
+ /**
7
+ * @desc Mimic lodash.zipObject
8
+ * @param arr1 {string[]}
9
+ * @param arr2 {[]}
10
+ */
11
+ export declare function zipObject(arr1: string[], arr2: any[], skipDuplicated?: boolean): {};
12
+ /**
13
+ * @desc Alternative to lodash.flattenDeep
14
+ * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_flattendeep
15
+ * @param input {[]}
16
+ */
17
+ export declare function flattenDeep(input: any[]): any;
18
+ /**
19
+ * @desc Alternative to lodash.last
20
+ * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_last
21
+ * @param input {[]}
22
+ */
23
+ export declare function last(input: any[]): any;
24
+ /**
25
+ * @desc Alternative to lodash.uniq
26
+ * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_uniq
27
+ * @param input {string[]}
28
+ */
29
+ export declare function uniq(input: string[]): string[];
30
+ /**
31
+ * @desc Alternative to lodash.get
32
+ * @reference https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_get
33
+ * @param obj
34
+ * @param path
35
+ * @param defaultValue
36
+ */
37
+ export declare function get(obj: any, path: any, defaultValue: any): any;
38
+ /**
39
+ * @desc Check if the input is string
40
+ * @param {any} input
41
+ */
42
+ export declare function isString(input: any): input is string;
43
+ /**
44
+ * @desc Encode string with base64 format
45
+ * @param {string} message plain-text message
46
+ * @return {string} base64 encoded string
47
+ */
48
+ declare function base64Encode(message: string | number[]): string;
49
+ /**
50
+ * @desc Decode string from base64 format
51
+ * @param {string} base64Message encoded string
52
+ * @param {boolean} isBytes determine the return value type (True: bytes False: string)
53
+ * @return {bytes/string} decoded bytes/string depends on isBytes, default is {string}
54
+ */
55
+ export declare function base64Decode(base64Message: string, isBytes?: boolean): string | Buffer;
56
+ /**
57
+ * @desc Compress the string
58
+ * @param {string} message
59
+ * @return {string} compressed string
60
+ */
61
+ declare function deflateString(message: string): number[];
62
+ /**
63
+ * @desc Decompress the compressed string
64
+ * @param {string} compressedString
65
+ * @return {string} decompressed string
66
+ */
67
+ export declare function inflateString(compressedString: string): string;
68
+ /**
69
+ * @desc Parse the .cer to string format without line break, header and footer
70
+ * @param {string} certString declares the certificate contents
71
+ * @return {string} certificiate in string format
72
+ */
73
+ declare function normalizeCerString(certString: string | Buffer): string;
74
+ /**
75
+ * @desc Normalize the string in .pem format without line break, header and footer
76
+ * @param {string} pemString
77
+ * @return {string} private key in string format
78
+ */
79
+ declare function normalizePemString(pemString: string | Buffer): string;
80
+ /**
81
+ * @desc Return the complete URL
82
+ * @param {object} req HTTP request
83
+ * @return {string} URL
84
+ */
85
+ declare function getFullURL(req: any): string;
86
+ /**
87
+ * @desc Parse input string, return default value if it is undefined
88
+ * @param {string/boolean}
89
+ * @return {boolean}
90
+ */
91
+ declare function parseString(str: any, defaultValue?: string): any;
92
+ /**
93
+ * @desc Override the object by another object (rtl)
94
+ * @param {object} default object
95
+ * @param {object} object applied to the default object
96
+ * @return {object} result object
97
+ */
98
+ declare function applyDefault(obj1: any, obj2: any): any;
99
+ /**
100
+ * @desc Get public key in pem format from the certificate included in the metadata
101
+ * @param {string} x509 certificate
102
+ * @return {string} public key fetched from the certificate
103
+ */
104
+ declare function getPublicKeyPemFromCertificate(x509CertificateString: string): string | Buffer<ArrayBufferLike>;
105
+ export declare function readPrivateKey(keyString: string | Buffer, passphrase?: string, isOutputString?: boolean): string | Buffer;
106
+ /**
107
+ * @desc Inline syntax sugar
108
+ */
109
+ declare function convertToString(input: any, isOutputString: any): any;
110
+ /**
111
+ * @desc Check if the input is an array with non-zero size
112
+ */
113
+ export declare function isNonEmptyArray(a: any): boolean;
114
+ export declare function castArrayOpt<T>(a?: T | T[]): T[];
115
+ export declare function notEmpty<TValue>(value: TValue | null | undefined): value is TValue;
116
+ declare const utility: {
117
+ isString: typeof isString;
118
+ base64Encode: typeof base64Encode;
119
+ base64Decode: typeof base64Decode;
120
+ deflateString: typeof deflateString;
121
+ inflateString: typeof inflateString;
122
+ normalizeCerString: typeof normalizeCerString;
123
+ normalizePemString: typeof normalizePemString;
124
+ getFullURL: typeof getFullURL;
125
+ parseString: typeof parseString;
126
+ applyDefault: typeof applyDefault;
127
+ getPublicKeyPemFromCertificate: typeof getPublicKeyPemFromCertificate;
128
+ readPrivateKey: typeof readPrivateKey;
129
+ convertToString: typeof convertToString;
130
+ isNonEmptyArray: typeof isNonEmptyArray;
131
+ };
132
+ export default utility;
133
+ //# sourceMappingURL=utility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/utility.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,UAAO,MAmB3E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAIvC;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAEhC;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAGnC;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,EAAE,YAAY,KAAA,OAG1C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,mBAElC;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,UAE/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAGtF;AAED;;;;GAIG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAGhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAM9D;AAYD;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,UAEtD;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,UAErD;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,GAAG,KAAA,UAEtB;AAED;;;;GAIG;AACH,iBAAS,WAAW,CAAC,GAAG,KAAA,EAAE,YAAY,SAAK,OAE1C;AAED;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,OAE/B;AAED;;;;GAIG;AACH,iBAAS,8BAA8B,CAAC,qBAAqB,EAAE,MAAM,oCAWpE;AAqCD,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,GAAE,OAAc,GAC7B,MAAM,GAAG,MAAM,CA8BjB;AAGD;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,KAAA,EAAE,cAAc,KAAA,OAE7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,WAErC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAGhD;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAElF;AAED,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;CAeZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,3 +1,4 @@
1
- type DriftTolerance = [number, number];
2
- declare function verifyTime(utcNotBefore: string | undefined, utcNotOnOrAfter: string | undefined, drift?: DriftTolerance): boolean;
3
- export { verifyTime };
1
+ type DriftTolerance = [number, number];
2
+ declare function verifyTime(utcNotBefore: string | undefined, utcNotOnOrAfter: string | undefined, drift?: DriftTolerance): boolean;
3
+ export { verifyTime };
4
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AACA,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvC,iBAAS,UAAU,CACjB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,KAAK,GAAE,cAAuB,GAC7B,OAAO,CA2BT;AAED,OAAO,EACL,UAAU,EACX,CAAC"}
@@ -0,0 +1,128 @@
1
+ import type { LoginResponseTemplate } from './libsaml.js';
2
+ export { IdentityProvider as IdentityProviderConstructor } from './entity-idp.js';
3
+ export { IdpMetadata as IdentityProviderMetadata } from './metadata-idp.js';
4
+ export { ServiceProvider as ServiceProviderConstructor } from './entity-sp.js';
5
+ export { SpMetadata as ServiceProviderMetadata } from './metadata-sp.js';
6
+ export type MetadataFile = string | Buffer;
7
+ type SSOService = {
8
+ isDefault?: boolean;
9
+ Binding: string;
10
+ Location: string;
11
+ };
12
+ export type ServiceName = {
13
+ value: string;
14
+ /** @description 语言标识符(如 en/zh-CN) */
15
+ lang?: string;
16
+ };
17
+ export type RequestedAttribute = {
18
+ name: string;
19
+ friendlyName?: string;
20
+ isRequired?: boolean;
21
+ nameFormat?: string;
22
+ attributeValue?: string[];
23
+ };
24
+ export type AttributeConsumingService = {
25
+ isDefault: boolean;
26
+ serviceName: ServiceName[];
27
+ serviceDescription: ServiceName[];
28
+ requestedAttributes: RequestedAttribute[];
29
+ };
30
+ export type AttrService = AttributeConsumingService[];
31
+ export interface MetadataIdpOptions {
32
+ entityID?: string;
33
+ signingCert?: string | Buffer | (string | Buffer)[];
34
+ encryptCert?: string | Buffer | (string | Buffer)[];
35
+ wantAuthnRequestsSigned?: boolean;
36
+ nameIDFormat?: string[];
37
+ singleSignOnService?: SSOService[];
38
+ singleLogoutService?: SSOService[];
39
+ requestSignatureAlgorithm?: string;
40
+ }
41
+ export type MetadataIdpConstructor = MetadataIdpOptions | MetadataFile;
42
+ export interface MetadataSpOptions {
43
+ entityID?: string;
44
+ signingCert?: string | Buffer | (string | Buffer)[];
45
+ encryptCert?: string | Buffer | (string | Buffer)[];
46
+ authnRequestsSigned?: boolean;
47
+ wantAssertionsSigned?: boolean;
48
+ wantMessageSigned?: boolean;
49
+ signatureConfig?: {
50
+ [key: string]: any;
51
+ };
52
+ nameIDFormat?: string[];
53
+ singleSignOnService?: SSOService[];
54
+ singleLogoutService?: SSOService[];
55
+ assertionConsumerService?: SSOService[];
56
+ attributeConsumingService?: AttributeConsumingService[];
57
+ elementsOrder?: string[];
58
+ }
59
+ export type MetadataSpConstructor = MetadataSpOptions | MetadataFile;
60
+ export type EntitySetting = ServiceProviderSettings & IdentityProviderSettings;
61
+ export interface SignatureConfig {
62
+ prefix?: string;
63
+ location?: {
64
+ reference?: string;
65
+ action?: 'append' | 'prepend' | 'before' | 'after';
66
+ };
67
+ }
68
+ export interface SAMLDocumentTemplate {
69
+ context?: string;
70
+ }
71
+ export type ServiceProviderSettings = {
72
+ metadata?: string | Buffer;
73
+ entityID?: string;
74
+ authnRequestsSigned?: boolean;
75
+ wantAssertionsSigned?: boolean;
76
+ wantMessageSigned?: boolean;
77
+ wantLogoutResponseSigned?: boolean;
78
+ wantLogoutRequestSigned?: boolean;
79
+ privateKey?: string | Buffer;
80
+ privateKeyPass?: string;
81
+ isAssertionEncrypted?: boolean;
82
+ requestSignatureAlgorithm?: string;
83
+ encPrivateKey?: string | Buffer;
84
+ encPrivateKeyPass?: string | Buffer;
85
+ assertionConsumerService?: SSOService[];
86
+ singleLogoutService?: SSOService[];
87
+ signatureConfig?: SignatureConfig;
88
+ loginRequestTemplate?: SAMLDocumentTemplate;
89
+ logoutRequestTemplate?: SAMLDocumentTemplate;
90
+ signingCert?: string | Buffer | (string | Buffer)[];
91
+ encryptCert?: string | Buffer | (string | Buffer)[];
92
+ transformationAlgorithms?: string[];
93
+ nameIDFormat?: string[];
94
+ allowCreate?: boolean;
95
+ relayState?: string;
96
+ clockDrifts?: [number, number];
97
+ };
98
+ export type IdentityProviderSettings = {
99
+ metadata?: string | Buffer;
100
+ /** signature algorithm */
101
+ requestSignatureAlgorithm?: string;
102
+ /** template of login response */
103
+ loginResponseTemplate?: LoginResponseTemplate;
104
+ /** template of logout request */
105
+ logoutRequestTemplate?: SAMLDocumentTemplate;
106
+ /** customized function used for generating request ID */
107
+ generateID?: () => string;
108
+ entityID?: string;
109
+ privateKey?: string | Buffer;
110
+ privateKeyPass?: string;
111
+ signingCert?: string | Buffer | (string | Buffer)[];
112
+ encryptCert?: string | Buffer | (string | Buffer)[];
113
+ nameIDFormat?: string[];
114
+ singleSignOnService?: SSOService[];
115
+ singleLogoutService?: SSOService[];
116
+ isAssertionEncrypted?: boolean;
117
+ encPrivateKey?: string | Buffer;
118
+ encPrivateKeyPass?: string;
119
+ messageSigningOrder?: string;
120
+ wantLogoutRequestSigned?: boolean;
121
+ wantLogoutResponseSigned?: boolean;
122
+ wantAuthnRequestsSigned?: boolean;
123
+ wantLogoutRequestSignedResponseSigned?: boolean;
124
+ tagPrefix?: {
125
+ [key: string]: string;
126
+ };
127
+ };
128
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAQ,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,gBAAgB,IAAI,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,WAAW,IAAI,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,eAAe,IAAI,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,KAAK,UAAU,GAAG;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;CAC3C,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;AACtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,YAAY,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC;IACxC,yBAAyB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACxD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,YAAY,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,wBAAwB,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;KACpD,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC;IACxC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,0BAA0B;IAC1B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,iCAAiC;IACjC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAE9C,iCAAiC;IACjC,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAE7C,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACvC,CAAC"}
package/types/urn.d.ts ADDED
@@ -0,0 +1,195 @@
1
+ /**
2
+ * @file urn.ts
3
+ * @author tngan
4
+ * @desc Includes all keywords need in samlify
5
+ */
6
+ export declare enum BindingNamespace {
7
+ Redirect = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
8
+ Post = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
9
+ SimpleSign = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign",
10
+ Artifact = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
11
+ }
12
+ export declare enum MessageSignatureOrder {
13
+ STE = "sign-then-encrypt",
14
+ ETS = "encrypt-then-sign"
15
+ }
16
+ export declare enum StatusCode {
17
+ Success = "urn:oasis:names:tc:SAML:2.0:status:Success",
18
+ Requester = "urn:oasis:names:tc:SAML:2.0:status:Requester",
19
+ Responder = "urn:oasis:names:tc:SAML:2.0:status:Responder",
20
+ VersionMismatch = "urn:oasis:names:tc:SAML:2.0:status:VersionMismatch",
21
+ AuthFailed = "urn:oasis:names:tc:SAML:2.0:status:AuthnFailed",
22
+ InvalidAttrNameOrValue = "urn:oasis:names:tc:SAML:2.0:status:InvalidAttrNameOrValue",
23
+ InvalidNameIDPolicy = "urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy",
24
+ NoAuthnContext = "urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext",
25
+ NoAvailableIDP = "urn:oasis:names:tc:SAML:2.0:status:NoAvailableIDP",
26
+ NoPassive = "urn:oasis:names:tc:SAML:2.0:status:NoPassive",
27
+ NoSupportedIDP = "urn:oasis:names:tc:SAML:2.0:status:NoSupportedIDP",
28
+ PartialLogout = "urn:oasis:names:tc:SAML:2.0:status:PartialLogout",
29
+ ProxyCountExceeded = "urn:oasis:names:tc:SAML:2.0:status:ProxyCountExceeded",
30
+ RequestDenied = "urn:oasis:names:tc:SAML:2.0:status:RequestDenied",
31
+ RequestUnsupported = "urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported",
32
+ RequestVersionDeprecated = "urn:oasis:names:tc:SAML:2.0:status:RequestVersionDeprecated",
33
+ RequestVersionTooHigh = "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooHigh",
34
+ RequestVersionTooLow = "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooLow",
35
+ ResourceNotRecognized = "urn:oasis:names:tc:SAML:2.0:status:ResourceNotRecognized",
36
+ TooManyResponses = "urn:oasis:names:tc:SAML:2.0:status:TooManyResponses",
37
+ UnknownAttrProfile = "urn:oasis:names:tc:SAML:2.0:status:UnknownAttrProfile",
38
+ UnknownPrincipal = "urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal",
39
+ UnsupportedBinding = "urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding"
40
+ }
41
+ declare const namespace: {
42
+ binding: {
43
+ redirect: string;
44
+ post: string;
45
+ simpleSign: string;
46
+ artifact: string;
47
+ };
48
+ names: {
49
+ protocol: string;
50
+ assertion: string;
51
+ metadata: string;
52
+ userLogout: string;
53
+ adminLogout: string;
54
+ };
55
+ authnContextClassRef: {
56
+ password: string;
57
+ passwordProtectedTransport: string;
58
+ };
59
+ format: {
60
+ emailAddress: string;
61
+ persistent: string;
62
+ transient: string;
63
+ entity: string;
64
+ unspecified: string;
65
+ kerberos: string;
66
+ windowsDomainQualifiedName: string;
67
+ x509SubjectName: string;
68
+ };
69
+ statusCode: {
70
+ success: string;
71
+ requester: string;
72
+ responder: string;
73
+ versionMismatch: string;
74
+ authFailed: string;
75
+ invalidAttrNameOrValue: string;
76
+ invalidNameIDPolicy: string;
77
+ noAuthnContext: string;
78
+ noAvailableIDP: string;
79
+ noPassive: string;
80
+ noSupportedIDP: string;
81
+ partialLogout: string;
82
+ proxyCountExceeded: string;
83
+ requestDenied: string;
84
+ requestUnsupported: string;
85
+ requestVersionDeprecated: string;
86
+ requestVersionTooHigh: string;
87
+ requestVersionTooLow: string;
88
+ resourceNotRecognized: string;
89
+ tooManyResponses: string;
90
+ unknownAttrProfile: string;
91
+ unknownPrincipal: string;
92
+ unsupportedBinding: string;
93
+ };
94
+ };
95
+ declare const tags: {
96
+ request: {
97
+ AllowCreate: string;
98
+ AssertionConsumerServiceURL: string;
99
+ AuthnContextClassRef: string;
100
+ AssertionID: string;
101
+ Audience: string;
102
+ AuthnStatement: string;
103
+ AttributeStatement: string;
104
+ ConditionsNotBefore: string;
105
+ ConditionsNotOnOrAfter: string;
106
+ Destination: string;
107
+ EntityID: string;
108
+ ID: string;
109
+ Issuer: string;
110
+ IssueInstant: string;
111
+ InResponseTo: string;
112
+ NameID: string;
113
+ NameIDFormat: string;
114
+ ProtocolBinding: string;
115
+ SessionIndex: string;
116
+ SubjectRecipient: string;
117
+ SubjectConfirmationDataNotOnOrAfter: string;
118
+ StatusCode: string;
119
+ };
120
+ xmlTag: {
121
+ loginRequest: string;
122
+ logoutRequest: string;
123
+ loginResponse: string;
124
+ logoutResponse: string;
125
+ };
126
+ };
127
+ declare const messageConfigurations: {
128
+ signingOrder: {
129
+ SIGN_THEN_ENCRYPT: string;
130
+ ENCRYPT_THEN_SIGN: string;
131
+ };
132
+ };
133
+ declare const algorithms: {
134
+ signature: {
135
+ RSA_SHA1: string;
136
+ RSA_SHA256: string;
137
+ RSA_SHA512: string;
138
+ };
139
+ encryption: {
140
+ data: {
141
+ AES_128: string;
142
+ AES_256: string;
143
+ AES_256_GCM: string;
144
+ TRI_DEC: string;
145
+ AES_128_GCM: string;
146
+ };
147
+ key: {
148
+ RSA_OAEP_MGF1P: string;
149
+ RSA_1_5: string;
150
+ };
151
+ };
152
+ digest: {
153
+ 'http://www.w3.org/2000/09/xmldsig#rsa-sha1': string;
154
+ 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256': string;
155
+ 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512': string;
156
+ };
157
+ };
158
+ export declare enum ParserType {
159
+ SAMLRequest = "SAMLRequest",
160
+ SAMLResponse = "SAMLResponse",
161
+ LogoutRequest = "LogoutRequest",
162
+ LogoutResponse = "LogoutResponse"
163
+ }
164
+ declare const wording: {
165
+ urlParams: {
166
+ samlRequest: string;
167
+ samlResponse: string;
168
+ logoutRequest: string;
169
+ logoutResponse: string;
170
+ sigAlg: string;
171
+ signature: string;
172
+ relayState: string;
173
+ };
174
+ binding: {
175
+ redirect: string;
176
+ post: string;
177
+ simpleSign: string;
178
+ artifact: string;
179
+ };
180
+ certUse: {
181
+ signing: string;
182
+ encrypt: string;
183
+ };
184
+ metadata: {
185
+ sp: string;
186
+ idp: string;
187
+ };
188
+ };
189
+ declare const elementsOrder: {
190
+ default: string[];
191
+ onelogin: string[];
192
+ shibboleth: string[];
193
+ };
194
+ export { namespace, tags, algorithms, wording, elementsOrder, messageConfigurations };
195
+ //# sourceMappingURL=urn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../src/urn.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDd,CAAC;AAEF,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BT,CAAC;AAEF,QAAA,MAAM,qBAAqB;;;;;CAK1B,CAAC;AAEF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;CAwBf,CAAC;AAEF,oBAAY,UAAU;IACpB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;CAClC;AAED,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBZ,CAAC;AAIF,QAAA,MAAM,aAAa;;;;CAIlB,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC"}