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.
- package/build/src/binding-artifact.js +24 -14
- package/build/src/binding-post.js +0 -2
- package/build/src/flow.js +169 -27
- package/build/src/libsaml.js +442 -213
- package/build/src/metadata-idp.js +26 -24
- package/build/src/metadata-sp.js +19 -19
- package/build/src/schemaValidator.js +30 -6
- package/package.json +77 -78
- package/types/api.d.ts +15 -0
- package/types/api.d.ts.map +1 -0
- package/types/binding-post.d.ts +48 -0
- package/types/binding-post.d.ts.map +1 -0
- package/types/binding-redirect.d.ts +54 -0
- package/types/binding-redirect.d.ts.map +1 -0
- package/types/binding-simplesign.d.ts +41 -0
- package/types/binding-simplesign.d.ts.map +1 -0
- package/types/entity-idp.d.ts +38 -0
- package/types/entity-idp.d.ts.map +1 -0
- package/types/entity-sp.d.ts +38 -0
- package/types/entity-sp.d.ts.map +1 -0
- package/types/entity.d.ts +100 -0
- package/types/entity.d.ts.map +1 -0
- package/types/extractor.d.ts +26 -0
- package/types/extractor.d.ts.map +1 -0
- package/types/flow.d.ts +7 -0
- package/types/flow.d.ts.map +1 -0
- package/types/libsaml.d.ts +208 -0
- package/types/libsaml.d.ts.map +1 -0
- package/types/metadata-idp.d.ts +25 -0
- package/types/metadata-idp.d.ts.map +1 -0
- package/types/metadata-sp.d.ts +37 -0
- package/types/metadata-sp.d.ts.map +1 -0
- package/types/metadata.d.ts +58 -0
- package/types/metadata.d.ts.map +1 -0
- package/types/src/binding-artifact.d.ts.map +1 -1
- package/types/src/binding-post.d.ts.map +1 -1
- package/types/src/flow.d.ts.map +1 -1
- package/types/src/libsaml.d.ts +50 -1
- package/types/src/libsaml.d.ts.map +1 -1
- package/types/src/metadata-idp.d.ts.map +1 -1
- package/types/src/metadata-sp.d.ts.map +1 -1
- package/types/src/schemaValidator.d.ts +1 -1
- package/types/src/schemaValidator.d.ts.map +1 -1
- package/types/types.d.ts +128 -0
- package/types/types.d.ts.map +1 -0
- package/types/urn.d.ts +195 -0
- package/types/urn.d.ts.map +1 -0
- package/types/utility.d.ts +133 -0
- package/types/utility.d.ts.map +1 -0
- package/types/validator.d.ts +4 -0
- package/types/validator.d.ts.map +1 -0
package/types/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
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"}
|