miqro 1.7.15 → 1.7.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- //@miqro/core
5
4
  const utils_1 = require("./utils");
6
5
  const start_1 = require("./cmds/start");
6
+ const test_1 = require("./cmds/test");
7
7
  const watch_1 = require("./cmds/watch");
8
8
  const new_1 = require("./cmds/new");
9
9
  const doc_json_1 = require("./cmds/doc-json");
@@ -16,7 +16,6 @@ const handler_apiroute_new_1 = require("./cmds/handler-apiroute-new");
16
16
  const new_test_1 = require("./cmds/new-test");
17
17
  const serve_1 = require("./cmds/serve");
18
18
  const handler_main_new_1 = require("./cmds/handler-main-new");
19
- //@miqro/database
20
19
  const db_init_1 = require("./cmds/db-init");
21
20
  const db_makemigrations_1 = require("./cmds/db-makemigrations");
22
21
  const db_sync_makemigrations_1 = require("./cmds/db-sync-makemigrations");
@@ -24,6 +23,7 @@ const db_console_1 = require("./cmds/db-console");
24
23
  const db_createmodel_1 = require("./cmds/db-createmodel");
25
24
  const db_push_data_1 = require("./cmds/db-push-data");
26
25
  const db_dump_data_1 = require("./cmds/db-dump-data");
26
+ const db_migrate_1 = require("./cmds/db-migrate");
27
27
  // noinspection SpellCheckingInspection
28
28
  (0, utils_1.mainCMD)({
29
29
  ["new"]: { section: "quick start", cb: new_1.mainJS, tabs: 5, description: `create a new project. ${new_1.usageJS}` },
@@ -66,9 +66,14 @@ const db_dump_data_1 = require("./cmds/db-dump-data");
66
66
  },
67
67
  ["serve"]: {
68
68
  //section: "serve static files",
69
- tabs: 6,
69
+ tabs: 5,
70
70
  cb: serve_1.main, description: `serve static files. ${serve_1.usage}`
71
71
  },
72
+ /*["generate:html:cache"]: {
73
+ section: "web components",
74
+ tabs: 6,
75
+ cb: generateTemplatesCache, description: `generate cache.js for webcomponents. ${generateTemplatesCacheUsage}`
76
+ },*/
72
77
  ["doc"]: {
73
78
  section: "api documentation",
74
79
  tabs: 5,
@@ -80,7 +85,8 @@ const db_dump_data_1 = require("./cmds/db-dump-data");
80
85
  tabs: 5,
81
86
  description: `outputs to a file an api folder auto doc as a markdown. ${doc_md_1.usage}`
82
87
  },
83
- ["new:test"]: { section: "testing", cb: new_test_1.main, tabs: 4, description: `create new test.js file. ${new_test_1.usage}` },
88
+ ["test"]: { section: "testing", cb: test_1.main, tabs: 5, description: `run test files. ${test_1.usage}` },
89
+ ["new:test"]: { cb: new_test_1.main, tabs: 4, description: `create new test.js file. ${new_test_1.usage}` },
84
90
  ["db:console"]: {
85
91
  section: "sequelize helpers",
86
92
  cb: db_console_1.main,
@@ -95,7 +101,7 @@ const db_dump_data_1 = require("./cmds/db-dump-data");
95
101
  ["db:push:data"]: { cb: db_push_data_1.main, tabs: 4, description: `push a dump to the database. ${db_push_data_1.usage}` },
96
102
  ["db:make:migration"]: {
97
103
  cb: db_makemigrations_1.main,
98
- tabs: 2,
104
+ tabs: 3,
99
105
  description: `seeks changes in your models and creates migrations. ${db_makemigrations_1.usage}`
100
106
  },
101
107
  ["db:make:migration:force:clean:state"]: {
@@ -103,6 +109,7 @@ const db_dump_data_1 = require("./cmds/db-dump-data");
103
109
  tabs: 1,
104
110
  description: `regenerate _current.json in the migrations folder to force the 'local' migration state to be the same as the current models. ${db_sync_makemigrations_1.usage}`
105
111
  },
112
+ ["db:migrate"]: { cb: db_migrate_1.main, tabs: 4, description: `loads config/<NODE_ENV>/*.env config and runs npx sequelize-cli db:migrate <...args>. ${db_migrate_1.usage}` },
106
113
  ["db:init"]: { cb: db_init_1.main, tabs: 5, description: `init sequelize configuration. ${db_init_1.usage}` },
107
114
  ["db:create:model"]: { cb: db_createmodel_1.main, tabs: 4, description: `creates an example model. ${db_createmodel_1.usage}` }
108
115
  }, "npx miqro <command> [args]", console);
@@ -9,18 +9,17 @@ const db_1 = require("../utils/db");
9
9
  exports.usage = "usage: [NODE_ENV=development] npx miqro db:create:model <modelname>";
10
10
  const main = () => {
11
11
  const logger = console;
12
- const modelname = process.argv[3];
12
+ const modelName = process.argv[3];
13
13
  if (process.argv.length !== 4) {
14
14
  throw new Error(exports.usage);
15
15
  }
16
- if (typeof modelname !== "string") {
16
+ if (typeof modelName !== "string") {
17
17
  throw new Error(`<modelname> must be a string!`);
18
18
  }
19
19
  (0, core_1.loadConfig)();
20
20
  const config = (0, db_1.loadSequelizeRC)();
21
21
  // disable experimental typescript support
22
- const typescript = false; //existsSync(resolve(ConfigPathResolver.getBaseDirname(), "tsconfig.json")) ? true : false;
23
- const modelsFolder = typescript ? (0, path_1.resolve)(core_1.ConfigPathResolver.getBaseDirname(), "src", "models") : config["models-path"];
22
+ const modelsFolder = config["models-path"];
24
23
  if (!(0, fs_1.existsSync)(modelsFolder)) {
25
24
  logger.warn(`models folder [${modelsFolder}] doesnt exists!`);
26
25
  logger.warn(`creating [${modelsFolder}]!`);
@@ -28,11 +27,11 @@ const main = () => {
28
27
  recursive: true
29
28
  });
30
29
  }
31
- const modelPath = (0, path_1.resolve)(modelsFolder, `${modelname.toLowerCase()}${typescript ? ".ts" : ".js"}`);
30
+ const modelPath = (0, path_1.resolve)(modelsFolder, `${modelName.toLowerCase()}.js`);
32
31
  if ((0, fs_1.existsSync)(modelPath)) {
33
32
  throw new Error(`${modelPath} already exists!`);
34
33
  }
35
34
  logger.info(`creating [${modelPath}]!`);
36
- (0, fs_1.writeFileSync)(modelPath, templates_1.templates.exampleModel(modelname, typescript));
35
+ (0, fs_1.writeFileSync)(modelPath, templates_1.templates.exampleModel(modelName));
37
36
  };
38
37
  exports.main = main;
@@ -33,7 +33,6 @@ const main = () => {
33
33
  }
34
34
  initEnvFile((0, path_1.resolve)(configPath, `db.env`), templates_1.templates.dbEnvFile);
35
35
  (0, utils_1.execSync)(`npm install sequelize --save`);
36
- (0, utils_1.execSync)(`npm install @miqro/core --save`);
37
36
  }
38
37
  };
39
38
  exports.main = main;
@@ -0,0 +1,2 @@
1
+ export declare const usage = "usage: [NODE_ENV=development] npx miqro db:migrate [...args]";
2
+ export declare const main: () => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = exports.usage = void 0;
4
+ const utils_1 = require("../utils");
5
+ const core_1 = require("@miqro/core");
6
+ exports.usage = "usage: [NODE_ENV=development] npx miqro db:migrate [...args]";
7
+ const main = () => {
8
+ (0, core_1.loadConfig)();
9
+ const args = process.argv.slice(3).join(" ");
10
+ (0, utils_1.execSync)(`npx sequelize-cli db:migrate${args ? ` ${args}` : ""}`);
11
+ };
12
+ exports.main = main;
@@ -6,19 +6,9 @@ const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
7
  exports.usage = `usage: [NODE_ENV=development] npx miqro new:test <identifier ex: TEST_SOMEFILE>`;
8
8
  const testTemplates = {
9
- js: (category) => `const options = {
10
- category: "${category}",
11
- before: async () => {
9
+ js: (category) => `it("happy path", async () => {
12
10
 
13
- },
14
- after: async () => {
15
-
16
- }
17
- };
18
-
19
- it("happy path", async () => {
20
-
21
- }, options)
11
+ })
22
12
  `
23
13
  };
24
14
  const main = () => {
@@ -10,6 +10,9 @@ exports.usage = `usage: [NODE_ENV=development] npx miqro serve [directory=./] [p
10
10
  const main = () => {
11
11
  const flags = (0, utils_1.extractFlags)(process.argv.slice(3), {
12
12
  flags: {
13
+ "index404Status": {
14
+ description: "status to handle index404 status", hasValue: true
15
+ },
13
16
  "index404": {
14
17
  description: "file to handle 404", hasValue: true
15
18
  }, "proxy": {
@@ -62,7 +65,10 @@ const main = () => {
62
65
  }
63
66
  }
64
67
  app.use((0, core_1.Static)({
65
- directory, list: true, index404: flags.flags.index404 ? flags.flags.index404 : undefined
68
+ directory,
69
+ list: true,
70
+ index404: flags.flags.index404 ? flags.flags.index404 : undefined,
71
+ index404Status: flags.flags.index404Status ? parseInt(flags.flags.index404Status, 10) : undefined
66
72
  }), path);
67
73
  app.listen(PORT, () => {
68
74
  console.log("serving " + directory + " on " + path + " on port " + PORT);
@@ -0,0 +1,2 @@
1
+ export declare const usage = "usage: npx miqro test <test_files> [-r <folder>] [-i] [-n testname]";
2
+ export declare const main: () => void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = exports.usage = void 0;
4
+ const utils_1 = require("../utils");
5
+ const test_1 = require("@miqro/test");
6
+ const core_1 = require("@miqro/core");
7
+ exports.usage = "usage: npx miqro test <test_files> [-r <folder>] [-i] [-n testname]";
8
+ const main = () => {
9
+ if (process.argv.length <= 3) {
10
+ throw new Error(`invalid number of args\n${exports.usage}`);
11
+ }
12
+ (0, core_1.loadConfig)();
13
+ (0, utils_1.execSync)(`${process.argv[0]} ${(0, test_1.mainPath)()} ${process.argv.slice(3).join(" ")}`);
14
+ };
15
+ exports.main = main;
@@ -9,7 +9,9 @@ function setupWatch(directory, cmd, timeout = 1000) {
9
9
  (0, fs_1.watchFile)(directory, () => {
10
10
  queueRunCMD(cmd, timeout);
11
11
  });
12
- (0, fs_1.watch)(directory, () => {
12
+ (0, fs_1.watch)(directory, {
13
+ recursive: true
14
+ }, () => {
13
15
  queueRunCMD(cmd, timeout);
14
16
  });
15
17
  }
@@ -24,10 +26,15 @@ function queueRunCMD(cmd, timeout) {
24
26
  }
25
27
  cmdTimeout = setTimeout(() => {
26
28
  running = true;
27
- (0, utils_1.execSync)(cmd, {
28
- cwd: process.cwd(),
29
- env: process.env
30
- });
29
+ try {
30
+ (0, utils_1.execSync)(cmd, {
31
+ cwd: process.cwd(),
32
+ env: process.env
33
+ });
34
+ }
35
+ catch (e) {
36
+ console.error(e);
37
+ }
31
38
  running = false;
32
39
  }, timeout);
33
40
  }
@@ -0,0 +1,2 @@
1
+ export declare const usage = "npx miqro generate:template:cache <src> <out.json>";
2
+ export declare const main: () => Promise<void>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = exports.usage = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const util_1 = require("util");
7
+ function recursiveSearch(path, found = []) {
8
+ const files = (0, fs_1.readdirSync)(path);
9
+ for (const file of files) {
10
+ const filePath = (0, path_1.resolve)(path, file);
11
+ if ((0, fs_1.statSync)(filePath).isDirectory()) {
12
+ recursiveSearch(filePath, found);
13
+ }
14
+ else {
15
+ const ext = (0, path_1.extname)(filePath);
16
+ if (ext === ".html" || ext === ".htm") {
17
+ found.push(filePath);
18
+ }
19
+ }
20
+ }
21
+ return found;
22
+ }
23
+ exports.usage = "npx miqro generate:template:cache <src> <out.json>";
24
+ const main = async () => {
25
+ if (process.argv.length !== 5 || process.argv[3].length < 1 || process.argv[4].length < 1) {
26
+ throw new Error(exports.usage);
27
+ }
28
+ const directory = process.argv[3].toLocaleLowerCase();
29
+ const outfile = process.argv[4].toLocaleLowerCase();
30
+ const path = (0, path_1.resolve)(process.cwd(), directory);
31
+ const outFilePath = (0, path_1.resolve)(process.cwd(), outfile);
32
+ if (!(0, fs_1.statSync)(path).isDirectory()) {
33
+ throw new Error((0, util_1.format)("%s not a directory", path));
34
+ }
35
+ const foundTemplates = recursiveSearch(path);
36
+ console.log("caching %o", foundTemplates);
37
+ console.log("to %s", outFilePath);
38
+ const cache = {};
39
+ for (const template of foundTemplates) {
40
+ if (template) {
41
+ const url = (0, path_1.relative)(path, template);
42
+ cache[url] = (0, fs_1.readFileSync)(template).toString("utf-8");
43
+ }
44
+ }
45
+ (0, fs_1.writeFileSync)(outFilePath, `${JSON.stringify(cache, undefined, 0)}`);
46
+ };
47
+ exports.main = main;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use strict";
2
- // this package is just a development cli
2
+ console.warn("this package is just a development cli");
@@ -22,7 +22,7 @@ const routeCMDModule = async (cmdArg, cmds, logger, exit = true) => {
22
22
  }
23
23
  catch (e) {
24
24
  if (e && e.message) {
25
- logger.error(e);
25
+ logger.error("Error running command. " + e.message);
26
26
  }
27
27
  if (exit) {
28
28
  process.exit(1);
@@ -81,13 +81,14 @@ const mainCMD = (cmds, usage, logger, cmdArg = process.argv[2], exit = true) =>
81
81
  logger.info(`${usage}`);
82
82
  logger.info(`Available commands:\n`);
83
83
  for (const cmd of Object.keys(cmds)) {
84
- /*if (cmds[cmd].section) {
85
- logger.info(`\n${cmds[cmd].section}\n`);
86
- }*/
84
+ if (cmds[cmd].section) {
85
+ logger.info(`\n${cmds[cmd].section}\n`);
86
+ }
87
87
  //const description = cmds[cmd].description.split("\n").map(s => `${getTabs(/*cmds[cmd].tabs*/2)}${s}`).join("\n");
88
- const description = cmds[cmd].description.split("\n").map(s => `${getTabs(/*cmds[cmd].tabs*/ 1)}${s}`).join("\n");
89
- //logger.info(`\t${cmd}\n${description}`);
90
- logger.info(`${cmd}\n${description}`);
88
+ //const description = cmds[cmd].description.split("\n").map(s => `${getTabs(/*cmds[cmd].tabs*/1)}${s}`).join("\n");
89
+ const description = cmds[cmd].description.split("\n").map(s => `${getTabs(cmds[cmd].tabs)}${s}`).join("\n");
90
+ logger.info(`\t${cmd}${description}`);
91
+ //logger.info(`${cmd}\n${description}`);
91
92
  }
92
93
  logger.info("");
93
94
  if (exit) {
@@ -1,12 +1,12 @@
1
1
  export declare const logEnvFile = "####################\n## logging\nLOG_LEVEL=info\nLOG_LEVEL_Database=error\n#LOG_FILE=./logs/dev.log\n";
2
2
  export declare const featuresEnvFile = "####################\n## features\n#MY_CUSTOM_FEATURE=false\n";
3
- export declare const dbEnvFile = "####################\n## db\nDB_URI=sqlite://user:password@localhost:3306/devdb\nDB_DIALECT_SSL=true\nDB_POOL_MAX=5\nDB_POOL_MIN=0\nDB_POOL_ACQUIRE=30000\nDB_POOL_IDDLE=10000\nDB_STORAGE=./dev.sqlite3\n";
3
+ export declare const dbEnvFile = "####################\n## db\nDB_URI=sqlite://user:password@localhost:3306/devdb\nDB_POOL=false\nDB_DIALECT_SSL=true\nDB_POOL_MAX=5\nDB_POOL_MIN=0\nDB_POOL_ACQUIRE=30000\nDB_POOL_IDLE=10000\nDB_STORAGE=./dev.sqlite3\n";
4
4
  export declare const authEnvFile = "####################\n## Auth\nTOKEN_LOCATION=header\n#TOKEN_LOCATION=query\nTOKEN_VERIFY_LOCATION=header\n#TOKEN_VERIFY_LOCATION=query\nTOKEN_HEADER=Authorization\n#TOKEN_QUERY=Authorization\n#TOKEN_VERIFY_ENDPOINT=\nTOKEN_VERIFY_ENDPOINT_METHOD=GET\n";
5
5
  export declare const templates: {
6
6
  modelsIndex: string;
7
7
  dbConfig: string;
8
8
  sequelizerc: (typescript?: boolean | undefined) => string;
9
- exampleModel: (modelName: string, typescript?: boolean | undefined) => string;
9
+ exampleModel: (modelName: string) => string;
10
10
  logEnvFile: string;
11
11
  authEnvFile: string;
12
12
  dbEnvFile: string;
@@ -15,11 +15,12 @@ exports.featuresEnvFile = `####################
15
15
  exports.dbEnvFile = `####################
16
16
  ## db
17
17
  DB_URI=sqlite://user:password@localhost:3306/devdb
18
+ DB_POOL=false
18
19
  DB_DIALECT_SSL=true
19
20
  DB_POOL_MAX=5
20
21
  DB_POOL_MIN=0
21
22
  DB_POOL_ACQUIRE=30000
22
- DB_POOL_IDDLE=10000
23
+ DB_POOL_IDLE=10000
23
24
  DB_STORAGE=./dev.sqlite3
24
25
  `;
25
26
  exports.authEnvFile = `####################
@@ -76,18 +77,19 @@ module.exports.Sequelize = Sequelize;
76
77
 
77
78
  `;
78
79
  // noinspection SpellCheckingInspection
79
- const dbConfig = `const { loadConfig, checkEnvVariables } = require("@miqro/core");
80
+ const dbConfig = `const { URL } = require("url");
80
81
 
81
- loadConfig();
82
-
83
- const { URL } = require("url");
84
-
85
- const [DB_URI] = checkEnvVariables(["DB_URI"]);
86
- const [DB_POOL, DB_POOL_ACQUIRE, DB_POOL_IDDLE, DB_POOL_MAX, DB_POOL_MIN] = checkEnvVariables(["DB_POOL", "DB_POOL_ACQUIRE", "DB_POOL_IDDLE", "DB_POOL_MAX", "DB_POOL_MIN"], ["false", "30000", "10000", "5", "0"]);
82
+ const DB_URI = process.env.DB_URI;
83
+ const DB_POOL = process.env.DB_POOL ? process.env.DB_POOL : "false";
84
+ const DB_POOL_ACQUIRE = process.env.DB_POOL_ACQUIRE ? process.env.DB_POOL_ACQUIRE : "30000";
85
+ const DB_POOL_IDLE = process.env.DB_POOL_IDLE ? process.env.DB_POOL_IDLE : "10000";
86
+ const DB_POOL_MAX = process.env.DB_POOL_MAX ? process.env.DB_POOL_MAX : "5";
87
+ const DB_POOL_MIN = process.env.DB_POOL_MIN ? process.env.DB_POOL_MIN : "0";
88
+ const DB_DIALECT_SSL = process.env.DB_DIALECT_SSL === "true" || process.env.DB_DIALECT_SSL === undefined ? true : false;
87
89
 
88
90
  const pool = DB_POOL === "true" ? {
89
91
  acquire: parseInt(DB_POOL_ACQUIRE, 10),
90
- idle: parseInt(DB_POOL_IDDLE, 10),
92
+ idle: parseInt(DB_POOL_IDLE, 10),
91
93
  max: parseInt(DB_POOL_MAX, 10),
92
94
  min: parseInt(DB_POOL_MIN, 10)
93
95
  } : undefined;
@@ -102,7 +104,7 @@ module.exports = {
102
104
  password: parsed.password,
103
105
  dialect: parsed.protocol.substring(0, parsed.protocol.length - 1),
104
106
  dialectOptions: {
105
- ssl: process.env.DB_DIALECT_SSL === "true" || process.env.DB_DIALECT_SSL === undefined ? true : false
107
+ ssl: DB_DIALECT_SSL
106
108
  },
107
109
  pool,
108
110
  storage: process.env.DB_STORAGE
@@ -118,40 +120,8 @@ module.exports = {
118
120
  ${typescript ? `"models-path": path.resolve(__dirname, "dist", "models")` : `"models-path": path.resolve(__dirname, "db", "models")`},
119
121
  };
120
122
  `;
121
- const exampleModel = (modelName, typescript) => {
122
- return typescript ? `import { Sequelize, DataTypes, ModelCtor, Model } from "sequelize";
123
-
124
- export interface ${modelName.charAt(0).toUpperCase()}${modelName.substring(1)} {
125
- name: string;
126
- timestamp: number;
127
- };
128
- export type ${modelName.charAt(0).toUpperCase()}${modelName.substring(1)}Model = Model<${modelName.charAt(0).toUpperCase()}${modelName.substring(1)}>;
129
- export type ${modelName.charAt(0).toUpperCase()}${modelName.substring(1)}ModelCtor = ModelCtor<${modelName.charAt(0).toUpperCase()}${modelName.substring(1)}Model>;
130
-
131
- module.exports = (sequelize: Sequelize): ${modelName.charAt(0).toUpperCase()}${modelName.substring(1)}ModelCtor => {
132
- const ${modelName} = sequelize.define<${modelName.charAt(0).toUpperCase()}${modelName.substring(1)}Model>("${modelName}", {
133
- name: {
134
- type: DataTypes.STRING,
135
- allowNull: false,
136
- defaultValue: ""
137
- },
138
- timestamp: {
139
- type: DataTypes.INTEGER,
140
- allowNull: false,
141
- defaultValue: 0
142
- }
143
- }, {});
144
- /* eslint-disable @typescript-eslint/ban-ts-comment */
145
- // @ts-ignore
146
- ${modelName}.associate = function (models) {
147
- // associations can be defined here
148
- // ${modelName}.belongsTo(models.....)
149
- };
150
- return ${modelName};
151
- };
152
-
153
-
154
- ` : `module.exports = (sequelize, DataTypes) => {
123
+ const exampleModel = (modelName) => {
124
+ return `module.exports = (sequelize, DataTypes) => {
155
125
  const ${modelName} = sequelize.define("${modelName}", {
156
126
  name: {
157
127
  type: DataTypes.STRING,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miqro",
3
- "version": "1.7.15",
3
+ "version": "1.7.18",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,17 +17,17 @@
17
17
  "author": "claukers",
18
18
  "license": "ISC",
19
19
  "dependencies": {
20
- "@miqro/core": "^1.5.12",
21
- "@miqro/parser": "^0.0.6",
22
- "@miqro/runner": "^1.2.5",
20
+ "@miqro/core": "^1.5.15",
21
+ "@miqro/parser": "^0.1.2",
22
+ "@miqro/runner": "^1.2.7",
23
+ "@miqro/test": "^0.1.1",
23
24
  "deep-diff": "1.0.2"
24
25
  },
25
26
  "devDependencies": {
26
- "@miqro/test": "^0.0.11",
27
- "@types/cookie": "^0.4.1",
27
+ "@types/cookie": "0.4.1",
28
28
  "@types/deep-diff": "1.0.1",
29
- "@types/node": "^16.7.10",
30
- "typescript": "^4.5.4"
29
+ "@types/node": "17.0.23",
30
+ "typescript": "4.6.3"
31
31
  },
32
32
  "engines": {
33
33
  "node": ">=14.0.0",