@bigid/apps-infrastructure-node-js 0.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.
Files changed (68) hide show
  1. package/.dcignore +1547 -0
  2. package/.eslintrc.json +33 -0
  3. package/.idea/apps-infrastructure-node-js.iml +9 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/prettier.xml +7 -0
  7. package/.idea/runConfigurations.xml +10 -0
  8. package/.idea/snyk.project.settings.xml +6 -0
  9. package/.idea/vcs.xml +6 -0
  10. package/.prettierrc.json +8 -0
  11. package/README.md +11 -0
  12. package/lib/abstractProviders/executionProvider.d.ts +13 -0
  13. package/lib/abstractProviders/executionProvider.js +35 -0
  14. package/lib/abstractProviders/iconsProviders.d.ts +4 -0
  15. package/lib/abstractProviders/iconsProviders.js +6 -0
  16. package/lib/abstractProviders/index.d.ts +3 -0
  17. package/lib/abstractProviders/index.js +10 -0
  18. package/lib/abstractProviders/logsProvider.d.ts +2 -0
  19. package/lib/abstractProviders/logsProvider.js +7 -0
  20. package/lib/abstractProviders/manifestProvider.d.ts +3 -0
  21. package/lib/abstractProviders/manifestProvider.js +6 -0
  22. package/lib/appTypes/actionResponseDetails.d.ts +6 -0
  23. package/lib/appTypes/actionResponseDetails.js +2 -0
  24. package/lib/appTypes/executionContext.d.ts +10 -0
  25. package/lib/appTypes/executionContext.js +2 -0
  26. package/lib/appTypes/index.d.ts +2 -0
  27. package/lib/appTypes/index.js +2 -0
  28. package/lib/dto/actionResponseDetails.d.ts +8 -0
  29. package/lib/dto/actionResponseDetails.js +13 -0
  30. package/lib/dto/executionContext.d.ts +11 -0
  31. package/lib/dto/executionContext.js +16 -0
  32. package/lib/dto/index.d.ts +2 -0
  33. package/lib/dto/index.js +7 -0
  34. package/lib/dto/keysValuesToStore.d.ts +5 -0
  35. package/lib/dto/keysValuesToStore.js +19 -0
  36. package/lib/index.d.ts +5 -0
  37. package/lib/index.js +24 -0
  38. package/lib/routes/router.d.ts +1 -0
  39. package/lib/routes/router.js +15 -0
  40. package/lib/server.d.ts +10 -0
  41. package/lib/server.js +48 -0
  42. package/lib/services/bigidProxyService.d.ts +28 -0
  43. package/lib/services/bigidProxyService.js +135 -0
  44. package/lib/services/index.d.ts +1 -0
  45. package/lib/services/index.js +13 -0
  46. package/lib/utils/appLogger.d.ts +1 -0
  47. package/lib/utils/appLogger.js +22 -0
  48. package/lib/utils/constants.d.ts +1 -0
  49. package/lib/utils/constants.js +4 -0
  50. package/lib/utils/index.d.ts +1 -0
  51. package/lib/utils/index.js +5 -0
  52. package/package.json +33 -0
  53. package/src/abstractProviders/executionProvider.ts +27 -0
  54. package/src/abstractProviders/iconsProviders.ts +4 -0
  55. package/src/abstractProviders/index.ts +3 -0
  56. package/src/abstractProviders/logsProvider.ts +6 -0
  57. package/src/abstractProviders/manifestProvider.ts +3 -0
  58. package/src/dto/actionResponseDetails.ts +15 -0
  59. package/src/dto/executionContext.ts +30 -0
  60. package/src/dto/index.ts +2 -0
  61. package/src/index.ts +5 -0
  62. package/src/server.ts +52 -0
  63. package/src/services/bigidProxyService.ts +150 -0
  64. package/src/services/index.ts +1 -0
  65. package/src/utils/appLogger.ts +21 -0
  66. package/src/utils/constants.ts +1 -0
  67. package/src/utils/index.ts +1 -0
  68. package/tsconfig.json +19 -0
package/.eslintrc.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "env": {
3
+ "browser": true,
4
+ "es2021": true
5
+ },
6
+ "extends": [
7
+ "eslint:recommended",
8
+ "plugin:prettier/recommended",
9
+ "plugin:@typescript-eslint/recommended",
10
+ "prettier/@typescript-eslint",
11
+ "plugin:prettier/recommended"
12
+ ],
13
+ "parser": "@typescript-eslint/parser",
14
+ "parserOptions": {
15
+ "ecmaVersion": 13,
16
+ "sourceType": "module"
17
+ },
18
+ "plugins": ["@typescript-eslint", "no-only-tests"],
19
+ "rules": {
20
+ "camel-case": 0,
21
+ "no-console": "off",
22
+ "no-use-before-define": 0,
23
+ "@typescript-eslint/camelcase": 0,
24
+ "@typescript-eslint/no-empty-function": 0,
25
+ "@typescript-eslint/no-use-before-define": 0,
26
+ "@typescript-eslint/explicit-function-return-type": 0,
27
+ "@typescript-eslint/explicit-member-accessibility": 0,
28
+ "@typescript-eslint/no-this-alias": 1,
29
+ "@typescript-eslint/no-empty-interface": 0,
30
+ "@typescript-eslint/no-var-requires": 0,
31
+ "no-only-tests/no-only-tests": "error"
32
+ }
33
+ }
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="JAVA_MODULE" version="4">
3
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
4
+ <exclude-output />
5
+ <content url="file://$MODULE_DIR$" />
6
+ <orderEntry type="inheritedJdk" />
7
+ <orderEntry type="sourceFolder" forTests="false" />
8
+ </component>
9
+ </module>
package/.idea/misc.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager">
4
+ <output url="file://$PROJECT_DIR$/out" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/apps-infrastructure-node-js.iml" filepath="$PROJECT_DIR$/.idea/apps-infrastructure-node-js.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PrettierConfiguration">
4
+ <option name="myRunOnSave" value="true" />
5
+ <option name="myRunOnReformat" value="true" />
6
+ </component>
7
+ </project>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="RunConfigurationProducerService">
4
+ <option name="ignoredProducers">
5
+ <set>
6
+ <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
7
+ </set>
8
+ </option>
9
+ </component>
10
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="SnykProjectSettingsState">
4
+ <option name="additionalParameters" value="" />
5
+ </component>
6
+ </project>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ {
2
+ "semi": true,
3
+ "trailingComma": "all",
4
+ "singleQuote": true,
5
+ "printWidth": 120,
6
+ "tabWidth": 2,
7
+ "arrowParens": "avoid"
8
+ }
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # apps-infrastructure-node-js
2
+ The applications infrastructure for node.js is a wrapper for node application.
3
+
4
+ This wrapper handles all the necessary endpoints for communicate with bigid, provide dtos and logger for quick application development.
5
+
6
+ ### HOW TO USE?
7
+ First get the package from npm.
8
+
9
+ ```npm install @bigid/apps-infrastructure-node-js```
10
+
11
+ After the package installed - implement all the providers in your application and in your root app file use ```deployServer()``` for creating the server.
@@ -0,0 +1,13 @@
1
+ import { Request, Response } from 'express';
2
+ export declare const StatusEnum: {
3
+ COMPLETED: string;
4
+ IN_PROGRESS: string;
5
+ ERROR: string;
6
+ };
7
+ export declare const handleExecution: (req: Request, res: Response, executionProvider: ExecutionProvider) => Promise<void>;
8
+ export declare abstract class ExecutionProvider {
9
+ abstract executeAction(req: Request, res: Response): Promise<void>;
10
+ generateSyncSuccessMessage: (res: Response, executionId: string, message: string) => Response<any, Record<string, any>>;
11
+ generateAsyncSuccessMessage: (res: Response, executionId: string, message: string) => Response<any, Record<string, any>>;
12
+ generateFailedResponse: (res: Response, executionId: string, e: Error) => Response<any, Record<string, any>>;
13
+ }
@@ -0,0 +1,35 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ExecutionProvider = exports.handleExecution = exports.StatusEnum = void 0;
13
+ const actionResponseDetails_1 = require("../dto/actionResponseDetails");
14
+ const services_1 = require("../services");
15
+ exports.StatusEnum = {
16
+ COMPLETED: 'COMPLETED',
17
+ IN_PROGRESS: 'IN_PROGRESS',
18
+ ERROR: 'ERROR',
19
+ };
20
+ const handleExecution = (req, res, executionProvider) => __awaiter(void 0, void 0, void 0, function* () {
21
+ (0, services_1.setValuesForBigIDProxy)(req.body);
22
+ yield executionProvider.executeAction(req, res);
23
+ });
24
+ exports.handleExecution = handleExecution;
25
+ class ExecutionProvider {
26
+ constructor() {
27
+ this.generateSyncSuccessMessage = (res, executionId, message) => res.status(200)
28
+ .json(new actionResponseDetails_1.ActionResponseDetails(executionId, exports.StatusEnum.COMPLETED, 1, message));
29
+ this.generateAsyncSuccessMessage = (res, executionId, message) => res.status(202)
30
+ .json(new actionResponseDetails_1.ActionResponseDetails(executionId, exports.StatusEnum.IN_PROGRESS, 0, message));
31
+ this.generateFailedResponse = (res, executionId, e) => res.status(400)
32
+ .json(new actionResponseDetails_1.ActionResponseDetails(executionId, exports.StatusEnum.ERROR, 0, e.message));
33
+ }
34
+ }
35
+ exports.ExecutionProvider = ExecutionProvider;
@@ -0,0 +1,4 @@
1
+ export declare abstract class IconsProviders {
2
+ abstract getIconPath(): string;
3
+ abstract getSideBarIconPath(): string;
4
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconsProviders = void 0;
4
+ class IconsProviders {
5
+ }
6
+ exports.IconsProviders = IconsProviders;
@@ -0,0 +1,3 @@
1
+ export { ManifestProvider } from './manifestProvider';
2
+ export { IconsProviders } from './iconsProviders';
3
+ export { ExecutionProvider, StatusEnum } from './executionProvider';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusEnum = exports.ExecutionProvider = exports.IconsProviders = exports.ManifestProvider = void 0;
4
+ var manifestProvider_1 = require("./manifestProvider");
5
+ Object.defineProperty(exports, "ManifestProvider", { enumerable: true, get: function () { return manifestProvider_1.ManifestProvider; } });
6
+ var iconsProviders_1 = require("./iconsProviders");
7
+ Object.defineProperty(exports, "IconsProviders", { enumerable: true, get: function () { return iconsProviders_1.IconsProviders; } });
8
+ var executionProvider_1 = require("./executionProvider");
9
+ Object.defineProperty(exports, "ExecutionProvider", { enumerable: true, get: function () { return executionProvider_1.ExecutionProvider; } });
10
+ Object.defineProperty(exports, "StatusEnum", { enumerable: true, get: function () { return executionProvider_1.StatusEnum; } });
@@ -0,0 +1,2 @@
1
+ import { Request, Response } from 'express';
2
+ export declare const fetchLogs: (req: Request, res: Response) => Response<any, Record<string, any>>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchLogs = void 0;
4
+ const fs_1 = require("fs");
5
+ const constants_1 = require("../utils/constants");
6
+ const fetchLogs = (req, res) => (0, fs_1.createReadStream)(constants_1.LOGS_PATH).pipe(res);
7
+ exports.fetchLogs = fetchLogs;
@@ -0,0 +1,3 @@
1
+ export declare abstract class ManifestProvider {
2
+ abstract getManifest(req: any, res: any): string;
3
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ManifestProvider = void 0;
4
+ class ManifestProvider {
5
+ }
6
+ exports.ManifestProvider = ManifestProvider;
@@ -0,0 +1,6 @@
1
+ export interface ActionResponseDetails {
2
+ executionId: string;
3
+ statusEnum: string;
4
+ progress: number;
5
+ message: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ export interface ExecutionContext {
2
+ actionName: string;
3
+ executionId: string;
4
+ globalParams: any;
5
+ actionParams: any;
6
+ bigidBaseUrl: string;
7
+ bigidToken: string;
8
+ updateResultCallback: any;
9
+ tpaId: string;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export { ExecutionContext } from './executionContext';
2
+ export { ActionResponseDetails } from './actionResponseDetails';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ export declare class ActionResponseDetails {
2
+ executionId: string;
3
+ statusEnum: string;
4
+ progress: number;
5
+ message: string;
6
+ additionalData?: any;
7
+ constructor(executionId: string, statusEnum: string, progress: number, message: string, additionalData?: any);
8
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActionResponseDetails = void 0;
4
+ class ActionResponseDetails {
5
+ constructor(executionId, statusEnum, progress, message, additionalData) {
6
+ this.executionId = executionId;
7
+ this.statusEnum = statusEnum;
8
+ this.progress = progress;
9
+ this.message = message;
10
+ this.additionalData = additionalData;
11
+ }
12
+ }
13
+ exports.ActionResponseDetails = ActionResponseDetails;
@@ -0,0 +1,11 @@
1
+ export declare class ExecutionContext {
2
+ actionName: string;
3
+ executionId: string;
4
+ globalParams: Record<string, string>;
5
+ actionParams: Record<string, string>;
6
+ bigidBaseUrl: string;
7
+ bigidToken: string;
8
+ updateResultCallback: any;
9
+ tpaId: string;
10
+ constructor(actionName: string, executionId: string, globalParams: Record<string, string>, actionParams: Record<string, string>, bigidBaseUrl: string, bigidToken: string, updateResultCallback: any, tpaId: string);
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutionContext = void 0;
4
+ class ExecutionContext {
5
+ constructor(actionName, executionId, globalParams, actionParams, bigidBaseUrl, bigidToken, updateResultCallback, tpaId) {
6
+ this.actionName = actionName;
7
+ this.executionId = executionId;
8
+ this.globalParams = globalParams;
9
+ this.actionParams = actionParams;
10
+ this.bigidBaseUrl = bigidBaseUrl;
11
+ this.bigidToken = bigidToken;
12
+ this.updateResultCallback = updateResultCallback;
13
+ this.tpaId = tpaId;
14
+ }
15
+ }
16
+ exports.ExecutionContext = ExecutionContext;
@@ -0,0 +1,2 @@
1
+ export { ExecutionContext } from './executionContext';
2
+ export { ActionResponseDetails } from './actionResponseDetails';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActionResponseDetails = exports.ExecutionContext = void 0;
4
+ var executionContext_1 = require("./executionContext");
5
+ Object.defineProperty(exports, "ExecutionContext", { enumerable: true, get: function () { return executionContext_1.ExecutionContext; } });
6
+ var actionResponseDetails_1 = require("./actionResponseDetails");
7
+ Object.defineProperty(exports, "ActionResponseDetails", { enumerable: true, get: function () { return actionResponseDetails_1.ActionResponseDetails; } });
@@ -0,0 +1,5 @@
1
+ declare class KeysValuesToStore {
2
+ constructor(key: any, paramValue: any);
3
+ addKeyValue(key: any, value: any): void;
4
+ getValue(key: any): any;
5
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ class KeysValuesToStore {
3
+ constructor(key, paramValue) {
4
+ this.keysValues = [];
5
+ this.addKeyValue(key, paramValue);
6
+ }
7
+ addKeyValue(key, value) {
8
+ this.keysValues.push(new KeyValue(key, value));
9
+ }
10
+ getValue(key) {
11
+ for (const keyValue of keysValues) {
12
+ if (keyValue.key === key) {
13
+ return keyValue.value;
14
+ }
15
+ }
16
+ return '';
17
+ }
18
+ }
19
+ module.exports = KeysValuesToStore;
package/lib/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './abstractProviders';
2
+ export * from './dto';
3
+ export * from './utils';
4
+ export { updateActionStatusToBigID, uploadAttachment, getValueFromAppStorage, saveInStorage, executeHttpGet } from './services';
5
+ export { deployServer, ServerInit } from './server';
package/lib/index.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.deployServer = exports.executeHttpGet = exports.saveInStorage = exports.getValueFromAppStorage = exports.uploadAttachment = exports.updateActionStatusToBigID = void 0;
14
+ __exportStar(require("./abstractProviders"), exports);
15
+ __exportStar(require("./dto"), exports);
16
+ __exportStar(require("./utils"), exports);
17
+ var services_1 = require("./services");
18
+ Object.defineProperty(exports, "updateActionStatusToBigID", { enumerable: true, get: function () { return services_1.updateActionStatusToBigID; } });
19
+ Object.defineProperty(exports, "uploadAttachment", { enumerable: true, get: function () { return services_1.uploadAttachment; } });
20
+ Object.defineProperty(exports, "getValueFromAppStorage", { enumerable: true, get: function () { return services_1.getValueFromAppStorage; } });
21
+ Object.defineProperty(exports, "saveInStorage", { enumerable: true, get: function () { return services_1.saveInStorage; } });
22
+ Object.defineProperty(exports, "executeHttpGet", { enumerable: true, get: function () { return services_1.executeHttpGet; } });
23
+ var server_1 = require("./server");
24
+ Object.defineProperty(exports, "deployServer", { enumerable: true, get: function () { return server_1.deployServer; } });
@@ -0,0 +1 @@
1
+ export declare const router: () => Promise<void>;
@@ -0,0 +1,15 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.router = void 0;
13
+ const router = () => __awaiter(void 0, void 0, void 0, function* () {
14
+ });
15
+ exports.router = router;
@@ -0,0 +1,10 @@
1
+ import { ManifestProvider } from "./abstractProviders/manifestProvider";
2
+ import { IconsProviders } from "./abstractProviders/iconsProviders";
3
+ import { ExecutionProvider } from "./abstractProviders/executionProvider";
4
+ export interface ServerInit {
5
+ manifestController: ManifestProvider;
6
+ iconsController: IconsProviders;
7
+ executionController: ExecutionProvider;
8
+ serverPort?: number;
9
+ }
10
+ export declare const deployServer: (serverInit: ServerInit) => void;
package/lib/server.js ADDED
@@ -0,0 +1,48 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.deployServer = void 0;
16
+ const express_1 = __importDefault(require("express"));
17
+ const appLogger_1 = require("./utils/appLogger");
18
+ const executionProvider_1 = require("./abstractProviders/executionProvider");
19
+ const logsProvider_1 = require("./abstractProviders/logsProvider");
20
+ const http_errors_1 = __importDefault(require("http-errors"));
21
+ ;
22
+ const app = (0, express_1.default)();
23
+ const deployServer = (serverInit) => {
24
+ app.use(express_1.default.json());
25
+ app.use(express_1.default.urlencoded({ extended: false }));
26
+ app.get('/assets/icon', (req, res) => res.sendFile(serverInit.iconsController.getIconPath()));
27
+ app.get('/assets/sideBarIcon', (req, res) => res.sendFile(serverInit.iconsController.getSideBarIconPath()));
28
+ app.get('/manifest', serverInit.manifestController.getManifest);
29
+ app.post('/execute', (req, res) => __awaiter(void 0, void 0, void 0, function* () { return yield (0, executionProvider_1.handleExecution)(req, res, serverInit.executionController); }));
30
+ app.get('/logs', logsProvider_1.fetchLogs);
31
+ app.listen(serverInit.serverPort || process.env.PORT, () => appLogger_1.appLogger.info(`Started server at port ${serverInit.serverPort || process.env.PORT}`));
32
+ // catch 404 and forward to error handler
33
+ app.use((req, res, next) => next((0, http_errors_1.default)(404)));
34
+ // error handler
35
+ app.use((err, req, res, next) => {
36
+ const { message, status } = err;
37
+ appLogger_1.appLogger.error(err);
38
+ res.locals.message = message;
39
+ res.locals.error = req.app.get('env') === 'development' ? err : {};
40
+ res.status(status || 500);
41
+ res.json({
42
+ status: "error",
43
+ statusCode: status || 500,
44
+ message
45
+ });
46
+ });
47
+ };
48
+ exports.deployServer = deployServer;
@@ -0,0 +1,28 @@
1
+ import { ExecutionContext } from "../dto";
2
+ import { ActionResponseDetails } from '../dto/actionResponseDetails';
3
+ export declare const initBigIDProxy: (bigIdUrl: string, callBackUrl: string, bigIdToken: string, tpaId: string) => void;
4
+ /**
5
+ * This method receives a message object to update BigID regarding the current state of the action execution
6
+ * (should be used in case of an async actions)
7
+ * @param actionResponseDetailsParam
8
+ */
9
+ export declare const updateActionStatusToBigID: (actionResponseDetails: ActionResponseDetails) => Promise<any>;
10
+ /**
11
+ *
12
+ * @param endpoint - the endpoint in BigID, used for GET request. e.g - {BigIDBaseUrl}/ds_connections
13
+ * @return - String containing the response from BigID
14
+ */
15
+ export declare const executeHttpGet: (endpoint: string) => Promise<any>;
16
+ /**
17
+ * the endpoint in BigID, used for POST requests. e.g - {BigIDBaseUrl}/scan
18
+ */
19
+ export declare const executeHttpPost: (endpoint: string, actionResponseDetails: ActionResponseDetails) => Promise<any>;
20
+ /**
21
+ * the endpoint in BigID, used for POST requests. e.g - {BigIDBaseUrl}/scan
22
+ */
23
+ export declare const executeHttpPut: (endpoint: string, obj: any) => Promise<any>;
24
+ export declare const uploadAttachment: (filePathToUpload: string) => import("axios").AxiosPromise<any>;
25
+ export declare const getAppStorage: () => Promise<any>;
26
+ export declare const getValueFromAppStorage: (key: string) => Promise<any>;
27
+ export declare const saveInStorage: (keyToStore: any, valueToStore: any) => Promise<any>;
28
+ export declare const setValuesForBigIDProxy: (executionContext: ExecutionContext) => void;