occam-open-cli 5.0.44 → 5.0.46
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/README.md +3 -3
- package/bin/action/createAccount.js +2 -6
- package/bin/action/help.js +5 -3
- package/bin/action/open.js +13 -0
- package/bin/action/resetPassword.js +2 -3
- package/bin/action/signIn.js +2 -6
- package/bin/action/version.js +2 -0
- package/bin/actions.js +3 -3
- package/bin/commands.js +0 -2
- package/bin/messages.js +4 -14
- package/bin/operation/clone.js +0 -2
- package/bin/operation/createAccount.js +2 -7
- package/bin/operation/createRelease.js +9 -2
- package/bin/operation/deprecate.js +1 -5
- package/bin/operation/resetPassword.js +6 -0
- package/bin/operation/setIdentityToken.js +3 -1
- package/bin/operation/signIn.js +2 -7
- package/bin/post.js +34 -21
- package/bin/utilities/status.js +62 -0
- package/lib/browser.js +16 -8
- package/lib/constants.js +5 -1
- package/lib/dependencies.js +74 -0
- package/lib/dependency.js +61 -0
- package/lib/main.js +16 -8
- package/lib/mixin/bnf.js +46 -0
- package/lib/mixin/entries.js +30 -0
- package/lib/mixin/files.js +40 -0
- package/lib/mixin/pattern.js +46 -0
- package/lib/project.js +71 -82
- package/lib/release.js +40 -100
- package/lib/shortenedVersion.js +125 -0
- package/lib/utilities/content.js +8 -1
- package/lib/utilities/files.js +75 -0
- package/lib/utilities/metaJSON.js +80 -0
- package/lib/utilities/name.js +9 -2
- package/lib/utilities/query.js +41 -0
- package/lib/version.js +33 -3
- package/package.json +4 -2
- package/src/browser.js +6 -2
- package/src/constants.js +1 -0
- package/src/dependencies.js +40 -0
- package/src/dependency.js +22 -0
- package/src/main.js +5 -2
- package/src/mixin/bnf.js +57 -0
- package/src/mixin/entries.js +16 -0
- package/src/mixin/files.js +50 -0
- package/src/mixin/pattern.js +57 -0
- package/src/project.js +97 -82
- package/src/release.js +51 -117
- package/src/shortenedVersion.js +109 -0
- package/src/utilities/content.js +4 -1
- package/src/utilities/files.js +103 -0
- package/src/utilities/metaJSON.js +82 -0
- package/src/utilities/name.js +14 -1
- package/src/utilities/query.js +31 -0
- package/src/version.js +30 -2
- package/bin/action/install.js +0 -13
package/README.md
CHANGED
|
@@ -41,6 +41,8 @@ Commands:
|
|
|
41
41
|
|
|
42
42
|
initialise Create a configuration file
|
|
43
43
|
|
|
44
|
+
set-options Set options
|
|
45
|
+
|
|
44
46
|
clone <package_name> Clone a package with Git
|
|
45
47
|
|
|
46
48
|
publish <package_name> Publish a package
|
|
@@ -53,9 +55,7 @@ Commands:
|
|
|
53
55
|
|
|
54
56
|
sign-out Sign out
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
reset-password [<email_address>] Reset your password
|
|
58
|
+
reset-password [<email_address>] Reset password
|
|
59
59
|
|
|
60
60
|
Options:
|
|
61
61
|
|
|
@@ -6,8 +6,7 @@ const createAccountOperation = require("../operation/createAccount"),
|
|
|
6
6
|
setIdentityTokenOperation = require("../operation/setIdentityToken"),
|
|
7
7
|
emailAddressPromptOperation = require("../operation/prompt/emailAddress");
|
|
8
8
|
|
|
9
|
-
const { executeOperations } = require("../utilities/operation")
|
|
10
|
-
{ FAILED_CREATE_ACCOUNT_MESSAGE, SUCCESSFUL_CREATE_ACCOUNT_MESSAGE } = require("../messages");
|
|
9
|
+
const { executeOperations } = require("../utilities/operation");
|
|
11
10
|
|
|
12
11
|
function createAccount(argument) {
|
|
13
12
|
const emailAddress = argument, ///
|
|
@@ -27,10 +26,7 @@ function createAccount(argument) {
|
|
|
27
26
|
};
|
|
28
27
|
|
|
29
28
|
executeOperations(operations, (completed) => {
|
|
30
|
-
const
|
|
31
|
-
message = success ?
|
|
32
|
-
SUCCESSFUL_CREATE_ACCOUNT_MESSAGE :
|
|
33
|
-
FAILED_CREATE_ACCOUNT_MESSAGE;
|
|
29
|
+
const { message } = context;
|
|
34
30
|
|
|
35
31
|
console.log(message);
|
|
36
32
|
|
package/bin/action/help.js
CHANGED
|
@@ -13,6 +13,8 @@ Commands:
|
|
|
13
13
|
|
|
14
14
|
initialise Create a configuration file
|
|
15
15
|
|
|
16
|
+
set-options Set options
|
|
17
|
+
|
|
16
18
|
clone <package_name> Clone a package with Git
|
|
17
19
|
|
|
18
20
|
publish <package_name> Publish a package
|
|
@@ -25,9 +27,7 @@ Commands:
|
|
|
25
27
|
|
|
26
28
|
sign-out Sign out
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
reset-password [<email_address>] Reset your password
|
|
30
|
+
reset-password [<email_address>] Reset password
|
|
31
31
|
|
|
32
32
|
Options:
|
|
33
33
|
|
|
@@ -41,6 +41,8 @@ Please see the readme file on GitHub:
|
|
|
41
41
|
|
|
42
42
|
https://github.com/djalbat/occam-open-cli
|
|
43
43
|
`);
|
|
44
|
+
|
|
45
|
+
process.exit();
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
module.exports = help;
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
const resetPasswordOperation = require("../operation/resetPassword"),
|
|
4
4
|
emailAddressPromptOperation = require("../operation/prompt/emailAddress");
|
|
5
5
|
|
|
6
|
-
const { executeOperations } = require("../utilities/operation")
|
|
7
|
-
{ RESET_PASSWORD_MESSAGE } = require("../messages");
|
|
6
|
+
const { executeOperations } = require("../utilities/operation");
|
|
8
7
|
|
|
9
8
|
function resetPassword(argument) {
|
|
10
9
|
const emailAddress = argument, ///
|
|
@@ -17,7 +16,7 @@ function resetPassword(argument) {
|
|
|
17
16
|
};
|
|
18
17
|
|
|
19
18
|
executeOperations(operations, (completed) => {
|
|
20
|
-
const message =
|
|
19
|
+
const { message } = context;
|
|
21
20
|
|
|
22
21
|
console.log(message);
|
|
23
22
|
|
package/bin/action/signIn.js
CHANGED
|
@@ -5,8 +5,7 @@ const signInOperation = require("../operation/signIn"),
|
|
|
5
5
|
setIdentityTokenOperation = require("../operation/setIdentityToken"),
|
|
6
6
|
emailAddressOrUsernamePromptOperation = require("../operation/prompt/emailAddressOrUsername");
|
|
7
7
|
|
|
8
|
-
const { executeOperations } = require("../utilities/operation")
|
|
9
|
-
{ FAILED_SIGN_IN_MESSAGE, SUCCESSFUL_SIGN_IN_MESSAGE } = require("../messages");
|
|
8
|
+
const { executeOperations } = require("../utilities/operation");
|
|
10
9
|
|
|
11
10
|
function signIn(argument) {
|
|
12
11
|
const emailAddressOrUsername = argument, ///
|
|
@@ -23,10 +22,7 @@ function signIn(argument) {
|
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
executeOperations(operations, (completed) => {
|
|
26
|
-
const
|
|
27
|
-
message = success ?
|
|
28
|
-
SUCCESSFUL_SIGN_IN_MESSAGE :
|
|
29
|
-
FAILED_SIGN_IN_MESSAGE;
|
|
25
|
+
const { message } = context;
|
|
30
26
|
|
|
31
27
|
console.log(message);
|
|
32
28
|
|
package/bin/action/version.js
CHANGED
package/bin/actions.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const help = require("./action/help"),
|
|
4
|
+
open = require("./action/open"),
|
|
4
5
|
clone = require("./action/clone"),
|
|
5
6
|
signIn = require("./action/signIn"),
|
|
6
7
|
signOut = require("./action/signOut"),
|
|
7
8
|
version = require("./action/version"),
|
|
8
|
-
install = require("./action/install"),
|
|
9
9
|
publish = require("./action/publish"),
|
|
10
10
|
deprecate = require("./action/deprecate"),
|
|
11
11
|
initialise = require("./action/initialise"),
|
|
@@ -44,7 +44,7 @@ function actions(command, argument, options) {
|
|
|
44
44
|
case HELP_COMMAND : help(); break;
|
|
45
45
|
case CLONE_COMMAND : clone(argument); break;
|
|
46
46
|
case VERSION_COMMAND : version(); break;
|
|
47
|
-
case INSTALL_COMMAND :
|
|
47
|
+
case INSTALL_COMMAND : open(argument); break;
|
|
48
48
|
case PUBLISH_COMMAND : publish(argument); break;
|
|
49
49
|
case SIGN_IN_COMMAND : signIn(argument); break;
|
|
50
50
|
case SIGN_OUT_COMMAND : signOut(); break;
|
|
@@ -57,7 +57,7 @@ function actions(command, argument, options) {
|
|
|
57
57
|
default :
|
|
58
58
|
argument = command; ///
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
open(argument);
|
|
61
61
|
|
|
62
62
|
break;
|
|
63
63
|
}
|
package/bin/commands.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
const HELP_COMMAND = "help",
|
|
4
4
|
CLONE_COMMAND = "clone",
|
|
5
5
|
VERSION_COMMAND = "version",
|
|
6
|
-
INSTALL_COMMAND = "install",
|
|
7
6
|
PUBLISH_COMMAND = "publish",
|
|
8
7
|
SIGN_IN_COMMAND = "sign-in",
|
|
9
8
|
SIGN_OUT_COMMAND = "sign-out",
|
|
@@ -17,7 +16,6 @@ module.exports = {
|
|
|
17
16
|
HELP_COMMAND,
|
|
18
17
|
CLONE_COMMAND,
|
|
19
18
|
VERSION_COMMAND,
|
|
20
|
-
INSTALL_COMMAND,
|
|
21
19
|
PUBLISH_COMMAND,
|
|
22
20
|
SIGN_IN_COMMAND,
|
|
23
21
|
SIGN_OUT_COMMAND,
|
package/bin/messages.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const PASSWORDS_DO_NOT_MATCH_MESSAGE = "The passwords do not match.",
|
|
4
|
-
SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE = "The server
|
|
4
|
+
SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE = "The server did not respond in a timely or intelligible fashion. If this problem persists then please be kind enough to report it.",
|
|
5
5
|
CONFIGURATION_FILE_DOES_NOT_EXIST_MESSAGE = "The action cannot be performed because the configuration file is missing. Run 'open initialise' to create one.",
|
|
6
|
-
|
|
6
|
+
OPEN_MESSAGE = "The open functionality is not implemented yet.",
|
|
7
7
|
SIGN_OUT_MESSAGE = "You have been signed out.",
|
|
8
|
-
RESET_PASSWORD_MESSAGE = "If the email address corresponds to an account then an email will have been sent.",
|
|
9
8
|
INVALID_USERNAME_MESSAGE = "Usernames must consist of groups of at least two and no more than sixteen numbers or lowercase letters, separated by dashes.",
|
|
10
9
|
INVALID_PASSWORD_MESSAGE = "Passwords must consist of at least eight letters, numbers or common punctuation symbols.",
|
|
11
10
|
INVALID_AFFIRMATION_MESSAGE = "You must answer (y)es or (n)o.",
|
|
@@ -13,17 +12,13 @@ const PASSWORDS_DO_NOT_MATCH_MESSAGE = "The passwords do not match.",
|
|
|
13
12
|
INVALID_EMAIL_ADDRESS_MESSAGE = "The email address does not appear to be a valid one.",
|
|
14
13
|
INVALID_GITHUB_HOST_NAME_MESSAGE = "The GitHub host name can be any number of alphabetical, numeric, dash or period characters, or can be left blank.",
|
|
15
14
|
INVALID_EMAIL_ADDRESS_OR_USERNAME_MESSAGE = "The email address or username does not appear to be a valid one.",
|
|
16
|
-
FAILED_CLONE_MESSAGE = "Failed to clone the package.
|
|
17
|
-
FAILED_SIGN_IN_MESSAGE = "Failed to sign in.",
|
|
15
|
+
FAILED_CLONE_MESSAGE = "Failed to clone the package.",
|
|
18
16
|
FAILED_PUBLISH_MESSAGE = "Failed to publish the package.",
|
|
19
17
|
FAILED_DEPRECATE_MESSAGE = "Failed to deprecate the package.",
|
|
20
18
|
FAILED_INITIALISE_MESSAGE = "Failed to create a configuration file because one is already present.",
|
|
21
19
|
FAILED_SET_OPTIONS_MESSAGE = "Failed to set the options.",
|
|
22
|
-
FAILED_CREATE_ACCOUNT_MESSAGE = "Failed to create account.",
|
|
23
20
|
SUCCESSFUL_CLONE_MESSAGE = "The package has been cloned successfully.",
|
|
24
|
-
SUCCESSFUL_SIGN_IN_MESSAGE = "You have signed in successfully.",
|
|
25
21
|
SUCCESSFUL_PUBLISH_MESSAGE = "The package has been published successfully.",
|
|
26
|
-
SUCCESSFUL_CREATE_ACCOUNT_MESSAGE = "You have created an account successfully.",
|
|
27
22
|
SUCCESSFUL_DEPRECATE_MESSAGE = "The package has been deprecated successfully.",
|
|
28
23
|
SUCCESSFUL_INITIALISE_MESSAGE = "The configuration file has been created successfully.",
|
|
29
24
|
SUCCESSFUL_SET_OPTIONS_MESSAGE = "The options have been set successfully.";
|
|
@@ -32,9 +27,8 @@ module.exports = {
|
|
|
32
27
|
PASSWORDS_DO_NOT_MATCH_MESSAGE,
|
|
33
28
|
SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE,
|
|
34
29
|
CONFIGURATION_FILE_DOES_NOT_EXIST_MESSAGE,
|
|
35
|
-
|
|
30
|
+
OPEN_MESSAGE,
|
|
36
31
|
SIGN_OUT_MESSAGE,
|
|
37
|
-
RESET_PASSWORD_MESSAGE,
|
|
38
32
|
INVALID_USERNAME_MESSAGE,
|
|
39
33
|
INVALID_PASSWORD_MESSAGE,
|
|
40
34
|
INVALID_AFFIRMATION_MESSAGE,
|
|
@@ -43,16 +37,12 @@ module.exports = {
|
|
|
43
37
|
INVALID_GITHUB_HOST_NAME_MESSAGE,
|
|
44
38
|
INVALID_EMAIL_ADDRESS_OR_USERNAME_MESSAGE,
|
|
45
39
|
FAILED_CLONE_MESSAGE,
|
|
46
|
-
FAILED_SIGN_IN_MESSAGE,
|
|
47
40
|
FAILED_PUBLISH_MESSAGE,
|
|
48
41
|
FAILED_DEPRECATE_MESSAGE,
|
|
49
42
|
FAILED_INITIALISE_MESSAGE,
|
|
50
43
|
FAILED_SET_OPTIONS_MESSAGE,
|
|
51
|
-
FAILED_CREATE_ACCOUNT_MESSAGE,
|
|
52
44
|
SUCCESSFUL_CLONE_MESSAGE,
|
|
53
|
-
SUCCESSFUL_SIGN_IN_MESSAGE,
|
|
54
45
|
SUCCESSFUL_PUBLISH_MESSAGE,
|
|
55
|
-
SUCCESSFUL_CREATE_ACCOUNT_MESSAGE,
|
|
56
46
|
SUCCESSFUL_DEPRECATE_MESSAGE,
|
|
57
47
|
SUCCESSFUL_INITIALISE_MESSAGE,
|
|
58
48
|
SUCCESSFUL_SET_OPTIONS_MESSAGE
|
package/bin/operation/clone.js
CHANGED
|
@@ -14,15 +14,10 @@ function createAccountOperation(proceed, abort, context) {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
post(uri, json, (json) => {
|
|
17
|
-
const { identityToken = null } = json;
|
|
18
|
-
|
|
19
|
-
if (identityToken === null) {
|
|
20
|
-
abort();
|
|
21
|
-
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
17
|
+
const { message = null, identityToken = null } = json;
|
|
24
18
|
|
|
25
19
|
Object.assign(context, {
|
|
20
|
+
message,
|
|
26
21
|
identityToken
|
|
27
22
|
});
|
|
28
23
|
|
|
@@ -8,8 +8,15 @@ const { PERIOD_CHARACTER } = characters,
|
|
|
8
8
|
{ entriesFromTopmostDirectoryName } = entriesUtilities;
|
|
9
9
|
|
|
10
10
|
function createReleaseOperation(proceed, abort, context) {
|
|
11
|
-
const { releaseName } = context
|
|
12
|
-
|
|
11
|
+
const { releaseName } = context;
|
|
12
|
+
|
|
13
|
+
let release = null;
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
release = releaseFromReleaseName(releaseName);
|
|
17
|
+
} catch (error) {
|
|
18
|
+
///
|
|
19
|
+
}
|
|
13
20
|
|
|
14
21
|
if (release === null) {
|
|
15
22
|
abort();
|
|
@@ -5,7 +5,9 @@ const { setIdentityToken } = require("../configuration");
|
|
|
5
5
|
function setIdentityTokenOperation(proceed, abort, context) {
|
|
6
6
|
const { identityToken } = context;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
if (identityToken !== null) {
|
|
9
|
+
setIdentityToken(identityToken);
|
|
10
|
+
}
|
|
9
11
|
|
|
10
12
|
proceed();
|
|
11
13
|
}
|
package/bin/operation/signIn.js
CHANGED
|
@@ -13,15 +13,10 @@ function signInOperation(proceed, abort, context) {
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
post(uri, json, (json) => {
|
|
16
|
-
const { identityToken = null } = json;
|
|
17
|
-
|
|
18
|
-
if (identityToken === null) {
|
|
19
|
-
abort();
|
|
20
|
-
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
16
|
+
const { message = null, identityToken = null } = json;
|
|
23
17
|
|
|
24
18
|
Object.assign(context, {
|
|
19
|
+
message,
|
|
25
20
|
identityToken
|
|
26
21
|
});
|
|
27
22
|
|
package/bin/post.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const { Readable } = require("stream")
|
|
4
|
-
|
|
3
|
+
const { Readable } = require("stream"),
|
|
4
|
+
{ headers, contentTypes, statusCodes, requestUtilities } = require("necessary");
|
|
5
5
|
|
|
6
6
|
const { getHost } = require("./configuration"),
|
|
7
7
|
{ getPackageVersion } = require("./utilities/packageJSON"),
|
|
8
8
|
{ contentFromResponse } = require("./utilities/response"),
|
|
9
|
+
{ statusMessageFromStatusCode } = require("./utilities/status"),
|
|
9
10
|
{ SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE } = require("./messages");
|
|
10
11
|
|
|
11
12
|
const { createPostRequest } = requestUtilities,
|
|
13
|
+
{ OK_200_STATUS_CODE } = statusCodes,
|
|
12
14
|
{ CONTENT_TYPE_HEADER } = headers,
|
|
13
15
|
{ APPLICATION_JSON_CHARSET_UTF_8_CONTENT_TYPE } = contentTypes;
|
|
14
16
|
|
|
@@ -24,31 +26,42 @@ function post(uri, json, callback) {
|
|
|
24
26
|
});
|
|
25
27
|
|
|
26
28
|
const postRequest = createPostRequest(host, uri, query, headers, (error, response) => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
if (error) {
|
|
30
|
+
console.log(SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE);
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
process.exit();
|
|
33
|
+
}
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
let json;
|
|
35
|
+
const { statusCode } = response;
|
|
35
36
|
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
if (statusCode !== OK_200_STATUS_CODE) {
|
|
38
|
+
const statusMessage = statusMessageFromStatusCode(statusCode);
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
} catch (error) {
|
|
41
|
-
if (error) {
|
|
42
|
-
console.log(SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE);
|
|
40
|
+
console.log(`The server responded with '${statusMessage}'.`);
|
|
43
41
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
42
|
+
process.exit();
|
|
43
|
+
}
|
|
47
44
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
contentFromResponse(response, (content) => {
|
|
46
|
+
let json;
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
const jsonString = content; ///
|
|
50
|
+
|
|
51
|
+
json = JSON.parse(jsonString);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
if (error) {
|
|
54
|
+
console.log(SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE);
|
|
55
|
+
|
|
56
|
+
process.exit();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
callback(json);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const readable = Readable.from(content);
|
|
52
65
|
|
|
53
66
|
readable.pipe(postRequest);
|
|
54
67
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const { statusCodes, statusMessages } = require("necessary");
|
|
4
|
+
|
|
5
|
+
const { ZERO_0_STATUS_CODE,
|
|
6
|
+
OK_200_STATUS_CODE,
|
|
7
|
+
FOUND_302_STATUS_CODE,
|
|
8
|
+
CREATED_201_STATUS_CODE,
|
|
9
|
+
SEE_OTHER_303_STATUS_CODE,
|
|
10
|
+
FORBIDDEN_403_STATUS_CODE,
|
|
11
|
+
NOT_FOUND_404_STATUS_CODE,
|
|
12
|
+
NO_CONTENT_204_STATUS_CODE,
|
|
13
|
+
BAD_GATEWAY_502_STATUS_CODE,
|
|
14
|
+
BAD_REQUEST_400_STATUS_CODE,
|
|
15
|
+
UNAUTHORIZED_401_STATUS_CODE,
|
|
16
|
+
REQUEST_TIMEOUT_408_STATUS_CODE,
|
|
17
|
+
TOO_MANY_REQUESTS_429_STATUS_CODE,
|
|
18
|
+
SERVICE_UNAVAILABLE_503_STATUS_CODE,
|
|
19
|
+
INTERNAL_SERVER_ERROR_500_STATUS_CODE } = statusCodes,
|
|
20
|
+
{ ZERO_0_STATUS_MESSAGE,
|
|
21
|
+
OK_200_STATUS_MESSAGE,
|
|
22
|
+
FOUND_302_STATUS_MESSAGE,
|
|
23
|
+
CREATED_201_STATUS_MESSAGE,
|
|
24
|
+
SEE_OTHER_303_STATUS_MESSAGE,
|
|
25
|
+
FORBIDDEN_403_STATUS_MESSAGE,
|
|
26
|
+
NOT_FOUND_404_STATUS_MESSAGE,
|
|
27
|
+
NO_CONTENT_204_STATUS_MESSAGE,
|
|
28
|
+
BAD_GATEWAY_502_STATUS_MESSAGE,
|
|
29
|
+
BAD_REQUEST_400_STATUS_MESSAGE,
|
|
30
|
+
UNAUTHORIZED_401_STATUS_MESSAGE,
|
|
31
|
+
REQUEST_TIMEOUT_408_STATUS_MESSAGE,
|
|
32
|
+
TOO_MANY_REQUESTS_429_STATUS_MESSAGE,
|
|
33
|
+
SERVICE_UNAVAILABLE_503_STATUS_MESSAGE,
|
|
34
|
+
INTERNAL_SERVER_ERROR_500_STATUS_MESSAGE } = statusMessages;
|
|
35
|
+
|
|
36
|
+
const statusMap = {
|
|
37
|
+
[ZERO_0_STATUS_CODE]: ZERO_0_STATUS_MESSAGE,
|
|
38
|
+
[OK_200_STATUS_CODE]: OK_200_STATUS_MESSAGE,
|
|
39
|
+
[FOUND_302_STATUS_CODE]: FOUND_302_STATUS_MESSAGE,
|
|
40
|
+
[CREATED_201_STATUS_CODE]: CREATED_201_STATUS_MESSAGE,
|
|
41
|
+
[SEE_OTHER_303_STATUS_CODE]: SEE_OTHER_303_STATUS_MESSAGE,
|
|
42
|
+
[FORBIDDEN_403_STATUS_CODE]: FORBIDDEN_403_STATUS_MESSAGE,
|
|
43
|
+
[NOT_FOUND_404_STATUS_CODE]: NOT_FOUND_404_STATUS_MESSAGE,
|
|
44
|
+
[NO_CONTENT_204_STATUS_CODE]: NO_CONTENT_204_STATUS_MESSAGE,
|
|
45
|
+
[BAD_GATEWAY_502_STATUS_CODE]: BAD_GATEWAY_502_STATUS_MESSAGE,
|
|
46
|
+
[BAD_REQUEST_400_STATUS_CODE]: BAD_REQUEST_400_STATUS_MESSAGE,
|
|
47
|
+
[UNAUTHORIZED_401_STATUS_CODE]: UNAUTHORIZED_401_STATUS_MESSAGE,
|
|
48
|
+
[REQUEST_TIMEOUT_408_STATUS_CODE]: REQUEST_TIMEOUT_408_STATUS_MESSAGE,
|
|
49
|
+
[TOO_MANY_REQUESTS_429_STATUS_CODE]: TOO_MANY_REQUESTS_429_STATUS_MESSAGE,
|
|
50
|
+
[SERVICE_UNAVAILABLE_503_STATUS_CODE]: SERVICE_UNAVAILABLE_503_STATUS_MESSAGE,
|
|
51
|
+
[INTERNAL_SERVER_ERROR_500_STATUS_CODE]: INTERNAL_SERVER_ERROR_500_STATUS_MESSAGE
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
function statusMessageFromStatusCode(statusCode) {
|
|
55
|
+
const statusMessage = statusMap[statusCode];
|
|
56
|
+
|
|
57
|
+
return statusMessage;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
module.exports = {
|
|
61
|
+
statusMessageFromStatusCode
|
|
62
|
+
};
|
package/lib/browser.js
CHANGED
|
@@ -15,9 +15,6 @@ _export(exports, {
|
|
|
15
15
|
Files: function() {
|
|
16
16
|
return _files.default;
|
|
17
17
|
},
|
|
18
|
-
types: function() {
|
|
19
|
-
return _types.default;
|
|
20
|
-
},
|
|
21
18
|
Version: function() {
|
|
22
19
|
return _version.default;
|
|
23
20
|
},
|
|
@@ -33,8 +30,14 @@ _export(exports, {
|
|
|
33
30
|
Projects: function() {
|
|
34
31
|
return _projects.default;
|
|
35
32
|
},
|
|
36
|
-
|
|
37
|
-
return
|
|
33
|
+
Dependency: function() {
|
|
34
|
+
return _dependency.default;
|
|
35
|
+
},
|
|
36
|
+
Dependencies: function() {
|
|
37
|
+
return _dependencies.default;
|
|
38
|
+
},
|
|
39
|
+
ShortenedVersion: function() {
|
|
40
|
+
return _shortenedVersion.default;
|
|
38
41
|
},
|
|
39
42
|
nameUtilities: function() {
|
|
40
43
|
return _name.default;
|
|
@@ -44,24 +47,29 @@ _export(exports, {
|
|
|
44
47
|
},
|
|
45
48
|
filePathUtilities: function() {
|
|
46
49
|
return _filePath.default;
|
|
50
|
+
},
|
|
51
|
+
metaJSONUtilities: function() {
|
|
52
|
+
return _metaJSON.default;
|
|
47
53
|
}
|
|
48
54
|
});
|
|
49
55
|
var _file = /*#__PURE__*/ _interopRequireDefault(require("./file"));
|
|
50
56
|
var _files = /*#__PURE__*/ _interopRequireDefault(require("./files"));
|
|
51
|
-
var _types = /*#__PURE__*/ _interopRequireDefault(require("./types"));
|
|
52
57
|
var _version = /*#__PURE__*/ _interopRequireDefault(require("./version"));
|
|
53
58
|
var _release = /*#__PURE__*/ _interopRequireDefault(require("./release"));
|
|
54
59
|
var _entries = /*#__PURE__*/ _interopRequireDefault(require("./entries"));
|
|
55
60
|
var _project = /*#__PURE__*/ _interopRequireDefault(require("./project"));
|
|
56
61
|
var _projects = /*#__PURE__*/ _interopRequireDefault(require("./projects"));
|
|
57
|
-
var
|
|
62
|
+
var _dependency = /*#__PURE__*/ _interopRequireDefault(require("./dependency"));
|
|
63
|
+
var _dependencies = /*#__PURE__*/ _interopRequireDefault(require("./dependencies"));
|
|
64
|
+
var _shortenedVersion = /*#__PURE__*/ _interopRequireDefault(require("./shortenedVersion"));
|
|
58
65
|
var _name = /*#__PURE__*/ _interopRequireDefault(require("./utilities/name"));
|
|
59
66
|
var _content = /*#__PURE__*/ _interopRequireDefault(require("./utilities/content"));
|
|
60
67
|
var _filePath = /*#__PURE__*/ _interopRequireDefault(require("./utilities/filePath"));
|
|
68
|
+
var _metaJSON = /*#__PURE__*/ _interopRequireDefault(require("./utilities/metaJSON"));
|
|
61
69
|
function _interopRequireDefault(obj) {
|
|
62
70
|
return obj && obj.__esModule ? obj : {
|
|
63
71
|
default: obj
|
|
64
72
|
};
|
|
65
73
|
}
|
|
66
74
|
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlIH0gZnJvbSBcIi4vZmlsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlcyB9IGZyb20gXCIuL2ZpbGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZlcnNpb24gfSBmcm9tIFwiLi92ZXJzaW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlbGVhc2UgfSBmcm9tIFwiLi9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVudHJpZXMgfSBmcm9tIFwiLi9lbnRyaWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFByb2plY3QgfSBmcm9tIFwiLi9wcm9qZWN0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFByb2plY3RzIH0gZnJvbSBcIi4vcHJvamVjdHNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVwZW5kZW5jeSB9IGZyb20gXCIuL2RlcGVuZGVuY3lcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vZGVwZW5kZW5jaWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNob3J0ZW5lZFZlcnNpb24gfSBmcm9tIFwiLi9zaG9ydGVuZWRWZXJzaW9uXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgbmFtZVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9uYW1lXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbnRlbnRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY29udGVudFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbGVQYXRoVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2ZpbGVQYXRoXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG1ldGFKU09OVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL21ldGFKU09OXCI7XG4iXSwibmFtZXMiOlsiRmlsZSIsIkZpbGVzIiwiVmVyc2lvbiIsIlJlbGVhc2UiLCJFbnRyaWVzIiwiUHJvamVjdCIsIlByb2plY3RzIiwiRGVwZW5kZW5jeSIsIkRlcGVuZGVuY2llcyIsIlNob3J0ZW5lZFZlcnNpb24iLCJuYW1lVXRpbGl0aWVzIiwiY29udGVudFV0aWxpdGllcyIsImZpbGVQYXRoVXRpbGl0aWVzIiwibWV0YUpTT05VdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxLQUFLO2VBQUxBLGNBQUs7O0lBQ0xDLE9BQU87ZUFBUEEsZ0JBQU87O0lBQ1BDLE9BQU87ZUFBUEEsZ0JBQU87O0lBQ1BDLE9BQU87ZUFBUEEsZ0JBQU87O0lBQ1BDLE9BQU87ZUFBUEEsZ0JBQU87O0lBQ1BDLFFBQVE7ZUFBUkEsaUJBQVE7O0lBQ1JDLFVBQVU7ZUFBVkEsbUJBQVU7O0lBQ1ZDLFlBQVk7ZUFBWkEscUJBQVk7O0lBQ1pDLGdCQUFnQjtlQUFoQkEseUJBQWdCOztJQUVoQkMsYUFBYTtlQUFiQSxhQUFhOztJQUNiQyxnQkFBZ0I7ZUFBaEJBLGdCQUFnQjs7SUFFaEJDLGlCQUFpQjtlQUFqQkEsaUJBQWlCOztJQUNqQkMsaUJBQWlCO2VBQWpCQSxpQkFBaUI7Ozt5REFmTDswREFDQzs0REFDRTs0REFDQTs0REFDQTs0REFDQTs2REFDQzsrREFDRTtpRUFDRTtxRUFDSTt5REFFSDs0REFDRzs2REFFQzs2REFDQSJ9
|
package/lib/constants.js
CHANGED
|
@@ -9,6 +9,9 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
EMPTY_STRING: function() {
|
|
13
|
+
return EMPTY_STRING;
|
|
14
|
+
},
|
|
12
15
|
DOUBLE_SPACE: function() {
|
|
13
16
|
return DOUBLE_SPACE;
|
|
14
17
|
},
|
|
@@ -16,7 +19,8 @@ _export(exports, {
|
|
|
16
19
|
return ENTRIES_MAXIMUM_ARRAY_LENGTH;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
22
|
+
var EMPTY_STRING = "";
|
|
19
23
|
var DOUBLE_SPACE = " ";
|
|
20
24
|
var ENTRIES_MAXIMUM_ARRAY_LENGTH = 1024;
|
|
21
25
|
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9TVFJJTkcgPSBcIlwiO1xuZXhwb3J0IGNvbnN0IERPVUJMRV9TUEFDRSA9IFwiICBcIjtcbmV4cG9ydCBjb25zdCBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIID0gMTAyNDtcbiJdLCJuYW1lcyI6WyJFTVBUWV9TVFJJTkciLCJET1VCTEVfU1BBQ0UiLCJFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFYUEsWUFBWTtlQUFaQTs7SUFDQUMsWUFBWTtlQUFaQTs7SUFDQUMsNEJBQTRCO2VBQTVCQTs7O0FBRk4sSUFBTUYsZUFBZTtBQUNyQixJQUFNQyxlQUFlO0FBQ3JCLElBQU1DLCtCQUErQiJ9
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Dependencies;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _dependency = /*#__PURE__*/ _interopRequireDefault(require("./dependency"));
|
|
12
|
+
function _classCallCheck(instance, Constructor) {
|
|
13
|
+
if (!(instance instanceof Constructor)) {
|
|
14
|
+
throw new TypeError("Cannot call a class as a function");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function _defineProperties(target, props) {
|
|
18
|
+
for(var i = 0; i < props.length; i++){
|
|
19
|
+
var descriptor = props[i];
|
|
20
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
21
|
+
descriptor.configurable = true;
|
|
22
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
23
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
27
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
+
return Constructor;
|
|
30
|
+
}
|
|
31
|
+
function _interopRequireDefault(obj) {
|
|
32
|
+
return obj && obj.__esModule ? obj : {
|
|
33
|
+
default: obj
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
var Dependencies = /*#__PURE__*/ function() {
|
|
37
|
+
function Dependencies(array) {
|
|
38
|
+
_classCallCheck(this, Dependencies);
|
|
39
|
+
this.array = array;
|
|
40
|
+
}
|
|
41
|
+
_createClass(Dependencies, [
|
|
42
|
+
{
|
|
43
|
+
key: "toJSON",
|
|
44
|
+
value: function toJSON() {
|
|
45
|
+
var dependenciesJSON = this.array.map(function(dependency) {
|
|
46
|
+
var dependencyJSON = dependency.toJSON();
|
|
47
|
+
return dependencyJSON;
|
|
48
|
+
}), json = dependenciesJSON; ///
|
|
49
|
+
return json;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
], [
|
|
53
|
+
{
|
|
54
|
+
key: "fromJSON",
|
|
55
|
+
value: function fromJSON(json) {
|
|
56
|
+
var dependenciesJSON = json, array = dependenciesJSON.map(function(dependencyJSON) {
|
|
57
|
+
var _$json = dependencyJSON, dependency = _dependency.default.fromJSON(_$json);
|
|
58
|
+
return dependency;
|
|
59
|
+
}), dependencies = new Dependencies(array);
|
|
60
|
+
return dependencies;
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
key: "fromNothing",
|
|
65
|
+
value: function fromNothing() {
|
|
66
|
+
var array = [], dependencies = new Dependencies(array);
|
|
67
|
+
return dependencies;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]);
|
|
71
|
+
return Dependencies;
|
|
72
|
+
}();
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBlbmRlbmNpZXMuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBEZXBlbmRlbmN5IGZyb20gXCIuL2RlcGVuZGVuY3lcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVwZW5kZW5jaWVzIHtcbiAgY29uc3RydWN0b3IoYXJyYXkpIHtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzSlNPTiA9IHRoaXMuYXJyYXkubWFwKChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5SlNPTiA9IGRlcGVuZGVuY3kudG9KU09OKCk7XG4gIFxuICAgICAgICAgICAgcmV0dXJuIGRlcGVuZGVuY3lKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGpzb24gPSBkZXBlbmRlbmNpZXNKU09OOyAvLy9cblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXNKU09OID0ganNvbiwgLy8vXG4gICAgICAgICAgYXJyYXkgPSBkZXBlbmRlbmNpZXNKU09OLm1hcCgoZGVwZW5kZW5jeUpTT04pID0+IHsgIC8vL1xuICAgICAgICAgICAgY29uc3QganNvbiA9IGRlcGVuZGVuY3lKU09OLCAgLy8vXG4gICAgICAgICAgICAgICAgICBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeS5mcm9tSlNPTihqc29uKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRlcGVuZGVuY3k7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzID0gbmV3IERlcGVuZGVuY2llcyhhcnJheSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jaWVzO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGFycmF5ID0gW10sXG4gICAgICAgICAgZGVwZW5kZW5jaWVzID0gbmV3IERlcGVuZGVuY2llcyhhcnJheSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jaWVzO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkRlcGVuZGVuY2llcyIsImFycmF5IiwidG9KU09OIiwiZGVwZW5kZW5jaWVzSlNPTiIsIm1hcCIsImRlcGVuZGVuY3kiLCJkZXBlbmRlbmN5SlNPTiIsImpzb24iLCJmcm9tSlNPTiIsIkRlcGVuZGVuY3kiLCJkZXBlbmRlbmNpZXMiLCJmcm9tTm90aGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFJcUJBOzs7K0RBRkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUixJQUFBLEFBQU1BLDZCQUFOO2FBQU1BLGFBQ1BDLEtBQUs7OEJBREVEO1FBRWpCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTs7aUJBRklEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVM7Z0JBQ1AsSUFBTUMsbUJBQW1CLElBQUksQ0FBQ0YsS0FBSyxDQUFDRyxHQUFHLENBQUMsU0FBQ0MsWUFBZTtvQkFDaEQsSUFBTUMsaUJBQWlCRCxXQUFXSCxNQUFNO29CQUV4QyxPQUFPSTtnQkFDVCxJQUNBQyxPQUFPSixrQkFBa0IsR0FBRztnQkFFbEMsT0FBT0k7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUU7Z0JBQ3BCLElBQU1KLG1CQUFtQkksTUFDbkJOLFFBQVFFLGlCQUFpQkMsR0FBRyxDQUFDLFNBQUNFLGdCQUFtQjtvQkFDL0MsSUFBTUMsU0FBT0QsZ0JBQ1BELGFBQWFJLG1CQUFVLENBQUNELFFBQVEsQ0FBQ0Q7b0JBRXZDLE9BQU9GO2dCQUNULElBQ0FLLGVBQWUsSUF4QkpWLGFBd0JxQkM7Z0JBRXRDLE9BQU9TO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxjQUFjO2dCQUNuQixJQUFNVixRQUFRLEVBQUUsRUFDVlMsZUFBZSxJQS9CSlYsYUErQnFCQztnQkFFdEMsT0FBT1M7WUFDVDs7O1dBbENtQlYifQ==
|