// offending code· 3 files flaggedpatterns: 8
--- package/package.json (excerpt) ---
{
"name": "@chatlayer/app-platform",
"version": "1.0.3",
"main": "index.js",
"bin": {
"cldk": "./bin/cli.js"
},
"scripts": {
"format": "prettier --write src/**/*.js",
"test": "jest",
"pre-commit": "lint-staged"
},
"repository": "git://github.com/chatlayerai/chatlayer.git",
"dependencies": {
"@chatlayer/blip": "^1.1.1",
"@oclif/core": "^1.6.3",
"@oclif/plugin-help": "^5.1.12",
"adm-zip": "^0.5.5",
"archiver": "^5.3.0",
"atomic-sleep": "^1.0.0",
"axios": "^1.16.0",
"browserify": "^17.0.0",
"colors": "1.4.0",
"console": "^0.7.2",
"esbuild": "0.24.0",
"fast-redact": "^3.0.2",
"fastify-warning": "^0.2.0",
"flatstr": "^1.0.12",
"form-data": "^4.0.5",
"fs-extra": "^10.0.0",
"gaxios": "^4.3.2",
"google-auth-library": "^7.6.2",
"googleapis": "85.0.0",
"gulp-filter": "^7.0.0",
"gulp-prettier": "^4.0.0",
"ignore": "^5.1.8",
"jsonschema": "^1.4.0",
"klaw": "4.1.0",
"lodash": "^4.18.1",
"node-fetch": "^2.6.1",
"ora": "5.4.0",
"parse-gitignore": "^1.0.1",
"pino": "^6.13.2",
"pino-std-serializers": "^4.0.0",
"pumpify": "^2.0.1",
"semver": "^7.7.4",
"slugify": "^1.6.0",
"sonic-boom": "^2.2.3",
"split2": "^4.1.0",
"through2": "^4.0.2",
"update-notifier": "5.1.0",
"yeoman-environment": "^3.6.0",
"yeoman-generator": "^5.4.2"
},
"engines": {
"node": ">=18.0.0"
},
"typings": "./src/index.d.ts",
"
--- package/src/constants.js (excerpt) ---
const STATUSES = {
ERRORED: "ERRORED",
TIMEDOUT: "TIMEDOUT",
SUCCESS: "SUCCESS"
};
const BUILD_DIR = "build";
const BUILD_PATH = `${BUILD_DIR}/build.zip`;
const SOURCE_PATH = `${BUILD_DIR}/source.zip`;
const BLACKLISTED_PATHS = [
// Will be excluded from build.zip and source.zip
".git",
".env",
".environment",
"build",
"node_modules",
"dist"
];
const APP_INTEGRATIONS_SERVICE_URL =
process.env.APP_INTEGRATIONS_SERVICE_URL ||
"https://app-integrations.chatlayer.ai";
const packageJson = require("../package.json");
const PLATFORM_PACKAGE = packageJson.name;
const PLATFORM_VERSION = packageJson.version;
const WRAPPER_FILE_PATH = `node_modules/${PLATFORM_PACKAGE}/src/includes/wrapper.js`;
const SENSITIVE_STRINGS = [
"api_key",
"apikey",
"api-key",
"auth",
"jwt",
"passwd",
"pass",
"password",
"pswd",
"secret",
"signature",
"token"
];
module.exports = {
STATUSES,
BUILD_DIR,
BUILD_PATH,
SOURCE_PATH,
WRAPPER_FILE_PATH,
BLACKLISTED_PATHS,
APP_INTEGRATIONS_SERVICE_URL,
PLATFORM_PACKAGE,
PLATFORM_VERSION,
SENSITIVE_STRINGS
};
--- package/src/create_app_handler.js (excerpt) ---
//
const _ = require("lodash");
const domain = require("domain");
const createInput = require("./create_input");
const createApp = require("./create_app");
const environment = require("./environment");
const { createLogger } = require("./logger");
const { ensureErrorOutputEnvelope } = require("./envelope");
const createHttpPatch = require("./utils/create_http_patch");
const loadApp = appRawOrPath => {
if (_.isString(appRawOrPath)) {
return require(appRawOrPath);
}
return appRawOrPath;
};
const createAppHandler = appRawOrPath => {
// for aws provider
const awsLamdaWrapper = (event, context, callback) => {
// Wait for all async events to complete before callback returns.
// This is not strictly necessary since this is the default now when
// using the callback; just putting it here to be explicit.
context.callbackWaitsForEmptyEventLoop = true;
const appRaw = loadApp(appRawOrPath);
const { app, compiledApp } = createApp(appRaw);
let isCallbackCalled = false;
const logger = createLogger(event);
const callbackOnce = (err, resp) => {
if (!isCallbackCalled) {
isCallbackCalled = true;
if (err) {
const errorMessage = err.message;
logger.log(errorMessage, { log_type: "error", err });
callback(err);
} else {
callback(null, resp);
}
}
};
const handlerDomain = domain.create();
handlerDomain.on("error", err => {
callbackOnce(err, null