artifact-engine 1.2.0 → 1.3.0

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.
Files changed (77) hide show
  1. package/Engine/artifactEngine.d.ts +12 -12
  2. package/Engine/artifactEngine.js +166 -166
  3. package/Engine/artifactEngineOptions.d.ts +8 -8
  4. package/Engine/artifactEngineOptions.js +13 -15
  5. package/Engine/cilogger.d.ts +6 -6
  6. package/Engine/cilogger.js +44 -46
  7. package/Engine/index.d.ts +2 -2
  8. package/Engine/index.js +6 -8
  9. package/Engine/logger.d.ts +13 -13
  10. package/Engine/logger.js +109 -112
  11. package/Engine/worker.d.ts +10 -10
  12. package/Engine/worker.js +49 -51
  13. package/Models/artifactDownloadTicket.d.ts +11 -11
  14. package/Models/artifactDownloadTicket.js +5 -7
  15. package/Models/artifactItem.d.ts +12 -12
  16. package/Models/artifactItem.js +8 -10
  17. package/Models/artifactprovider.d.ts +10 -11
  18. package/Models/artifactprovider.js +2 -3
  19. package/Models/constants.d.ts +3 -3
  20. package/Models/constants.js +6 -8
  21. package/Models/index.d.ts +6 -6
  22. package/Models/index.js +12 -14
  23. package/Models/itemType.d.ts +5 -5
  24. package/Models/itemType.js +8 -10
  25. package/Models/ticketState.d.ts +7 -7
  26. package/Models/ticketState.js +10 -12
  27. package/Providers/filesystemProvider.d.ts +14 -15
  28. package/Providers/filesystemProvider.js +123 -123
  29. package/Providers/index.d.ts +4 -4
  30. package/Providers/index.js +10 -12
  31. package/Providers/stubProvider.d.ts +20 -21
  32. package/Providers/stubProvider.js +85 -88
  33. package/Providers/typed-rest-client/Handlers.d.ts +4 -4
  34. package/Providers/typed-rest-client/Handlers.js +10 -12
  35. package/Providers/typed-rest-client/HttpClient.d.ts +84 -77
  36. package/Providers/typed-rest-client/HttpClient.js +351 -328
  37. package/Providers/typed-rest-client/Index.d.ts +0 -1
  38. package/Providers/typed-rest-client/Index.js +2 -3
  39. package/Providers/typed-rest-client/Interfaces.d.ts +38 -38
  40. package/Providers/typed-rest-client/Interfaces.js +3 -4
  41. package/Providers/typed-rest-client/RestClient.d.ts +73 -27
  42. package/Providers/typed-rest-client/RestClient.js +186 -134
  43. package/Providers/typed-rest-client/Util.d.ts +7 -1
  44. package/Providers/typed-rest-client/Util.js +24 -18
  45. package/Providers/typed-rest-client/handlers/basiccreds.d.ts +9 -9
  46. package/Providers/typed-rest-client/handlers/basiccreds.js +23 -20
  47. package/Providers/typed-rest-client/handlers/bearertoken.d.ts +8 -8
  48. package/Providers/typed-rest-client/handlers/bearertoken.js +22 -19
  49. package/Providers/typed-rest-client/handlers/ntlm.d.ts +13 -13
  50. package/Providers/typed-rest-client/handlers/ntlm.js +115 -96
  51. package/Providers/typed-rest-client/handlers/personalaccesstoken.d.ts +8 -8
  52. package/Providers/typed-rest-client/handlers/personalaccesstoken.js +22 -19
  53. package/Providers/typed-rest-client/opensource/node-http-ntlm/readme.txt +6 -0
  54. package/Providers/webClient.d.ts +8 -8
  55. package/Providers/webClient.js +60 -60
  56. package/Providers/webClientFactory.d.ts +5 -5
  57. package/Providers/webClientFactory.js +59 -55
  58. package/Providers/webProvider.d.ts +21 -22
  59. package/Providers/webProvider.js +120 -116
  60. package/Providers/zipProvider.d.ts +15 -16
  61. package/Providers/zipProvider.js +53 -55
  62. package/Store/artifactItemStore.d.ts +18 -18
  63. package/Store/artifactItemStore.js +94 -96
  64. package/Store/index.d.ts +1 -1
  65. package/Store/index.js +4 -6
  66. package/Strings/resources.resjson/de-DE/resources.resjson +11 -11
  67. package/Strings/resources.resjson/en-US/resources.resjson +11 -11
  68. package/Strings/resources.resjson/es-ES/resources.resjson +11 -11
  69. package/Strings/resources.resjson/fr-FR/resources.resjson +11 -11
  70. package/Strings/resources.resjson/it-IT/resources.resjson +11 -11
  71. package/Strings/resources.resjson/ja-JP/resources.resjson +11 -11
  72. package/Strings/resources.resjson/ko-KR/resources.resjson +11 -11
  73. package/Strings/resources.resjson/ru-RU/resources.resjson +11 -11
  74. package/Strings/resources.resjson/zh-CN/resources.resjson +11 -11
  75. package/Strings/resources.resjson/zh-TW/resources.resjson +11 -11
  76. package/npm-shrinkwrap.json +1 -1
  77. package/package.json +1 -1
@@ -1,55 +1,59 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebClientFactory = void 0;
4
- const fs = require("fs");
5
- const crypto = require("crypto");
6
- const webClient_1 = require("./webClient");
7
- class WebClientFactory {
8
- static getClient(handlers, options) {
9
- options = options || {};
10
- options.keepAlive = true;
11
- this.initializeProxy(options);
12
- return new webClient_1.WebClient(handlers, options);
13
- }
14
- static initializeProxy(options) {
15
- if (!options.proxy || !options.proxy.proxyUrl) {
16
- if (global['_vsts_task_lib_proxy']) {
17
- let proxyFromEnv = {
18
- proxyUrl: global['_vsts_task_lib_proxy_url'],
19
- proxyUsername: global['_vsts_task_lib_proxy_username'],
20
- proxyPassword: this._readTaskLibSecrets(global['_vsts_task_lib_proxy_password']),
21
- proxyBypassHosts: JSON.parse(global['_vsts_task_lib_proxy_bypass'] || "[]"),
22
- };
23
- options.proxy = proxyFromEnv;
24
- }
25
- }
26
- if (!options.cert) {
27
- if (global['_vsts_task_lib_cert']) {
28
- let certFromEnv = {
29
- caFile: global['_vsts_task_lib_cert_ca'],
30
- certFile: global['_vsts_task_lib_cert_clientcert'],
31
- keyFile: global['_vsts_task_lib_cert_key'],
32
- passphrase: this._readTaskLibSecrets(global['_vsts_task_lib_cert_passphrase']),
33
- };
34
- options.cert = certFromEnv;
35
- }
36
- }
37
- if (!options.ignoreSslError) {
38
- options.ignoreSslError = !!global['_vsts_task_lib_skip_cert_validation'];
39
- }
40
- }
41
- static _readTaskLibSecrets(lookupKey) {
42
- if (lookupKey && lookupKey.indexOf(':') > 0) {
43
- let lookupInfo = lookupKey.split(':', 2);
44
- let keyFile = new Buffer(lookupInfo[0], 'base64').toString('utf8');
45
- let encryptKey = new Buffer(fs.readFileSync(keyFile, 'utf8'), 'base64');
46
- let encryptedContent = new Buffer(lookupInfo[1], 'base64').toString('utf8');
47
- let decipher = crypto.createDecipher("aes-256-ctr", encryptKey);
48
- let decryptedContent = decipher.update(encryptedContent, 'hex', 'utf8');
49
- decryptedContent += decipher.final('utf8');
50
- return decryptedContent;
51
- }
52
- }
53
- }
54
- exports.WebClientFactory = WebClientFactory;
55
- //# sourceMappingURL=webClientFactory.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const crypto = require("crypto");
5
+ const webClient_1 = require("./webClient");
6
+ class WebClientFactory {
7
+ static getClient(handlers, options) {
8
+ options = options || {};
9
+ options.keepAlive = true;
10
+ this.initializeProxy(options);
11
+ return new webClient_1.WebClient(handlers, options);
12
+ }
13
+ static initializeProxy(options) {
14
+ // try get proxy setting from environment variable set by azure-pipelines-task-lib if there is no proxy setting in the options
15
+ if (!options.proxy || !options.proxy.proxyUrl) {
16
+ if (global['_vsts_task_lib_proxy']) {
17
+ let proxyFromEnv = {
18
+ proxyUrl: global['_vsts_task_lib_proxy_url'],
19
+ proxyUsername: global['_vsts_task_lib_proxy_username'],
20
+ proxyPassword: this._readTaskLibSecrets(global['_vsts_task_lib_proxy_password']),
21
+ proxyBypassHosts: JSON.parse(global['_vsts_task_lib_proxy_bypass'] || "[]"),
22
+ };
23
+ options.proxy = proxyFromEnv;
24
+ }
25
+ }
26
+ // try get cert setting from environment variable set by azure-pipelines-task-lib if there is no cert setting in the options
27
+ if (!options.cert) {
28
+ if (global['_vsts_task_lib_cert']) {
29
+ let certFromEnv = {
30
+ caFile: global['_vsts_task_lib_cert_ca'],
31
+ certFile: global['_vsts_task_lib_cert_clientcert'],
32
+ keyFile: global['_vsts_task_lib_cert_key'],
33
+ passphrase: this._readTaskLibSecrets(global['_vsts_task_lib_cert_passphrase']),
34
+ };
35
+ options.cert = certFromEnv;
36
+ }
37
+ }
38
+ // try get ignore SSL error setting from environment variable set by azure-pipelines-task-lib if there is no ignore SSL error setting in the options
39
+ if (!options.ignoreSslError) {
40
+ options.ignoreSslError = !!global['_vsts_task_lib_skip_cert_validation'];
41
+ }
42
+ }
43
+ static _readTaskLibSecrets(lookupKey) {
44
+ // the lookupKey should has following format
45
+ // base64encoded<keyFilePath>:base64encoded<encryptedContent>
46
+ if (lookupKey && lookupKey.indexOf(':') > 0) {
47
+ let lookupInfo = lookupKey.split(':', 2);
48
+ // file contains encryption key
49
+ let keyFile = new Buffer(lookupInfo[0], 'base64').toString('utf8');
50
+ let encryptKey = new Buffer(fs.readFileSync(keyFile, 'utf8'), 'base64');
51
+ let encryptedContent = new Buffer(lookupInfo[1], 'base64').toString('utf8');
52
+ let decipher = crypto.createDecipher("aes-256-ctr", encryptKey);
53
+ let decryptedContent = decipher.update(encryptedContent, 'hex', 'utf8');
54
+ decryptedContent += decipher.final('utf8');
55
+ return decryptedContent;
56
+ }
57
+ }
58
+ }
59
+ exports.WebClientFactory = WebClientFactory;
@@ -1,22 +1,21 @@
1
- /// <reference types="node" />
2
- import * as stream from 'stream';
3
- import { ArtifactItem, IArtifactProvider } from '../Models';
4
- import { ArtifactItemStore } from '../Store/artifactItemStore';
5
- import { WebClient } from './webClient';
6
- import { IRequestHandler, IRequestOptions } from './typed-rest-client/Interfaces';
7
- export declare class WebProvider implements IArtifactProvider {
8
- artifactItemStore: ArtifactItemStore;
9
- constructor(rootItemsLocation: any, templateFile: string, variables: any, handler: IRequestHandler, requestOptions?: IRequestOptions);
10
- getRootItems(): Promise<ArtifactItem[]>;
11
- getArtifactItems(artifactItem: ArtifactItem): Promise<ArtifactItem[]>;
12
- getArtifactItem(artifactItem: ArtifactItem): Promise<NodeJS.ReadableStream>;
13
- putArtifactItem(item: ArtifactItem, readStream: stream.Readable): Promise<ArtifactItem>;
14
- dispose(): void;
15
- private getItems;
16
- private getTemplateFilePath;
17
- private extend;
18
- private rootItemsLocation;
19
- private templateFile;
20
- private variables;
21
- webClient: WebClient;
22
- }
1
+ import * as stream from 'stream';
2
+ import { ArtifactItem, IArtifactProvider } from '../Models';
3
+ import { ArtifactItemStore } from '../Store/artifactItemStore';
4
+ import { WebClient } from './webClient';
5
+ import { IRequestHandler, IRequestOptions } from './typed-rest-client/Interfaces';
6
+ export declare class WebProvider implements IArtifactProvider {
7
+ artifactItemStore: ArtifactItemStore;
8
+ constructor(rootItemsLocation: any, templateFile: string, variables: any, handler: IRequestHandler, requestOptions?: IRequestOptions);
9
+ getRootItems(): Promise<ArtifactItem[]>;
10
+ getArtifactItems(artifactItem: ArtifactItem): Promise<ArtifactItem[]>;
11
+ getArtifactItem(artifactItem: ArtifactItem): Promise<NodeJS.ReadableStream>;
12
+ putArtifactItem(item: ArtifactItem, readStream: stream.Readable): Promise<ArtifactItem>;
13
+ dispose(): void;
14
+ private getItems(itemsUrl, contentType);
15
+ private getTemplateFilePath();
16
+ private extend(target, source);
17
+ private rootItemsLocation;
18
+ private templateFile;
19
+ private variables;
20
+ webClient: WebClient;
21
+ }
@@ -1,116 +1,120 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebProvider = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const zlib = require("zlib");
7
- const Models_1 = require("../Models");
8
- const logger_1 = require("../Engine/logger");
9
- const webClientFactory_1 = require("./webClientFactory");
10
- var handlebars = require('handlebars');
11
- var tl = require('azure-pipelines-task-lib/task');
12
- class WebProvider {
13
- constructor(rootItemsLocation, templateFile, variables, handler, requestOptions) {
14
- this.rootItemsLocation = rootItemsLocation;
15
- this.templateFile = templateFile;
16
- this.webClient = webClientFactory_1.WebClientFactory.getClient([handler], requestOptions);
17
- this.variables = variables;
18
- }
19
- getRootItems() {
20
- var rootItem = new Models_1.ArtifactItem();
21
- rootItem.metadata = { downloadUrl: this.rootItemsLocation };
22
- rootItem.path = '';
23
- rootItem.itemType = Models_1.ItemType.Folder;
24
- return Promise.resolve([rootItem]);
25
- }
26
- getArtifactItems(artifactItem) {
27
- var itemsUrl = artifactItem.metadata["downloadUrl"];
28
- var contentType = artifactItem.contentType;
29
- return this.getItems(itemsUrl, contentType);
30
- }
31
- getArtifactItem(artifactItem) {
32
- var promise = new Promise((resolve, reject) => {
33
- if (!artifactItem.metadata || !artifactItem.metadata['downloadUrl']) {
34
- reject("No downloadUrl available to download the item.");
35
- }
36
- var downloadSize = 0;
37
- var contentType = artifactItem.contentType;
38
- var itemUrl = artifactItem.metadata['downloadUrl'];
39
- itemUrl = itemUrl.replace(/([^:]\/)\/+/g, "$1");
40
- this.webClient.get(itemUrl, contentType ? { 'Accept': contentType } : undefined).then((res) => {
41
- res.message.on('data', (chunk) => {
42
- downloadSize += chunk.length;
43
- });
44
- res.message.on('end', () => {
45
- this.artifactItemStore.updateDownloadSize(artifactItem, downloadSize);
46
- });
47
- res.message.on('error', (error) => {
48
- reject(error);
49
- });
50
- if (res.message.headers['content-encoding'] === 'gzip') {
51
- try {
52
- resolve(res.message.pipe(zlib.createUnzip()));
53
- }
54
- catch (err) {
55
- reject(err);
56
- }
57
- }
58
- else {
59
- resolve(res.message);
60
- }
61
- }, (reason) => {
62
- reject(reason);
63
- });
64
- });
65
- return promise;
66
- }
67
- putArtifactItem(item, readStream) {
68
- throw new Error("Not implemented");
69
- }
70
- dispose() {
71
- this.webClient.dispose();
72
- }
73
- getItems(itemsUrl, contentType) {
74
- var promise = new Promise((resolve, reject) => {
75
- itemsUrl = itemsUrl.replace(/([^:]\/)\/+/g, "$1");
76
- this.webClient.get(itemsUrl, contentType ? { 'Accept': contentType } : { 'Accept': 'application/json' }).then((res) => {
77
- res.readBody().then((body) => {
78
- fs.readFile(this.getTemplateFilePath(), 'utf8', (err, templateFileContent) => {
79
- if (err) {
80
- logger_1.Logger.logMessage(err ? JSON.stringify(err) : "");
81
- reject(err);
82
- }
83
- try {
84
- var template = handlebars.compile(templateFileContent);
85
- var response = JSON.parse(body);
86
- var context = this.extend(response, this.variables);
87
- var result = template(context);
88
- var items = JSON.parse(result);
89
- resolve(items);
90
- }
91
- catch (error) {
92
- logger_1.Logger.logMessage(tl.loc("FailedToParseResponse", body, error));
93
- reject(error);
94
- }
95
- });
96
- }, (err) => {
97
- reject(err);
98
- });
99
- }, (err) => {
100
- reject(err);
101
- });
102
- });
103
- return promise;
104
- }
105
- getTemplateFilePath() {
106
- return path.isAbsolute(this.templateFile) ? this.templateFile : path.join(__dirname, this.templateFile);
107
- }
108
- extend(target, source) {
109
- for (var prop in source) {
110
- target[prop] = source[prop];
111
- }
112
- return target;
113
- }
114
- }
115
- exports.WebProvider = WebProvider;
116
- //# sourceMappingURL=webProvider.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+ const zlib = require("zlib");
6
+ const Models_1 = require("../Models");
7
+ const logger_1 = require("../Engine/logger");
8
+ const webClientFactory_1 = require("./webClientFactory");
9
+ var handlebars = require('handlebars');
10
+ var tl = require('azure-pipelines-task-lib/task');
11
+ class WebProvider {
12
+ constructor(rootItemsLocation, templateFile, variables, handler, requestOptions) {
13
+ this.rootItemsLocation = rootItemsLocation;
14
+ this.templateFile = templateFile;
15
+ this.webClient = webClientFactory_1.WebClientFactory.getClient([handler], requestOptions);
16
+ this.variables = variables;
17
+ }
18
+ getRootItems() {
19
+ var rootItem = new Models_1.ArtifactItem();
20
+ rootItem.metadata = { downloadUrl: this.rootItemsLocation };
21
+ rootItem.path = '';
22
+ rootItem.itemType = Models_1.ItemType.Folder;
23
+ return Promise.resolve([rootItem]);
24
+ }
25
+ getArtifactItems(artifactItem) {
26
+ var itemsUrl = artifactItem.metadata["downloadUrl"];
27
+ var contentType = artifactItem.contentType;
28
+ return this.getItems(itemsUrl, contentType);
29
+ }
30
+ getArtifactItem(artifactItem) {
31
+ var promise = new Promise((resolve, reject) => {
32
+ if (!artifactItem.metadata || !artifactItem.metadata['downloadUrl']) {
33
+ reject("No downloadUrl available to download the item.");
34
+ }
35
+ var downloadSize = 0;
36
+ var contentType = artifactItem.contentType;
37
+ var itemUrl = artifactItem.metadata['downloadUrl'];
38
+ var zipStream = null;
39
+ itemUrl = itemUrl.replace(/([^:]\/)\/+/g, "$1");
40
+ this.webClient.get(itemUrl, contentType ? { 'Accept': contentType } : undefined).then((res) => {
41
+ res.message.on('data', (chunk) => {
42
+ downloadSize += chunk.length;
43
+ });
44
+ res.message.on('end', () => {
45
+ this.artifactItemStore.updateDownloadSize(artifactItem, downloadSize);
46
+ });
47
+ res.message.on('error', (error) => {
48
+ if (zipStream) {
49
+ zipStream.destroy(error);
50
+ logger_1.Logger.logMessage(error);
51
+ }
52
+ reject(error);
53
+ });
54
+ if (res.message.headers['content-encoding'] === 'gzip') {
55
+ try {
56
+ zipStream = zlib.createUnzip();
57
+ resolve(res.message.pipe(zipStream));
58
+ }
59
+ catch (err) {
60
+ reject(err);
61
+ }
62
+ }
63
+ else {
64
+ resolve(res.message);
65
+ }
66
+ }, (reason) => {
67
+ reject(reason);
68
+ });
69
+ });
70
+ return promise;
71
+ }
72
+ putArtifactItem(item, readStream) {
73
+ throw new Error("Not implemented");
74
+ }
75
+ dispose() {
76
+ this.webClient.dispose();
77
+ }
78
+ getItems(itemsUrl, contentType) {
79
+ var promise = new Promise((resolve, reject) => {
80
+ itemsUrl = itemsUrl.replace(/([^:]\/)\/+/g, "$1");
81
+ this.webClient.get(itemsUrl, contentType ? { 'Accept': contentType } : { 'Accept': 'application/json' }).then((res) => {
82
+ res.readBody().then((body) => {
83
+ fs.readFile(this.getTemplateFilePath(), 'utf8', (err, templateFileContent) => {
84
+ if (err) {
85
+ logger_1.Logger.logMessage(err ? JSON.stringify(err) : "");
86
+ reject(err);
87
+ }
88
+ try {
89
+ var template = handlebars.compile(templateFileContent);
90
+ var response = JSON.parse(body);
91
+ var context = this.extend(response, this.variables);
92
+ var result = template(context);
93
+ var items = JSON.parse(result);
94
+ resolve(items);
95
+ }
96
+ catch (error) {
97
+ logger_1.Logger.logMessage(tl.loc("FailedToParseResponse", body, error));
98
+ reject(error);
99
+ }
100
+ });
101
+ }, (err) => {
102
+ reject(err);
103
+ });
104
+ }, (err) => {
105
+ reject(err);
106
+ });
107
+ });
108
+ return promise;
109
+ }
110
+ getTemplateFilePath() {
111
+ return path.isAbsolute(this.templateFile) ? this.templateFile : path.join(__dirname, this.templateFile);
112
+ }
113
+ extend(target, source) {
114
+ for (var prop in source) {
115
+ target[prop] = source[prop];
116
+ }
117
+ return target;
118
+ }
119
+ }
120
+ exports.WebProvider = WebProvider;
@@ -1,16 +1,15 @@
1
- /// <reference types="node" />
2
- import { ArtifactItemStore } from '../Store/artifactItemStore';
3
- import { ArtifactItem, IArtifactProvider } from '../Models';
4
- import { WebClient } from './webClient';
5
- import { IRequestHandler, IRequestOptions } from './typed-rest-client/Interfaces';
6
- export declare class ZipProvider implements IArtifactProvider {
7
- artifactItemStore: ArtifactItemStore;
8
- constructor(zipLocation: any, handler: IRequestHandler, requestOptions?: IRequestOptions);
9
- getRootItems(): Promise<ArtifactItem[]>;
10
- getArtifactItems(artifactItem: ArtifactItem): Promise<ArtifactItem[]>;
11
- getArtifactItem(artifactItem: ArtifactItem): Promise<NodeJS.ReadableStream>;
12
- putArtifactItem(artifactItem: ArtifactItem, stream: NodeJS.ReadableStream): Promise<ArtifactItem>;
13
- dispose(): void;
14
- private zipLocation;
15
- webClient: WebClient;
16
- }
1
+ import { ArtifactItemStore } from '../Store/artifactItemStore';
2
+ import { ArtifactItem, IArtifactProvider } from '../Models';
3
+ import { WebClient } from './webClient';
4
+ import { IRequestHandler, IRequestOptions } from './typed-rest-client/Interfaces';
5
+ export declare class ZipProvider implements IArtifactProvider {
6
+ artifactItemStore: ArtifactItemStore;
7
+ constructor(zipLocation: any, handler: IRequestHandler, requestOptions?: IRequestOptions);
8
+ getRootItems(): Promise<ArtifactItem[]>;
9
+ getArtifactItems(artifactItem: ArtifactItem): Promise<ArtifactItem[]>;
10
+ getArtifactItem(artifactItem: ArtifactItem): Promise<NodeJS.ReadableStream>;
11
+ putArtifactItem(artifactItem: ArtifactItem, stream: NodeJS.ReadableStream): Promise<ArtifactItem>;
12
+ dispose(): void;
13
+ private zipLocation;
14
+ webClient: WebClient;
15
+ }
@@ -1,55 +1,53 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZipProvider = void 0;
4
- const Models_1 = require("../Models");
5
- const factory = require("./webClientFactory");
6
- class ZipProvider {
7
- constructor(zipLocation, handler, requestOptions) {
8
- this.zipLocation = zipLocation;
9
- this.webClient = factory.WebClientFactory.getClient([handler], requestOptions);
10
- }
11
- getRootItems() {
12
- var rootItem = new Models_1.ArtifactItem();
13
- rootItem.metadata = { downloadUrl: this.zipLocation };
14
- rootItem.path = '';
15
- rootItem.itemType = Models_1.ItemType.File;
16
- return Promise.resolve([rootItem]);
17
- }
18
- getArtifactItems(artifactItem) {
19
- return null;
20
- }
21
- getArtifactItem(artifactItem) {
22
- var promise = new Promise((resolve, reject) => {
23
- if (!artifactItem.metadata || !artifactItem.metadata['downloadUrl']) {
24
- reject("No downloadUrl available to download the item.");
25
- }
26
- var downloadSize = 0;
27
- var itemUrl = artifactItem.metadata['downloadUrl'];
28
- itemUrl = itemUrl.replace(/([^:]\/)\/+/g, "$1");
29
- this.webClient.get(itemUrl).then((res) => {
30
- res.message.on('data', (chunk) => {
31
- if (chunk) {
32
- downloadSize += chunk.length;
33
- }
34
- });
35
- res.message.on('end', () => {
36
- this.artifactItemStore.updateDownloadSize(artifactItem, downloadSize);
37
- });
38
- res.message.on('error', (error) => {
39
- reject(error);
40
- });
41
- resolve(res.message);
42
- }, (reason) => {
43
- reject(reason);
44
- });
45
- });
46
- return promise;
47
- }
48
- putArtifactItem(artifactItem, stream) {
49
- return null;
50
- }
51
- dispose() {
52
- }
53
- }
54
- exports.ZipProvider = ZipProvider;
55
- //# sourceMappingURL=zipProvider.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Models_1 = require("../Models");
4
+ const factory = require("./webClientFactory");
5
+ class ZipProvider {
6
+ constructor(zipLocation, handler, requestOptions) {
7
+ this.zipLocation = zipLocation;
8
+ this.webClient = factory.WebClientFactory.getClient([handler], requestOptions);
9
+ }
10
+ getRootItems() {
11
+ var rootItem = new Models_1.ArtifactItem();
12
+ rootItem.metadata = { downloadUrl: this.zipLocation };
13
+ rootItem.path = '';
14
+ rootItem.itemType = Models_1.ItemType.File;
15
+ return Promise.resolve([rootItem]);
16
+ }
17
+ getArtifactItems(artifactItem) {
18
+ return null;
19
+ }
20
+ getArtifactItem(artifactItem) {
21
+ var promise = new Promise((resolve, reject) => {
22
+ if (!artifactItem.metadata || !artifactItem.metadata['downloadUrl']) {
23
+ reject("No downloadUrl available to download the item.");
24
+ }
25
+ var downloadSize = 0;
26
+ var itemUrl = artifactItem.metadata['downloadUrl'];
27
+ itemUrl = itemUrl.replace(/([^:]\/)\/+/g, "$1");
28
+ this.webClient.get(itemUrl).then((res) => {
29
+ res.message.on('data', (chunk) => {
30
+ if (chunk) {
31
+ downloadSize += chunk.length;
32
+ }
33
+ });
34
+ res.message.on('end', () => {
35
+ this.artifactItemStore.updateDownloadSize(artifactItem, downloadSize);
36
+ });
37
+ res.message.on('error', (error) => {
38
+ reject(error);
39
+ });
40
+ resolve(res.message);
41
+ }, (reason) => {
42
+ reject(reason);
43
+ });
44
+ });
45
+ return promise;
46
+ }
47
+ putArtifactItem(artifactItem, stream) {
48
+ return null;
49
+ }
50
+ dispose() {
51
+ }
52
+ }
53
+ exports.ZipProvider = ZipProvider;
@@ -1,18 +1,18 @@
1
- import * as models from "../Models";
2
- export declare class ArtifactItemStore {
3
- _downloadTickets: models.ArtifactDownloadTicket[];
4
- _hasDownloadFailed: boolean;
5
- addItem(item: models.ArtifactItem): void;
6
- addItems(items: models.ArtifactItem[]): void;
7
- getTickets(): models.ArtifactDownloadTicket[];
8
- itemsPendingProcessing(): boolean;
9
- getNextItemToProcess(): models.ArtifactItem;
10
- updateState(item: models.ArtifactItem, state: models.TicketState): void;
11
- getRootLocation(): string;
12
- increaseRetryCount(item: models.ArtifactItem): void;
13
- updateDownloadSize(item: models.ArtifactItem, downloadSizeInBytes: number): void;
14
- updateFileSize(item: models.ArtifactItem, fileSizeInBytes: number): void;
15
- size(): number;
16
- flush(): void;
17
- hasDownloadFailed(): boolean;
18
- }
1
+ import * as models from "../Models";
2
+ export declare class ArtifactItemStore {
3
+ _downloadTickets: models.ArtifactDownloadTicket[];
4
+ _hasDownloadFailed: boolean;
5
+ addItem(item: models.ArtifactItem): void;
6
+ addItems(items: models.ArtifactItem[]): void;
7
+ getTickets(): models.ArtifactDownloadTicket[];
8
+ itemsPendingProcessing(): boolean;
9
+ getNextItemToProcess(): models.ArtifactItem;
10
+ updateState(item: models.ArtifactItem, state: models.TicketState): void;
11
+ getRootLocation(): string;
12
+ increaseRetryCount(item: models.ArtifactItem): void;
13
+ updateDownloadSize(item: models.ArtifactItem, downloadSizeInBytes: number): void;
14
+ updateFileSize(item: models.ArtifactItem, fileSizeInBytes: number): void;
15
+ size(): number;
16
+ flush(): void;
17
+ hasDownloadFailed(): boolean;
18
+ }