jsii-release 0.2.674 → 0.2.676
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/.gitattributes +1 -1
- package/.projenrc.ts +25 -10
- package/README.md +27 -0
- package/bin/publib-ca +2 -0
- package/lib/bin/publib-ca.d.ts +1 -0
- package/lib/bin/publib-ca.js +154 -0
- package/lib/codeartifact/codeartifact-cli.d.ts +31 -0
- package/lib/codeartifact/codeartifact-cli.js +133 -0
- package/lib/codeartifact/codeartifact-repo.d.ts +69 -0
- package/lib/codeartifact/codeartifact-repo.js +299 -0
- package/lib/codeartifact/display.d.ts +1 -0
- package/lib/codeartifact/display.js +11 -0
- package/lib/codeartifact/files.d.ts +15 -0
- package/lib/codeartifact/files.js +104 -0
- package/lib/codeartifact/shell.d.ts +51 -0
- package/lib/codeartifact/shell.js +132 -0
- package/lib/codeartifact/staging/maven.d.ts +5 -0
- package/lib/codeartifact/staging/maven.js +120 -0
- package/lib/codeartifact/staging/npm.d.ts +4 -0
- package/lib/codeartifact/staging/npm.js +84 -0
- package/lib/codeartifact/staging/nuget.d.ts +4 -0
- package/lib/codeartifact/staging/nuget.js +76 -0
- package/lib/codeartifact/staging/parallel-shell.d.ts +6 -0
- package/lib/codeartifact/staging/parallel-shell.js +49 -0
- package/lib/codeartifact/staging/pip.d.ts +4 -0
- package/lib/codeartifact/staging/pip.js +52 -0
- package/lib/codeartifact/usage-dir.d.ts +55 -0
- package/lib/codeartifact/usage-dir.js +160 -0
- package/lib/help/corking.d.ts +15 -0
- package/lib/help/corking.js +57 -0
- package/lib/help/shell.d.ts +4 -0
- package/lib/help/shell.js +4 -2
- package/lib/help/sleep.d.ts +1 -0
- package/lib/help/sleep.js +8 -0
- package/package.json +16 -2
- package/package.json.bak +16 -2
package/.gitattributes
CHANGED
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
/.gitattributes linguist-generated
|
|
6
6
|
/.github/pull_request_template.md linguist-generated
|
|
7
7
|
/.github/workflows/auto-approve.yml linguist-generated
|
|
8
|
+
/.github/workflows/auto-merge.yml linguist-generated
|
|
8
9
|
/.github/workflows/build.yml linguist-generated
|
|
9
10
|
/.github/workflows/integ.yml linguist-generated
|
|
10
11
|
/.github/workflows/pull-request-lint.yml linguist-generated
|
|
11
12
|
/.github/workflows/release.yml linguist-generated
|
|
12
13
|
/.github/workflows/upgrade-main.yml linguist-generated
|
|
13
14
|
/.gitignore linguist-generated
|
|
14
|
-
/.mergify.yml linguist-generated
|
|
15
15
|
/.npmignore linguist-generated
|
|
16
16
|
/.npmrc linguist-generated
|
|
17
17
|
/.projen/** linguist-generated
|
package/.projenrc.ts
CHANGED
|
@@ -1,26 +1,38 @@
|
|
|
1
1
|
import { readdirSync } from 'fs';
|
|
2
|
-
import
|
|
2
|
+
import * as cdklabs from 'cdklabs-projen-project-types';
|
|
3
|
+
import { github } from 'projen';
|
|
3
4
|
|
|
4
|
-
const project = new
|
|
5
|
+
const project = new cdklabs.CdklabsTypeScriptProject({
|
|
6
|
+
private: false,
|
|
5
7
|
projenrcTs: true,
|
|
6
8
|
defaultReleaseBranch: 'main',
|
|
7
9
|
name: 'publib',
|
|
8
10
|
description: 'Release jsii modules to multiple package managers',
|
|
9
11
|
releaseToNpm: true,
|
|
10
12
|
repository: 'https://github.com/cdklabs/publib.git',
|
|
11
|
-
authorName: 'Amazon Web Services',
|
|
12
|
-
authorOrganization: true,
|
|
13
13
|
authorUrl: 'https://aws.amazon.com',
|
|
14
14
|
homepage: 'https://github.com/cdklabs/publib',
|
|
15
|
-
autoApproveOptions: {
|
|
16
|
-
allowedUsernames: ['cdklabs-automation'],
|
|
17
|
-
secret: 'GITHUB_TOKEN',
|
|
18
|
-
},
|
|
19
15
|
devDeps: [
|
|
20
16
|
'ts-node',
|
|
21
17
|
'@aws-sdk/client-sts',
|
|
18
|
+
'@types/glob',
|
|
19
|
+
'@types/node@^14.17.0',
|
|
20
|
+
'@types/yargs@^17',
|
|
21
|
+
'cdklabs-projen-project-types',
|
|
22
22
|
],
|
|
23
23
|
autoApproveUpgrades: true,
|
|
24
|
+
deps: [
|
|
25
|
+
'@aws-sdk/client-codeartifact',
|
|
26
|
+
'@aws-sdk/credential-providers',
|
|
27
|
+
'@aws-sdk/types',
|
|
28
|
+
'glob@10.0.0', // Can't use a newer version of glob, it adds a CLI that depends on 'jackspeak' which has crazy dependencies
|
|
29
|
+
'yargs@^17',
|
|
30
|
+
'p-queue@6', // Last non-ESM version
|
|
31
|
+
],
|
|
32
|
+
workflowNodeVersion: '16.x',
|
|
33
|
+
minNodeVersion: '16.0.0',
|
|
34
|
+
enablePRAutoMerge: true,
|
|
35
|
+
setNodeEngineVersion: false,
|
|
24
36
|
});
|
|
25
37
|
|
|
26
38
|
// we can't use 9.x because it doesn't work with node 10.
|
|
@@ -44,6 +56,10 @@ for (const f of readdirSync('./bin').filter(file => file.startsWith('publib')))
|
|
|
44
56
|
project.addBins({ [shim]: './bin/jsii-release-shim' });
|
|
45
57
|
}
|
|
46
58
|
|
|
59
|
+
const integ = project.addTask('integ');
|
|
60
|
+
// This replaces the 'testMatch' in package.json with a different glob
|
|
61
|
+
integ.exec('jest --testMatch "<rootDir>/test/**/*.integ.ts"');
|
|
62
|
+
|
|
47
63
|
//////////////////////////////////////////////////////////////////////
|
|
48
64
|
|
|
49
65
|
const test = github.GitHub.of(project)?.addWorkflow('integ');
|
|
@@ -133,8 +149,7 @@ test?.addJob('test', {
|
|
|
133
149
|
},
|
|
134
150
|
{
|
|
135
151
|
name: 'Run integration tests',
|
|
136
|
-
|
|
137
|
-
run: 'npx jest --testMatch "<rootDir>/test/**/*.integ.ts"',
|
|
152
|
+
run: 'yarn integ',
|
|
138
153
|
},
|
|
139
154
|
],
|
|
140
155
|
});
|
package/README.md
CHANGED
|
@@ -230,6 +230,33 @@ Repository tags will be in the following format:
|
|
|
230
230
|
|`GIT_COMMIT_MESSAGE`|Optional|The commit message. Defaults to 'chore(release): $VERSION'.|
|
|
231
231
|
|`DRYRUN`|Optional|Set to "true" for a dry run.|
|
|
232
232
|
|
|
233
|
+
## Publish to CodeArtifact for testing
|
|
234
|
+
|
|
235
|
+
This package contains the `publib-ca` CLI tool which is intended to use to publish
|
|
236
|
+
packages to CodeArtifact for testing (in a pipeline, before publishing to the
|
|
237
|
+
actual public package managers).
|
|
238
|
+
|
|
239
|
+
Use the following commands:
|
|
240
|
+
|
|
241
|
+
`publib-ca create [--no-gc] [--no-login]` creates a new CodeArtifact repository
|
|
242
|
+
with a random name, with upstreams configured for all supported public package
|
|
243
|
+
managers. By default this command runs the `gc` and `login` subcommands
|
|
244
|
+
automatically.
|
|
245
|
+
|
|
246
|
+
`publib-ca login --repo NAME [--cmd COMMAND]` logs in to a CodeArtifact repository and prepares some files that configure package managers for use with this CodeArtifact repository. If `--cmd` is given, the command is run in an environment
|
|
247
|
+
where all supported package managers have been configured for the given repository.
|
|
248
|
+
Otherwise, activate these settings in the current bash shell by running
|
|
249
|
+
`source ~/.publib-ca/usage/activate.bash`. This will set some
|
|
250
|
+
environment variables and copy some files into the current directory. (Note: the
|
|
251
|
+
CodeArtifact repository used here does not have to be created using `publib-ca create`. It
|
|
252
|
+
is fine if it already existed beforehand).
|
|
253
|
+
|
|
254
|
+
`publib-ca gc` collects old repositories created using `publib-ca create`.
|
|
255
|
+
|
|
256
|
+
`publib-ca publish [--repo NAME] DIRECTORY` publishes all packages in the given
|
|
257
|
+
directory to the given repository. If `--repo` is not given, the most recently
|
|
258
|
+
logged-into repository is used, if the login session is still valid.
|
|
259
|
+
|
|
233
260
|
## Roadmap
|
|
234
261
|
|
|
235
262
|
* [X] GitHub Support: Maven
|
package/bin/publib-ca
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
|
@@ -0,0 +1,154 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.main = void 0;
|
|
27
|
+
/**
|
|
28
|
+
* Publib CodeArtifact CLI
|
|
29
|
+
*/
|
|
30
|
+
/* eslint-disable no-console */
|
|
31
|
+
const yargs = __importStar(require("yargs"));
|
|
32
|
+
const codeartifact_cli_1 = require("../codeartifact/codeartifact-cli");
|
|
33
|
+
const display_1 = require("../codeartifact/display");
|
|
34
|
+
async function main() {
|
|
35
|
+
await yargs
|
|
36
|
+
.usage('$0 <command>')
|
|
37
|
+
.option('assume-role-arn', {
|
|
38
|
+
description: 'Role to assume before doing CodeArtifact calls',
|
|
39
|
+
alias: 'a',
|
|
40
|
+
requiresArg: true,
|
|
41
|
+
type: 'string',
|
|
42
|
+
})
|
|
43
|
+
.command('create', 'Create a temporary CodeArtifact repository with upstreams', cmd => cmd
|
|
44
|
+
.option('gc', {
|
|
45
|
+
description: 'Garbage collect old repositories',
|
|
46
|
+
type: 'boolean',
|
|
47
|
+
default: true,
|
|
48
|
+
})
|
|
49
|
+
.option('login', {
|
|
50
|
+
description: 'Automatically log in to the newly created repository',
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
default: true,
|
|
53
|
+
}), async (args) => {
|
|
54
|
+
const cli = new codeartifact_cli_1.CodeArtifactCli({
|
|
55
|
+
assumeRoleArn: args['assume-role-arn'],
|
|
56
|
+
});
|
|
57
|
+
if (args.gc) {
|
|
58
|
+
await cli.gc();
|
|
59
|
+
}
|
|
60
|
+
const repoName = await cli.create();
|
|
61
|
+
console.log(repoName);
|
|
62
|
+
if (args.login) {
|
|
63
|
+
await cli.login(repoName);
|
|
64
|
+
cli.usageDir.advertise();
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
.command('gc', 'Clean up day-old testing repositories', cmd => cmd, async (args) => {
|
|
68
|
+
const cli = new codeartifact_cli_1.CodeArtifactCli({
|
|
69
|
+
assumeRoleArn: args['assume-role-arn'],
|
|
70
|
+
});
|
|
71
|
+
await cli.gc();
|
|
72
|
+
})
|
|
73
|
+
.command('login', 'Login to a given repository', cmd => cmd
|
|
74
|
+
.option('repo', {
|
|
75
|
+
alias: 'r',
|
|
76
|
+
description: 'Name of the repository to log in to',
|
|
77
|
+
type: 'string',
|
|
78
|
+
requiresArg: true,
|
|
79
|
+
})
|
|
80
|
+
.option('cmd', {
|
|
81
|
+
alias: 'c',
|
|
82
|
+
description: 'Run a command in a shell set up for the target repository',
|
|
83
|
+
type: 'string',
|
|
84
|
+
requiresArg: true,
|
|
85
|
+
}), async (args) => {
|
|
86
|
+
const cli = new codeartifact_cli_1.CodeArtifactCli({
|
|
87
|
+
assumeRoleArn: args['assume-role-arn'],
|
|
88
|
+
});
|
|
89
|
+
await cli.login(args.repo);
|
|
90
|
+
if (args.cmd) {
|
|
91
|
+
await cli.runCommand(args.cmd);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
cli.usageDir.advertise();
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
.command('shell', 'Start a subshell with the repository activated', cmd => cmd
|
|
98
|
+
.option('repo', {
|
|
99
|
+
alias: 'r',
|
|
100
|
+
description: 'Name of the repository to log in to',
|
|
101
|
+
type: 'string',
|
|
102
|
+
requiresArg: true,
|
|
103
|
+
demandOption: false,
|
|
104
|
+
}), async (args) => {
|
|
105
|
+
var _a;
|
|
106
|
+
const cli = new codeartifact_cli_1.CodeArtifactCli({
|
|
107
|
+
assumeRoleArn: args['assume-role-arn'],
|
|
108
|
+
});
|
|
109
|
+
const repo = await cli.login(args.repo);
|
|
110
|
+
const defaultShell = process.platform === 'win32' ? 'cmd' : 'bash';
|
|
111
|
+
(0, display_1.header)(`Shell activated for ${repo.repositoryName}`);
|
|
112
|
+
await cli.runInteractively((_a = process.env.SHELL) !== null && _a !== void 0 ? _a : defaultShell);
|
|
113
|
+
})
|
|
114
|
+
.command('publish <DIRECTORY>', 'Publish a given directory', cmd => cmd
|
|
115
|
+
.positional('DIRECTORY', {
|
|
116
|
+
descripton: 'Directory distribution',
|
|
117
|
+
type: 'string',
|
|
118
|
+
demandOption: true,
|
|
119
|
+
})
|
|
120
|
+
.option('repo', {
|
|
121
|
+
alias: 'r',
|
|
122
|
+
description: 'Name of the repository to create (default: generate unique name)',
|
|
123
|
+
type: 'string',
|
|
124
|
+
requiresArg: true,
|
|
125
|
+
}), async (args) => {
|
|
126
|
+
const cli = new codeartifact_cli_1.CodeArtifactCli({
|
|
127
|
+
assumeRoleArn: args['assume-role-arn'],
|
|
128
|
+
});
|
|
129
|
+
await cli.publish(args.DIRECTORY, args.repo);
|
|
130
|
+
})
|
|
131
|
+
.command('delete', 'Delete testing repository', cmd => cmd
|
|
132
|
+
.option('repo', {
|
|
133
|
+
alias: 'r',
|
|
134
|
+
description: 'Name of the repository to cleanup (default: most recently logged in to)',
|
|
135
|
+
type: 'string',
|
|
136
|
+
requiresArg: true,
|
|
137
|
+
}), async (args) => {
|
|
138
|
+
const cli = new codeartifact_cli_1.CodeArtifactCli({
|
|
139
|
+
assumeRoleArn: args['assume-role-arn'],
|
|
140
|
+
});
|
|
141
|
+
await cli.delete(args.repo);
|
|
142
|
+
})
|
|
143
|
+
.demandCommand(1, 'You must supply a command')
|
|
144
|
+
.help()
|
|
145
|
+
.showHelpOnFail(false)
|
|
146
|
+
.parse();
|
|
147
|
+
}
|
|
148
|
+
exports.main = main;
|
|
149
|
+
main().catch(e => {
|
|
150
|
+
// eslint-disable-next-line no-console
|
|
151
|
+
console.error(e);
|
|
152
|
+
process.exitCode = 1;
|
|
153
|
+
});
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGliLWNhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9wdWJsaWItY2EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILCtCQUErQjtBQUMvQiw2Q0FBK0I7QUFDL0IsdUVBQW1FO0FBQ25FLHFEQUFpRDtBQUUxQyxLQUFLLFVBQVUsSUFBSTtJQUN4QixNQUFNLEtBQUs7U0FDUixLQUFLLENBQUMsY0FBYyxDQUFDO1NBQ3JCLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtRQUN6QixXQUFXLEVBQUUsZ0RBQWdEO1FBQzdELEtBQUssRUFBRSxHQUFHO1FBQ1YsV0FBVyxFQUFFLElBQUk7UUFDakIsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDO1NBQ0QsT0FBTyxDQUFDLFFBQVEsRUFBRSwyREFBMkQsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUc7U0FDdkYsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNaLFdBQVcsRUFBRSxrQ0FBa0M7UUFDL0MsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUM7U0FDRCxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2YsV0FBVyxFQUFFLHNEQUFzRDtRQUNuRSxJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUVuQixNQUFNLEdBQUcsR0FBRyxJQUFJLGtDQUFlLENBQUM7WUFDOUIsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDWCxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUNoQjtRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLE9BQU8s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QUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2Ysc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYiBDb2RlQXJ0aWZhY3QgQ0xJXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCB7IENvZGVBcnRpZmFjdENsaSB9IGZyb20gJy4uL2NvZGVhcnRpZmFjdC9jb2RlYXJ0aWZhY3QtY2xpJztcbmltcG9ydCB7IGhlYWRlciB9IGZyb20gJy4uL2NvZGVhcnRpZmFjdC9kaXNwbGF5JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGF3YWl0IHlhcmdzXG4gICAgLnVzYWdlKCckMCA8Y29tbWFuZD4nKVxuICAgIC5vcHRpb24oJ2Fzc3VtZS1yb2xlLWFybicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUm9sZSB0byBhc3N1bWUgYmVmb3JlIGRvaW5nIENvZGVBcnRpZmFjdCBjYWxscycsXG4gICAgICBhbGlhczogJ2EnLFxuICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9KVxuICAgIC5jb21tYW5kKCdjcmVhdGUnLCAnQ3JlYXRlIGEgdGVtcG9yYXJ5IENvZGVBcnRpZmFjdCByZXBvc2l0b3J5IHdpdGggdXBzdHJlYW1zJywgY21kID0+IGNtZFxuICAgICAgLm9wdGlvbignZ2MnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnR2FyYmFnZSBjb2xsZWN0IG9sZCByZXBvc2l0b3JpZXMnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignbG9naW4nLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQXV0b21hdGljYWxseSBsb2cgaW4gdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcmVwb3NpdG9yeScsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0pLCBhc3luYyAoYXJncykgPT4ge1xuXG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGFyZ3MuZ2MpIHtcbiAgICAgICAgYXdhaXQgY2xpLmdjKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcG9OYW1lID0gYXdhaXQgY2xpLmNyZWF0ZSgpO1xuICAgICAgY29uc29sZS5sb2cocmVwb05hbWUpO1xuXG4gICAgICBpZiAoYXJncy5sb2dpbikge1xuICAgICAgICBhd2FpdCBjbGkubG9naW4ocmVwb05hbWUpO1xuICAgICAgICBjbGkudXNhZ2VEaXIuYWR2ZXJ0aXNlKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29tbWFuZCgnZ2MnLCAnQ2xlYW4gdXAgZGF5LW9sZCB0ZXN0aW5nIHJlcG9zaXRvcmllcycsIGNtZCA9PiBjbWQsIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGNsaS5nYygpO1xuICAgIH0pXG4gICAgLmNvbW1hbmQoJ2xvZ2luJywgJ0xvZ2luIHRvIGEgZ2l2ZW4gcmVwb3NpdG9yeScsIGNtZCA9PiBjbWRcbiAgICAgIC5vcHRpb24oJ3JlcG8nLCB7XG4gICAgICAgIGFsaWFzOiAncicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgcmVwb3NpdG9yeSB0byBsb2cgaW4gdG8nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignY21kJywge1xuICAgICAgICBhbGlhczogJ2MnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1J1biBhIGNvbW1hbmQgaW4gYSBzaGVsbCBzZXQgdXAgZm9yIHRoZSB0YXJnZXQgcmVwb3NpdG9yeScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgIH0pLCBhc3luYyAoYXJncykgPT4ge1xuXG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGNsaS5sb2dpbihhcmdzLnJlcG8pO1xuXG4gICAgICBpZiAoYXJncy5jbWQpIHtcbiAgICAgICAgYXdhaXQgY2xpLnJ1bkNvbW1hbmQoYXJncy5jbWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xpLnVzYWdlRGlyLmFkdmVydGlzZSgpO1xuICAgICAgfVxuICAgIH0pXG4gICAgLmNvbW1hbmQoJ3NoZWxsJywgJ1N0YXJ0IGEgc3Vic2hlbGwgd2l0aCB0aGUgcmVwb3NpdG9yeSBhY3RpdmF0ZWQnLCBjbWQgPT4gY21kXG4gICAgICAub3B0aW9uKCdyZXBvJywge1xuICAgICAgICBhbGlhczogJ3InLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gbG9nIGluIHRvJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICBkZW1hbmRPcHRpb246IGZhbHNlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJlcG8gPSBhd2FpdCBjbGkubG9naW4oYXJncy5yZXBvKTtcblxuICAgICAgY29uc3QgZGVmYXVsdFNoZWxsID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/ICdjbWQnIDogJ2Jhc2gnO1xuXG4gICAgICBoZWFkZXIoYFNoZWxsIGFjdGl2YXRlZCBmb3IgJHtyZXBvLnJlcG9zaXRvcnlOYW1lfWApO1xuICAgICAgYXdhaXQgY2xpLnJ1bkludGVyYWN0aXZlbHkocHJvY2Vzcy5lbnYuU0hFTEwgPz8gZGVmYXVsdFNoZWxsKTtcbiAgICB9KVxuICAgIC5jb21tYW5kKCdwdWJsaXNoIDxESVJFQ1RPUlk+JywgJ1B1Ymxpc2ggYSBnaXZlbiBkaXJlY3RvcnknLCBjbWQgPT4gY21kXG4gICAgICAucG9zaXRpb25hbCgnRElSRUNUT1JZJywge1xuICAgICAgICBkZXNjcmlwdG9uOiAnRGlyZWN0b3J5IGRpc3RyaWJ1dGlvbicsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZW1hbmRPcHRpb246IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbigncmVwbycsIHtcbiAgICAgICAgYWxpYXM6ICdyJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGNyZWF0ZSAoZGVmYXVsdDogZ2VuZXJhdGUgdW5pcXVlIG5hbWUpJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG5cbiAgICAgIGNvbnN0IGNsaSA9IG5ldyBDb2RlQXJ0aWZhY3RDbGkoe1xuICAgICAgICBhc3N1bWVSb2xlQXJuOiBhcmdzWydhc3N1bWUtcm9sZS1hcm4nXSxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgY2xpLnB1Ymxpc2goYXJncy5ESVJFQ1RPUlksIGFyZ3MucmVwbyk7XG4gICAgfSlcbiAgICAuY29tbWFuZCgnZGVsZXRlJywgJ0RlbGV0ZSB0ZXN0aW5nIHJlcG9zaXRvcnknLCBjbWQgPT4gY21kXG4gICAgICAub3B0aW9uKCdyZXBvJywge1xuICAgICAgICBhbGlhczogJ3InLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gY2xlYW51cCAoZGVmYXVsdDogbW9zdCByZWNlbnRseSBsb2dnZWQgaW4gdG8pJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG5cbiAgICAgIGNvbnN0IGNsaSA9IG5ldyBDb2RlQXJ0aWZhY3RDbGkoe1xuICAgICAgICBhc3N1bWVSb2xlQXJuOiBhcmdzWydhc3N1bWUtcm9sZS1hcm4nXSxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgY2xpLmRlbGV0ZShhcmdzLnJlcG8pO1xuICAgIH0pXG4gICAgLmRlbWFuZENvbW1hbmQoMSwgJ1lvdSBtdXN0IHN1cHBseSBhIGNvbW1hbmQnKVxuICAgIC5oZWxwKClcbiAgICAuc2hvd0hlbHBPbkZhaWwoZmFsc2UpXG4gICAgLnBhcnNlKCk7XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LoginInformation } from './codeartifact-repo';
|
|
2
|
+
import { UsageDir } from './usage-dir';
|
|
3
|
+
export interface CodeArtifactCliOptions {
|
|
4
|
+
readonly assumeRoleArn?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class CodeArtifactCli {
|
|
7
|
+
private readonly options;
|
|
8
|
+
readonly usageDir: UsageDir;
|
|
9
|
+
constructor(options?: CodeArtifactCliOptions);
|
|
10
|
+
private get repoOptions();
|
|
11
|
+
/**
|
|
12
|
+
* Create a random repository, return its name
|
|
13
|
+
*/
|
|
14
|
+
create(): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Delete the given repo
|
|
17
|
+
*/
|
|
18
|
+
delete(repoName?: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Log in to the given repo, write activation instructins to the usage dir
|
|
21
|
+
*/
|
|
22
|
+
login(repoName?: string): Promise<LoginInformation>;
|
|
23
|
+
publish(directory: string, repoName?: string): Promise<void>;
|
|
24
|
+
gc(): Promise<void>;
|
|
25
|
+
runCommand(command: string): Promise<void>;
|
|
26
|
+
runInteractively(command: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Return a CodeArtifactRepo object, either from the name argument or the most recently activated repository
|
|
29
|
+
*/
|
|
30
|
+
private repoFromName;
|
|
31
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.CodeArtifactCli = void 0;
|
|
27
|
+
const child_process = __importStar(require("child_process"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const credential_providers_1 = require("@aws-sdk/credential-providers");
|
|
30
|
+
const glob = __importStar(require("glob"));
|
|
31
|
+
const codeartifact_repo_1 = require("./codeartifact-repo");
|
|
32
|
+
const shell_1 = require("./shell");
|
|
33
|
+
const maven_1 = require("./staging/maven");
|
|
34
|
+
const npm_1 = require("./staging/npm");
|
|
35
|
+
const nuget_1 = require("./staging/nuget");
|
|
36
|
+
const pip_1 = require("./staging/pip");
|
|
37
|
+
const usage_dir_1 = require("./usage-dir");
|
|
38
|
+
const LOGIN_DATA_KEY = 'login';
|
|
39
|
+
class CodeArtifactCli {
|
|
40
|
+
constructor(options = {}) {
|
|
41
|
+
this.options = options;
|
|
42
|
+
this.usageDir = usage_dir_1.UsageDir.default();
|
|
43
|
+
}
|
|
44
|
+
get repoOptions() {
|
|
45
|
+
return {
|
|
46
|
+
credentials: this.options.assumeRoleArn ? (0, credential_providers_1.fromTemporaryCredentials)({
|
|
47
|
+
params: {
|
|
48
|
+
RoleArn: this.options.assumeRoleArn,
|
|
49
|
+
DurationSeconds: 3600,
|
|
50
|
+
RoleSessionName: 'publib-ca',
|
|
51
|
+
},
|
|
52
|
+
}) : undefined,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a random repository, return its name
|
|
57
|
+
*/
|
|
58
|
+
async create() {
|
|
59
|
+
const repo = await codeartifact_repo_1.CodeArtifactRepo.createRandom(this.repoOptions);
|
|
60
|
+
return repo.repositoryName;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Delete the given repo
|
|
64
|
+
*/
|
|
65
|
+
async delete(repoName) {
|
|
66
|
+
const repo = await this.repoFromName(repoName);
|
|
67
|
+
await repo.delete();
|
|
68
|
+
if (!repoName) {
|
|
69
|
+
await this.usageDir.delete();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Log in to the given repo, write activation instructins to the usage dir
|
|
74
|
+
*/
|
|
75
|
+
async login(repoName) {
|
|
76
|
+
const repo = await this.repoFromName(repoName);
|
|
77
|
+
const login = await repo.login();
|
|
78
|
+
await this.usageDir.reset();
|
|
79
|
+
await this.usageDir.putJson(LOGIN_DATA_KEY, login);
|
|
80
|
+
await this.usageDir.addToEnv({
|
|
81
|
+
CODEARTIFACT_REPO: login.repositoryName,
|
|
82
|
+
});
|
|
83
|
+
await (0, npm_1.npmLogin)(login, this.usageDir);
|
|
84
|
+
await (0, pip_1.pipLogin)(login, this.usageDir);
|
|
85
|
+
await (0, maven_1.mavenLogin)(login, this.usageDir);
|
|
86
|
+
await (0, nuget_1.nugetLogin)(login, this.usageDir);
|
|
87
|
+
return login;
|
|
88
|
+
}
|
|
89
|
+
async publish(directory, repoName) {
|
|
90
|
+
const repo = await this.repoFromName(repoName);
|
|
91
|
+
const login = await repo.login();
|
|
92
|
+
await (0, npm_1.uploadNpmPackages)(glob.sync(path.join(directory, 'js', '*.tgz')), login, this.usageDir);
|
|
93
|
+
await (0, pip_1.uploadPythonPackages)(glob.sync(path.join(directory, 'python', '*')), login);
|
|
94
|
+
await (0, maven_1.uploadJavaPackages)(glob.sync(path.join(directory, 'java', '**', '*.pom')), login, this.usageDir);
|
|
95
|
+
await (0, nuget_1.uploadDotnetPackages)(glob.sync(path.join(directory, 'dotnet', '**', '*.nupkg')), this.usageDir);
|
|
96
|
+
console.log('🛍 Configuring packages for upstream versions');
|
|
97
|
+
await repo.markAllUpstreamAllow();
|
|
98
|
+
}
|
|
99
|
+
async gc() {
|
|
100
|
+
await codeartifact_repo_1.CodeArtifactRepo.gc(this.repoOptions);
|
|
101
|
+
}
|
|
102
|
+
async runCommand(command) {
|
|
103
|
+
await this.usageDir.activateInCurrentProcess();
|
|
104
|
+
await (0, shell_1.shell)(command, {
|
|
105
|
+
shell: true,
|
|
106
|
+
show: 'always',
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
async runInteractively(command) {
|
|
110
|
+
await this.usageDir.activateInCurrentProcess();
|
|
111
|
+
child_process.execSync(command, {
|
|
112
|
+
env: process.env,
|
|
113
|
+
stdio: ['inherit', 'inherit', 'inherit'],
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Return a CodeArtifactRepo object, either from the name argument or the most recently activated repository
|
|
118
|
+
*/
|
|
119
|
+
async repoFromName(repoName) {
|
|
120
|
+
if (repoName) {
|
|
121
|
+
return codeartifact_repo_1.CodeArtifactRepo.existing(repoName, this.repoOptions);
|
|
122
|
+
}
|
|
123
|
+
const loginInfo = await this.usageDir.readJson(LOGIN_DATA_KEY);
|
|
124
|
+
if (loginInfo && loginInfo.expirationTimeMs > Date.now()) {
|
|
125
|
+
const existing = codeartifact_repo_1.CodeArtifactRepo.existing(loginInfo.repositoryName, this.repoOptions);
|
|
126
|
+
existing.setLoginInformation(loginInfo);
|
|
127
|
+
return existing;
|
|
128
|
+
}
|
|
129
|
+
throw new Error('No repository name given, and no repository activated recently. Login to a repo or pass a repo name.');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.CodeArtifactCli = CodeArtifactCli;
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWFydGlmYWN0LWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2RlYXJ0aWZhY3QvY29kZWFydGlmYWN0LWNsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErQztBQUMvQywyQ0FBNkI7QUFDN0Isd0VBQXlFO0FBQ3pFLDJDQUE2QjtBQUM3QiwyREFBa0c7QUFDbEcsbUNBQWdDO0FBQ2hDLDJDQUFpRTtBQUNqRSx1Q0FBNEQ7QUFDNUQsMkNBQW1FO0FBQ25FLHVDQUErRDtBQUMvRCwyQ0FBdUM7QUFFdkMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBTS9CLE1BQWEsZUFBZTtJQUcxQixZQUE2QixVQUFrQyxFQUFFO1FBQXBDLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBRmpELGFBQVEsR0FBRyxvQkFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRzlDLENBQUM7SUFFRCxJQUFZLFdBQVc7UUFDckIsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBQSwrQ0FBd0IsRUFBQztnQkFDakUsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7b0JBQ25DLGVBQWUsRUFBRSxJQUFJO29CQUNyQixlQUFlLEVBQUUsV0FBVztpQkFDN0I7YUFDRixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxvQ0FBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQWlC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TSxJQUFBLGFBQUssRUFBQyxPQUFPLEVBQUU7WUFDbkIsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBZTtRQUMzQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMvQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUM5QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFpQjtRQUMxQyxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sb0NBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUQ7UUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFtQixjQUFjLENBQUMsQ0FBRTtRQUVsRixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3hELE1BQU0sUUFBUSxHQUFHLG9DQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RixRQUFRLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEMsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHNHQUFzRyxDQUFDLENBQUM7SUFDMUgsQ0FBQztDQUNGO0FBbEhELDBDQWtIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZnJvbVRlbXBvcmFyeUNyZWRlbnRpYWxzIH0gZnJvbSAnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlcnMnO1xuaW1wb3J0ICogYXMgZ2xvYiBmcm9tICdnbG9iJztcbmltcG9ydCB7IENvZGVBcnRpZmFjdFJlcG8sIENvZGVBcnRpZmFjdFJlcG9PcHRpb25zLCBMb2dpbkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QtcmVwbyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4vc2hlbGwnO1xuaW1wb3J0IHsgdXBsb2FkSmF2YVBhY2thZ2VzLCBtYXZlbkxvZ2luIH0gZnJvbSAnLi9zdGFnaW5nL21hdmVuJztcbmltcG9ydCB7IHVwbG9hZE5wbVBhY2thZ2VzLCBucG1Mb2dpbiB9IGZyb20gJy4vc3RhZ2luZy9ucG0nO1xuaW1wb3J0IHsgdXBsb2FkRG90bmV0UGFja2FnZXMsIG51Z2V0TG9naW4gfSBmcm9tICcuL3N0YWdpbmcvbnVnZXQnO1xuaW1wb3J0IHsgdXBsb2FkUHl0aG9uUGFja2FnZXMsIHBpcExvZ2luIH0gZnJvbSAnLi9zdGFnaW5nL3BpcCc7XG5pbXBvcnQgeyBVc2FnZURpciB9IGZyb20gJy4vdXNhZ2UtZGlyJztcblxuY29uc3QgTE9HSU5fREFUQV9LRVkgPSAnbG9naW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVBcnRpZmFjdENsaU9wdGlvbnMge1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ29kZUFydGlmYWN0Q2xpIHtcbiAgcHVibGljIHJlYWRvbmx5IHVzYWdlRGlyID0gVXNhZ2VEaXIuZGVmYXVsdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ29kZUFydGlmYWN0Q2xpT3B0aW9ucyA9IHt9KSB7XG4gIH1cblxuICBwcml2YXRlIGdldCByZXBvT3B0aW9ucygpOiBDb2RlQXJ0aWZhY3RSZXBvT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNyZWRlbnRpYWxzOiB0aGlzLm9wdGlvbnMuYXNzdW1lUm9sZUFybiA/IGZyb21UZW1wb3JhcnlDcmVkZW50aWFscyh7XG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIFJvbGVBcm46IHRoaXMub3B0aW9ucy5hc3N1bWVSb2xlQXJuLFxuICAgICAgICAgIER1cmF0aW9uU2Vjb25kczogMzYwMCxcbiAgICAgICAgICBSb2xlU2Vzc2lvbk5hbWU6ICdwdWJsaWItY2EnLFxuICAgICAgICB9LFxuICAgICAgfSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByYW5kb20gcmVwb3NpdG9yeSwgcmV0dXJuIGl0cyBuYW1lXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlKCkge1xuICAgIGNvbnN0IHJlcG8gPSBhd2FpdCBDb2RlQXJ0aWZhY3RSZXBvLmNyZWF0ZVJhbmRvbSh0aGlzLnJlcG9PcHRpb25zKTtcbiAgICByZXR1cm4gcmVwby5yZXBvc2l0b3J5TmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIGdpdmVuIHJlcG9cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGUocmVwb05hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXBvID0gYXdhaXQgdGhpcy5yZXBvRnJvbU5hbWUocmVwb05hbWUpO1xuICAgIGF3YWl0IHJlcG8uZGVsZXRlKCk7XG5cbiAgICBpZiAoIXJlcG9OYW1lKSB7XG4gICAgICBhd2FpdCB0aGlzLnVzYWdlRGlyLmRlbGV0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2cgaW4gdG8gdGhlIGdpdmVuIHJlcG8sIHdyaXRlIGFjdGl2YXRpb24gaW5zdHJ1Y3RpbnMgdG8gdGhlIHVzYWdlIGRpclxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvZ2luKHJlcG9OYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVwbyA9IGF3YWl0IHRoaXMucmVwb0Zyb21OYW1lKHJlcG9OYW1lKTtcbiAgICBjb25zdCBsb2dpbiA9IGF3YWl0IHJlcG8ubG9naW4oKTtcblxuICAgIGF3YWl0IHRoaXMudXNhZ2VEaXIucmVzZXQoKTtcbiAgICBhd2FpdCB0aGlzLnVzYWdlRGlyLnB1dEpzb24oTE9HSU5fREFUQV9LRVksIGxvZ2luKTtcblxuICAgIGF3YWl0IHRoaXMudXNhZ2VEaXIuYWRkVG9FbnYoe1xuICAgICAgQ09ERUFSVElGQUNUX1JFUE86IGxvZ2luLnJlcG9zaXRvcnlOYW1lLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgbnBtTG9naW4obG9naW4sIHRoaXMudXNhZ2VEaXIpO1xuICAgIGF3YWl0IHBpcExvZ2luKGxvZ2luLCB0aGlzLnVzYWdlRGlyKTtcbiAgICBhd2FpdCBtYXZlbkxvZ2luKGxvZ2luLCB0aGlzLnVzYWdlRGlyKTtcbiAgICBhd2FpdCBudWdldExvZ2luKGxvZ2luLCB0aGlzLnVzYWdlRGlyKTtcblxuICAgIHJldHVybiBsb2dpbjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdWJsaXNoKGRpcmVjdG9yeTogc3RyaW5nLCByZXBvTmFtZT86IHN0cmluZykge1xuICAgIGNvbnN0IHJlcG8gPSBhd2FpdCB0aGlzLnJlcG9Gcm9tTmFtZShyZXBvTmFtZSk7XG4gICAgY29uc3QgbG9naW4gPSBhd2FpdCByZXBvLmxvZ2luKCk7XG5cbiAgICBhd2FpdCB1cGxvYWROcG1QYWNrYWdlcyhnbG9iLnN5bmMocGF0aC5qb2luKGRpcmVjdG9yeSwgJ2pzJywgJyoudGd6JykpLCBsb2dpbiwgdGhpcy51c2FnZURpcik7XG5cbiAgICBhd2FpdCB1cGxvYWRQeXRob25QYWNrYWdlcyhnbG9iLnN5bmMocGF0aC5qb2luKGRpcmVjdG9yeSwgJ3B5dGhvbicsICcqJykpLCBsb2dpbik7XG5cbiAgICBhd2FpdCB1cGxvYWRKYXZhUGFja2FnZXMoZ2xvYi5zeW5jKHBhdGguam9pbihkaXJlY3RvcnksICdqYXZhJywgJyoqJywgJyoucG9tJykpLCBsb2dpbiwgdGhpcy51c2FnZURpcik7XG5cbiAgICBhd2FpdCB1cGxvYWREb3RuZXRQYWNrYWdlcyhnbG9iLnN5bmMocGF0aC5qb2luKGRpcmVjdG9yeSwgJ2RvdG5ldCcsICcqKicsICcqLm51cGtnJykpLCB0aGlzLnVzYWdlRGlyKTtcblxuICAgIGNvbnNvbGUubG9nKCfwn5uNIENvbmZpZ3VyaW5nIHBhY2thZ2VzIGZvciB1cHN0cmVhbSB2ZXJzaW9ucycpO1xuICAgIGF3YWl0IHJlcG8ubWFya0FsbFVwc3RyZWFtQWxsb3coKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnYygpIHtcbiAgICBhd2FpdCBDb2RlQXJ0aWZhY3RSZXBvLmdjKHRoaXMucmVwb09wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJ1bkNvbW1hbmQoY29tbWFuZDogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy51c2FnZURpci5hY3RpdmF0ZUluQ3VycmVudFByb2Nlc3MoKTtcbiAgICBhd2FpdCBzaGVsbChjb21tYW5kLCB7XG4gICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgIHNob3c6ICdhbHdheXMnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJ1bkludGVyYWN0aXZlbHkoY29tbWFuZDogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy51c2FnZURpci5hY3RpdmF0ZUluQ3VycmVudFByb2Nlc3MoKTtcbiAgICBjaGlsZF9wcm9jZXNzLmV4ZWNTeW5jKGNvbW1hbmQsIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBzdGRpbzogWydpbmhlcml0JywgJ2luaGVyaXQnLCAnaW5oZXJpdCddLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENvZGVBcnRpZmFjdFJlcG8gb2JqZWN0LCBlaXRoZXIgZnJvbSB0aGUgbmFtZSBhcmd1bWVudCBvciB0aGUgbW9zdCByZWNlbnRseSBhY3RpdmF0ZWQgcmVwb3NpdG9yeVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZXBvRnJvbU5hbWUocmVwb05hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAocmVwb05hbWUpIHtcbiAgICAgIHJldHVybiBDb2RlQXJ0aWZhY3RSZXBvLmV4aXN0aW5nKHJlcG9OYW1lLCB0aGlzLnJlcG9PcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2dpbkluZm8gPSBhd2FpdCB0aGlzLnVzYWdlRGlyLnJlYWRKc29uPExvZ2luSW5mb3JtYXRpb24+KExPR0lOX0RBVEFfS0VZKSA7XG5cbiAgICBpZiAobG9naW5JbmZvICYmIGxvZ2luSW5mby5leHBpcmF0aW9uVGltZU1zID4gRGF0ZS5ub3coKSkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBDb2RlQXJ0aWZhY3RSZXBvLmV4aXN0aW5nKGxvZ2luSW5mby5yZXBvc2l0b3J5TmFtZSwgdGhpcy5yZXBvT3B0aW9ucyk7XG4gICAgICBleGlzdGluZy5zZXRMb2dpbkluZm9ybWF0aW9uKGxvZ2luSW5mbyk7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXBvc2l0b3J5IG5hbWUgZ2l2ZW4sIGFuZCBubyByZXBvc2l0b3J5IGFjdGl2YXRlZCByZWNlbnRseS4gTG9naW4gdG8gYSByZXBvIG9yIHBhc3MgYSByZXBvIG5hbWUuJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AwsCredentialIdentityProvider } from '@aws-sdk/types';
|
|
2
|
+
export interface CodeArtifactRepoOptions {
|
|
3
|
+
readonly credentials?: AwsCredentialIdentityProvider;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* A CodeArtifact repository
|
|
7
|
+
*/
|
|
8
|
+
export declare class CodeArtifactRepo {
|
|
9
|
+
readonly repositoryName: string;
|
|
10
|
+
static readonly DEFAULT_DOMAIN = "publib-ca";
|
|
11
|
+
/**
|
|
12
|
+
* Create a CodeArtifact repo with a random name
|
|
13
|
+
*/
|
|
14
|
+
static createRandom(options?: CodeArtifactRepoOptions): Promise<CodeArtifactRepo>;
|
|
15
|
+
/**
|
|
16
|
+
* Create a CodeArtifact repository with a given name
|
|
17
|
+
*/
|
|
18
|
+
static createWithName(name: string, options?: CodeArtifactRepoOptions): Promise<CodeArtifactRepo>;
|
|
19
|
+
/**
|
|
20
|
+
* Reference an existing CodeArtifact repository
|
|
21
|
+
*/
|
|
22
|
+
static existing(repositoryName: string, options?: CodeArtifactRepoOptions): CodeArtifactRepo;
|
|
23
|
+
/**
|
|
24
|
+
* Garbage collect repositories
|
|
25
|
+
*/
|
|
26
|
+
static gc(options?: CodeArtifactRepoOptions): Promise<void>;
|
|
27
|
+
readonly npmUpstream = "npm-upstream";
|
|
28
|
+
readonly pypiUpstream = "pypi-upstream";
|
|
29
|
+
readonly nugetUpstream = "nuget-upstream";
|
|
30
|
+
readonly mavenUpstream = "maven-upstream";
|
|
31
|
+
readonly domain = "publib-ca";
|
|
32
|
+
private readonly codeArtifact;
|
|
33
|
+
private _loginInformation;
|
|
34
|
+
private constructor();
|
|
35
|
+
/**
|
|
36
|
+
* Create the repository
|
|
37
|
+
*/
|
|
38
|
+
create(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Absorb old login information
|
|
41
|
+
*/
|
|
42
|
+
setLoginInformation(loginInfo: LoginInformation): void;
|
|
43
|
+
login(): Promise<LoginInformation>;
|
|
44
|
+
delete(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* List all packages and mark them as "allow upstream versions".
|
|
47
|
+
*
|
|
48
|
+
* If we don't do this and we publish `foo@2.3.4-rc.0`, then we can't
|
|
49
|
+
* download `foo@2.3.0` anymore because by default CodeArtifact will
|
|
50
|
+
* block different versions from the same package.
|
|
51
|
+
*/
|
|
52
|
+
markAllUpstreamAllow(): Promise<void>;
|
|
53
|
+
private ensureDomain;
|
|
54
|
+
private ensureUpstreams;
|
|
55
|
+
private ensureRepository;
|
|
56
|
+
private domainExists;
|
|
57
|
+
private repositoryExists;
|
|
58
|
+
private listPackages;
|
|
59
|
+
private send;
|
|
60
|
+
}
|
|
61
|
+
export interface LoginInformation {
|
|
62
|
+
readonly authToken: string;
|
|
63
|
+
readonly expirationTimeMs: number;
|
|
64
|
+
readonly repositoryName: string;
|
|
65
|
+
readonly npmEndpoint: string;
|
|
66
|
+
readonly mavenEndpoint: string;
|
|
67
|
+
readonly nugetEndpoint: string;
|
|
68
|
+
readonly pypiEndpoint: string;
|
|
69
|
+
}
|