@k-int/bruno-shared-scripts 1.0.0 → 1.1.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.
- package/es/index.js +191 -80
- package/package.json +1 -1
- package/src/auth/login.js +41 -27
- package/src/folioRequest.js +26 -0
- package/src/index.js +1 -0
- package/src/utils/config.js +11 -0
- package/src/utils/index.js +2 -1
package/es/index.js
CHANGED
|
@@ -2,6 +2,9 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __esm = (fn, res) => function __init() {
|
|
6
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
7
|
+
};
|
|
5
8
|
var __export = (target, all) => {
|
|
6
9
|
for (var name in all)
|
|
7
10
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,12 +19,180 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
19
|
};
|
|
17
20
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
21
|
|
|
22
|
+
// src/utils/baseUrl.js
|
|
23
|
+
var okapiProtocol, okapiUrl, okapiPort, getBaseUrl, setBaseUrl;
|
|
24
|
+
var init_baseUrl = __esm({
|
|
25
|
+
"src/utils/baseUrl.js"() {
|
|
26
|
+
okapiProtocol = bru.getEnvVar("okapiProtocol");
|
|
27
|
+
okapiUrl = bru.getEnvVar("okapiUrl");
|
|
28
|
+
okapiPort = bru.getEnvVar("okapiPort");
|
|
29
|
+
getBaseUrl = () => {
|
|
30
|
+
return bru.getEnvVar("baseUrl");
|
|
31
|
+
};
|
|
32
|
+
setBaseUrl = () => {
|
|
33
|
+
const baseUrl = `${okapiProtocol}://${okapiUrl}${okapiPort ? ":" + okapiPort : ""}`;
|
|
34
|
+
bru.setEnvVar("baseUrl", baseUrl);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// src/auth/auth-utils.js
|
|
40
|
+
var getTenant, getToken, getIgnoreCreds, getUserName, getPassword, getCreds;
|
|
41
|
+
var init_auth_utils = __esm({
|
|
42
|
+
"src/auth/auth-utils.js"() {
|
|
43
|
+
getTenant = () => {
|
|
44
|
+
return bru.getEnvVar("x-okapi-tenant-value");
|
|
45
|
+
};
|
|
46
|
+
getToken = () => {
|
|
47
|
+
return bru.getVar("x-okapi-token");
|
|
48
|
+
};
|
|
49
|
+
getIgnoreCreds = () => {
|
|
50
|
+
return bru.getEnvVar("ignoreCreds");
|
|
51
|
+
};
|
|
52
|
+
getUserName = () => {
|
|
53
|
+
return bru.getEnvVar("username");
|
|
54
|
+
};
|
|
55
|
+
getPassword = () => {
|
|
56
|
+
return bru.getEnvVar("password");
|
|
57
|
+
};
|
|
58
|
+
getCreds = () => {
|
|
59
|
+
const username = getUserName();
|
|
60
|
+
const password = getPassword();
|
|
61
|
+
return {
|
|
62
|
+
username,
|
|
63
|
+
password
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// src/auth/login.js
|
|
70
|
+
var axios, getLoginWithExpiryUrl, getLoginUrl, doALogin, loginFunc, login, loginWithExpiry;
|
|
71
|
+
var init_login = __esm({
|
|
72
|
+
"src/auth/login.js"() {
|
|
73
|
+
init_utils();
|
|
74
|
+
init_auth_utils();
|
|
75
|
+
axios = require("axios");
|
|
76
|
+
getLoginWithExpiryUrl = () => {
|
|
77
|
+
const baseUrl = getBaseUrl();
|
|
78
|
+
return `${baseUrl}/bl-users/login-with-expiry`;
|
|
79
|
+
};
|
|
80
|
+
getLoginUrl = () => {
|
|
81
|
+
const baseUrl = getBaseUrl();
|
|
82
|
+
return `${baseUrl}/authn/login`;
|
|
83
|
+
};
|
|
84
|
+
doALogin = async ({
|
|
85
|
+
urlOverride = void 0,
|
|
86
|
+
withExpiry = true,
|
|
87
|
+
suppressConsole = true
|
|
88
|
+
} = {}) => {
|
|
89
|
+
!suppressConsole && console.log(`doALogin(${urlOverride}, ${withExpiry})`);
|
|
90
|
+
const ignoreCreds = getIgnoreCreds();
|
|
91
|
+
const preExistingHeaders = req.getHeaders();
|
|
92
|
+
const preExistingTenant = preExistingHeaders[Object.keys(preExistingHeaders).find((key) => key.toLowerCase() === "X-Okapi-Tenant".toLowerCase())];
|
|
93
|
+
if (!preExistingTenant) {
|
|
94
|
+
req.setHeader("x-okapi-tenant", getTenant());
|
|
95
|
+
}
|
|
96
|
+
if (!ignoreCreds || ignoreCreds === false) {
|
|
97
|
+
const url = urlOverride ?? (withExpiry ? getLoginWithExpiryUrl() : getLoginUrl());
|
|
98
|
+
const creds = getCreds();
|
|
99
|
+
const tenant = getTenant();
|
|
100
|
+
const config = getBaseRequestConfig();
|
|
101
|
+
!suppressConsole && console.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
|
|
102
|
+
return await axios.post(
|
|
103
|
+
url,
|
|
104
|
+
creds,
|
|
105
|
+
config
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
loginFunc = async ({
|
|
110
|
+
urlOverride = void 0,
|
|
111
|
+
withExpiry = true,
|
|
112
|
+
suppressConsole = true
|
|
113
|
+
} = {}) => {
|
|
114
|
+
!suppressConsole && console.log(`loginFunc(${urlOverride}, ${withExpiry})`);
|
|
115
|
+
await doALogin({ urlOverride, withExpiry, suppressConsole }).then((loginResp) => {
|
|
116
|
+
!suppressConsole && console.log("Setting request headers...");
|
|
117
|
+
req.setHeader("Cookie", loginResp.headers["set-cookie"]);
|
|
118
|
+
const token = loginResp.headers["x-okapi-token"];
|
|
119
|
+
bru.setVar("x-okapi-token-value", token);
|
|
120
|
+
if (!withExpiry) {
|
|
121
|
+
req.setHeader("x-okapi-token", getToken());
|
|
122
|
+
}
|
|
123
|
+
}).catch((err) => {
|
|
124
|
+
console.error("Failed to login to folio: %o", err);
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
login = (urlOverride) => loginFunc({ urlOverride, withExpiry: false });
|
|
128
|
+
loginWithExpiry = (urlOverride) => loginFunc({ urlOverride });
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
// src/auth/index.js
|
|
133
|
+
var auth_exports = {};
|
|
134
|
+
__export(auth_exports, {
|
|
135
|
+
doALogin: () => doALogin,
|
|
136
|
+
getCreds: () => getCreds,
|
|
137
|
+
getIgnoreCreds: () => getIgnoreCreds,
|
|
138
|
+
getLoginUrl: () => getLoginUrl,
|
|
139
|
+
getLoginWithExpiryUrl: () => getLoginWithExpiryUrl,
|
|
140
|
+
getPassword: () => getPassword,
|
|
141
|
+
getTenant: () => getTenant,
|
|
142
|
+
getToken: () => getToken,
|
|
143
|
+
getUserName: () => getUserName,
|
|
144
|
+
login: () => login,
|
|
145
|
+
loginWithExpiry: () => loginWithExpiry
|
|
146
|
+
});
|
|
147
|
+
var init_auth = __esm({
|
|
148
|
+
"src/auth/index.js"() {
|
|
149
|
+
init_login();
|
|
150
|
+
init_auth_utils();
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// src/utils/config.js
|
|
155
|
+
var getBaseRequestConfig;
|
|
156
|
+
var init_config = __esm({
|
|
157
|
+
"src/utils/config.js"() {
|
|
158
|
+
init_auth();
|
|
159
|
+
getBaseRequestConfig = () => {
|
|
160
|
+
const tenant = getTenant();
|
|
161
|
+
return {
|
|
162
|
+
headers: {
|
|
163
|
+
"Content-type": "application/json",
|
|
164
|
+
"x-okapi-tenant": tenant
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
// src/utils/index.js
|
|
172
|
+
var utils_exports = {};
|
|
173
|
+
__export(utils_exports, {
|
|
174
|
+
getBaseRequestConfig: () => getBaseRequestConfig,
|
|
175
|
+
getBaseUrl: () => getBaseUrl,
|
|
176
|
+
setBaseUrl: () => setBaseUrl
|
|
177
|
+
});
|
|
178
|
+
var init_utils = __esm({
|
|
179
|
+
"src/utils/index.js"() {
|
|
180
|
+
init_baseUrl();
|
|
181
|
+
init_config();
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
|
|
19
185
|
// src/index.js
|
|
20
186
|
var index_exports = {};
|
|
21
187
|
__export(index_exports, {
|
|
188
|
+
doALogin: () => doALogin,
|
|
189
|
+
getBaseRequestConfig: () => getBaseRequestConfig,
|
|
22
190
|
getBaseUrl: () => getBaseUrl,
|
|
23
191
|
getCreds: () => getCreds,
|
|
192
|
+
getFolioAxios: () => getFolioAxios,
|
|
24
193
|
getIgnoreCreds: () => getIgnoreCreds,
|
|
194
|
+
getLoginUrl: () => getLoginUrl,
|
|
195
|
+
getLoginWithExpiryUrl: () => getLoginWithExpiryUrl,
|
|
25
196
|
getPassword: () => getPassword,
|
|
26
197
|
getTenant: () => getTenant,
|
|
27
198
|
getToken: () => getToken,
|
|
@@ -31,87 +202,27 @@ __export(index_exports, {
|
|
|
31
202
|
setBaseUrl: () => setBaseUrl
|
|
32
203
|
});
|
|
33
204
|
module.exports = __toCommonJS(index_exports);
|
|
205
|
+
init_utils();
|
|
206
|
+
init_auth();
|
|
34
207
|
|
|
35
|
-
// src/
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
});
|
|
208
|
+
// src/folioRequest.js
|
|
209
|
+
var { doALogin: doALogin2 } = (init_auth(), __toCommonJS(auth_exports));
|
|
210
|
+
var axios2 = require("axios");
|
|
211
|
+
var { getBaseRequestConfig: getBaseRequestConfig2 } = (init_utils(), __toCommonJS(utils_exports));
|
|
212
|
+
var getFolioAxios = async ({
|
|
213
|
+
urlOverride = void 0,
|
|
214
|
+
withExpiry = true,
|
|
215
|
+
suppressConsole = true
|
|
216
|
+
} = {}) => {
|
|
217
|
+
return doALogin2({ urlOverride, withExpiry, suppressConsole }).then((loginResp) => {
|
|
218
|
+
const config = getBaseRequestConfig2();
|
|
219
|
+
config.headers.Cookie = loginResp.headers["set-cookie"];
|
|
111
220
|
if (!withExpiry) {
|
|
112
|
-
|
|
221
|
+
config.headers["x-okapi-token"] = loginResp.headers["x-okapi-token"];
|
|
113
222
|
}
|
|
114
|
-
|
|
223
|
+
!suppressConsole && console.log("folioRequest ready with config: %o", config);
|
|
224
|
+
return axios2.create(config);
|
|
225
|
+
}).catch((err) => {
|
|
226
|
+
console.error("Failed to login to folio: %o", err);
|
|
227
|
+
});
|
|
115
228
|
};
|
|
116
|
-
var login = (urlOverride) => loginFunc(urlOverride, false);
|
|
117
|
-
var loginWithExpiry = (urlOverride) => loginFunc(urlOverride);
|
package/package.json
CHANGED
package/src/auth/login.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//import axios from 'axios';
|
|
2
|
-
import { getBaseUrl } from "../utils";
|
|
2
|
+
import { getBaseRequestConfig, getBaseUrl } from "../utils";
|
|
3
3
|
import { getCreds, getIgnoreCreds, getTenant, getToken } from './auth-utils';
|
|
4
4
|
|
|
5
5
|
const axios = require('axios'); // This comes from bruno context...
|
|
@@ -15,15 +15,21 @@ const getLoginUrl = () => {
|
|
|
15
15
|
return `${baseUrl}/authn/login`;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
const
|
|
18
|
+
const doALogin = async ({
|
|
19
|
+
urlOverride = undefined,
|
|
20
|
+
withExpiry = true,
|
|
21
|
+
suppressConsole = true
|
|
22
|
+
} = {}) => {
|
|
23
|
+
!suppressConsole && console.log(`doALogin(${urlOverride}, ${withExpiry})`);
|
|
24
|
+
|
|
19
25
|
const ignoreCreds = getIgnoreCreds();
|
|
20
|
-
console.log("URL OVERRIDE: %o", urlOverride)
|
|
26
|
+
//console.log("URL OVERRIDE: %o", urlOverride)
|
|
21
27
|
|
|
22
28
|
// Ensure that x-okapi-tenant is set if NOT set by request
|
|
23
29
|
const preExistingHeaders = req.getHeaders();
|
|
24
30
|
const preExistingTenant = preExistingHeaders[
|
|
25
31
|
Object.keys(preExistingHeaders).find((key) => key.toLowerCase() === 'X-Okapi-Tenant'.toLowerCase())
|
|
26
|
-
|
|
32
|
+
] // Make sure this is case insensitive
|
|
27
33
|
|
|
28
34
|
if (!preExistingTenant) {
|
|
29
35
|
req.setHeader('x-okapi-tenant', getTenant()) // Keep an eye on this in PM we needed some funky stuff for "disabled" headers
|
|
@@ -34,42 +40,50 @@ const loginFunc = async (urlOverride = undefined, withExpiry = true) => {
|
|
|
34
40
|
const url = urlOverride ?? (withExpiry ? getLoginWithExpiryUrl() : getLoginUrl());
|
|
35
41
|
const creds = getCreds();
|
|
36
42
|
const tenant = getTenant();
|
|
37
|
-
|
|
43
|
+
const config = getBaseRequestConfig();
|
|
44
|
+
!suppressConsole && console.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
|
|
38
45
|
|
|
39
|
-
await axios.post(
|
|
46
|
+
return await axios.post(
|
|
40
47
|
url,
|
|
41
48
|
creds,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
},
|
|
47
|
-
}
|
|
48
|
-
).then((internalResp) => {
|
|
49
|
-
//console.log("HEADERS: %o", internalResp.headers)
|
|
49
|
+
config
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
50
53
|
|
|
54
|
+
const loginFunc = async ({
|
|
55
|
+
urlOverride = undefined,
|
|
56
|
+
withExpiry = true,
|
|
57
|
+
suppressConsole = true
|
|
58
|
+
} = {}) => {
|
|
59
|
+
!suppressConsole && console.log(`loginFunc(${urlOverride}, ${withExpiry})`);
|
|
60
|
+
await doALogin({ urlOverride, withExpiry, suppressConsole })
|
|
61
|
+
.then((loginResp) => {
|
|
62
|
+
!suppressConsole && console.log("Setting request headers...")
|
|
51
63
|
// We can't seem to set the cookie jar programatically, so directly set cookies on request instead
|
|
52
|
-
req.setHeader('Cookie',
|
|
53
|
-
|
|
54
|
-
const token =
|
|
64
|
+
req.setHeader('Cookie', loginResp.headers["set-cookie"])
|
|
65
|
+
|
|
66
|
+
const token = loginResp.headers["x-okapi-token"]
|
|
55
67
|
bru.setVar("x-okapi-token-value", token)
|
|
68
|
+
|
|
69
|
+
if (!withExpiry) {
|
|
70
|
+
// This is only populated on login, not login with expiry
|
|
71
|
+
req.setHeader('x-okapi-token', getToken())
|
|
72
|
+
}
|
|
56
73
|
})
|
|
57
74
|
.catch(err => {
|
|
58
|
-
console.error("
|
|
75
|
+
console.error("Failed to login to folio: %o", err)
|
|
59
76
|
});
|
|
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
|
-
};
|
|
77
|
+
}
|
|
67
78
|
|
|
68
|
-
const login = (urlOverride) => loginFunc(urlOverride, false);
|
|
69
|
-
const loginWithExpiry = (urlOverride) => loginFunc(urlOverride);
|
|
79
|
+
const login = (urlOverride) => loginFunc({ urlOverride, withExpiry: false });
|
|
80
|
+
const loginWithExpiry = (urlOverride) => loginFunc({ urlOverride });
|
|
70
81
|
|
|
71
82
|
export {
|
|
83
|
+
doALogin,
|
|
72
84
|
getTenant,
|
|
85
|
+
getLoginWithExpiryUrl,
|
|
86
|
+
getLoginUrl,
|
|
73
87
|
login,
|
|
74
88
|
loginWithExpiry,
|
|
75
89
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const { doALogin } = require('./auth');
|
|
2
|
+
|
|
3
|
+
const axios = require('axios');
|
|
4
|
+
const { getBaseRequestConfig } = require('./utils');
|
|
5
|
+
|
|
6
|
+
export const getFolioAxios = async ({
|
|
7
|
+
urlOverride = undefined,
|
|
8
|
+
withExpiry = true,
|
|
9
|
+
suppressConsole = true
|
|
10
|
+
} = {}) => {
|
|
11
|
+
return doALogin({ urlOverride, withExpiry, suppressConsole }).then(loginResp => {
|
|
12
|
+
|
|
13
|
+
const config = getBaseRequestConfig()
|
|
14
|
+
config.headers.Cookie = loginResp.headers["set-cookie"]
|
|
15
|
+
|
|
16
|
+
if (!withExpiry) {
|
|
17
|
+
// This is only populated on login, not login with expiry
|
|
18
|
+
config.headers['x-okapi-token'] = loginResp.headers["x-okapi-token"]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
!suppressConsole && console.log("folioRequest ready with config: %o", config);
|
|
22
|
+
return axios.create(config);
|
|
23
|
+
}).catch(err => {
|
|
24
|
+
console.error("Failed to login to folio: %o", err)
|
|
25
|
+
})
|
|
26
|
+
}
|
package/src/index.js
CHANGED
package/src/utils/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from './baseUrl.js';
|
|
1
|
+
export * from './baseUrl.js';
|
|
2
|
+
export * from './config.js';
|