@halcyontech/vscode-ibmi-types 2.18.0 → 3.0.5
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/Instance.d.ts +2 -1
- package/api/CCSIDs.d.ts +8 -0
- package/api/CompileTools.d.ts +2 -0
- package/api/Filter.d.ts +2 -2
- package/api/IBMi.d.ts +36 -32
- package/api/IBMiContent.d.ts +18 -33
- package/api/{Search.d.ts → SearchTools.d.ts} +1 -1
- package/api/Tools.d.ts +15 -21
- package/api/actions.d.ts +12 -0
- package/api/components/component.d.ts +30 -15
- package/api/components/manager.d.ts +6 -3
- package/api/components/mapepire/index.d.ts +25 -0
- package/api/components/mapepire/sqlJob.d.ts +20 -0
- package/api/components/mapepire/types.d.ts +7 -0
- package/api/components/mapepire/version.d.ts +4 -0
- package/api/components/runtime.d.ts +15 -5
- package/api/configuration/DebugConfiguration.d.ts +5 -6
- package/api/configuration/config/types.d.ts +13 -9
- package/api/configuration/serverFile.d.ts +2 -5
- package/api/configuration/storage/BaseStorage.d.ts +1 -2
- package/api/configuration/storage/CodeForIStorage.d.ts +14 -14
- package/api/configuration/storage/ConnectionStorage.d.ts +6 -3
- package/api/connectionProfiles.d.ts +14 -0
- package/api/password.d.ts +8 -0
- package/api/queue.d.ts +9 -0
- package/api/tests/components/customCli.d.ts +7 -4
- package/api/types.d.ts +34 -20
- package/commands/open.d.ts +1 -1
- package/config/passwords.d.ts +3 -0
- package/debug/certificates.d.ts +1 -1
- package/debug/index.d.ts +1 -1
- package/debug/server.d.ts +7 -8
- package/editors/actionEditor.d.ts +15 -0
- package/editors/connectionProfileEditor.d.ts +3 -0
- package/editors/customEditorProvider.d.ts +29 -0
- package/filesystems/local/deployTools.d.ts +6 -5
- package/filesystems/local/env.d.ts +1 -1
- package/filesystems/qsys/FSUtils.d.ts +4 -3
- package/filesystems/qsys/sourceDateHandler.d.ts +2 -0
- package/mergeProfiles.d.ts +1 -0
- package/package.json +1 -1
- package/typings.d.ts +14 -5
- package/ui/Tools.d.ts +5 -2
- package/ui/actions.d.ts +4 -4
- package/ui/connection.d.ts +2 -0
- package/ui/diagnostics.d.ts +1 -1
- package/ui/types.d.ts +8 -3
- package/uri/handler.d.ts +1 -1
- package/webviews/CustomUI.d.ts +19 -13
- package/api/components/copyToImport.d.ts +0 -14
- package/api/components/cqsh/index.d.ts +0 -17
- package/api/components/getMemberInfo.d.ts +0 -19
- package/api/components/getNewLibl.d.ts +0 -20
- package/filesystems/local/actions.d.ts +0 -5
package/Instance.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface ConnectionOptions {
|
|
|
11
11
|
}
|
|
12
12
|
export default class Instance {
|
|
13
13
|
private connection;
|
|
14
|
+
connected?: Promise<ConnectionResult>;
|
|
14
15
|
private output;
|
|
15
16
|
private storage;
|
|
16
17
|
private emitter;
|
|
@@ -21,7 +22,7 @@ export default class Instance {
|
|
|
21
22
|
getOutputContent(): string;
|
|
22
23
|
private resetOutput;
|
|
23
24
|
connect(options: ConnectionOptions): Promise<ConnectionResult>;
|
|
24
|
-
disconnect(): Promise<void>;
|
|
25
|
+
disconnect(keepTabsOpened?: boolean): Promise<void>;
|
|
25
26
|
private setConnection;
|
|
26
27
|
getConnection(): IBMi;
|
|
27
28
|
getLibraryList(connection: IBMi, workspaceFolder?: vscode.WorkspaceFolder): Promise<ILELibrarySettings>;
|
package/api/CCSIDs.d.ts
ADDED
package/api/CompileTools.d.ts
CHANGED
|
@@ -10,7 +10,9 @@ export declare namespace CompileTools {
|
|
|
10
10
|
interface RunCommandEvents {
|
|
11
11
|
writeEvent?: (content: string) => void;
|
|
12
12
|
commandConfirm?: (command: string) => Promise<string>;
|
|
13
|
+
updateProgress?: (message: string) => void;
|
|
13
14
|
}
|
|
15
|
+
export function reset(): void;
|
|
14
16
|
/**
|
|
15
17
|
* Execute a command
|
|
16
18
|
*/
|
package/api/Filter.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
type Filter = {
|
|
2
2
|
test: (text: string) => boolean;
|
|
3
3
|
noFilter: boolean;
|
|
4
4
|
};
|
|
5
|
-
export
|
|
5
|
+
export type FilterType = 'simple' | 'regex';
|
|
6
6
|
export declare function parseFilter(filterString?: string, type?: FilterType): Filter;
|
|
7
7
|
/**
|
|
8
8
|
* Return filterString if it is a single, generic name filter (e.g. QSYS*)
|
package/api/IBMi.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { BindingValue } from "@ibm/mapepire-js";
|
|
2
2
|
import * as node_ssh from "node-ssh";
|
|
3
|
+
import { ClientErrorExtensions } from "ssh2";
|
|
3
4
|
import { EventEmitter } from 'stream';
|
|
4
5
|
import IBMiContent from "./IBMiContent";
|
|
5
6
|
import { Tools } from './Tools';
|
|
@@ -9,26 +10,27 @@ import { ConnectionManager } from './configuration/config/ConnectionManager';
|
|
|
9
10
|
import { ConnectionConfig, RemoteConfigFile } from './configuration/config/types';
|
|
10
11
|
import { ConfigFile } from './configuration/serverFile';
|
|
11
12
|
import { CodeForIStorage } from './configuration/storage/CodeForIStorage';
|
|
12
|
-
import { AspInfo, CommandData, CommandResult, ConnectionData, EditorPath, IBMiMember, RemoteCommand } from './types';
|
|
13
|
+
import { AspInfo, CommandData, CommandResult, ConnectionData, EditorPath, IBMiMember, RemoteCommand, QsysPath, CacheItem } from './types';
|
|
13
14
|
export interface MemberParts extends IBMiMember {
|
|
14
15
|
basename: string;
|
|
15
16
|
}
|
|
16
|
-
export
|
|
17
|
-
export
|
|
17
|
+
export type ConnectionMessageType = 'info' | 'warning' | 'error';
|
|
18
|
+
export type ConnectionErrorCode = `shell_config` | `home_directory_creation` | `home_directory_permissions` | `QCPTOIMPF_exists` | `QCPFRMIMPF_exists` | `default_not_bash` | `invalid_bashrc` | `invalid_temp_lib` | `no_auto_conv_ebcdic` | `not_loaded_debug_config` | `no_sql_runner` | `ccsid_warning` | `component_signature_mismatch`;
|
|
18
19
|
export interface ConnectionResult {
|
|
19
20
|
success: boolean;
|
|
20
21
|
error?: string;
|
|
21
22
|
errorCodes?: ConnectionErrorCode[];
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
export type DisconnectedCallback = (conn: IBMi, error?: Error & ClientErrorExtensions) => Promise<void>;
|
|
24
25
|
interface ConnectionCallbacks {
|
|
25
26
|
onConnectedOperations?: Function[];
|
|
26
|
-
|
|
27
|
+
onDisconnected?: DisconnectedCallback;
|
|
27
28
|
uiErrorHandler: (connection: IBMi, error: ConnectionErrorCode, data?: any) => Promise<boolean>;
|
|
28
29
|
progress: (detail: {
|
|
29
30
|
message: string;
|
|
30
31
|
}) => void;
|
|
31
32
|
message: (type: ConnectionMessageType, message: string) => void;
|
|
33
|
+
inputBox: (prompt: string, placeHolder: string, ignoreFocusOut: boolean) => Promise<string | undefined>;
|
|
32
34
|
cancelEmitter?: EventEmitter;
|
|
33
35
|
}
|
|
34
36
|
interface ConnectionOptions {
|
|
@@ -39,6 +41,7 @@ interface ConnectionOptions {
|
|
|
39
41
|
}
|
|
40
42
|
interface ConnectionConfigFiles {
|
|
41
43
|
settings: ConfigFile<RemoteConfigFile>;
|
|
44
|
+
[key: string]: ConfigFile<any>;
|
|
42
45
|
}
|
|
43
46
|
export default class IBMi {
|
|
44
47
|
static GlobalStorage: CodeForIStorage;
|
|
@@ -50,9 +53,6 @@ export default class IBMi {
|
|
|
50
53
|
private systemVersion;
|
|
51
54
|
private qccsid;
|
|
52
55
|
private userJobCcsid;
|
|
53
|
-
/** User default CCSID is job default CCSID */
|
|
54
|
-
private userDefaultCCSID;
|
|
55
|
-
private sshdCcsid;
|
|
56
56
|
private componentManager;
|
|
57
57
|
private configFiles;
|
|
58
58
|
/**
|
|
@@ -70,6 +70,8 @@ export default class IBMi {
|
|
|
70
70
|
currentConnectionName: string;
|
|
71
71
|
private tempRemoteFiles;
|
|
72
72
|
defaultUserLibraries: string[];
|
|
73
|
+
private sqlJob;
|
|
74
|
+
splfUserData: string | undefined;
|
|
73
75
|
/**
|
|
74
76
|
* Used to store ASP numbers and their names
|
|
75
77
|
* Their names usually maps up to a directory in
|
|
@@ -78,6 +80,7 @@ export default class IBMi {
|
|
|
78
80
|
private iAspInfo;
|
|
79
81
|
private currentAsp;
|
|
80
82
|
private libraryAsps;
|
|
83
|
+
connectionSuccessful: boolean;
|
|
81
84
|
/**
|
|
82
85
|
* @deprecated Will be replaced with {@link IBMi.getAllIAsps} in v3.0.0
|
|
83
86
|
*/
|
|
@@ -94,24 +97,23 @@ export default class IBMi {
|
|
|
94
97
|
};
|
|
95
98
|
shell?: string;
|
|
96
99
|
maximumArgsLength: number;
|
|
100
|
+
ccsidCache: Map<string, CacheItem<number>>;
|
|
97
101
|
appendOutput: (text: string) => void;
|
|
98
|
-
private disconnectedCallback;
|
|
99
102
|
/**
|
|
100
|
-
*
|
|
103
|
+
* getConfigFile can return pre-defined configuration files,
|
|
104
|
+
* but can lazy load new configuration files as well.
|
|
105
|
+
*
|
|
106
|
+
* This does not load the configuration file from the server,
|
|
107
|
+
* it only returns a ConfigFile instance. You should check the
|
|
108
|
+
* state of the ConfigFile instance to see if it has been loaded,
|
|
109
|
+
* and if not, call `loadFromServer()` on it.
|
|
101
110
|
*/
|
|
102
|
-
setDisconnectedCallback(callback: DisconnectCallback): void;
|
|
103
111
|
getConfigFile<T>(id: keyof ConnectionConfigFiles): ConfigFile<T>;
|
|
104
|
-
|
|
112
|
+
loadRemoteConfigs(): Promise<void>;
|
|
105
113
|
/**
|
|
106
114
|
* Primarily used for running SQL statements.
|
|
107
115
|
*/
|
|
108
116
|
get userCcsidInvalid(): boolean;
|
|
109
|
-
/**
|
|
110
|
-
* Determines if the client should do variant translation.
|
|
111
|
-
* False when cqsh should be used.
|
|
112
|
-
* True when cqsh is not available and the job CCSID is not the same as the SSHD CCSID.
|
|
113
|
-
*/
|
|
114
|
-
get requiresTranslation(): boolean;
|
|
115
117
|
get dangerousVariants(): boolean;
|
|
116
118
|
get connected(): boolean;
|
|
117
119
|
getContent(): IBMiContent;
|
|
@@ -119,14 +121,13 @@ export default class IBMi {
|
|
|
119
121
|
setConfig(newConfig: ConnectionConfig): void;
|
|
120
122
|
constructor();
|
|
121
123
|
connect(connectionObject: ConnectionData, options: ConnectionOptions): Promise<ConnectionResult>;
|
|
122
|
-
private
|
|
123
|
-
private
|
|
124
|
+
private checkOrCreateTempLibrary;
|
|
125
|
+
private checkOrCreateTempDirectory;
|
|
124
126
|
/**
|
|
125
127
|
* Can return 0 if the OS version was not detected.
|
|
126
128
|
*/
|
|
127
129
|
getSystemVersion(): number;
|
|
128
130
|
usingBash(): boolean;
|
|
129
|
-
loadRemoteConfigs(): Promise<void>;
|
|
130
131
|
/**
|
|
131
132
|
* - Send PASE/QSH/ILE commands simply
|
|
132
133
|
* - Commands sent here end in the 'IBM i Output' channel
|
|
@@ -143,18 +144,24 @@ export default class IBMi {
|
|
|
143
144
|
* Commands sent here end up in the 'Code for IBM i' output channel.
|
|
144
145
|
*/
|
|
145
146
|
sendCommand(options: CommandData): Promise<CommandResult>;
|
|
146
|
-
|
|
147
|
-
dispose
|
|
147
|
+
disconnect(): Promise<void>;
|
|
148
|
+
private dispose;
|
|
148
149
|
/**
|
|
149
150
|
* SQL only available when runner is installed and CCSID is valid.
|
|
150
151
|
*/
|
|
151
152
|
get enableSQL(): boolean;
|
|
152
153
|
sqlRunnerAvailable(): boolean;
|
|
154
|
+
getSqlJobId(): string;
|
|
153
155
|
/**
|
|
154
156
|
* Generates path to a temp file on the IBM i
|
|
155
157
|
* @param {string} key Key to the temp file to be re-used
|
|
156
158
|
*/
|
|
157
159
|
getTempRemote(key: string): string;
|
|
160
|
+
/**
|
|
161
|
+
* Cleans up a temp file and removes it from cache
|
|
162
|
+
* @param {string} key Key to the temp file to clean up
|
|
163
|
+
*/
|
|
164
|
+
clearTempRemote(key: string): Promise<void>;
|
|
158
165
|
parserMemberPath(string: string, checkExtension?: boolean): MemberParts;
|
|
159
166
|
/**
|
|
160
167
|
* @param {string} string
|
|
@@ -166,8 +173,6 @@ export default class IBMi {
|
|
|
166
173
|
* @returns {string} result
|
|
167
174
|
*/
|
|
168
175
|
sysNameInAmerican(string: string): string;
|
|
169
|
-
getLastDownloadLocation(): string;
|
|
170
|
-
setLastDownloadLocation(location: string): Promise<void>;
|
|
171
176
|
/**
|
|
172
177
|
* Creates a temporary directory and pass it on to a `process` function.
|
|
173
178
|
* The directory is guaranteed to be empty when created and deleted after the `process` is done.
|
|
@@ -180,7 +185,7 @@ export default class IBMi {
|
|
|
180
185
|
*/
|
|
181
186
|
upperCaseName(name: string): string;
|
|
182
187
|
getComponentManager(): ComponentManager;
|
|
183
|
-
getComponent<T extends IBMiComponent>(name: string, options?: ComponentSearchProps): T
|
|
188
|
+
getComponent<T extends IBMiComponent>(name: string, options?: ComponentSearchProps): Promise<T>;
|
|
184
189
|
/**
|
|
185
190
|
* Run SQL statements.
|
|
186
191
|
* Each statement must be separated by a semi-colon and a new line (i.e. ;\n).
|
|
@@ -189,17 +194,15 @@ export default class IBMi {
|
|
|
189
194
|
* @param statements
|
|
190
195
|
* @returns a Result set
|
|
191
196
|
*/
|
|
192
|
-
runSQL(statements: string, options?: {
|
|
193
|
-
|
|
194
|
-
|
|
197
|
+
runSQL(statements: string | string[], options?: {
|
|
198
|
+
bindings?: BindingValue[];
|
|
199
|
+
rows?: number;
|
|
195
200
|
}): Promise<Tools.DB2Row[]>;
|
|
196
201
|
validQsysName(name: string): boolean;
|
|
197
202
|
getCcsid(): number;
|
|
198
203
|
getCcsids(): {
|
|
199
204
|
qccsid: number;
|
|
200
205
|
runtimeCcsid: number;
|
|
201
|
-
userDefaultCCSID: number;
|
|
202
|
-
sshdCcsid: number;
|
|
203
206
|
};
|
|
204
207
|
debugPTFInstalled(): boolean;
|
|
205
208
|
private getUserProfileAsp;
|
|
@@ -208,6 +211,7 @@ export default class IBMi {
|
|
|
208
211
|
getIAspName(by: string | number): string | undefined;
|
|
209
212
|
getCurrentIAspName(): string;
|
|
210
213
|
lookupLibraryIAsp(library: string): Promise<string | undefined>;
|
|
214
|
+
getFileCcsid(path: string | QsysPath): Promise<number>;
|
|
211
215
|
getLibraryIAsp(library: string): string;
|
|
212
216
|
/**
|
|
213
217
|
* @deprecated Use {@link IBMiContent.uploadFiles} instead.
|
package/api/IBMiContent.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import * as node_ssh from "node-ssh";
|
|
4
2
|
import { FilterType } from './Filter';
|
|
5
3
|
import { default as IBMi } from './IBMi';
|
|
6
4
|
import { Tools } from './Tools';
|
|
7
5
|
import { AttrOperands, CommandResult, EditorPath, IBMiError, IBMiMember, IBMiObject, IFSFile, ModuleExport, ProgramExportImportInfo, QsysPath, SpecialAuthorities } from './types';
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
export
|
|
6
|
+
type Authority = "*ADD" | "*DLT" | "*EXECUTE" | "*READ" | "*UPD" | "*NONE" | "*ALL" | "*CHANGE" | "*USE" | "*EXCLUDE" | "*AUTLMGT";
|
|
7
|
+
export type SortOrder = `name` | `type`;
|
|
8
|
+
export type SortOptions = {
|
|
11
9
|
order: "name" | "date";
|
|
12
10
|
ascending?: boolean;
|
|
13
11
|
};
|
|
@@ -23,7 +21,7 @@ export default class IBMiContent {
|
|
|
23
21
|
* @param remotePath Remote IFS path
|
|
24
22
|
* @param localPath Local path to download file to
|
|
25
23
|
*/
|
|
26
|
-
downloadStreamfileRaw(remotePath: string, localPath?: string): Promise<
|
|
24
|
+
downloadStreamfileRaw(remotePath: string, localPath?: string): Promise<NonSharedBuffer>;
|
|
27
25
|
/**
|
|
28
26
|
* @deprecated Use {@link IBMiContent.downloadStreamfileRaw()} instead
|
|
29
27
|
*/
|
|
@@ -48,16 +46,6 @@ export default class IBMiContent {
|
|
|
48
46
|
* @param localPath
|
|
49
47
|
*/
|
|
50
48
|
downloadMemberContent(library: string, sourceFile: string, member: string, localPath?: string): Promise<string>;
|
|
51
|
-
/**
|
|
52
|
-
* @deprecated Will be removed in `v3.0.0`; use {@link IBMiContent.downloadMemberContent()} without the `asp` parameter instead.
|
|
53
|
-
*
|
|
54
|
-
* @param asp
|
|
55
|
-
* @param library
|
|
56
|
-
* @param sourceFile
|
|
57
|
-
* @param member
|
|
58
|
-
* @param localPath
|
|
59
|
-
*/
|
|
60
|
-
downloadMemberContent(asp: string | undefined, library: string, sourceFile: string, member: string, localPath?: string): Promise<string>;
|
|
61
49
|
/**
|
|
62
50
|
* Upload to a member
|
|
63
51
|
*
|
|
@@ -67,15 +55,6 @@ export default class IBMiContent {
|
|
|
67
55
|
* @param content
|
|
68
56
|
*/
|
|
69
57
|
uploadMemberContent(library: string, sourceFile: string, member: string, content: string | Uint8Array): Promise<boolean>;
|
|
70
|
-
/**
|
|
71
|
-
* @deprecated Will be removed in `v3.0.0`; use {@link IBMiContent.uploadMemberContent()} without the `asp` parameter instead.
|
|
72
|
-
* @param asp
|
|
73
|
-
* @param library
|
|
74
|
-
* @param sourceFile
|
|
75
|
-
* @param member
|
|
76
|
-
* @param content
|
|
77
|
-
*/
|
|
78
|
-
uploadMemberContent(asp: string | undefined, library: string, sourceFile: string, member: string, content: string | Uint8Array): Promise<boolean>;
|
|
79
58
|
/**
|
|
80
59
|
* @param statements Either an SQL statement or CL statement. CL statements start with @
|
|
81
60
|
* @returns result set
|
|
@@ -151,17 +130,11 @@ export default class IBMiContent {
|
|
|
151
130
|
getMemberList(filter: {
|
|
152
131
|
library: string;
|
|
153
132
|
sourceFile: string;
|
|
154
|
-
members?: string;
|
|
133
|
+
members?: string | string[];
|
|
155
134
|
extensions?: string;
|
|
156
135
|
sort?: SortOptions;
|
|
157
136
|
filterType?: FilterType;
|
|
158
137
|
}): Promise<IBMiMember[]>;
|
|
159
|
-
/**
|
|
160
|
-
*
|
|
161
|
-
* @param filter: the criterias used to list the members
|
|
162
|
-
* @returns
|
|
163
|
-
*/
|
|
164
|
-
getMemberInfo(library: string, sourceFile: string, member: string): Promise<any>;
|
|
165
138
|
/**
|
|
166
139
|
* Get list of items in a path
|
|
167
140
|
* @param remotePath
|
|
@@ -208,7 +181,6 @@ export default class IBMiContent {
|
|
|
208
181
|
valid: boolean;
|
|
209
182
|
missing: SpecialAuthorities[];
|
|
210
183
|
}>;
|
|
211
|
-
getSshCcsid(): Promise<number>;
|
|
212
184
|
getSysEnvVars(): Promise<{
|
|
213
185
|
[name: string]: string;
|
|
214
186
|
}>;
|
|
@@ -239,5 +211,18 @@ export default class IBMiContent {
|
|
|
239
211
|
* @returns the {@link CommandResult} of the `mv` command execution
|
|
240
212
|
*/
|
|
241
213
|
move(paths: string | string[], toDirectory: string): Promise<CommandResult>;
|
|
214
|
+
/**
|
|
215
|
+
* Returns the signature of an SQL component
|
|
216
|
+
* @param library
|
|
217
|
+
* @param name
|
|
218
|
+
* @param type
|
|
219
|
+
* @returns
|
|
220
|
+
*/
|
|
221
|
+
getSQLRoutineSignature(library: string, name: string, type: "PROCEDURE" | "FUNCTION"): Promise<string>;
|
|
222
|
+
getSHA256FileHash(remoteFile: string): Promise<string>;
|
|
223
|
+
getLibraryListFromCommand(command: string): Promise<{
|
|
224
|
+
currentLibrary: string;
|
|
225
|
+
libraryList: string[];
|
|
226
|
+
}>;
|
|
242
227
|
}
|
|
243
228
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import IBMi from './IBMi';
|
|
2
2
|
import { IBMiMember, SearchResults } from './types';
|
|
3
|
-
export declare namespace
|
|
3
|
+
export declare namespace SearchTools {
|
|
4
4
|
function searchMembers(connection: IBMi, library: string, sourceFile: string, searchTerm: string, members: string | IBMiMember[], readOnly?: boolean): Promise<SearchResults>;
|
|
5
5
|
function searchIFS(connection: IBMi, path: string, searchTerm: string): Promise<SearchResults | undefined>;
|
|
6
6
|
function findIFS(connection: IBMi, path: string, findTerm: string): Promise<SearchResults | undefined>;
|
package/api/Tools.d.ts
CHANGED
|
@@ -4,20 +4,8 @@ export declare namespace Tools {
|
|
|
4
4
|
sqlstate: string;
|
|
5
5
|
constructor(message: string);
|
|
6
6
|
}
|
|
7
|
-
interface DB2Headers {
|
|
8
|
-
name: string;
|
|
9
|
-
from: number;
|
|
10
|
-
length: number;
|
|
11
|
-
}
|
|
12
7
|
interface DB2Row extends Record<string, string | number | null> {
|
|
13
8
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Parse standard out for `/usr/bin/db2`
|
|
16
|
-
* @param output /usr/bin/db2's output
|
|
17
|
-
* @returns rows
|
|
18
|
-
*/
|
|
19
|
-
function db2Parse(output: string, input?: string): DB2Row[];
|
|
20
|
-
function bufferToUx(input: string): string;
|
|
21
9
|
function makeid(length?: number): string;
|
|
22
10
|
/**
|
|
23
11
|
* Build the IFS path string to an object or member
|
|
@@ -41,17 +29,8 @@ export declare namespace Tools {
|
|
|
41
29
|
function sanitizeObjNamesForPase(libraries: string[]): string[];
|
|
42
30
|
function parseMessages(output: string): IBMiMessages;
|
|
43
31
|
function parseQSysPath(path: string): QsysPath;
|
|
44
|
-
/**
|
|
45
|
-
* Fixes an SQL statement to make it compatible with db2 CLI program QZDFMDB2.
|
|
46
|
-
* - Changes `@clCommand` statements into Call `QSYS2.QCMDEX('clCommand')` procedure calls
|
|
47
|
-
* - Makes sure each comment (`--`) starts on a new line
|
|
48
|
-
* @param statement the statement to fix
|
|
49
|
-
* @returns statement compatible with QZDFMDB2
|
|
50
|
-
*/
|
|
51
|
-
function fixSQL(statement: string, removeComments?: boolean): string;
|
|
52
32
|
function fileToPath(file: EditorPath): string;
|
|
53
33
|
function fixWindowsPath(path: string): string;
|
|
54
|
-
function assumeType(str: string, col?: string): string | number;
|
|
55
34
|
/**
|
|
56
35
|
* Converts a timestamp from the attr command (in the form `Thu Dec 21 21:47:02 2023`) into a Date object
|
|
57
36
|
* @param timestamp an attr timestamp string
|
|
@@ -75,4 +54,19 @@ export declare namespace Tools {
|
|
|
75
54
|
* @returns
|
|
76
55
|
*/
|
|
77
56
|
function resolvePath(path: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Determines if CCSID conversion should be applied based on configuration and source file CCSID.
|
|
59
|
+
* @param sourceCcsid The CCSID of the source file
|
|
60
|
+
* @param config Connection configuration containing conversion settings
|
|
61
|
+
* @returns {requiresConversion, targetCcsid} - whether conversion is required and the target CCSID to use
|
|
62
|
+
*/
|
|
63
|
+
function determineCcsidConversion(sourceCcsid: number, config: {
|
|
64
|
+
ccsidConversionEnabled?: boolean;
|
|
65
|
+
ccsidConvertFrom?: string;
|
|
66
|
+
ccsidConvertTo?: string;
|
|
67
|
+
}): {
|
|
68
|
+
requiresConversion: boolean;
|
|
69
|
+
targetCcsid: number;
|
|
70
|
+
};
|
|
71
|
+
function ensureFullPath(inputPath: string, remoteHomeDirectory: string | undefined): string;
|
|
78
72
|
}
|
package/api/actions.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import vscode from "vscode";
|
|
2
|
+
import { Action } from "./types";
|
|
3
|
+
export declare namespace ActionTools {
|
|
4
|
+
function getActions(workspace?: vscode.WorkspaceFolder): Promise<Action[]>;
|
|
5
|
+
function getConnectionActions(): Action[];
|
|
6
|
+
function getLocalActionsFiles(workspace: vscode.WorkspaceFolder): Promise<vscode.Uri[]>;
|
|
7
|
+
function updateAction(action: Action, workspace?: vscode.WorkspaceFolder, options?: {
|
|
8
|
+
newName?: string;
|
|
9
|
+
oldType?: string;
|
|
10
|
+
delete?: boolean;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import IBMi from "../IBMi";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type ComponentStatus = `NotChecked` | `NotInstalled` | `NeedsUpdate` | `Installed` | `Error`;
|
|
3
|
+
/** @deprecated use {@link SecureComponentState} instead */
|
|
4
|
+
export type ComponentState = ComponentStatus;
|
|
5
|
+
export type SecureComponentState = {
|
|
6
|
+
status: ComponentStatus;
|
|
7
|
+
remoteSignature?: string;
|
|
8
|
+
};
|
|
9
|
+
export type ComponentIdentification = {
|
|
4
10
|
name: string;
|
|
5
11
|
version: number | string;
|
|
12
|
+
signature: string;
|
|
6
13
|
userManaged?: boolean;
|
|
7
14
|
};
|
|
8
|
-
export
|
|
15
|
+
export type ComponentInstallState = {
|
|
9
16
|
id: ComponentIdentification;
|
|
10
|
-
state:
|
|
17
|
+
state: SecureComponentState;
|
|
11
18
|
};
|
|
12
19
|
/**
|
|
13
20
|
* Defines a component that is managed per IBM i.
|
|
@@ -17,7 +24,7 @@ export declare type ComponentInstallState = {
|
|
|
17
24
|
* For example, this class:
|
|
18
25
|
* ```
|
|
19
26
|
* class MyIBMIComponent implements IBMiComponent {
|
|
20
|
-
* //implements
|
|
27
|
+
* //implements getIdentification, getRemoteState and update
|
|
21
28
|
* }
|
|
22
29
|
* ```
|
|
23
30
|
* Must be registered like this, when the extension providing the component gets activated:
|
|
@@ -32,26 +39,33 @@ export declare type ComponentInstallState = {
|
|
|
32
39
|
* ```
|
|
33
40
|
*
|
|
34
41
|
*/
|
|
35
|
-
export
|
|
42
|
+
export type IBMiComponent = {
|
|
36
43
|
/**
|
|
37
|
-
* The identification of this component
|
|
44
|
+
* The identification of this component: a unique name and a signature
|
|
38
45
|
*
|
|
39
|
-
* @returns a
|
|
46
|
+
* @returns a {@link ComponentIdentification}
|
|
40
47
|
*/
|
|
41
48
|
getIdentification(): ComponentIdentification;
|
|
42
49
|
setInstallDirectory?(installDirectory: string): Promise<void>;
|
|
43
50
|
/**
|
|
44
|
-
*
|
|
51
|
+
* Check and retrieve the Component's state from the remote system.
|
|
52
|
+
*
|
|
53
|
+
* @param connection
|
|
54
|
+
* @param installDirectory
|
|
55
|
+
* @param signature a unique identifier (i.e. a hash), part of the component's identification. It should be compared against a hash retrieved from the remote system.
|
|
56
|
+
* @returns the component's {@link SecureComponentState state} on the IBM i
|
|
45
57
|
*/
|
|
46
|
-
getRemoteState(connection: IBMi, installDirectory: string): ComponentState | Promise<ComponentState>;
|
|
58
|
+
getRemoteState(connection: IBMi, installDirectory: string): ComponentState | SecureComponentState | Promise<ComponentState | SecureComponentState>;
|
|
47
59
|
/**
|
|
48
|
-
* Called whenever the components needs to be installed or updated, depending on its {@link
|
|
49
|
-
*
|
|
50
|
-
* The Component Manager is responsible for calling this, so the {@link ComponentState state} doesn't need to be checked here.
|
|
60
|
+
* Called whenever the components needs to be installed or updated, depending on its {@link SecureComponentState state}.
|
|
51
61
|
*
|
|
52
|
-
*
|
|
62
|
+
* The Component Manager is responsible for calling this, so the {@link SecureComponentState state} doesn't need to be checked here.
|
|
63
|
+
* @param connection
|
|
64
|
+
* @param installDirectory
|
|
65
|
+
* @param signature a unique identifier (i.e. a hash), part of the component's identification. It should be compared against a hash retrieved from the remote system.
|
|
66
|
+
* @returns the component's {@link SecureComponentState state} after the update is done
|
|
53
67
|
*/
|
|
54
|
-
update(connection: IBMi, installDirectory: string): ComponentState | Promise<ComponentState>;
|
|
68
|
+
update(connection: IBMi, installDirectory: string): ComponentState | SecureComponentState | Promise<ComponentState | SecureComponentState>;
|
|
55
69
|
/**
|
|
56
70
|
* Called when connecting to clear every persitent information related to the previous connection
|
|
57
71
|
*/
|
|
@@ -62,3 +76,4 @@ export declare type IBMiComponent = {
|
|
|
62
76
|
*/
|
|
63
77
|
uninstall?(connection: IBMi): Promise<void>;
|
|
64
78
|
};
|
|
79
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import IBMi from "../IBMi";
|
|
2
|
-
import { ComponentIdentification, ComponentInstallState,
|
|
2
|
+
import { ComponentIdentification, ComponentInstallState, IBMiComponent, SecureComponentState } from "./component";
|
|
3
3
|
import { IBMiComponentRuntime } from "./runtime";
|
|
4
4
|
interface ExtensionContextI {
|
|
5
5
|
extension: {
|
|
@@ -11,8 +11,10 @@ export interface ComponentSearchProps {
|
|
|
11
11
|
}
|
|
12
12
|
export declare class ComponentRegistry {
|
|
13
13
|
private readonly components;
|
|
14
|
+
private readonly disabled;
|
|
14
15
|
registerComponent(context: ExtensionContextI | string, component: IBMiComponent): void;
|
|
15
16
|
getComponents(): Map<string, IBMiComponent[]>;
|
|
17
|
+
disableComponent(key: string, id: string): void;
|
|
16
18
|
}
|
|
17
19
|
export declare const extensionComponentRegistry: ComponentRegistry;
|
|
18
20
|
export declare class ComponentManager {
|
|
@@ -27,11 +29,12 @@ export declare class ComponentManager {
|
|
|
27
29
|
getAllAvailableComponents(): IBMiComponent[];
|
|
28
30
|
installComponent(key: string): Promise<ComponentInstallState>;
|
|
29
31
|
uninstallComponent(key: string): Promise<ComponentInstallState>;
|
|
30
|
-
getRemoteState(key: string): Promise<
|
|
32
|
+
getRemoteState(key: string): Promise<SecureComponentState | undefined>;
|
|
31
33
|
startup(lastInstalled?: ComponentInstallState[]): Promise<void>;
|
|
34
|
+
startupComponent(key: string | IBMiComponent, lastInstalled?: ComponentInstallState[]): Promise<SecureComponentState>;
|
|
32
35
|
/**
|
|
33
36
|
* Returns the latest version of an installed component, or fetch a specific version
|
|
34
37
|
*/
|
|
35
|
-
get<T extends IBMiComponent>(id: string, options?: ComponentSearchProps): T | undefined
|
|
38
|
+
get<T extends IBMiComponent>(id: string, options?: ComponentSearchProps): Promise<T | undefined>;
|
|
36
39
|
}
|
|
37
40
|
export { IBMiComponentRuntime };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SQLJob } from "@ibm/mapepire-js";
|
|
2
|
+
import IBMi from "../../IBMi";
|
|
3
|
+
import { IBMiComponent, SecureComponentState } from "../component";
|
|
4
|
+
import { sshSqlJob } from "./sqlJob";
|
|
5
|
+
export declare class Mapepire implements IBMiComponent {
|
|
6
|
+
static readonly ID = "mapepire";
|
|
7
|
+
private readonly localAssetPath;
|
|
8
|
+
private installPath;
|
|
9
|
+
private readonly version;
|
|
10
|
+
readonly jobs: Map<string, SQLJob>;
|
|
11
|
+
constructor(localAssetRoot: string);
|
|
12
|
+
getIdentification(): {
|
|
13
|
+
name: string;
|
|
14
|
+
version: string;
|
|
15
|
+
signature: string;
|
|
16
|
+
};
|
|
17
|
+
setInstallDirectory(installDirectory: string): Promise<void>;
|
|
18
|
+
getRemoteState(connection: IBMi, installDirectory: string): Promise<SecureComponentState>;
|
|
19
|
+
update(connection: IBMi): Promise<SecureComponentState>;
|
|
20
|
+
getInitCommand(javaHome: string): string | undefined;
|
|
21
|
+
static useExec(connection: IBMi): Promise<boolean>;
|
|
22
|
+
newJob(connection: IBMi, javaPath?: string): Promise<sshSqlJob>;
|
|
23
|
+
endJobs(): Promise<void>;
|
|
24
|
+
reset(): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ConnectionResult, ServerRequest } from "@ibm/mapepire-js";
|
|
2
|
+
import { SQLJob } from "@ibm/mapepire-js";
|
|
3
|
+
import { ClientChannel } from "ssh2";
|
|
4
|
+
import { Mapepire } from ".";
|
|
5
|
+
import IBMi from "../../IBMi";
|
|
6
|
+
import { JobStatus } from "./types";
|
|
7
|
+
export declare class sshSqlJob extends SQLJob {
|
|
8
|
+
static application: string;
|
|
9
|
+
private channel;
|
|
10
|
+
private onClose?;
|
|
11
|
+
getSshChannel(mapepire: Mapepire, connection: IBMi, javaPath: string): Promise<ClientChannel>;
|
|
12
|
+
send<T>(content: ServerRequest): Promise<T>;
|
|
13
|
+
getStatus(): JobStatus;
|
|
14
|
+
/**
|
|
15
|
+
* The same as mapepire-js#connect, but with SSH
|
|
16
|
+
*/
|
|
17
|
+
connectSsh(channel: ClientChannel): Promise<ConnectionResult>;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
private end;
|
|
20
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import IBMi from "../IBMi";
|
|
2
|
-
import { ComponentState, IBMiComponent } from "./component";
|
|
2
|
+
import { ComponentState, IBMiComponent, SecureComponentState } from "./component";
|
|
3
3
|
export declare class IBMiComponentRuntime {
|
|
4
4
|
protected readonly connection: IBMi;
|
|
5
5
|
readonly component: IBMiComponent;
|
|
@@ -8,10 +8,20 @@ export declare class IBMiComponentRuntime {
|
|
|
8
8
|
private cachedInstallDirectory;
|
|
9
9
|
constructor(connection: IBMi, component: IBMiComponent);
|
|
10
10
|
getInstallDirectory(): Promise<string>;
|
|
11
|
-
getState():
|
|
12
|
-
setState(newState:
|
|
13
|
-
overrideState(newState:
|
|
14
|
-
update(
|
|
11
|
+
getState(): SecureComponentState;
|
|
12
|
+
setState(newState: SecureComponentState): Promise<void>;
|
|
13
|
+
overrideState(newState: SecureComponentState): Promise<void>;
|
|
14
|
+
update(): Promise<void>;
|
|
15
15
|
startupCheck(): Promise<this>;
|
|
16
|
+
getCurrentState(): Promise<SecureComponentState>;
|
|
17
|
+
/**
|
|
18
|
+
* Ensure smooth transition for Components not returning a {@link SecureComponentState} yet.
|
|
19
|
+
* Remove once {@link ComponentState} is removed.
|
|
20
|
+
*
|
|
21
|
+
* @param state a deprecated {@link ComponentState} or a {@link SecureComponentState}
|
|
22
|
+
* @returns a {@link SecureComponentState} with a blank signature if `state` is a {@link ComponentState}
|
|
23
|
+
*/
|
|
24
|
+
handleState(state: ComponentState | SecureComponentState): SecureComponentState;
|
|
25
|
+
deprecationWarning(local?: boolean): void;
|
|
16
26
|
toString(): string;
|
|
17
27
|
}
|