zcatalyst-cli 1.17.5 → 1.18.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/docs/commands/functions/shell.toml +4 -0
- package/docs/endpoints/lib/env.toml +3 -0
- package/docs/shell/dependencies/tunnel-server.toml +4 -0
- package/docs/shell/index.toml +7 -0
- package/lib/appsail-utils.js +7 -1
- package/lib/commands/functions/shell.js +97 -1
- package/lib/commands/serve.js +1 -1
- package/lib/endpoints/index.js +8 -1
- package/lib/endpoints/lib/env.js +20 -2
- package/lib/endpoints/lib/sdk.js +2 -2
- package/lib/endpoints/lib/tunnel.js +66 -0
- package/lib/internal/api.js +5 -0
- package/lib/port-resolver.js +1 -1
- package/lib/repl-server.js +9 -0
- package/lib/serve/server/lib/master.js +18 -9
- package/lib/serve/server/lib/python/index.js +3 -0
- package/lib/shell/dependencies/http-functions.js +21 -8
- package/lib/shell/dependencies/invoker/bio/java/JavabioInvoker.java +28 -32
- package/lib/shell/dependencies/invoker/bio/node.mjs +2 -2
- package/lib/shell/dependencies/invoker/cron/java/JavacronInvoker.java +62 -13
- package/lib/shell/dependencies/invoker/cron/node.mjs +28 -24
- package/lib/shell/dependencies/invoker/event/java/JavaeventInvoker.java +40 -6
- package/lib/shell/dependencies/invoker/event/node.mjs +22 -9
- package/lib/shell/dependencies/invoker/integ/java/JavaintegInvoker.java +3 -3
- package/lib/shell/dependencies/invoker/integ/node.mjs +6 -6
- package/lib/shell/dependencies/local-function.js +290 -199
- package/lib/shell/dependencies/tunnel-server.js +173 -0
- package/lib/shell/index.js +55 -1
- package/lib/util_modules/constants/index.js +3 -1
- package/lib/util_modules/constants/lib/needed-scopes.js +52 -0
- package/lib/util_modules/constants/lib/scopes.js +5 -0
- package/lib/util_modules/constants/lib/urls.js +8 -0
- package/package.json +3 -3
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
12
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
13
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
14
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
|
+
};
|
|
17
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
18
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
20
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
var _TunnelServer_contextMap, _TunnelServer_server, _TunnelServer_destroyer, _TunnelServer_repel, _TunnelServer_projectId;
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
const express_1 = __importDefault(require("express"));
|
|
28
|
+
const runtime_store_1 = __importDefault(require("../../runtime-store"));
|
|
29
|
+
const error_1 = __importDefault(require("../../error"));
|
|
30
|
+
const logger_1 = require("../../util_modules/logger");
|
|
31
|
+
const port_resolver_1 = __importDefault(require("../../port-resolver"));
|
|
32
|
+
const server_1 = require("../../util_modules/server");
|
|
33
|
+
const ansi_colors_1 = require("ansi-colors");
|
|
34
|
+
const util_1 = require("util");
|
|
35
|
+
const project_1 = require("../../util_modules/project");
|
|
36
|
+
class TunnelServer {
|
|
37
|
+
constructor(repel) {
|
|
38
|
+
_TunnelServer_contextMap.set(this, {});
|
|
39
|
+
_TunnelServer_server.set(this, void 0);
|
|
40
|
+
_TunnelServer_destroyer.set(this, void 0);
|
|
41
|
+
_TunnelServer_repel.set(this, void 0);
|
|
42
|
+
_TunnelServer_projectId.set(this, (0, project_1.getProjectId)());
|
|
43
|
+
__classPrivateFieldSet(this, _TunnelServer_repel, repel, "f");
|
|
44
|
+
}
|
|
45
|
+
startServer() {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const tunnelPortOpt = Number.parseInt(runtime_store_1.default.get('context.port.tunnel'));
|
|
48
|
+
if (Number.isNaN(tunnelPortOpt)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const port = yield port_resolver_1.default.getFreePort(tunnelPortOpt).catch((e) => (0, logger_1.debug)(e));
|
|
52
|
+
if (!port || tunnelPortOpt !== port) {
|
|
53
|
+
throw new error_1.default(`Port unavailable ${tunnelPortOpt}`, {
|
|
54
|
+
exit: 1,
|
|
55
|
+
errorId: 'TUNNEL-1',
|
|
56
|
+
arg: [ansi_colors_1.bold.red(tunnelPortOpt + ''), (0, ansi_colors_1.bold)('--tunnel')]
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const app = (0, express_1.default)();
|
|
60
|
+
app.use(express_1.default.json());
|
|
61
|
+
app.all('/', (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
try {
|
|
63
|
+
const body = req.body;
|
|
64
|
+
if (!body.function_details || !body.function_data) {
|
|
65
|
+
res.status(400);
|
|
66
|
+
res.send();
|
|
67
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write();
|
|
68
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write('Invalid tunnel request: ' + (0, util_1.inspect)(body));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write();
|
|
72
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write((0, ansi_colors_1.bold)(`Received tunnel request from ${body.function_details.function_name}(${body.function_details.function_id})`));
|
|
73
|
+
const target = body.function_details.function_id in __classPrivateFieldGet(this, _TunnelServer_contextMap, "f")
|
|
74
|
+
? __classPrivateFieldGet(this, _TunnelServer_contextMap, "f")[body.function_details.function_id]
|
|
75
|
+
: (() => {
|
|
76
|
+
if (__classPrivateFieldGet(this, _TunnelServer_projectId, "f") !== body.function_details.project_id) {
|
|
77
|
+
res.status(403);
|
|
78
|
+
res.send();
|
|
79
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write();
|
|
80
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write('Invalid access: the tunnel is trying to access the functions from a different project');
|
|
81
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write();
|
|
82
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write('[STATUS]');
|
|
83
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write('FORBIDDEN');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const namedFn = __classPrivateFieldGet(this, _TunnelServer_contextMap, "f")[body.function_details.function_name];
|
|
87
|
+
if (namedFn) {
|
|
88
|
+
return namedFn;
|
|
89
|
+
}
|
|
90
|
+
res.status(404);
|
|
91
|
+
res.send();
|
|
92
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write();
|
|
93
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write(`The tunneled function ${(0, ansi_colors_1.bold)(body.function_details.function_name)} is not present in local project directory`);
|
|
94
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write();
|
|
95
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write('[STATUS]');
|
|
96
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write('NOT_FOUND');
|
|
97
|
+
return;
|
|
98
|
+
}).bind(this)();
|
|
99
|
+
if (!target) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const fnData = typeof body.function_data === 'string'
|
|
103
|
+
? JSON.parse(body.function_data)
|
|
104
|
+
: body.function_data;
|
|
105
|
+
target.call(false)(fnData);
|
|
106
|
+
const errorHandler = (e) => {
|
|
107
|
+
res.status(500);
|
|
108
|
+
res.send();
|
|
109
|
+
(0, logger_1.debug)('Target error: ' + e);
|
|
110
|
+
};
|
|
111
|
+
target.once('error', errorHandler);
|
|
112
|
+
const response = yield new Promise((resolve, reject) => {
|
|
113
|
+
target.once('response', (response) => {
|
|
114
|
+
target.removeListener('error', errorHandler);
|
|
115
|
+
if (!response.Status && !response.status) {
|
|
116
|
+
return reject(response);
|
|
117
|
+
}
|
|
118
|
+
resolve(response);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
response.ContentType && res.setHeader('Content-Type', response.ContentType);
|
|
122
|
+
res.status(response.status || 200);
|
|
123
|
+
res.send(response.responseBody);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
res.status(500);
|
|
127
|
+
res.send();
|
|
128
|
+
(0, logger_1.debug)(e);
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
131
|
+
return new Promise((res, rej) => {
|
|
132
|
+
try {
|
|
133
|
+
__classPrivateFieldSet(this, _TunnelServer_server, app.listen(port, 'localhost', () => {
|
|
134
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write();
|
|
135
|
+
__classPrivateFieldGet(this, _TunnelServer_repel, "f").write((0, ansi_colors_1.bold)('Tunneling server running on port: ' + (0, ansi_colors_1.green)(port + '')));
|
|
136
|
+
res();
|
|
137
|
+
}), "f");
|
|
138
|
+
__classPrivateFieldSet(this, _TunnelServer_destroyer, new server_1.ConnectionDestroyer(__classPrivateFieldGet(this, _TunnelServer_server, "f")), "f");
|
|
139
|
+
__classPrivateFieldGet(this, _TunnelServer_server, "f").on('error', (err) => {
|
|
140
|
+
throw new error_1.default('Tunneling server error', {
|
|
141
|
+
original: err,
|
|
142
|
+
exit: 2
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
catch (er) {
|
|
147
|
+
rej(new error_1.default('Unable to start the tunneling server', {
|
|
148
|
+
exit: 2,
|
|
149
|
+
original: er
|
|
150
|
+
}));
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
addContext(name, target) {
|
|
156
|
+
if (!__classPrivateFieldGet(this, _TunnelServer_server, "f")) {
|
|
157
|
+
return this;
|
|
158
|
+
}
|
|
159
|
+
__classPrivateFieldGet(this, _TunnelServer_contextMap, "f")[name] = target;
|
|
160
|
+
return this;
|
|
161
|
+
}
|
|
162
|
+
stopServer() {
|
|
163
|
+
var _a;
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
if (!__classPrivateFieldGet(this, _TunnelServer_server, "f")) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
return (_a = __classPrivateFieldGet(this, _TunnelServer_destroyer, "f")) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.default = TunnelServer;
|
|
173
|
+
_TunnelServer_contextMap = new WeakMap(), _TunnelServer_server = new WeakMap(), _TunnelServer_destroyer = new WeakMap(), _TunnelServer_repel = new WeakMap(), _TunnelServer_projectId = new WeakMap();
|
package/lib/shell/index.js
CHANGED
|
@@ -27,7 +27,10 @@ const http_functions_1 = __importDefault(require("./dependencies/http-functions"
|
|
|
27
27
|
const local_function_1 = __importDefault(require("./dependencies/local-function"));
|
|
28
28
|
const prepare_1 = __importDefault(require("./prepare"));
|
|
29
29
|
const fn_watcher_1 = __importDefault(require("../fn-watcher"));
|
|
30
|
+
const tunnel_server_1 = __importDefault(require("./dependencies/tunnel-server"));
|
|
31
|
+
const endpoints_1 = require("../endpoints");
|
|
30
32
|
exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
var _a;
|
|
31
34
|
const replServer = new repl_server_1.default({
|
|
32
35
|
prompt: 'functions > ',
|
|
33
36
|
writer: (output) => {
|
|
@@ -44,6 +47,7 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
44
47
|
}
|
|
45
48
|
});
|
|
46
49
|
const httpServer = new http_functions_1.default({ repl: replServer });
|
|
50
|
+
const tunnelServer = new tunnel_server_1.default(replServer);
|
|
47
51
|
const projectRoot = runtime_store_1.default.get('project.root');
|
|
48
52
|
try {
|
|
49
53
|
yield (0, prepare_1.default)([constants_1.FN_TYPE.basic, constants_1.FN_TYPE.cron, constants_1.FN_TYPE.event, constants_1.FN_TYPE.integration]);
|
|
@@ -55,6 +59,10 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
55
59
|
target.name +
|
|
56
60
|
'] is not a valid one reason : ' +
|
|
57
61
|
target.failure_reason);
|
|
62
|
+
Array.isArray(target.compilationError) &&
|
|
63
|
+
target.compilationError.forEach((er) => (0, logger_js_1.error)(er));
|
|
64
|
+
Array.isArray(target.compilationWarning) &&
|
|
65
|
+
target.compilationWarning.forEach((warn) => (0, logger_js_1.warning)(warn));
|
|
58
66
|
}
|
|
59
67
|
return target.valid;
|
|
60
68
|
});
|
|
@@ -65,6 +73,33 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
65
73
|
});
|
|
66
74
|
}
|
|
67
75
|
replServer.start();
|
|
76
|
+
yield tunnelServer.startServer();
|
|
77
|
+
const tunnelUrl = runtime_store_1.default.get('context.fn_shell.enable_tunnel', undefined);
|
|
78
|
+
const _tunnelAPI = yield (0, endpoints_1.tunnelAPI)();
|
|
79
|
+
if (tunnelUrl) {
|
|
80
|
+
try {
|
|
81
|
+
yield _tunnelAPI.enableTunnel(typeof tunnelUrl === 'string' ? tunnelUrl : undefined);
|
|
82
|
+
}
|
|
83
|
+
catch (er) {
|
|
84
|
+
const _er = error_1.default.getErrorInstance(er);
|
|
85
|
+
!replServer.closed && replServer.close();
|
|
86
|
+
yield tunnelServer.stopServer();
|
|
87
|
+
if (_er.status === 400) {
|
|
88
|
+
const data = (_a = _er.context) === null || _a === void 0 ? void 0 : _a.body.data;
|
|
89
|
+
throw new error_1.default('Unable to enable tunnel: ' + _er.message, {
|
|
90
|
+
exit: 1,
|
|
91
|
+
original: _er,
|
|
92
|
+
errorId: 'SHELL-IDX-2',
|
|
93
|
+
arg: [ansi_colors_1.italic.red(data.message + ''), ansi_colors_1.italic.red(data.error_code + '')]
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
throw new error_1.default('Unable to enable tunnel: ' + _er.message, {
|
|
97
|
+
exit: 2,
|
|
98
|
+
original: _er
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
replServer.write(ansi_colors_1.green.bold('Tunneling enabled'));
|
|
102
|
+
}
|
|
68
103
|
const watchOpt = (0, option_1.getOptionValue)('watch');
|
|
69
104
|
if (watchOpt === true) {
|
|
70
105
|
(0, logger_js_1.info)();
|
|
@@ -75,7 +110,8 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
75
110
|
yield (0, fn_watcher_1.default)(target);
|
|
76
111
|
}
|
|
77
112
|
const localFn = new local_function_1.default(replServer, target);
|
|
78
|
-
replServer.setContext(target.name, localFn.call);
|
|
113
|
+
replServer.setContext(target.name, localFn.call());
|
|
114
|
+
tunnelServer.addContext(target.id || target.name, localFn);
|
|
79
115
|
target.localFn = localFn;
|
|
80
116
|
})));
|
|
81
117
|
if (runtime_store_1.default.get('context.port.http.' + constants_1.FN_TYPE.basic, false)) {
|
|
@@ -83,6 +119,23 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
83
119
|
}
|
|
84
120
|
yield replServer.wait();
|
|
85
121
|
yield httpServer.stop();
|
|
122
|
+
yield tunnelServer.stopServer().finally(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
123
|
+
if (!tunnelUrl) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
const tunnelDetails = yield _tunnelAPI.getTunnel();
|
|
128
|
+
if (tunnelDetails.tunnel_status === 'Enabled') {
|
|
129
|
+
yield _tunnelAPI.disableTunnel();
|
|
130
|
+
(0, logger_js_1.info)();
|
|
131
|
+
(0, logger_js_1.info)(ansi_colors_1.green.bold('Tunneling disabled'));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (er) {
|
|
135
|
+
(0, logger_js_1.error)('Error disabling the tunnel');
|
|
136
|
+
(0, logger_js_1.debug)(er);
|
|
137
|
+
}
|
|
138
|
+
}));
|
|
86
139
|
yield Promise.all(targets.map((target) => __awaiter(void 0, void 0, void 0, function* () {
|
|
87
140
|
if (target.localFn) {
|
|
88
141
|
return target.localFn.shutdown();
|
|
@@ -94,6 +147,7 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
94
147
|
(0, logger_js_1.success)('shell complete');
|
|
95
148
|
}
|
|
96
149
|
catch (e) {
|
|
150
|
+
!replServer.closed && replServer.close();
|
|
97
151
|
yield Promise.all([
|
|
98
152
|
fs_1.ASYNC.deleteDir((0, path_1.join)(projectRoot, constants_1.FOLDERNAME.build)).catch(),
|
|
99
153
|
httpServer ? httpServer.stop() : undefined
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ENVPATH = exports.RUNTIME = exports.IAC = exports.PLUGIN = exports.ORIGIN = exports.TEMPLATE = exports.SCOPE = exports.REMOTE_REF = exports.REGEX = exports.REFERENCE = exports.PLACEHOLDER = exports.INTEG = exports.FOLDERNAME = exports.FN_TYPE = exports.DC_TYPE = exports.FILENAME = exports.EVENT_SOURCE = exports.EVENT_REF = exports.DEFAULT = exports.CLIQ = exports.AUTH = exports.APIG_RULES = void 0;
|
|
6
|
+
exports.NEEDED_SCOPES = exports.ENVPATH = exports.RUNTIME = exports.IAC = exports.PLUGIN = exports.ORIGIN = exports.TEMPLATE = exports.SCOPE = exports.REMOTE_REF = exports.REGEX = exports.REFERENCE = exports.PLACEHOLDER = exports.INTEG = exports.FOLDERNAME = exports.FN_TYPE = exports.DC_TYPE = exports.FILENAME = exports.EVENT_SOURCE = exports.EVENT_REF = exports.DEFAULT = exports.CLIQ = exports.AUTH = exports.APIG_RULES = void 0;
|
|
7
7
|
var apig_rules_1 = require("./lib/apig-rules");
|
|
8
8
|
Object.defineProperty(exports, "APIG_RULES", { enumerable: true, get: function () { return __importDefault(apig_rules_1).default; } });
|
|
9
9
|
var auth_1 = require("./lib/auth");
|
|
@@ -48,3 +48,5 @@ var runtime_1 = require("./lib/runtime");
|
|
|
48
48
|
Object.defineProperty(exports, "RUNTIME", { enumerable: true, get: function () { return __importDefault(runtime_1).default; } });
|
|
49
49
|
var env_path_1 = require("./lib/env-path");
|
|
50
50
|
Object.defineProperty(exports, "ENVPATH", { enumerable: true, get: function () { return __importDefault(env_path_1).default; } });
|
|
51
|
+
var needed_scopes_1 = require("./lib/needed-scopes");
|
|
52
|
+
Object.defineProperty(exports, "NEEDED_SCOPES", { enumerable: true, get: function () { return __importDefault(needed_scopes_1).default; } });
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const scopes_1 = __importDefault(require("./scopes"));
|
|
7
|
+
exports.default = Object.freeze({
|
|
8
|
+
SERVE: [
|
|
9
|
+
scopes_1.default.api_read,
|
|
10
|
+
scopes_1.default.apig_read,
|
|
11
|
+
scopes_1.default.segment,
|
|
12
|
+
scopes_1.default.cache_read,
|
|
13
|
+
scopes_1.default.cache_create,
|
|
14
|
+
scopes_1.default.cache_delete,
|
|
15
|
+
scopes_1.default.projects,
|
|
16
|
+
scopes_1.default.cron,
|
|
17
|
+
scopes_1.default.zcql,
|
|
18
|
+
scopes_1.default.project_user_read,
|
|
19
|
+
scopes_1.default.project_user_create,
|
|
20
|
+
scopes_1.default.project_user_delete,
|
|
21
|
+
scopes_1.default.project_user_update,
|
|
22
|
+
scopes_1.default.email_send,
|
|
23
|
+
scopes_1.default.datastore,
|
|
24
|
+
scopes_1.default.row,
|
|
25
|
+
scopes_1.default.column,
|
|
26
|
+
scopes_1.default.bulk_create,
|
|
27
|
+
scopes_1.default.bulk_read,
|
|
28
|
+
scopes_1.default.folders,
|
|
29
|
+
scopes_1.default.file_create,
|
|
30
|
+
scopes_1.default.file_read,
|
|
31
|
+
scopes_1.default.file_delete,
|
|
32
|
+
scopes_1.default.functions,
|
|
33
|
+
scopes_1.default.functions_execution,
|
|
34
|
+
scopes_1.default.event_listeners,
|
|
35
|
+
scopes_1.default.event_produce,
|
|
36
|
+
scopes_1.default.security_read,
|
|
37
|
+
scopes_1.default.security_update,
|
|
38
|
+
scopes_1.default.notification_mobile,
|
|
39
|
+
scopes_1.default.notification_web,
|
|
40
|
+
scopes_1.default.search_read,
|
|
41
|
+
scopes_1.default.zia,
|
|
42
|
+
scopes_1.default.quick_ml,
|
|
43
|
+
scopes_1.default.pdf_shot,
|
|
44
|
+
scopes_1.default.dataverse,
|
|
45
|
+
scopes_1.default.circuits_exe_delete,
|
|
46
|
+
scopes_1.default.circuits_exe_read,
|
|
47
|
+
scopes_1.default.circuits_execute,
|
|
48
|
+
scopes_1.default.appsail_read,
|
|
49
|
+
scopes_1.default.nosql_table,
|
|
50
|
+
scopes_1.default.nosql_rows
|
|
51
|
+
]
|
|
52
|
+
});
|
|
@@ -27,12 +27,15 @@ exports.default = Object.freeze({
|
|
|
27
27
|
project_user_create: 'ZohoCatalyst.projects.users.CREATE',
|
|
28
28
|
project_user_delete: 'ZohoCatalyst.projects.users.DELETE',
|
|
29
29
|
project_user_update: 'ZohoCatalyst.projects.users.UPDATE',
|
|
30
|
+
custom_token_generation: 'ZohoCatalyst.authentication.CREATE',
|
|
30
31
|
email_send: 'ZohoCatalyst.email.CREATE',
|
|
31
32
|
datastore: 'ZohoCatalyst.tables.ALL',
|
|
32
33
|
row: 'ZohoCatalyst.tables.rows.ALL',
|
|
33
34
|
column: 'ZohoCatalyst.tables.columns.ALL',
|
|
34
35
|
bulk_read: 'ZohoCatalyst.tables.bulk.READ',
|
|
35
36
|
bulk_create: 'ZohoCatalyst.tables.bulk.CREATE',
|
|
37
|
+
nosql_table: 'ZohoCatalyst.nosql.READ',
|
|
38
|
+
nosql_rows: 'ZohoCatalyst.nosql.rows.ALL',
|
|
36
39
|
folders: 'ZohoCatalyst.folders.ALL',
|
|
37
40
|
file_create: 'ZohoCatalyst.files.CREATE',
|
|
38
41
|
file_read: 'ZohoCatalyst.files.READ',
|
|
@@ -58,6 +61,8 @@ exports.default = Object.freeze({
|
|
|
58
61
|
appsail_create: 'ZohoCatalyst.appsail.Create',
|
|
59
62
|
appsail_update: 'ZohoCatalyst.appsail.Update',
|
|
60
63
|
appsail_delete: 'ZohoCatalyst.appsail.Delete',
|
|
64
|
+
tunneling_read: 'ZohoCatalyst.tunneling.READ',
|
|
65
|
+
tunneling_update: 'ZohoCatalyst.tunneling.UPDATE',
|
|
61
66
|
iam_profile: 'AaaServer.profile.READ',
|
|
62
67
|
stratus_create: 'Stratus.sdkop.CREATE',
|
|
63
68
|
stratus_read: 'Stratus.sdkop.READ'
|
|
@@ -34,6 +34,13 @@ class URL {
|
|
|
34
34
|
}
|
|
35
35
|
return URL._app.replace('.com', dc.ext);
|
|
36
36
|
}
|
|
37
|
+
static get appSailDomain() {
|
|
38
|
+
const dc = (0, dc_js_1.getActiveDCType)();
|
|
39
|
+
if (dc === undefined) {
|
|
40
|
+
return URL._appSailDomain;
|
|
41
|
+
}
|
|
42
|
+
return URL._appSailDomain.replace('.com', dc.ext);
|
|
43
|
+
}
|
|
37
44
|
static get catalystStatic() {
|
|
38
45
|
const dc = (0, dc_js_1.getActiveDCType)();
|
|
39
46
|
if (dc === undefined) {
|
|
@@ -59,6 +66,7 @@ exports.default = URL;
|
|
|
59
66
|
URL._auth = (0, env_js_1.envOverride)('CATALYST_AUTH_URL', 'https://accounts.zoho.com');
|
|
60
67
|
URL._admin = (0, env_js_1.envOverride)('CATALYST_ADMIN_URL', 'https://api.catalyst.zoho.com');
|
|
61
68
|
URL._app = (0, env_js_1.envOverride)('CATALYST_APP_URL', 'https://catalystserverless.com');
|
|
69
|
+
URL._appSailDomain = (0, env_js_1.envOverride)('CATALYST_APPSAIL_URL', 'https://catalystappsail.com');
|
|
62
70
|
URL._zohoStatic = (0, env_js_1.envOverride)('ZOHO_STATIC', 'https://www.zoho.com/catalyst');
|
|
63
71
|
URL._console = (0, env_js_1.envOverride)('CATALYST_CONSOLE_URL', 'https://console.catalyst.zoho.com');
|
|
64
72
|
URL.zohoCDN = (0, env_js_1.envOverride)('ZOHO_CDN', 'https://static.zohocdn.com');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zcatalyst-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0-beta.0",
|
|
4
4
|
"description": "Command Line Tool for CATALYST",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@types/jest": "^27.4.1",
|
|
72
72
|
"@types/lodash": "^4.14.182",
|
|
73
73
|
"@types/minimatch": "^5.1.2",
|
|
74
|
-
"@types/node": "^
|
|
74
|
+
"@types/node": "^20.12.7",
|
|
75
75
|
"@types/request": "^2.48.8",
|
|
76
76
|
"@types/semver": "^7.3.9",
|
|
77
77
|
"@types/update-notifier": "^5.1.0",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"npm-run-all": "^4.1.5",
|
|
88
88
|
"prettier": "^2.6.2",
|
|
89
89
|
"ts-jest": "^27.1.4",
|
|
90
|
-
"typescript": "^4.
|
|
90
|
+
"typescript": "^4.9.5"
|
|
91
91
|
},
|
|
92
92
|
"scripts": {
|
|
93
93
|
"build": "gulp build",
|