From 7acc6d74069f9eb5ee6309fc9e13421b6f8c04b0 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 25 Jan 2022 12:42:33 +0200 Subject: [PATCH 01/14] Added dialogflow-cx dependency --- package-lock.json | 590 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 1 + 2 files changed, 573 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4615b5e4e..e95a2a6c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -164,6 +164,147 @@ "to-fast-properties": "^2.0.0" } }, + "@google-cloud/dialogflow-cx": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@google-cloud/dialogflow-cx/-/dialogflow-cx-2.15.0.tgz", + "integrity": "sha512-uZoX2AdpU9SuysNzvvSzk7iV2HhNxttvfTYeDkRgMMJSv/xf0tyiujcKybK/b628RVVNsAQhEFDR0NDykFs/4w==", + "requires": { + "google-gax": "^2.24.1" + } + }, + "@grpc/grpc-js": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.3.tgz", + "integrity": "sha512-q0xgaZ3ymUM+ZOhe1hdocVSdKHCnJ6llLSXcP+MqMXMyYPUZ3mzQOCxZ3Zkg+QZ7sZ950sn7hvueQrIJZumPZg==", + "requires": { + "@grpc/proto-loader": "^0.6.4", + "@types/node": ">=12.12.47" + }, + "dependencies": { + "@types/node": { + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", + "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + } + } + }, + "@grpc/proto-loader": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", + "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", + "requires": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^6.10.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, "@gulp-sourcemaps/identity-map": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", @@ -195,6 +336,60 @@ "through2": "^2.0.3" } }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, "@types/adm-zip": { "version": "0.4.31", "resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.4.31.tgz", @@ -225,6 +420,11 @@ "@types/lodash": "*" } }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, "@types/nedb": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.5.tgz", @@ -268,6 +468,14 @@ "through": ">=2.2.7 <3" } }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "acorn": { "version": "5.7.4", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", @@ -327,6 +535,29 @@ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==" }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -806,8 +1037,7 @@ "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "basic-auth": { "version": "1.1.0", @@ -815,6 +1045,11 @@ "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", "dev": true }, + "bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" + }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -1096,6 +1331,11 @@ "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", "dev": true }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, "buffer-from": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", @@ -2051,6 +2291,14 @@ "object.defaults": "^1.1.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ecstatic": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", @@ -2110,7 +2358,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -2193,6 +2440,11 @@ "es6-symbol": "^3.1.1" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2369,6 +2621,11 @@ "es5-ext": "~0.10.14" } }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -2453,8 +2710,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "1.1.4", @@ -2617,6 +2873,11 @@ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, + "fast-text-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", + "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -2894,6 +3155,34 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gaxios": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", + "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.1" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + } + } + }, + "gcp-metadata": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", + "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", + "requires": { + "gaxios": "^4.0.0", + "json-bigint": "^1.0.0" + } + }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -3054,12 +3343,122 @@ "sparkles": "^1.0.0" } }, + "google-auth-library": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz", + "integrity": "sha512-3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg==", + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "google-gax": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.29.4.tgz", + "integrity": "sha512-3o6cByD2fE1yIc6i1gpKMQlJStqlvu8Sa/Ly/HCQ6GPHpltpVfkTT4KVj2YLVa7WTSDoGbsLBDmJ1KfN1uNiRw==", + "requires": { + "@grpc/grpc-js": "~1.5.0", + "@grpc/proto-loader": "^0.6.1", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "fast-text-encoding": "^1.0.3", + "google-auth-library": "^7.6.1", + "is-stream-ended": "^0.1.4", + "node-fetch": "^2.6.1", + "object-hash": "^2.1.1", + "proto3-json-serializer": "^0.1.7", + "protobufjs": "6.11.2", + "retry-request": "^4.0.0" + }, + "dependencies": { + "duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "requires": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "google-p12-pem": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", + "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", + "requires": { + "node-forge": "^1.0.0" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "gtoken": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", + "integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", + "requires": { + "gaxios": "^4.0.0", + "google-p12-pem": "^3.0.3", + "jws": "^4.0.0" + } + }, "gulp": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", @@ -3731,6 +4130,30 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "iconv-lite": { "version": "0.4.21", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", @@ -3786,8 +4209,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.8", @@ -4178,6 +4600,11 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-stream-ended": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" + }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -4373,6 +4800,14 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -4481,6 +4916,25 @@ "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", "dev": true }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -4641,6 +5095,11 @@ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -4658,6 +5117,11 @@ "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", "dev": true }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -5173,6 +5637,19 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", + "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" + }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -5350,6 +5827,11 @@ } } }, + "object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" + }, "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", @@ -5422,7 +5904,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -5923,6 +6404,41 @@ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, + "proto3-json-serializer": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz", + "integrity": "sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw==", + "requires": { + "protobufjs": "^6.11.2" + } + }, + "protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", + "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + } + } + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -6249,8 +6765,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", @@ -6330,6 +6845,30 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "retry-request": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", + "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", + "requires": { + "debug": "^4.1.1", + "extend": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", @@ -6376,8 +6915,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safe-regex": { "version": "1.1.0", @@ -6943,8 +7481,7 @@ "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-splicer": { "version": "2.0.1", @@ -7424,6 +7961,11 @@ "through2": "^2.0.3" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -7884,8 +8426,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.2.1", @@ -8017,6 +8558,20 @@ "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", "dev": true }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "1.2.14", "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", @@ -8073,8 +8628,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "0.2.1", diff --git a/package.json b/package.json index ebabf06da..960ae595c 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "uglify-es": "^3.3.9" }, "dependencies": { + "@google-cloud/dialogflow-cx": "^2.15.0", "adm-zip": "^0.4.9", "cryptiles": "^4.1.3", "lodash.clonedeep": "^4.5.0", From 85267138b0c1df0a6153aa13ae44b5d4997bc481 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 25 Jan 2022 13:06:28 +0200 Subject: [PATCH 02/14] Added custom require for dialogflow cx --- server/misc/Utilities.js | 4 ++++ server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index b749f4cba..1ed2389fa 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -54,6 +54,10 @@ class Utilities { } static buildCustomRequire(files, appId, logSetting = 0, currentPath = '.') { return function _requirer(mod) { + if (mod.startsWith('@google-cloud/dialogflow-cx')) { + console.log('in'); + return require(mod); + } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { mod = path.normalize(mod); diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index 583ecc8c0..64ed284f6 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(mod);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index 17a40c6d2..6351e0501 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -69,6 +69,10 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { + if (mod.startsWith('@google-cloud/dialogflow-cx')) { + console.log('in'); + return require(mod); + } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { mod = path.normalize(mod); From bb8802c6000ec4d8ed01cf1f6080dd982b8974d3 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 25 Jan 2022 13:15:15 +0200 Subject: [PATCH 03/14] Testing --- src/server/misc/Utilities.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index 6351e0501..cc3639940 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -69,7 +69,8 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { - if (mod.startsWith('@google-cloud/dialogflow-cx')) { + console.log(mod); + if (mod.startsWith('@google-cloud/dialogflow-cx')) { console.log('in'); return require(mod); } From edf94a5dcbc3b28894ad64e0478cae27a6d9794a Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 25 Jan 2022 13:15:39 +0200 Subject: [PATCH 04/14] Testing --- server/misc/Utilities.js | 1 + server/misc/Utilities.js.map | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index 1ed2389fa..95a834bf5 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -54,6 +54,7 @@ class Utilities { } static buildCustomRequire(files, appId, logSetting = 0, currentPath = '.') { return function _requirer(mod) { + console.log(mod); if (mod.startsWith('@google-cloud/dialogflow-cx')) { console.log('in'); return require(mod); diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index 64ed284f6..96bc47b6c 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(mod);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n console.log(mod);\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(mod);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file From 72c0a9f913d5206298c360ef07f92d13615469c7 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 25 Jan 2022 13:17:31 +0200 Subject: [PATCH 05/14] Fixed Linting --- server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index 96bc47b6c..adbebf16d 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n console.log(mod);\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(mod);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n console.log(mod);\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(mod);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index cc3639940..f7bdf5d8e 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -69,8 +69,8 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { - console.log(mod); - if (mod.startsWith('@google-cloud/dialogflow-cx')) { + console.log(mod); + if (mod.startsWith('@google-cloud/dialogflow-cx')) { console.log('in'); return require(mod); } From 5dae8dc78e1756a360fedc3c0677a4c052a1902d Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 25 Jan 2022 13:30:23 +0200 Subject: [PATCH 06/14] Fixed custom require --- server/misc/Utilities.js | 4 +++- server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index 95a834bf5..1730afe43 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -1,6 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Utilities = void 0; +// tslint:disable-next-line: no-var-requires +const { SessionsClient } = require('@google-cloud/dialogflow-cx'); const cloneDeep = require("lodash.clonedeep"); const path = require("path"); const timers = require("timers"); @@ -57,7 +59,7 @@ class Utilities { console.log(mod); if (mod.startsWith('@google-cloud/dialogflow-cx')) { console.log('in'); - return require(mod); + return require(SessionsClient); } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index adbebf16d..eeba37e66 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n console.log(mod);\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(mod);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["// tslint:disable-next-line: no-var-requires\nconst {SessionsClient} = require('@google-cloud/dialogflow-cx');\nimport cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n console.log(mod);\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(SessionsClient);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index f7bdf5d8e..448676857 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -1,3 +1,5 @@ +// tslint:disable-next-line: no-var-requires +const {SessionsClient} = require('@google-cloud/dialogflow-cx'); import cloneDeep = require('lodash.clonedeep'); import * as path from 'path'; import * as timers from 'timers'; @@ -72,7 +74,7 @@ export class Utilities { console.log(mod); if (mod.startsWith('@google-cloud/dialogflow-cx')) { console.log('in'); - return require(mod); + return require(SessionsClient); } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { From d6647c1942eba52d8d11d12ae9f5bf0b32d0360d Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 25 Jan 2022 14:10:15 +0200 Subject: [PATCH 07/14] Testing --- server/misc/Utilities.js | 3 ++- server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index 1730afe43..fc4abe3fd 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -57,9 +57,10 @@ class Utilities { static buildCustomRequire(files, appId, logSetting = 0, currentPath = '.') { return function _requirer(mod) { console.log(mod); + console.log(SessionsClient); if (mod.startsWith('@google-cloud/dialogflow-cx')) { console.log('in'); - return require(SessionsClient); + return SessionsClient; } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index eeba37e66..477683707 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["// tslint:disable-next-line: no-var-requires\nconst {SessionsClient} = require('@google-cloud/dialogflow-cx');\nimport cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n console.log(mod);\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return require(SessionsClient);\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,MAAM,EAAC,cAAc,EAAC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAChE,8CAA+C;AAC/C,6BAA6B;AAC7B,iCAAiC;AACjC,yBAAyB;AAEzB,iDAAkF;AAElF,MAAa,SAAS;IACX,MAAM,CAAC,SAAS,CAAI,IAAO;QAC9B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,UAAU,CAAI,IAAS;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YACtD,2CAA2C;YAC3C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC1J,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACpC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAI,IAAO;QACvC,OAAO,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,uCAAuC,CAAC,UAAkB;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;IACzF,CAAC;IAEM,MAAM,CAAC,+BAA+B,CAAC,UAAkB;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;IACzF,CAAC;IAEM,MAAM,CAAC,4BAA4B,CAAC,UAAkB;QACzD,OAAO,UAAU,IAAI,gCAAsB,CAAC;IAChD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,OAAe,EAAE,KAAa;QAClD,OAAO,OAAO,IAAI,KAAK,CAAC;IAC5B,CAAC;IACM,MAAM,CAAC,UAAU,CAAC,UAAkB,CAAC;QACxC,uCACO,OAAO,KACV,KAAK,EAAE,CAAC,GAAG,IAAS,EAAE,EAAE;gBACpB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAChE,CAAC,EACD,GAAG,EAAE,CAAC,GAAG,IAAS,EAAE,EAAE;gBAClB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9D,CAAC,EACD,IAAI,EAAE,CAAC,GAAG,IAAS,EAAE,EAAE;gBACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/D,CAAC,EACD,IAAI,EAAE,CAAC,GAAG,IAAS,EAAE,EAAE;gBACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/D,CAAC,EACD,KAAK,EAAE,CAAC,GAAG,IAAS,EAAE,EAAE;gBACpB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAChE,CAAC,IACH;IACN,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,KAA8B,EAAE,KAAa,EAAE,aAAqB,CAAC,EAAE,cAAsB,GAAG;QAC7H,OAAO,SAAS,SAAS,CAAC,GAAW;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAAE;gBAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,cAAc,CAAC;aACzB;YACD,4DAA4D;YAC5D,IAAI,GAAG,CAAC,UAAU,CAAC,kCAAkC,CAAC,EAAE;gBACpD,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,mBAAmB,CAAC,CAAC;gBAC3E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;aACvB;YAED,IAAI,GAAG,CAAC,UAAU,CAAC,sCAAsC,CAAC,EAAE;gBACxD,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,sCAAsC,EAAE,mBAAmB,CAAC,CAAC;gBAC/E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;aACvB;YAED,IAAI,SAAS,CAAC,4BAA4B,CAAC,GAAG,CAAC,EAAE;gBAC7C,OAAO,IAAA,6BAAmB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC1C;YAED,IAAI,WAAW,KAAK,GAAG,EAAE;gBACrB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;aACrC;YAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC;YACzE,MAAM,cAAc,GAAG,SAAS,CAAC,uCAAuC,CAAC,GAAG,CAAC,CAAC;YAE9E,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YACnH,IAAI,UAAU,CAAC;YAEf,IAAI,QAAQ,EAAE;gBACV,UAAU,GAAG,EAAE,CAAC;gBAEhB,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;oBAC7B,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAE;oBAC9F,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;oBACzC,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,EAAE;iBACd,CAAC,CAAC;gBAEH,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;aAC7C;YAED,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,WAAoB;QACrD,MAAM,wBAAwB,mCACvB,MAAM,KACT,MAAM,GACT,CAAC;QAEF,OAAO,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,wBAAwB,EAAE,WAAW,CAAC,CAAC,CAAC;IACtF,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,MAA8B,EAAE,IAAmB;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAlID,8BAkIC","file":"Utilities.js","sourcesContent":["// tslint:disable-next-line: no-var-requires\nconst {SessionsClient} = require('@google-cloud/dialogflow-cx');\nimport cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n console.log(mod);\n console.log(SessionsClient);\n if (mod.startsWith('@google-cloud/dialogflow-cx')) {\n console.log('in');\n return SessionsClient;\n }\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index 448676857..1c42f4983 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -72,9 +72,10 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { console.log(mod); + console.log(SessionsClient); if (mod.startsWith('@google-cloud/dialogflow-cx')) { console.log('in'); - return require(SessionsClient); + return SessionsClient; } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { From d7aa59e9bdfeb6dae3b33785ba9a738d52456218 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Thu, 27 Jan 2022 17:21:02 +0200 Subject: [PATCH 08/14] Fixed minor issues --- package-lock.json | 590 +++++++++++++++++++++++++++++++++-- package.json | 1 + server/misc/Utilities.js | 5 + server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 7 + 5 files changed, 586 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4615b5e4e..e95a2a6c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -164,6 +164,147 @@ "to-fast-properties": "^2.0.0" } }, + "@google-cloud/dialogflow-cx": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@google-cloud/dialogflow-cx/-/dialogflow-cx-2.15.0.tgz", + "integrity": "sha512-uZoX2AdpU9SuysNzvvSzk7iV2HhNxttvfTYeDkRgMMJSv/xf0tyiujcKybK/b628RVVNsAQhEFDR0NDykFs/4w==", + "requires": { + "google-gax": "^2.24.1" + } + }, + "@grpc/grpc-js": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.3.tgz", + "integrity": "sha512-q0xgaZ3ymUM+ZOhe1hdocVSdKHCnJ6llLSXcP+MqMXMyYPUZ3mzQOCxZ3Zkg+QZ7sZ950sn7hvueQrIJZumPZg==", + "requires": { + "@grpc/proto-loader": "^0.6.4", + "@types/node": ">=12.12.47" + }, + "dependencies": { + "@types/node": { + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", + "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + } + } + }, + "@grpc/proto-loader": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", + "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", + "requires": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^6.10.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, "@gulp-sourcemaps/identity-map": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", @@ -195,6 +336,60 @@ "through2": "^2.0.3" } }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, "@types/adm-zip": { "version": "0.4.31", "resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.4.31.tgz", @@ -225,6 +420,11 @@ "@types/lodash": "*" } }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, "@types/nedb": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.5.tgz", @@ -268,6 +468,14 @@ "through": ">=2.2.7 <3" } }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "acorn": { "version": "5.7.4", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", @@ -327,6 +535,29 @@ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==" }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -806,8 +1037,7 @@ "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "basic-auth": { "version": "1.1.0", @@ -815,6 +1045,11 @@ "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", "dev": true }, + "bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" + }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -1096,6 +1331,11 @@ "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", "dev": true }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, "buffer-from": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", @@ -2051,6 +2291,14 @@ "object.defaults": "^1.1.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ecstatic": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", @@ -2110,7 +2358,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -2193,6 +2440,11 @@ "es6-symbol": "^3.1.1" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2369,6 +2621,11 @@ "es5-ext": "~0.10.14" } }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -2453,8 +2710,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "1.1.4", @@ -2617,6 +2873,11 @@ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, + "fast-text-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", + "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -2894,6 +3155,34 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gaxios": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", + "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.1" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + } + } + }, + "gcp-metadata": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", + "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", + "requires": { + "gaxios": "^4.0.0", + "json-bigint": "^1.0.0" + } + }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -3054,12 +3343,122 @@ "sparkles": "^1.0.0" } }, + "google-auth-library": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz", + "integrity": "sha512-3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg==", + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "google-gax": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.29.4.tgz", + "integrity": "sha512-3o6cByD2fE1yIc6i1gpKMQlJStqlvu8Sa/Ly/HCQ6GPHpltpVfkTT4KVj2YLVa7WTSDoGbsLBDmJ1KfN1uNiRw==", + "requires": { + "@grpc/grpc-js": "~1.5.0", + "@grpc/proto-loader": "^0.6.1", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "fast-text-encoding": "^1.0.3", + "google-auth-library": "^7.6.1", + "is-stream-ended": "^0.1.4", + "node-fetch": "^2.6.1", + "object-hash": "^2.1.1", + "proto3-json-serializer": "^0.1.7", + "protobufjs": "6.11.2", + "retry-request": "^4.0.0" + }, + "dependencies": { + "duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "requires": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "google-p12-pem": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", + "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", + "requires": { + "node-forge": "^1.0.0" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "gtoken": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", + "integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", + "requires": { + "gaxios": "^4.0.0", + "google-p12-pem": "^3.0.3", + "jws": "^4.0.0" + } + }, "gulp": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", @@ -3731,6 +4130,30 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "iconv-lite": { "version": "0.4.21", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", @@ -3786,8 +4209,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.8", @@ -4178,6 +4600,11 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-stream-ended": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" + }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -4373,6 +4800,14 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -4481,6 +4916,25 @@ "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", "dev": true }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -4641,6 +5095,11 @@ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -4658,6 +5117,11 @@ "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", "dev": true }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -5173,6 +5637,19 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", + "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" + }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -5350,6 +5827,11 @@ } } }, + "object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" + }, "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", @@ -5422,7 +5904,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -5923,6 +6404,41 @@ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, + "proto3-json-serializer": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz", + "integrity": "sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw==", + "requires": { + "protobufjs": "^6.11.2" + } + }, + "protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", + "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + } + } + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -6249,8 +6765,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", @@ -6330,6 +6845,30 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "retry-request": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", + "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", + "requires": { + "debug": "^4.1.1", + "extend": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", @@ -6376,8 +6915,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safe-regex": { "version": "1.1.0", @@ -6943,8 +7481,7 @@ "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-splicer": { "version": "2.0.1", @@ -7424,6 +7961,11 @@ "through2": "^2.0.3" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -7884,8 +8426,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.2.1", @@ -8017,6 +8558,20 @@ "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", "dev": true }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "1.2.14", "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", @@ -8073,8 +8628,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "0.2.1", diff --git a/package.json b/package.json index ebabf06da..960ae595c 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "uglify-es": "^3.3.9" }, "dependencies": { + "@google-cloud/dialogflow-cx": "^2.15.0", "adm-zip": "^0.4.9", "cryptiles": "^4.1.3", "lodash.clonedeep": "^4.5.0", diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index b749f4cba..0da5b47a9 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -6,6 +6,8 @@ const path = require("path"); const timers = require("timers"); const vm = require("vm"); const modules_1 = require("../compiler/modules"); +// tslint:disable-next-line: no-var-requires +const { SessionsClient } = require('@google-cloud/dialogflow-cx'); class Utilities { static deepClone(item) { return cloneDeep(item); @@ -54,6 +56,9 @@ class Utilities { } static buildCustomRequire(files, appId, logSetting = 0, currentPath = '.') { return function _requirer(mod) { + if (mod.includes('@google-cloud/dialogflow-cx')) { + return SessionsClient; + } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { mod = path.normalize(mod); diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index 583ecc8c0..8b52d2209 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\n// tslint:disable-next-line: no-var-requires\nconst {SessionsClient} = require('@google-cloud/dialogflow-cx');\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.includes('@google-cloud/dialogflow-cx')) {\n return SessionsClient;\n }\n\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index 17a40c6d2..841ebd5d1 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -5,6 +5,9 @@ import * as vm from 'vm'; import { AllowedInternalModules, requireNativeModule } from '../compiler/modules'; +// tslint:disable-next-line: no-var-requires +const {SessionsClient} = require('@google-cloud/dialogflow-cx'); + export class Utilities { public static deepClone(item: T): T { return cloneDeep(item); @@ -69,6 +72,10 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { + if (mod.includes('@google-cloud/dialogflow-cx')) { + return SessionsClient; + } + // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { mod = path.normalize(mod); From f054f701c958cf7f7d80a1e13b1117b98443c37c Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Mon, 14 Feb 2022 19:34:26 +0200 Subject: [PATCH 09/14] import entire library instead of SessionsClient only --- server/misc/Utilities.js | 4 ++-- server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index 0da5b47a9..0631a92b9 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -7,7 +7,7 @@ const timers = require("timers"); const vm = require("vm"); const modules_1 = require("../compiler/modules"); // tslint:disable-next-line: no-var-requires -const { SessionsClient } = require('@google-cloud/dialogflow-cx'); +const DialogFlowApi = require('@google-cloud/dialogflow-cx'); class Utilities { static deepClone(item) { return cloneDeep(item); @@ -57,7 +57,7 @@ class Utilities { static buildCustomRequire(files, appId, logSetting = 0, currentPath = '.') { return function _requirer(mod) { if (mod.includes('@google-cloud/dialogflow-cx')) { - return SessionsClient; + return DialogFlowApi; } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index 8b52d2209..c64653729 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\n// tslint:disable-next-line: no-var-requires\nconst {SessionsClient} = require('@google-cloud/dialogflow-cx');\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.includes('@google-cloud/dialogflow-cx')) {\n return SessionsClient;\n }\n\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\n// tslint:disable-next-line: no-var-requires\nconst DialogFlowApi = require('@google-cloud/dialogflow-cx');\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.includes('@google-cloud/dialogflow-cx')) {\n return DialogFlowApi;\n }\n\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index 841ebd5d1..aa4b2fb9c 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -6,7 +6,7 @@ import * as vm from 'vm'; import { AllowedInternalModules, requireNativeModule } from '../compiler/modules'; // tslint:disable-next-line: no-var-requires -const {SessionsClient} = require('@google-cloud/dialogflow-cx'); +const DialogFlowApi = require('@google-cloud/dialogflow-cx'); export class Utilities { public static deepClone(item: T): T { @@ -73,7 +73,7 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { if (mod.includes('@google-cloud/dialogflow-cx')) { - return SessionsClient; + return DialogFlowApi; } // Keep compatibility with apps importing apps-ts-definition From e26835c65c95f4724d34161fb146e66a6c586001 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Mon, 14 Feb 2022 21:02:02 +0200 Subject: [PATCH 10/14] added app to sheduler processor args --- definition/scheduler/IProcessor.d.ts | 3 ++- definition/scheduler/IProcessor.js.map | 2 +- server/managers/AppSchedulerManager.js | 1 + server/managers/AppSchedulerManager.js.map | 2 +- src/definition/scheduler/IProcessor.ts | 3 ++- src/server/managers/AppSchedulerManager.ts | 1 + 6 files changed, 8 insertions(+), 4 deletions(-) diff --git a/definition/scheduler/IProcessor.d.ts b/definition/scheduler/IProcessor.d.ts index 7e1f4806f..ef9dd4b16 100644 --- a/definition/scheduler/IProcessor.d.ts +++ b/definition/scheduler/IProcessor.d.ts @@ -1,4 +1,5 @@ import { IHttp, IModify, IPersistence, IRead } from '../accessors'; +import { IApp } from '../IApp'; /** Represents a processor that is used by the scheduler methods */ export interface IProcessor { /** The processor's identifier */ @@ -6,7 +7,7 @@ export interface IProcessor { /** If provided, the processor will be configured with the setting as soon as it gets registered */ startupSetting?: StartupSetting; /** The function that will be run on a given scheudle */ - processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence): Promise; + processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence, app: IApp): Promise; } /** The `data` object provided to the processor during the registering process */ export interface IJobContext { diff --git a/definition/scheduler/IProcessor.js.map b/definition/scheduler/IProcessor.js.map index b066fe2d7..517caa281 100644 --- a/definition/scheduler/IProcessor.js.map +++ b/definition/scheduler/IProcessor.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/definition/scheduler/IProcessor.ts"],"names":[],"mappings":";;;AAsCA;;GAEG;AACH,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AAC3B,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","file":"IProcessor.js","sourcesContent":["import {IHttp, IModify, IPersistence, IRead} from '../accessors';\n\n/** Represents a processor that is used by the scheduler methods */\nexport interface IProcessor {\n /** The processor's identifier */\n id: string;\n /** If provided, the processor will be configured with the setting as soon as it gets registered */\n startupSetting?: StartupSetting;\n /** The function that will be run on a given scheudle */\n processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence): Promise;\n}\n\n/** The `data` object provided to the processor during the registering process */\nexport interface IJobContext {\n [key: string]: any;\n}\n\ntype StartupSetting = IOnetimeStartup | IRecurringStartup;\n\n/**\n * Processor setting for running once after being registered\n */\nexport interface IOnetimeStartup {\n type: StartupType.ONETIME;\n when: string | Date;\n data?: object;\n}\n\n/**\n * Processor setting for running recurringly after being registered\n */\nexport interface IRecurringStartup {\n type: StartupType.RECURRING;\n interval: string | number;\n skipImmediate?: boolean;\n data?: object;\n}\n\n/**\n * Jobs' startup types\n */\nexport enum StartupType {\n ONETIME = 'onetime',\n RECURRING = 'recurring',\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/definition/scheduler/IProcessor.ts"],"names":[],"mappings":";;;AAuCA;;GAEG;AACH,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AAC3B,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","file":"IProcessor.js","sourcesContent":["import {IHttp, IModify, IPersistence, IRead} from '../accessors';\nimport { IApp } from '../IApp';\n\n/** Represents a processor that is used by the scheduler methods */\nexport interface IProcessor {\n /** The processor's identifier */\n id: string;\n /** If provided, the processor will be configured with the setting as soon as it gets registered */\n startupSetting?: StartupSetting;\n /** The function that will be run on a given scheudle */\n processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence, app: IApp): Promise;\n}\n\n/** The `data` object provided to the processor during the registering process */\nexport interface IJobContext {\n [key: string]: any;\n}\n\ntype StartupSetting = IOnetimeStartup | IRecurringStartup;\n\n/**\n * Processor setting for running once after being registered\n */\nexport interface IOnetimeStartup {\n type: StartupType.ONETIME;\n when: string | Date;\n data?: object;\n}\n\n/**\n * Processor setting for running recurringly after being registered\n */\nexport interface IRecurringStartup {\n type: StartupType.RECURRING;\n interval: string | number;\n skipImmediate?: boolean;\n data?: object;\n}\n\n/**\n * Jobs' startup types\n */\nexport enum StartupType {\n ONETIME = 'onetime',\n RECURRING = 'recurring',\n}\n"]} \ No newline at end of file diff --git a/server/managers/AppSchedulerManager.js b/server/managers/AppSchedulerManager.js index c7230e3cc..fe015000f 100644 --- a/server/managers/AppSchedulerManager.js +++ b/server/managers/AppSchedulerManager.js @@ -52,6 +52,7 @@ class AppSchedulerManager { this.accessors.getModifier(appId), this.accessors.getHttp(appId), this.accessors.getPersistence(appId), + app, ], }); const logger = app.setupLogger(metadata_1.AppMethod._JOB_PROCESSOR); diff --git a/server/managers/AppSchedulerManager.js.map b/server/managers/AppSchedulerManager.js.map index a4337fbb1..2358471f8 100644 --- a/server/managers/AppSchedulerManager.js.map +++ b/server/managers/AppSchedulerManager.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/managers/AppSchedulerManager.ts"],"names":[],"mappings":"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","file":"AppSchedulerManager.js","sourcesContent":["import { AppMethod } from '../../definition/metadata';\nimport {\n IJobContext,\n IOnetimeSchedule,\n IProcessor,\n IRecurringSchedule,\n} from '../../definition/scheduler';\nimport { AppManager } from '../AppManager';\nimport { IInternalSchedulerBridge } from '../bridges/IInternalSchedulerBridge';\nimport { SchedulerBridge } from '../bridges/SchedulerBridge';\nimport { AppAccessorManager } from './';\n\nfunction createProcessorId(jobId: string, appId: string): string {\n return jobId.includes(`_${appId}`) ? jobId : `${ jobId }_${ appId }`;\n}\n\nexport class AppSchedulerManager {\n private readonly bridge: SchedulerBridge;\n private readonly accessors: AppAccessorManager;\n\n private registeredProcessors: Map;\n\n constructor(private readonly manager: AppManager) {\n this.bridge = this.manager.getBridges().getSchedulerBridge();\n this.accessors = this.manager.getAccessorManager();\n this.registeredProcessors = new Map();\n }\n\n public async registerProcessors(processors: Array = [], appId: string): Promise> {\n if (!this.registeredProcessors.get(appId)) {\n this.registeredProcessors.set(appId, {});\n }\n\n return this.bridge.doRegisterProcessors(processors.map((processor) => {\n const processorId = createProcessorId(processor.id, appId);\n\n this.registeredProcessors.get(appId)[processorId] = processor;\n\n return {\n id: processorId,\n processor: this.wrapProcessor(appId, processorId).bind(this),\n startupSetting: processor.startupSetting,\n };\n }), appId);\n }\n\n public wrapProcessor(appId: string, processorId: string): IProcessor['processor'] {\n return async (jobContext: IJobContext) => {\n const processor = this.registeredProcessors.get(appId)[processorId];\n\n if (!processor) {\n throw new Error(`Processor ${processorId} not available`);\n }\n\n const app = this.manager.getOneById(appId);\n\n const context = app.makeContext({\n processor,\n args: [\n jobContext,\n this.accessors.getReader(appId),\n this.accessors.getModifier(appId),\n this.accessors.getHttp(appId),\n this.accessors.getPersistence(appId),\n ],\n });\n\n const logger = app.setupLogger(AppMethod._JOB_PROCESSOR);\n logger.debug(`Job processor ${processor.id} is being executed...`);\n\n try {\n const codeToRun = `processor.processor.apply(null, args)`;\n await app.runInContext(codeToRun, context);\n logger.debug(`Job processor ${processor.id} was sucessfully executed`);\n } catch (e) {\n logger.error(e);\n logger.debug(`Job processor ${processor.id} was unsuccessful`);\n\n throw e;\n } finally {\n await this.manager.getLogStorage().storeEntries(appId, logger);\n }\n };\n }\n\n public async scheduleOnce(job: IOnetimeSchedule, appId: string): Promise {\n return this.bridge.doScheduleOnce({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async scheduleRecurring(job: IRecurringSchedule, appId: string): Promise {\n return this.bridge.doScheduleRecurring({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async cancelJob(jobId: string, appId: string): Promise {\n this.bridge.doCancelJob(createProcessorId(jobId, appId), appId);\n }\n\n public async cancelAllJobs(appId: string): Promise {\n this.bridge.doCancelAllJobs(appId);\n }\n\n public async cleanUp(appId: string): Promise {\n (this.bridge as IInternalSchedulerBridge & SchedulerBridge).cancelAllJobs(appId);\n }\n\n public async cancelJobByDataQuery(data: object, appId: string): Promise {\n this.bridge.doCancelJobByDataQuery(data, appId);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/managers/AppSchedulerManager.ts"],"names":[],"mappings":"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","file":"AppSchedulerManager.js","sourcesContent":["import { AppMethod } from '../../definition/metadata';\nimport {\n IJobContext,\n IOnetimeSchedule,\n IProcessor,\n IRecurringSchedule,\n} from '../../definition/scheduler';\nimport { AppManager } from '../AppManager';\nimport { IInternalSchedulerBridge } from '../bridges/IInternalSchedulerBridge';\nimport { SchedulerBridge } from '../bridges/SchedulerBridge';\nimport { AppAccessorManager } from './';\n\nfunction createProcessorId(jobId: string, appId: string): string {\n return jobId.includes(`_${appId}`) ? jobId : `${ jobId }_${ appId }`;\n}\n\nexport class AppSchedulerManager {\n private readonly bridge: SchedulerBridge;\n private readonly accessors: AppAccessorManager;\n\n private registeredProcessors: Map;\n\n constructor(private readonly manager: AppManager) {\n this.bridge = this.manager.getBridges().getSchedulerBridge();\n this.accessors = this.manager.getAccessorManager();\n this.registeredProcessors = new Map();\n }\n\n public async registerProcessors(processors: Array = [], appId: string): Promise> {\n if (!this.registeredProcessors.get(appId)) {\n this.registeredProcessors.set(appId, {});\n }\n\n return this.bridge.doRegisterProcessors(processors.map((processor) => {\n const processorId = createProcessorId(processor.id, appId);\n\n this.registeredProcessors.get(appId)[processorId] = processor;\n\n return {\n id: processorId,\n processor: this.wrapProcessor(appId, processorId).bind(this),\n startupSetting: processor.startupSetting,\n };\n }), appId);\n }\n\n public wrapProcessor(appId: string, processorId: string): IProcessor['processor'] {\n return async (jobContext: IJobContext) => {\n const processor = this.registeredProcessors.get(appId)[processorId];\n\n if (!processor) {\n throw new Error(`Processor ${processorId} not available`);\n }\n\n const app = this.manager.getOneById(appId);\n\n const context = app.makeContext({\n processor,\n args: [\n jobContext,\n this.accessors.getReader(appId),\n this.accessors.getModifier(appId),\n this.accessors.getHttp(appId),\n this.accessors.getPersistence(appId),\n app,\n ],\n });\n\n const logger = app.setupLogger(AppMethod._JOB_PROCESSOR);\n logger.debug(`Job processor ${processor.id} is being executed...`);\n\n try {\n const codeToRun = `processor.processor.apply(null, args)`;\n await app.runInContext(codeToRun, context);\n logger.debug(`Job processor ${processor.id} was sucessfully executed`);\n } catch (e) {\n logger.error(e);\n logger.debug(`Job processor ${processor.id} was unsuccessful`);\n\n throw e;\n } finally {\n await this.manager.getLogStorage().storeEntries(appId, logger);\n }\n };\n }\n\n public async scheduleOnce(job: IOnetimeSchedule, appId: string): Promise {\n return this.bridge.doScheduleOnce({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async scheduleRecurring(job: IRecurringSchedule, appId: string): Promise {\n return this.bridge.doScheduleRecurring({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async cancelJob(jobId: string, appId: string): Promise {\n this.bridge.doCancelJob(createProcessorId(jobId, appId), appId);\n }\n\n public async cancelAllJobs(appId: string): Promise {\n this.bridge.doCancelAllJobs(appId);\n }\n\n public async cleanUp(appId: string): Promise {\n (this.bridge as IInternalSchedulerBridge & SchedulerBridge).cancelAllJobs(appId);\n }\n\n public async cancelJobByDataQuery(data: object, appId: string): Promise {\n this.bridge.doCancelJobByDataQuery(data, appId);\n }\n}\n"]} \ No newline at end of file diff --git a/src/definition/scheduler/IProcessor.ts b/src/definition/scheduler/IProcessor.ts index e1afcaa63..2adbb1bff 100644 --- a/src/definition/scheduler/IProcessor.ts +++ b/src/definition/scheduler/IProcessor.ts @@ -1,4 +1,5 @@ import {IHttp, IModify, IPersistence, IRead} from '../accessors'; +import { IApp } from '../IApp'; /** Represents a processor that is used by the scheduler methods */ export interface IProcessor { @@ -7,7 +8,7 @@ export interface IProcessor { /** If provided, the processor will be configured with the setting as soon as it gets registered */ startupSetting?: StartupSetting; /** The function that will be run on a given scheudle */ - processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence): Promise; + processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence, app: IApp): Promise; } /** The `data` object provided to the processor during the registering process */ diff --git a/src/server/managers/AppSchedulerManager.ts b/src/server/managers/AppSchedulerManager.ts index cbe01e087..d08188af3 100644 --- a/src/server/managers/AppSchedulerManager.ts +++ b/src/server/managers/AppSchedulerManager.ts @@ -62,6 +62,7 @@ export class AppSchedulerManager { this.accessors.getModifier(appId), this.accessors.getHttp(appId), this.accessors.getPersistence(appId), + app, ], }); From aa64cbd8a7863d79d0f5eb0d85bcde7ab31b9b70 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Mon, 14 Feb 2022 21:14:25 +0200 Subject: [PATCH 11/14] revert previous changes --- definition/scheduler/IProcessor.d.ts | 3 +-- definition/scheduler/IProcessor.js.map | 2 +- server/managers/AppSchedulerManager.js | 1 - server/managers/AppSchedulerManager.js.map | 2 +- src/definition/scheduler/IProcessor.ts | 3 +-- src/server/managers/AppSchedulerManager.ts | 1 - 6 files changed, 4 insertions(+), 8 deletions(-) diff --git a/definition/scheduler/IProcessor.d.ts b/definition/scheduler/IProcessor.d.ts index ef9dd4b16..7e1f4806f 100644 --- a/definition/scheduler/IProcessor.d.ts +++ b/definition/scheduler/IProcessor.d.ts @@ -1,5 +1,4 @@ import { IHttp, IModify, IPersistence, IRead } from '../accessors'; -import { IApp } from '../IApp'; /** Represents a processor that is used by the scheduler methods */ export interface IProcessor { /** The processor's identifier */ @@ -7,7 +6,7 @@ export interface IProcessor { /** If provided, the processor will be configured with the setting as soon as it gets registered */ startupSetting?: StartupSetting; /** The function that will be run on a given scheudle */ - processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence, app: IApp): Promise; + processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence): Promise; } /** The `data` object provided to the processor during the registering process */ export interface IJobContext { diff --git a/definition/scheduler/IProcessor.js.map b/definition/scheduler/IProcessor.js.map index 517caa281..b066fe2d7 100644 --- a/definition/scheduler/IProcessor.js.map +++ b/definition/scheduler/IProcessor.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/definition/scheduler/IProcessor.ts"],"names":[],"mappings":";;;AAuCA;;GAEG;AACH,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AAC3B,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","file":"IProcessor.js","sourcesContent":["import {IHttp, IModify, IPersistence, IRead} from '../accessors';\nimport { IApp } from '../IApp';\n\n/** Represents a processor that is used by the scheduler methods */\nexport interface IProcessor {\n /** The processor's identifier */\n id: string;\n /** If provided, the processor will be configured with the setting as soon as it gets registered */\n startupSetting?: StartupSetting;\n /** The function that will be run on a given scheudle */\n processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence, app: IApp): Promise;\n}\n\n/** The `data` object provided to the processor during the registering process */\nexport interface IJobContext {\n [key: string]: any;\n}\n\ntype StartupSetting = IOnetimeStartup | IRecurringStartup;\n\n/**\n * Processor setting for running once after being registered\n */\nexport interface IOnetimeStartup {\n type: StartupType.ONETIME;\n when: string | Date;\n data?: object;\n}\n\n/**\n * Processor setting for running recurringly after being registered\n */\nexport interface IRecurringStartup {\n type: StartupType.RECURRING;\n interval: string | number;\n skipImmediate?: boolean;\n data?: object;\n}\n\n/**\n * Jobs' startup types\n */\nexport enum StartupType {\n ONETIME = 'onetime',\n RECURRING = 'recurring',\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/definition/scheduler/IProcessor.ts"],"names":[],"mappings":";;;AAsCA;;GAEG;AACH,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AAC3B,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","file":"IProcessor.js","sourcesContent":["import {IHttp, IModify, IPersistence, IRead} from '../accessors';\n\n/** Represents a processor that is used by the scheduler methods */\nexport interface IProcessor {\n /** The processor's identifier */\n id: string;\n /** If provided, the processor will be configured with the setting as soon as it gets registered */\n startupSetting?: StartupSetting;\n /** The function that will be run on a given scheudle */\n processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence): Promise;\n}\n\n/** The `data` object provided to the processor during the registering process */\nexport interface IJobContext {\n [key: string]: any;\n}\n\ntype StartupSetting = IOnetimeStartup | IRecurringStartup;\n\n/**\n * Processor setting for running once after being registered\n */\nexport interface IOnetimeStartup {\n type: StartupType.ONETIME;\n when: string | Date;\n data?: object;\n}\n\n/**\n * Processor setting for running recurringly after being registered\n */\nexport interface IRecurringStartup {\n type: StartupType.RECURRING;\n interval: string | number;\n skipImmediate?: boolean;\n data?: object;\n}\n\n/**\n * Jobs' startup types\n */\nexport enum StartupType {\n ONETIME = 'onetime',\n RECURRING = 'recurring',\n}\n"]} \ No newline at end of file diff --git a/server/managers/AppSchedulerManager.js b/server/managers/AppSchedulerManager.js index fe015000f..c7230e3cc 100644 --- a/server/managers/AppSchedulerManager.js +++ b/server/managers/AppSchedulerManager.js @@ -52,7 +52,6 @@ class AppSchedulerManager { this.accessors.getModifier(appId), this.accessors.getHttp(appId), this.accessors.getPersistence(appId), - app, ], }); const logger = app.setupLogger(metadata_1.AppMethod._JOB_PROCESSOR); diff --git a/server/managers/AppSchedulerManager.js.map b/server/managers/AppSchedulerManager.js.map index 2358471f8..a4337fbb1 100644 --- a/server/managers/AppSchedulerManager.js.map +++ b/server/managers/AppSchedulerManager.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/managers/AppSchedulerManager.ts"],"names":[],"mappings":"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","file":"AppSchedulerManager.js","sourcesContent":["import { AppMethod } from '../../definition/metadata';\nimport {\n IJobContext,\n IOnetimeSchedule,\n IProcessor,\n IRecurringSchedule,\n} from '../../definition/scheduler';\nimport { AppManager } from '../AppManager';\nimport { IInternalSchedulerBridge } from '../bridges/IInternalSchedulerBridge';\nimport { SchedulerBridge } from '../bridges/SchedulerBridge';\nimport { AppAccessorManager } from './';\n\nfunction createProcessorId(jobId: string, appId: string): string {\n return jobId.includes(`_${appId}`) ? jobId : `${ jobId }_${ appId }`;\n}\n\nexport class AppSchedulerManager {\n private readonly bridge: SchedulerBridge;\n private readonly accessors: AppAccessorManager;\n\n private registeredProcessors: Map;\n\n constructor(private readonly manager: AppManager) {\n this.bridge = this.manager.getBridges().getSchedulerBridge();\n this.accessors = this.manager.getAccessorManager();\n this.registeredProcessors = new Map();\n }\n\n public async registerProcessors(processors: Array = [], appId: string): Promise> {\n if (!this.registeredProcessors.get(appId)) {\n this.registeredProcessors.set(appId, {});\n }\n\n return this.bridge.doRegisterProcessors(processors.map((processor) => {\n const processorId = createProcessorId(processor.id, appId);\n\n this.registeredProcessors.get(appId)[processorId] = processor;\n\n return {\n id: processorId,\n processor: this.wrapProcessor(appId, processorId).bind(this),\n startupSetting: processor.startupSetting,\n };\n }), appId);\n }\n\n public wrapProcessor(appId: string, processorId: string): IProcessor['processor'] {\n return async (jobContext: IJobContext) => {\n const processor = this.registeredProcessors.get(appId)[processorId];\n\n if (!processor) {\n throw new Error(`Processor ${processorId} not available`);\n }\n\n const app = this.manager.getOneById(appId);\n\n const context = app.makeContext({\n processor,\n args: [\n jobContext,\n this.accessors.getReader(appId),\n this.accessors.getModifier(appId),\n this.accessors.getHttp(appId),\n this.accessors.getPersistence(appId),\n app,\n ],\n });\n\n const logger = app.setupLogger(AppMethod._JOB_PROCESSOR);\n logger.debug(`Job processor ${processor.id} is being executed...`);\n\n try {\n const codeToRun = `processor.processor.apply(null, args)`;\n await app.runInContext(codeToRun, context);\n logger.debug(`Job processor ${processor.id} was sucessfully executed`);\n } catch (e) {\n logger.error(e);\n logger.debug(`Job processor ${processor.id} was unsuccessful`);\n\n throw e;\n } finally {\n await this.manager.getLogStorage().storeEntries(appId, logger);\n }\n };\n }\n\n public async scheduleOnce(job: IOnetimeSchedule, appId: string): Promise {\n return this.bridge.doScheduleOnce({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async scheduleRecurring(job: IRecurringSchedule, appId: string): Promise {\n return this.bridge.doScheduleRecurring({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async cancelJob(jobId: string, appId: string): Promise {\n this.bridge.doCancelJob(createProcessorId(jobId, appId), appId);\n }\n\n public async cancelAllJobs(appId: string): Promise {\n this.bridge.doCancelAllJobs(appId);\n }\n\n public async cleanUp(appId: string): Promise {\n (this.bridge as IInternalSchedulerBridge & SchedulerBridge).cancelAllJobs(appId);\n }\n\n public async cancelJobByDataQuery(data: object, appId: string): Promise {\n this.bridge.doCancelJobByDataQuery(data, appId);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/managers/AppSchedulerManager.ts"],"names":[],"mappings":"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","file":"AppSchedulerManager.js","sourcesContent":["import { AppMethod } from '../../definition/metadata';\nimport {\n IJobContext,\n IOnetimeSchedule,\n IProcessor,\n IRecurringSchedule,\n} from '../../definition/scheduler';\nimport { AppManager } from '../AppManager';\nimport { IInternalSchedulerBridge } from '../bridges/IInternalSchedulerBridge';\nimport { SchedulerBridge } from '../bridges/SchedulerBridge';\nimport { AppAccessorManager } from './';\n\nfunction createProcessorId(jobId: string, appId: string): string {\n return jobId.includes(`_${appId}`) ? jobId : `${ jobId }_${ appId }`;\n}\n\nexport class AppSchedulerManager {\n private readonly bridge: SchedulerBridge;\n private readonly accessors: AppAccessorManager;\n\n private registeredProcessors: Map;\n\n constructor(private readonly manager: AppManager) {\n this.bridge = this.manager.getBridges().getSchedulerBridge();\n this.accessors = this.manager.getAccessorManager();\n this.registeredProcessors = new Map();\n }\n\n public async registerProcessors(processors: Array = [], appId: string): Promise> {\n if (!this.registeredProcessors.get(appId)) {\n this.registeredProcessors.set(appId, {});\n }\n\n return this.bridge.doRegisterProcessors(processors.map((processor) => {\n const processorId = createProcessorId(processor.id, appId);\n\n this.registeredProcessors.get(appId)[processorId] = processor;\n\n return {\n id: processorId,\n processor: this.wrapProcessor(appId, processorId).bind(this),\n startupSetting: processor.startupSetting,\n };\n }), appId);\n }\n\n public wrapProcessor(appId: string, processorId: string): IProcessor['processor'] {\n return async (jobContext: IJobContext) => {\n const processor = this.registeredProcessors.get(appId)[processorId];\n\n if (!processor) {\n throw new Error(`Processor ${processorId} not available`);\n }\n\n const app = this.manager.getOneById(appId);\n\n const context = app.makeContext({\n processor,\n args: [\n jobContext,\n this.accessors.getReader(appId),\n this.accessors.getModifier(appId),\n this.accessors.getHttp(appId),\n this.accessors.getPersistence(appId),\n ],\n });\n\n const logger = app.setupLogger(AppMethod._JOB_PROCESSOR);\n logger.debug(`Job processor ${processor.id} is being executed...`);\n\n try {\n const codeToRun = `processor.processor.apply(null, args)`;\n await app.runInContext(codeToRun, context);\n logger.debug(`Job processor ${processor.id} was sucessfully executed`);\n } catch (e) {\n logger.error(e);\n logger.debug(`Job processor ${processor.id} was unsuccessful`);\n\n throw e;\n } finally {\n await this.manager.getLogStorage().storeEntries(appId, logger);\n }\n };\n }\n\n public async scheduleOnce(job: IOnetimeSchedule, appId: string): Promise {\n return this.bridge.doScheduleOnce({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async scheduleRecurring(job: IRecurringSchedule, appId: string): Promise {\n return this.bridge.doScheduleRecurring({ ...job, id: createProcessorId(job.id, appId) }, appId);\n }\n\n public async cancelJob(jobId: string, appId: string): Promise {\n this.bridge.doCancelJob(createProcessorId(jobId, appId), appId);\n }\n\n public async cancelAllJobs(appId: string): Promise {\n this.bridge.doCancelAllJobs(appId);\n }\n\n public async cleanUp(appId: string): Promise {\n (this.bridge as IInternalSchedulerBridge & SchedulerBridge).cancelAllJobs(appId);\n }\n\n public async cancelJobByDataQuery(data: object, appId: string): Promise {\n this.bridge.doCancelJobByDataQuery(data, appId);\n }\n}\n"]} \ No newline at end of file diff --git a/src/definition/scheduler/IProcessor.ts b/src/definition/scheduler/IProcessor.ts index 2adbb1bff..e1afcaa63 100644 --- a/src/definition/scheduler/IProcessor.ts +++ b/src/definition/scheduler/IProcessor.ts @@ -1,5 +1,4 @@ import {IHttp, IModify, IPersistence, IRead} from '../accessors'; -import { IApp } from '../IApp'; /** Represents a processor that is used by the scheduler methods */ export interface IProcessor { @@ -8,7 +7,7 @@ export interface IProcessor { /** If provided, the processor will be configured with the setting as soon as it gets registered */ startupSetting?: StartupSetting; /** The function that will be run on a given scheudle */ - processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence, app: IApp): Promise; + processor(jobContext: IJobContext, read: IRead, modify: IModify, http: IHttp, persis: IPersistence): Promise; } /** The `data` object provided to the processor during the registering process */ diff --git a/src/server/managers/AppSchedulerManager.ts b/src/server/managers/AppSchedulerManager.ts index d08188af3..cbe01e087 100644 --- a/src/server/managers/AppSchedulerManager.ts +++ b/src/server/managers/AppSchedulerManager.ts @@ -62,7 +62,6 @@ export class AppSchedulerManager { this.accessors.getModifier(appId), this.accessors.getHttp(appId), this.accessors.getPersistence(appId), - app, ], }); From 3737383df0d644e02ce55ed847328fab91f98040 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 1 Mar 2022 15:57:41 +0200 Subject: [PATCH 12/14] Changed import method of dialogflow API --- server/misc/Utilities.js | 7 +++---- server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 6 ++---- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index 0631a92b9..3833c7963 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -5,9 +5,8 @@ const cloneDeep = require("lodash.clonedeep"); const path = require("path"); const timers = require("timers"); const vm = require("vm"); +const dialogflow_cx_1 = require("../../lib/dialogflow-cx"); const modules_1 = require("../compiler/modules"); -// tslint:disable-next-line: no-var-requires -const DialogFlowApi = require('@google-cloud/dialogflow-cx'); class Utilities { static deepClone(item) { return cloneDeep(item); @@ -56,8 +55,8 @@ class Utilities { } static buildCustomRequire(files, appId, logSetting = 0, currentPath = '.') { return function _requirer(mod) { - if (mod.includes('@google-cloud/dialogflow-cx')) { - return DialogFlowApi; + if (mod.includes('dialogflow-cx')) { + return dialogflow_cx_1.DialogFlowApi; } // Keep compatibility with apps importing apps-ts-definition if (mod.startsWith('@rocket.chat/apps-ts-definition/')) { diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index c64653729..9c661b7ec 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\n// tslint:disable-next-line: no-var-requires\nconst DialogFlowApi = require('@google-cloud/dialogflow-cx');\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.includes('@google-cloud/dialogflow-cx')) {\n return DialogFlowApi;\n }\n\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\nimport { DialogFlowApi } from '../../lib/dialogflow-cx';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.includes('dialogflow-cx')) {\n return DialogFlowApi;\n }\n\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index aa4b2fb9c..6d6cb6608 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -2,12 +2,10 @@ import cloneDeep = require('lodash.clonedeep'); import * as path from 'path'; import * as timers from 'timers'; import * as vm from 'vm'; +import { DialogFlowApi } from '../../lib/dialogflow-cx'; import { AllowedInternalModules, requireNativeModule } from '../compiler/modules'; -// tslint:disable-next-line: no-var-requires -const DialogFlowApi = require('@google-cloud/dialogflow-cx'); - export class Utilities { public static deepClone(item: T): T { return cloneDeep(item); @@ -72,7 +70,7 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { - if (mod.includes('@google-cloud/dialogflow-cx')) { + if (mod.includes('dialogflow-cx')) { return DialogFlowApi; } From c3d129211b21af185c9bd7457269a48ec790de38 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 1 Mar 2022 15:58:16 +0200 Subject: [PATCH 13/14] Added compile files --- lib/dialogflow-cx.d.ts | 1 + lib/dialogflow-cx.js | 7 +++++++ lib/dialogflow-cx.js.map | 1 + src/lib/dialogflow-cx.ts | 2 ++ 4 files changed, 11 insertions(+) create mode 100644 lib/dialogflow-cx.d.ts create mode 100644 lib/dialogflow-cx.js create mode 100644 lib/dialogflow-cx.js.map create mode 100644 src/lib/dialogflow-cx.ts diff --git a/lib/dialogflow-cx.d.ts b/lib/dialogflow-cx.d.ts new file mode 100644 index 000000000..058a49c25 --- /dev/null +++ b/lib/dialogflow-cx.d.ts @@ -0,0 +1 @@ +export declare const DialogFlowApi: any; diff --git a/lib/dialogflow-cx.js b/lib/dialogflow-cx.js new file mode 100644 index 000000000..fc73eed0d --- /dev/null +++ b/lib/dialogflow-cx.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DialogFlowApi = void 0; +// tslint:disable-next-line: no-var-requires +exports.DialogFlowApi = require('@google-cloud/dialogflow-cx'); + +//# sourceMappingURL=dialogflow-cx.js.map diff --git a/lib/dialogflow-cx.js.map b/lib/dialogflow-cx.js.map new file mode 100644 index 000000000..bedba8673 --- /dev/null +++ b/lib/dialogflow-cx.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["src/lib/dialogflow-cx.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC/B,QAAA,aAAa,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC","file":"dialogflow-cx.js","sourcesContent":["// tslint:disable-next-line: no-var-requires\nexport const DialogFlowApi = require('@google-cloud/dialogflow-cx');\n"]} \ No newline at end of file diff --git a/src/lib/dialogflow-cx.ts b/src/lib/dialogflow-cx.ts new file mode 100644 index 000000000..793585105 --- /dev/null +++ b/src/lib/dialogflow-cx.ts @@ -0,0 +1,2 @@ +// tslint:disable-next-line: no-var-requires +export const DialogFlowApi = require('@google-cloud/dialogflow-cx'); From 100783321beba256003c1745f51463a0ffa08549 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Tue, 1 Mar 2022 16:14:45 +0200 Subject: [PATCH 14/14] testing tools --- server/misc/Utilities.js | 2 ++ server/misc/Utilities.js.map | 2 +- src/server/misc/Utilities.ts | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/misc/Utilities.js b/server/misc/Utilities.js index 3833c7963..d907fa5fd 100644 --- a/server/misc/Utilities.js +++ b/server/misc/Utilities.js @@ -56,6 +56,8 @@ class Utilities { static buildCustomRequire(files, appId, logSetting = 0, currentPath = '.') { return function _requirer(mod) { if (mod.includes('dialogflow-cx')) { + console.log('in'); + console.log(dialogflow_cx_1.DialogFlowApi); return dialogflow_cx_1.DialogFlowApi; } // Keep compatibility with apps importing apps-ts-definition diff --git a/server/misc/Utilities.js.map b/server/misc/Utilities.js.map index 9c661b7ec..df4675951 100644 --- a/server/misc/Utilities.js.map +++ b/server/misc/Utilities.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\nimport { DialogFlowApi } from '../../lib/dialogflow-cx';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.includes('dialogflow-cx')) {\n return DialogFlowApi;\n }\n\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/misc/Utilities.ts"],"names":[],"mappings":"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","file":"Utilities.js","sourcesContent":["import cloneDeep = require('lodash.clonedeep');\nimport * as path from 'path';\nimport * as timers from 'timers';\nimport * as vm from 'vm';\nimport { DialogFlowApi } from '../../lib/dialogflow-cx';\n\nimport { AllowedInternalModules, requireNativeModule } from '../compiler/modules';\n\nexport class Utilities {\n public static deepClone(item: T): T {\n return cloneDeep(item);\n }\n\n public static deepFreeze(item: any): T {\n Object.freeze(item);\n\n Object.getOwnPropertyNames(item).forEach((prop: string) => {\n // tslint:disable-next-line:max-line-length\n if (item.hasOwnProperty(prop) && item[prop] !== null && (typeof item[prop] === 'object' || typeof item[prop] === 'function') && !Object.isFrozen(item[prop])) {\n Utilities.deepFreeze(item[prop]);\n }\n });\n\n return item;\n }\n\n public static deepCloneAndFreeze(item: T): T {\n return Utilities.deepFreeze(Utilities.deepClone(item));\n }\n\n /**\n * Keeps compatibility with apps compiled and stored in the database\n * with previous Apps-Engine versions\n */\n public static transformFallbackModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.ts';\n }\n\n public static transformModuleForCustomRequire(moduleName: string): string {\n return path.normalize(moduleName).replace(/\\.\\.?\\//g, '').replace(/^\\//, '') + '.js';\n }\n\n public static allowedInternalModuleRequire(moduleName: string): moduleName is AllowedInternalModules {\n return moduleName in AllowedInternalModules;\n }\n\n public static shouldLog(setting: number, level: number) {\n return setting >= level;\n }\n public static getConsole(setting: number = 0) {\n return {\n ...console,\n debug: (...args: any) => {\n return this.shouldLog(setting, 2) && console.debug(...args);\n },\n log: (...args: any) => {\n return this.shouldLog(setting, 1) && console.log(...args);\n },\n info: (...args: any) => {\n return this.shouldLog(setting, 1) && console.info(...args);\n },\n warn: (...args: any) => {\n return this.shouldLog(setting, 1) && console.warn(...args);\n },\n error: (...args: any) => {\n return this.shouldLog(setting, 0) && console.error(...args);\n },\n };\n }\n\n public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} {\n return function _requirer(mod: string): any {\n if (mod.includes('dialogflow-cx')) {\n console.log('in');\n console.log(DialogFlowApi);\n return DialogFlowApi;\n }\n\n // Keep compatibility with apps importing apps-ts-definition\n if (mod.startsWith('@rocket.chat/apps-ts-definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-ts-definition/', '../../definition/');\n return require(mod);\n }\n\n if (mod.startsWith('@rocket.chat/apps-engine/definition/')) {\n mod = path.normalize(mod);\n mod = mod.replace('@rocket.chat/apps-engine/definition/', '../../definition/');\n return require(mod);\n }\n\n if (Utilities.allowedInternalModuleRequire(mod)) {\n return requireNativeModule(mod, appId);\n }\n\n if (currentPath !== '.') {\n mod = path.join(currentPath, mod);\n }\n\n const transformedModule = Utilities.transformModuleForCustomRequire(mod);\n const fallbackModule = Utilities.transformFallbackModuleForCustomRequire(mod);\n\n const filename = files[transformedModule] ? transformedModule : files[fallbackModule] ? fallbackModule : undefined;\n let fileExport;\n\n if (filename) {\n fileExport = {};\n\n const context = vm.createContext({\n require: Utilities.buildCustomRequire(files, appId, logSetting, path.dirname(filename) + '/' ),\n console: Utilities.getConsole(logSetting),\n exports: fileExport,\n process: {},\n });\n\n vm.runInContext(files[filename], context);\n }\n\n return fileExport;\n };\n }\n\n public static buildDefaultAppContext(injectables: unknown): vm.Context {\n const defaultContextProperties = {\n ...timers,\n Buffer,\n };\n\n return vm.createContext(Object.assign({}, defaultContextProperties, injectables));\n }\n\n public static omit(object: { [key: string]: any }, keys: Array) {\n const cloned = this.deepClone(object);\n for (const key of keys) {\n delete cloned[key];\n }\n return cloned;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/misc/Utilities.ts b/src/server/misc/Utilities.ts index 6d6cb6608..a9a555002 100644 --- a/src/server/misc/Utilities.ts +++ b/src/server/misc/Utilities.ts @@ -71,6 +71,8 @@ export class Utilities { public static buildCustomRequire(files: { [s: string]: string }, appId: string, logSetting: number = 0, currentPath: string = '.' ): (mod: string) => {} { return function _requirer(mod: string): any { if (mod.includes('dialogflow-cx')) { + console.log('in'); + console.log(DialogFlowApi); return DialogFlowApi; }