feat: AST apis for parsing script and returning identifiers (#16252)
* rts configurations for ast * update shared dependencies.json for shared ast module * feat: api for script to identifiers * fix: typo for identifiers * feat: api for multiple scripts to get identifiers * fix: rts config, apis for ast * fix: removed unnecessary changes for ast modules * fix: docker image for rts including ast shared module, rts file alias ref * fix: added comments in build.sh file Co-authored-by: Aman Agarwal <aman@appsmith.com>
This commit is contained in:
parent
be6107b715
commit
b3c4f7c392
|
|
@ -60,7 +60,6 @@ COPY ./app/client/build editor/
|
|||
|
||||
# Add RTS - Application Layer
|
||||
COPY ./app/rts/package.json ./app/rts/dist rts/
|
||||
COPY ./app/rts/node_modules rts/node_modules
|
||||
|
||||
# Nginx & MongoDB config template - Configuration layer
|
||||
COPY ./deploy/docker/templates/nginx/* \
|
||||
|
|
|
|||
|
|
@ -0,0 +1,161 @@
|
|||
/* eslint-disable cypress/no-unnecessary-waiting */
|
||||
|
||||
const widgetsPage = require("../../../../locators/Widgets.json");
|
||||
const dsl = require("../../../../fixtures/tableV2NewDsl.json");
|
||||
const testdata = require("../../../../fixtures/testdata.json");
|
||||
|
||||
describe("Table Widget V2 property pane feature validation", function() {
|
||||
before(() => {
|
||||
cy.addDsl(dsl);
|
||||
});
|
||||
|
||||
it("1. Table widget V2 toggle test for text alignment", function() {
|
||||
cy.openPropertyPane("tablewidgetv2");
|
||||
cy.editColumn("id");
|
||||
cy.moveToStyleTab();
|
||||
cy.get(widgetsPage.toggleTextAlign)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.toggleJsAndUpdate("tabledata", testdata.bindingAlign);
|
||||
|
||||
cy.readTableV2dataValidateCSS("0", "0", "justify-content", "flex-start");
|
||||
cy.readTableV2dataValidateCSS("1", "0", "justify-content", "flex-end");
|
||||
});
|
||||
|
||||
it("2. Table widget V2 change text size and validate", function() {
|
||||
cy.readTableV2dataValidateCSS("0", "0", "font-size", "14px");
|
||||
cy.openPropertyPane("tablewidgetv2");
|
||||
cy.get(".t--property-pane-back-btn").click({ force: true });
|
||||
cy.editColumn("id");
|
||||
cy.moveToStyleTab();
|
||||
cy.get(widgetsPage.toggleTextAlign)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.get(widgetsPage.textSize)
|
||||
.last()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.selectTxtSize("XL");
|
||||
|
||||
cy.readTableV2dataValidateCSS("0", "0", "font-size", "30px");
|
||||
});
|
||||
|
||||
it("3. Table widget toggle test for text size", function() {
|
||||
cy.openPropertyPane("tablewidgetv2");
|
||||
cy.get(".t--property-pane-back-btn").click({ force: true });
|
||||
cy.editColumn("id");
|
||||
cy.moveToStyleTab();
|
||||
cy.get(widgetsPage.toggleTextSize)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.toggleJsAndUpdateWithIndex("tabledata", testdata.bindingNewSize, 0);
|
||||
|
||||
cy.readTableV2dataValidateCSS("0", "0", "font-size", "14px");
|
||||
cy.readTableV2dataValidateCSS("1", "0", "font-size", "24px");
|
||||
});
|
||||
|
||||
it("4. Table widget toggle test for vertical Alignment", function() {
|
||||
cy.openPropertyPane("tablewidgetv2");
|
||||
cy.get(".t--property-pane-back-btn").click({ force: true });
|
||||
cy.editColumn("id");
|
||||
cy.moveToStyleTab();
|
||||
cy.get(widgetsPage.toggleTextSize)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.get(widgetsPage.toggleVerticalAlig)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.toggleJsAndUpdateWithIndex("tabledata", testdata.bindingVerticalAlig, 2);
|
||||
|
||||
cy.readTableV2dataValidateCSS("0", "0", "align-items", "flex-start");
|
||||
cy.readTableV2dataValidateCSS("1", "0", "align-items", "flex-end");
|
||||
});
|
||||
|
||||
it("5. Table widget V2 toggle test for style Alignment", function() {
|
||||
cy.openPropertyPane("tablewidgetv2");
|
||||
cy.get(".t--property-pane-back-btn").click({ force: true });
|
||||
cy.editColumn("id");
|
||||
cy.moveToStyleTab();
|
||||
/*
|
||||
cy.get(widgetsPage.toggleVerticalAlig)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
*/
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.get(widgetsPage.toggleTextStyle)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.toggleJsAndUpdateWithIndex("tabledata", testdata.bindingStyle, 1);
|
||||
|
||||
cy.readTableV2dataValidateCSS("0", "0", "font-style", "normal");
|
||||
cy.readTableV2dataValidateCSS("1", "0", "font-style", "italic");
|
||||
});
|
||||
|
||||
it("6. Table widget toggle test for text color", function() {
|
||||
cy.openPropertyPane("tablewidgetv2");
|
||||
cy.get(".t--property-pane-back-btn").click({ force: true });
|
||||
cy.editColumn("id");
|
||||
cy.moveToStyleTab();
|
||||
cy.get(widgetsPage.toggleVerticalAlig)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.get(widgetsPage.toggleJsColor)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.toggleJsAndUpdate("tabledata", testdata.bindingTextColor);
|
||||
|
||||
cy.wait("@updateLayout");
|
||||
cy.readTableV2dataValidateCSS("0", "0", "color", "rgb(0, 128, 0)");
|
||||
cy.readTableV2dataValidateCSS("1", "0", "color", "rgb(255, 0, 0)");
|
||||
});
|
||||
|
||||
it("7. Table widget toggle test for background color", function() {
|
||||
cy.openPropertyPane("tablewidgetv2");
|
||||
cy.get(".t--property-pane-back-btn").click({ force: true });
|
||||
cy.editColumn("id");
|
||||
cy.moveToStyleTab();
|
||||
cy.get(widgetsPage.toggleJsColor)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.get(widgetsPage.toggleJsBcgColor)
|
||||
.first()
|
||||
.click({ force: true });
|
||||
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||
cy.wait(1000);
|
||||
cy.toggleJsAndUpdate("tabledata", testdata.bindingTextColor);
|
||||
|
||||
cy.wait("@updateLayout");
|
||||
cy.readTableV2dataValidateCSS(
|
||||
"0",
|
||||
"0",
|
||||
"background",
|
||||
"rgb(0, 128, 0) none repeat scroll 0% 0% / auto padding-box border-box",
|
||||
);
|
||||
cy.readTableV2dataValidateCSS(
|
||||
"1",
|
||||
"0",
|
||||
"background",
|
||||
"rgb(255, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box",
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
@ -6,8 +6,6 @@ WORKDIR /app
|
|||
|
||||
COPY package.json dist ./
|
||||
|
||||
COPY node_modules ./node_modules
|
||||
|
||||
EXPOSE 8091
|
||||
|
||||
CMD ["node", "--require", "source-map-support/register", "server.js"]
|
||||
|
|
|
|||
|
|
@ -4,4 +4,6 @@ set -o errexit
|
|||
|
||||
cd "$(dirname "$0")"
|
||||
yarn install --frozen-lockfile
|
||||
npx tsc
|
||||
npx tsc && npx tsc-alias
|
||||
# Copying node_modules directory into dist as rts server requires node_modules to run server build properly. This was previously being done in dockerfile which was copying the symlinks to image rather than the whole directory of shared modules (e.g. AST)
|
||||
cp -r node_modules ./dist
|
||||
|
|
|
|||
|
|
@ -24,6 +24,13 @@
|
|||
},
|
||||
"scripts": {
|
||||
"preinstall": "CURRENT_SCOPE=rts node ../shared/build-shared-dep.js",
|
||||
"postinstall": "CURRENT_SCOPE=rts node ../shared/install-dependencies.js"
|
||||
"build": "./build.sh",
|
||||
"postinstall": "CURRENT_SCOPE=rts node ../shared/install-dependencies.js",
|
||||
"start": "./start-server.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
"express-validator": "^6.14.2",
|
||||
"http-status-codes": "^2.2.0",
|
||||
"tsc-alias": "^1.7.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
63
app/rts/src/controllers/Ast/AstController.ts
Normal file
63
app/rts/src/controllers/Ast/AstController.ts
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
import { Response, Request } from "express";
|
||||
import { StatusCodes } from "http-status-codes";
|
||||
|
||||
import BaseController from "@controllers/BaseController";
|
||||
import AstService from "@services/AstService";
|
||||
|
||||
type ScriptToIdentifiersType = {
|
||||
script: string;
|
||||
evalVersion?: number;
|
||||
};
|
||||
|
||||
type MultipleScriptToIdentifiersType = {
|
||||
scripts: string[];
|
||||
evalVersion?: number;
|
||||
};
|
||||
export default class AstController extends BaseController {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
async getDependentIdentifiers(req: Request, res: Response) {
|
||||
try {
|
||||
// By default the application eval version is set to be 2
|
||||
const { script, evalVersion = 2 }: ScriptToIdentifiersType = req.body;
|
||||
const data = await AstService.getIdentifiersFromScript(
|
||||
script,
|
||||
evalVersion
|
||||
);
|
||||
return super.sendResponse(res, data);
|
||||
} catch (err) {
|
||||
return super.sendError(
|
||||
res,
|
||||
super.serverErrorMessaage,
|
||||
[err.message],
|
||||
StatusCodes.INTERNAL_SERVER_ERROR
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async getMultipleDependentIdentifiers(req: Request, res: Response) {
|
||||
try {
|
||||
// By default the application eval version is set to be 2
|
||||
const { scripts, evalVersion = 2 }: MultipleScriptToIdentifiersType =
|
||||
req.body;
|
||||
|
||||
Promise.all(
|
||||
scripts.map(
|
||||
async (script) =>
|
||||
await AstService.getIdentifiersFromScript(script, evalVersion)
|
||||
)
|
||||
).then((data) => {
|
||||
return super.sendResponse(res, data);
|
||||
});
|
||||
} catch (err) {
|
||||
return super.sendError(
|
||||
res,
|
||||
super.serverErrorMessaage,
|
||||
[err.message],
|
||||
StatusCodes.INTERNAL_SERVER_ERROR
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
62
app/rts/src/controllers/BaseController.ts
Normal file
62
app/rts/src/controllers/BaseController.ts
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
import { Response } from "express";
|
||||
import { ValidationError } from "express-validator";
|
||||
import { StatusCodes } from "http-status-codes";
|
||||
|
||||
type ErrorData = {
|
||||
error: string | string[];
|
||||
validationErrors?: ValidationError[];
|
||||
};
|
||||
|
||||
type ErrorBag = {
|
||||
success: boolean;
|
||||
message: string;
|
||||
data?: ErrorData;
|
||||
};
|
||||
|
||||
type ResponseData = {
|
||||
success: boolean;
|
||||
message?: string;
|
||||
data: unknown; //setting unknown for now, to be modified later.
|
||||
};
|
||||
|
||||
export default class BaseController {
|
||||
serverErrorMessaage = "Something went wrong";
|
||||
sendResponse(
|
||||
response: Response,
|
||||
result: unknown,
|
||||
message?: string,
|
||||
code: number = StatusCodes.OK
|
||||
): Response<ResponseData> {
|
||||
return response.status(code).json({
|
||||
success: true,
|
||||
message,
|
||||
data: result,
|
||||
});
|
||||
}
|
||||
|
||||
sendError(
|
||||
response: Response,
|
||||
error: string,
|
||||
errorMessage,
|
||||
code: number = StatusCodes.BAD_REQUEST
|
||||
): Response<ErrorBag> {
|
||||
let errorBag: ErrorBag = { success: false, message: error };
|
||||
|
||||
if (errorMessage.constructor.name === "Result") {
|
||||
const validationError = errorMessage.array();
|
||||
errorBag.data = {
|
||||
error: [validationError[0].msg],
|
||||
validationErrors: validationError,
|
||||
};
|
||||
// errorBag.message = validationError[0].msg;
|
||||
} else {
|
||||
if (errorMessage.length > 1) {
|
||||
errorBag.data = { error: errorMessage };
|
||||
} else {
|
||||
errorBag.data = { error };
|
||||
}
|
||||
}
|
||||
|
||||
return response.status(code).json(errorBag);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { Server, Socket } from "socket.io";
|
||||
import { tryAuth } from "../middlewares/socket-auth";
|
||||
import { tryAuth } from "@middlewares/socket-auth";
|
||||
import {
|
||||
START_EDIT_EVENT_NAME,
|
||||
LEAVE_EDIT_EVENT_NAME,
|
||||
|
|
@ -7,13 +7,13 @@ import {
|
|||
PAGE_EDIT_NAMESPACE,
|
||||
PAGE_ROOM_PREFIX,
|
||||
EDITORS_EVENT_NAME,
|
||||
} from "../constants/socket";
|
||||
} from "@constants/socket";
|
||||
import {
|
||||
AppUser,
|
||||
Policy,
|
||||
CurrentEditorsEvent,
|
||||
MousePointerEvent,
|
||||
} from "../utils/models";
|
||||
} from "@utils/models";
|
||||
|
||||
function subscribeToEditEvents(socket: Socket, appRoomPrefix: string) {
|
||||
socket.on(START_EDIT_EVENT_NAME, (resourceId) => {
|
||||
|
|
|
|||
13
app/rts/src/middlewares/Validator.ts
Normal file
13
app/rts/src/middlewares/Validator.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import BaseController from "@controllers/BaseController";
|
||||
import { validationResult } from "express-validator";
|
||||
import { Response, Request, NextFunction } from "express";
|
||||
|
||||
export class Validator extends BaseController {
|
||||
validateRequest(req: Request, res: Response, next: NextFunction) {
|
||||
const errors = validationResult(req);
|
||||
if (!errors.isEmpty())
|
||||
return super.sendError(res, "Validation error", errors);
|
||||
|
||||
next();
|
||||
}
|
||||
}
|
||||
15
app/rts/src/middlewares/rules/ast.ts
Normal file
15
app/rts/src/middlewares/rules/ast.ts
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import { body } from "express-validator";
|
||||
|
||||
export default class AstValidator {
|
||||
static getScriptValidator = () =>
|
||||
body("script")
|
||||
.isString()
|
||||
.withMessage("Script is required and can only be a string");
|
||||
|
||||
static getMultipleScriptValidator = () =>
|
||||
body("scripts")
|
||||
.isArray({
|
||||
min: 1,
|
||||
})
|
||||
.withMessage("Multiple scripts are required");
|
||||
}
|
||||
24
app/rts/src/routes/ast_routes.ts
Normal file
24
app/rts/src/routes/ast_routes.ts
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import express from "express";
|
||||
import AstController from "@controllers/Ast/AstController";
|
||||
import { Validator } from "@middlewares/Validator";
|
||||
import AstRules from "@rules/ast";
|
||||
|
||||
const router = express.Router();
|
||||
const astController = new AstController();
|
||||
const validator = new Validator();
|
||||
|
||||
router.post(
|
||||
"/single-script-identifiers",
|
||||
AstRules.getScriptValidator(),
|
||||
validator.validateRequest,
|
||||
astController.getDependentIdentifiers
|
||||
);
|
||||
|
||||
router.post(
|
||||
"/multiple-script-identifiers",
|
||||
AstRules.getMultipleScriptValidator(),
|
||||
validator.validateRequest,
|
||||
astController.getMultipleDependentIdentifiers
|
||||
);
|
||||
|
||||
export default router;
|
||||
|
|
@ -6,7 +6,11 @@ import log, { LogLevelDesc } from "loglevel";
|
|||
import { VERSION as buildVersion } from "./version"; // release version of the api
|
||||
import { initializeSockets } from "./sockets";
|
||||
|
||||
// routes
|
||||
import ast_routes from "./routes/ast_routes";
|
||||
|
||||
const RTS_BASE_PATH = "/rts";
|
||||
const RTS_BASE_API_PATH = "/rts-api/v1";
|
||||
|
||||
// Setting the logLevel for all log messages
|
||||
const logLevel: LogLevelDesc = (process.env.APPSMITH_LOG_LEVEL ||
|
||||
|
|
@ -46,12 +50,16 @@ function main() {
|
|||
// Initializing Sockets
|
||||
initializeSockets(io);
|
||||
|
||||
// parse incoming json requests
|
||||
app.use(express.json({ limit: "5mb" }));
|
||||
// Initializing Routes
|
||||
app.use(express.static(path.join(__dirname, "static")));
|
||||
app.get("/", (_, res) => {
|
||||
res.redirect("/index.html");
|
||||
});
|
||||
|
||||
app.use(`${RTS_BASE_API_PATH}/ast`, ast_routes);
|
||||
|
||||
// Run the server
|
||||
server.listen(PORT, () => {
|
||||
log.info(`RTS version ${buildVersion} running at http://localhost:${PORT}`);
|
||||
|
|
|
|||
21
app/rts/src/services/AstService.ts
Normal file
21
app/rts/src/services/AstService.ts
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import { extractIdentifiersFromCode } from "@shared/ast";
|
||||
|
||||
export default class AstService {
|
||||
static async getIdentifiersFromScript(
|
||||
script,
|
||||
evalVersion
|
||||
): Promise<any> {
|
||||
return new Promise((resolve, reject) => {
|
||||
try {
|
||||
const extractions = extractIdentifiersFromCode(
|
||||
script,
|
||||
evalVersion
|
||||
);
|
||||
|
||||
resolve(extractions);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -8,14 +8,14 @@ import {
|
|||
PAGE_ROOM_PREFIX,
|
||||
ROOT_NAMESPACE,
|
||||
PAGE_VISIBILITY_EVENT_NAME
|
||||
} from "../constants/socket";
|
||||
} from "@constants/socket";
|
||||
import { VERSION as buildVersion } from "../version";
|
||||
import {
|
||||
subscribeToEditEvents,
|
||||
onAppSocketConnected,
|
||||
onPageSocketConnected,
|
||||
sendCurrentUsers
|
||||
} from "../controllers/socket";
|
||||
sendCurrentUsers,
|
||||
} from "@controllers/socket";
|
||||
|
||||
export function watchEvents(io: Server) {
|
||||
io.on("connection", (socket: Socket) => {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import type mongodb from "mongodb";
|
||||
import log from "loglevel";
|
||||
import { MongoClient } from "mongodb";
|
||||
import { CommentThread, Comment } from "../utils/models";
|
||||
import { findPolicyEmails } from "../controllers/socket";
|
||||
import { CommentThread, Comment } from "@utils/models";
|
||||
import { findPolicyEmails } from "@controllers/socket";
|
||||
|
||||
const MONGODB_URI = process.env.APPSMITH_MONGODB_URI;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,16 @@
|
|||
"moduleResolution": "node",
|
||||
"sourceMap": true,
|
||||
"outDir": "dist",
|
||||
"allowJs": true
|
||||
},
|
||||
"lib": [
|
||||
"es2015"
|
||||
]
|
||||
"allowJs": true,
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@constants/*": ["./src/constants/*"],
|
||||
"@services/*": ["./src/services/*"],
|
||||
"@middlewares/*": ["./src/middlewares/*"],
|
||||
"@controllers/*": ["./src/controllers/*"],
|
||||
"@rules/*": ["./src/middlewares/rules/*"],
|
||||
"@utils/*": ["./src/utils/*"],
|
||||
}
|
||||
},
|
||||
"lib": ["es2015"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,27 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "2.0.5"
|
||||
run-parallel "^1.1.9"
|
||||
|
||||
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
|
||||
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
||||
|
||||
"@nodelib/fs.walk@^1.2.3":
|
||||
version "1.2.8"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
|
||||
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
|
||||
dependencies:
|
||||
"@nodelib/fs.scandir" "2.1.5"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@types/body-parser@*":
|
||||
version "1.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
|
||||
|
|
@ -107,11 +128,24 @@ accepts@~1.3.4, accepts@~1.3.7:
|
|||
mime-types "~2.1.24"
|
||||
negotiator "0.6.2"
|
||||
|
||||
anymatch@~3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
||||
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
||||
dependencies:
|
||||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
array-flatten@1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
||||
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
|
||||
|
||||
array-union@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
||||
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
||||
|
||||
axios@^0.21.2:
|
||||
version "0.21.2"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.2.tgz#21297d5084b2aeeb422f5d38e7be4fbb82239017"
|
||||
|
|
@ -124,6 +158,11 @@ base64id@2.0.0, base64id@~2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
|
||||
integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
|
||||
|
||||
binary-extensions@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||
|
||||
bl@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.1.tgz#8c11a7b730655c5d56898cdc871224f40fd901d5"
|
||||
|
|
@ -148,6 +187,13 @@ body-parser@1.19.0:
|
|||
raw-body "2.4.0"
|
||||
type-is "~1.6.17"
|
||||
|
||||
braces@^3.0.2, braces@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
bson@^1.1.4:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.5.tgz#2aaae98fcdf6750c0848b0cba1ddec3c73060a34"
|
||||
|
|
@ -163,6 +209,26 @@ bytes@3.1.0:
|
|||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
|
||||
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
|
||||
|
||||
chokidar@^3.5.3:
|
||||
version "3.5.3"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
|
||||
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
||||
dependencies:
|
||||
anymatch "~3.1.2"
|
||||
braces "~3.0.2"
|
||||
glob-parent "~5.1.2"
|
||||
is-binary-path "~2.1.0"
|
||||
is-glob "~4.0.1"
|
||||
normalize-path "~3.0.0"
|
||||
readdirp "~3.6.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
commander@^9.0.0:
|
||||
version "9.4.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c"
|
||||
integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==
|
||||
|
||||
component-emitter@~1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
|
||||
|
|
@ -244,6 +310,13 @@ destroy@~1.0.4:
|
|||
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
|
||||
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
|
||||
|
||||
dir-glob@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
||||
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
|
||||
dependencies:
|
||||
path-type "^4.0.0"
|
||||
|
||||
ee-first@1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||
|
|
@ -285,6 +358,14 @@ etag@~1.8.1:
|
|||
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
||||
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
|
||||
|
||||
express-validator@^6.14.2:
|
||||
version "6.14.2"
|
||||
resolved "https://registry.yarnpkg.com/express-validator/-/express-validator-6.14.2.tgz#6147893f7bec0e14162c3a88b3653121afc4678f"
|
||||
integrity sha512-8XfAUrQ6Y7dIIuy9KcUPCfG/uCbvREctrxf5EeeME+ulanJ4iiW71lWmm9r4YcKKYOCBMan0WpVg7FtHu4Z4Wg==
|
||||
dependencies:
|
||||
lodash "^4.17.21"
|
||||
validator "^13.7.0"
|
||||
|
||||
express@^4.17.1:
|
||||
version "4.17.1"
|
||||
resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
|
||||
|
|
@ -321,6 +402,31 @@ express@^4.17.1:
|
|||
utils-merge "1.0.1"
|
||||
vary "~1.1.2"
|
||||
|
||||
fast-glob@^3.2.9:
|
||||
version "3.2.11"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
|
||||
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "^2.0.2"
|
||||
"@nodelib/fs.walk" "^1.2.3"
|
||||
glob-parent "^5.1.2"
|
||||
merge2 "^1.3.0"
|
||||
micromatch "^4.0.4"
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
|
||||
integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
|
||||
dependencies:
|
||||
reusify "^1.0.4"
|
||||
|
||||
fill-range@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
||||
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
||||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
finalhandler@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
|
||||
|
|
@ -349,6 +455,30 @@ fresh@0.5.2:
|
|||
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
||||
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
|
||||
|
||||
fsevents@~2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||
|
||||
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
globby@^11.0.4:
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
|
||||
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
|
||||
dependencies:
|
||||
array-union "^2.1.0"
|
||||
dir-glob "^3.0.1"
|
||||
fast-glob "^3.2.9"
|
||||
ignore "^5.2.0"
|
||||
merge2 "^1.4.1"
|
||||
slash "^3.0.0"
|
||||
|
||||
http-errors@1.7.2:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
|
||||
|
|
@ -371,6 +501,11 @@ http-errors@~1.7.2:
|
|||
statuses ">= 1.5.0 < 2"
|
||||
toidentifier "1.0.0"
|
||||
|
||||
http-status-codes@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.2.0.tgz#bb2efe63d941dfc2be18e15f703da525169622be"
|
||||
integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==
|
||||
|
||||
iconv-lite@0.4.24:
|
||||
version "0.4.24"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||
|
|
@ -378,6 +513,11 @@ iconv-lite@0.4.24:
|
|||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
ignore@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
|
||||
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
|
||||
|
||||
inherits@2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
|
|
@ -393,11 +533,40 @@ ipaddr.js@1.9.1:
|
|||
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
||||
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
||||
|
||||
is-binary-path@~2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
||||
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
||||
dependencies:
|
||||
binary-extensions "^2.0.0"
|
||||
|
||||
is-extglob@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
|
||||
|
||||
is-glob@^4.0.1, is-glob@~4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
|
||||
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
||||
dependencies:
|
||||
is-extglob "^2.1.1"
|
||||
|
||||
is-number@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||
|
||||
isarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||
|
||||
lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
loglevel@^1.7.1:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
|
||||
|
|
@ -418,11 +587,24 @@ merge-descriptors@1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
||||
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
|
||||
|
||||
merge2@^1.3.0, merge2@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||
|
||||
methods@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
||||
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
|
||||
|
||||
micromatch@^4.0.4:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
|
||||
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||
dependencies:
|
||||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-db@1.46.0:
|
||||
version "1.46.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
|
||||
|
|
@ -468,11 +650,21 @@ ms@2.1.2:
|
|||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
||||
mylas@^2.1.9:
|
||||
version "2.1.11"
|
||||
resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.11.tgz#1827462533977bed1c4251317aa84254e3ca94c7"
|
||||
integrity sha512-krnPUl3n9/k52FGCltWMYcqp9SttxjRJEy0sWLk+g7mIa7wnZrmNSZ40Acx7ghzRSOsxt2rEqMbaq4jWlnTDKg==
|
||||
|
||||
negotiator@0.6.2:
|
||||
version "0.6.2"
|
||||
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
|
||||
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
|
||||
|
||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||
|
||||
object-assign@^4:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
|
@ -495,6 +687,23 @@ path-to-regexp@0.1.7:
|
|||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
||||
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
||||
|
||||
path-type@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
plimit-lit@^1.2.6:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.3.0.tgz#46908adbfcfc010e65a5a737652768b0fec21587"
|
||||
integrity sha512-63qOoSzggsjBHPVbaKeEtsO8oWTeyJxUfVRLkoc59pRkDiCCLvqn2tCgAkfbejrx+V5zJtlG2wqkk/Db6cwlVQ==
|
||||
dependencies:
|
||||
queue-lit "^1.3.0"
|
||||
|
||||
process-nextick-args@~2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||
|
|
@ -513,6 +722,16 @@ qs@6.7.0:
|
|||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
||||
integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
|
||||
|
||||
queue-lit@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.3.0.tgz#a29e4cfd0d0e2c6594beb70a4726716a57ffce5b"
|
||||
integrity sha512-3HpQ7bD2ct56qPithPr5IzH2Oij3WVPcgevCJ+mI9HAfVJKCqQ2yiFYgb4AUkLfsCmmbVDy9luvE97Ztzr5eBg==
|
||||
|
||||
queue-microtask@^1.2.2:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||
|
||||
range-parser@~1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
||||
|
|
@ -541,6 +760,13 @@ readable-stream@^2.3.5:
|
|||
string_decoder "~1.1.1"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
readdirp@~3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
||||
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
||||
dependencies:
|
||||
picomatch "^2.2.1"
|
||||
|
||||
require_optional@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e"
|
||||
|
|
@ -554,6 +780,18 @@ resolve-from@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
|
||||
integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
run-parallel@^1.1.9:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
||||
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
|
||||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||
|
|
@ -615,6 +853,11 @@ setprototypeof@1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
|
||||
integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
|
||||
|
||||
slash@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
||||
|
||||
socket.io-adapter@^2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz#039cd7c71a52abad984a6d57da2c0b7ecdd3c289"
|
||||
|
|
@ -678,11 +921,30 @@ string_decoder@~1.1.1:
|
|||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
||||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
toidentifier@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
|
||||
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
|
||||
|
||||
tsc-alias@^1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.7.0.tgz#733482751133a25b97608ee424f8a1f085fcaaef"
|
||||
integrity sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg==
|
||||
dependencies:
|
||||
chokidar "^3.5.3"
|
||||
commander "^9.0.0"
|
||||
globby "^11.0.4"
|
||||
mylas "^2.1.9"
|
||||
normalize-path "^3.0.0"
|
||||
plimit-lit "^1.2.6"
|
||||
|
||||
type-is@~1.6.17, type-is@~1.6.18:
|
||||
version "1.6.18"
|
||||
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
|
||||
|
|
@ -711,6 +973,11 @@ utils-merge@1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
||||
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
|
||||
|
||||
validator@^13.7.0:
|
||||
version "13.7.0"
|
||||
resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857"
|
||||
integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==
|
||||
|
||||
vary@^1, vary@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||
|
|
|
|||
|
|
@ -17,3 +17,10 @@ We wanted to share common logic with different applications within our repo, so
|
|||
## Verifying the Installed Shared Modules
|
||||
- Run `yarn run verify` inside `shared` directory to verify shared dependencies for an application.
|
||||
|
||||
## Command `link-package`
|
||||
- `yarn install` : installs packages
|
||||
- `rollup -c` : Module bundler bundles the package and creates a build
|
||||
- `cd build` : Change the present working directory
|
||||
- `cp -R ../node_modules ./node_modules` : copies its own node_modules directory to its build directory to make sure its own version dependencies do not mismatch when its installed in other directories as shared module
|
||||
- `yarn link` : Creates a link for the package to make it available for other directories to use.
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
"test:jest": "$(npm bin)/jest --watch",
|
||||
"build": "rollup -c",
|
||||
"start": "rollup -c",
|
||||
"link-package": "yarn install && rollup -c && cd build && yarn link"
|
||||
"link-package": "yarn install && rollup -c && cd build && cp -R ../node_modules ./node_modules && yarn link"
|
||||
},
|
||||
"dependencies": {
|
||||
"acorn": "^8.8.0",
|
||||
|
|
@ -30,8 +30,8 @@
|
|||
"devDependencies": {
|
||||
"@babel/preset-typescript": "^7.17.12",
|
||||
"@rollup/plugin-commonjs": "^22.0.0",
|
||||
"@types/lodash": "^4.14.120",
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/lodash": "^4.14.120",
|
||||
"@typescript-eslint/eslint-plugin": "^5.25.0",
|
||||
"@typescript-eslint/parser": "^5.25.0",
|
||||
"rollup-plugin-generate-package-json": "^3.2.0",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"client": ["@shared/ast"],
|
||||
"rts": []
|
||||
"rts": ["@shared/ast"]
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user