@grandlinex/swagger-mate 0.30.8 → 0.30.9

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/LICENSE CHANGED
@@ -1,29 +1,29 @@
1
- BSD 3-Clause License
2
-
3
- Copyright (c) 2023, GrandlineX
4
- All rights reserved.
5
-
6
- Redistribution and use in source and binary forms, with or without
7
- modification, are permitted provided that the following conditions are met:
8
-
9
- 1. Redistributions of source code must retain the above copyright notice, this
10
- list of conditions and the following disclaimer.
11
-
12
- 2. Redistributions in binary form must reproduce the above copyright notice,
13
- this list of conditions and the following disclaimer in the documentation
14
- and/or other materials provided with the distribution.
15
-
16
- 3. Neither the name of the copyright holder nor the names of its
17
- contributors may be used to endorse or promote products derived from
18
- this software without specific prior written permission.
19
-
20
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2023, GrandlineX
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package/README.md CHANGED
@@ -1,137 +1,137 @@
1
- # Swagger-Mate
2
- > GrandLineX Swagger-Mate project
3
-
4
- [![GitHub](https://badge.fury.io/gh/grandlinex%2Fswagger-mate.svg)](https://github.com/GrandlineX/swagger-mate)
5
- [![NPM](https://img.shields.io/static/v1?label=NPM&message=Package&color=red&logo=NPM)](https://www.npmjs.com/package/@grandlinex/swagger-mate)
6
- ![TS](https://img.shields.io/static/v1?label=Language&message=TypeScript&color=blue&logo=TypeScript)
7
-
8
- ### Status
9
- ![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=alert_status)
10
- ![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=security_rating)
11
- ![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=sqale_rating)
12
- ![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=reliability_rating)
13
- ![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=coverage)
14
-
15
- ### Issues
16
- ![Bugs](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=bugs)
17
- ![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=vulnerabilities)
18
- ![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=code_smells)
19
-
20
- ## Features
21
-
22
- - Generate swagger.{json|yml} from code
23
- - Generate Api client from swagger.{json|yml}
24
-
25
-
26
- ## Quick Start
27
-
28
- ### Install
29
-
30
- 1. Insatal npm package
31
- ```shell
32
- npm i @grandlinex/swagger-mate
33
- ```
34
-
35
- 2. Update package.json
36
- ```json
37
- {
38
- //...
39
- "scripts": {
40
- "makeSpec": "swagger-mate",
41
- "serveSpec": "swagger-mate --serve",
42
- "buildSpecMain": "swagger-mate --build --main",
43
- "buildSpecDev": "swagger-mate --build --dev"
44
- },
45
- "glx": {
46
- "kernel": "dist/Kernel.js"
47
- }
48
- //...
49
- }
50
- ```
51
-
52
- |Command| Description |
53
- |---|-----------------------------------------------------------------------------------|
54
- |`npm run makeSpec`| make `openapi.json` |
55
- |`npm run serveSpec`| serve `openapi.json` with [swagger-ui](https://github.com/swagger-api/swagger-ui) |
56
- |`npm run buildSpecMain`| build api client (prod) |
57
- |`npm run buildSpecDev`| build api client (dev) |
58
-
59
- ### Serve option
60
-
61
- > Default port = 9000
62
-
63
- ENV variables
64
-
65
- | ENV | Description |
66
- |-----|--------------------------|
67
- | SW_PORT | set custom serve port |
68
- | SW_AUTH | set default bearer token |
69
-
70
- ## Define types
71
-
72
- ### Kernel
73
-
74
- ```typescript
75
- import { SPathUtil, Swagger } from '@grandlinex/swagger-mate';
76
- // OpenApi 3.0.3 - Root Api definition
77
- @Swagger({
78
- info: {
79
- title: 'KernelTest',
80
- version: '0.1.0', // Version (optional) will be read from package.json
81
- },
82
- openapi: '3.0.3',
83
- servers: [
84
- {
85
- url: 'http://localhost:9257',
86
- description: 'LocalDev',
87
- },
88
- ],
89
- paths: {
90
- // Static definition
91
- '/version': {
92
- get: {
93
- description: 'Get version',
94
- operationId: 'getVersion',
95
- responses: SPathUtil.defaultResponse('200', '500'),
96
- },
97
- },
98
- // Dynamic definition will be read from @SPath
99
- },
100
- security: [
101
- {
102
- bearerAuth: [],
103
- },
104
- ],
105
- components: {
106
- securitySchemes: {
107
- bearerAuth: {
108
- type: 'http',
109
- scheme: 'bearer',
110
- bearerFormat: 'JWT',
111
- },
112
- },
113
- },
114
- })
115
- export default class SomeKernel {}
116
-
117
- ```
118
-
119
- ### Action
120
-
121
- ```typescript
122
- import { SPathUtil, Swagger } from '@grandlinex/swagger-mate';
123
-
124
- // OpenApi 3.0.3 - Patch definition
125
- @SPath({
126
- '/test': {
127
- get: {
128
- description: 'test',
129
- operationId: 'getTest', // name for the js api client
130
- summary: 'Descritption summary',
131
- responses: SPathUtil.defaultResponse('200','400', '500')
132
- },
133
- },
134
- })
135
- export default class SomeBaseApiAction {}
136
-
137
- ```
1
+ # Swagger-Mate
2
+ > GrandLineX Swagger-Mate project
3
+
4
+ [![GitHub](https://badge.fury.io/gh/grandlinex%2Fswagger-mate.svg)](https://github.com/GrandlineX/swagger-mate)
5
+ [![NPM](https://img.shields.io/static/v1?label=NPM&message=Package&color=red&logo=NPM)](https://www.npmjs.com/package/@grandlinex/swagger-mate)
6
+ ![TS](https://img.shields.io/static/v1?label=Language&message=TypeScript&color=blue&logo=TypeScript)
7
+
8
+ ### Status
9
+ ![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=alert_status)
10
+ ![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=security_rating)
11
+ ![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=sqale_rating)
12
+ ![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=reliability_rating)
13
+ ![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=coverage)
14
+
15
+ ### Issues
16
+ ![Bugs](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=bugs)
17
+ ![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=vulnerabilities)
18
+ ![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=GrandlineX_swagger-mate&metric=code_smells)
19
+
20
+ ## Features
21
+
22
+ - Generate swagger.{json|yml} from code
23
+ - Generate Api client from swagger.{json|yml}
24
+
25
+
26
+ ## Quick Start
27
+
28
+ ### Install
29
+
30
+ 1. Insatal npm package
31
+ ```shell
32
+ npm i @grandlinex/swagger-mate
33
+ ```
34
+
35
+ 2. Update package.json
36
+ ```json
37
+ {
38
+ //...
39
+ "scripts": {
40
+ "makeSpec": "swagger-mate",
41
+ "serveSpec": "swagger-mate --serve",
42
+ "buildSpecMain": "swagger-mate --build --main",
43
+ "buildSpecDev": "swagger-mate --build --dev"
44
+ },
45
+ "glx": {
46
+ "kernel": "dist/Kernel.js"
47
+ }
48
+ //...
49
+ }
50
+ ```
51
+
52
+ |Command| Description |
53
+ |---|-----------------------------------------------------------------------------------|
54
+ |`npm run makeSpec`| make `openapi.json` |
55
+ |`npm run serveSpec`| serve `openapi.json` with [swagger-ui](https://github.com/swagger-api/swagger-ui) |
56
+ |`npm run buildSpecMain`| build api client (prod) |
57
+ |`npm run buildSpecDev`| build api client (dev) |
58
+
59
+ ### Serve option
60
+
61
+ > Default port = 9000
62
+
63
+ ENV variables
64
+
65
+ | ENV | Description |
66
+ |-----|--------------------------|
67
+ | SW_PORT | set custom serve port |
68
+ | SW_AUTH | set default bearer token |
69
+
70
+ ## Define types
71
+
72
+ ### Kernel
73
+
74
+ ```typescript
75
+ import { SPathUtil, Swagger } from '@grandlinex/swagger-mate';
76
+ // OpenApi 3.0.3 - Root Api definition
77
+ @Swagger({
78
+ info: {
79
+ title: 'KernelTest',
80
+ version: '0.1.0', // Version (optional) will be read from package.json
81
+ },
82
+ openapi: '3.0.3',
83
+ servers: [
84
+ {
85
+ url: 'http://localhost:9257',
86
+ description: 'LocalDev',
87
+ },
88
+ ],
89
+ paths: {
90
+ // Static definition
91
+ '/version': {
92
+ get: {
93
+ description: 'Get version',
94
+ operationId: 'getVersion',
95
+ responses: SPathUtil.defaultResponse('200', '500'),
96
+ },
97
+ },
98
+ // Dynamic definition will be read from @SPath
99
+ },
100
+ security: [
101
+ {
102
+ bearerAuth: [],
103
+ },
104
+ ],
105
+ components: {
106
+ securitySchemes: {
107
+ bearerAuth: {
108
+ type: 'http',
109
+ scheme: 'bearer',
110
+ bearerFormat: 'JWT',
111
+ },
112
+ },
113
+ },
114
+ })
115
+ export default class SomeKernel {}
116
+
117
+ ```
118
+
119
+ ### Action
120
+
121
+ ```typescript
122
+ import { SPathUtil, Swagger } from '@grandlinex/swagger-mate';
123
+
124
+ // OpenApi 3.0.3 - Patch definition
125
+ @SPath({
126
+ '/test': {
127
+ get: {
128
+ description: 'test',
129
+ operationId: 'getTest', // name for the js api client
130
+ summary: 'Descritption summary',
131
+ responses: SPathUtil.defaultResponse('200','400', '500')
132
+ },
133
+ },
134
+ })
135
+ export default class SomeBaseApiAction {}
136
+
137
+ ```
@@ -14,8 +14,8 @@ function docTemplate(inp, doc) {
14
14
  }
15
15
  function functionTemplate(FC_NAME, props) {
16
16
  const { FC_PROPS, FC_BODY, FC_RETURN, FC_GEN, FC_ASYNC } = props;
17
- return docTemplate(`${(0, ClientUtil_js_1.S)(2)}${(0, ClientUtil_js_1.eS)(FC_ASYNC)}${(0, ClientUtil_js_1.eS)(FC_NAME)}${(0, ClientUtil_js_1.eS)(FC_GEN)}(${(0, ClientUtil_js_1.eS)(FC_PROPS)})${(0, ClientUtil_js_1.eS)(FC_RETURN)}{
18
- ${(0, ClientUtil_js_1.S)(4)}${(0, ClientUtil_js_1.eS)(FC_BODY)}
17
+ return docTemplate(`${(0, ClientUtil_js_1.S)(2)}${(0, ClientUtil_js_1.eS)(FC_ASYNC)}${(0, ClientUtil_js_1.eS)(FC_NAME)}${(0, ClientUtil_js_1.eS)(FC_GEN)}(${(0, ClientUtil_js_1.eS)(FC_PROPS)})${(0, ClientUtil_js_1.eS)(FC_RETURN)}{
18
+ ${(0, ClientUtil_js_1.S)(4)}${(0, ClientUtil_js_1.eS)(FC_BODY)}
19
19
  ${(0, ClientUtil_js_1.S)(2)}}`, props.FC_DOC);
20
20
  }
21
21
  exports.functionTemplate = functionTemplate;
@@ -7,8 +7,8 @@ function interfaceTemplate(IF_NAME, types, rawType) {
7
7
  if (rawType) {
8
8
  return `export type ${IF_NAME} = ${rawType};`;
9
9
  }
10
- return `export interface ${IF_NAME} {
11
- ${types.map(({ key, type, required }) => `${(0, ClientUtil_js_1.S)(2)}${(0, ClientUtil_js_1.sK)(key)}${(0, ClientUtil_js_1.rq)(required)} ${type};`).join('\n')}
10
+ return `export interface ${IF_NAME} {
11
+ ${types.map(({ key, type, required }) => `${(0, ClientUtil_js_1.S)(2)}${(0, ClientUtil_js_1.sK)(key)}${(0, ClientUtil_js_1.rq)(required)} ${type};`).join('\n')}
12
12
  }`;
13
13
  }
14
14
  exports.interfaceTemplate = interfaceTemplate;
@@ -11,8 +11,8 @@ function docTemplate(inp, doc) {
11
11
  }
12
12
  function functionTemplate(FC_NAME, props) {
13
13
  const { FC_PROPS, FC_BODY, FC_RETURN, FC_GEN, FC_ASYNC } = props;
14
- return docTemplate(`${S(2)}${eS(FC_ASYNC)}${eS(FC_NAME)}${eS(FC_GEN)}(${eS(FC_PROPS)})${eS(FC_RETURN)}{
15
- ${S(4)}${eS(FC_BODY)}
14
+ return docTemplate(`${S(2)}${eS(FC_ASYNC)}${eS(FC_NAME)}${eS(FC_GEN)}(${eS(FC_PROPS)})${eS(FC_RETURN)}{
15
+ ${S(4)}${eS(FC_BODY)}
16
16
  ${S(2)}}`, props.FC_DOC);
17
17
  }
18
18
  function functionInterfaceTemplate(FC_NAME, props) {
@@ -4,8 +4,8 @@ function interfaceTemplate(IF_NAME, types, rawType) {
4
4
  if (rawType) {
5
5
  return `export type ${IF_NAME} = ${rawType};`;
6
6
  }
7
- return `export interface ${IF_NAME} {
8
- ${types.map(({ key, type, required }) => `${S(2)}${sK(key)}${rq(required)} ${type};`).join('\n')}
7
+ return `export interface ${IF_NAME} {
8
+ ${types.map(({ key, type, required }) => `${S(2)}${sK(key)}${rq(required)} ${type};`).join('\n')}
9
9
  }`;
10
10
  }
11
11
  export {
package/package.json CHANGED
@@ -1,77 +1,77 @@
1
- {
2
- "name": "@grandlinex/swagger-mate",
3
- "version": "0.30.8",
4
- "type": "module",
5
- "exports": {
6
- ".": {
7
- "import": {
8
- "types": "./dist/mjs/index.d.ts",
9
- "default": "./dist/mjs/index.js"
10
- },
11
- "require": {
12
- "types": "./dist/cjs/index.d.ts",
13
- "default": "./dist/cjs/index.js"
14
- }
15
- }
16
- },
17
- "types": "dist/cjs/index.d.ts",
18
- "main": "dist/cjs/index.js",
19
- "module": "dist/mjs/index.js",
20
- "description": "GrandLineX Swagger-Mate Project",
21
- "scripts": {
22
- "pre-build": "node ./preBuild.js",
23
- "buildprep": "npm run pre-build && npm run build-mjs && npm run build-cjs && npm run build-fix",
24
- "build-mjs": "tsc",
25
- "build-cjs": "tsc -p tsconfig-cjs.json",
26
- "build-fix": "node ./node_modules/@grandlinex/core/fix.js",
27
- "pack": "npm run buildprep && npm pack",
28
- "start": "node dist/cjs/run.js",
29
- "start-dev": "npm run pre-build && cross-env dev=true ts-node src/run.ts",
30
- "run-dev": "npm run pre-build && cross-env dev=true ts-node src/tests/run.ts",
31
- "lint": "eslint src",
32
- "test": "npm run pre-build && cross-env dev=true jest --runInBand ",
33
- "test-coverage": "npm run pre-build && cross-env dev=true jest --runInBand --ci --collectCoverage --coverageDirectory=\"./coverage\" --reporters=default --reporters=jest-junit",
34
- "makeDocs": "typedoc"
35
- },
36
- "bin": {
37
- "swagger-mate": "./dist/cjs/cli.js",
38
- "swagger-mate-esm": "./dist/mjs/cli.js"
39
- },
40
- "dependencies": {
41
- "@grandlinex/core": "0.30.1",
42
- "express": "4.18.2",
43
- "form-data": "^4.0.0",
44
- "js-yaml": "4.1.0",
45
- "reflect-metadata": "0.1.13"
46
- },
47
- "devDependencies": {
48
- "@types/express": "^4.17.17",
49
- "@types/jest": "^29.5.2",
50
- "@types/js-yaml": "^4.0.5",
51
- "@types/node": "^20.3.0",
52
- "@types/node-fetch": "^2.6.4",
53
- "@typescript-eslint/eslint-plugin": "^5.59.11",
54
- "@typescript-eslint/parser": "^5.59.11",
55
- "axios": "1.4.0",
56
- "cross-env": "^7.0.3",
57
- "eslint": "^8.42.0",
58
- "eslint-config-airbnb": "^19.0.4",
59
- "eslint-config-airbnb-typescript": "^17.0.0",
60
- "eslint-config-prettier": "^8.8.0",
61
- "eslint-plugin-import": "^2.27.5",
62
- "eslint-plugin-jest": "^27.2.1",
63
- "eslint-plugin-jsx-a11y": "^6.7.1",
64
- "eslint-plugin-prettier": "^4.2.1",
65
- "html-webpack-plugin": "^5.5.3",
66
- "http-server": "^14.1.1",
67
- "jest": "^29.5.0",
68
- "jest-junit": "^16.0.0",
69
- "node-fetch": "3.3.1",
70
- "prettier": "^2.8.8",
71
- "ts-jest": "^29.1.0",
72
- "ts-loader": "^9.4.3",
73
- "ts-node": "^10.9.1",
74
- "typedoc": "^0.24.8",
75
- "typescript": "^5.1.3"
76
- }
77
- }
1
+ {
2
+ "name": "@grandlinex/swagger-mate",
3
+ "version": "0.30.9",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "import": {
8
+ "types": "./dist/mjs/index.d.ts",
9
+ "default": "./dist/mjs/index.js"
10
+ },
11
+ "require": {
12
+ "types": "./dist/cjs/index.d.ts",
13
+ "default": "./dist/cjs/index.js"
14
+ }
15
+ }
16
+ },
17
+ "types": "dist/cjs/index.d.ts",
18
+ "main": "dist/cjs/index.js",
19
+ "module": "dist/mjs/index.js",
20
+ "description": "GrandLineX Swagger-Mate Project",
21
+ "scripts": {
22
+ "pre-build": "node ./preBuild.js",
23
+ "buildprep": "npm run pre-build && npm run build-mjs && npm run build-cjs && npm run build-fix",
24
+ "build-mjs": "tsc",
25
+ "build-cjs": "tsc -p tsconfig-cjs.json",
26
+ "build-fix": "node ./node_modules/@grandlinex/core/fix.js",
27
+ "pack": "npm run buildprep && npm pack",
28
+ "start": "node dist/cjs/run.js",
29
+ "start-dev": "npm run pre-build && cross-env dev=true ts-node src/run.ts",
30
+ "run-dev": "npm run pre-build && cross-env dev=true ts-node src/tests/run.ts",
31
+ "lint": "eslint src",
32
+ "test": "npm run pre-build && cross-env dev=true jest --runInBand ",
33
+ "test-coverage": "npm run pre-build && cross-env dev=true jest --runInBand --ci --collectCoverage --coverageDirectory=\"./coverage\" --reporters=default --reporters=jest-junit",
34
+ "makeDocs": "typedoc"
35
+ },
36
+ "bin": {
37
+ "swagger-mate": "./dist/cjs/cli.js",
38
+ "swagger-mate-esm": "./dist/mjs/cli.js"
39
+ },
40
+ "dependencies": {
41
+ "@grandlinex/core": "0.30.1",
42
+ "express": "4.18.2",
43
+ "form-data": "^4.0.0",
44
+ "js-yaml": "4.1.0",
45
+ "reflect-metadata": "0.1.13"
46
+ },
47
+ "devDependencies": {
48
+ "@types/express": "^4.17.17",
49
+ "@types/jest": "^29.5.2",
50
+ "@types/js-yaml": "^4.0.5",
51
+ "@types/node": "^20.3.0",
52
+ "@types/node-fetch": "^2.6.4",
53
+ "@typescript-eslint/eslint-plugin": "^5.59.11",
54
+ "@typescript-eslint/parser": "^5.59.11",
55
+ "axios": "1.4.0",
56
+ "cross-env": "^7.0.3",
57
+ "eslint": "^8.42.0",
58
+ "eslint-config-airbnb": "^19.0.4",
59
+ "eslint-config-airbnb-typescript": "^17.0.0",
60
+ "eslint-config-prettier": "^8.8.0",
61
+ "eslint-plugin-import": "^2.27.5",
62
+ "eslint-plugin-jest": "^27.2.1",
63
+ "eslint-plugin-jsx-a11y": "^6.7.1",
64
+ "eslint-plugin-prettier": "^4.2.1",
65
+ "html-webpack-plugin": "^5.5.3",
66
+ "http-server": "^14.1.1",
67
+ "jest": "^29.5.0",
68
+ "jest-junit": "^16.0.0",
69
+ "node-fetch": "3.3.1",
70
+ "prettier": "^2.8.8",
71
+ "ts-jest": "^29.1.0",
72
+ "ts-loader": "^9.4.3",
73
+ "ts-node": "^10.9.1",
74
+ "typedoc": "^0.24.8",
75
+ "typescript": "^5.1.3"
76
+ }
77
+ }