@k-int/bruno-shared-scripts 1.0.0 → 1.1.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 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
+ ).catch((err) => {
107
+ console.error("Failed to login to FOLIO: %o", err);
108
+ });
109
+ }
110
+ };
111
+ loginFunc = async ({
112
+ urlOverride = void 0,
113
+ withExpiry = true,
114
+ suppressConsole = true
115
+ } = {}) => {
116
+ !suppressConsole && console.log(`loginFunc(${urlOverride}, ${withExpiry})`);
117
+ await doALogin({ urlOverride, withExpiry, suppressConsole }).then((loginResp) => {
118
+ !suppressConsole && console.log("Setting request headers...");
119
+ req.setHeader("Cookie", loginResp.headers["set-cookie"]);
120
+ const token = loginResp.headers["x-okapi-token"];
121
+ bru.setVar("x-okapi-token-value", token);
122
+ if (!withExpiry) {
123
+ req.setHeader("x-okapi-token", getToken());
124
+ }
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,25 @@ __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/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
- });
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
- req.setHeader("x-okapi-token", getToken());
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
+ });
115
226
  };
116
- var login = (urlOverride) => loginFunc(urlOverride, false);
117
- var loginWithExpiry = (urlOverride) => loginFunc(urlOverride);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k-int/bruno-shared-scripts",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "exports": "./es/index.js",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
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 loginFunc = async (urlOverride = undefined, withExpiry = true) => {
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
- ] // Make sure this is case insensitive
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
- console.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
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
- headers: {
44
- "Content-type": "application/json",
45
- "x-okapi-tenant": tenant
46
- },
47
- }
48
- ).then((internalResp) => {
49
- //console.log("HEADERS: %o", internalResp.headers)
49
+ config
50
+ )
51
+ .catch(err => {
52
+ console.error("Failed to login to FOLIO: %o", err);
53
+ });
54
+ }
55
+ }
50
56
 
57
+ const loginFunc = async ({
58
+ urlOverride = undefined,
59
+ withExpiry = true,
60
+ suppressConsole = true
61
+ } = {}) => {
62
+ !suppressConsole && console.log(`loginFunc(${urlOverride}, ${withExpiry})`);
63
+ await doALogin({ urlOverride, withExpiry, suppressConsole })
64
+ .then((loginResp) => {
65
+ !suppressConsole && console.log("Setting request headers...")
51
66
  // 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"]
67
+ req.setHeader('Cookie', loginResp.headers["set-cookie"])
68
+
69
+ const token = loginResp.headers["x-okapi-token"]
55
70
  bru.setVar("x-okapi-token-value", token)
56
- })
57
- .catch(err => {
58
- console.error("WHAT HAPPENED HERE: %o", err);
71
+
72
+ if (!withExpiry) {
73
+ // This is only populated on login, not login with expiry
74
+ req.setHeader('x-okapi-token', getToken())
75
+ }
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,24 @@
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
+ })
24
+ }
package/src/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './utils';
2
2
  export * from './auth';
3
+ export * from './folioRequest';
@@ -0,0 +1,11 @@
1
+ import { getTenant } from '../auth';
2
+
3
+ export const getBaseRequestConfig = () => {
4
+ const tenant = getTenant();
5
+ return {
6
+ headers: {
7
+ "Content-type": "application/json",
8
+ "x-okapi-tenant": tenant
9
+ },
10
+ }
11
+ }
@@ -1 +1,2 @@
1
- export * from './baseUrl.js';
1
+ export * from './baseUrl.js';
2
+ export * from './config.js';