xshell 0.0.16 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chalk.browser.d.ts +2 -0
- package/chalk.browser.js +21 -0
- package/chalk.browser.js.map +1 -0
- package/file.js +1 -2
- package/file.js.map +1 -1
- package/i18n/README.md +275 -0
- package/i18n/dict.d.ts +30 -0
- package/i18n/dict.js +34 -0
- package/i18n/dict.js.map +1 -0
- package/i18n/i18n-scan.d.ts +2 -0
- package/i18n/i18n-scan.js +21 -0
- package/i18n/i18n-scan.js.map +1 -0
- package/i18n/i18n.ico +0 -0
- package/i18n/index.d.ts +65 -0
- package/i18n/index.js +118 -0
- package/i18n/index.js.map +1 -0
- package/i18n/rwdict.d.ts +42 -0
- package/i18n/rwdict.js +110 -0
- package/i18n/rwdict.js.map +1 -0
- package/i18n/scanner/checker.d.ts +5 -0
- package/i18n/scanner/checker.js +73 -0
- package/i18n/scanner/checker.js.map +1 -0
- package/i18n/scanner/index.d.ts +52 -0
- package/i18n/scanner/index.js +319 -0
- package/i18n/scanner/index.js.map +1 -0
- package/i18n/scanner/parser.d.ts +3 -0
- package/i18n/scanner/parser.js +154 -0
- package/i18n/scanner/parser.js.map +1 -0
- package/i18n/utils.d.ts +1 -0
- package/i18n/utils.js +14 -0
- package/i18n/utils.js.map +1 -0
- package/net.browser.d.ts +23 -0
- package/net.browser.js +70 -0
- package/net.browser.js.map +1 -0
- package/net.js +2 -4
- package/net.js.map +1 -1
- package/package.json +36 -7
- package/prototype.browser.d.ts +130 -0
- package/prototype.browser.js +421 -0
- package/prototype.browser.js.map +1 -0
- package/repl.js +4 -8
- package/repl.js.map +1 -1
- package/server.js +2 -3
- package/server.js.map +1 -1
- package/{toaster.d.ts → toaster.browser.d.ts} +0 -0
- package/toaster.browser.js +45 -0
- package/toaster.browser.js.map +1 -0
- package/ufs.js +3 -3
- package/ufs.js.map +1 -1
- package/utils.browser.d.ts +3 -0
- package/utils.browser.js +27 -0
- package/utils.browser.js.map +1 -0
- package/chalk.browser.ts +0 -41
- package/extension.d.ts +0 -3
- package/extension.js +0 -68
- package/extension.js.map +0 -1
- package/net.browser.ts +0 -141
- package/prototype.browser.ts +0 -728
- package/toaster.browser.ts +0 -50
- package/tsconfig.json +0 -73
- package/utils.browser.ts +0 -25
package/extension.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.activate = void 0;
|
|
4
|
-
const vscode_1 = require("vscode");
|
|
5
|
-
require("./prototype");
|
|
6
|
-
const net_1 = require("./net");
|
|
7
|
-
const my_commands = [
|
|
8
|
-
{
|
|
9
|
-
func: async function xshell_repl() {
|
|
10
|
-
const editor = vscode_1.window.activeTextEditor;
|
|
11
|
-
const doc = editor.document;
|
|
12
|
-
const languages_map = {
|
|
13
|
-
javascript: ['ts'],
|
|
14
|
-
javascriptreact: ['ts'],
|
|
15
|
-
typescript: ['ts'],
|
|
16
|
-
typescriptreact: ['ts'],
|
|
17
|
-
};
|
|
18
|
-
const language_id = doc.languageId;
|
|
19
|
-
if (!(language_id in languages_map))
|
|
20
|
-
throw new Error(`${language_id} does not support repl`);
|
|
21
|
-
const code = get_text('selection or line');
|
|
22
|
-
await (0, net_1.rpc)('repl_code', [...languages_map[language_id], code], { async: true });
|
|
23
|
-
},
|
|
24
|
-
key: 'ctrl+enter',
|
|
25
|
-
when: 'editorTextFocus'
|
|
26
|
-
},
|
|
27
|
-
];
|
|
28
|
-
/** get text by selector */
|
|
29
|
-
function get_text(selector) {
|
|
30
|
-
const editor = vscode_1.window.activeTextEditor;
|
|
31
|
-
const document = editor.document;
|
|
32
|
-
const selection = editor.selection;
|
|
33
|
-
const text_selection = document.getText(selection);
|
|
34
|
-
if (selector === 'selection')
|
|
35
|
-
return text_selection;
|
|
36
|
-
const text_all = document.getText();
|
|
37
|
-
if (selector === 'all')
|
|
38
|
-
return text_all;
|
|
39
|
-
const text_line = document.lineAt(selection.active.line).text;
|
|
40
|
-
if (selector === 'line')
|
|
41
|
-
return text_line;
|
|
42
|
-
if (selector === 'word')
|
|
43
|
-
return document.getText(document.getWordRangeAtPosition(selection.active));
|
|
44
|
-
if (selector === 'selection or all')
|
|
45
|
-
return text_selection || text_all;
|
|
46
|
-
if (selector === 'selection or line')
|
|
47
|
-
return text_selection || text_line;
|
|
48
|
-
const start = selection.start;
|
|
49
|
-
const end = selection.end;
|
|
50
|
-
const line = document.lineAt(start.line);
|
|
51
|
-
const line_start = new vscode_1.Position(start.line, 0);
|
|
52
|
-
if (selector === 'selection before')
|
|
53
|
-
return document.getText(new vscode_1.Range(line_start, start));
|
|
54
|
-
const line_end = new vscode_1.Position(start.line, line.text.length);
|
|
55
|
-
if (selector === 'selection after')
|
|
56
|
-
return document.getText(new vscode_1.Range(end, line_end));
|
|
57
|
-
const line_text_start = new vscode_1.Position(start.line, line.firstNonWhitespaceCharacterIndex);
|
|
58
|
-
if (selector === 'selection to text start')
|
|
59
|
-
return document.getText(new vscode_1.Range(line_text_start, start));
|
|
60
|
-
}
|
|
61
|
-
function activate(ctx) {
|
|
62
|
-
my_commands.forEach(({ func }) => {
|
|
63
|
-
ctx.subscriptions.push(vscode_1.commands.registerCommand(func.name, func));
|
|
64
|
-
});
|
|
65
|
-
console.log('xshell loaded');
|
|
66
|
-
}
|
|
67
|
-
exports.activate = activate;
|
|
68
|
-
//# sourceMappingURL=extension.js.map
|
package/extension.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["extension.ts"],"names":[],"mappings":"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","sourcesContent":["import { window, commands, Range, Position } from 'vscode'\nimport type { ExtensionContext } from 'vscode'\n\nimport './prototype'\nimport { rpc } from './net'\n\n\nconst my_commands = [\n {\n func: async function xshell_repl () {\n const editor = window.activeTextEditor\n const doc = editor.document\n \n const languages_map = {\n javascript: ['ts'],\n javascriptreact: ['ts'],\n typescript: ['ts'],\n typescriptreact: ['ts'],\n }\n \n const language_id = doc.languageId\n \n if (!(language_id in languages_map))\n throw new Error(`${language_id} does not support repl`)\n \n const code = get_text('selection or line')\n \n await rpc('repl_code', [...languages_map[language_id], code], { async: true })\n },\n key: 'ctrl+enter',\n when: 'editorTextFocus'\n },\n]\n\n\n/** get text by selector */\nfunction get_text (selector: \n 'all' | \n 'line' | \n 'word' |\n 'selection' | \n 'selection or line' |\n 'selection or all' |\n 'selection before' | \n 'selection to text start' | \n 'selection after'\n) {\n const editor = window.activeTextEditor\n const document = editor.document\n const selection = editor.selection\n \n const text_selection = document.getText(selection)\n \n if (selector === 'selection')\n return text_selection\n \n const text_all = document.getText()\n \n if (selector === 'all')\n return text_all\n \n const text_line = document.lineAt(selection.active.line).text\n \n if (selector === 'line')\n return text_line\n \n if (selector === 'word')\n return document.getText(document.getWordRangeAtPosition(selection.active))\n \n if (selector === 'selection or all')\n return text_selection || text_all\n \n if (selector === 'selection or line')\n return text_selection || text_line\n \n \n \n const start = selection.start\n const end = selection.end\n \n const line = document.lineAt(start.line)\n \n const line_start = new Position(start.line, 0)\n \n if (selector === 'selection before')\n return document.getText( new Range(line_start, start) )\n \n \n const line_end = new Position(start.line, line.text.length)\n \n if (selector === 'selection after')\n return document.getText( new Range(end, line_end) )\n \n \n const line_text_start = new Position(start.line, line.firstNonWhitespaceCharacterIndex)\n if (selector === 'selection to text start')\n return document.getText(new Range(line_text_start, start) )\n}\n\n\nexport function activate (ctx: ExtensionContext) {\n my_commands.forEach( ({ func }) => {\n ctx.subscriptions.push(commands.registerCommand(func.name, func))\n })\n console.log('xshell loaded')\n}\n"]}
|
package/net.browser.ts
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
export interface RequestOptions {
|
|
2
|
-
method?: 'get' | 'post' | 'put' | 'head' | 'delete' | 'patch'
|
|
3
|
-
|
|
4
|
-
queries?: Record<string, any>
|
|
5
|
-
|
|
6
|
-
headers?: Record<string, string>
|
|
7
|
-
|
|
8
|
-
body?: string | object | HTMLFormElement
|
|
9
|
-
|
|
10
|
-
type?: 'application/json' | 'application/x-www-form-urlencoded' | 'multipart/form-data'
|
|
11
|
-
|
|
12
|
-
cors?: boolean
|
|
13
|
-
|
|
14
|
-
by?: 'fetch' | 'GM_xmlhttpRequest'
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface RequestRawOptions extends RequestOptions {
|
|
18
|
-
raw: true
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
- url: 可以只有 pathname 部分
|
|
23
|
-
- options:
|
|
24
|
-
- type: `'application/json'` 请求的 content-type 头 (如果有 body)
|
|
25
|
-
- by: `window.GM_xmlhttpRequest ? 'GM_xmlhttpRequest' : 'fetch'` 发起请求所使用的底层方法
|
|
26
|
-
*/
|
|
27
|
-
export async function request (url: string | URL): Promise<string>
|
|
28
|
-
export async function request (url: string | URL, options: RequestRawOptions): Promise<Response>
|
|
29
|
-
export async function request (url: string | URL, options: RequestOptions): Promise<string>
|
|
30
|
-
export async function request (url: string | URL, {
|
|
31
|
-
method,
|
|
32
|
-
|
|
33
|
-
queries,
|
|
34
|
-
|
|
35
|
-
headers,
|
|
36
|
-
|
|
37
|
-
body,
|
|
38
|
-
|
|
39
|
-
type = 'application/json',
|
|
40
|
-
|
|
41
|
-
cors,
|
|
42
|
-
|
|
43
|
-
by = window.GM_xmlhttpRequest ? 'GM_xmlhttpRequest' : 'fetch',
|
|
44
|
-
|
|
45
|
-
raw,
|
|
46
|
-
}: RequestOptions & { raw?: boolean } = { }) {
|
|
47
|
-
url = new URL(url, location.href)
|
|
48
|
-
|
|
49
|
-
if (queries)
|
|
50
|
-
for (const key in queries) {
|
|
51
|
-
let value = queries[key]
|
|
52
|
-
if (typeof value === 'boolean')
|
|
53
|
-
value = value ? '1' : '0'
|
|
54
|
-
url.searchParams.append(key, value)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (body && !method)
|
|
58
|
-
method = 'post'
|
|
59
|
-
|
|
60
|
-
if (type === 'application/json' && typeof body !== 'undefined' && typeof body !== 'string')
|
|
61
|
-
body = JSON.stringify(body)
|
|
62
|
-
|
|
63
|
-
url = url.toString()
|
|
64
|
-
|
|
65
|
-
if (by === 'fetch') {
|
|
66
|
-
const options: RequestInit = {
|
|
67
|
-
... method ? { method: method.toUpperCase() } : { },
|
|
68
|
-
|
|
69
|
-
... cors ? { mode: 'cors' } : { },
|
|
70
|
-
|
|
71
|
-
credentials: 'include',
|
|
72
|
-
|
|
73
|
-
headers: {
|
|
74
|
-
... body ? { 'content-type': type } : { },
|
|
75
|
-
... headers,
|
|
76
|
-
},
|
|
77
|
-
|
|
78
|
-
... body ? { body: body as string } : { },
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const response = await fetch(
|
|
82
|
-
url,
|
|
83
|
-
options
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
if (!response.ok)
|
|
87
|
-
throw Object.assign(
|
|
88
|
-
new Error(`StatusCodeError: ${response.status}`),
|
|
89
|
-
{ url, response, ...options }
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
if (raw)
|
|
93
|
-
return response
|
|
94
|
-
|
|
95
|
-
return response.text()
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return new Promise((resolve, reject) => {
|
|
100
|
-
GM_xmlhttpRequest({
|
|
101
|
-
... method ? { method: (method as any).toUpperCase() } : { },
|
|
102
|
-
|
|
103
|
-
url: url as string,
|
|
104
|
-
|
|
105
|
-
headers: {
|
|
106
|
-
... body ? { 'content-type': type } : { },
|
|
107
|
-
... headers,
|
|
108
|
-
},
|
|
109
|
-
|
|
110
|
-
... body ? { data: body as string, } : { },
|
|
111
|
-
|
|
112
|
-
onload (response) {
|
|
113
|
-
if (!(200 <= response.status && response.status <= 299)) {
|
|
114
|
-
reject(
|
|
115
|
-
Object.assign(
|
|
116
|
-
new Error(`StatusCodeError: ${response.status}`),
|
|
117
|
-
{ url, queries, method, headers, body, response }
|
|
118
|
-
)
|
|
119
|
-
)
|
|
120
|
-
return
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
resolve(response.responseText)
|
|
124
|
-
}
|
|
125
|
-
})
|
|
126
|
-
})
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
/** 发起 http 请求并将响应体作为 json 解析 */
|
|
131
|
-
export async function request_json <T = any> (url: string, options?: RequestOptions): Promise<T> {
|
|
132
|
-
const resp = await request(url, options)
|
|
133
|
-
if (!resp) return
|
|
134
|
-
try {
|
|
135
|
-
return JSON.parse(resp)
|
|
136
|
-
} catch (error) {
|
|
137
|
-
console.error(resp)
|
|
138
|
-
throw error
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|