@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 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,2 @@
1
+ export * from './login';
2
+ export * from './auth-utils';
@@ -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,2 @@
1
+ export * from './utils';
2
+ export * from './auth';
@@ -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';