build-strap 4.0.0-dev.46 → 4.0.0-dev.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.
Files changed (107) hide show
  1. package/README.md +3 -34
  2. package/ant.d.ts +19 -0
  3. package/ant.js +12 -37
  4. package/cert.d.ts +12 -0
  5. package/cert.js +89 -151
  6. package/clean.d.ts +4 -0
  7. package/clean.js +7 -16
  8. package/copy.d.ts +7 -0
  9. package/copy.js +49 -76
  10. package/cp.d.ts +17 -0
  11. package/cp.js +85 -170
  12. package/docker.container.d.ts +73 -0
  13. package/docker.container.js +219 -362
  14. package/docker.d.ts +68 -0
  15. package/docker.js +167 -344
  16. package/docker.network.d.ts +42 -0
  17. package/docker.network.js +69 -144
  18. package/docker.volume.d.ts +26 -0
  19. package/docker.volume.js +52 -126
  20. package/dockerCleanup.d.ts +38 -0
  21. package/dockerCleanup.js +66 -141
  22. package/dockerCompose.d.ts +154 -0
  23. package/dockerCompose.js +400 -727
  24. package/fs.d.ts +5 -0
  25. package/fs.js +38 -95
  26. package/git.d.ts +9 -0
  27. package/git.js +19 -30
  28. package/index.d.ts +20 -0
  29. package/index.js +20 -27
  30. package/maps.d.ts +33 -0
  31. package/maps.js +16 -87
  32. package/npm.d.ts +48 -0
  33. package/npm.js +131 -135
  34. package/package.json +23 -19
  35. package/pkg.d.ts +39 -0
  36. package/pkg.js +26 -74
  37. package/publish.d.ts +27 -0
  38. package/publish.js +52 -140
  39. package/run.d.ts +13 -0
  40. package/run.js +39 -85
  41. package/tgz.d.ts +13 -0
  42. package/tgz.js +61 -96
  43. package/version.d.ts +34 -0
  44. package/version.js +86 -128
  45. package/yarn.d.ts +44 -0
  46. package/yarn.js +150 -119
  47. package/ant.js.flow +0 -42
  48. package/artifactory.js +0 -617
  49. package/artifactory.js.flow +0 -616
  50. package/cert.conf +0 -20
  51. package/cert.js.flow +0 -152
  52. package/clean.js.flow +0 -19
  53. package/copy.js.flow +0 -79
  54. package/cp.js.flow +0 -172
  55. package/docker.container.js.flow +0 -389
  56. package/docker.js.flow +0 -364
  57. package/docker.network.js.flow +0 -159
  58. package/docker.volume.js.flow +0 -136
  59. package/dockerCleanup.js.flow +0 -151
  60. package/dockerCompose.js.flow +0 -765
  61. package/flow.js +0 -21
  62. package/flow.js.flow +0 -20
  63. package/fs.js.flow +0 -96
  64. package/git.js.flow +0 -34
  65. package/hg.js +0 -35
  66. package/hg.js.flow +0 -34
  67. package/index.js.flow +0 -26
  68. package/inline-resources.js +0 -158
  69. package/inline-resources.js.flow +0 -157
  70. package/maps.js.flow +0 -111
  71. package/npm.js.flow +0 -144
  72. package/pkg.js.flow +0 -80
  73. package/publish.js.flow +0 -144
  74. package/run.js.flow +0 -89
  75. package/src/ant.js +0 -42
  76. package/src/artifactory.js +0 -616
  77. package/src/cert.conf +0 -20
  78. package/src/cert.js +0 -152
  79. package/src/clean.js +0 -19
  80. package/src/copy.js +0 -79
  81. package/src/cp.js +0 -172
  82. package/src/docker.container.js +0 -389
  83. package/src/docker.js +0 -364
  84. package/src/docker.network.js +0 -159
  85. package/src/docker.volume.js +0 -136
  86. package/src/dockerCleanup.js +0 -151
  87. package/src/dockerCompose.js +0 -765
  88. package/src/flow.js +0 -20
  89. package/src/fs.js +0 -96
  90. package/src/git.js +0 -34
  91. package/src/hg.js +0 -34
  92. package/src/index.js +0 -26
  93. package/src/inline-resources.js +0 -157
  94. package/src/maps.js +0 -111
  95. package/src/npm.js +0 -144
  96. package/src/pkg.js +0 -80
  97. package/src/publish.js +0 -144
  98. package/src/run.js +0 -89
  99. package/src/test.js +0 -55
  100. package/src/tgz.js +0 -101
  101. package/src/version.js +0 -142
  102. package/src/yarn.js +0 -123
  103. package/test.js +0 -56
  104. package/test.js.flow +0 -55
  105. package/tgz.js.flow +0 -101
  106. package/version.js.flow +0 -142
  107. package/yarn.js.flow +0 -123
@@ -0,0 +1,42 @@
1
+ export interface DockerNetwork {
2
+ IPv6: boolean;
3
+ created: Date;
4
+ driver: string;
5
+ exists: () => Promise<boolean>;
6
+ id: string;
7
+ labels: string[];
8
+ name: string;
9
+ rm: () => Promise<void>;
10
+ scope: string;
11
+ }
12
+ interface DockerNetworkLsOptions {
13
+ filter?: (network: DockerNetwork) => boolean;
14
+ }
15
+ export declare function unthrottledDockerNetworkLs({ filter, }?: DockerNetworkLsOptions): Promise<DockerNetwork[]>;
16
+ export declare const dockerNetworkLs: (options?: DockerNetworkLsOptions) => Promise<DockerNetwork[]> | undefined;
17
+ export declare function dockerNetworkFind(networkName: string, options?: DockerNetworkLsOptions): Promise<DockerNetwork | null>;
18
+ export interface DockerNetworkCreateOptions {
19
+ auxAddresses?: string[];
20
+ driver?: string;
21
+ driverOpts?: Record<string, string>;
22
+ gateways?: string[];
23
+ ingress?: boolean;
24
+ internal?: boolean;
25
+ ipRange?: string;
26
+ ipv6?: boolean;
27
+ labels?: string[];
28
+ subnets?: string[];
29
+ }
30
+ export declare function dockerNetworkCreate(networkName: string, { driver, driverOpts, ipRange, gateways, subnets, auxAddresses, ingress, internal, ipv6, labels, }?: DockerNetworkCreateOptions): Promise<DockerNetwork | null>;
31
+ /**
32
+ * Removes a network by id
33
+ * @param {string} id The id of the network
34
+ */
35
+ export declare function dockerNetworkRm(id: string): Promise<void>;
36
+ /**
37
+ * Removes all networks with the given name
38
+ * @param {string} networkName The name of the network
39
+ */
40
+ export declare function dockerNetworkDelete(networkName: string): Promise<void>;
41
+ export declare function dockerNetworkConnect(networkName: string, containerId: string, alias?: string | null): Promise<void>;
42
+ export {};
package/docker.network.js CHANGED
@@ -1,160 +1,85 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports._dockerNetworkLs = _dockerNetworkLs;exports.dockerNetworkConnect = dockerNetworkConnect;exports.dockerNetworkCreate = dockerNetworkCreate;exports.dockerNetworkDelete = dockerNetworkDelete;exports.dockerNetworkFind = dockerNetworkFind;exports.dockerNetworkLs = void 0;exports.dockerNetworkRm = dockerNetworkRm;
2
- var _throttle = _interopRequireDefault(require("lodash/throttle"));
3
- var _cp = require("./cp");
4
- var _docker = require("./docker");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
1
+ import { throttle } from 'lodash-es';
2
+ import { spawn } from './cp.js';
3
+ import { parseDockerDate } from './docker.js';
22
4
  // calling this function in rapid succession can lead to errors.
23
5
  // prefer throttled version
24
- async function _dockerNetworkLs({
25
- filter } =
26
- {}) {
27
- return (
28
- await (0, _cp.spawn)('docker', ['network', 'ls', '--format', '{{json .}}'], {
29
- captureOutput: true })).
30
-
31
-
32
- split('\n').
33
- filter((line) => !!line.trim()).
34
- map((line) => {
35
- const {
36
- ID: id,
37
- Name: name,
38
- Driver: driver,
39
- Scope: scope,
40
- CreatedAt,
41
- IPv6,
42
- Labels } =
43
- JSON.parse(line.trim());
44
- return {
45
- id,
46
- name,
47
- driver,
48
- scope,
49
- created: (0, _docker.parseDockerDate)(CreatedAt),
50
- IPv6: IPv6 === 'true',
51
- labels: Labels.split(',').map((l) => l.trim()),
52
- exists: async () => !!(await dockerNetworkFind(id)),
53
- rm: async () => dockerNetworkRm(id) };
54
-
55
- }).
56
- filter((n) => n.id && (typeof filter === 'function' ? filter(n) : true));
6
+ export async function unthrottledDockerNetworkLs({ filter, } = {}) {
7
+ return (await spawn('docker', ['network', 'ls', '--format', '{{json .}}'], {
8
+ captureOutput: true,
9
+ })).output
10
+ .split('\n')
11
+ .filter((line) => !!line.trim())
12
+ .map((line) => {
13
+ const { CreatedAt, Driver: driver, ID: id, IPv6, Labels, Name: name, Scope: scope, } = JSON.parse(line.trim());
14
+ return {
15
+ IPv6: IPv6 === 'true',
16
+ created: parseDockerDate(CreatedAt),
17
+ driver,
18
+ exists: async () => !!(await dockerNetworkFind(id)),
19
+ id,
20
+ labels: Labels.split(',').map((l) => l.trim()),
21
+ name,
22
+ rm: async () => dockerNetworkRm(id),
23
+ scope,
24
+ };
25
+ })
26
+ .filter((n) => n.id && (typeof filter === 'function' ? filter(n) : true));
57
27
  }
58
- const dockerNetworkLs =
59
-
60
- (0, _throttle.default)(_dockerNetworkLs, 500, {
61
- trailing: false });exports.dockerNetworkLs = dockerNetworkLs;
62
-
63
-
64
- async function dockerNetworkFind(
65
- networkName,
66
- options)
67
- {
68
- return (await dockerNetworkLs(options)).find(
69
- (n) => n.name === networkName || n.id === networkName);
70
-
28
+ export const dockerNetworkLs = throttle(unthrottledDockerNetworkLs, 500, {
29
+ trailing: false,
30
+ });
31
+ export async function dockerNetworkFind(networkName, options) {
32
+ return ((await dockerNetworkLs(options))?.find((n) => n.name === networkName || n.id === networkName) || null);
71
33
  }
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
- async function dockerNetworkCreate(
87
- networkName,
88
- {
89
- driver,
90
- driverOpts = {},
91
- ipRange,
92
- gateways = [],
93
- subnets = [],
94
- auxAddresses = [],
95
- ingress,
96
- internal,
97
- ipv6,
98
- labels = [] } =
99
- {})
100
- {
101
- const existing = await dockerNetworkFind(networkName);
102
- if (existing) return existing;
103
- await (0, _cp.spawn)('docker', [
104
- 'network',
105
- 'create',
106
- ...labels.flatMap((l) => ['--label', l]),
107
- ...gateways.flatMap((g) => ['--gateway', g]),
108
- ...subnets.flatMap((s) => ['--subnet', s]),
109
- ...auxAddresses.flatMap((a) => ['--aux-address', a]),
110
- ...(ipRange ? ['--ip-range', ipRange] : []),
111
- ...(ingress ? ['--ingress'] : []),
112
- ...(internal ? ['--internal'] : []),
113
- ...(ipv6 ? ['--ipv6'] : []),
114
- ...(driver ? ['-d', driver] : []),
115
- ...Object.entries(driverOpts).flatMap(([k, v]) => [
116
- '-o',
117
- `${k}=${v}`]),
118
-
119
- networkName]);
120
-
121
- return dockerNetworkFind(networkName);
34
+ export async function dockerNetworkCreate(networkName, { driver, driverOpts = {}, ipRange, gateways = [], subnets = [], auxAddresses = [], ingress, internal, ipv6, labels = [], } = {}) {
35
+ const existing = await dockerNetworkFind(networkName);
36
+ if (existing)
37
+ return existing;
38
+ await spawn('docker', [
39
+ 'network',
40
+ 'create',
41
+ ...labels.flatMap((l) => ['--label', l]),
42
+ ...gateways.flatMap((g) => ['--gateway', g]),
43
+ ...subnets.flatMap((s) => ['--subnet', s]),
44
+ ...auxAddresses.flatMap((a) => ['--aux-address', a]),
45
+ ...(ipRange ? ['--ip-range', ipRange] : []),
46
+ ...(ingress ? ['--ingress'] : []),
47
+ ...(internal ? ['--internal'] : []),
48
+ ...(ipv6 ? ['--ipv6'] : []),
49
+ ...(driver ? ['-d', driver] : []),
50
+ ...Object.entries(driverOpts).flatMap(([k, v]) => ['-o', `${k}=${v}`]),
51
+ networkName,
52
+ ]);
53
+ return dockerNetworkFind(networkName);
122
54
  }
123
-
124
55
  /**
125
56
  * Removes a network by id
126
57
  * @param {string} id The id of the network
127
58
  */
128
- async function dockerNetworkRm(id) {
129
- await (0, _cp.spawn)('docker', ['network', 'rm', id]);
59
+ export async function dockerNetworkRm(id) {
60
+ await spawn('docker', ['network', 'rm', id]);
130
61
  }
131
-
132
62
  /**
133
63
  * Removes all networks with the given name
134
64
  * @param {string} networkName The name of the network
135
65
  */
136
- async function dockerNetworkDelete(networkName) {
137
- let existing;
138
- // eslint-disable-next-line no-cond-assign, no-await-in-loop
139
- while (existing = await dockerNetworkFind(networkName)) {
140
- // eslint-disable-next-line no-await-in-loop
141
- await existing.rm();
142
- }
66
+ export async function dockerNetworkDelete(networkName) {
67
+ let existing;
68
+ // eslint-disable-next-line no-cond-assign, no-await-in-loop
69
+ while ((existing = await dockerNetworkFind(networkName))) {
70
+ // eslint-disable-next-line no-await-in-loop
71
+ await existing.rm();
72
+ }
143
73
  }
144
-
145
- async function dockerNetworkConnect(
146
- networkName,
147
- containerId,
148
- alias)
149
- {
150
- const net = await dockerNetworkCreate(networkName);
151
- if (!net) throw new Error('Failed to create docker network');
152
- await (0, _cp.spawn)('docker', [
153
- 'network',
154
- 'connect',
155
- ...(alias ? ['--alias', alias] : []),
156
- net.id,
157
- containerId]);
158
-
74
+ export async function dockerNetworkConnect(networkName, containerId, alias) {
75
+ const net = await dockerNetworkCreate(networkName);
76
+ if (!net)
77
+ throw new Error('Failed to create docker network');
78
+ await spawn('docker', [
79
+ 'network',
80
+ 'connect',
81
+ ...(alias ? ['--alias', alias] : []),
82
+ net.id,
83
+ containerId,
84
+ ]);
159
85
  }
160
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb2NrZXIubmV0d29yay5qcyJdLCJuYW1lcyI6WyJfZG9ja2VyTmV0d29ya0xzIiwiZmlsdGVyIiwiY2FwdHVyZU91dHB1dCIsInNwbGl0IiwibGluZSIsInRyaW0iLCJtYXAiLCJJRCIsImlkIiwiTmFtZSIsIm5hbWUiLCJEcml2ZXIiLCJkcml2ZXIiLCJTY29wZSIsInNjb3BlIiwiQ3JlYXRlZEF0IiwiSVB2NiIsIkxhYmVscyIsIkpTT04iLCJwYXJzZSIsImNyZWF0ZWQiLCJsYWJlbHMiLCJsIiwiZXhpc3RzIiwiZG9ja2VyTmV0d29ya0ZpbmQiLCJybSIsImRvY2tlck5ldHdvcmtSbSIsIm4iLCJkb2NrZXJOZXR3b3JrTHMiLCJ0cmFpbGluZyIsIm5ldHdvcmtOYW1lIiwib3B0aW9ucyIsImZpbmQiLCJkb2NrZXJOZXR3b3JrQ3JlYXRlIiwiZHJpdmVyT3B0cyIsImlwUmFuZ2UiLCJnYXRld2F5cyIsInN1Ym5ldHMiLCJhdXhBZGRyZXNzZXMiLCJpbmdyZXNzIiwiaW50ZXJuYWwiLCJpcHY2IiwiZXhpc3RpbmciLCJmbGF0TWFwIiwiZyIsInMiLCJhIiwiT2JqZWN0IiwiZW50cmllcyIsImsiLCJ2IiwiZG9ja2VyTmV0d29ya0RlbGV0ZSIsImRvY2tlck5ldHdvcmtDb25uZWN0IiwiY29udGFpbmVySWQiLCJhbGlhcyIsIm5ldCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBLGtDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkE7QUFDQTtBQUNPLGVBQWVBLGdCQUFmLENBQWdDO0FBQ3JDQyxFQUFBQSxNQURxQztBQUVYLEVBRnJCLEVBRW1EO0FBQ3hELFNBQU87QUFDTCxRQUFNLGVBQU0sUUFBTixFQUFnQixDQUFDLFNBQUQsRUFBWSxJQUFaLEVBQWtCLFVBQWxCLEVBQThCLFlBQTlCLENBQWhCLEVBQTZEO0FBQ2pFQyxJQUFBQSxhQUFhLEVBQUUsSUFEa0QsRUFBN0QsQ0FERDs7O0FBS0pDLEVBQUFBLEtBTEksQ0FLRSxJ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WSxRQUFKO0FBQ0E7QUFDQSxTQUFRQSxRQUFRLEdBQUcsTUFBTWxCLGlCQUFpQixDQUFDTSxXQUFELENBQTFDLEVBQTBEO0FBQ3hEO0FBQ0EsVUFBTVksUUFBUSxDQUFDakIsRUFBVCxFQUFOO0FBQ0Q7QUFDRjs7QUFFTSxlQUFlMkIsb0JBQWY7QUFDTHRCLFdBREs7QUFFTHVCLFdBRks7QUFHTEMsS0FISztBQUlMO0FBQ0EsUUFBTUMsR0FBRyxHQUFHLE1BQU10QixtQkFBbUIsQ0FBQ0gsV0FBRCxDQUFyQztBQUNBLE1BQUksQ0FBQ3lCLEdBQUwsRUFBVSxNQUFNLElBQUlDLEtBQUosQ0FBVSxpQ0FBVixDQUFOO0FBQ1YsUUFBTSxlQUFNLFFBQU4sRUFBZ0I7QUFDcEIsV0FEb0I7QUFFcEIsV0FGb0I7QUFHcEIsTUFBSUYsS0FBSyxHQUFHLENBQUMsU0FBRCxFQUFZQSxLQUFaLENBQUgsR0FBd0IsRUFBakMsQ0FIb0I7QUFJcEJDLEVBQUFBLEdBQUcsQ0FBQy9DLEVBSmdCO0FBS3BCNkMsRUFBQUEsV0FMb0IsQ0FBaEIsQ0FBTjs7QUFPRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoL3Rocm90dGxlJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnLi9jcCc7XG5pbXBvcnQgeyBwYXJzZURvY2tlckRhdGUgfSBmcm9tICcuL2RvY2tlcic7XG5cbmV4cG9ydCB0eXBlIERvY2tlck5ldHdvcmsgPSB7fFxuICBpZDogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4gIGRyaXZlcjogc3RyaW5nLFxuICBzY29wZTogc3RyaW5nLFxuICBjcmVhdGVkOiBEYXRlLFxuICBJUHY2OiBib29sZWFuLFxuICBsYWJlbHM6IHN0cmluZ1tdLFxuICBleGlzdHM6ICgpID0+IFByb21pc2U8Ym9vbGVhbj4sXG4gIHJtOiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxufH07XG5cbnR5cGUgRG9ja2VyTmV0d29ya0xzT3B0aW9ucyA9IHtcbiAgZmlsdGVyPzogKG5ldHdvcms6IERvY2tlck5ldHdvcmspID0+IGJvb2xlYW4sXG59O1xuXG4vLyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaW4gcmFwaWQgc3VjY2Vzc2lvbiBjYW4gbGVhZCB0byBlcnJvcnMuXG4vLyBwcmVmZXIgdGhyb3R0bGVkIHZlcnNpb25cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfZG9ja2VyTmV0d29ya0xzKHtcbiAgZmlsdGVyLFxufTogRG9ja2VyTmV0d29ya0xzT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxEb2NrZXJOZXR3b3JrW10+IHtcbiAgcmV0dXJuIChcbiAgICBhd2FpdCBzcGF3bignZG9ja2VyJywgWyduZXR3b3JrJywgJ2xzJywgJy0tZm9ybWF0JywgJ3t7anNvbiAufX0nXSwge1xuICAgICAgY2FwdHVyZU91dHB1dDogdHJ1ZSxcbiAgICB9KVxuICApXG4gICAgLnNwbGl0KCdcXG4nKVxuICAgIC5maWx0ZXIoKGxpbmUpID0+ICEhbGluZS50cmltKCkpXG4gICAgLm1hcCgobGluZSkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBJRDogaWQsXG4gICAgICAgIE5hbWU6IG5hbWUsXG4gICAgICAgIERyaXZlcjogZHJpdmVyLFxuICAgICAgICBTY29wZTogc2NvcGUsXG4gICAgICAgIENyZWF0ZWRBdCxcbiAgICAgICAgSVB2NixcbiAgICAgICAgTGFiZWxzLFxuICAgICAgfSA9IEpTT04ucGFyc2UobGluZS50cmltKCkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRyaXZlcixcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGNyZWF0ZWQ6IHBhcnNlRG9ja2VyRGF0ZShDcmVhdGVkQXQpLFxuICAgICAgICBJUHY2OiBJUHY2ID09PSAndHJ1ZScsXG4gICAgICAgIGxhYmVsczogTGFiZWxzLnNwbGl0KCcsJykubWFwKChsKSA9PiBsLnRyaW0oKSksXG4gICAgICAgIGV4aXN0czogYXN5bmMgKCkgPT4gISEoYXdhaXQgZG9ja2VyTmV0d29ya0ZpbmQoaWQpKSxcbiAgICAgICAgcm06IGFzeW5jICgpID0+IGRvY2tlck5ldHdvcmtSbShpZCksXG4gICAgICB9O1xuICAgIH0pXG4gICAgLmZpbHRlcigobikgPT4gbi5pZCAmJiAodHlwZW9mIGZpbHRlciA9PT0gJ2Z1bmN0aW9uJyA/IGZpbHRlcihuKSA6IHRydWUpKTtcbn1cbmV4cG9ydCBjb25zdCBkb2NrZXJOZXR3b3JrTHM6IChcbiAgRG9ja2VyTmV0d29ya0xzT3B0aW9ucyB8IHZvaWQsXG4pID0+IFByb21pc2U8RG9ja2VyTmV0d29ya1tdPiA9IHRocm90dGxlKF9kb2NrZXJOZXR3b3JrTHMsIDUwMCwge1xuICB0cmFpbGluZzogZmFsc2UsXG59KTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvY2tlck5ldHdvcmtGaW5kKFxuICBuZXR3b3JrTmFtZTogc3RyaW5nLFxuICBvcHRpb25zPzogRG9ja2VyTmV0d29ya0xzT3B0aW9ucyxcbik6IFByb21pc2U8P0RvY2tlck5ldHdvcms+IHtcbiAgcmV0dXJuIChhd2FpdCBkb2NrZXJOZXR3b3JrTHMob3B0aW9ucykpLmZpbmQoXG4gICAgKG4pID0+IG4ubmFtZSA9PT0gbmV0d29ya05hbWUgfHwgbi5pZCA9PT0gbmV0d29ya05hbWUsXG4gICk7XG59XG5cbmV4cG9ydCB0eXBlIERvY2tlck5ldHdvcmtDcmVhdGVPcHRpb25zID0ge3xcbiAgZHJpdmVyPzogc3RyaW5nLFxuICBkcml2ZXJPcHRzPzogeyBbc3RyaW5nXTogc3RyaW5nIH0sXG4gIGlwUmFuZ2U/OiBzdHJpbmcsXG4gIGdhdGV3YXlzPzogc3RyaW5nW10sXG4gIHN1Ym5ldHM/OiBzdHJpbmdbXSxcbiAgYXV4QWRkcmVzc2VzPzogc3RyaW5nW10sXG4gIGluZ3Jlc3M/OiBib29sZWFuLFxuICBpbnRlcm5hbD86IGJvb2xlYW4sXG4gIGlwdjY/OiBib29sZWFuLFxuICBsYWJlbHM/OiBzdHJpbmdbXSxcbnx9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9ja2VyTmV0d29ya0NyZWF0ZShcbiAgbmV0d29ya05hbWU6IHN0cmluZyxcbiAge1xuICAgIGRyaXZlcixcbiAgICBkcml2ZXJPcHRzID0ge30sXG4gICAgaXBSYW5nZSxcbiAgICBnYXRld2F5cyA9IFtdLFxuICAgIHN1Ym5ldHMgPSBbXSxcbiAgICBhdXhBZGRyZXNzZXMgPSBbXSxcbiAgICBpbmdyZXNzLFxuICAgIGludGVybmFsLFxuICAgIGlwdjYsXG4gICAgbGFiZWxzID0gW10sXG4gIH06IERvY2tlck5ldHdvcmtDcmVhdGVPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPD9Eb2NrZXJOZXR3b3JrPiB7XG4gIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgZG9ja2VyTmV0d29ya0ZpbmQobmV0d29ya05hbWUpO1xuICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZztcbiAgYXdhaXQgc3Bhd24oJ2RvY2tlcicsIFtcbiAgICAnbmV0d29yaycsXG4gICAgJ2NyZWF0ZScsXG4gICAgLi4ubGFiZWxzLmZsYXRNYXAoKGwpID0+IFsnLS1sYWJlbCcsIGxdKSxcbiAgICAuLi5nYXRld2F5cy5mbGF0TWFwKChnKSA9PiBbJy0tZ2F0ZXdheScsIGddKSxcbiAgICAuLi5zdWJuZXRzLmZsYXRNYXAoKHMpID0+IFsnLS1zdWJuZXQnLCBzXSksXG4gICAgLi4uYXV4QWRkcmVzc2VzLmZsYXRNYXAoKGEpID0+IFsnLS1hdXgtYWRkcmVzcycsIGFdKSxcbiAgICAuLi4oaXBSYW5nZSA/IFsnLS1pcC1yYW5nZScsIGlwUmFuZ2VdIDogW10pLFxuICAgIC4uLihpbmdyZXNzID8gWyctLWluZ3Jlc3MnXSA6IFtdKSxcbiAgICAuLi4oaW50ZXJuYWwgPyBbJy0taW50ZXJuYWwnXSA6IFtdKSxcbiAgICAuLi4oaXB2NiA/IFsnLS1pcHY2J10gOiBbXSksXG4gICAgLi4uKGRyaXZlciA/IFsnLWQnLCBkcml2ZXJdIDogW10pLFxuICAgIC4uLk9iamVjdC5lbnRyaWVzKGRyaXZlck9wdHMpLmZsYXRNYXAoKFtrLCB2XSkgPT4gW1xuICAgICAgJy1vJyxcbiAgICAgIGAke2t9PSR7KHY6IGFueSl9YCxcbiAgICBdKSxcbiAgICBuZXR3b3JrTmFtZSxcbiAgXSk7XG4gIHJldHVybiBkb2NrZXJOZXR3b3JrRmluZChuZXR3b3JrTmFtZSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBhIG5ldHdvcmsgYnkgaWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCBUaGUgaWQgb2YgdGhlIG5ldHdvcmtcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvY2tlck5ldHdvcmtSbShpZDogc3RyaW5nKSB7XG4gIGF3YWl0IHNwYXduKCdkb2NrZXInLCBbJ25ldHdvcmsnLCAncm0nLCBpZF0pO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIG5ldHdvcmtzIHdpdGggdGhlIGdpdmVuIG5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXR3b3JrTmFtZSBUaGUgbmFtZSBvZiB0aGUgbmV0d29ya1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9ja2VyTmV0d29ya0RlbGV0ZShuZXR3b3JrTmFtZTogc3RyaW5nKSB7XG4gIGxldCBleGlzdGluZztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduLCBuby1hd2FpdC1pbi1sb29wXG4gIHdoaWxlICgoZXhpc3RpbmcgPSBhd2FpdCBkb2NrZXJOZXR3b3JrRmluZChuZXR3b3JrTmFtZSkpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICBhd2FpdCBleGlzdGluZy5ybSgpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb2NrZXJOZXR3b3JrQ29ubmVjdChcbiAgbmV0d29ya05hbWU6IHN0cmluZyxcbiAgY29udGFpbmVySWQ6IHN0cmluZyxcbiAgYWxpYXM/OiA/c3RyaW5nLFxuKSB7XG4gIGNvbnN0IG5ldCA9IGF3YWl0IGRvY2tlck5ldHdvcmtDcmVhdGUobmV0d29ya05hbWUpO1xuICBpZiAoIW5ldCkgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGRvY2tlciBuZXR3b3JrJyk7XG4gIGF3YWl0IHNwYXduKCdkb2NrZXInLCBbXG4gICAgJ25ldHdvcmsnLFxuICAgICdjb25uZWN0JyxcbiAgICAuLi4oYWxpYXMgPyBbJy0tYWxpYXMnLCBhbGlhc10gOiBbXSksXG4gICAgbmV0LmlkLFxuICAgIGNvbnRhaW5lcklkLFxuICBdKTtcbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ declare type DockerVolumeInspectOutput = Record<string, any>;
2
+ export interface DockerVolume {
3
+ driver: string;
4
+ inspect: () => Promise<null | DockerVolumeInspectOutput>;
5
+ labels: string[];
6
+ mountPoint: string;
7
+ name: string;
8
+ rm: () => Promise<void>;
9
+ scope: string;
10
+ }
11
+ interface DockerVolumeLsOptions {
12
+ filter?: (vol: DockerVolume) => boolean;
13
+ }
14
+ export declare function unthrottledDockerVolumeLs({ filter, }?: DockerVolumeLsOptions): Promise<DockerVolume[]>;
15
+ export declare const dockerVolumeLs: (options?: DockerVolumeLsOptions) => undefined | Promise<DockerVolume[]>;
16
+ export declare function dockerVolumeFind(search: string, options?: DockerVolumeLsOptions): Promise<null | DockerVolume>;
17
+ export interface DockerVolumeCreateOptions {
18
+ driver?: string;
19
+ driverOpts?: Record<string, string>;
20
+ labels?: string[];
21
+ }
22
+ export declare function dockerVolumeCreate(name: string, { labels, driver, driverOpts }?: DockerVolumeCreateOptions): Promise<null | DockerVolume>;
23
+ export declare function dockerVolumeRm(id: string | string[], ignoreErrors?: boolean): Promise<void>;
24
+ export declare function unthrottledDockerVolumeInspect(id: string | string[]): Promise<DockerVolumeInspectOutput[]>;
25
+ export declare const dockerVolumeInspect: (id: string | string[]) => undefined | Promise<DockerVolumeInspectOutput[]>;
26
+ export {};
package/docker.volume.js CHANGED
@@ -1,136 +1,62 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports._dockerVolumeInspect = _dockerVolumeInspect;exports._dockerVolumeLs = _dockerVolumeLs;exports.dockerVolumeCreate = dockerVolumeCreate;exports.dockerVolumeFind = dockerVolumeFind;exports.dockerVolumeLs = exports.dockerVolumeInspect = void 0;exports.dockerVolumeRm = dockerVolumeRm;
2
- var _throttle = _interopRequireDefault(require("lodash/throttle"));
3
- var _cp = require("./cp");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
1
+ import { throttle } from 'lodash-es';
2
+ import { spawn } from './cp.js';
23
3
  // calling this function in rapid succession can lead to errors.
24
4
  // prefer throttled version
25
- async function _dockerVolumeLs({
26
- filter } =
27
- {}) {
28
- return (
29
- await (0, _cp.spawn)('docker', ['volume', 'ls', '--format', '{{json .}}'], {
30
- captureOutput: true })).
31
-
32
-
33
- split('\n').
34
- filter((line) => !!line.trim()).
35
- map((line) => {
36
- const {
37
- Name: name,
38
- Driver: driver,
39
- Scope: scope,
40
- Labels,
41
- Mountpoint: mountPoint } =
42
- JSON.parse(line.trim());
43
-
44
- return {
45
- name,
46
- driver,
47
- scope,
48
- labels: Labels.split(',').map((l) => l.trim()),
49
- mountPoint,
50
- inspect: async () => (await dockerVolumeInspect(name))[0],
51
- rm: async () => dockerVolumeRm(name) };
52
-
53
- }).
54
- filter((v) => v.name && (typeof filter === 'function' ? filter(v) : true));
5
+ export async function unthrottledDockerVolumeLs({ filter, } = {}) {
6
+ return (await spawn('docker', ['volume', 'ls', '--format', '{{json .}}'], {
7
+ captureOutput: true,
8
+ })).output
9
+ .split('\n')
10
+ .filter((line) => !!line.trim())
11
+ .map((line) => {
12
+ const { Driver: driver, Labels, Mountpoint: mountPoint, Name: name, Scope: scope, } = JSON.parse(line.trim());
13
+ return {
14
+ driver,
15
+ inspect: async () => (await dockerVolumeInspect(name))?.[0] || null,
16
+ labels: Labels.split(',').map((l) => l.trim()),
17
+ mountPoint,
18
+ name,
19
+ rm: async () => dockerVolumeRm(name),
20
+ scope,
21
+ };
22
+ })
23
+ .filter((v) => v.name && (typeof filter === 'function' ? filter(v) : true));
55
24
  }
56
-
57
- const dockerVolumeLs =
58
-
59
- (0, _throttle.default)(_dockerVolumeLs, 500, {
60
- trailing: false });exports.dockerVolumeLs = dockerVolumeLs;
61
-
62
-
63
- async function dockerVolumeFind(
64
- search,
65
- options)
66
- {
67
- return (await dockerVolumeLs(options)).find(
68
- (v) => v.name === search || v.name.startsWith(search));
69
-
25
+ export const dockerVolumeLs = throttle(unthrottledDockerVolumeLs, 500, {
26
+ trailing: false,
27
+ });
28
+ export async function dockerVolumeFind(search, options) {
29
+ return ((await dockerVolumeLs(options))?.find((v) => v.name === search || v.name.startsWith(search)) ?? null);
70
30
  }
71
-
72
-
73
-
74
-
75
-
76
-
77
- async function dockerVolumeCreate(
78
- name,
79
- { labels = [], driver, driverOpts = {} } = {})
80
- {
81
- const existing = await dockerVolumeFind(name);
82
- if (existing) return existing;
83
- await (0, _cp.spawn)('docker', [
84
- 'volume',
85
- 'create',
86
- ...labels.flatMap((l) => ['--label', l]),
87
- ...(driver ? ['-d', driver] : []),
88
- ...Object.entries(driverOpts).flatMap(([k, v]) => [
89
- '-o',
90
- `${k}=${v}`]),
91
-
92
- name]);
93
-
94
- return dockerVolumeFind(name);
31
+ export async function dockerVolumeCreate(name, { labels = [], driver, driverOpts = {} } = {}) {
32
+ const existing = await dockerVolumeFind(name);
33
+ if (existing)
34
+ return existing;
35
+ await spawn('docker', [
36
+ 'volume',
37
+ 'create',
38
+ ...labels.flatMap((l) => ['--label', l]),
39
+ ...(driver ? ['-d', driver] : []),
40
+ ...Object.entries(driverOpts).flatMap(([k, v]) => ['-o', `${k}=${v}`]),
41
+ name,
42
+ ]);
43
+ return dockerVolumeFind(name);
95
44
  }
96
-
97
- async function dockerVolumeRm(
98
- id,
99
- ignoreErrors = true)
100
- {
101
- const ids = Array.isArray(id) ? id : [id];
102
- try {
103
- await (0, _cp.spawn)('docker', ['volume', 'rm', ...ids]);
104
- } catch (e) {
105
- if (!ignoreErrors) {
106
- throw new Error(`Failed to remove volume(s): ${e.message}`);
45
+ export async function dockerVolumeRm(id, ignoreErrors = true) {
46
+ const ids = Array.isArray(id) ? id : [id];
47
+ try {
48
+ await spawn('docker', ['volume', 'rm', ...ids]);
49
+ }
50
+ catch (e) {
51
+ if (!ignoreErrors) {
52
+ throw new Error(`Failed to remove volume(s): ${e.message}`);
53
+ }
107
54
  }
108
- }
109
55
  }
110
-
111
56
  // calling this function in rapid succession can lead to errors.
112
57
  // prefer throttled version
113
- async function _dockerVolumeInspect(
114
- id)
115
- {
116
- const ids = Array.isArray(id) ? id : [id];
117
- return (
118
- JSON.parse(
119
- (
120
- await (0, _cp.spawn)(
121
- 'docker',
122
- ['volume', 'inspect', '--format', '{{json .}}', ...ids],
123
- { captureOutput: true })).
124
-
125
- trim()) ||
126
- []);
127
-
58
+ export async function unthrottledDockerVolumeInspect(id) {
59
+ const ids = Array.isArray(id) ? id : [id];
60
+ return (JSON.parse((await spawn('docker', ['volume', 'inspect', '--format', '{{json .}}', ...ids], { captureOutput: true })).output.trim()) || []);
128
61
  }
129
-
130
- const dockerVolumeInspect =
131
-
132
- (0, _throttle.default)(
133
- _dockerVolumeInspect,
134
- 500,
135
- { trailing: true });exports.dockerVolumeInspect = dockerVolumeInspect;
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb2NrZXIudm9sdW1lLmpzIl0sIm5hbWVzIjpbIl9kb2NrZXJWb2x1bWVMcyIsImZpbHRlciIsImNhcHR1cmVPdXRwdXQiLCJzcGxpdCIsImxpbmUiLCJ0cmltIiwibWFwIiwiTmFtZSIsIm5hbWUiLCJEcml2ZXIiLCJkcml2ZXIiLCJTY29wZSIsInNjb3BlIiwiTGFiZWxzIiwiTW91bnRwb2ludCIsIm1vdW50UG9pbnQiLCJKU09OIiwicGFyc2UiLCJsYWJlbHMiLCJsIiwiaW5zcGVjdCIsImRvY2tlclZvbHVtZUluc3BlY3QiLCJybSIsImRvY2tlclZvbHVtZVJtIiwidiIsImRvY2tlclZvbHVtZUxzIiwidHJhaWxpbmciLCJkb2NrZXJWb2x1bWVGaW5kIiwic2VhcmNoIiwib3B0aW9ucyIsImZpbmQiLCJzdGFydHNXaXRoIiwiZG9ja2VyVm9sdW1lQ3JlYXRlIiwiZHJpdmVyT3B0cyIsImV4aXN0aW5nIiwiZmxhdE1hcCIsIk9iamVjdCIsImVudHJpZXMiLCJrIiwiaWQiLCJpZ25vcmVFcnJvcnMiLCJpZHMiLCJBcnJheSIsImlzQXJyYXkiLCJlIiwiRXJyb3IiLCJtZXNzYWdlIiwiX2RvY2tlclZvbHVtZUluc3BlY3QiXSwibWFwcGluZ3MiOiI7QUFDQTtBQUNBLDBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTtBQUNBO0FBQ08sZUFBZUEsZUFBZixDQUErQjtBQUNwQ0MsRUFBQUEsTUFEb0M7QUFFWCxFQUZwQixFQUVpRDtBQUN0RCxTQUFPO0FBQ0wsUUFBTSxlQUFNLFFBQU4sRUFBZ0IsQ0FBQyxRQUFELEVBQVcsSUFBWCxFQUFpQixVQUFqQixFQUE2QixZQUE3QixDQUFoQixFQUE0RDtBQUNoRUMsSUFBQUEsYUFBYSxFQUFFLElBRGlELEVBQTVELENBREQ7OztBQUtKQyxFQUFBQSxLQUxJLENBS0UsSUFMRjtBQU1KRixFQUFBQSxNQU5JLENBTUcsQ0FBQ0csSUFBRCxLQUFVLENBQUMsQ0FBQ0EsSUFBSSxDQUFDQyxJQUFMLEVBTmY7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QSxFQUFELENBQXJDO0FBQ0EsTUFBSTtBQUNGLFVBQU0sZUFBTSxRQUFOLEVBQWdCLENBQUMsUUFBRCxFQUFXLElBQVgsRUFBaUIsR0FBR0UsR0FBcEIsQ0FBaEIsQ0FBTjtBQUNELEdBRkQsQ0FFRSxPQUFPRyxDQUFQLEVBQVU7QUFDVixRQUFJLENBQUNKLFlBQUwsRUFBbUI7QUFDakIsWUFBTSxJQUFJSyxLQUFKLENBQVcsK0JBQThCRCxDQUFDLENBQUNFLE9BQVEsRUFBbkQsQ0FBTjtBQUNEO0FBQ0Y7QUFDRjs7QUFFRDtBQUNBO0FBQ08sZUFBZUMsb0JBQWY7QUFDTFIsRUFESztBQUVpQztBQUN0QyxRQUFNRSxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixFQUFkLElBQW9CQSxFQUFwQixHQUF5QixDQUFDQSxFQUFELENBQXJDO0FBQ0E7QUFDRXZCLElBQUFBLElBQUksQ0FBQ0MsS0FBTDtBQUNFO0FBQ0UsVUFBTTtBQUNKLFlBREk7QUFFSixLQUFDLFFBQUQsRUFBVyxTQUFYLEVBQXNCLFVBQXRCLEVBQWtDLFlBQWxDLEVBQWdELEdBQUd3QixHQUFuRCxDQUZJO0FBR0osTUFBRXZDLGFBQWEsRUFBRSxJQUFqQixFQUhJLENBRFI7O0FBTUVHLElBQUFBLElBTkYsRUFERjtBQVFLLE1BVFA7O0FBV0Q7O0FBRU0sTUFBTWdCLG1CQUU0Qjs7QUFBRztBQUMxQzBCLG9CQUQwQztBQUUxQyxHQUYwQztBQUcxQyxFQUFFckIsUUFBUSxFQUFFLElBQVosRUFIMEMsQ0FGckMsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoL3Rocm90dGxlJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnLi9jcCc7XG5cbnR5cGUgRG9ja2VyVm9sdW1lSW5zcGVjdE91dHB1dCA9IHtcbiAgW3N0cmluZ106IGFueSxcbn07XG5cbmV4cG9ydCB0eXBlIERvY2tlclZvbHVtZSA9IHt8XG4gIG5hbWU6IHN0cmluZyxcbiAgZHJpdmVyOiBzdHJpbmcsXG4gIHNjb3BlOiBzdHJpbmcsXG4gIGxhYmVsczogc3RyaW5nW10sXG4gIG1vdW50UG9pbnQ6IHN0cmluZyxcbiAgaW5zcGVjdDogKCkgPT4gUHJvbWlzZTxEb2NrZXJWb2x1bWVJbnNwZWN0T3V0cHV0PixcbiAgcm06ICgpID0+IFByb21pc2U8dm9pZD4sXG58fTtcblxudHlwZSBEb2NrZXJWb2x1bWVMc09wdGlvbnMgPSB7XG4gIGZpbHRlcj86ICh2b2w6IERvY2tlclZvbHVtZSkgPT4gYm9vbGVhbixcbn07XG5cbi8vIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpbiByYXBpZCBzdWNjZXNzaW9uIGNhbiBsZWFkIHRvIGVycm9ycy5cbi8vIHByZWZlciB0aHJvdHRsZWQgdmVyc2lvblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIF9kb2NrZXJWb2x1bWVMcyh7XG4gIGZpbHRlcixcbn06IERvY2tlclZvbHVtZUxzT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxEb2NrZXJWb2x1bWVbXT4ge1xuICByZXR1cm4gKFxuICAgIGF3YWl0IHNwYXduKCdkb2NrZXInLCBbJ3ZvbHVtZScsICdscycsICctLWZvcm1hdCcsICd7e2pzb24gLn19J10sIHtcbiAgICAgIGNhcHR1cmVPdXRwdXQ6IHRydWUsXG4gICAgfSlcbiAgKVxuICAgIC5zcGxpdCgnXFxuJylcbiAgICAuZmlsdGVyKChsaW5lKSA9PiAhIWxpbmUudHJpbSgpKVxuICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgTmFtZTogbmFtZSxcbiAgICAgICAgRHJpdmVyOiBkcml2ZXIsXG4gICAgICAgIFNjb3BlOiBzY29wZSxcbiAgICAgICAgTGFiZWxzLFxuICAgICAgICBNb3VudHBvaW50OiBtb3VudFBvaW50LFxuICAgICAgfSA9IEpTT04ucGFyc2UobGluZS50cmltKCkpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBkcml2ZXIsXG4gICAgICAgIHNjb3BlLFxuICAgICAgICBsYWJlbHM6IExhYmVscy5zcGxpdCgnLCcpLm1hcCgobCkgPT4gbC50cmltKCkpLFxuICAgICAgICBtb3VudFBvaW50LFxuICAgICAgICBpbnNwZWN0OiBhc3luYyAoKSA9PiAoYXdhaXQgZG9ja2VyVm9sdW1lSW5zcGVjdChuYW1lKSlbMF0sXG4gICAgICAgIHJtOiBhc3luYyAoKSA9PiBkb2NrZXJWb2x1bWVSbShuYW1lKSxcbiAgICAgIH07XG4gICAgfSlcbiAgICAuZmlsdGVyKCh2KSA9PiB2Lm5hbWUgJiYgKHR5cGVvZiBmaWx0ZXIgPT09ICdmdW5jdGlvbicgPyBmaWx0ZXIodikgOiB0cnVlKSk7XG59XG5cbmV4cG9ydCBjb25zdCBkb2NrZXJWb2x1bWVMczogKFxuICBEb2NrZXJWb2x1bWVMc09wdGlvbnMgfCB2b2lkLFxuKSA9PiBQcm9taXNlPERvY2tlclZvbHVtZVtdPiA9IHRocm90dGxlKF9kb2NrZXJWb2x1bWVMcywgNTAwLCB7XG4gIHRyYWlsaW5nOiBmYWxzZSxcbn0pO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9ja2VyVm9sdW1lRmluZChcbiAgc2VhcmNoOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBEb2NrZXJWb2x1bWVMc09wdGlvbnMsXG4pOiBQcm9taXNlPD9Eb2NrZXJWb2x1bWU+IHtcbiAgcmV0dXJuIChhd2FpdCBkb2NrZXJWb2x1bWVMcyhvcHRpb25zKSkuZmluZChcbiAgICAodikgPT4gdi5uYW1lID09PSBzZWFyY2ggfHwgdi5uYW1lLnN0YXJ0c1dpdGgoc2VhcmNoKSxcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgRG9ja2VyVm9sdW1lQ3JlYXRlT3B0aW9ucyA9IHt8XG4gIGxhYmVscz86IHN0cmluZ1tdLFxuICBkcml2ZXI/OiBzdHJpbmcsXG4gIGRyaXZlck9wdHM/OiB7IFtzdHJpbmddOiBzdHJpbmcgfSxcbnx9O1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvY2tlclZvbHVtZUNyZWF0ZShcbiAgbmFtZTogc3RyaW5nLFxuICB7IGxhYmVscyA9IFtdLCBkcml2ZXIsIGRyaXZlck9wdHMgPSB7fSB9OiBEb2NrZXJWb2x1bWVDcmVhdGVPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPD9Eb2NrZXJWb2x1bWU+IHtcbiAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCBkb2NrZXJWb2x1bWVGaW5kKG5hbWUpO1xuICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZztcbiAgYXdhaXQgc3Bhd24oJ2RvY2tlcicsIFtcbiAgICAndm9sdW1lJyxcbiAgICAnY3JlYXRlJyxcbiAgICAuLi5sYWJlbHMuZmxhdE1hcCgobCkgPT4gWyctLWxhYmVsJywgbF0pLFxuICAgIC4uLihkcml2ZXIgPyBbJy1kJywgZHJpdmVyXSA6IFtdKSxcbiAgICAuLi5PYmplY3QuZW50cmllcyhkcml2ZXJPcHRzKS5mbGF0TWFwKChbaywgdl0pID0+IFtcbiAgICAgICctbycsXG4gICAgICBgJHtrfT0keyh2OiBhbnkpfWAsXG4gICAgXSksXG4gICAgbmFtZSxcbiAgXSk7XG4gIHJldHVybiBkb2NrZXJWb2x1bWVGaW5kKG5hbWUpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9ja2VyVm9sdW1lUm0oXG4gIGlkOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgaWdub3JlRXJyb3JzOiBib29sZWFuID0gdHJ1ZSxcbikge1xuICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGlkKSA/IGlkIDogW2lkXTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBzcGF3bignZG9ja2VyJywgWyd2b2x1bWUnLCAncm0nLCAuLi5pZHNdKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghaWdub3JlRXJyb3JzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byByZW1vdmUgdm9sdW1lKHMpOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIGluIHJhcGlkIHN1Y2Nlc3Npb24gY2FuIGxlYWQgdG8gZXJyb3JzLlxuLy8gcHJlZmVyIHRocm90dGxlZCB2ZXJzaW9uXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gX2RvY2tlclZvbHVtZUluc3BlY3QoXG4gIGlkOiBzdHJpbmcgfCBzdHJpbmdbXSxcbik6IFByb21pc2U8RG9ja2VyVm9sdW1lSW5zcGVjdE91dHB1dFtdPiB7XG4gIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoaWQpID8gaWQgOiBbaWRdO1xuICByZXR1cm4gKFxuICAgIEpTT04ucGFyc2UoXG4gICAgICAoXG4gICAgICAgIGF3YWl0IHNwYXduKFxuICAgICAgICAgICdkb2NrZXInLFxuICAgICAgICAgIFsndm9sdW1lJywgJ2luc3BlY3QnLCAnLS1mb3JtYXQnLCAne3tqc29uIC59fScsIC4uLmlkc10sXG4gICAgICAgICAgeyBjYXB0dXJlT3V0cHV0OiB0cnVlIH0sXG4gICAgICAgIClcbiAgICAgICkudHJpbSgpLFxuICAgICkgfHwgW11cbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IGRvY2tlclZvbHVtZUluc3BlY3Q6IChcbiAgc3RyaW5nIHwgc3RyaW5nW10sXG4pID0+IFByb21pc2U8RG9ja2VyVm9sdW1lSW5zcGVjdE91dHB1dFtdPiA9IHRocm90dGxlKFxuICBfZG9ja2VyVm9sdW1lSW5zcGVjdCxcbiAgNTAwLFxuICB7IHRyYWlsaW5nOiB0cnVlIH0sXG4pO1xuIl19
62
+ export const dockerVolumeInspect = throttle(unthrottledDockerVolumeInspect, 500, { trailing: true });
@@ -0,0 +1,38 @@
1
+ interface CommonDockerCleanupOptions {
2
+ /** print matched items to console instead of deleting */
3
+ dryRun?: boolean;
4
+ }
5
+ /**
6
+ * Purge stopped containers
7
+ */
8
+ export declare const dockerContainerCleanup: ({ dryRun, }?: CommonDockerCleanupOptions) => Promise<void>;
9
+ interface DockerImageCleanupOptions extends CommonDockerCleanupOptions {
10
+ /** Image ids known to be produced by this build */
11
+ buildImageIds?: string[];
12
+ /** Explicit image names/ids to delete unconditionally */
13
+ images?: string[];
14
+ /**
15
+ * ignore default exclusions of :latest* and images < 1hr old
16
+ * this will delete all images in the given repos
17
+ */
18
+ purgeAll?: boolean;
19
+ /**
20
+ * looks for other builds of the same repos
21
+ * this will still exclude :latest* and images < 1hr old
22
+ * useful to clean up after past builds that failed to clean themselves properly
23
+ */
24
+ purgeOld?: boolean;
25
+ /** Image repositories to clean (defaults to the one configured in package.json) */
26
+ repos?: string[];
27
+ }
28
+ /**
29
+ * Purge docker images created during build process
30
+ */
31
+ export declare const dockerImageCleanup: ({ repos, buildImageIds, images, purgeAll, purgeOld, dryRun, }?: DockerImageCleanupOptions) => Promise<void>;
32
+ interface DockerCleanupOptions extends DockerImageCleanupOptions, CommonDockerCleanupOptions {
33
+ }
34
+ /**
35
+ * Purge docker images created during build process
36
+ */
37
+ export declare const dockerCleanup: ({ dryRun, ...rest }?: DockerCleanupOptions) => Promise<void>;
38
+ export default dockerCleanup;