samlesa 2.17.2 → 2.18.0

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 (51) hide show
  1. package/build/src/binding-artifact.js +24 -14
  2. package/build/src/binding-post.js +0 -2
  3. package/build/src/flow.js +169 -27
  4. package/build/src/libsaml.js +442 -213
  5. package/build/src/metadata-idp.js +26 -24
  6. package/build/src/metadata-sp.js +19 -19
  7. package/build/src/schemaValidator.js +30 -6
  8. package/package.json +77 -78
  9. package/types/api.d.ts +15 -0
  10. package/types/api.d.ts.map +1 -0
  11. package/types/binding-post.d.ts +48 -0
  12. package/types/binding-post.d.ts.map +1 -0
  13. package/types/binding-redirect.d.ts +54 -0
  14. package/types/binding-redirect.d.ts.map +1 -0
  15. package/types/binding-simplesign.d.ts +41 -0
  16. package/types/binding-simplesign.d.ts.map +1 -0
  17. package/types/entity-idp.d.ts +38 -0
  18. package/types/entity-idp.d.ts.map +1 -0
  19. package/types/entity-sp.d.ts +38 -0
  20. package/types/entity-sp.d.ts.map +1 -0
  21. package/types/entity.d.ts +100 -0
  22. package/types/entity.d.ts.map +1 -0
  23. package/types/extractor.d.ts +26 -0
  24. package/types/extractor.d.ts.map +1 -0
  25. package/types/flow.d.ts +7 -0
  26. package/types/flow.d.ts.map +1 -0
  27. package/types/libsaml.d.ts +208 -0
  28. package/types/libsaml.d.ts.map +1 -0
  29. package/types/metadata-idp.d.ts +25 -0
  30. package/types/metadata-idp.d.ts.map +1 -0
  31. package/types/metadata-sp.d.ts +37 -0
  32. package/types/metadata-sp.d.ts.map +1 -0
  33. package/types/metadata.d.ts +58 -0
  34. package/types/metadata.d.ts.map +1 -0
  35. package/types/src/binding-artifact.d.ts.map +1 -1
  36. package/types/src/binding-post.d.ts.map +1 -1
  37. package/types/src/flow.d.ts.map +1 -1
  38. package/types/src/libsaml.d.ts +50 -1
  39. package/types/src/libsaml.d.ts.map +1 -1
  40. package/types/src/metadata-idp.d.ts.map +1 -1
  41. package/types/src/metadata-sp.d.ts.map +1 -1
  42. package/types/src/schemaValidator.d.ts +1 -1
  43. package/types/src/schemaValidator.d.ts.map +1 -1
  44. package/types/types.d.ts +128 -0
  45. package/types/types.d.ts.map +1 -0
  46. package/types/urn.d.ts +195 -0
  47. package/types/urn.d.ts.map +1 -0
  48. package/types/utility.d.ts +133 -0
  49. package/types/utility.d.ts.map +1 -0
  50. package/types/validator.d.ts +4 -0
  51. package/types/validator.d.ts.map +1 -0
@@ -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":"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"}
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"}
@@ -0,0 +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
+ /**
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"}
@@ -0,0 +1,4 @@
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"}