@k-int/bruno-shared-scripts 1.0.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.
- package/es/index.js +117 -0
- package/package.json +14 -0
- package/src/auth/auth-utils.js +38 -0
- package/src/auth/index.js +2 -0
- package/src/auth/login.js +75 -0
- package/src/index.js +2 -0
- package/src/utils/baseUrl.js +18 -0
- package/src/utils/index.js +1 -0
package/es/index.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/index.js
|
|
20
|
+
var index_exports = {};
|
|
21
|
+
__export(index_exports, {
|
|
22
|
+
getBaseUrl: () => getBaseUrl,
|
|
23
|
+
getCreds: () => getCreds,
|
|
24
|
+
getIgnoreCreds: () => getIgnoreCreds,
|
|
25
|
+
getPassword: () => getPassword,
|
|
26
|
+
getTenant: () => getTenant,
|
|
27
|
+
getToken: () => getToken,
|
|
28
|
+
getUserName: () => getUserName,
|
|
29
|
+
login: () => login,
|
|
30
|
+
loginWithExpiry: () => loginWithExpiry,
|
|
31
|
+
setBaseUrl: () => setBaseUrl
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(index_exports);
|
|
34
|
+
|
|
35
|
+
// src/utils/baseUrl.js
|
|
36
|
+
var okapiProtocol = bru.getEnvVar("okapiProtocol");
|
|
37
|
+
var okapiUrl = bru.getEnvVar("okapiUrl");
|
|
38
|
+
var okapiPort = bru.getEnvVar("okapiPort");
|
|
39
|
+
var getBaseUrl = () => {
|
|
40
|
+
return bru.getEnvVar("baseUrl");
|
|
41
|
+
};
|
|
42
|
+
var setBaseUrl = () => {
|
|
43
|
+
const baseUrl = `${okapiProtocol}://${okapiUrl}${okapiPort ? ":" + okapiPort : ""}`;
|
|
44
|
+
bru.setEnvVar("baseUrl", baseUrl);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// src/auth/auth-utils.js
|
|
48
|
+
var getTenant = () => {
|
|
49
|
+
return bru.getEnvVar("x-okapi-tenant-value");
|
|
50
|
+
};
|
|
51
|
+
var getToken = () => {
|
|
52
|
+
return bru.getVar("x-okapi-token");
|
|
53
|
+
};
|
|
54
|
+
var getIgnoreCreds = () => {
|
|
55
|
+
return bru.getEnvVar("ignoreCreds");
|
|
56
|
+
};
|
|
57
|
+
var getUserName = () => {
|
|
58
|
+
return bru.getEnvVar("username");
|
|
59
|
+
};
|
|
60
|
+
var getPassword = () => {
|
|
61
|
+
return bru.getEnvVar("password");
|
|
62
|
+
};
|
|
63
|
+
var getCreds = () => {
|
|
64
|
+
const username = getUserName();
|
|
65
|
+
const password = getPassword();
|
|
66
|
+
return {
|
|
67
|
+
username,
|
|
68
|
+
password
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// src/auth/login.js
|
|
73
|
+
var axios = require("axios");
|
|
74
|
+
var getLoginWithExpiryUrl = () => {
|
|
75
|
+
const baseUrl = getBaseUrl();
|
|
76
|
+
return `${baseUrl}/bl-users/login-with-expiry`;
|
|
77
|
+
};
|
|
78
|
+
var getLoginUrl = () => {
|
|
79
|
+
const baseUrl = getBaseUrl();
|
|
80
|
+
return `${baseUrl}/authn/login`;
|
|
81
|
+
};
|
|
82
|
+
var loginFunc = async (urlOverride = void 0, withExpiry = true) => {
|
|
83
|
+
const ignoreCreds = getIgnoreCreds();
|
|
84
|
+
console.log("URL OVERRIDE: %o", urlOverride);
|
|
85
|
+
const preExistingHeaders = req.getHeaders();
|
|
86
|
+
const preExistingTenant = preExistingHeaders[Object.keys(preExistingHeaders).find((key) => key.toLowerCase() === "X-Okapi-Tenant".toLowerCase())];
|
|
87
|
+
if (!preExistingTenant) {
|
|
88
|
+
req.setHeader("x-okapi-tenant", getTenant());
|
|
89
|
+
}
|
|
90
|
+
if (!ignoreCreds || ignoreCreds === false) {
|
|
91
|
+
const url = urlOverride ?? (withExpiry ? getLoginWithExpiryUrl() : getLoginUrl());
|
|
92
|
+
const creds = getCreds();
|
|
93
|
+
const tenant = getTenant();
|
|
94
|
+
console.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
|
|
95
|
+
await axios.post(
|
|
96
|
+
url,
|
|
97
|
+
creds,
|
|
98
|
+
{
|
|
99
|
+
headers: {
|
|
100
|
+
"Content-type": "application/json",
|
|
101
|
+
"x-okapi-tenant": tenant
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
).then((internalResp) => {
|
|
105
|
+
req.setHeader("Cookie", internalResp.headers["set-cookie"]);
|
|
106
|
+
const token = internalResp.headers["x-okapi-token"];
|
|
107
|
+
bru.setVar("x-okapi-token-value", token);
|
|
108
|
+
}).catch((err) => {
|
|
109
|
+
console.error("WHAT HAPPENED HERE: %o", err);
|
|
110
|
+
});
|
|
111
|
+
if (!withExpiry) {
|
|
112
|
+
req.setHeader("x-okapi-token", getToken());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
var login = (urlOverride) => loginFunc(urlOverride, false);
|
|
117
|
+
var loginWithExpiry = (urlOverride) => loginFunc(urlOverride);
|
package/package.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@k-int/bruno-shared-scripts",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"exports": "./es/index.js",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
|
+
"build": "esbuild ./src/index.js --bundle --format=cjs --outdir=es --external:axios"
|
|
10
|
+
},
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"esbuild": "^0.25.2"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const getTenant = () => {
|
|
2
|
+
return bru.getEnvVar("x-okapi-tenant-value")
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
const getToken = () => {
|
|
6
|
+
return bru.getVar("x-okapi-token")
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const getIgnoreCreds = () => {
|
|
10
|
+
return bru.getEnvVar("ignoreCreds")
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const getUserName = () => {
|
|
14
|
+
return bru.getEnvVar("username")
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const getPassword = () => {
|
|
18
|
+
return bru.getEnvVar("password")
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const getCreds = () => {
|
|
22
|
+
const username = getUserName();
|
|
23
|
+
const password = getPassword();
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
username,
|
|
27
|
+
password
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export {
|
|
32
|
+
getTenant,
|
|
33
|
+
getToken,
|
|
34
|
+
getIgnoreCreds,
|
|
35
|
+
getUserName,
|
|
36
|
+
getPassword,
|
|
37
|
+
getCreds
|
|
38
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//import axios from 'axios';
|
|
2
|
+
import { getBaseUrl } from "../utils";
|
|
3
|
+
import { getCreds, getIgnoreCreds, getTenant, getToken } from './auth-utils';
|
|
4
|
+
|
|
5
|
+
const axios = require('axios'); // This comes from bruno context...
|
|
6
|
+
|
|
7
|
+
// Right now login-with-expiry won't work against localhost
|
|
8
|
+
const getLoginWithExpiryUrl = () => {
|
|
9
|
+
const baseUrl = getBaseUrl();
|
|
10
|
+
return `${baseUrl}/bl-users/login-with-expiry`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const getLoginUrl = () => {
|
|
14
|
+
const baseUrl = getBaseUrl();
|
|
15
|
+
return `${baseUrl}/authn/login`;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const loginFunc = async (urlOverride = undefined, withExpiry = true) => {
|
|
19
|
+
const ignoreCreds = getIgnoreCreds();
|
|
20
|
+
console.log("URL OVERRIDE: %o", urlOverride)
|
|
21
|
+
|
|
22
|
+
// Ensure that x-okapi-tenant is set if NOT set by request
|
|
23
|
+
const preExistingHeaders = req.getHeaders();
|
|
24
|
+
const preExistingTenant = preExistingHeaders[
|
|
25
|
+
Object.keys(preExistingHeaders).find((key) => key.toLowerCase() === 'X-Okapi-Tenant'.toLowerCase())
|
|
26
|
+
] // Make sure this is case insensitive
|
|
27
|
+
|
|
28
|
+
if (!preExistingTenant) {
|
|
29
|
+
req.setHeader('x-okapi-tenant', getTenant()) // Keep an eye on this in PM we needed some funky stuff for "disabled" headers
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Way to ignore creds for local endpoints
|
|
33
|
+
if (!ignoreCreds || ignoreCreds === false) {
|
|
34
|
+
const url = urlOverride ?? (withExpiry ? getLoginWithExpiryUrl() : getLoginUrl());
|
|
35
|
+
const creds = getCreds();
|
|
36
|
+
const tenant = getTenant();
|
|
37
|
+
console.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
|
|
38
|
+
|
|
39
|
+
await axios.post(
|
|
40
|
+
url,
|
|
41
|
+
creds,
|
|
42
|
+
{
|
|
43
|
+
headers: {
|
|
44
|
+
"Content-type": "application/json",
|
|
45
|
+
"x-okapi-tenant": tenant
|
|
46
|
+
},
|
|
47
|
+
}
|
|
48
|
+
).then((internalResp) => {
|
|
49
|
+
//console.log("HEADERS: %o", internalResp.headers)
|
|
50
|
+
|
|
51
|
+
// We can't seem to set the cookie jar programatically, so directly set cookies on request instead
|
|
52
|
+
req.setHeader('Cookie', internalResp.headers["set-cookie"])
|
|
53
|
+
|
|
54
|
+
const token = internalResp.headers["x-okapi-token"]
|
|
55
|
+
bru.setVar("x-okapi-token-value", token)
|
|
56
|
+
})
|
|
57
|
+
.catch(err => {
|
|
58
|
+
console.error("WHAT HAPPENED HERE: %o", err);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
if (!withExpiry) {
|
|
62
|
+
// This is only populated on login, not login with expiry
|
|
63
|
+
req.setHeader('x-okapi-token', getToken())
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const login = (urlOverride) => loginFunc(urlOverride, false);
|
|
69
|
+
const loginWithExpiry = (urlOverride) => loginFunc(urlOverride);
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
getTenant,
|
|
73
|
+
login,
|
|
74
|
+
loginWithExpiry,
|
|
75
|
+
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const okapiProtocol = bru.getEnvVar('okapiProtocol');
|
|
2
|
+
const okapiUrl = bru.getEnvVar('okapiUrl');
|
|
3
|
+
const okapiPort = bru.getEnvVar('okapiPort');
|
|
4
|
+
|
|
5
|
+
const getBaseUrl = () => {
|
|
6
|
+
return bru.getEnvVar("baseUrl");
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const setBaseUrl = () => {
|
|
10
|
+
const baseUrl = `${okapiProtocol}://${okapiUrl}${okapiPort ? ':' + okapiPort : ''}`;
|
|
11
|
+
//console.log("WHAT IS BASEURL: %o", baseUrl)
|
|
12
|
+
bru.setEnvVar("baseUrl", baseUrl);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
getBaseUrl,
|
|
17
|
+
setBaseUrl,
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './baseUrl.js';
|