Update vim plugin use openapi codegen. (#101)
* Update vim plugin use openapi codegen. * Refactor: move utils function. * Rebuild dist/tabby.js.add-tracing
parent
d5b6ea8187
commit
04e2af3790
|
|
@ -39,6 +39,18 @@ if !exists('g:tabby_enabled')
|
|||
let g:tabby_enabled = v:true
|
||||
endif
|
||||
|
||||
if !exists('g:tabby_filetype_to_languages')
|
||||
" From: vim filetype https://github.com/vim/vim/blob/master/runtime/filetype.vim
|
||||
" To: vscode language identifier https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers
|
||||
" Not listed filetype will be used as language identifier directly.
|
||||
let g:tabby_filetype_to_languages = {
|
||||
\ "bash": "shellscript",
|
||||
\ "cs": "csharp",
|
||||
\ "objc": "objective-c",
|
||||
\ "objcpp": "objective-cpp",
|
||||
\ }
|
||||
endif
|
||||
|
||||
function! tabby#Enable()
|
||||
let g:tabby_enabled = v:true
|
||||
if !tabby#Running()
|
||||
|
|
@ -158,15 +170,11 @@ function! s:GetCompletion(id)
|
|||
return
|
||||
endif
|
||||
|
||||
let l:language = s:GetLanguage()
|
||||
if l:language == 'unknown'
|
||||
return
|
||||
endif
|
||||
call tabby#job#Send(s:tabby, #{
|
||||
\ func: 'getCompletion',
|
||||
\ func: 'api.default.completionsV1CompletionsPost',
|
||||
\ args: [#{
|
||||
\ prompt: s:GetPrompt(),
|
||||
\ language: l:language,
|
||||
\ language: s:GetLanguage(),
|
||||
\ }],
|
||||
\ }, #{
|
||||
\ callback: function('s:HandleCompletion', [a:id]),
|
||||
|
|
@ -181,11 +189,11 @@ function! s:PostEvent(event_type)
|
|||
return
|
||||
endif
|
||||
call tabby#job#Send(s:tabby, #{
|
||||
\ func: 'postEvent',
|
||||
\ func: 'api.default.eventsV1EventsPost',
|
||||
\ args: [#{
|
||||
\ type: a:event_type,
|
||||
\ id: s:completion.id,
|
||||
\ index: s:completion.choices[s:completion_index].index,
|
||||
\ completion_id: s:completion.id,
|
||||
\ choice_index: s:completion.choices[s:completion_index].index,
|
||||
\ }],
|
||||
\ })
|
||||
endfunction
|
||||
|
|
@ -248,14 +256,10 @@ endfunction
|
|||
|
||||
function! s:GetLanguage()
|
||||
let filetype = getbufvar('%', '&filetype')
|
||||
let languages = #{
|
||||
\ javascript: 'javascript',
|
||||
\ python: 'python',
|
||||
\ }
|
||||
if has_key(languages, filetype)
|
||||
return languages[filetype]
|
||||
if has_key(g:tabby_filetype_to_languages, filetype)
|
||||
return g:tabby_filetype_to_languages[filetype]
|
||||
else
|
||||
return 'unknown'
|
||||
return filetype
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1,2 @@
|
|||
node_modules
|
||||
generated
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -4,16 +4,20 @@
|
|||
"description": "Tabby client for vim.",
|
||||
"main": "./dist/tabby.js",
|
||||
"scripts": {
|
||||
"postinstall": "yarn openapi-codegen",
|
||||
"openapi-codegen": "openapi --input ../../../docs/openapi.json --output ./src/generated --client axios --name Tabby --indent 2",
|
||||
"dev": "webpack --watch",
|
||||
"build": "webpack --mode=production"
|
||||
},
|
||||
"devDependencies": {
|
||||
"openapi-typescript-codegen": "^0.24.0",
|
||||
"ts-loader": "^9.4.2",
|
||||
"typescript": "^5.0.3",
|
||||
"webpack": "^5.77.0",
|
||||
"webpack-cli": "^5.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^1.3.4"
|
||||
"axios": "^1.3.4",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,31 +2,7 @@ import axios from "axios";
|
|||
import { sleep } from "./utils";
|
||||
import { EventEmitter } from "node:events";
|
||||
import { strict as assert } from "node:assert";
|
||||
|
||||
export interface TabbyCompletionRequest {
|
||||
prompt: string;
|
||||
language?: string;
|
||||
}
|
||||
|
||||
export interface TabbyCompletion {
|
||||
id?: string;
|
||||
created?: number;
|
||||
choices?: Array<{
|
||||
index: number;
|
||||
text: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
export enum EventType {
|
||||
InlineCompletionDisplayed = "view",
|
||||
InlineCompletionAccepted = "select",
|
||||
}
|
||||
|
||||
export interface Event {
|
||||
type: EventType;
|
||||
id?: string;
|
||||
index?: number;
|
||||
}
|
||||
import { Tabby as TabbyApi } from "./generated";
|
||||
|
||||
export class TabbyClient extends EventEmitter {
|
||||
private static instance: TabbyClient;
|
||||
|
|
@ -37,15 +13,17 @@ export class TabbyClient extends EventEmitter {
|
|||
return TabbyClient.instance;
|
||||
}
|
||||
|
||||
private tabbyServerUrl: string = "http://127.0.0.1:5000";
|
||||
private serverUrl: string = "http://127.0.0.1:5000";
|
||||
private status: "connecting" | "ready" | "disconnected" = "connecting";
|
||||
api: TabbyApi;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.ping();
|
||||
this.api = new TabbyApi({ BASE: this.serverUrl });
|
||||
}
|
||||
|
||||
private changeStatus(status: "connecting" | "ready" | "disconnected") {
|
||||
public changeStatus(status: "connecting" | "ready" | "disconnected") {
|
||||
if (this.status != status) {
|
||||
this.status = status;
|
||||
this.emit("statusChanged", status);
|
||||
|
|
@ -54,7 +32,7 @@ export class TabbyClient extends EventEmitter {
|
|||
|
||||
private async ping(tries: number = 0): Promise<boolean> {
|
||||
try {
|
||||
const response = await axios.get(`${this.tabbyServerUrl}/`);
|
||||
const response = await axios.get(`${this.serverUrl}/`);
|
||||
assert(response.status == 200);
|
||||
this.changeStatus("ready");
|
||||
return true;
|
||||
|
|
@ -70,50 +48,14 @@ export class TabbyClient extends EventEmitter {
|
|||
}
|
||||
}
|
||||
|
||||
public async setServerUrl(serverUrl: string): Promise<boolean> {
|
||||
this.tabbyServerUrl = serverUrl;
|
||||
public setServerUrl(serverUrl: string): boolean {
|
||||
this.serverUrl = serverUrl.replace(/\/$/, ''); // Remove trailing slash
|
||||
this.ping();
|
||||
this.api = new TabbyApi({ BASE: this.serverUrl });
|
||||
return true;
|
||||
}
|
||||
|
||||
public async getServerUrl(): Promise<string> {
|
||||
return this.tabbyServerUrl;
|
||||
}
|
||||
|
||||
public async getCompletion(
|
||||
request: TabbyCompletionRequest
|
||||
): Promise<TabbyCompletion | null> {
|
||||
if (this.status == "disconnected") {
|
||||
this.ping();
|
||||
}
|
||||
try {
|
||||
const response = await axios.post<TabbyCompletion>(
|
||||
`${this.tabbyServerUrl}/v1/completions`,
|
||||
request
|
||||
);
|
||||
assert(response.status == 200);
|
||||
return response.data;
|
||||
} catch (e) {
|
||||
this.ping();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public async postEvent(event: Event): Promise<boolean> {
|
||||
if (this.status == "disconnected") {
|
||||
this.ping();
|
||||
}
|
||||
try {
|
||||
const response = await axios.post(`${this.tabbyServerUrl}/v1/events`, {
|
||||
type: event.type,
|
||||
completion_id: event.id,
|
||||
choice_index: event.index,
|
||||
});
|
||||
assert(response.status == 200);
|
||||
return true;
|
||||
} catch (e) {
|
||||
this.ping();
|
||||
return false;
|
||||
}
|
||||
public getServerUrl(): string {
|
||||
return this.serverUrl;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { TabbyClient } from "./TabbyClient";
|
||||
|
||||
import { getFunction } from "./utils";
|
||||
import { CancelablePromise, ApiError } from "./generated";
|
||||
const tabby = TabbyClient.getInstance();
|
||||
|
||||
interface VimRequest {
|
||||
|
|
@ -19,14 +20,33 @@ process.stdin.on("data", async (data) => {
|
|||
try {
|
||||
const req: VimRequest = JSON.parse(data.toString());
|
||||
const resp: VimResponse = [req[0], {}];
|
||||
if (req[1].func in tabby && typeof tabby[req[1].func] === "function") {
|
||||
const func = tabby[req[1].func] as Function;
|
||||
const func = getFunction(tabby, req[1].func);
|
||||
if (func) {
|
||||
const args = Array.isArray(req[1].args) ? req[1].args : [req[1].args];
|
||||
resp[1] = await func.call(tabby, ...args);
|
||||
const result = func(...args);
|
||||
if (result instanceof CancelablePromise && req[1].func.startsWith("api.")) {
|
||||
// Async API calls
|
||||
resp[1] = await result
|
||||
.then((response: any) => {
|
||||
tabby.changeStatus("ready");
|
||||
return response;
|
||||
})
|
||||
.catch((e: ApiError) => {
|
||||
process.stderr.write(JSON.stringify(e, Object.getOwnPropertyNames(e)) + "\n");
|
||||
tabby.changeStatus("disconnected");
|
||||
return null;
|
||||
});
|
||||
} else if (result instanceof Promise) {
|
||||
// Async calls (non-API)
|
||||
resp[1] = await result;
|
||||
} else {
|
||||
// Sync calls
|
||||
resp[1] = result;
|
||||
}
|
||||
}
|
||||
process.stdout.write(JSON.stringify(resp) + "\n");
|
||||
} catch (e) {
|
||||
// FIXME: log errors
|
||||
process.stderr.write(JSON.stringify(e, Object.getOwnPropertyNames(e)) + "\n");
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,20 @@
|
|||
export function sleep(milliseconds: number) {
|
||||
return new Promise((r) => setTimeout(r, milliseconds));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param obj Find a function in this object
|
||||
* @param keyPath A string of keys separated by dots, e.g 'foo.bar.getSomething'
|
||||
* @returns The function if found that has bound target context, null otherwise
|
||||
*/
|
||||
export function getFunction(obj, keyPath): Function | null {
|
||||
try {
|
||||
let [target, func] = keyPath.split(".").reduce(([_, obj], k) => [obj, obj[k]], [null, obj]);
|
||||
if (typeof func === "function") {
|
||||
return (func as Function).bind(target);
|
||||
}
|
||||
} catch (e) {
|
||||
// nothing
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "ES2020",
|
||||
"lib": ["ES2020"],
|
||||
"sourceMap": true
|
||||
"lib": ["ES2020", "dom"],
|
||||
"sourceMap": true,
|
||||
"allowSyntheticDefaultImports": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ module.exports = {
|
|||
output: {
|
||||
filename: 'tabby.js',
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
libraryTarget: 'commonjs2'
|
||||
},
|
||||
entry: './src/index.ts',
|
||||
resolve: {
|
||||
extensions: ['.ts', '.js']
|
||||
extensions: ['.ts', '.js'],
|
||||
preferRelative: true,
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
|
|
|
|||
|
|
@ -2,6 +2,16 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@apidevtools/json-schema-ref-parser@9.0.9":
|
||||
version "9.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#d720f9256e3609621280584f2b47ae165359268b"
|
||||
integrity sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==
|
||||
dependencies:
|
||||
"@jsdevtools/ono" "^7.1.3"
|
||||
"@types/json-schema" "^7.0.6"
|
||||
call-me-maybe "^1.0.1"
|
||||
js-yaml "^4.1.0"
|
||||
|
||||
"@discoveryjs/json-ext@^0.5.0":
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
|
||||
|
|
@ -47,6 +57,11 @@
|
|||
"@jridgewell/resolve-uri" "3.1.0"
|
||||
"@jridgewell/sourcemap-codec" "1.4.14"
|
||||
|
||||
"@jsdevtools/ono@^7.1.3":
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
|
||||
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
|
||||
|
||||
"@types/eslint-scope@^3.7.3":
|
||||
version "3.7.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
|
||||
|
|
@ -73,7 +88,7 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
|
||||
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
|
||||
|
||||
"@types/json-schema@*", "@types/json-schema@^7.0.8":
|
||||
"@types/json-schema@*", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8":
|
||||
version "7.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
|
||||
integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
|
||||
|
|
@ -261,6 +276,11 @@ ansi-styles@^4.1.0:
|
|||
dependencies:
|
||||
color-convert "^2.0.1"
|
||||
|
||||
argparse@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
||||
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
|
|
@ -297,6 +317,16 @@ buffer-from@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
||||
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
||||
|
||||
call-me-maybe@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa"
|
||||
integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==
|
||||
|
||||
camelcase@^6.3.0:
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30001449:
|
||||
version "1.0.30001474"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5"
|
||||
|
|
@ -348,6 +378,11 @@ combined-stream@^1.0.8:
|
|||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
commander@^10.0.0:
|
||||
version "10.0.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1"
|
||||
integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==
|
||||
|
||||
commander@^2.20.0:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
|
|
@ -474,6 +509,15 @@ form-data@^4.0.0:
|
|||
combined-stream "^1.0.8"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fs-extra@^11.1.1:
|
||||
version "11.1.1"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d"
|
||||
integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.0"
|
||||
jsonfile "^6.0.1"
|
||||
universalify "^2.0.0"
|
||||
|
||||
function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
|
|
@ -484,11 +528,23 @@ glob-to-regexp@^0.4.1:
|
|||
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
|
||||
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
|
||||
|
||||
graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
|
||||
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
|
||||
version "4.2.11"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
|
||||
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
|
||||
|
||||
handlebars@^4.7.7:
|
||||
version "4.7.7"
|
||||
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
|
||||
integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
neo-async "^2.6.0"
|
||||
source-map "^0.6.1"
|
||||
wordwrap "^1.0.0"
|
||||
optionalDependencies:
|
||||
uglify-js "^3.1.4"
|
||||
|
||||
has-flag@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||
|
|
@ -552,16 +608,39 @@ jest-worker@^27.4.5:
|
|||
merge-stream "^2.0.0"
|
||||
supports-color "^8.0.0"
|
||||
|
||||
js-yaml@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
|
||||
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
|
||||
json-parse-even-better-errors@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
|
||||
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
|
||||
|
||||
json-schema-ref-parser@^9.0.9:
|
||||
version "9.0.9"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#66ea538e7450b12af342fa3d5b8458bc1e1e013f"
|
||||
integrity sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==
|
||||
dependencies:
|
||||
"@apidevtools/json-schema-ref-parser" "9.0.9"
|
||||
|
||||
json-schema-traverse@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
||||
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
|
||||
|
||||
jsonfile@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
|
||||
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
|
||||
dependencies:
|
||||
universalify "^2.0.0"
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
kind-of@^6.0.2:
|
||||
version "6.0.3"
|
||||
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
||||
|
|
@ -611,7 +690,12 @@ mime-types@^2.1.12, mime-types@^2.1.27:
|
|||
dependencies:
|
||||
mime-db "1.52.0"
|
||||
|
||||
neo-async@^2.6.2:
|
||||
minimist@^1.2.5:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
||||
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
||||
|
||||
neo-async@^2.6.0, neo-async@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
||||
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
||||
|
|
@ -621,6 +705,17 @@ node-releases@^2.0.8:
|
|||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
|
||||
integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
|
||||
|
||||
openapi-typescript-codegen@^0.24.0:
|
||||
version "0.24.0"
|
||||
resolved "https://registry.yarnpkg.com/openapi-typescript-codegen/-/openapi-typescript-codegen-0.24.0.tgz#b3e6ade5bae75cd47868e5e3e4dc3bcf899cadab"
|
||||
integrity sha512-rSt8t1XbMWhv6Db7GUI24NNli7FU5kzHLxcE8BpzgGWRdWyWt9IB2YoLyPahxNrVA7yOaVgnXPkrcTDRMQtJYg==
|
||||
dependencies:
|
||||
camelcase "^6.3.0"
|
||||
commander "^10.0.0"
|
||||
fs-extra "^11.1.1"
|
||||
handlebars "^4.7.7"
|
||||
json-schema-ref-parser "^9.0.9"
|
||||
|
||||
p-limit@^2.2.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
||||
|
|
@ -772,7 +867,7 @@ source-map-support@~0.5.20:
|
|||
buffer-from "^1.0.0"
|
||||
source-map "^0.6.0"
|
||||
|
||||
source-map@^0.6.0:
|
||||
source-map@^0.6.0, source-map@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
|
@ -844,6 +939,16 @@ typescript@^5.0.3:
|
|||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf"
|
||||
integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==
|
||||
|
||||
uglify-js@^3.1.4:
|
||||
version "3.17.4"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
|
||||
integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==
|
||||
|
||||
universalify@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
|
||||
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
|
||||
|
||||
update-browserslist-db@^1.0.10:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
|
||||
|
|
@ -941,6 +1046,11 @@ wildcard@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
|
||||
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
|
||||
|
||||
wordwrap@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||
|
|
|
|||
Loading…
Reference in New Issue