@iobroker/js-controller-common 4.0.21 → 4.1.0-alpha.12-20220314-28d0dece

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.
@@ -0,0 +1,568 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="iobroker" />
3
+ import { ChildProcessPromise } from 'promisify-child-process';
4
+ import { CommandResult } from '@alcalzone/pak';
5
+ import type { ExecOptions } from 'child_process';
6
+ export declare enum ERRORS {
7
+ ERROR_NOT_FOUND = "Not exists",
8
+ ERROR_EMPTY_OBJECT = "null object",
9
+ ERROR_NO_OBJECT = "no object",
10
+ ERROR_DB_CLOSED = "DB closed"
11
+ }
12
+ /** All characters that may not appear in an object ID. */
13
+ export declare const FORBIDDEN_CHARS: RegExp;
14
+ /**
15
+ * Checks the flag nonEdit and restores non-changeable values if required
16
+ *
17
+ * @alias checkNonEditable
18
+ * @memberof tools
19
+ * @param oldObject source object
20
+ * @param newObject destination object
21
+ *
22
+ */
23
+ export declare function checkNonEditable(oldObject: Record<string, any>, newObject: Record<string, any>): boolean;
24
+ /**
25
+ * @param repoVersion
26
+ * @param installedVersion
27
+ * @throws {Error} if version is invalid
28
+ */
29
+ export declare function upToDate(repoVersion: string, installedVersion: string): boolean;
30
+ export declare function decryptPhrase(password: string, data: any, callback: (decrypted?: null | string) => void): void;
31
+ /**
32
+ * Checks if multiple host objects exists, without using object views
33
+ *
34
+ * @param objects the objects db
35
+ * @return true if only one host object exists
36
+ */
37
+ export declare function isSingleHost(objects: any): Promise<boolean>;
38
+ /**
39
+ * Checks if at least one host is running in a MH environment
40
+ *
41
+ * @param objects the objects db
42
+ * @param states the states db
43
+ * @return true if one or more hosts running else false
44
+ */
45
+ export declare function isHostRunning(objects: any, states: any): Promise<boolean>;
46
+ export declare const appName: string;
47
+ export declare function rmdirRecursiveSync(path: string): void;
48
+ export declare function findIPs(): string[];
49
+ /**
50
+ * Checks if we are running inside a docker container
51
+ */
52
+ export declare function isDocker(): boolean;
53
+ /**
54
+ * Generates a new uuid if non existing
55
+ *
56
+ * @param objects - objects DB
57
+ * @return uuid if successfully created/updated
58
+ */
59
+ export declare function createUuid(objects: any): Promise<void | string>;
60
+ export declare function getFile(urlOrPath: string, fileName: string, callback: (file?: string) => void): Promise<void>;
61
+ export declare function getJson(urlOrPath: string, agent: string, callback: (sources?: Record<string, any> | null, urlOrPath?: string | null) => void): Promise<void>;
62
+ /**
63
+ * Return content of the json file. Download it or read directly
64
+ * @param urlOrPath URL where the json file could be found
65
+ * @param agent optional agent identifier like "Windows Chrome 12.56"
66
+ * @returns json object
67
+ */
68
+ export declare function getJsonAsync(urlOrPath: string, agent: string): Promise<Record<string, any> | null>;
69
+ export interface AdapterInformation {
70
+ /** this flag is only true for the js-controller */
71
+ controller: boolean;
72
+ /** adapter version **/
73
+ version: string;
74
+ /** path to icon of the adapter */
75
+ icon: string;
76
+ /** path to local icon of the adater */
77
+ localIcon: string;
78
+ /** title of the adapter */
79
+ title: string;
80
+ /** title of the adapter in multiple languages */
81
+ titleLang: Multilingual;
82
+ /** description of the adapter in multiple languages */
83
+ desc: Multilingual;
84
+ /** platform of the adapter */
85
+ platform: 'Javascript/Node.js';
86
+ /** keywords of the adapter */
87
+ keywords: string[];
88
+ /** path to readme file */
89
+ readme: string;
90
+ /** type of the adapter */
91
+ type: string;
92
+ /** license of the adapter */
93
+ license: string;
94
+ /** url to license information */
95
+ licenseUrl?: string;
96
+ }
97
+ interface Multilingual {
98
+ en: string;
99
+ de?: string;
100
+ ru?: string;
101
+ pt?: string;
102
+ nl?: string;
103
+ fr?: string;
104
+ it?: string;
105
+ es?: string;
106
+ pl?: string;
107
+ 'zh-cn'?: string;
108
+ }
109
+ export interface GetInstalledInfoReponse {
110
+ controller?: boolean;
111
+ version?: string;
112
+ icon?: string;
113
+ title?: string;
114
+ titleLang?: Multilingual;
115
+ desc?: Multilingual;
116
+ platform?: string;
117
+ keywords?: string[];
118
+ readme?: string;
119
+ runningVersion?: string;
120
+ license?: string;
121
+ licenseUrl?: string;
122
+ }
123
+ /**
124
+ * Get list of all installed adapters and controller version on this host
125
+ * @param hostRunningVersion Version of the running js-controller, will be included in the returned information if provided
126
+ * @returns object containing information about installed host
127
+ */
128
+ export declare function getInstalledInfo(hostRunningVersion?: string): GetInstalledInfoReponse;
129
+ /**
130
+ * Get list of all adapters and controller in some repository file or in /conf/source-dist.json
131
+ *
132
+ * @alias getRepositoryFile
133
+ * @memberof tools
134
+ * @param urlOrPath URL starting with http:// or https:// or local file link
135
+ * @param additionalInfo destination object
136
+ * @param callback function (err, sources, actualHash) { }
137
+ *
138
+ */
139
+ export declare function getRepositoryFile(urlOrPath: string, additionalInfo: Record<string, any>, callback: (err?: Error | null, sources?: Record<string, any>, actualHash?: string | number | undefined) => void): void;
140
+ export interface RepositoryFile {
141
+ json: Record<string, any>;
142
+ changed: boolean;
143
+ hash: string;
144
+ }
145
+ /**
146
+ * Read on repository
147
+ *
148
+ * @alias getRepositoryFileAsync
149
+ * @memberof tools
150
+ * @param url URL starting with http:// or https:// or local file link
151
+ * @param hash actual hash
152
+ * @param force Force repository update despite on hash
153
+ * @param _actualRepo Actual repository
154
+ *
155
+ */
156
+ export declare function getRepositoryFileAsync(url: string, hash: string, force: boolean, _actualRepo: RepositoryFile): Promise<RepositoryFile>;
157
+ /**
158
+ * Sends the given object to the diagnosis server
159
+ *
160
+ * @param obj - diagnosis object
161
+ */
162
+ export declare function sendDiagInfo(obj: Record<string, any>): Promise<void>;
163
+ /**
164
+ * Finds the adapter directory of a given adapter
165
+ *
166
+ * @alias getAdapterDir
167
+ * @memberof tools
168
+ * @param adapter name of the adapter, e.g. hm-rpc
169
+ * @returns path to adapter directory or null if no directory found
170
+ */
171
+ export declare function getAdapterDir(adapter: string): string | null;
172
+ /**
173
+ * Returns the hostname of this host
174
+ * @alias getHostName
175
+ */
176
+ export declare function getHostName(): string;
177
+ export interface InstallNodeModuleOptions {
178
+ unsafePerm?: boolean;
179
+ debug?: boolean;
180
+ cwd?: string;
181
+ }
182
+ /**
183
+ * Installs a node module using npm or a similar package manager
184
+ * @param npmUrl Which node module to install
185
+ * @param options Options for the installation
186
+ */
187
+ export declare function installNodeModule(npmUrl: string, options?: InstallNodeModuleOptions): Promise<CommandResult>;
188
+ export interface UninstallNodeModuleOptions {
189
+ debug?: boolean;
190
+ cwd?: string;
191
+ }
192
+ /**
193
+ * Uninstalls a node module using npm or a similar package manager
194
+ * @param packageName Which node module to uninstall
195
+ * @param options Options for the installation
196
+ */
197
+ export declare function uninstallNodeModule(packageName: string, options?: UninstallNodeModuleOptions): Promise<CommandResult>;
198
+ export interface RebuildNodeModulesOptions {
199
+ debug?: boolean;
200
+ cwd?: string;
201
+ module?: string;
202
+ }
203
+ /**
204
+ * Rebuilds all native node_modules that are dependencies of the project in the current working directory / project root.
205
+ * If `options.cwd` is given, the directory must contain a lockfile.
206
+ * @param options Options for the rebuild
207
+ */
208
+ export declare function rebuildNodeModules(options?: RebuildNodeModulesOptions): Promise<CommandResult>;
209
+ export interface GetDiskInfoResponse {
210
+ 'Disk size': number;
211
+ 'Disk free': number;
212
+ }
213
+ /**
214
+ * Read disk free space
215
+ *
216
+ * @alias getDiskInfo
217
+ * @memberof Tools
218
+ * @param platform result of os.platform() (win32 => Windows, darwin => OSX)
219
+ * @param callback return result
220
+ * <pre><code>
221
+ * function (err, infos) {
222
+ * adapter.log.debug('Disks sizes is: ' + info['Disk size'] + ' - ' + info['Disk free']);
223
+ * }
224
+ * </code></pre>
225
+ */
226
+ export declare function getDiskInfo(platform: NodeJS.Platform, callback: (err?: Error | null, infos?: null | GetDiskInfoResponse) => void): void;
227
+ /**
228
+ * Returns information about a certificate
229
+ *
230
+ *
231
+ * Following info will be returned:
232
+ * - certificate: the certificate itself
233
+ * - serialNumber: serial number
234
+ * - signature: type of signature as text like "RSA",
235
+ * - keyLength: bits used for encryption key like 2048
236
+ * - issuer: issuer of the certificate
237
+ * - subject: subject that is signed
238
+ * - dnsNames: server name this certificate belong to
239
+ * - keyUsage: this certificate can be used for the followinf puposes
240
+ * - extKeyUsage: usable or client, server or ...
241
+ * - validityNotBefore: certificate validity start datetime
242
+ * - validityNotAfter: certificate validity end datetime
243
+ *
244
+ * @alias getCertificateInfo
245
+ * @memberof Tools
246
+ * @param cert
247
+ * @return certificate information object
248
+ */
249
+ export declare function getCertificateInfo(cert: string): null | Record<string, any>;
250
+ export interface DefaultCertificates {
251
+ defaultPrivate: string;
252
+ defaultPublic: string;
253
+ }
254
+ /**
255
+ * Returns default SSL certificates (private and public)
256
+ *
257
+ *
258
+ * Following info will be returned:
259
+ * - defaultPrivate: private RSA key
260
+ * - defaultPublic: public certificate
261
+ *
262
+ * @alias generateDefaultCertificates
263
+ * @memberof Tools
264
+ * <pre><code>
265
+ * const certificates = tools.generateDefaultCertificates();
266
+ * </code></pre>
267
+ */
268
+ export declare function generateDefaultCertificates(): DefaultCertificates;
269
+ /**
270
+ * Collects information about host and available adapters
271
+ *
272
+ * Following info will be collected:
273
+ * - available adapters
274
+ * - node.js --version
275
+ * - npm --version
276
+ *
277
+ * @alias getHostInfo
278
+ * @memberof Tools
279
+ * @param objects db
280
+ * @param callback
281
+ * <pre><code>
282
+ * function (result) {
283
+ * adapter.log.debug('Info about host: ' + JSON.stringify(result, null, 2);
284
+ * }
285
+ * </code></pre>
286
+ */
287
+ export declare function getHostInfo(objects: any, callback: (result?: Record<string, any>) => void): Promise<Record<string, any>>;
288
+ /**
289
+ * Finds the controller root directory
290
+ * @returns absolute path to controller dir
291
+ */
292
+ export declare function getControllerDir(): string;
293
+ export declare function getDefaultDataDir(): string;
294
+ /**
295
+ * Returns the path of the config file
296
+ */
297
+ export declare function getConfigFileName(): string;
298
+ /**
299
+ * Promisifies a function which returns an error as the first argument in its callback
300
+ * @param fn The function to promisify
301
+ * @param context (optional) The context (value of `this` to bind the function to)
302
+ * @param returnArgNames (optional) If the callback contains multiple arguments,
303
+ * you can combine them into one object by passing the names as an array.
304
+ * Otherwise the Promise will resolve with an array
305
+ */
306
+ export declare function promisify(fn: (...args: any[]) => void, context?: any, returnArgNames?: string[]): (...args: any[]) => Promise<any>;
307
+ /**
308
+ * Promisifies a function which does not provide an error as the first argument in its callback
309
+ * @param fn The function to promisify
310
+ * @param context (optional) The context (value of `this` to bind the function to)
311
+ * @param returnArgNames (optional) If the callback contains multiple arguments,
312
+ * you can combine them into one object by passing the names as an array.
313
+ * Otherwise the Promise will resolve with an array
314
+ */
315
+ export declare function promisifyNoError(fn: (...args: any[]) => void, context?: any, returnArgNames?: string[]): (...args: any[]) => Promise<any>;
316
+ /**
317
+ * Creates and executes an array of promises in sequence
318
+ * @param promiseFactories An array of promise-returning functions
319
+ */
320
+ export declare function promiseSequence(promiseFactories: ((...args: any[]) => Promise<any>)[]): any[];
321
+ export declare function setQualityForInstance(objects: any, states: any, namespace: string, q: number): Promise<void>;
322
+ /**
323
+ * Converts ioB pattern into regex.
324
+ * @param pattern - Regex string to use it in new RegExp(pattern)
325
+ */
326
+ export declare function pattern2RegEx(pattern: string): string;
327
+ /**
328
+ * Appends the stack trace generated by `captureStackTrace` to the given string
329
+ * @param str - The string to append the stack trace to
330
+ */
331
+ export declare function appendStackTrace(str: string): string;
332
+ /**
333
+ * encrypts a value by a given key via AES-192-CBC
334
+ *
335
+ * @param key - Secret key
336
+ * @param value - value to decrypt
337
+ */
338
+ export declare function encrypt(key: string, value: string): string;
339
+ /**
340
+ * encrypts a value by a given key via AES-192-CBC
341
+ *
342
+ * @param key - Secret key
343
+ * @param value - value to decrypt
344
+ */
345
+ export declare function decrypt(key: string, value: string): string;
346
+ /**
347
+ * Tests whether the given variable is a real object and not an Array
348
+ * @param it The variable to test
349
+ * @returns true if it is Record<string, any>
350
+ */
351
+ export declare function isObject(it: any): it is Record<string, any>;
352
+ /**
353
+ * Tests whether the given variable is really an Array
354
+ * @param it The variable to test
355
+ */
356
+ export declare function isArray(it: any): it is any[];
357
+ /**
358
+ * Measure the Node.js event loop lag and repeatedly call the provided callback function with the updated results
359
+ * @param ms The number of milliseconds for monitoring
360
+ * @param cb Callback function to call for each new value
361
+ */
362
+ export declare function measureEventLoopLag(ms: number, cb: (eventLoopLag?: number) => void): void;
363
+ /**
364
+ * This function convert state values by read and write of aliases. Function is synchron.
365
+ *
366
+ * @param sourceObj
367
+ * @param targetObj
368
+ * @param state Object with val, ack and so on
369
+ * @param logger Logging object
370
+ * @param logNamespace optional Logging namespace
371
+ */
372
+ export declare function formatAliasValue(sourceObj: Record<string, any>, targetObj: Record<string, any>, state: Record<string, any>, logger: any, logNamespace?: string): Record<string, any> | null;
373
+ /**
374
+ * remove given id from all enums
375
+ *
376
+ * @alias removeIdFromAllEnums
377
+ * @memberof tools
378
+ * @param objects object to access objects db
379
+ * @param id the object id which will be deleted from enums
380
+ * @param allEnums objects with all enums to use - if not provided all enums will be queried
381
+ * @returns Promise All objects are tried to be updated - reject will happen as soon as one fails with the error of the first fail
382
+ *
383
+ */
384
+ export declare function removeIdFromAllEnums(objects: any, id: string, allEnums?: Record<string, any>): Promise<void>;
385
+ /**
386
+ * Parses dependencies to standardized object of form
387
+ *
388
+ * @alias parseDependencies
389
+ * @memberof tools
390
+ * @param dependencies dependencies array or single dependency
391
+ * @returns parsedDeps parsed dependencies
392
+ */
393
+ export declare function parseDependencies(dependencies: string[] | Record<string, string>[] | string | Record<string, string>): Record<string, string>;
394
+ /**
395
+ * Validates types of obj.common properties and object.type, if invalid types are used, an error is thrown.
396
+ * If attributes of obj.common are not provided, no error is thrown. obj.type has to be there and has to be valid.
397
+ *
398
+ * @param obj an object which will be validated
399
+ * @param extend (optional) if true checks will allow more optional cases for extendObject calls
400
+ * @throws Error if a property has the wrong type or obj.type is non existing
401
+ */
402
+ export declare function validateGeneralObjectProperties(obj: any, extend?: boolean): void;
403
+ /**
404
+ * get all instances of all adapters in the list
405
+ *
406
+ * @alias getAllInstances
407
+ * @memberof tools
408
+ * @param adapters list of adapter names to get instances for
409
+ * @param objects class redis objects
410
+ * @returns array of IDs
411
+ */
412
+ export declare function getAllInstances(adapters: string[], objects: any): Promise<string[]>;
413
+ export interface GetObjectViewResult {
414
+ rows: ioBroker.GetObjectViewItem<ioBroker.Object>[];
415
+ }
416
+ export interface GetObjectViewInstanceEntry {
417
+ id: string;
418
+ value: ioBroker.InstanceObject;
419
+ }
420
+ export interface GetObjectViewInstanceResult {
421
+ rows: GetObjectViewInstanceEntry[];
422
+ }
423
+ /**
424
+ * Get all existing enums
425
+ *
426
+ * @param objects - objects db
427
+ * @returns Promise
428
+ */
429
+ export declare function getAllEnums(objects: any): Promise<Record<string, any>>;
430
+ /**
431
+ * get async all instances of one adapter
432
+ *
433
+ * @alias getInstances
434
+ * @param adapter name of the adapter
435
+ * @param objects objects DB
436
+ * @param withObjects return objects instead of only ids
437
+ */
438
+ export declare function getInstances(adapter: string, objects: any, withObjects: boolean): Promise<any[] | string[]>;
439
+ /**
440
+ * Checks if the given callback is a function and if so calls it with the given parameter immediately, else a resolved Promise is returned
441
+ *
442
+ * @param callback - callback function to be executed
443
+ * @param args - as many arguments as needed, which will be returned by the callback function or by the Promise
444
+ * @returns if Promise is resolved with multiple arguments, an array is returned
445
+ */
446
+ export declare function maybeCallback(callback?: (...args: any[]) => void | null | undefined, ...args: any[]): Promise<any> | void;
447
+ /**
448
+ * Checks if the given callback is a function and if so calls it with the given error and parameter immediately, else a resolved or rejected Promise is returned. Error ERROR_DB_CLOSED are not rejecting the promise
449
+ *
450
+ * @param callback - callback function to be executed
451
+ * @param error - error which will be used by the callback function. If callback is not a function and
452
+ * error is given, a rejected Promise is returned. If error is given but it is not an instance of Error, it is converted into one.
453
+ * @param args - as many arguments as needed, which will be returned by the callback function or by the Promise
454
+ * @returns if Promise is resolved with multiple arguments, an array is returned
455
+ */
456
+ export declare function maybeCallbackWithError(callback: ((error: Error | null | undefined, ...args: any[]) => void) | null | undefined, error: Error | string | null | undefined, ...args: any[]): Promise<any> | void;
457
+ /**
458
+ * Executes a command asynchronously. On success, the promise resolves with stdout and stderr.
459
+ * On error, the promise rejects with the exit code or signal, as well as stdout and stderr.
460
+ * @param command The command to execute
461
+ * @param execOptions The options for child_process.exec
462
+ * @returns child process promise
463
+ */
464
+ export declare function execAsync(command: string, execOptions?: ExecOptions): ChildProcessPromise;
465
+ /**
466
+ * Takes input from one stream and writes it to another as soon as a complete line was read.
467
+ * @param input The stream to read from
468
+ * @param output The stream to write into
469
+ */
470
+ export declare function pipeLinewise(input: NodeJS.ReadableStream, output: NodeJS.WritableStream): void;
471
+ /**
472
+ * Find the adapter main file as full path
473
+ *
474
+ * @memberof tools
475
+ * @param adapter - adapter name of the adapter, e.g. hm-rpc
476
+ * @returns full file name
477
+ */
478
+ export declare function resolveAdapterMainFile(adapter: string): Promise<string>;
479
+ /**
480
+ * Returns the default nodeArgs required to execute the main file, e.g. transpile hooks for TypeScript
481
+ * @param mainFile
482
+ * @returns default node args for cli
483
+ */
484
+ export declare function getDefaultNodeArgs(mainFile: string): string[];
485
+ /**
486
+ * Tests if the given URL matches the format <githubname>/<githubrepo>[#<commit-ish>]
487
+ * @param url The URL to parse
488
+ */
489
+ export declare function isShortGithubUrl(url: string): boolean;
490
+ export interface ParsedGithubUrl {
491
+ user: string;
492
+ repo: string;
493
+ commit?: string;
494
+ }
495
+ /**
496
+ * Tries to parse an URL in the format <githubname>/<githubrepo>[#<commit-ish>] into its separate parts
497
+ * @param url The URL to parse
498
+ */
499
+ export declare function parseShortGithubUrl(url: string): ParsedGithubUrl | null;
500
+ /**
501
+ * Tests if the given pathname matches the format /<githubname>/<githubrepo>[.git][/<tarball|tree|archive>/<commit-ish>[.zip|.gz]]
502
+ * @param pathname The pathname part of a Github URL
503
+ */
504
+ export declare function isGithubPathname(pathname: string): boolean;
505
+ /**
506
+ * Tries to a github pathname format /<githubname>/<githubrepo>[.git][/<tarball|tree|archive>/<commit-ish>[.zip|.gz|.tar.gz]] into its separate parts
507
+ * @param pathname The pathname part of a Github URL
508
+ */
509
+ export declare function parseGithubPathname(pathname: string): ParsedGithubUrl | null;
510
+ /**
511
+ * Removes properties which are given by preserve
512
+ * @param preserve - object which has true entries (or array of selected attributes) for all attributes which should be removed from currObj
513
+ * @param oldObj - old object
514
+ * @param newObj - new object
515
+ */
516
+ export declare function removePreservedProperties(preserve: Record<string, any>, oldObj: Record<string, any>, newObj: Record<string, any>): void;
517
+ /**
518
+ * Returns the array of system.adapter.<namespace>.* objects which are created for every instance
519
+ *
520
+ * @param namespace - adapter namespace + id, e.g. hm-rpc.0
521
+ * @param createWakeup - indicator to create wakeup object too
522
+ */
523
+ export declare function getInstanceIndicatorObjects(namespace: string, createWakeup: boolean): ioBroker.StateObject[];
524
+ export declare function getLogger(log: any): Record<string, (msg: string) => void>;
525
+ export interface OrderedInstancesObject {
526
+ 1: ioBroker.InstanceObject[];
527
+ 2: ioBroker.InstanceObject[];
528
+ 3: ioBroker.InstanceObject[];
529
+ admin: ioBroker.InstanceObject[];
530
+ }
531
+ /**
532
+ * Get ordered instances according to tier level
533
+ *
534
+ * @param objects - Objects DB
535
+ * @param logger - logger object
536
+ * @param logPrefix prefix for logging
537
+ */
538
+ export declare function getInstancesOrderedByStartPrio(objects: any, logger: any, logPrefix?: string): Promise<Record<string, any>[]>;
539
+ /**
540
+ * Set capabilities of the given executable on Linux systems
541
+ * @param execPath - path to the executable for node you can determine it via process.execPath
542
+ * @param capabilities - capabilities to set, e.g. ['cap_net_admin', 'cap_net_bind_service']
543
+ * @param modeEffective - add effective mode
544
+ * @param modePermitted - add permitted mode
545
+ * @param modeInherited - add inherited mode
546
+ */
547
+ export declare function setExecutableCapabilities(execPath: string, capabilities: string[], modeEffective?: boolean, modePermitted?: boolean, modeInherited?: boolean): Promise<void>;
548
+ /**
549
+ * Reads the licenses from iobroker.net
550
+ * Reads the licenses from iobroker.net and if no login/password provided stores it in system.licenses
551
+ * @param objects Object store instance
552
+ * @param login Login for ioBroker.net
553
+ * @param password Decoded password for ioBroker.net
554
+ * @returns array of all licenses stored on iobroker.net
555
+ */
556
+ export declare function updateLicenses(objects: any, login: string, password: string): Promise<any[]>;
557
+ export interface GZipFileOptions {
558
+ deleteInput?: boolean;
559
+ }
560
+ /**
561
+ * Compresses an input file using GZip and writes it somewhere else
562
+ * @param inputFilename The filename of the input file that should be gzipped
563
+ * @param outputFilename The filename of the output file where the gzipped content should be written to
564
+ * @param options Options for the compression
565
+ */
566
+ export declare function compressFileGZip(inputFilename: string, outputFilename: string, options?: GZipFileOptions): Promise<void>;
567
+ export {};
568
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/lib/common/tools.ts"],"names":[],"mappings":"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"}