@microtronics/studio-cli 0.4.1 → 0.5.1
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/CHANGELOG.md +23 -0
- package/dist/studio-cli.d.ts +68 -3
- package/out/DeviceProfiles.d.ts.map +1 -0
- package/out/DeviceProfiles.js +436 -0
- package/out/api.d.ts.map +1 -1
- package/out/api.js +5 -1
- package/out/crc.d.ts.map +1 -0
- package/out/crc.js +93 -0
- package/out/dde/coreDefinitions.d.ts.map +1 -1
- package/out/dde/coreDefinitions.js +8 -0
- package/out/dde/dde.d.ts.map +1 -1
- package/out/dde/dde.js +142 -12
- package/out/dde/fileGenerators/api.d.ts.map +1 -0
- package/out/dde/fileGenerators/api.js +551 -0
- package/out/dde/fileGenerators/dlo.d.ts.map +1 -0
- package/out/dde/fileGenerators/dlo.js +883 -0
- package/out/defaultFiles.js +2 -2
- package/out/globals.d.ts.map +1 -0
- package/out/globals.js +82 -0
- package/out/helper.d.ts.map +1 -1
- package/out/helper.js +22 -0
- package/out/main.js +3 -0
- package/out/manifest.d.ts.map +1 -1
- package/package.json +71 -69
package/out/defaultFiles.js
CHANGED
|
@@ -14,7 +14,7 @@ var DefaultFiles;
|
|
|
14
14
|
mainAmxReport: 'main.xml',
|
|
15
15
|
ddeXml: 'dde.xml',
|
|
16
16
|
ddeOpenApi: 'main.yaml',
|
|
17
|
-
|
|
17
|
+
historyJson: 'history.json',
|
|
18
18
|
mainDDE: 'main.dde',
|
|
19
19
|
// autogenerated dlo files
|
|
20
20
|
autoInc: 'auto.inc',
|
|
@@ -58,7 +58,7 @@ var DefaultFiles;
|
|
|
58
58
|
ddeApiPath: `${deployDirectoryName}api/`,
|
|
59
59
|
ddeApi: `${deployDirectoryName}api/${DefaultFiles.fileNames.ddeOpenApi}`,
|
|
60
60
|
// ddeJson has changed to history.json and is now in dde/ dir
|
|
61
|
-
|
|
61
|
+
historyJson: `${ddeDirectoryName}${DefaultFiles.fileNames.historyJson}`,
|
|
62
62
|
povPath: `${deployDirectoryName}pov`,
|
|
63
63
|
povDetailsPath: `${deployDirectoryName}pov/details`,
|
|
64
64
|
dfilesPath: `${deployDirectoryName}dfiles`,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,OAAO,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,GAAG,EAAS,MAAM,YAAY,CAAC;AAQxC,yBAAiB,OAAO,CAAC;IACxB,UAAiB,OAAO;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACtB;IAED;;;;OAIG;IACH,SAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAkClE;CACD"}
|
package/out/globals.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Globals = void 0;
|
|
27
|
+
const FS_1 = require("./FS");
|
|
28
|
+
const vscode_uri_1 = require("vscode-uri");
|
|
29
|
+
const dependencies_1 = require("./dependencies");
|
|
30
|
+
const manifest_1 = require("./manifest");
|
|
31
|
+
const defaultFiles_1 = require("./defaultFiles");
|
|
32
|
+
const ini = __importStar(require("ini"));
|
|
33
|
+
const DLO_PATH = defaultFiles_1.DefaultFiles.filePaths.dlo.path;
|
|
34
|
+
var Globals;
|
|
35
|
+
(function (Globals) {
|
|
36
|
+
/**
|
|
37
|
+
* Read all ini files from the project directory
|
|
38
|
+
* @param cwd
|
|
39
|
+
* @param fs
|
|
40
|
+
*/
|
|
41
|
+
async function read(cwd, fs) {
|
|
42
|
+
const manifest = await manifest_1.Manifest.read(cwd, fs);
|
|
43
|
+
const allDependencies = await dependencies_1.Dependencies.getAll(manifest);
|
|
44
|
+
const allDefines = {};
|
|
45
|
+
for (const dependencyId in allDependencies) {
|
|
46
|
+
const depPath = dependencies_1.Dependencies.dependencyToPath(cwd, dependencyId);
|
|
47
|
+
const name = dependencies_1.Dependencies.dependencyIdToName(dependencyId);
|
|
48
|
+
const libIniPath = vscode_uri_1.Utils.joinPath(depPath, DLO_PATH, `${name}.ini`);
|
|
49
|
+
const hasIni = await fs.stat(libIniPath);
|
|
50
|
+
if (hasIni) {
|
|
51
|
+
const iniContent = await readIniFile(fs, libIniPath);
|
|
52
|
+
Object.assign(allDefines, iniContent);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// load the library projects specific ini file
|
|
56
|
+
if (manifest_1.Manifest.isLibraryProject(manifest)) {
|
|
57
|
+
const libIni = vscode_uri_1.Utils.joinPath(cwd, defaultFiles_1.DefaultFiles.filePaths.dlo.path, `${manifest.name}.ini`);
|
|
58
|
+
if (await fs.stat(libIni)) {
|
|
59
|
+
const iniContent = await readIniFile(fs, libIni);
|
|
60
|
+
Object.assign(allDefines, iniContent);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// load the projects main.ini and overwrite existing defines
|
|
64
|
+
const mainIni = vscode_uri_1.Utils.joinPath(cwd, defaultFiles_1.DefaultFiles.filePaths.dlo.mainINI);
|
|
65
|
+
if (await fs.stat(mainIni)) {
|
|
66
|
+
const iniContent = await readIniFile(fs, mainIni);
|
|
67
|
+
Object.assign(allDefines, iniContent);
|
|
68
|
+
}
|
|
69
|
+
return allDefines;
|
|
70
|
+
}
|
|
71
|
+
Globals.read = read;
|
|
72
|
+
})(Globals || (exports.Globals = Globals = {}));
|
|
73
|
+
/**
|
|
74
|
+
* Read given ini file from disk
|
|
75
|
+
* @param filePath
|
|
76
|
+
* @param fs
|
|
77
|
+
*/
|
|
78
|
+
async function readIniFile(fs, filePath) {
|
|
79
|
+
const iniContent = await fs.readFile(filePath);
|
|
80
|
+
return ini.parse((0, FS_1.convertBlobToString)(iniContent));
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=globals.js.map
|
package/out/helper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG1C,yBAAiB,MAAM,CAAC;IACvB;;;;OAIG;IACH,SAAgB,0BAA0B,CACzC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,KAAK,GACf;QACF,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACrB,CAQA;IAID;;;OAGG;IACH,SAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,UAE7D;IAED,SAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,UAEvD;IAED;;;OAGG;IACH,SAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,UAE9D;CACD"}
|
package/out/helper.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Helper = void 0;
|
|
4
|
+
const crc_1 = require("./crc");
|
|
4
5
|
var Helper;
|
|
5
6
|
(function (Helper) {
|
|
6
7
|
/**
|
|
@@ -18,5 +19,26 @@ var Helper;
|
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
Helper.yamlRangeToLineInformation = yamlRangeToLineInformation;
|
|
22
|
+
const textEncoder = new TextEncoder();
|
|
23
|
+
/**
|
|
24
|
+
* Generates based on the name of the library a CRC16 Modbus hash
|
|
25
|
+
* @param libraryName
|
|
26
|
+
*/
|
|
27
|
+
function generateHashForLibraryName(libraryName) {
|
|
28
|
+
return (0, crc_1.crc32_ethernet)(textEncoder.encode(libraryName)).toString(16);
|
|
29
|
+
}
|
|
30
|
+
Helper.generateHashForLibraryName = generateHashForLibraryName;
|
|
31
|
+
function generateHashForFilePath(filePath) {
|
|
32
|
+
return (0, crc_1.crc32_ethernet)(textEncoder.encode(filePath)).toString(16);
|
|
33
|
+
}
|
|
34
|
+
Helper.generateHashForFilePath = generateHashForFilePath;
|
|
35
|
+
/**
|
|
36
|
+
* Generate CRC32 for any binary blob
|
|
37
|
+
* @param content
|
|
38
|
+
*/
|
|
39
|
+
function generateCRC32ForFileContent(content) {
|
|
40
|
+
return (0, crc_1.crc32_ethernet)(content).toString(16).toUpperCase().padStart(8, '0');
|
|
41
|
+
}
|
|
42
|
+
Helper.generateCRC32ForFileContent = generateCRC32ForFileContent;
|
|
21
43
|
})(Helper || (exports.Helper = Helper = {}));
|
|
22
44
|
//# sourceMappingURL=helper.js.map
|
package/out/main.js
CHANGED
|
@@ -60,6 +60,9 @@ program
|
|
|
60
60
|
// todo log warning and errors!
|
|
61
61
|
if (result.ddeJSON) {
|
|
62
62
|
await dde_1.DDE.exportMyDatanetXML(cwd, cliFS_1.cliFS, result.ddeJSON);
|
|
63
|
+
await dde_1.DDE.exportHistoryJson(cwd, cliFS_1.cliFS, result.ddeJSON);
|
|
64
|
+
await dde_1.DDE.exportAutoDloFiles(cwd, cliFS_1.cliFS, result.ddeJSON);
|
|
65
|
+
await dde_1.DDE.exportOpenApi(cwd, cliFS_1.cliFS, result.ddeJSON);
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
68
|
});
|
package/out/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EAAuB,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpD,yBAAiB,QAAQ,CAAC;IACzB,UAAiB,QAAQ;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EAAuB,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpD,yBAAiB,QAAQ,CAAC;IACzB,KAAY,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAE9F,UAAiB,QAAQ;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;QACF,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,mBAAmB,CAAC,EAAE,YAAY,CAAC;QACnC,sBAAsB,CAAC,EAAE,YAAY,CAAC;QACtC;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,GAAG,CAAC,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,cAAc,EAAE,MAAM,EAAE,CAAC;SACzB,CAAC;QACF,QAAQ,CAAC,EAAE;YACV,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,eAAe,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;SACvC,CAAC;QACF;;WAEG;QACH,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;QACvC,GAAG,CAAC,EAAE;YACL,OAAO,CAAC,EAAE,cAAc,CAAC;SACzB,CAAC;QACF,GAAG,CAAC,EAAE,cAAc,CAAC;KACrB;IAED,UAAiB,YAAY;QAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACtB;IAED,UAAiB,cAAc;QAC9B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACpB;IAED;;;;OAIG;IACH,SAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAInE;IAED;;;;;OAKG;IACH,SAAsB,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAExF;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAErE;CACD"}
|
package/package.json
CHANGED
|
@@ -1,69 +1,71 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@microtronics/studio-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Microtronics Studio CLI Tool",
|
|
5
|
-
"main": "./out/api.js",
|
|
6
|
-
"typings": "./dist/studio-cli.d.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"studio-cli": "studio-cli"
|
|
9
|
-
},
|
|
10
|
-
"publishConfig": {
|
|
11
|
-
"access": "public"
|
|
12
|
-
},
|
|
13
|
-
"scripts": {
|
|
14
|
-
"release": "release-it --ci",
|
|
15
|
-
"compile": "npm run build:registryApiTypings && tsc",
|
|
16
|
-
"api": "api-extractor run --local --verbose",
|
|
17
|
-
"build": "npm run compile && npm run api",
|
|
18
|
-
"watch:build": "npm run compile -- --watch",
|
|
19
|
-
"test": "cross-env STUDIO_ENV=lucky mocha",
|
|
20
|
-
"test-ci": "cross-env STUDIO_ENV=lucky mocha --reporter mocha-junit-reporter",
|
|
21
|
-
"watch:test": "npm run test -- --watch",
|
|
22
|
-
"prepublishOnly": "npm run build",
|
|
23
|
-
"build:registryApiTypings": "npx openapi-typescript https://api.registry.stage.microtronics.com/v1/openapi.yaml -o ./src/typings/registry.ts"
|
|
24
|
-
},
|
|
25
|
-
"author": "Microtronics",
|
|
26
|
-
"license": "ISC",
|
|
27
|
-
"dependencies": {
|
|
28
|
-
"ajv": "^8.17.1",
|
|
29
|
-
"ajv-
|
|
30
|
-
"ajv-
|
|
31
|
-
"commander": "^12.1.0",
|
|
32
|
-
"cross-fetch": "^4.0.0",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"@types/
|
|
47
|
-
"@
|
|
48
|
-
"@types/
|
|
49
|
-
"@types/
|
|
50
|
-
"@types/
|
|
51
|
-
"@types/
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"typescript": "^
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@microtronics/studio-cli",
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"description": "Microtronics Studio CLI Tool",
|
|
5
|
+
"main": "./out/api.js",
|
|
6
|
+
"typings": "./dist/studio-cli.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"studio-cli": "studio-cli"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"release": "release-it --ci",
|
|
15
|
+
"compile": "npm run build:registryApiTypings && tsc",
|
|
16
|
+
"api": "api-extractor run --local --verbose",
|
|
17
|
+
"build": "npm run compile && npm run api",
|
|
18
|
+
"watch:build": "npm run compile -- --watch",
|
|
19
|
+
"test": "cross-env STUDIO_ENV=lucky mocha",
|
|
20
|
+
"test-ci": "cross-env STUDIO_ENV=lucky mocha --reporter mocha-junit-reporter",
|
|
21
|
+
"watch:test": "npm run test -- --watch",
|
|
22
|
+
"prepublishOnly": "npm run build",
|
|
23
|
+
"build:registryApiTypings": "npx openapi-typescript https://api.registry.stage.microtronics.com/v1/openapi.yaml -o ./src/typings/registry.ts"
|
|
24
|
+
},
|
|
25
|
+
"author": "Microtronics",
|
|
26
|
+
"license": "ISC",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"ajv": "^8.17.1",
|
|
29
|
+
"ajv-formats": "^3.0.1",
|
|
30
|
+
"ajv-keywords": "^5.1.0",
|
|
31
|
+
"commander": "^12.1.0",
|
|
32
|
+
"cross-fetch": "^4.0.0",
|
|
33
|
+
"ini": "^5.0.0",
|
|
34
|
+
"openapi-fetch": "^0.13.0",
|
|
35
|
+
"pako": "^2.1.0",
|
|
36
|
+
"semver": "^7.6.3",
|
|
37
|
+
"tarballjs": "github:ankitrohatgi/tarballjs",
|
|
38
|
+
"tinytar-fix": "^0.1.1",
|
|
39
|
+
"vscode-uri": "^3.0.8",
|
|
40
|
+
"yaml": "^2.6.1"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">= 20"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/ini": "^4.1.1",
|
|
47
|
+
"@microsoft/api-extractor": "^7.47.11",
|
|
48
|
+
"@types/chai": "^4.3.6",
|
|
49
|
+
"@types/chai-as-promised": "^7.1.5",
|
|
50
|
+
"@types/mocha": "^10.0.9",
|
|
51
|
+
"@types/node": "^22.9.1",
|
|
52
|
+
"@types/semver": "^7.5.6",
|
|
53
|
+
"@types/vscode": "^1.86.2",
|
|
54
|
+
"chai": "^4.3.8",
|
|
55
|
+
"chai-as-promised": "^7.1.2",
|
|
56
|
+
"cross-env": "^7.0.3",
|
|
57
|
+
"mocha": "^10.8.2",
|
|
58
|
+
"mocha-junit-reporter": "^2.2.1",
|
|
59
|
+
"openapi-typescript": "^7.4.3",
|
|
60
|
+
"ts-node": "^10.9.2",
|
|
61
|
+
"typescript": "^5.6.3"
|
|
62
|
+
},
|
|
63
|
+
"mocha": {
|
|
64
|
+
"require": [
|
|
65
|
+
"ts-node/register"
|
|
66
|
+
],
|
|
67
|
+
"watch-files": "src/**",
|
|
68
|
+
"spec": "./test/**/*.spec.ts",
|
|
69
|
+
"recursive": true
|
|
70
|
+
}
|
|
71
|
+
}
|