@buildvision/nest-sdk-generator 2.2.1 → 2.2.2

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.
@@ -4,3 +4,4 @@
4
4
  import { SdkContent } from '../analyzer';
5
5
  import { Config } from '../config';
6
6
  export default function generateRTKQueryEndpoints(config: Config, sdkContent: SdkContent): Promise<void>;
7
+ export declare const validateSdkContent: (content: SdkContent) => void;
@@ -12,6 +12,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
12
12
  });
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.validateSdkContent = void 0;
15
16
  const fs = require("fs");
16
17
  const path = require("path");
17
18
  const typedeps_1 = require("../analyzer/typedeps");
@@ -22,6 +23,7 @@ const prettier_1 = require("./prettier");
22
23
  const sdk_interface_1 = require("./sdk-interface");
23
24
  function generateRTKQueryEndpoints(config, sdkContent) {
24
25
  return __awaiter(this, void 0, void 0, function* () {
26
+ (0, exports.validateSdkContent)(sdkContent);
25
27
  const prettifyOutput = config.prettify !== false;
26
28
  if (!prettifyOutput) {
27
29
  (0, logging_1.debug)('NOTE: files will not be prettified with Prettier');
@@ -81,4 +83,25 @@ function generateRTKQueryEndpoints(config, sdkContent) {
81
83
  });
82
84
  }
83
85
  exports.default = generateRTKQueryEndpoints;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnRrLXF1ZXJ5LWdlbmVyYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7O0FBRUgseUJBQXdCO0FBQ3hCLDZCQUE0QjtBQUc1QixtREFBZ0U7QUFFaEUsd0NBQWtEO0FBRWxELDZDQUFpRDtBQUNqRCx5Q0FBaUQ7QUFDakQseUNBQXlEO0FBQ3pELG1EQUFxRDtBQUVyRCxTQUE4Qix5QkFBeUIsQ0FBQyxNQUFjLEVBQUUsVUFBc0I7O1FBQzVGLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFBO1FBRWhELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixJQUFBLGVBQUssRUFBQyxrREFBa0QsQ0FBQyxDQUFBO1FBQzNELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFFOUQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxNQUFNLENBQUMscUJBQXFCLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzNDLElBQUEsZUFBSyxFQUFDLDJEQUEyRCxDQUFDLENBQUE7WUFDcEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7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
86
+ const validateSdkContent = (content) => {
87
+ const seenMethods = new Map();
88
+ const seenRoutes = new Map();
89
+ content.modules.forEach((module) => {
90
+ module.forEach((controller) => {
91
+ controller.methods.forEach((method) => {
92
+ if (seenMethods.has(method.name)) {
93
+ const oldController = seenMethods.get(method.name);
94
+ (0, logging_1.panic)(`Duplicate method name found: ${method.name} in ${controller.className} and ${oldController.className}\n
95
+ RTK Query requires globally unique method names.`);
96
+ }
97
+ seenMethods.set(method.name, controller);
98
+ if (seenRoutes.has(method.uriPath)) {
99
+ const oldController = seenRoutes.get(method.uriPath);
100
+ (0, logging_1.panic)(`Duplicate route URI found: ${method.uriPath} in ${controller.className} and ${oldController.className}`);
101
+ }
102
+ });
103
+ });
104
+ });
105
+ };
106
+ exports.validateSdkContent = validateSdkContent;
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnRrLXF1ZXJ5LWdlbmVyYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7OztBQUVILHlCQUF3QjtBQUN4Qiw2QkFBNEI7QUFJNUIsbURBQWdFO0FBRWhFLHdDQUFrRDtBQUVsRCw2Q0FBaUQ7QUFDakQseUNBQWlEO0FBQ2pELHlDQUF5RDtBQUN6RCxtREFBcUQ7QUFFckQsU0FBOEIseUJBQXlCLENBQUMsTUFBYyxFQUFFLFVBQXNCOztRQUM1RixJQUFBLDBCQUFrQixFQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTlCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFBO1FBRWhELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixJQUFBLGVBQUssRUFBQyxrREFBa0QsQ0FBQyxDQUFBO1FBQzNELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFFOUQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxNQUFNLENBQUMscUJBQXFCLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzNDLElBQUEsZUFBSyxFQUFDLDJEQUEyRCxDQUFDLENBQUE7WUFDcEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxF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
@@ -2,35 +2,256 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultSdkInterface = void 0;
4
4
  exports.defaultSdkInterface = `
5
- export async function request(
6
- method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',
7
- uri: string,
8
- body: unknown,
9
- query: Record<string, string>
10
- ): Promise<unknown> {
11
- const url = new URL('http://localhost:3000' + uri)
12
- url.search = new URLSearchParams(query).toString()
13
-
14
- const params: RequestInit = {
5
+ import type { BaseQueryApi } from "@reduxjs/toolkit/dist/query/baseQueryTypes";
6
+ import type { BaseQueryFn } from "@reduxjs/toolkit/query";
7
+
8
+ export type BaseRequestArgs = {
9
+ body: unknown;
10
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
11
+ query: Record<string, any>;
12
+ route: string;
13
+ };
14
+
15
+ type RequestOptions = object;
16
+ type Metadata = object;
17
+
18
+ export type BaseRequestFn<Result = unknown> = BaseQueryFn<
19
+ BaseRequestArgs,
20
+ Result,
21
+ RequestError,
22
+ RequestOptions,
23
+ Metadata
24
+ >;
25
+
26
+ export type BaseResponse<Result, Error, Metadata> =
27
+ | {
28
+ data?: undefined;
29
+ error: Error;
30
+ meta?: Metadata;
31
+ }
32
+ | {
33
+ data: Result;
34
+ error?: undefined;
35
+ meta?: Metadata;
36
+ };
37
+
38
+ export const getBaseUrl = (): string => {
39
+ const protocol = window.location.protocol;
40
+ const hostname = window.location.hostname;
41
+ const port = window.location.port ? ":" + window.location.port : "";
42
+ const basePath = "/api"; // Change or configure this to suite your needs
43
+
44
+ return protocol + "//" + hostname + port + basePath;
45
+ };
46
+
47
+ export const BaseRequest = async <Result>(
48
+ { body, method, query, route }: BaseRequestArgs,
49
+ _api: BaseQueryApi,
50
+ _options: RequestOptions
51
+ ): Promise<BaseResponse<Result, RequestError, Metadata>> => {
52
+ const baseUrl = getBaseUrl();
53
+ const url = new URL(baseUrl + route);
54
+
55
+ const fetchArgs: RequestInit = {
15
56
  method,
16
- // Required for content to be correctly parsed by NestJS
17
- headers: { 'Content-Type': 'application/json' },
57
+ headers: { "Content-Type": "application/json" },
58
+ };
59
+
60
+ const httpMetadata: HTTPMetadata = {
61
+ req: {
62
+ body,
63
+ method,
64
+ query,
65
+ url: url.toString(),
66
+ },
67
+ };
68
+
69
+ const errorResult = (type: RequestErrorType, cause?: unknown) => ({
70
+ data: undefined,
71
+ meta: {},
72
+ error: new RequestError({ cause, http: httpMetadata, type }),
73
+ });
74
+
75
+ try {
76
+ for (const key in query) {
77
+ const value = query[key];
78
+ const valueType = typeof value;
79
+ const isUndefined = value === undefined;
80
+ const isNull = value === null;
81
+ const isObject = valueType === "object" && !isNull; // typeof null => "object" :'(
82
+
83
+ if (isUndefined) {
84
+ continue; // Don't send undefined query params (do send nulls though!)
85
+ }
86
+
87
+ if (isObject) {
88
+ url.searchParams.append(key, JSON.stringify(query[key])); // Stringify objects and arrays
89
+ } else {
90
+ url.searchParams.append(key, query[key]); // Primitives: string, number, boolean, null
91
+ }
92
+ }
93
+
94
+ if (method !== "GET" && body) {
95
+ fetchArgs.body = JSON.stringify(body);
96
+ }
97
+ } catch (cause) {
98
+ return errorResult(RequestErrorType.PARSING_ERROR, cause);
18
99
  }
19
100
 
20
- // Setting a body is forbidden on GET requests
21
- if (method !== 'GET') {
22
- params.body = JSON.stringify(body)
101
+ let response: Response;
102
+ let responseText: string;
103
+ try {
104
+ response = await fetch(url.toString(), fetchArgs);
105
+ responseText = await response.text();
106
+ } catch (cause) {
107
+ return errorResult(RequestErrorType.FETCH_ERROR, cause);
108
+ }
109
+
110
+ httpMetadata.res = {
111
+ status: response.status,
112
+ statusDescription: response.statusText,
113
+ text: responseText,
114
+ };
115
+
116
+ if (RequestError.statusCodeIsError(response.status)) {
117
+ return errorResult(RequestErrorType.API_ERROR);
23
118
  }
24
119
 
25
- return fetch(url.toString(), params).then((res) => {
26
- // Handle failed requests
27
- if (!res.ok) {
28
- throw Error(res.statusText)
120
+ let data: Result;
121
+ try {
122
+ data = JSON.parse(responseText);
123
+ } catch (cause) {
124
+ return errorResult(RequestErrorType.PARSING_ERROR, cause);
125
+ }
126
+
127
+ return { data, meta: {}, error: undefined };
128
+ };
129
+
130
+ export enum RequestErrorType {
131
+ API_ERROR = "API_ERROR",
132
+ FETCH_ERROR = "FETCH_ERROR",
133
+ PARSING_ERROR = "PARSING_ERROR",
134
+ // TIMEOUT_ERROR = "TIMEOUT_ERROR", TODO: Implement request timeouts
135
+ }
136
+
137
+ export type RequestErrorCause = {
138
+ message: string;
139
+ source: Error | unknown;
140
+ stack?: string;
141
+ };
142
+
143
+ export type HTTPMetadata = {
144
+ req: {
145
+ body?: unknown;
146
+ method: string;
147
+ query?: Record<string, any>;
148
+ url: string;
149
+ };
150
+ res?: {
151
+ status: number;
152
+ statusDescription: string;
153
+ text: string;
154
+ };
155
+ };
156
+
157
+ export type RequestErrorParams = {
158
+ cause?: unknown;
159
+ http: HTTPMetadata;
160
+ type: RequestErrorType;
161
+ };
162
+
163
+ export class RequestError extends Error {
164
+ public static readonly DEFAULT_USER_MESSAGE: "An unexpected error occurred. We're looking into it!";
165
+
166
+ public readonly type: RequestErrorType;
167
+ public readonly userMessage: string;
168
+ public readonly http: HTTPMetadata;
169
+ public readonly cause?: RequestErrorCause;
170
+
171
+ constructor(params: RequestErrorParams) {
172
+ const cause = RequestError.parseCause(params.cause);
173
+ const userMessage = RequestError.parseUserMessage(params);
174
+
175
+ super(userMessage);
176
+
177
+ this.type = params.type;
178
+ this.userMessage = userMessage;
179
+ this.http = params.http;
180
+ this.cause = cause;
181
+ }
182
+
183
+ toJSON() {
184
+ return {
185
+ type: this.type,
186
+ userMessage: this.userMessage,
187
+ cause: this.cause,
188
+ stack: this.stack,
189
+ http: this.http,
190
+ };
191
+ }
192
+
193
+ toString() {
194
+ return JSON.stringify(this, null, 2);
195
+ }
196
+
197
+ public static parseCause(cause: unknown): RequestErrorCause | undefined {
198
+ if (cause === undefined || cause === null) {
199
+ return undefined;
29
200
  }
30
201
 
31
- return res.json()
32
- })
202
+ if (cause instanceof Error) {
203
+ return {
204
+ message: cause.message,
205
+ source: cause,
206
+ stack: cause.stack,
207
+ };
208
+ }
209
+
210
+ if (typeof cause === "string") {
211
+ return {
212
+ message: cause,
213
+ source: cause,
214
+ };
215
+ }
216
+
217
+ try {
218
+ return {
219
+ message: JSON.stringify(cause),
220
+ source: cause,
221
+ };
222
+ } catch (e) {
223
+ return {
224
+ message: "Unknown error is not serializable",
225
+ source: cause,
226
+ };
227
+ }
228
+ }
229
+
230
+ public static parseUserMessage({ http, type }: RequestErrorParams): string {
231
+ let userMessage = RequestError.DEFAULT_USER_MESSAGE;
232
+
233
+ if (type === RequestErrorType.API_ERROR && http.res) {
234
+ try {
235
+ const responseBody = JSON.parse(http.res.text);
236
+ if (
237
+ responseBody &&
238
+ typeof responseBody.message === "string" &&
239
+ responseBody.message.length > 0
240
+ ) {
241
+ userMessage = responseBody.message;
242
+ }
243
+ } catch (e) {
244
+ console.warn("Failed to parse API error response body", http.res.text);
245
+ }
246
+ }
247
+
248
+ return userMessage;
249
+ }
250
+
251
+ public static statusCodeIsError(statusCode: number): boolean {
252
+ return statusCode >= 400;
253
+ }
33
254
  }
34
255
 
35
256
  `.trim();
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydGstcXVlcnktZ2VuZXJhdG9yL3Nkay1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQStCbEMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSJ9
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydGstcXVlcnktZ2VuZXJhdG9yL3Nkay1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNFBsQyxDQUFDLElBQUksRUFBRSxDQUFBIn0=
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@ts-morph/common/lib/typescript.d.ts","../node_modules/@ts-morph/common/lib/ts-morph-common.d.ts","../node_modules/ts-morph/lib/ts-morph.d.ts","../node_modules/chalk/index.d.ts","../src/config.ts","../src/logging.ts","../src/analyzer/builtin.ts","../src/utils.ts","../src/analyzer/route.ts","../src/analyzer/typedeps.ts","../src/analyzer/params.ts","../src/analyzer/methods.ts","../src/analyzer/controller.ts","../src/analyzer/module.ts","../src/analyzer/controllers.ts","../src/analyzer/classdeps.ts","../src/analyzer/extractor.ts","../src/analyzer/index.ts","../src/generator/genmodules.ts","../src/generator/gentypes.ts","../node_modules/prettier/doc.d.ts","../node_modules/prettier/index.d.ts","../src/generator/prettier.ts","../src/generator/sdk-interface.ts","../src/generator/index.ts","../src/rtk-query-generator/genmodules.ts","../src/rtk-query-generator/gentypes.ts","../src/rtk-query-generator/prettier.ts","../src/rtk-query-generator/sdk-interface.ts","../src/rtk-query-generator/index.ts","../src/bin.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/minimist/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"f84c28802d5c44429c86180eed9bb73826f2efd559205632ecb23d904b0a1a8c","5b62cb32ae66c8d1d420f2a807cd81dd1e5e68547eeacd738d41c39b64b6687c","01d183dc38180ca94b2751133213800c337e78d759498bc150adcda54271265e","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2",{"version":"0bd60716aa65a8ff1d2520583542d60bb2bdddbf2cb6812fd7d3a9419dc19e46","signature":"02cd1ed4fe08a6bf97033540e3989e70bfc8af7a63629e9e7924e9f5884e9d9a"},{"version":"a32a4d64116a449d41d280d7f15e3c185da48b6c7cc6ae113fd66603a429196f","signature":"97289946dcfb289cfd3d02cba6d6ae3f19774cce5b662d50d8143dc32f2da4e3"},{"version":"8157e1133662959c7ddbcc92699c54e4fae658ef1110502f9b9a2b8153d768a9","signature":"c4801fef282d23bc99a3f07370b514ec11b83d1535e45c26eaa602933c791c43"},{"version":"85e1f51f193a5060b199070d4d82b3883a33a570ed5b766a3fa31ed954d86fcf","signature":"4582dd61b218dc2fcf29ff6c2d7afaa8e4253d3c7c0300e42bba51e8f44325de"},{"version":"4237adf363c7f2979da1fe34cc7ef38f9d46cb5c246050150758520f9d475a94","signature":"0edb9eee027dc8695b94eb939942ef53ad5d0a96b0d5342e48a06b51eac27475"},{"version":"ac7bcb68baccc3370fa51cdf8b335c52bef237fb68093506071bbb5a49ffb887","signature":"8d437228a673465341877d9d22f44db830cae04c947d484513e2268ff360c8c3"},{"version":"01e15539dea776533e28460a7bbbde71464bc23d2500c526dbaadd0705643032","signature":"f8d73f7fcdf6b80771eaa41ec63b7e35a0951216b2c721ed56165340f62f4230"},{"version":"94dbc40beac20fac1ae0f412834744250b73b0971e77b8172fd69d2f8fefb82d","signature":"2f879a7dbecb0e300524166c650462fe7eb34bef699d3b098b14acfe92871952"},{"version":"5cec05fa56cedc0c36b96bfeb85f3b1fed649b0235392e290bbba1362415a7cd","signature":"5d773a09f5e3b8e0a04f37372b90cf16f8b9a2d312d332b62daa64f9b2132fe4"},{"version":"d3eb72f19567134ea2148315b82b2663d5b3aa49501ab33181cade8136862391","signature":"90a8b386427c346a328c73e30d7ef5c48a76830598998e2a3115c60494d7fe2c"},{"version":"fee102ada25851224fccff42d174295c84028c33c2ea789ef57b11a04d72f111","signature":"eb0340f3caaca36fdd3b4af0a741f0a935ea5a0308819043f1a3d457fbfabaf9"},{"version":"c8ca97573f42c3ed579b33d0f9620e2255b14a460f0fd4a8c80c8db470f3d889","signature":"ec5fed8b863bf1cca1310ae7eca191903f6bcd5825b2a5b5fcaee6dcfb806c59"},{"version":"89d5507e24bb65e1cbc793e2055b7dc0ae90580010e95b2e189c2b9412dc59cc","signature":"984b3e3f7d6198d8494bc42038381c949779bed58215dc33ee67824df95091b5"},{"version":"5db4e1a5890bf57724f0fc6befe2b2e2b2434a77c2ca232a12c35723700ec4c0","signature":"8bcab4b7cc0aee80f343dfab98cf98300d22ecd384298af8db310e33210667ae"},{"version":"dc8e37e3d0552be830f2d9589cc241ea9d4cfdd1c45f2af0a4d2008352352b01","signature":"eec21b8177f3044c2e3d81e585a89861f3f15b2dec6c0e45706cc27dabc4fe45"},{"version":"64b2304dfb860165caa467339a79ca46cee376de20211a6b71c545a6c19d126f","signature":"69d47da2a10388566f354505bc8d8bc658ed7354b5ebb092a8ae9e181af5d6ca"},"2f848b4e660b568651a6350565afc8ac5b0644853a2a863862807602cf244a05","e7049308a11ff36ca7eee4ff33df35106eb108018ea4cd4cdb00efe8e9711ce0",{"version":"9f1cb01448a63056517b90ca277596fdc009c57fed4a51e7b37e96a33a0703df","signature":"5d0fc7ef796d71ae8eb0630b40c276fdca3aeb8fad9d41f343bc911e3b6acfce"},{"version":"6b3ae16e022e27554be5262b22915d1ffd452fc97499276a909ba9e5bf009095","signature":"8f36da2c06a62c7c14b4a18eb2a0c97ab8ff3fed355c0eaf1cf62129faf8e67f"},{"version":"fe6bf8ae5613cecd494ce91b6377eb5112f164d68f25d496b86acbd17a899c16","signature":"52216e656d1828da2b18de4d316c7ff51786c8595bd13df237eafb50f0845f71"},{"version":"a5c5ffecd85678024ece4062c743781518de942d0ce483f6ae5d895f1932915d","signature":"09fd1b3d5aa07c3d1c5528081c85abb6d0ad8a81e7ca0223aa7f7444c2648432"},{"version":"64b2304dfb860165caa467339a79ca46cee376de20211a6b71c545a6c19d126f","signature":"69d47da2a10388566f354505bc8d8bc658ed7354b5ebb092a8ae9e181af5d6ca"},{"version":"9f1cb01448a63056517b90ca277596fdc009c57fed4a51e7b37e96a33a0703df","signature":"5d0fc7ef796d71ae8eb0630b40c276fdca3aeb8fad9d41f343bc911e3b6acfce"},{"version":"6b3ae16e022e27554be5262b22915d1ffd452fc97499276a909ba9e5bf009095","signature":"8f36da2c06a62c7c14b4a18eb2a0c97ab8ff3fed355c0eaf1cf62129faf8e67f"},{"version":"ead46b9a2497fd5da3a1ec33934d2ff8db78201c8cd6fcafdc08a04c4b931a8f","signature":"1986c11a1b6e5c7461cbdc41bd61dd5af99f5d45cc8d00b9ea7ecc7012a3b17b"},{"version":"123a503dee0faa5881afb58ba890fea4e01bd66fbd32299bf6a46e3f5514c9ad","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"},"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4"],"root":[[68,83],[86,94]],"options":{"declaration":true,"downlevelIteration":true,"experimentalDecorators":true,"inlineSourceMap":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noPropertyAccessFromIndexSignature":true,"outDir":"./","strict":true,"target":2,"useUnknownInCatchVariables":true},"fileIdsList":[[64,144],[144],[98,144],[101,144],[102,107,135,144],[103,114,115,122,132,143,144],[103,104,114,122,144],[105,144],[106,107,115,123,144],[107,132,140,144],[108,110,114,122,144],[109,144],[110,111,144],[114,144],[112,114,144],[114,115,116,132,143,144],[114,115,116,129,132,135,144],[144,148],[110,117,122,132,143,144],[114,115,117,118,122,132,140,143,144],[117,119,132,140,143,144],[98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],[114,120,144],[121,143,144],[110,114,122,132,144],[123,144],[124,144],[101,125,144],[126,142,144,148],[127,144],[128,144],[114,129,130,144],[129,131,144,146],[102,114,132,133,134,135,144],[102,132,134,144],[132,133,144],[135,144],[136,144],[114,138,139,144],[138,139,144],[107,122,132,140,144],[141,144],[122,142,144],[102,117,128,143,144],[107,144],[132,144,145],[144,146],[144,147],[102,107,114,116,125,132,143,144,146,148],[132,144,149],[144,152,191],[144,152,176,191],[144,191],[144,152],[144,152,177,191],[144,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190],[144,177,191],[84,144],[65,144],[68,144],[66,69,73,124,144],[66,69,75,124,144],[66,69,71,76,77,123,124,144],[66,68,69,73,74,78,79,124,144],[66,68,69,70,78,80,115,124,144],[66,67,69,72,73,74,144],[66,69,124,144],[66,69,72,73,75,144],[68,69,81,88,93,124,144],[67,115,124,144],[68,69,72,73,74,75,76,78,124,144],[73,80,124,144],[68,69,73,81,82,83,86,87,115,124,144],[68,69,71,85,115,144],[67,68,144],[68,69,73,81,89,90,91,92,115,124,144],[115,124,144],[68],[66,73],[66,75],[66,76],[66,68,73,78],[68,78,80],[66,72,73,74],[66],[66,72,73,75],[74,75,76,78],[80],[68,81]],"referencedMap":[[65,1],[64,2],[95,2],[96,2],[97,2],[98,3],[99,3],[101,4],[102,5],[103,6],[104,7],[105,8],[106,9],[107,10],[108,11],[109,12],[110,13],[111,13],[113,14],[112,15],[114,14],[115,16],[116,17],[100,18],[150,2],[117,19],[118,20],[119,21],[151,22],[120,23],[121,24],[122,25],[123,26],[124,27],[125,28],[126,29],[127,30],[128,31],[129,32],[130,32],[131,33],[132,34],[134,35],[133,36],[135,37],[136,38],[137,2],[138,39],[139,40],[140,41],[141,42],[142,43],[143,44],[144,45],[145,46],[146,47],[147,48],[148,49],[149,50],[176,51],[177,52],[152,53],[155,53],[174,51],[175,51],[165,51],[164,54],[162,51],[157,51],[170,51],[168,51],[172,51],[156,51],[169,51],[173,51],[158,51],[159,51],[171,51],[153,51],[160,51],[161,51],[163,51],[167,51],[178,55],[166,51],[154,51],[191,56],[190,2],[185,55],[187,57],[186,55],[179,55],[180,55],[182,55],[184,55],[188,57],[189,57],[181,57],[183,57],[67,2],[84,2],[85,58],[66,59],[62,2],[63,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[22,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[56,2],[54,2],[55,2],[57,2],[58,2],[10,2],[1,2],[11,2],[61,2],[60,2],[59,2],[70,60],[79,61],[76,62],[78,63],[80,64],[81,65],[75,66],[77,67],[74,68],[72,2],[73,67],[94,69],[68,70],[82,71],[83,72],[88,73],[86,74],[87,2],[69,75],[89,71],[90,72],[93,76],[91,74],[92,2],[71,77]],"exportedModulesMap":[[65,1],[64,2],[95,2],[96,2],[97,2],[98,3],[99,3],[101,4],[102,5],[103,6],[104,7],[105,8],[106,9],[107,10],[108,11],[109,12],[110,13],[111,13],[113,14],[112,15],[114,14],[115,16],[116,17],[100,18],[150,2],[117,19],[118,20],[119,21],[151,22],[120,23],[121,24],[122,25],[123,26],[124,27],[125,28],[126,29],[127,30],[128,31],[129,32],[130,32],[131,33],[132,34],[134,35],[133,36],[135,37],[136,38],[137,2],[138,39],[139,40],[140,41],[141,42],[142,43],[143,44],[144,45],[145,46],[146,47],[147,48],[148,49],[149,50],[176,51],[177,52],[152,53],[155,53],[174,51],[175,51],[165,51],[164,54],[162,51],[157,51],[170,51],[168,51],[172,51],[156,51],[169,51],[173,51],[158,51],[159,51],[171,51],[153,51],[160,51],[161,51],[163,51],[167,51],[178,55],[166,51],[154,51],[191,56],[190,2],[185,55],[187,57],[186,55],[179,55],[180,55],[182,55],[184,55],[188,57],[189,57],[181,57],[183,57],[67,2],[84,2],[85,58],[66,59],[62,2],[63,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[22,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[56,2],[54,2],[55,2],[57,2],[58,2],[10,2],[1,2],[11,2],[61,2],[60,2],[59,2],[70,78],[79,79],[76,80],[78,81],[80,82],[81,83],[75,84],[77,85],[74,86],[73,85],[82,87],[83,88],[88,89],[86,78],[89,87],[90,88],[93,89],[91,78]],"semanticDiagnosticsPerFile":[65,64,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,111,113,112,114,115,116,100,150,117,118,119,151,120,121,122,123,124,125,126,127,128,129,130,131,132,134,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,176,177,152,155,174,175,165,164,162,157,170,168,172,156,169,173,158,159,171,153,160,161,163,167,178,166,154,191,190,185,187,186,179,180,182,184,188,189,181,183,67,84,85,66,62,63,13,12,2,14,15,16,17,18,19,20,21,3,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,58,10,1,11,61,60,59,70,79,76,78,80,81,75,77,74,72,73,94,68,82,83,88,86,87,69,89,90,93,91,92,71]},"version":"5.3.3"}
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@ts-morph/common/lib/typescript.d.ts","../node_modules/@ts-morph/common/lib/ts-morph-common.d.ts","../node_modules/ts-morph/lib/ts-morph.d.ts","../node_modules/chalk/index.d.ts","../src/config.ts","../src/logging.ts","../src/analyzer/builtin.ts","../src/utils.ts","../src/analyzer/route.ts","../src/analyzer/typedeps.ts","../src/analyzer/params.ts","../src/analyzer/methods.ts","../src/analyzer/controller.ts","../src/analyzer/module.ts","../src/analyzer/controllers.ts","../src/analyzer/classdeps.ts","../src/analyzer/extractor.ts","../src/analyzer/index.ts","../src/generator/genmodules.ts","../src/generator/gentypes.ts","../node_modules/prettier/doc.d.ts","../node_modules/prettier/index.d.ts","../src/generator/prettier.ts","../src/generator/sdk-interface.ts","../src/generator/index.ts","../src/rtk-query-generator/genmodules.ts","../src/rtk-query-generator/gentypes.ts","../src/rtk-query-generator/prettier.ts","../src/rtk-query-generator/sdk-interface.ts","../src/rtk-query-generator/index.ts","../src/bin.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/minimist/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"f84c28802d5c44429c86180eed9bb73826f2efd559205632ecb23d904b0a1a8c","5b62cb32ae66c8d1d420f2a807cd81dd1e5e68547eeacd738d41c39b64b6687c","01d183dc38180ca94b2751133213800c337e78d759498bc150adcda54271265e","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2",{"version":"0bd60716aa65a8ff1d2520583542d60bb2bdddbf2cb6812fd7d3a9419dc19e46","signature":"02cd1ed4fe08a6bf97033540e3989e70bfc8af7a63629e9e7924e9f5884e9d9a"},{"version":"a32a4d64116a449d41d280d7f15e3c185da48b6c7cc6ae113fd66603a429196f","signature":"97289946dcfb289cfd3d02cba6d6ae3f19774cce5b662d50d8143dc32f2da4e3"},{"version":"8157e1133662959c7ddbcc92699c54e4fae658ef1110502f9b9a2b8153d768a9","signature":"c4801fef282d23bc99a3f07370b514ec11b83d1535e45c26eaa602933c791c43"},{"version":"85e1f51f193a5060b199070d4d82b3883a33a570ed5b766a3fa31ed954d86fcf","signature":"4582dd61b218dc2fcf29ff6c2d7afaa8e4253d3c7c0300e42bba51e8f44325de"},{"version":"4237adf363c7f2979da1fe34cc7ef38f9d46cb5c246050150758520f9d475a94","signature":"0edb9eee027dc8695b94eb939942ef53ad5d0a96b0d5342e48a06b51eac27475"},{"version":"ac7bcb68baccc3370fa51cdf8b335c52bef237fb68093506071bbb5a49ffb887","signature":"8d437228a673465341877d9d22f44db830cae04c947d484513e2268ff360c8c3"},{"version":"01e15539dea776533e28460a7bbbde71464bc23d2500c526dbaadd0705643032","signature":"f8d73f7fcdf6b80771eaa41ec63b7e35a0951216b2c721ed56165340f62f4230"},{"version":"94dbc40beac20fac1ae0f412834744250b73b0971e77b8172fd69d2f8fefb82d","signature":"2f879a7dbecb0e300524166c650462fe7eb34bef699d3b098b14acfe92871952"},{"version":"5cec05fa56cedc0c36b96bfeb85f3b1fed649b0235392e290bbba1362415a7cd","signature":"5d773a09f5e3b8e0a04f37372b90cf16f8b9a2d312d332b62daa64f9b2132fe4"},{"version":"d3eb72f19567134ea2148315b82b2663d5b3aa49501ab33181cade8136862391","signature":"90a8b386427c346a328c73e30d7ef5c48a76830598998e2a3115c60494d7fe2c"},{"version":"fee102ada25851224fccff42d174295c84028c33c2ea789ef57b11a04d72f111","signature":"eb0340f3caaca36fdd3b4af0a741f0a935ea5a0308819043f1a3d457fbfabaf9"},{"version":"c8ca97573f42c3ed579b33d0f9620e2255b14a460f0fd4a8c80c8db470f3d889","signature":"ec5fed8b863bf1cca1310ae7eca191903f6bcd5825b2a5b5fcaee6dcfb806c59"},{"version":"89d5507e24bb65e1cbc793e2055b7dc0ae90580010e95b2e189c2b9412dc59cc","signature":"984b3e3f7d6198d8494bc42038381c949779bed58215dc33ee67824df95091b5"},{"version":"5db4e1a5890bf57724f0fc6befe2b2e2b2434a77c2ca232a12c35723700ec4c0","signature":"8bcab4b7cc0aee80f343dfab98cf98300d22ecd384298af8db310e33210667ae"},{"version":"dc8e37e3d0552be830f2d9589cc241ea9d4cfdd1c45f2af0a4d2008352352b01","signature":"eec21b8177f3044c2e3d81e585a89861f3f15b2dec6c0e45706cc27dabc4fe45"},{"version":"64b2304dfb860165caa467339a79ca46cee376de20211a6b71c545a6c19d126f","signature":"69d47da2a10388566f354505bc8d8bc658ed7354b5ebb092a8ae9e181af5d6ca"},"2f848b4e660b568651a6350565afc8ac5b0644853a2a863862807602cf244a05","e7049308a11ff36ca7eee4ff33df35106eb108018ea4cd4cdb00efe8e9711ce0",{"version":"9f1cb01448a63056517b90ca277596fdc009c57fed4a51e7b37e96a33a0703df","signature":"5d0fc7ef796d71ae8eb0630b40c276fdca3aeb8fad9d41f343bc911e3b6acfce"},{"version":"6b3ae16e022e27554be5262b22915d1ffd452fc97499276a909ba9e5bf009095","signature":"8f36da2c06a62c7c14b4a18eb2a0c97ab8ff3fed355c0eaf1cf62129faf8e67f"},{"version":"fe6bf8ae5613cecd494ce91b6377eb5112f164d68f25d496b86acbd17a899c16","signature":"52216e656d1828da2b18de4d316c7ff51786c8595bd13df237eafb50f0845f71"},{"version":"a5c5ffecd85678024ece4062c743781518de942d0ce483f6ae5d895f1932915d","signature":"09fd1b3d5aa07c3d1c5528081c85abb6d0ad8a81e7ca0223aa7f7444c2648432"},{"version":"64b2304dfb860165caa467339a79ca46cee376de20211a6b71c545a6c19d126f","signature":"69d47da2a10388566f354505bc8d8bc658ed7354b5ebb092a8ae9e181af5d6ca"},{"version":"9f1cb01448a63056517b90ca277596fdc009c57fed4a51e7b37e96a33a0703df","signature":"5d0fc7ef796d71ae8eb0630b40c276fdca3aeb8fad9d41f343bc911e3b6acfce"},{"version":"0c188ba8ab90899e314353ebdcaed2a7aaeeebeb95204af86f7d032bfabecece","signature":"8f36da2c06a62c7c14b4a18eb2a0c97ab8ff3fed355c0eaf1cf62129faf8e67f"},{"version":"fe14df82b6842501e211428c366dec36224009db880bbc53e735fe026835828f","signature":"387589a3bbcaed33df0dd5dc76b2e913a03e8521c23bf162562c8f2062eb0a82"},{"version":"123a503dee0faa5881afb58ba890fea4e01bd66fbd32299bf6a46e3f5514c9ad","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"},"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4"],"root":[[68,83],[86,94]],"options":{"declaration":true,"downlevelIteration":true,"experimentalDecorators":true,"inlineSourceMap":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noPropertyAccessFromIndexSignature":true,"outDir":"./","strict":true,"target":2,"useUnknownInCatchVariables":true},"fileIdsList":[[64,144],[144],[98,144],[101,144],[102,107,135,144],[103,114,115,122,132,143,144],[103,104,114,122,144],[105,144],[106,107,115,123,144],[107,132,140,144],[108,110,114,122,144],[109,144],[110,111,144],[114,144],[112,114,144],[114,115,116,132,143,144],[114,115,116,129,132,135,144],[144,148],[110,117,122,132,143,144],[114,115,117,118,122,132,140,143,144],[117,119,132,140,143,144],[98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],[114,120,144],[121,143,144],[110,114,122,132,144],[123,144],[124,144],[101,125,144],[126,142,144,148],[127,144],[128,144],[114,129,130,144],[129,131,144,146],[102,114,132,133,134,135,144],[102,132,134,144],[132,133,144],[135,144],[136,144],[114,138,139,144],[138,139,144],[107,122,132,140,144],[141,144],[122,142,144],[102,117,128,143,144],[107,144],[132,144,145],[144,146],[144,147],[102,107,114,116,125,132,143,144,146,148],[132,144,149],[144,152,191],[144,152,176,191],[144,191],[144,152],[144,152,177,191],[144,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190],[144,177,191],[84,144],[65,144],[68,144],[66,69,73,124,144],[66,69,75,124,144],[66,69,71,76,77,123,124,144],[66,68,69,73,74,78,79,124,144],[66,68,69,70,78,80,115,124,144],[66,67,69,72,73,74,144],[66,69,124,144],[66,69,72,73,75,144],[68,69,81,88,93,124,144],[67,115,124,144],[68,69,72,73,74,75,76,78,124,144],[73,80,124,144],[68,69,73,81,82,83,86,87,115,124,144],[68,69,71,85,115,144],[67,68,144],[68,69,73,76,81,89,90,91,92,115,124,144],[115,124,144],[68],[66,73],[66,75],[66,76],[66,68,73,78],[68,78,80],[66,72,73,74],[66],[66,72,73,75],[74,75,76,78],[80],[68,81]],"referencedMap":[[65,1],[64,2],[95,2],[96,2],[97,2],[98,3],[99,3],[101,4],[102,5],[103,6],[104,7],[105,8],[106,9],[107,10],[108,11],[109,12],[110,13],[111,13],[113,14],[112,15],[114,14],[115,16],[116,17],[100,18],[150,2],[117,19],[118,20],[119,21],[151,22],[120,23],[121,24],[122,25],[123,26],[124,27],[125,28],[126,29],[127,30],[128,31],[129,32],[130,32],[131,33],[132,34],[134,35],[133,36],[135,37],[136,38],[137,2],[138,39],[139,40],[140,41],[141,42],[142,43],[143,44],[144,45],[145,46],[146,47],[147,48],[148,49],[149,50],[176,51],[177,52],[152,53],[155,53],[174,51],[175,51],[165,51],[164,54],[162,51],[157,51],[170,51],[168,51],[172,51],[156,51],[169,51],[173,51],[158,51],[159,51],[171,51],[153,51],[160,51],[161,51],[163,51],[167,51],[178,55],[166,51],[154,51],[191,56],[190,2],[185,55],[187,57],[186,55],[179,55],[180,55],[182,55],[184,55],[188,57],[189,57],[181,57],[183,57],[67,2],[84,2],[85,58],[66,59],[62,2],[63,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[22,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[56,2],[54,2],[55,2],[57,2],[58,2],[10,2],[1,2],[11,2],[61,2],[60,2],[59,2],[70,60],[79,61],[76,62],[78,63],[80,64],[81,65],[75,66],[77,67],[74,68],[72,2],[73,67],[94,69],[68,70],[82,71],[83,72],[88,73],[86,74],[87,2],[69,75],[89,71],[90,72],[93,76],[91,74],[92,2],[71,77]],"exportedModulesMap":[[65,1],[64,2],[95,2],[96,2],[97,2],[98,3],[99,3],[101,4],[102,5],[103,6],[104,7],[105,8],[106,9],[107,10],[108,11],[109,12],[110,13],[111,13],[113,14],[112,15],[114,14],[115,16],[116,17],[100,18],[150,2],[117,19],[118,20],[119,21],[151,22],[120,23],[121,24],[122,25],[123,26],[124,27],[125,28],[126,29],[127,30],[128,31],[129,32],[130,32],[131,33],[132,34],[134,35],[133,36],[135,37],[136,38],[137,2],[138,39],[139,40],[140,41],[141,42],[142,43],[143,44],[144,45],[145,46],[146,47],[147,48],[148,49],[149,50],[176,51],[177,52],[152,53],[155,53],[174,51],[175,51],[165,51],[164,54],[162,51],[157,51],[170,51],[168,51],[172,51],[156,51],[169,51],[173,51],[158,51],[159,51],[171,51],[153,51],[160,51],[161,51],[163,51],[167,51],[178,55],[166,51],[154,51],[191,56],[190,2],[185,55],[187,57],[186,55],[179,55],[180,55],[182,55],[184,55],[188,57],[189,57],[181,57],[183,57],[67,2],[84,2],[85,58],[66,59],[62,2],[63,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[22,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[56,2],[54,2],[55,2],[57,2],[58,2],[10,2],[1,2],[11,2],[61,2],[60,2],[59,2],[70,78],[79,79],[76,80],[78,81],[80,82],[81,83],[75,84],[77,85],[74,86],[73,85],[82,87],[83,88],[88,89],[86,78],[89,87],[90,88],[93,89],[91,78]],"semanticDiagnosticsPerFile":[65,64,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,111,113,112,114,115,116,100,150,117,118,119,151,120,121,122,123,124,125,126,127,128,129,130,131,132,134,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,176,177,152,155,174,175,165,164,162,157,170,168,172,156,169,173,158,159,171,153,160,161,163,167,178,166,154,191,190,185,187,186,179,180,182,184,188,189,181,183,67,84,85,66,62,63,13,12,2,14,15,16,17,18,19,20,21,3,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,58,10,1,11,61,60,59,70,79,76,78,80,81,75,77,74,72,73,94,68,82,83,88,86,87,69,89,90,93,91,92,71]},"version":"5.3.3"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@buildvision/nest-sdk-generator",
3
3
  "author": "BuildVision <christophe@buildvision.io>",
4
- "version": "2.2.1",
4
+ "version": "2.2.2",
5
5
  "description": "A full-powered SDK generator for NestJS",
6
6
  "keywords": [
7
7
  "nest",
@@ -6,6 +6,7 @@ import * as fs from 'fs'
6
6
  import * as path from 'path'
7
7
 
8
8
  import { SdkContent } from '../analyzer'
9
+ import { SdkController } from '../analyzer/controller'
9
10
  import { normalizeExternalFilePath } from '../analyzer/typedeps'
10
11
  import { Config } from '../config'
11
12
  import { debug, panic, println } from '../logging'
@@ -16,6 +17,8 @@ import { findPrettierConfig, prettify } from './prettier'
16
17
  import { defaultSdkInterface } from './sdk-interface'
17
18
 
18
19
  export default async function generateRTKQueryEndpoints(config: Config, sdkContent: SdkContent): Promise<void> {
20
+ validateSdkContent(sdkContent)
21
+
19
22
  const prettifyOutput = config.prettify !== false
20
23
 
21
24
  if (!prettifyOutput) {
@@ -90,3 +93,29 @@ export default async function generateRTKQueryEndpoints(config: Config, sdkConte
90
93
  fs.writeFileSync(sdkInterfacePath, defaultSdkInterface, 'utf8')
91
94
  }
92
95
  }
96
+
97
+ export const validateSdkContent = (content: SdkContent): void => {
98
+ const seenMethods = new Map<string, SdkController>()
99
+ const seenRoutes = new Map<string, SdkController>()
100
+
101
+ content.modules.forEach((module) => {
102
+ module.forEach((controller) => {
103
+ controller.methods.forEach((method) => {
104
+ if (seenMethods.has(method.name)) {
105
+ const oldController = seenMethods.get(method.name)!
106
+ panic(
107
+ `Duplicate method name found: ${method.name} in ${controller.className} and ${oldController.className}\n
108
+ RTK Query requires globally unique method names.`
109
+ )
110
+ }
111
+
112
+ seenMethods.set(method.name, controller)
113
+
114
+ if (seenRoutes.has(method.uriPath)) {
115
+ const oldController = seenRoutes.get(method.uriPath)!
116
+ panic(`Duplicate route URI found: ${method.uriPath} in ${controller.className} and ${oldController.className}`)
117
+ }
118
+ })
119
+ })
120
+ })
121
+ }
@@ -1,32 +1,253 @@
1
1
  export const defaultSdkInterface = `
2
- export async function request(
3
- method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',
4
- uri: string,
5
- body: unknown,
6
- query: Record<string, string>
7
- ): Promise<unknown> {
8
- const url = new URL('http://localhost:3000' + uri)
9
- url.search = new URLSearchParams(query).toString()
10
-
11
- const params: RequestInit = {
2
+ import type { BaseQueryApi } from "@reduxjs/toolkit/dist/query/baseQueryTypes";
3
+ import type { BaseQueryFn } from "@reduxjs/toolkit/query";
4
+
5
+ export type BaseRequestArgs = {
6
+ body: unknown;
7
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
8
+ query: Record<string, any>;
9
+ route: string;
10
+ };
11
+
12
+ type RequestOptions = object;
13
+ type Metadata = object;
14
+
15
+ export type BaseRequestFn<Result = unknown> = BaseQueryFn<
16
+ BaseRequestArgs,
17
+ Result,
18
+ RequestError,
19
+ RequestOptions,
20
+ Metadata
21
+ >;
22
+
23
+ export type BaseResponse<Result, Error, Metadata> =
24
+ | {
25
+ data?: undefined;
26
+ error: Error;
27
+ meta?: Metadata;
28
+ }
29
+ | {
30
+ data: Result;
31
+ error?: undefined;
32
+ meta?: Metadata;
33
+ };
34
+
35
+ export const getBaseUrl = (): string => {
36
+ const protocol = window.location.protocol;
37
+ const hostname = window.location.hostname;
38
+ const port = window.location.port ? ":" + window.location.port : "";
39
+ const basePath = "/api"; // Change or configure this to suite your needs
40
+
41
+ return protocol + "//" + hostname + port + basePath;
42
+ };
43
+
44
+ export const BaseRequest = async <Result>(
45
+ { body, method, query, route }: BaseRequestArgs,
46
+ _api: BaseQueryApi,
47
+ _options: RequestOptions
48
+ ): Promise<BaseResponse<Result, RequestError, Metadata>> => {
49
+ const baseUrl = getBaseUrl();
50
+ const url = new URL(baseUrl + route);
51
+
52
+ const fetchArgs: RequestInit = {
12
53
  method,
13
- // Required for content to be correctly parsed by NestJS
14
- headers: { 'Content-Type': 'application/json' },
54
+ headers: { "Content-Type": "application/json" },
55
+ };
56
+
57
+ const httpMetadata: HTTPMetadata = {
58
+ req: {
59
+ body,
60
+ method,
61
+ query,
62
+ url: url.toString(),
63
+ },
64
+ };
65
+
66
+ const errorResult = (type: RequestErrorType, cause?: unknown) => ({
67
+ data: undefined,
68
+ meta: {},
69
+ error: new RequestError({ cause, http: httpMetadata, type }),
70
+ });
71
+
72
+ try {
73
+ for (const key in query) {
74
+ const value = query[key];
75
+ const valueType = typeof value;
76
+ const isUndefined = value === undefined;
77
+ const isNull = value === null;
78
+ const isObject = valueType === "object" && !isNull; // typeof null => "object" :'(
79
+
80
+ if (isUndefined) {
81
+ continue; // Don't send undefined query params (do send nulls though!)
82
+ }
83
+
84
+ if (isObject) {
85
+ url.searchParams.append(key, JSON.stringify(query[key])); // Stringify objects and arrays
86
+ } else {
87
+ url.searchParams.append(key, query[key]); // Primitives: string, number, boolean, null
88
+ }
89
+ }
90
+
91
+ if (method !== "GET" && body) {
92
+ fetchArgs.body = JSON.stringify(body);
93
+ }
94
+ } catch (cause) {
95
+ return errorResult(RequestErrorType.PARSING_ERROR, cause);
15
96
  }
16
97
 
17
- // Setting a body is forbidden on GET requests
18
- if (method !== 'GET') {
19
- params.body = JSON.stringify(body)
98
+ let response: Response;
99
+ let responseText: string;
100
+ try {
101
+ response = await fetch(url.toString(), fetchArgs);
102
+ responseText = await response.text();
103
+ } catch (cause) {
104
+ return errorResult(RequestErrorType.FETCH_ERROR, cause);
105
+ }
106
+
107
+ httpMetadata.res = {
108
+ status: response.status,
109
+ statusDescription: response.statusText,
110
+ text: responseText,
111
+ };
112
+
113
+ if (RequestError.statusCodeIsError(response.status)) {
114
+ return errorResult(RequestErrorType.API_ERROR);
20
115
  }
21
116
 
22
- return fetch(url.toString(), params).then((res) => {
23
- // Handle failed requests
24
- if (!res.ok) {
25
- throw Error(res.statusText)
117
+ let data: Result;
118
+ try {
119
+ data = JSON.parse(responseText);
120
+ } catch (cause) {
121
+ return errorResult(RequestErrorType.PARSING_ERROR, cause);
122
+ }
123
+
124
+ return { data, meta: {}, error: undefined };
125
+ };
126
+
127
+ export enum RequestErrorType {
128
+ API_ERROR = "API_ERROR",
129
+ FETCH_ERROR = "FETCH_ERROR",
130
+ PARSING_ERROR = "PARSING_ERROR",
131
+ // TIMEOUT_ERROR = "TIMEOUT_ERROR", TODO: Implement request timeouts
132
+ }
133
+
134
+ export type RequestErrorCause = {
135
+ message: string;
136
+ source: Error | unknown;
137
+ stack?: string;
138
+ };
139
+
140
+ export type HTTPMetadata = {
141
+ req: {
142
+ body?: unknown;
143
+ method: string;
144
+ query?: Record<string, any>;
145
+ url: string;
146
+ };
147
+ res?: {
148
+ status: number;
149
+ statusDescription: string;
150
+ text: string;
151
+ };
152
+ };
153
+
154
+ export type RequestErrorParams = {
155
+ cause?: unknown;
156
+ http: HTTPMetadata;
157
+ type: RequestErrorType;
158
+ };
159
+
160
+ export class RequestError extends Error {
161
+ public static readonly DEFAULT_USER_MESSAGE: "An unexpected error occurred. We're looking into it!";
162
+
163
+ public readonly type: RequestErrorType;
164
+ public readonly userMessage: string;
165
+ public readonly http: HTTPMetadata;
166
+ public readonly cause?: RequestErrorCause;
167
+
168
+ constructor(params: RequestErrorParams) {
169
+ const cause = RequestError.parseCause(params.cause);
170
+ const userMessage = RequestError.parseUserMessage(params);
171
+
172
+ super(userMessage);
173
+
174
+ this.type = params.type;
175
+ this.userMessage = userMessage;
176
+ this.http = params.http;
177
+ this.cause = cause;
178
+ }
179
+
180
+ toJSON() {
181
+ return {
182
+ type: this.type,
183
+ userMessage: this.userMessage,
184
+ cause: this.cause,
185
+ stack: this.stack,
186
+ http: this.http,
187
+ };
188
+ }
189
+
190
+ toString() {
191
+ return JSON.stringify(this, null, 2);
192
+ }
193
+
194
+ public static parseCause(cause: unknown): RequestErrorCause | undefined {
195
+ if (cause === undefined || cause === null) {
196
+ return undefined;
26
197
  }
27
198
 
28
- return res.json()
29
- })
199
+ if (cause instanceof Error) {
200
+ return {
201
+ message: cause.message,
202
+ source: cause,
203
+ stack: cause.stack,
204
+ };
205
+ }
206
+
207
+ if (typeof cause === "string") {
208
+ return {
209
+ message: cause,
210
+ source: cause,
211
+ };
212
+ }
213
+
214
+ try {
215
+ return {
216
+ message: JSON.stringify(cause),
217
+ source: cause,
218
+ };
219
+ } catch (e) {
220
+ return {
221
+ message: "Unknown error is not serializable",
222
+ source: cause,
223
+ };
224
+ }
225
+ }
226
+
227
+ public static parseUserMessage({ http, type }: RequestErrorParams): string {
228
+ let userMessage = RequestError.DEFAULT_USER_MESSAGE;
229
+
230
+ if (type === RequestErrorType.API_ERROR && http.res) {
231
+ try {
232
+ const responseBody = JSON.parse(http.res.text);
233
+ if (
234
+ responseBody &&
235
+ typeof responseBody.message === "string" &&
236
+ responseBody.message.length > 0
237
+ ) {
238
+ userMessage = responseBody.message;
239
+ }
240
+ } catch (e) {
241
+ console.warn("Failed to parse API error response body", http.res.text);
242
+ }
243
+ }
244
+
245
+ return userMessage;
246
+ }
247
+
248
+ public static statusCodeIsError(statusCode: number): boolean {
249
+ return statusCode >= 400;
250
+ }
30
251
  }
31
252
 
32
253
  `.trim()