@domoinc/ryuu-proxy 4.4.0 → 5.0.0-beta.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/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -77
- package/dist/index.js.map +1 -1
- package/dist/lib/Transport/index.d.ts +10 -10
- package/dist/lib/Transport/index.d.ts.map +1 -0
- package/dist/lib/Transport/index.js +174 -192
- package/dist/lib/Transport/index.js.map +1 -1
- package/dist/lib/constants.d.ts +1 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/errors.d.ts +1 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +12 -31
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/models.d.ts +3 -2
- package/dist/lib/models.d.ts.map +1 -0
- package/dist/lib/utils/index.d.ts +3 -2
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +58 -35
- package/dist/lib/utils/index.js.map +1 -1
- package/package.json +48 -41
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { Request, Response, NextFunction } from
|
|
2
|
-
import { IncomingMessage } from
|
|
3
|
-
import
|
|
1
|
+
import { Request, Response, NextFunction } from 'express';
|
|
2
|
+
import { IncomingMessage } from 'http';
|
|
3
|
+
import busboy from 'busboy';
|
|
4
|
+
import { ProxyOptions } from './lib/models';
|
|
4
5
|
export declare class Proxy {
|
|
5
6
|
private transport;
|
|
6
7
|
private agent;
|
|
7
8
|
constructor(config: ProxyOptions);
|
|
8
9
|
private onError;
|
|
9
|
-
express: () => (req: Request, res: Response, next: NextFunction) => any;
|
|
10
|
-
stream: (req: IncomingMessage) => Promise<any
|
|
10
|
+
express: () => (req: Request, res: Response, next: NextFunction) => void | Promise<any> | busboy.Busboy;
|
|
11
|
+
stream: (req: IncomingMessage) => Promise<any> | undefined;
|
|
11
12
|
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,KAAK,CAAsC;gBAEvC,MAAM,EAAE,YAAY;IAoBhC,OAAO,CAAC,OAAO,CASb;IAEF,OAAO,SAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,yCA6C9D;IAEF,MAAM,GAAI,KAAK,eAAe,8BAK5B;CACH"}
|
package/dist/index.js
CHANGED
|
@@ -1,106 +1,121 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
10
26
|
};
|
|
11
|
-
return
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
37
|
};
|
|
13
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
39
|
exports.Proxy = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.onError = function (err, res) {
|
|
28
|
-
var status = typeof err.response.data.statusCode !== "undefined"
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const os = __importStar(require("os"));
|
|
42
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
43
|
+
const fs_1 = require("fs");
|
|
44
|
+
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
45
|
+
const dotenv = __importStar(require("dotenv"));
|
|
46
|
+
const busboy_1 = __importDefault(require("busboy"));
|
|
47
|
+
const Transport_1 = __importDefault(require("./lib/Transport"));
|
|
48
|
+
class Proxy {
|
|
49
|
+
constructor(config) {
|
|
50
|
+
this.onError = (err, res) => {
|
|
51
|
+
const status = err.response?.data?.statusCode !== undefined
|
|
29
52
|
? err.response.data.statusCode
|
|
30
53
|
: 500;
|
|
31
|
-
|
|
54
|
+
const msg = err.response?.data?.statusMessage !== undefined
|
|
32
55
|
? err.response.data.statusMessage
|
|
33
|
-
: err;
|
|
56
|
+
: err.message ?? err;
|
|
34
57
|
res.status(status).send(msg);
|
|
35
58
|
};
|
|
36
|
-
this.express =
|
|
37
|
-
if (
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
bb.on(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
filestream.pipe((0, fs_1.createWriteStream)(
|
|
59
|
+
this.express = () => (req, res, next) => {
|
|
60
|
+
if (this.transport.isDomoRequest(req.url)) {
|
|
61
|
+
if (this.transport.isMultiPartRequest(req.headers)) {
|
|
62
|
+
const bb = (0, busboy_1.default)({ headers: req.headers });
|
|
63
|
+
let filePath;
|
|
64
|
+
let fieldName;
|
|
65
|
+
bb.on('file', (fieldname, filestream, fileMetadata) => {
|
|
66
|
+
filePath = path.join(os.tmpdir(), path.basename(fileMetadata.filename));
|
|
67
|
+
fieldName = fieldname;
|
|
68
|
+
filestream.pipe((0, fs_1.createWriteStream)(filePath));
|
|
46
69
|
});
|
|
47
|
-
bb.on(
|
|
48
|
-
|
|
70
|
+
bb.on('finish', () => {
|
|
71
|
+
this.transport
|
|
49
72
|
.buildBasic(req)
|
|
50
|
-
.then(
|
|
51
|
-
|
|
52
|
-
form.append(
|
|
53
|
-
return
|
|
73
|
+
.then((options) => {
|
|
74
|
+
const form = new form_data_1.default();
|
|
75
|
+
form.append(fieldName, (0, fs_1.createReadStream)(filePath));
|
|
76
|
+
return this.transport.request({
|
|
77
|
+
...options,
|
|
78
|
+
headers: { ...options.headers, ...form.getHeaders() },
|
|
79
|
+
data: form,
|
|
80
|
+
});
|
|
54
81
|
})
|
|
55
|
-
.then(
|
|
56
|
-
.catch(
|
|
82
|
+
.then((rawRequest) => rawRequest.data.pipe(res))
|
|
83
|
+
.catch((err) => this.onError(err, res));
|
|
57
84
|
});
|
|
58
85
|
return req.pipe(bb);
|
|
59
86
|
}
|
|
60
|
-
return
|
|
87
|
+
return this.transport
|
|
61
88
|
.build(req)
|
|
62
|
-
.then(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
.
|
|
89
|
+
.then((options) => this.transport.request({
|
|
90
|
+
...options,
|
|
91
|
+
httpsAgent: this.agent,
|
|
92
|
+
}))
|
|
93
|
+
.then((rawRequest) => rawRequest.data.pipe(res))
|
|
94
|
+
.catch((err) => this.onError(err, res));
|
|
67
95
|
}
|
|
68
96
|
return next();
|
|
69
|
-
};
|
|
70
|
-
this.stream =
|
|
71
|
-
if (
|
|
72
|
-
return
|
|
97
|
+
};
|
|
98
|
+
this.stream = (req) => {
|
|
99
|
+
if (this.transport.isDomoRequest(req.url)) {
|
|
100
|
+
return this.transport.build(req).then(this.transport.request);
|
|
73
101
|
}
|
|
102
|
+
return undefined;
|
|
74
103
|
};
|
|
75
104
|
this.transport = new Transport_1.default(config);
|
|
76
|
-
dotenv.config({ path: process.cwd()
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
//@ts-ignore
|
|
85
|
-
this.agent = new HttpsProxyAgent("http://" +
|
|
86
|
-
((_e = process.env.REACT_APP_PROXY_USERNAME) !== null && _e !== void 0 ? _e : process.env.PROXY_USERNAME) +
|
|
87
|
-
":" +
|
|
88
|
-
((_f = process.env.REACT_APP_PROXY_PASSWORD) !== null && _f !== void 0 ? _f : process.env.PROXY_PASSWORD) +
|
|
89
|
-
"@" +
|
|
90
|
-
((_g = process.env.REACT_APP_PROXY_HOST) !== null && _g !== void 0 ? _g : process.env.PROXY_HOST) +
|
|
91
|
-
":" +
|
|
92
|
-
((_h = process.env.REACT_APP_PROXY_PORT) !== null && _h !== void 0 ? _h : process.env.PROXY_PORT));
|
|
105
|
+
dotenv.config({ path: `${process.cwd()}/.env` });
|
|
106
|
+
const proxyHost = process.env.REACT_APP_PROXY_HOST ?? process.env.PROXY_HOST;
|
|
107
|
+
const proxyPort = process.env.REACT_APP_PROXY_PORT ?? process.env.PROXY_PORT;
|
|
108
|
+
const proxyUsername = process.env.REACT_APP_PROXY_USERNAME ?? process.env.PROXY_USERNAME;
|
|
109
|
+
const proxyPassword = process.env.REACT_APP_PROXY_PASSWORD ?? process.env.PROXY_PASSWORD;
|
|
110
|
+
if (proxyHost !== undefined && proxyPort !== undefined) {
|
|
111
|
+
if (proxyUsername !== undefined && proxyPassword !== undefined) {
|
|
112
|
+
this.agent = new https_proxy_agent_1.HttpsProxyAgent(`http://${proxyUsername}:${proxyPassword}@${proxyHost}:${proxyPort}`);
|
|
93
113
|
}
|
|
94
114
|
else {
|
|
95
|
-
|
|
96
|
-
this.agent = new HttpsProxyAgent("http://" +
|
|
97
|
-
((_j = process.env.REACT_APP_PROXY_HOST) !== null && _j !== void 0 ? _j : process.env.PROXY_HOST) +
|
|
98
|
-
":" +
|
|
99
|
-
((_k = process.env.REACT_APP_PROXY_PORT) !== null && _k !== void 0 ? _k : process.env.PROXY_PORT));
|
|
115
|
+
this.agent = new https_proxy_agent_1.HttpsProxyAgent(`http://${proxyHost}:${proxyPort}`);
|
|
100
116
|
}
|
|
101
117
|
}
|
|
102
118
|
}
|
|
103
|
-
|
|
104
|
-
}());
|
|
119
|
+
}
|
|
105
120
|
exports.Proxy = Proxy;
|
|
106
121
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import { ProxyOptions, OauthToken } from
|
|
6
|
-
import { Manifest } from "ryuu-client/lib/models";
|
|
1
|
+
import Domo = require('ryuu-client');
|
|
2
|
+
import { AxiosRequestConfig } from 'axios';
|
|
3
|
+
import { IncomingMessage, IncomingHttpHeaders } from 'http';
|
|
4
|
+
import { Manifest } from 'ryuu-client/lib/models';
|
|
5
|
+
import { ProxyOptions, OauthToken } from '../models';
|
|
7
6
|
export default class Transport {
|
|
8
7
|
private manifest;
|
|
9
8
|
private clientPromise;
|
|
@@ -11,18 +10,19 @@ export default class Transport {
|
|
|
11
10
|
private proxyId;
|
|
12
11
|
private oauthTokenPromise;
|
|
13
12
|
constructor({ manifest }: ProxyOptions);
|
|
14
|
-
request: (options:
|
|
13
|
+
request: (options: any) => any;
|
|
15
14
|
getEnv(instance: string): string;
|
|
16
|
-
isDomoRequest(url: string): boolean;
|
|
15
|
+
isDomoRequest(url: string | undefined): boolean;
|
|
17
16
|
isMultiPartRequest(headers: IncomingHttpHeaders): boolean;
|
|
18
17
|
getManifest(): Manifest;
|
|
19
18
|
getDomainPromise(): Promise<any>;
|
|
20
19
|
getLastLogin(): Promise<Domo>;
|
|
21
20
|
getScopedOauthTokens(): Promise<OauthToken | undefined>;
|
|
22
|
-
build(req: IncomingMessage): Promise<
|
|
23
|
-
buildBasic(req: IncomingMessage): Promise<
|
|
21
|
+
build(req: IncomingMessage): Promise<AxiosRequestConfig>;
|
|
22
|
+
buildBasic(req: IncomingMessage): Promise<AxiosRequestConfig>;
|
|
24
23
|
private prepareHeaders;
|
|
25
24
|
private prepareCookies;
|
|
26
25
|
private parseBody;
|
|
27
26
|
private verifyLogin;
|
|
28
27
|
}
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/Transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,aAAa,CAAC,CAAC;AACrC,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAK5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOlD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,aAAa,CAAe;IAEpC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,iBAAiB,CAAkC;gBAE/C,EAAE,QAAQ,EAAE,EAAE,YAAY;IAUtC,OAAO,GAAI,SAAS,GAAG,KAAG,GAAG,CAA2E;IAExG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAUhC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAmB/C,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAQzD,WAAW,IAAI,QAAQ;IAIvB,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIhC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C7B,oBAAoB,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAQvD,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAexD,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuB7D,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -1,260 +1,242 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
47
7
|
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
37
|
};
|
|
49
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
var _this = this;
|
|
61
|
-
this.request = function (options) {
|
|
62
|
-
return _this.clientPromise.then(function (client) { return client.processRequestRaw(options); });
|
|
63
|
-
};
|
|
39
|
+
const Domo = require("ryuu-client");
|
|
40
|
+
const axios_1 = __importDefault(require("axios"));
|
|
41
|
+
const axios_cookiejar_support_1 = require("axios-cookiejar-support");
|
|
42
|
+
const tough_cookie_1 = require("tough-cookie");
|
|
43
|
+
const dotenv = __importStar(require("dotenv"));
|
|
44
|
+
const utils_1 = require("../utils");
|
|
45
|
+
const constants_1 = require("../constants");
|
|
46
|
+
class Transport {
|
|
47
|
+
constructor({ manifest }) {
|
|
48
|
+
this.request = (options) => this.clientPromise.then((client) => client.processRequestRaw(options));
|
|
64
49
|
this.manifest = manifest;
|
|
65
|
-
//@ts-ignore
|
|
66
50
|
this.clientPromise = this.getLastLogin();
|
|
67
51
|
this.proxyId = (0, utils_1.getProxyId)(manifest);
|
|
68
|
-
this.domainPromise = this.clientPromise.then(
|
|
69
|
-
return __generator(this, function (_a) {
|
|
70
|
-
return [2 /*return*/, client.getDomoappsData(__assign({}, this.manifest), this.proxyId)];
|
|
71
|
-
});
|
|
72
|
-
}); });
|
|
52
|
+
this.domainPromise = this.clientPromise.then(async (client) => client.getDomoappsData({ ...this.manifest }, this.proxyId));
|
|
73
53
|
this.oauthTokenPromise = this.getScopedOauthTokens();
|
|
74
54
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
|
|
55
|
+
getEnv(instance) {
|
|
56
|
+
const regexp = /([-_\w]+)\.(.*)/;
|
|
57
|
+
const int = 2;
|
|
58
|
+
const match = instance.match(regexp);
|
|
59
|
+
if (!match) {
|
|
60
|
+
throw new Error(`Invalid instance format: ${instance}`);
|
|
61
|
+
}
|
|
62
|
+
return match[int];
|
|
63
|
+
}
|
|
64
|
+
isDomoRequest(url) {
|
|
65
|
+
if (!url) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
const domoPattern = /^\/domo\/.+\/v\d/;
|
|
69
|
+
const dataPattern = /^\/data\/v\d\/.+/;
|
|
70
|
+
const sqlQueryPattern = /^\/sql\/v\d\/.+/;
|
|
71
|
+
const dqlPattern = /^\/dql\/v\d\/.+/;
|
|
72
|
+
const apiPattern = /^\/api\/.+/;
|
|
73
|
+
return (domoPattern.test(url)
|
|
74
|
+
|| dataPattern.test(url)
|
|
75
|
+
|| sqlQueryPattern.test(url)
|
|
76
|
+
|| dqlPattern.test(url)
|
|
77
|
+
|| apiPattern.test(url));
|
|
78
|
+
}
|
|
79
|
+
isMultiPartRequest(headers) {
|
|
80
|
+
return Object.entries(headers).some(([header, value]) => header.toLowerCase() === 'content-type'
|
|
81
|
+
&& value !== undefined
|
|
82
|
+
&& value.toString().toLowerCase().includes('multipart'));
|
|
83
|
+
}
|
|
84
|
+
getManifest() {
|
|
100
85
|
return this.manifest;
|
|
101
|
-
}
|
|
102
|
-
|
|
86
|
+
}
|
|
87
|
+
getDomainPromise() {
|
|
103
88
|
return this.domainPromise;
|
|
104
|
-
}
|
|
105
|
-
|
|
89
|
+
}
|
|
90
|
+
getLastLogin() {
|
|
106
91
|
return (0, utils_1.getMostRecentLogin)()
|
|
107
92
|
.then(this.verifyLogin)
|
|
108
|
-
.then(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (
|
|
116
|
-
((_d = process.env.REACT_APP_PROXY_PASSWORD) !== null && _d !== void 0 ? _d : process.env.PROXY_PASSWORD) !== undefined) {
|
|
117
|
-
return new Domo(recentLogin.instance, recentLogin.refreshToken, constants_1.CLIENT_ID, {
|
|
118
|
-
host: process.env.REACT_APP_PROXY_HOST,
|
|
119
|
-
port: process.env.REACT_APP_PROXY_PORT,
|
|
120
|
-
//@ts-ignore
|
|
121
|
-
username: process.env.REACT_APP_PROXY_USERNAME,
|
|
122
|
-
password: process.env.REACT_APP_PROXY_PASSWORD,
|
|
123
|
-
}, recentLogin.devToken);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
93
|
+
.then((recentLogin) => {
|
|
94
|
+
dotenv.config({ path: `${process.cwd()}/.env` });
|
|
95
|
+
const proxyHost = process.env.REACT_APP_PROXY_HOST ?? process.env.PROXY_HOST;
|
|
96
|
+
const proxyPort = process.env.REACT_APP_PROXY_PORT ?? process.env.PROXY_PORT;
|
|
97
|
+
const proxyUsername = process.env.REACT_APP_PROXY_USERNAME ?? process.env.PROXY_USERNAME;
|
|
98
|
+
const proxyPassword = process.env.REACT_APP_PROXY_PASSWORD ?? process.env.PROXY_PASSWORD;
|
|
99
|
+
if (proxyHost !== undefined && proxyPort !== undefined) {
|
|
100
|
+
if (proxyUsername !== undefined && proxyPassword !== undefined) {
|
|
126
101
|
return new Domo(recentLogin.instance, recentLogin.refreshToken, constants_1.CLIENT_ID, {
|
|
127
|
-
host:
|
|
128
|
-
port:
|
|
102
|
+
host: proxyHost,
|
|
103
|
+
port: proxyPort,
|
|
104
|
+
auth: `${proxyUsername}:${proxyPassword}`,
|
|
129
105
|
}, recentLogin.devToken);
|
|
130
106
|
}
|
|
107
|
+
return new Domo(recentLogin.instance, recentLogin.refreshToken, constants_1.CLIENT_ID, {
|
|
108
|
+
host: proxyHost,
|
|
109
|
+
port: proxyPort,
|
|
110
|
+
}, recentLogin.devToken);
|
|
131
111
|
}
|
|
132
|
-
//@ts-ignore
|
|
133
112
|
return new Domo(recentLogin.instance, recentLogin.refreshToken, constants_1.CLIENT_ID, {}, recentLogin.devToken);
|
|
134
113
|
});
|
|
135
|
-
}
|
|
136
|
-
|
|
114
|
+
}
|
|
115
|
+
getScopedOauthTokens() {
|
|
137
116
|
if ((0, utils_1.isOauthEnabled)(this.manifest)) {
|
|
138
117
|
return (0, utils_1.getOauthTokens)(this.proxyId, this.manifest.scopes);
|
|
139
118
|
}
|
|
140
|
-
return
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var options;
|
|
119
|
+
return Promise.resolve(undefined);
|
|
120
|
+
}
|
|
121
|
+
build(req) {
|
|
122
|
+
let options;
|
|
145
123
|
return this.buildBasic(req)
|
|
146
|
-
.then(
|
|
124
|
+
.then((basicOptions) => {
|
|
147
125
|
options = basicOptions;
|
|
148
126
|
options.transformResponse = [];
|
|
149
|
-
options.responseType =
|
|
150
|
-
return
|
|
127
|
+
options.responseType = 'stream';
|
|
128
|
+
return this.parseBody(req);
|
|
151
129
|
})
|
|
152
|
-
.then(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
//@ts-ignore
|
|
130
|
+
.then((data) => ({
|
|
131
|
+
...options,
|
|
132
|
+
data,
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
buildBasic(req) {
|
|
136
|
+
let api;
|
|
137
|
+
let hostname;
|
|
161
138
|
return this.domainPromise
|
|
162
|
-
.then(
|
|
163
|
-
api =
|
|
139
|
+
.then((domain) => {
|
|
140
|
+
api = `${domain.url}${req.url ?? ''}`;
|
|
164
141
|
hostname = domain.url;
|
|
165
|
-
return
|
|
142
|
+
return this.prepareHeaders(req.headers, this.proxyId, hostname);
|
|
166
143
|
})
|
|
167
|
-
.then(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
var jar = cookieJar;
|
|
144
|
+
.then((headers) => {
|
|
145
|
+
(0, axios_cookiejar_support_1.wrapper)(axios_1.default);
|
|
146
|
+
const cookieJar = new tough_cookie_1.CookieJar();
|
|
171
147
|
return {
|
|
172
|
-
jar:
|
|
173
|
-
headers
|
|
148
|
+
jar: cookieJar,
|
|
149
|
+
headers,
|
|
174
150
|
url: api,
|
|
175
|
-
responseType:
|
|
151
|
+
responseType: 'stream',
|
|
176
152
|
method: req.method,
|
|
177
153
|
};
|
|
178
154
|
});
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
: ["cookie"];
|
|
193
|
-
return __assign(__assign(__assign({}, Object.keys(headers).reduce(function (newHeaders, key) {
|
|
155
|
+
}
|
|
156
|
+
prepareHeaders(headers, _context, host) {
|
|
157
|
+
const hostname = host.replace('https://', '');
|
|
158
|
+
return this.oauthTokenPromise.then((tokens) => {
|
|
159
|
+
const refererValue = headers.referer ?? 'https://0.0.0.0:3000';
|
|
160
|
+
const referer = refererValue.indexOf('?') >= 0
|
|
161
|
+
? `${refererValue}`
|
|
162
|
+
: `${refererValue}?userId=27&customer=dev&locale=en-US&platform=desktop`;
|
|
163
|
+
const cookieHeader = this.prepareCookies(headers, tokens);
|
|
164
|
+
const filters = this.isMultiPartRequest(headers)
|
|
165
|
+
? ['content-type', 'content-length', 'cookie']
|
|
166
|
+
: ['cookie'];
|
|
167
|
+
const filteredHeaders = Object.keys(headers).reduce((newHeaders, key) => {
|
|
194
168
|
if (!filters.includes(key.toLowerCase())) {
|
|
195
|
-
newHeaders[key]
|
|
169
|
+
return { ...newHeaders, [key]: headers[key] };
|
|
196
170
|
}
|
|
197
171
|
return newHeaders;
|
|
198
|
-
}, {})
|
|
172
|
+
}, {});
|
|
173
|
+
return {
|
|
174
|
+
...filteredHeaders,
|
|
175
|
+
...cookieHeader,
|
|
176
|
+
referer,
|
|
177
|
+
host: hostname,
|
|
178
|
+
};
|
|
199
179
|
});
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
if (key.toLowerCase() ===
|
|
180
|
+
}
|
|
181
|
+
prepareCookies(headers, tokens) {
|
|
182
|
+
const existingCookie = Object.keys(headers).reduce((newHeaders, key) => {
|
|
183
|
+
if (key.toLowerCase() === 'cookie') {
|
|
184
|
+
const cookieValue = headers[key];
|
|
204
185
|
// handle if cookie is an array
|
|
205
|
-
if (Array.isArray(
|
|
206
|
-
newHeaders
|
|
186
|
+
if (Array.isArray(cookieValue)) {
|
|
187
|
+
return { ...newHeaders, cookie: cookieValue.join('; ') };
|
|
207
188
|
}
|
|
208
|
-
|
|
209
|
-
newHeaders
|
|
189
|
+
if (cookieValue !== undefined) {
|
|
190
|
+
return { ...newHeaders, cookie: cookieValue };
|
|
210
191
|
}
|
|
211
192
|
}
|
|
212
193
|
return newHeaders;
|
|
213
194
|
}, {});
|
|
214
|
-
|
|
215
|
-
? { cookie:
|
|
195
|
+
const tokenCookie = tokens !== undefined
|
|
196
|
+
? { cookie: `_daatv1=${tokens.access}; _dartv1=${tokens.refresh}` }
|
|
216
197
|
: {};
|
|
217
|
-
if (existingCookie
|
|
218
|
-
tokenCookie["cookie"] !== undefined) {
|
|
198
|
+
if (existingCookie.cookie !== undefined && tokenCookie.cookie !== undefined) {
|
|
219
199
|
return {
|
|
220
|
-
cookie:
|
|
200
|
+
cookie: `${existingCookie.cookie}; ${tokenCookie.cookie}`,
|
|
221
201
|
};
|
|
222
202
|
}
|
|
223
|
-
if (existingCookie
|
|
203
|
+
if (existingCookie.cookie === undefined) {
|
|
224
204
|
return tokenCookie;
|
|
225
205
|
}
|
|
226
206
|
return existingCookie;
|
|
227
|
-
}
|
|
228
|
-
|
|
207
|
+
}
|
|
208
|
+
parseBody(req) {
|
|
229
209
|
// if body-parser was used before this middleware the "body" attribute will be set
|
|
230
|
-
|
|
231
|
-
if (typeof exprReq.body !==
|
|
232
|
-
if (typeof exprReq.body ===
|
|
210
|
+
const exprReq = req;
|
|
211
|
+
if (typeof exprReq.body !== 'undefined') {
|
|
212
|
+
if (typeof exprReq.body === 'string') {
|
|
233
213
|
return Promise.resolve(exprReq.body);
|
|
214
|
+
}
|
|
234
215
|
return Promise.resolve(JSON.stringify(exprReq.body));
|
|
235
216
|
}
|
|
236
|
-
return new Promise(
|
|
237
|
-
|
|
217
|
+
return new Promise((resolve) => {
|
|
218
|
+
const body = [];
|
|
238
219
|
try {
|
|
239
|
-
req.on(
|
|
240
|
-
req.on(
|
|
241
|
-
|
|
220
|
+
req.on('data', (chunk) => body.push(chunk));
|
|
221
|
+
req.on('end', () => {
|
|
222
|
+
const raw = Buffer.concat(body).toString();
|
|
242
223
|
resolve(raw);
|
|
243
224
|
});
|
|
244
|
-
req.on(
|
|
225
|
+
req.on('error', () => {
|
|
226
|
+
resolve(undefined);
|
|
227
|
+
});
|
|
245
228
|
}
|
|
246
229
|
catch (e) {
|
|
247
|
-
resolve();
|
|
230
|
+
resolve(undefined);
|
|
248
231
|
}
|
|
249
232
|
});
|
|
250
|
-
}
|
|
251
|
-
|
|
233
|
+
}
|
|
234
|
+
verifyLogin(login) {
|
|
252
235
|
if (!login.refreshToken) {
|
|
253
236
|
throw new Error('Not authenticated. Please login using "domo login"');
|
|
254
237
|
}
|
|
255
238
|
return login;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
}());
|
|
239
|
+
}
|
|
240
|
+
}
|
|
259
241
|
exports.default = Transport;
|
|
260
242
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/Transport/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/Transport/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/constants.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,4BAA4B,CAAC;AACnD,eAAO,MAAM,aAAa,iBAAiB,CAAC"}
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;IACtC,UAAU,EAAE,MAAM,CAAC;IAEnB,GAAG,EAAE,MAAM,CAAC;IAEZ,KAAK,EAAE,MAAM,CAAC;IAEd,KAAK,EAAE,MAAM,CAAC;gBAEF,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;CAgBlC"}
|
package/dist/lib/errors.js
CHANGED
|
@@ -1,39 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.DomoException = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
_this = _super.call(this, message) || this;
|
|
27
|
-
_this.error = (err.body)
|
|
4
|
+
class DomoException extends Error {
|
|
5
|
+
constructor(err, url) {
|
|
6
|
+
const message = ''
|
|
7
|
+
+ 'Ensure the app has been published at least once (manifest.json should have an Id) '
|
|
8
|
+
+ 'and you\'re working with an active session by running: `domo login`';
|
|
9
|
+
super(message);
|
|
10
|
+
this.error = (err.body)
|
|
28
11
|
? (err.body.message)
|
|
29
12
|
: (err.message);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return _this;
|
|
13
|
+
this.name = 'DomoException';
|
|
14
|
+
this.proxy = message;
|
|
15
|
+
this.statusCode = err.statusCode;
|
|
16
|
+
this.url = url;
|
|
35
17
|
}
|
|
36
|
-
|
|
37
|
-
}(Error));
|
|
18
|
+
}
|
|
38
19
|
exports.DomoException = DomoException;
|
|
39
20
|
//# sourceMappingURL=errors.js.map
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAc,SAAQ,KAAK;IAStC,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,OAAO,GAAG,EAAE;cACd,oFAAoF;cACpF,qEAAqE,CAAC;QAE1E,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;AAzBD,sCAyBC"}
|
package/dist/lib/models.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
export type { Manifest } from 'ryuu-client/lib/models';
|
|
2
2
|
export interface ProxyOptions {
|
|
3
|
-
manifest: Manifest;
|
|
3
|
+
manifest: import('ryuu-client/lib/models').Manifest;
|
|
4
4
|
}
|
|
5
5
|
export interface OauthToken {
|
|
6
6
|
access: string;
|
|
7
7
|
refresh: string;
|
|
8
8
|
}
|
|
9
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/lib/models.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,wBAAwB,EAAE,QAAQ,CAAC;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Manifest } from 'ryuu-client/lib/models';
|
|
2
|
+
import { OauthToken } from '../models';
|
|
3
3
|
export declare function getMostRecentLogin(): Promise<any>;
|
|
4
4
|
export declare const isOauthEnabled: (manifest: Manifest) => boolean;
|
|
5
5
|
export declare const getProxyId: (manifest: Manifest) => string;
|
|
6
6
|
export declare function getOauthTokens(proxyId: string, scopes: string[] | undefined): Promise<OauthToken>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,wBAAgB,kBAAkB,iBAWjC;AAED,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,KAAG,OAEnD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,UAAU,QAAQ,KAAG,MAA+C,CAAC;AAEhG,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAC3B,OAAO,CAAC,UAAU,CAAC,CAerB"}
|
package/dist/lib/utils/index.js
CHANGED
|
@@ -1,55 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
if (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
7
|
}
|
|
9
|
-
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
37
|
};
|
|
11
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
39
|
+
exports.getProxyId = exports.isOauthEnabled = void 0;
|
|
40
|
+
exports.getMostRecentLogin = getMostRecentLogin;
|
|
41
|
+
exports.getOauthTokens = getOauthTokens;
|
|
42
|
+
const Domo = require("ryuu-client");
|
|
43
|
+
const glob_1 = require("glob");
|
|
44
|
+
const fs = __importStar(require("fs-extra"));
|
|
45
|
+
const configstore_1 = __importDefault(require("configstore"));
|
|
46
|
+
const constants_1 = require("../constants");
|
|
18
47
|
function getMostRecentLogin() {
|
|
19
|
-
|
|
20
|
-
|
|
48
|
+
const home = Domo.getHomeDir();
|
|
49
|
+
const logins = (0, glob_1.globSync)(`${home}/ryuu/*.json`);
|
|
21
50
|
if (logins.length === 0)
|
|
22
51
|
return Promise.resolve({});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
loginData.refreshToken = configstore.get("refreshToken");
|
|
29
|
-
loginData.devToken = configstore.get("devToken");
|
|
52
|
+
const recent = logins.reduce((prev, next) => (fs.statSync(prev).mtime > fs.statSync(next).mtime ? prev : next));
|
|
53
|
+
const loginData = fs.readJsonSync(recent);
|
|
54
|
+
const configstore = new configstore_1.default(`/ryuu/${loginData.instance}`);
|
|
55
|
+
loginData.refreshToken = configstore.get('refreshToken');
|
|
56
|
+
loginData.devToken = configstore.get('devToken');
|
|
30
57
|
return Promise.resolve(loginData);
|
|
31
58
|
}
|
|
32
|
-
|
|
33
|
-
var isOauthEnabled = function (manifest) {
|
|
34
|
-
return Object.keys(manifest).includes(constants_1.OAUTH_ENABLED) && manifest[constants_1.OAUTH_ENABLED];
|
|
35
|
-
};
|
|
59
|
+
const isOauthEnabled = (manifest) => (Object.keys(manifest).includes(constants_1.OAUTH_ENABLED) && manifest[constants_1.OAUTH_ENABLED]);
|
|
36
60
|
exports.isOauthEnabled = isOauthEnabled;
|
|
37
|
-
|
|
61
|
+
const getProxyId = (manifest) => manifest.proxyId ?? Domo.createUUID();
|
|
38
62
|
exports.getProxyId = getProxyId;
|
|
39
63
|
function getOauthTokens(proxyId, scopes) {
|
|
40
64
|
return getMostRecentLogin()
|
|
41
|
-
.then(
|
|
42
|
-
|
|
43
|
-
|
|
65
|
+
.then((loginData) => {
|
|
66
|
+
const configstore = new configstore_1.default(`/ryuu/${loginData.instance}`);
|
|
67
|
+
const allScopes = scopes !== undefined ? ['domoapps', ...scopes] : ['domoapps'];
|
|
44
68
|
return Promise.all([
|
|
45
|
-
configstore.get(
|
|
46
|
-
configstore.get(
|
|
69
|
+
configstore.get(`${proxyId}-${allScopes.join('-')}-accessToken`),
|
|
70
|
+
configstore.get(`${proxyId}-${allScopes.join('-')}-refreshToken`),
|
|
47
71
|
]);
|
|
48
72
|
})
|
|
49
|
-
.then(
|
|
73
|
+
.then((tokens) => ({
|
|
50
74
|
access: tokens[0],
|
|
51
75
|
refresh: tokens[1],
|
|
52
|
-
})
|
|
76
|
+
}));
|
|
53
77
|
}
|
|
54
|
-
exports.getOauthTokens = getOauthTokens;
|
|
55
78
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,gDAWC;AAQD,wCAkBC;AA9CD,oCAAqC;AACrC,+BAAgC;AAChC,6CAA+B;AAC/B,8DAAsC;AAGtC,4CAA6C;AAG7C,SAAgB,kBAAkB;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,GAAG,IAAI,cAAc,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC,SAAS,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnE,SAAS,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAEM,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAW,EAAE,CAAC,CAC7D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,yBAAa,CAAC,IAAK,QAAgB,CAAC,yBAAa,CAAC,CAClF,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAU,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AAAnF,QAAA,UAAU,cAAyE;AAEhG,SAAgB,cAAc,CAC5B,OAAe,EACf,MAA4B;IAE5B,OAAO,kBAAkB,EAAE;SACxB,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAClB,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC,SAAS,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAEhF,OAAO,OAAO,CAAC,GAAG,CAAC;YACjB,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAW;YAC1E,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAW;SAC5E,CAAC,CAAC;IACL,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,MAAwB,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;KACnB,CAAC,CAAC,CAAC;AACR,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domoinc/ryuu-proxy",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0-beta.0",
|
|
4
4
|
"description": "a middleware that provides a proxy for local domo app development",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"lint": "tslint src/**/*.ts --project ./tsconfig.json",
|
|
9
|
-
"test": "mocha && rm -rf test",
|
|
10
|
-
"tdd": "mocha --watch",
|
|
11
|
-
"build": "rm -rf ./dist && tsc",
|
|
12
|
-
"releaseAlpha": "npm run build && npm publish --tag alpha",
|
|
13
|
-
"releaseBeta": "npm run build && npm publish --tag beta",
|
|
14
|
-
"release": "npm run build && npm publish",
|
|
15
|
-
"start": "npm run build -- -w",
|
|
16
|
-
"clean": "rm -rf node_modules && yarn",
|
|
17
|
-
"bumpAlpha": "npm run build && npm run bump -- --prerelease alpha",
|
|
18
|
-
"bumpBeta": "npm run build && npm run bump -- --prerelease beta",
|
|
19
|
-
"bump": "standard-version"
|
|
20
|
-
},
|
|
21
7
|
"author": "AppTeam6 <Squad.AppTeam6@domo.com>",
|
|
22
8
|
"repository": {
|
|
23
9
|
"type": "git",
|
|
@@ -32,38 +18,59 @@
|
|
|
32
18
|
"domo apps"
|
|
33
19
|
],
|
|
34
20
|
"devDependencies": {
|
|
35
|
-
"@types/busboy": "^1.5.
|
|
36
|
-
"@types/chai": "^4.3.
|
|
37
|
-
"@types/configstore": "^
|
|
38
|
-
"@types/express": "^4.17.
|
|
39
|
-
"@types/
|
|
40
|
-
"@types/
|
|
41
|
-
"@types/
|
|
42
|
-
"@types/
|
|
43
|
-
"
|
|
44
|
-
"
|
|
21
|
+
"@types/busboy": "^1.5.4",
|
|
22
|
+
"@types/chai": "^4.3.20",
|
|
23
|
+
"@types/configstore": "^6.0.2",
|
|
24
|
+
"@types/express": "^4.17.24",
|
|
25
|
+
"@types/fs-extra": "^11.0.4",
|
|
26
|
+
"@types/mocha": "^10.0.10",
|
|
27
|
+
"@types/node": "^18.19.130",
|
|
28
|
+
"@types/sinon": "^17.0.4",
|
|
29
|
+
"@types/tough-cookie": "^4.0.5",
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
31
|
+
"@typescript-eslint/parser": "^7.0.0",
|
|
32
|
+
"chai": "^4.5.0",
|
|
33
|
+
"eslint": "^8.57.0",
|
|
34
|
+
"eslint-config-airbnb-base": "^15.0.0",
|
|
35
|
+
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
36
|
+
"eslint-plugin-import": "^2.31.0",
|
|
37
|
+
"mocha": "^10.8.2",
|
|
45
38
|
"mock-req": "^0.2.0",
|
|
46
|
-
"sinon": "^
|
|
39
|
+
"sinon": "^17.0.2",
|
|
47
40
|
"standard-version": "^9.5.0",
|
|
48
|
-
"ts-node": "^10.9.
|
|
49
|
-
"
|
|
50
|
-
"tsutils": "^3.21.0",
|
|
51
|
-
"typescript": "^4.7.4"
|
|
41
|
+
"ts-node": "^10.9.2",
|
|
42
|
+
"typescript": "^5.9.3"
|
|
52
43
|
},
|
|
53
44
|
"dependencies": {
|
|
54
|
-
"axios": "^
|
|
55
|
-
"axios-cookiejar-support": "^
|
|
45
|
+
"axios": "^1.13.0",
|
|
46
|
+
"axios-cookiejar-support": "^6.0.4",
|
|
56
47
|
"busboy": "^1.6.0",
|
|
57
|
-
"configstore": "^
|
|
58
|
-
"dotenv": "^16.
|
|
59
|
-
"form-data": "^4.0.
|
|
60
|
-
"fs-extra": "^
|
|
61
|
-
"glob": "^
|
|
62
|
-
"https-proxy-agent": "^
|
|
63
|
-
"ryuu-client": "^4.4.
|
|
64
|
-
"tough-cookie": "^
|
|
48
|
+
"configstore": "^7.1.0",
|
|
49
|
+
"dotenv": "^16.6.1",
|
|
50
|
+
"form-data": "^4.0.4",
|
|
51
|
+
"fs-extra": "^11.3.2",
|
|
52
|
+
"glob": "^10.4.5",
|
|
53
|
+
"https-proxy-agent": "^7.0.6",
|
|
54
|
+
"ryuu-client": "^4.4.4",
|
|
55
|
+
"tough-cookie": "^5.0.0"
|
|
65
56
|
},
|
|
66
57
|
"peerDependencies": {
|
|
58
|
+
"express": "^4.17.0 || ^5.0.0",
|
|
67
59
|
"ryuu": "^4.2.5"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"lint": "eslint src --ext .ts",
|
|
63
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
64
|
+
"test": "TS_NODE_PROJECT=tsconfig.test.json mocha && rm -rf test",
|
|
65
|
+
"tdd": "mocha --watch",
|
|
66
|
+
"build": "rm -rf ./dist && tsc",
|
|
67
|
+
"release:alpha": "pnpm run build && pnpm publish --tag alpha",
|
|
68
|
+
"release:beta": "pnpm run build && pnpm publish --tag beta",
|
|
69
|
+
"release:production": "pnpm run build && pnpm publish",
|
|
70
|
+
"start": "pnpm run build -- -w",
|
|
71
|
+
"clean": "rm -rf node_modules pnpm-lock.yaml && pnpm install",
|
|
72
|
+
"bump:alpha": "pnpm run build && pnpm run bump -- --prerelease alpha",
|
|
73
|
+
"bump:beta": "pnpm run build && pnpm run bump -- --prerelease beta",
|
|
74
|
+
"bump": "standard-version"
|
|
68
75
|
}
|
|
69
|
-
}
|
|
76
|
+
}
|