@map-colonies/openapi-helpers 1.1.1 → 2.0.0

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/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # openapi-helpers
2
- This package contains scripts, types and functions to help you work with openapi.
2
+ This package contains scripts, types and functions to help you work with OpenAPI.
3
3
 
4
4
 
5
5
  ## Installation
@@ -10,20 +10,24 @@ npm install --save-dev @map-colonies/openapi-helpers supertest prettier openapi-
10
10
  ```
11
11
 
12
12
  ## types-generator
13
- The package contains a script that wraps the `openapi-typescript` package and generates types for the openapi schema. The script also formats the generated types using `prettier`.
13
+ The package contains a script that wraps the `openapi-typescript` package and generates types for the OpenAPI schema. The script also formats the generated types using `prettier`.
14
14
 
15
15
  The command structure is as follows:
16
16
  ```bash
17
- npx @map-colonies/openapi-helpers <input-file> <output-file> --format
17
+ npx @map-colonies/openapi-helpers <input-file> <output-file> --format --add-typed-request-handler
18
18
  ```
19
19
 
20
20
  For example:
21
21
  ```bash
22
- npx @map-colonies/openapi-helpers ./openapi3.yaml ./src/openapi.d.ts --format
22
+ npx @map-colonies/openapi-helpers ./openapi3.yaml ./src/openapi.d.ts --format --add-typed-request-handler
23
23
  ```
24
24
 
25
+ ### options
26
+ - `--format` - format the generated types using `prettier`.
27
+ - `--add-typed-request-handler` - add the `TypedRequestHandler` type to the generated types.
28
+
25
29
  ## TypedRequestHandler
26
- The package contains a wrapper for the `express` types package that provides autocomplete for all the request Handlers to the API based on the openapi. The TypedRequestHandler is initialized with the the typed generated by `openapi-typescript`, and is configured based on operation name or method and path.
30
+ The package contains a wrapper for the `express` types package that provides autocomplete for all the request handlers to the API based on the OpenAPI schema. The TypedRequestHandler is initialized with the types generated by `openapi-typescript`, and is configured based on operation name or method and path.
27
31
 
28
32
  ### Usage
29
33
  ```typescript
@@ -35,7 +39,7 @@ import type { paths, operations } from './src/openapi.d.ts';
35
39
  type MyHandlers = TypedRequestHandlers<paths, operations>;
36
40
 
37
41
  export class Controller {
38
- // Define the handler for the operation based method and path
42
+ // Define the handler for the operation based on method and path
39
43
  public getResource: MyHandlers['GET /resource'] = (req, res) => {
40
44
  res.status(httpStatus.OK).json({id: 1, description: 'description', name: 'name'});
41
45
  };
@@ -49,7 +53,7 @@ export class Controller {
49
53
  ```
50
54
 
51
55
  ## RequestSender
52
- The package contains a wrapper for the `supertest` package that provides autocomplete for all the requests to the API based on the openapi. The requestSender is initialized with the server's base url and the openapi schema and the types exported by `openapi-typescript`.
56
+ The package contains a wrapper for the `supertest` package that provides autocomplete for all the requests to the API based on the OpenAPI schema. The RequestSender is initialized with the server's base URL and the OpenAPI schema and the types exported by `openapi-typescript`.
53
57
 
54
58
  ```typescript
55
59
  import { RequestSender } from '@map-colonies/openapi-helpers/requestSender';
@@ -58,7 +62,7 @@ import type { paths, operations } from './src/openapi.d.ts';
58
62
  const requestSender = await createRequestSender<paths, operations>('path/to/openapi3.yaml', expressApp);
59
63
  ```
60
64
 
61
- The requestSender object contains all the paths and operations defined in the openapi schema. For example, to send a request to the `getUsers` operation with the `/users` path and with the `GET` method, you can use the following code:
65
+ The requestSender object contains all the paths and operations defined in the OpenAPI schema. For example, to send a request to the `getUsers` operation with the `/users` path and with the `GET` method, you can use the following code:
62
66
 
63
67
  ```typescript
64
68
  const response = await requestSender.getUsers();
@@ -71,10 +75,10 @@ const response = await requestSender.sendRequest({
71
75
  });
72
76
  ```
73
77
 
74
- The package supports all the operations defined in the openapi schema, either by operation name, or by using the `sendRequest` function with the method, path and parameters.
78
+ The package supports all the operations defined in the OpenAPI schema, either by operation name, or by using the `sendRequest` function with the method, path and parameters.
75
79
 
76
80
 
77
81
  > [!IMPORTANT]
78
- > For the package function properly, you need to make sure that the following values are configured in your `tsconfig.json` or `jsconfig.json` files under compilerOptions:
82
+ > For the package to function properly, you need to make sure that the following values are configured in your `tsconfig.json` or `jsconfig.json` files under compilerOptions:
79
83
  > - module: "NodeNext"
80
84
  > - moduleResolution: "NodeNext"
@@ -13,4 +13,3 @@ export type PathsTemplate = Record<string, {
13
13
  } & {
14
14
  [key in Methods]?: OperationsTemplate;
15
15
  }>;
16
- //# sourceMappingURL=types.d.ts.map
@@ -1,3 +1,2 @@
1
1
  #!/usr/bin/env node
2
2
  export {};
3
- //# sourceMappingURL=generateTypes.d.mts.map
@@ -4,17 +4,29 @@ import { parseArgs } from 'node:util';
4
4
  import { format, resolveConfig } from 'prettier';
5
5
  import openapiTS, { astToString } from 'openapi-typescript';
6
6
  const ARGS_SLICE = 2;
7
- const { values: { format: shouldFormat }, positionals, } = parseArgs({
7
+ const { values: { format: shouldFormat, 'add-typed-request-handler': addTypedRequestHandler }, positionals, } = parseArgs({
8
8
  args: process.argv.slice(ARGS_SLICE),
9
9
  options: {
10
10
  format: { type: 'boolean', alias: 'f' },
11
+ // eslint-disable-next-line @typescript-eslint/naming-convention
12
+ 'add-typed-request-handler': { type: 'boolean', alias: 't' },
11
13
  },
12
14
  allowPositionals: true,
13
15
  });
14
16
  const [openapiPath, destinationPath] = positionals;
17
+ if (openapiPath === undefined || destinationPath === undefined) {
18
+ console.error('Usage: generateTypes <openapiPath> <destinationPath>');
19
+ process.exit(1);
20
+ }
15
21
  const ESLINT_DISABLE = '/* eslint-disable */\n';
22
+ const typedRequestHandlerImport = "import type { TypedRequestHandlers as ImportedTypedRequestHandlers } from '@map-colonies/openapi-helpers/typedRequestHandler';\n";
23
+ const exportTypedRequestHandlers = 'export type TypedRequestHandlers = ImportedTypedRequestHandlers<paths, operations>;\n';
16
24
  const ast = await openapiTS(await fs.readFile(openapiPath, 'utf-8'), { exportType: true });
17
- let content = ESLINT_DISABLE + astToString(ast);
25
+ let content = astToString(ast);
26
+ if (addTypedRequestHandler === true) {
27
+ content = typedRequestHandlerImport + content + exportTypedRequestHandlers;
28
+ }
29
+ content = ESLINT_DISABLE + content;
18
30
  if (shouldFormat === true) {
19
31
  const prettierOptions = await resolveConfig('./src/index.ts');
20
32
  content = await format(content, { ...prettierOptions, parser: 'typescript' });
@@ -1 +1 @@
1
- {"version":3,"file":"generateTypes.mjs","sourceRoot":"","sources":["../../src/generator/generateTypes.mts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,EACJ,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAChC,WAAW,GACZ,GAAG,SAAS,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;KACxC;IACD,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,WAAW,CAAC;AAEnD,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3F,IAAI,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAEhD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;IAC1B,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAE9D,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAE7C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"generateTypes.mjs","sourceRoot":"","sources":["../../src/generator/generateTypes.mts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,EACJ,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,EACrF,WAAW,GACZ,GAAG,SAAS,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;QACvC,gEAAgE;QAChE,2BAA2B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;KAC7D;IACD,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,WAAW,CAAC;AAEnD,IAAI,WAAW,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,MAAM,yBAAyB,GAC7B,kIAAkI,CAAC;AACrI,MAAM,0BAA0B,GAAG,uFAAuF,CAAC;AAE3H,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3F,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAE/B,IAAI,sBAAsB,KAAK,IAAI,EAAE,CAAC;IACpC,OAAO,GAAG,yBAAyB,GAAG,OAAO,GAAG,0BAA0B,CAAC;AAC7E,CAAC;AAED,OAAO,GAAG,cAAc,GAAG,OAAO,CAAC;AAEnC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;IAC1B,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAE9D,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAE7C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC"}
@@ -11,6 +11,26 @@ export { RequestSender };
11
11
  * @param {string} openapiFilePath - The file path to the OpenAPI specification file.
12
12
  * @param {express.Application} app - The Express application instance.
13
13
  * @returns {Promise<RequestSender<Paths, Operations>>} A promise that resolves to a RequestSender object.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import express from 'express';
18
+ * import { createRequestSender } from './requestSender';
19
+ * import type { paths, operations } from './openapi';
20
+ *
21
+ * const app = express();
22
+ * const openapiFilePath = './openapi3.yaml';
23
+ *
24
+ * const requestSender = await createRequestSender<paths, operations>(openapiFilePath, app);
25
+ *
26
+ * // Using operation name
27
+ * const response1 = await requestSender.getUsers();
28
+ *
29
+ * // Using path and method
30
+ * const response2 = await requestSender.sendRequest({
31
+ * method: 'get',
32
+ * path: '/simple-request'
33
+ * });
34
+ * ```
14
35
  */
15
36
  export declare function createRequestSender<Paths extends PathsTemplate = never, Operations extends OperationsTemplate = never>(openapiFilePath: Operations extends never ? never : string, app: express.Application): Promise<RequestSender<Paths, Operations>>;
16
- //# sourceMappingURL=requestSender.d.ts.map
@@ -3,7 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createRequestSender = void 0;
6
+ exports.createRequestSender = createRequestSender;
7
+ /**
8
+ * @module requestSender
9
+ */
7
10
  const node_fs_1 = require("node:fs");
8
11
  const supertest_1 = __importDefault(require("supertest"));
9
12
  const oas_normalize_1 = __importDefault(require("oas-normalize"));
@@ -48,7 +51,7 @@ function getOperationsPathAndMethod(openapi) {
48
51
  const pathObject = pathValue;
49
52
  for (const method of methods) {
50
53
  if (pathObject[method] !== undefined) {
51
- const operationId = pathObject[method]?.operationId;
54
+ const operationId = pathObject[method].operationId;
52
55
  /* istanbul ignore next */
53
56
  if (operationId === undefined) {
54
57
  throw new Error(`OperationId is not defined for ${method} method on ${path}`);
@@ -73,6 +76,27 @@ function getOperationsPathAndMethod(openapi) {
73
76
  * @param {string} openapiFilePath - The file path to the OpenAPI specification file.
74
77
  * @param {express.Application} app - The Express application instance.
75
78
  * @returns {Promise<RequestSender<Paths, Operations>>} A promise that resolves to a RequestSender object.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * import express from 'express';
83
+ * import { createRequestSender } from './requestSender';
84
+ * import type { paths, operations } from './openapi';
85
+ *
86
+ * const app = express();
87
+ * const openapiFilePath = './openapi3.yaml';
88
+ *
89
+ * const requestSender = await createRequestSender<paths, operations>(openapiFilePath, app);
90
+ *
91
+ * // Using operation name
92
+ * const response1 = await requestSender.getUsers();
93
+ *
94
+ * // Using path and method
95
+ * const response2 = await requestSender.sendRequest({
96
+ * method: 'get',
97
+ * path: '/simple-request'
98
+ * });
99
+ * ```
76
100
  */
77
101
  async function createRequestSender(openapiFilePath, app) {
78
102
  const fileContent = (0, node_fs_1.readFileSync)(openapiFilePath, 'utf-8');
@@ -90,5 +114,4 @@ async function createRequestSender(openapiFilePath, app) {
90
114
  }
91
115
  return returnObj;
92
116
  }
93
- exports.createRequestSender = createRequestSender;
94
117
  //# sourceMappingURL=requestSender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestSender.js","sourceRoot":"","sources":["../../src/requestSender/requestSender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requestSender.js","sourceRoot":"","sources":["../../src/requestSender/requestSender.ts"],"names":[],"mappings":"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"}
@@ -80,4 +80,3 @@ export type RequestSender<Paths extends PathsTemplate, Operations extends Operat
80
80
  [operation in OperationsNames<Operations>]: RequiredKeys<RequestOptions<Operations[operation]>> extends OptionalKeys<RequestOptions<Operations[operation]>> ? OperationRequestOptional<Operations, operation> : OperationRequestRequired<Operations, operation>;
81
81
  }>;
82
82
  export {};
83
- //# sourceMappingURL=types.d.ts.map
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @module typedRequestHandler
3
+ */
1
4
  import type { RequestHandler } from 'express';
2
5
  import type { OptionalKeys } from 'ts-essentials';
3
6
  import type { ResponseObjectToFlat } from '../requestSender/types';
@@ -34,6 +37,33 @@ type AllPathsAndMethodsUnion<Paths extends PathsTemplate> = {
34
37
  type PathHandlers<Paths extends PathsTemplate> = {
35
38
  [T in AllPathsAndMethodsUnion<Paths> as `${Uppercase<string & T['method']>} ${string & T['path']}`]: GenericRequestHandler<T['operation']>;
36
39
  };
40
+ /**
41
+ * Represents a collection of request handlers that are typed based on the provided
42
+ * `Paths` and `Operations` templates generated from the openapi. This type combines both operation-specific
43
+ * handlers and path-specific handlers.
44
+ *
45
+ * @template Paths - A template that defines the structure of the paths.
46
+ * @template Operations - A template that defines the structure of the operations.
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * import type { TypedRequestHandlers } from './typedRequestHandler';
51
+ * import type { Paths, Operations } from './types';
52
+ * import express from 'express';
53
+ *
54
+ * const handlers: TypedRequestHandlers<Paths, Operations> = {
55
+ * 'GET /example': (req, res) => {
56
+ * res.send({ message: 'Example GET handler' });
57
+ * },
58
+ * exampleOperation: (req, res) => {
59
+ * res.send({ message: 'Example operation handler' });
60
+ * },
61
+ * };
62
+ *
63
+ * const app = express();
64
+ * app.get('/example', handlers['GET /example']);
65
+ * app.post('/exampleOperation', handlers.exampleOperation);
66
+ * ```
67
+ */
37
68
  export type TypedRequestHandlers<Paths extends PathsTemplate, Operations extends OperationsTemplate> = OperationHandlers<Operations> & PathHandlers<Paths>;
38
69
  export {};
39
- //# sourceMappingURL=typedRequestHandler.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@map-colonies/openapi-helpers",
3
- "version": "1.1.1",
3
+ "version": "2.0.0",
4
4
  "description": "A package that provides utilities for working with openapi files",
5
5
  "exports": {
6
6
  "./requestSender": {
@@ -20,12 +20,14 @@
20
20
  "prelint": "npm run format",
21
21
  "lint": "eslint .",
22
22
  "lint:fix": "eslint --fix .",
23
- "test": "jest --config=./tests/configurations/jest.config.js",
23
+ "test": "tsc --project tsconfig.test.json && jest --config=./tests/configurations/jest.config.js",
24
24
  "prebuild": "npm run clean",
25
25
  "build": "tsc --project tsconfig.build.json",
26
26
  "generate:test:types": "npm run build && node dist/generator/generateTypes.mjs tests/openapi3.yaml tests/types.d.ts",
27
27
  "clean": "rimraf dist",
28
- "prepublish": "npm run build"
28
+ "prepublish": "npm run build",
29
+ "prepare": "husky",
30
+ "docs": "typedoc"
29
31
  },
30
32
  "repository": {
31
33
  "type": "git",
@@ -36,18 +38,15 @@
36
38
  "bugs": {
37
39
  "url": "https://github.com/MapColonies/openapi-helpers/issues"
38
40
  },
39
- "husky": {
40
- "hooks": {
41
- "pre-commit": "pretty-quick --staged",
42
- "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
43
- }
44
- },
45
41
  "files": [
46
42
  "dist/**/*"
47
43
  ],
48
44
  "publishConfig": {
49
45
  "access": "public"
50
46
  },
47
+ "engines": {
48
+ "node": ">=20"
49
+ },
51
50
  "homepage": "https://github.com/MapColonies/openapi-helpers#readme",
52
51
  "dependencies": {
53
52
  "oas-normalize": "^11.1.1",
@@ -61,22 +60,26 @@
61
60
  "supertest": "^7.0.0"
62
61
  },
63
62
  "devDependencies": {
64
- "@commitlint/cli": "^11.0.0",
65
- "@commitlint/config-conventional": "^11.0.0",
63
+ "@commitlint/cli": "^19.6.1",
66
64
  "@map-colonies/eslint-config": "^4.0.0",
67
65
  "@types/jest": "^29.5.12",
68
66
  "@types/node": "^22.2.0",
69
67
  "@types/supertest": "^6.0.2",
70
68
  "body-parser": "^1.20.2",
71
- "commitlint": "^11.0.0",
69
+ "commitlint": "^19.6.1",
72
70
  "cz-conventional-changelog": "^3.3.0",
73
71
  "eslint": "^8.56.0",
74
72
  "expect-type": "^0.19.0",
75
73
  "express": "^4.17.1",
76
- "husky": "^4.3.5",
74
+ "husky": "^9.1.7",
77
75
  "jest": "^29.7.0",
78
76
  "pretty-quick": "^4.0.0",
79
- "ts-jest": "^29.1.5",
80
- "typescript": "^5.4.5"
77
+ "typescript": "^5.7.3",
78
+ "@map-colonies/tsconfig": "^1.0.0",
79
+ "@map-colonies/infra-copilot-instructions": "^1.0.0",
80
+ "@map-colonies/commitlint-config": "^1.1.0",
81
+ "typedoc": "^0.27.6",
82
+ "@swc/core": "^1.7.26",
83
+ "@swc/jest": "^0.2.36"
81
84
  }
82
85
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjG,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,MAAM,CAChC,MAAM,EACN;IACE,UAAU,EAAE;QACV,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,MAAM,CAAC,EAAE,GAAG,CAAC;KACd,CAAC;CACH,GAAG;KACD,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,kBAAkB;CACtC,CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypes.d.mts","sourceRoot":"","sources":["../../src/generator/generateTypes.mts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestSender.d.ts","sourceRoot":"","sources":["../../src/requestSender/requestSender.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,OAAO,EAAE,aAAa,EAAW,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAuD,aAAa,EAAiB,MAAM,SAAS,CAAC;AAkFjH,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,SAAS,aAAa,GAAG,KAAK,EAAE,UAAU,SAAS,kBAAkB,GAAG,KAAK,EAC1H,eAAe,EAAE,UAAU,SAAS,KAAK,GAAG,KAAK,GAAG,MAAM,EAC1D,GAAG,EAAE,OAAO,CAAC,WAAW,GACvB,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAqB3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/requestSender/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"typedRequestHandler.d.ts","sourceRoot":"","sources":["../../src/typedRequestHandler/typedRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKzE,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,UAAU,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAEnH,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,WAAW,EAAE,GAAG,CAAA;CAAE,GACnD,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,GAC/C,CAAC,SAAS;IAAE,WAAW,CAAC,EAAE,GAAG,CAAA;CAAE,GAC7B,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,GAAG,SAAS,GAC/E,SAAS,CAAC;AAEhB,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,UAAU,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AAGvH,KAAK,qBAAqB,CAAC,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAExI,KAAK,iBAAiB,CAAC,UAAU,SAAS,kBAAkB,IAAI;KAC7D,GAAG,IAAI,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CAClE,CAAC;AAEF,KAAK,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjE,KAAK,uBAAuB,CAAC,KAAK,SAAS,aAAa,IAAI;KACzD,IAAI,IAAI,MAAM,KAAK,GAAG;SACpB,MAAM,IAAI,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG;YAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,IAAI,CAAA;SAAE;KAC9G,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACrC,CAAC,MAAM,KAAK,CAAC,CAAC;AAEf,KAAK,YAAY,CAAC,KAAK,SAAS,aAAa,IAAI;KAC9C,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;CAC3I,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,aAAa,EAAE,UAAU,SAAS,kBAAkB,IAAI,iBAAiB,CAAC,UAAU,CAAC,GAClI,YAAY,CAAC,KAAK,CAAC,CAAC"}