@docker/actions-toolkit 0.1.0-beta.1
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/LICENSE +191 -0
- package/README.md +3 -0
- package/lib/builder.d.ts +28 -0
- package/lib/builder.js +143 -0
- package/lib/builder.js.map +1 -0
- package/lib/buildkit.d.ts +19 -0
- package/lib/buildkit.js +158 -0
- package/lib/buildkit.js.map +1 -0
- package/lib/buildx.d.ts +36 -0
- package/lib/buildx.js +259 -0
- package/lib/buildx.js.map +1 -0
- package/lib/context.d.ts +10 -0
- package/lib/context.js +57 -0
- package/lib/context.js.map +1 -0
- package/lib/docker.d.ts +5 -0
- package/lib/docker.js +83 -0
- package/lib/docker.js.map +1 -0
- package/lib/git.d.ts +3 -0
- package/lib/git.js +59 -0
- package/lib/git.js.map +1 -0
- package/lib/github.d.ts +20 -0
- package/lib/github.js +52 -0
- package/lib/github.js.map +1 -0
- package/lib/toolkit.d.ts +26 -0
- package/lib/toolkit.js +33 -0
- package/lib/toolkit.js.map +1 -0
- package/lib/util.d.ts +5 -0
- package/lib/util.js +83 -0
- package/lib/util.js.map +1 -0
- package/package.json +69 -0
package/lib/buildx.js
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.Buildx = void 0;
|
|
39
|
+
const fs_1 = __importDefault(require("fs"));
|
|
40
|
+
const path_1 = __importDefault(require("path"));
|
|
41
|
+
const core = __importStar(require("@actions/core"));
|
|
42
|
+
const exec = __importStar(require("@actions/exec"));
|
|
43
|
+
const sync_1 = require("csv-parse/sync");
|
|
44
|
+
const semver = __importStar(require("semver"));
|
|
45
|
+
const docker_1 = require("./docker");
|
|
46
|
+
class Buildx {
|
|
47
|
+
constructor(opts) {
|
|
48
|
+
var _a;
|
|
49
|
+
this.context = opts.context;
|
|
50
|
+
this.standalone = (_a = opts === null || opts === void 0 ? void 0 : opts.standalone) !== null && _a !== void 0 ? _a : !docker_1.Docker.isAvailable();
|
|
51
|
+
this.version = this.getVersion();
|
|
52
|
+
}
|
|
53
|
+
getCommand(args) {
|
|
54
|
+
return {
|
|
55
|
+
command: this.standalone ? 'buildx' : 'docker',
|
|
56
|
+
args: this.standalone ? args : ['buildx', ...args]
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
isAvailable() {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const cmd = this.getCommand([]);
|
|
62
|
+
return yield exec
|
|
63
|
+
.getExecOutput(cmd.command, cmd.args, {
|
|
64
|
+
ignoreReturnCode: true,
|
|
65
|
+
silent: true
|
|
66
|
+
})
|
|
67
|
+
.then(res => {
|
|
68
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return res.exitCode == 0;
|
|
72
|
+
})
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
74
|
+
.catch(error => {
|
|
75
|
+
return false;
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
printInspect(name) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const cmd = this.getCommand(['inspect', name]);
|
|
82
|
+
yield exec.exec(cmd.command, cmd.args, {
|
|
83
|
+
failOnStdErr: false
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
getVersion() {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const cmd = this.getCommand(['version']);
|
|
90
|
+
return yield exec
|
|
91
|
+
.getExecOutput(cmd.command, cmd.args, {
|
|
92
|
+
ignoreReturnCode: true,
|
|
93
|
+
silent: true
|
|
94
|
+
})
|
|
95
|
+
.then(res => {
|
|
96
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
97
|
+
throw new Error(res.stderr.trim());
|
|
98
|
+
}
|
|
99
|
+
return Buildx.parseVersion(res.stdout.trim());
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
printVersion() {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
const cmd = this.getCommand(['version']);
|
|
106
|
+
yield exec.exec(cmd.command, cmd.args, {
|
|
107
|
+
failOnStdErr: false
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
static parseVersion(stdout) {
|
|
112
|
+
const matches = /\sv?([0-9a-f]{7}|[0-9.]+)/.exec(stdout);
|
|
113
|
+
if (!matches) {
|
|
114
|
+
throw new Error(`Cannot parse buildx version`);
|
|
115
|
+
}
|
|
116
|
+
return matches[1];
|
|
117
|
+
}
|
|
118
|
+
versionSatisfies(range, version) {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const ver = version !== null && version !== void 0 ? version : (yield this.version);
|
|
121
|
+
return semver.satisfies(ver, range) || /^[0-9a-f]{7}$/.exec(ver) !== null;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
getBuildImageIDFilePath() {
|
|
125
|
+
return path_1.default.join(this.context.tmpDir(), 'iidfile').split(path_1.default.sep).join(path_1.default.posix.sep);
|
|
126
|
+
}
|
|
127
|
+
getBuildMetadataFilePath() {
|
|
128
|
+
return path_1.default.join(this.context.tmpDir(), 'metadata-file').split(path_1.default.sep).join(path_1.default.posix.sep);
|
|
129
|
+
}
|
|
130
|
+
getBuildImageID() {
|
|
131
|
+
const iidFile = this.getBuildImageIDFilePath();
|
|
132
|
+
if (!fs_1.default.existsSync(iidFile)) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
return fs_1.default.readFileSync(iidFile, { encoding: 'utf-8' }).trim();
|
|
136
|
+
}
|
|
137
|
+
getBuildMetadata() {
|
|
138
|
+
const metadataFile = this.getBuildMetadataFilePath();
|
|
139
|
+
if (!fs_1.default.existsSync(metadataFile)) {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
const content = fs_1.default.readFileSync(metadataFile, { encoding: 'utf-8' }).trim();
|
|
143
|
+
if (content === 'null') {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
return content;
|
|
147
|
+
}
|
|
148
|
+
getDigest() {
|
|
149
|
+
const metadata = this.getBuildMetadata();
|
|
150
|
+
if (metadata === undefined) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
const metadataJSON = JSON.parse(metadata);
|
|
154
|
+
if (metadataJSON['containerimage.digest']) {
|
|
155
|
+
return metadataJSON['containerimage.digest'];
|
|
156
|
+
}
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
generateBuildSecretString(kvp) {
|
|
160
|
+
return this.generateBuildSecret(kvp, false);
|
|
161
|
+
}
|
|
162
|
+
generateBuildSecretFile(kvp) {
|
|
163
|
+
return this.generateBuildSecret(kvp, true);
|
|
164
|
+
}
|
|
165
|
+
generateBuildSecret(kvp, file) {
|
|
166
|
+
const delimiterIndex = kvp.indexOf('=');
|
|
167
|
+
const key = kvp.substring(0, delimiterIndex);
|
|
168
|
+
let value = kvp.substring(delimiterIndex + 1);
|
|
169
|
+
if (key.length == 0 || value.length == 0) {
|
|
170
|
+
throw new Error(`${kvp} is not a valid secret`);
|
|
171
|
+
}
|
|
172
|
+
if (file) {
|
|
173
|
+
if (!fs_1.default.existsSync(value)) {
|
|
174
|
+
throw new Error(`secret file ${value} not found`);
|
|
175
|
+
}
|
|
176
|
+
value = fs_1.default.readFileSync(value, { encoding: 'utf-8' });
|
|
177
|
+
}
|
|
178
|
+
const secretFile = this.context.tmpName({ tmpdir: this.context.tmpDir() });
|
|
179
|
+
fs_1.default.writeFileSync(secretFile, value);
|
|
180
|
+
return `id=${key},src=${secretFile}`;
|
|
181
|
+
}
|
|
182
|
+
getProvenanceInput(name) {
|
|
183
|
+
const input = core.getInput(name);
|
|
184
|
+
if (!input) {
|
|
185
|
+
// if input is not set returns empty string
|
|
186
|
+
return input;
|
|
187
|
+
}
|
|
188
|
+
const builderID = this.context.provenanceBuilderID;
|
|
189
|
+
try {
|
|
190
|
+
return core.getBooleanInput(name) ? `builder-id=${builderID}` : 'false';
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
// not a valid boolean, so we assume it's a string
|
|
194
|
+
return this.getProvenanceAttrs(input);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
getProvenanceAttrs(input) {
|
|
198
|
+
if (!input) {
|
|
199
|
+
return `builder-id=${this.context.provenanceBuilderID}`;
|
|
200
|
+
}
|
|
201
|
+
// parse attributes from input
|
|
202
|
+
const fields = (0, sync_1.parse)(input, {
|
|
203
|
+
relaxColumnCount: true,
|
|
204
|
+
skipEmptyLines: true
|
|
205
|
+
})[0];
|
|
206
|
+
// check if builder-id attribute exists in the input
|
|
207
|
+
for (const field of fields) {
|
|
208
|
+
const parts = field
|
|
209
|
+
.toString()
|
|
210
|
+
.split(/(?<=^[^=]+?)=/)
|
|
211
|
+
.map(item => item.trim());
|
|
212
|
+
if (parts[0] == 'builder-id') {
|
|
213
|
+
return input;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// if not add builder-id attribute
|
|
217
|
+
return `${input},builder-id=${this.context.provenanceBuilderID}`;
|
|
218
|
+
}
|
|
219
|
+
static hasLocalExporter(exporters) {
|
|
220
|
+
return Buildx.hasExporterType('local', exporters);
|
|
221
|
+
}
|
|
222
|
+
static hasTarExporter(exporters) {
|
|
223
|
+
return Buildx.hasExporterType('tar', exporters);
|
|
224
|
+
}
|
|
225
|
+
static hasDockerExporter(exporters, load) {
|
|
226
|
+
return load !== null && load !== void 0 ? load : Buildx.hasExporterType('docker', exporters);
|
|
227
|
+
}
|
|
228
|
+
static hasExporterType(name, exporters) {
|
|
229
|
+
const records = (0, sync_1.parse)(exporters.join(`\n`), {
|
|
230
|
+
delimiter: ',',
|
|
231
|
+
trim: true,
|
|
232
|
+
columns: false,
|
|
233
|
+
relaxColumnCount: true
|
|
234
|
+
});
|
|
235
|
+
for (const record of records) {
|
|
236
|
+
if (record.length == 1 && !record[0].startsWith('type=')) {
|
|
237
|
+
// Local if no type is defined
|
|
238
|
+
// https://github.com/docker/buildx/blob/d2bf42f8b4784d83fde17acb3ed84703ddc2156b/build/output.go#L29-L43
|
|
239
|
+
return name == 'local';
|
|
240
|
+
}
|
|
241
|
+
for (const [key, value] of record.map(chunk => chunk.split('=').map(item => item.trim()))) {
|
|
242
|
+
if (key == 'type' && value == name) {
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
static hasGitAuthTokenSecret(secrets) {
|
|
250
|
+
for (const secret of secrets) {
|
|
251
|
+
if (secret.startsWith('GIT_AUTH_TOKEN=')) {
|
|
252
|
+
return true;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
exports.Buildx = Buildx;
|
|
259
|
+
//# sourceMappingURL=buildx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildx.js","sourceRoot":"","sources":["../src/buildx.ts"],"names":[],"mappings":"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"}
|
package/lib/context.d.ts
ADDED
package/lib/context.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Context = void 0;
|
|
30
|
+
const fs_1 = __importDefault(require("fs"));
|
|
31
|
+
const os_1 = __importDefault(require("os"));
|
|
32
|
+
const path_1 = __importDefault(require("path"));
|
|
33
|
+
const tmp = __importStar(require("tmp"));
|
|
34
|
+
const github = __importStar(require("@actions/github"));
|
|
35
|
+
const github_1 = require("./github");
|
|
36
|
+
class Context {
|
|
37
|
+
constructor() {
|
|
38
|
+
this._tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'docker-actions-toolkit-')).split(path_1.default.sep).join(path_1.default.posix.sep);
|
|
39
|
+
this.gitRef = github.context.ref;
|
|
40
|
+
if (github.context.sha && this.gitRef && !this.gitRef.startsWith('refs/')) {
|
|
41
|
+
this.gitRef = `refs/heads/${github.context.ref}`;
|
|
42
|
+
}
|
|
43
|
+
if (github.context.sha && !this.gitRef.startsWith(`refs/pull/`)) {
|
|
44
|
+
this.gitRef = github.context.sha;
|
|
45
|
+
}
|
|
46
|
+
this.buildGitContext = `${github_1.GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}.git#${this.gitRef}`;
|
|
47
|
+
this.provenanceBuilderID = `${github_1.GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}/actions/runs/${github.context.runId}`;
|
|
48
|
+
}
|
|
49
|
+
tmpDir() {
|
|
50
|
+
return this._tmpDir;
|
|
51
|
+
}
|
|
52
|
+
tmpName(options) {
|
|
53
|
+
return tmp.tmpNameSync(options);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.Context = Context;
|
|
57
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,yCAA2B;AAC3B,wDAA0C;AAE1C,qCAAgC;AAEhC,MAAa,OAAO;IAOlB;QAFiB,YAAO,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAGhI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QACjC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACzE,IAAI,CAAC,MAAM,GAAG,cAAc,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SAClD;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SAClC;QACD,IAAI,CAAC,eAAe,GAAG,GAAG,eAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACzH,IAAI,CAAC,mBAAmB,GAAG,GAAG,eAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjJ,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,OAAO,CAAC,OAA4B;QACzC,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;CACF;AA1BD,0BA0BC"}
|
package/lib/docker.d.ts
ADDED
package/lib/docker.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.Docker = void 0;
|
|
36
|
+
const exec = __importStar(require("@actions/exec"));
|
|
37
|
+
class Docker {
|
|
38
|
+
static isAvailable() {
|
|
39
|
+
let dockerAvailable = false;
|
|
40
|
+
exec
|
|
41
|
+
.getExecOutput('docker', undefined, {
|
|
42
|
+
ignoreReturnCode: true,
|
|
43
|
+
silent: true
|
|
44
|
+
})
|
|
45
|
+
.then(res => {
|
|
46
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
47
|
+
dockerAvailable = false;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
dockerAvailable = res.exitCode == 0;
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
54
|
+
.catch(error => {
|
|
55
|
+
dockerAvailable = false;
|
|
56
|
+
});
|
|
57
|
+
return dockerAvailable;
|
|
58
|
+
}
|
|
59
|
+
static printVersion(standalone) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const noDocker = standalone !== null && standalone !== void 0 ? standalone : !Docker.isAvailable();
|
|
62
|
+
if (noDocker) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
yield exec.exec('docker', ['version'], {
|
|
66
|
+
failOnStdErr: false
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
static printInfo(standalone) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const noDocker = standalone !== null && standalone !== void 0 ? standalone : !Docker.isAvailable();
|
|
73
|
+
if (noDocker) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
yield exec.exec('docker', ['info'], {
|
|
77
|
+
failOnStdErr: false
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.Docker = Docker;
|
|
83
|
+
//# sourceMappingURL=docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,MAAa,MAAM;IACV,MAAM,CAAC,WAAW;QACvB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI;aACD,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE;YAClC,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;SACb,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,EAAE;YACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;gBAC9C,eAAe,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,eAAe,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;aACrC;QACH,CAAC,CAAC;YACF,6DAA6D;aAC5D,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;QACL,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,MAAM,CAAO,YAAY,CAAC,UAAoB;;YACnD,MAAM,QAAQ,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrD,IAAI,QAAQ,EAAE;gBACZ,OAAO;aACR;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;gBACrC,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAO,SAAS,CAAC,UAAoB;;YAChD,MAAM,QAAQ,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrD,IAAI,QAAQ,EAAE;gBACZ,OAAO;aACR;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;gBAClC,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAzCD,wBAyCC"}
|
package/lib/git.d.ts
ADDED
package/lib/git.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.Git = void 0;
|
|
36
|
+
const exec = __importStar(require("@actions/exec"));
|
|
37
|
+
class Git {
|
|
38
|
+
static getRemoteSha(repo, ref) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
return yield exec
|
|
41
|
+
.getExecOutput(`git`, ['ls-remote', repo, ref], {
|
|
42
|
+
ignoreReturnCode: true,
|
|
43
|
+
silent: true
|
|
44
|
+
})
|
|
45
|
+
.then(res => {
|
|
46
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
47
|
+
throw new Error(res.stderr);
|
|
48
|
+
}
|
|
49
|
+
const [rsha] = res.stdout.trim().split(/[\s\t]/);
|
|
50
|
+
if (rsha.length == 0) {
|
|
51
|
+
throw new Error(`Cannot find remote ref for ${repo}#${ref}`);
|
|
52
|
+
}
|
|
53
|
+
return rsha;
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.Git = Git;
|
|
59
|
+
//# sourceMappingURL=git.js.map
|
package/lib/git.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,MAAa,GAAG;IACP,MAAM,CAAO,YAAY,CAAC,IAAY,EAAE,GAAW;;YACxD,OAAO,MAAM,IAAI;iBACd,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;gBAC9C,gBAAgB,EAAE,IAAI;gBACtB,MAAM,EAAE,IAAI;aACb,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;oBAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAC7B;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;iBAC9D;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;CACF;AAlBD,kBAkBC"}
|
package/lib/github.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { GitHub as Octokit } from '@actions/github/lib/utils';
|
|
2
|
+
import { components as OctoOpenApiTypes } from '@octokit/openapi-types';
|
|
3
|
+
import { JwtPayload } from 'jwt-decode';
|
|
4
|
+
import { Context } from '@actions/github/lib/context';
|
|
5
|
+
export type GitHubRepo = OctoOpenApiTypes['schemas']['repository'];
|
|
6
|
+
export interface GitHubActionsRuntimeToken extends JwtPayload {
|
|
7
|
+
ac?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface GitHubOpts {
|
|
10
|
+
token?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class GitHub {
|
|
13
|
+
static readonly serverURL: string;
|
|
14
|
+
readonly octokit: InstanceType<typeof Octokit>;
|
|
15
|
+
constructor(opts?: GitHubOpts);
|
|
16
|
+
get context(): Context;
|
|
17
|
+
get serverURL(): string;
|
|
18
|
+
get actionsRuntimeToken(): GitHubActionsRuntimeToken;
|
|
19
|
+
repoData(): Promise<GitHubRepo>;
|
|
20
|
+
}
|
package/lib/github.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.GitHub = void 0;
|
|
30
|
+
const github = __importStar(require("@actions/github"));
|
|
31
|
+
const jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
32
|
+
class GitHub {
|
|
33
|
+
constructor(opts) {
|
|
34
|
+
this.octokit = github.getOctokit(`${opts === null || opts === void 0 ? void 0 : opts.token}`);
|
|
35
|
+
}
|
|
36
|
+
get context() {
|
|
37
|
+
return github.context;
|
|
38
|
+
}
|
|
39
|
+
get serverURL() {
|
|
40
|
+
return process.env.GITHUB_SERVER_URL || 'https://github.com';
|
|
41
|
+
}
|
|
42
|
+
get actionsRuntimeToken() {
|
|
43
|
+
const token = process.env['ACTIONS_RUNTIME_TOKEN'] || '';
|
|
44
|
+
return token ? (0, jwt_decode_1.default)(token) : {};
|
|
45
|
+
}
|
|
46
|
+
repoData() {
|
|
47
|
+
return this.octokit.rest.repos.get(Object.assign({}, github.context.repo)).then(response => response.data);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.GitHub = GitHub;
|
|
51
|
+
GitHub.serverURL = process.env.GITHUB_SERVER_URL || 'https://github.com';
|
|
52
|
+
//# sourceMappingURL=github.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAE1C,4DAAkD;AAalD,MAAa,MAAM;IAIjB,YAAY,IAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;IAC/D,CAAC;IAED,IAAI,mBAAmB;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,oBAAU,EAA4B,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,mBAAK,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAkB,CAAC,CAAC;IAC7G,CAAC;;AAvBH,wBAwBC;AAvBwB,gBAAS,GAAW,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC"}
|
package/lib/toolkit.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Context } from './context';
|
|
2
|
+
import { Buildx } from './buildx';
|
|
3
|
+
import { BuildKit } from './buildkit';
|
|
4
|
+
import { GitHub } from './github';
|
|
5
|
+
export { Builder, BuilderOpts, BuilderInfo, NodeInfo } from './builder';
|
|
6
|
+
export { BuildKit, BuildKitOpts } from './buildkit';
|
|
7
|
+
export { Buildx, BuildxOpts } from './buildx';
|
|
8
|
+
export { Context } from './context';
|
|
9
|
+
export { Docker } from './docker';
|
|
10
|
+
export { Git } from './git';
|
|
11
|
+
export { GitHub, GitHubRepo, GitHubActionsRuntimeToken } from './github';
|
|
12
|
+
export { Util } from './util';
|
|
13
|
+
export interface ToolkitOpts {
|
|
14
|
+
/**
|
|
15
|
+
* GitHub token to use for authentication.
|
|
16
|
+
* Uses `process.env.GITHUB_TOKEN` by default.
|
|
17
|
+
*/
|
|
18
|
+
githubToken?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare class Toolkit {
|
|
21
|
+
context: Context;
|
|
22
|
+
github: GitHub;
|
|
23
|
+
buildx: Buildx;
|
|
24
|
+
buildkit: BuildKit;
|
|
25
|
+
constructor(opts?: ToolkitOpts);
|
|
26
|
+
}
|
package/lib/toolkit.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Toolkit = exports.Util = exports.GitHub = exports.Git = exports.Docker = exports.Context = exports.Buildx = exports.BuildKit = exports.Builder = void 0;
|
|
4
|
+
const context_1 = require("./context");
|
|
5
|
+
const buildx_1 = require("./buildx");
|
|
6
|
+
const buildkit_1 = require("./buildkit");
|
|
7
|
+
const github_1 = require("./github");
|
|
8
|
+
var builder_1 = require("./builder");
|
|
9
|
+
Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return builder_1.Builder; } });
|
|
10
|
+
var buildkit_2 = require("./buildkit");
|
|
11
|
+
Object.defineProperty(exports, "BuildKit", { enumerable: true, get: function () { return buildkit_2.BuildKit; } });
|
|
12
|
+
var buildx_2 = require("./buildx");
|
|
13
|
+
Object.defineProperty(exports, "Buildx", { enumerable: true, get: function () { return buildx_2.Buildx; } });
|
|
14
|
+
var context_2 = require("./context");
|
|
15
|
+
Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_2.Context; } });
|
|
16
|
+
var docker_1 = require("./docker");
|
|
17
|
+
Object.defineProperty(exports, "Docker", { enumerable: true, get: function () { return docker_1.Docker; } });
|
|
18
|
+
var git_1 = require("./git");
|
|
19
|
+
Object.defineProperty(exports, "Git", { enumerable: true, get: function () { return git_1.Git; } });
|
|
20
|
+
var github_2 = require("./github");
|
|
21
|
+
Object.defineProperty(exports, "GitHub", { enumerable: true, get: function () { return github_2.GitHub; } });
|
|
22
|
+
var util_1 = require("./util");
|
|
23
|
+
Object.defineProperty(exports, "Util", { enumerable: true, get: function () { return util_1.Util; } });
|
|
24
|
+
class Toolkit {
|
|
25
|
+
constructor(opts = {}) {
|
|
26
|
+
this.context = new context_1.Context();
|
|
27
|
+
this.github = new github_1.GitHub({ token: opts.githubToken });
|
|
28
|
+
this.buildx = new buildx_1.Buildx({ context: this.context });
|
|
29
|
+
this.buildkit = new buildkit_1.BuildKit({ context: this.context, buildx: this.buildx });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.Toolkit = Toolkit;
|
|
33
|
+
//# sourceMappingURL=toolkit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAClC,qCAAgC;AAChC,yCAAoC;AACpC,qCAAgC;AAEhC,qCAAsE;AAA9D,kGAAA,OAAO,OAAA;AACf,uCAAkD;AAA1C,oGAAA,QAAQ,OAAA;AAChB,mCAA4C;AAApC,gGAAA,MAAM,OAAA;AACd,qCAAkC;AAA1B,kGAAA,OAAO,OAAA;AACf,mCAAgC;AAAxB,gGAAA,MAAM,OAAA;AACd,6BAA0B;AAAlB,0FAAA,GAAG,OAAA;AACX,mCAAuE;AAA/D,gGAAA,MAAM,OAAA;AACd,+BAA4B;AAApB,4FAAA,IAAI,OAAA;AAUZ,MAAa,OAAO;IAMlB,YAAY,OAAoB,EAAE;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAZD,0BAYC"}
|