@jcoreio/aws-ecr-utils 2.0.0 → 2.1.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/ImageManifestSchema.d.mts +59 -0
- package/ImageManifestSchema.d.mts.map +1 -0
- package/ImageManifestSchema.d.ts +50 -49
- package/ImageManifestSchema.d.ts.map +1 -0
- package/ImageManifestSchema.js +2 -1
- package/ImageManifestSchema.js.map +1 -0
- package/ImageManifestSchema.mjs +2 -1
- package/ImageManifestSchema.mjs.map +1 -0
- package/checkECRImageAccess.d.mts +25 -0
- package/checkECRImageAccess.d.mts.map +1 -0
- package/checkECRImageAccess.d.ts +25 -17
- package/checkECRImageAccess.d.ts.map +1 -0
- package/checkECRImageAccess.js +46 -47
- package/checkECRImageAccess.js.map +1 -0
- package/checkECRImageAccess.mjs +9 -7
- package/checkECRImageAccess.mjs.map +1 -0
- package/checkECRRepositoryPolicy.d.mts +28 -0
- package/checkECRRepositoryPolicy.d.mts.map +1 -0
- package/checkECRRepositoryPolicy.d.ts +21 -12
- package/checkECRRepositoryPolicy.d.ts.map +1 -0
- package/checkECRRepositoryPolicy.js +20 -19
- package/checkECRRepositoryPolicy.js.map +1 -0
- package/checkECRRepositoryPolicy.mjs +5 -5
- package/checkECRRepositoryPolicy.mjs.map +1 -0
- package/copyECRImage.d.mts +17 -0
- package/copyECRImage.d.mts.map +1 -0
- package/copyECRImage.d.ts +17 -12
- package/copyECRImage.d.ts.map +1 -0
- package/copyECRImage.js +21 -20
- package/copyECRImage.js.map +1 -0
- package/copyECRImage.mjs +2 -1
- package/copyECRImage.mjs.map +1 -0
- package/ecrImageExists.d.mts +17 -0
- package/ecrImageExists.d.mts.map +1 -0
- package/ecrImageExists.d.ts +17 -8
- package/ecrImageExists.d.ts.map +1 -0
- package/ecrImageExists.js +13 -12
- package/ecrImageExists.js.map +1 -0
- package/ecrImageExists.mjs +2 -1
- package/ecrImageExists.mjs.map +1 -0
- package/formatECRImageUri.d.mts +12 -0
- package/formatECRImageUri.d.mts.map +1 -0
- package/formatECRImageUri.d.ts +12 -5
- package/formatECRImageUri.d.ts.map +1 -0
- package/formatECRImageUri.js +2 -1
- package/formatECRImageUri.js.map +1 -0
- package/formatECRImageUri.mjs +2 -1
- package/formatECRImageUri.mjs.map +1 -0
- package/formatECRRepositoryHostname.d.mts +10 -0
- package/formatECRRepositoryHostname.d.mts.map +1 -0
- package/formatECRRepositoryHostname.d.ts +10 -4
- package/formatECRRepositoryHostname.d.ts.map +1 -0
- package/formatECRRepositoryHostname.js +2 -1
- package/formatECRRepositoryHostname.js.map +1 -0
- package/formatECRRepositoryHostname.mjs +2 -1
- package/formatECRRepositoryHostname.mjs.map +1 -0
- package/index.d.mts +12 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +12 -11
- package/index.d.ts.map +1 -0
- package/index.js +2 -1
- package/index.js.map +1 -0
- package/index.mjs +2 -1
- package/index.mjs.map +1 -0
- package/isInteractive.d.mts +2 -0
- package/isInteractive.d.mts.map +1 -0
- package/isInteractive.d.ts +2 -0
- package/isInteractive.d.ts.map +1 -0
- package/isInteractive.js +8 -0
- package/isInteractive.js.map +1 -0
- package/isInteractive.mjs +2 -0
- package/isInteractive.mjs.map +1 -0
- package/loginToECR.d.mts +11 -0
- package/loginToECR.d.mts.map +1 -0
- package/loginToECR.d.ts +11 -4
- package/loginToECR.d.ts.map +1 -0
- package/loginToECR.js +106 -28
- package/loginToECR.js.map +1 -0
- package/loginToECR.mjs +42 -9
- package/loginToECR.mjs.map +1 -0
- package/package.json +17 -8
- package/parseECRImageUri.d.mts +7 -0
- package/parseECRImageUri.d.mts.map +1 -0
- package/parseECRImageUri.d.ts +7 -5
- package/parseECRImageUri.d.ts.map +1 -0
- package/parseECRImageUri.js +2 -1
- package/parseECRImageUri.js.map +1 -0
- package/parseECRImageUri.mjs +2 -1
- package/parseECRImageUri.mjs.map +1 -0
- package/parseECRRepositoryHostname.d.mts +6 -0
- package/parseECRRepositoryHostname.d.mts.map +1 -0
- package/parseECRRepositoryHostname.d.ts +6 -4
- package/parseECRRepositoryHostname.d.ts.map +1 -0
- package/parseECRRepositoryHostname.js +2 -1
- package/parseECRRepositoryHostname.js.map +1 -0
- package/parseECRRepositoryHostname.mjs +2 -1
- package/parseECRRepositoryHostname.mjs.map +1 -0
- package/src/ImageManifestSchema.ts +19 -0
- package/src/checkECRImageAccess.ts +193 -0
- package/src/checkECRRepositoryPolicy.ts +153 -0
- package/src/copyECRImage.ts +76 -0
- package/src/ecrImageExists.ts +48 -0
- package/src/formatECRImageUri.ts +19 -0
- package/src/formatECRRepositoryHostname.ts +11 -0
- package/src/index.ts +11 -0
- package/src/isInteractive.ts +2 -0
- package/src/loginToECR.ts +93 -0
- package/src/parseECRImageUri.ts +13 -0
- package/src/parseECRRepositoryHostname.ts +12 -0
- package/src/tagECRImage.ts +57 -0
- package/src/upsertECRRepository.ts +40 -0
- package/tagECRImage.d.mts +16 -0
- package/tagECRImage.d.mts.map +1 -0
- package/tagECRImage.d.ts +13 -6
- package/tagECRImage.d.ts.map +1 -0
- package/tagECRImage.js +40 -39
- package/tagECRImage.js.map +1 -0
- package/tagECRImage.mjs +3 -3
- package/tagECRImage.mjs.map +1 -0
- package/upsertECRRepository.d.mts +11 -0
- package/upsertECRRepository.d.mts.map +1 -0
- package/upsertECRRepository.d.ts +11 -5
- package/upsertECRRepository.d.ts.map +1 -0
- package/upsertECRRepository.js +21 -20
- package/upsertECRRepository.js.map +1 -0
- package/upsertECRRepository.mjs +3 -2
- package/upsertECRRepository.mjs.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatECRImageUri.js","names":["_formatECRRepositoryHostname","_interopRequireDefault","require","formatECRImageUri","_ref","registryId","region","repositoryName","imageTag","concat","formatECRRepositoryHostname","module","exports","default"],"sources":["src/formatECRImageUri.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAAA,IAAAA,4BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEe,SAASC,iBAAiBA,CAAAC,IAAA,EAU9B;EAAA,IATTC,UAAU,GAAAD,IAAA,CAAVC,UAAU;IACVC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,cAAc,GAAAH,IAAA,CAAdG,cAAc;IACdC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;EAOR,UAAAC,MAAA,CAAU,IAAAC,uCAA2B,EAAC;IACpCL,UAAU,EAAVA,UAAU;IACVC,MAAM,EAANA,MAAM;IACNC,cAAc,EAAdA;EACF,CAAC,CAAC,OAAAE,MAAA,CAAID,QAAQ;AAChB;AAACG,MAAA,CAAAC,OAAA,GAAAA,OAAA,CAAAC,OAAA","ignoreList":[]}
|
package/formatECRImageUri.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatECRImageUri.mjs","names":["formatECRRepositoryHostname","formatECRImageUri","registryId","region","repositoryName","imageTag"],"sources":["src/formatECRImageUri.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,2BAA2B;AAElC,eAAe,SAASC,iBAAiBA,CAAC;EACxCC,UAAU;EACVC,MAAM;EACNC,cAAc;EACdC;AAMF,CAAC,EAAU;EACT,OAAO,GAAGL,2BAA2B,CAAC;IACpCE,UAAU;IACVC,MAAM;IACNC;EACF,CAAC,CAAC,IAAIC,QAAQ,EAAE;AAClB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatECRRepositoryHostname.d.mts","names":["formatECRRepositoryHostname","registryId","region","repositoryName"],"sources":["src/formatECRRepositoryHostname.ts"],"sourcesContent":[null],"mappings":"AAAA,eAAc,SAAUA,2BAA2BA,CAAC;EAClDC,UAAU;EACVC,MAAM;EACNC;CACD,EAAE;EACDF,UAAU,EAAE,MAAM;EAClBC,MAAM,EAAE,MAAM;EACdC,cAAc,EAAE,MAAM;CACvB,GAAG,MAAM","ignoreList":[]}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
declare function formatECRRepositoryHostname({
|
|
2
|
+
registryId,
|
|
3
|
+
region,
|
|
4
|
+
repositoryName
|
|
5
|
+
}: {
|
|
6
|
+
registryId: string;
|
|
7
|
+
region: string;
|
|
8
|
+
repositoryName: string;
|
|
5
9
|
}): string;
|
|
10
|
+
export = formatECRRepositoryHostname;
|
|
11
|
+
//# sourceMappingURL=formatECRRepositoryHostname.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatECRRepositoryHostname.d.ts","names":["formatECRRepositoryHostname","registryId","region","repositoryName"],"sources":["src/formatECRRepositoryHostname.ts"],"sourcesContent":[null],"mappings":"AAAc,iBAAUA,2BAA2BA,CAAC;EAClDC,UAAU;EACVC,MAAM;EACNC;CACD,EAAE;EACDF,UAAU,EAAE,MAAM;EAClBC,MAAM,EAAE,MAAM;EACdC,cAAc,EAAE,MAAM;CACvB,GAAG,MAAM;AAET,SAAAH,2BAAA","ignoreList":[]}
|
|
@@ -10,4 +10,5 @@ function formatECRRepositoryHostname(_ref) {
|
|
|
10
10
|
repositoryName = _ref.repositoryName;
|
|
11
11
|
return "".concat(registryId, ".dkr.ecr.").concat(region, ".amazonaws.com/").concat(repositoryName);
|
|
12
12
|
}
|
|
13
|
-
module.exports = exports.default;
|
|
13
|
+
module.exports = exports.default;
|
|
14
|
+
//# sourceMappingURL=formatECRRepositoryHostname.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatECRRepositoryHostname.js","names":["formatECRRepositoryHostname","_ref","registryId","region","repositoryName","concat","module","exports","default"],"sources":["src/formatECRRepositoryHostname.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAe,SAASA,2BAA2BA,CAAAC,IAAA,EAQxC;EAAA,IAPTC,UAAU,GAAAD,IAAA,CAAVC,UAAU;IACVC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,cAAc,GAAAH,IAAA,CAAdG,cAAc;EAMd,UAAAC,MAAA,CAAUH,UAAU,eAAAG,MAAA,CAAYF,MAAM,qBAAAE,MAAA,CAAkBD,cAAc;AACxE;AAACE,MAAA,CAAAC,OAAA,GAAAA,OAAA,CAAAC,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatECRRepositoryHostname.mjs","names":["formatECRRepositoryHostname","registryId","region","repositoryName"],"sources":["src/formatECRRepositoryHostname.ts"],"sourcesContent":[null],"mappings":"AAAA,eAAe,SAASA,2BAA2BA,CAAC;EAClDC,UAAU;EACVC,MAAM;EACNC;AAKF,CAAC,EAAU;EACT,OAAO,GAAGF,UAAU,YAAYC,MAAM,kBAAkBC,cAAc,EAAE;AAC1E","ignoreList":[]}
|
package/index.d.mts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { default as copyECRImage } from "./copyECRImage.mjs";
|
|
2
|
+
export { default as ecrImageExists } from "./ecrImageExists.mjs";
|
|
3
|
+
export { default as loginToECR } from "./loginToECR.mjs";
|
|
4
|
+
export { default as tagECRImage } from "./tagECRImage.mjs";
|
|
5
|
+
export { default as parseECRImageUri } from "./parseECRImageUri.mjs";
|
|
6
|
+
export { default as parseECRRepositoryHostname } from "./parseECRRepositoryHostname.mjs";
|
|
7
|
+
export { default as upsertECRRepository } from "./upsertECRRepository.mjs";
|
|
8
|
+
export { default as checkECRRepositoryPolicy } from "./checkECRRepositoryPolicy.mjs";
|
|
9
|
+
export { default as checkECRImageAccess } from "./checkECRImageAccess.mjs";
|
|
10
|
+
export { default as formatECRRepositoryHostname } from "./formatECRRepositoryHostname.mjs";
|
|
11
|
+
export { default as formatECRImageUri } from "./formatECRImageUri.mjs";
|
|
12
|
+
//# sourceMappingURL=index.d.mts.map
|
package/index.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["default","copyECRImage","ecrImageExists","loginToECR","tagECRImage","parseECRImageUri","parseECRRepositoryHostname","upsertECRRepository","checkECRRepositoryPolicy","checkECRImageAccess","formatECRRepositoryHostname","formatECRImageUri"],"sources":["src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAO,IAAIC,YAAY;AAChC,SAASD,OAAO,IAAIE,cAAc;AAClC,SAASF,OAAO,IAAIG,UAAU;AAC9B,SAASH,OAAO,IAAII,WAAW;AAC/B,SAASJ,OAAO,IAAIK,gBAAgB;AACpC,SAASL,OAAO,IAAIM,0BAA0B;AAC9C,SAASN,OAAO,IAAIO,mBAAmB;AACvC,SAASP,OAAO,IAAIQ,wBAAwB;AAC5C,SAASR,OAAO,IAAIS,mBAAmB;AACvC,SAAST,OAAO,IAAIU,2BAA2B;AAC/C,SAASV,OAAO,IAAIW,iBAAiB","ignoreList":[]}
|
package/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
export { default as copyECRImage } from
|
|
2
|
-
export { default as ecrImageExists } from
|
|
3
|
-
export { default as loginToECR } from
|
|
4
|
-
export { default as tagECRImage } from
|
|
5
|
-
export { default as parseECRImageUri } from
|
|
6
|
-
export { default as parseECRRepositoryHostname } from
|
|
7
|
-
export { default as upsertECRRepository } from
|
|
8
|
-
export { default as checkECRRepositoryPolicy } from
|
|
9
|
-
export { default as checkECRImageAccess } from
|
|
10
|
-
export { default as formatECRRepositoryHostname } from
|
|
11
|
-
export { default as formatECRImageUri } from
|
|
1
|
+
export { default as copyECRImage } from "./copyECRImage.js";
|
|
2
|
+
export { default as ecrImageExists } from "./ecrImageExists.js";
|
|
3
|
+
export { default as loginToECR } from "./loginToECR.js";
|
|
4
|
+
export { default as tagECRImage } from "./tagECRImage.js";
|
|
5
|
+
export { default as parseECRImageUri } from "./parseECRImageUri.js";
|
|
6
|
+
export { default as parseECRRepositoryHostname } from "./parseECRRepositoryHostname.js";
|
|
7
|
+
export { default as upsertECRRepository } from "./upsertECRRepository.js";
|
|
8
|
+
export { default as checkECRRepositoryPolicy } from "./checkECRRepositoryPolicy.js";
|
|
9
|
+
export { default as checkECRImageAccess } from "./checkECRImageAccess.js";
|
|
10
|
+
export { default as formatECRRepositoryHostname } from "./formatECRRepositoryHostname.js";
|
|
11
|
+
export { default as formatECRImageUri } from "./formatECRImageUri.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["default","copyECRImage","ecrImageExists","loginToECR","tagECRImage","parseECRImageUri","parseECRRepositoryHostname","upsertECRRepository","checkECRRepositoryPolicy","checkECRImageAccess","formatECRRepositoryHostname","formatECRImageUri"],"sources":["src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAO,IAAIC,YAAY;AAChC,SAASD,OAAO,IAAIE,cAAc;AAClC,SAASF,OAAO,IAAIG,UAAU;AAC9B,SAASH,OAAO,IAAII,WAAW;AAC/B,SAASJ,OAAO,IAAIK,gBAAgB;AACpC,SAASL,OAAO,IAAIM,0BAA0B;AAC9C,SAASN,OAAO,IAAIO,mBAAmB;AACvC,SAASP,OAAO,IAAIQ,wBAAwB;AAC5C,SAASR,OAAO,IAAIS,mBAAmB;AACvC,SAAST,OAAO,IAAIU,2BAA2B;AAC/C,SAASV,OAAO,IAAIW,iBAAiB","ignoreList":[]}
|
package/index.js
CHANGED
|
@@ -80,4 +80,5 @@ var _upsertECRRepository = _interopRequireDefault(require("./upsertECRRepository
|
|
|
80
80
|
var _checkECRRepositoryPolicy = _interopRequireDefault(require("./checkECRRepositoryPolicy.js"));
|
|
81
81
|
var _checkECRImageAccess = _interopRequireDefault(require("./checkECRImageAccess.js"));
|
|
82
82
|
var _formatECRRepositoryHostname = _interopRequireDefault(require("./formatECRRepositoryHostname.js"));
|
|
83
|
-
var _formatECRImageUri = _interopRequireDefault(require("./formatECRImageUri.js"));
|
|
83
|
+
var _formatECRImageUri = _interopRequireDefault(require("./formatECRImageUri.js"));
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_copyECRImage","_interopRequireDefault","require","_ecrImageExists","_loginToECR","_tagECRImage","_parseECRImageUri","_parseECRRepositoryHostname","_upsertECRRepository","_checkECRRepositoryPolicy","_checkECRImageAccess","_formatECRRepositoryHostname","_formatECRImageUri"],"sources":["src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,YAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,2BAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,oBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,yBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,oBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,4BAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,kBAAA,GAAAX,sBAAA,CAAAC,OAAA","ignoreList":[]}
|
package/index.mjs
CHANGED
|
@@ -8,4 +8,5 @@ export { default as upsertECRRepository } from "./upsertECRRepository.mjs";
|
|
|
8
8
|
export { default as checkECRRepositoryPolicy } from "./checkECRRepositoryPolicy.mjs";
|
|
9
9
|
export { default as checkECRImageAccess } from "./checkECRImageAccess.mjs";
|
|
10
10
|
export { default as formatECRRepositoryHostname } from "./formatECRRepositoryHostname.mjs";
|
|
11
|
-
export { default as formatECRImageUri } from "./formatECRImageUri.mjs";
|
|
11
|
+
export { default as formatECRImageUri } from "./formatECRImageUri.mjs";
|
|
12
|
+
//# sourceMappingURL=index.mjs.map
|
package/index.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["default","copyECRImage","ecrImageExists","loginToECR","tagECRImage","parseECRImageUri","parseECRRepositoryHostname","upsertECRRepository","checkECRRepositoryPolicy","checkECRImageAccess","formatECRRepositoryHostname","formatECRImageUri"],"sources":["src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAO,IAAIC,YAAY;AAChC,SAASD,OAAO,IAAIE,cAAc;AAClC,SAASF,OAAO,IAAIG,UAAU;AAC9B,SAASH,OAAO,IAAII,WAAW;AAC/B,SAASJ,OAAO,IAAIK,gBAAgB;AACpC,SAASL,OAAO,IAAIM,0BAA0B;AAC9C,SAASN,OAAO,IAAIO,mBAAmB;AACvC,SAASP,OAAO,IAAIQ,wBAAwB;AAC5C,SAASR,OAAO,IAAIS,mBAAmB;AACvC,SAAST,OAAO,IAAIU,2BAA2B;AAC/C,SAASV,OAAO,IAAIW,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInteractive.d.mts","names":["isInteractive"],"sources":["src/isInteractive.ts"],"sourcesContent":[null],"mappings":"AAAA,qBAAaA,aAAa,SACqD","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInteractive.d.ts","names":["isInteractive"],"sources":["src/isInteractive.ts"],"sourcesContent":[null],"mappings":"AAAA,qBAAaA,aAAa,SACqD","ignoreList":[]}
|
package/isInteractive.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isInteractive = void 0;
|
|
7
|
+
var isInteractive = exports.isInteractive = process.stdout.isTTY && process.env.TERM !== 'dumb' && !('CI' in process.env);
|
|
8
|
+
//# sourceMappingURL=isInteractive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInteractive.js","names":["isInteractive","exports","process","stdout","isTTY","env","TERM"],"sources":["src/isInteractive.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAO,IAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GACxBE,OAAO,CAACC,MAAM,CAACC,KAAK,IAAIF,OAAO,CAACG,GAAG,CAACC,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,IAAIJ,OAAO,CAACG,GAAG,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInteractive.mjs","names":["isInteractive","process","stdout","isTTY","env","TERM"],"sources":["src/isInteractive.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,MAAMA,aAAa,GACxBC,OAAO,CAACC,MAAM,CAACC,KAAK,IAAIF,OAAO,CAACG,GAAG,CAACC,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,IAAIJ,OAAO,CAACG,GAAG,CAAC","ignoreList":[]}
|
package/loginToECR.d.mts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ECRClient, type ECRClientConfig } from '@aws-sdk/client-ecr';
|
|
2
|
+
export default function loginToECR({
|
|
3
|
+
ecr,
|
|
4
|
+
forImages,
|
|
5
|
+
awsConfig
|
|
6
|
+
}?: {
|
|
7
|
+
ecr?: ECRClient;
|
|
8
|
+
forImages?: string[];
|
|
9
|
+
awsConfig?: ECRClientConfig;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=loginToECR.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginToECR.d.mts","names":["ECRClient","ECRClientConfig","loginToECR","ecr","forImages","awsConfig","Promise"],"sources":["src/loginToECR.ts"],"sourcesContent":[null],"mappings":"AAKA,SACEA,SAAS,EACT,KAAKC,eAAe,QAEf,qBAAqB;AAM5B,wBAA8BC,UAAUA,CAAC;EACvCC,GAAG;EACHC,SAAS;EACTC;CAKI,CAJL,EAAE;EACDF,GAAG,CAAC,EAAEH,SAAS;EACfI,SAAS,CAAC,EAAE,MAAM,EAAE;EACpBC,SAAS,CAAC,EAAEJ,eAAe;CACvB,GAAGK,OAAO,CAAC,IAAI,CAAC","ignoreList":[]}
|
package/loginToECR.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { ECRClient, ECRClientConfig } from '@aws-sdk/client-ecr';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { ECRClient, type ECRClientConfig } from '@aws-sdk/client-ecr';
|
|
2
|
+
declare function loginToECR({
|
|
3
|
+
ecr,
|
|
4
|
+
forImages,
|
|
5
|
+
awsConfig
|
|
6
|
+
}?: {
|
|
7
|
+
ecr?: ECRClient;
|
|
8
|
+
forImages?: string[];
|
|
9
|
+
awsConfig?: ECRClientConfig;
|
|
5
10
|
}): Promise<void>;
|
|
11
|
+
export = loginToECR;
|
|
12
|
+
//# sourceMappingURL=loginToECR.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginToECR.d.ts","names":["ECRClient","ECRClientConfig","loginToECR","ecr","forImages","awsConfig","Promise"],"sources":["src/loginToECR.ts"],"sourcesContent":[null],"mappings":"AAKA,SACEA,SAAS,EACT,KAAKC,eAAe,QAEf,qBAAqB;AAM5B,iBAA8BC,UAAUA,CAAC;EACvCC,GAAG;EACHC,SAAS;EACTC;CAKI,CAJL,EAAE;EACDF,GAAG,CAAC,EAAEH,SAAS;EACfI,SAAS,CAAC,EAAE,MAAM,EAAE;EACpBC,SAAS,CAAC,EAAEJ,eAAe;CACvB,GAAGK,OAAO,CAAC,IAAI,CAAC;AAqErB,SAAAJ,UAAA","ignoreList":[]}
|
package/loginToECR.js
CHANGED
|
@@ -1,73 +1,151 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = loginToECR;
|
|
8
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
15
|
var _promisifyChildProcess = require("promisify-child-process");
|
|
13
16
|
var _base64Js = _interopRequireDefault(require("base64-js"));
|
|
14
17
|
var _clientEcr = require("@aws-sdk/client-ecr");
|
|
18
|
+
var _parseECRImageUri = _interopRequireDefault(require("./parseECRImageUri.js"));
|
|
19
|
+
var log4jcore = _interopRequireWildcard(require("log4jcore"));
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
15
21
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
|
|
17
23
|
* @prettier
|
|
18
24
|
*/
|
|
19
|
-
|
|
25
|
+
var log = log4jcore.logger('@jcoreio/aws-ecr-utils/loginToECR');
|
|
26
|
+
function loginToECR() {
|
|
20
27
|
return _loginToECR.apply(this, arguments);
|
|
21
28
|
}
|
|
22
29
|
function _loginToECR() {
|
|
23
|
-
_loginToECR = (0, _asyncToGenerator2["default"])(
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
_loginToECR = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
31
|
+
var _ref,
|
|
32
|
+
ecr,
|
|
33
|
+
forImages,
|
|
34
|
+
awsConfig,
|
|
35
|
+
regions,
|
|
36
|
+
_yield$ecr$send,
|
|
37
|
+
authorizationData,
|
|
38
|
+
_ref3,
|
|
39
|
+
authorizationToken,
|
|
40
|
+
proxyEndpoint,
|
|
41
|
+
decoded,
|
|
42
|
+
_decoded$split,
|
|
43
|
+
_decoded$split2,
|
|
44
|
+
user,
|
|
45
|
+
password,
|
|
46
|
+
dockerArgs,
|
|
47
|
+
child,
|
|
48
|
+
_args2 = arguments,
|
|
49
|
+
_t;
|
|
50
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
51
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
27
52
|
case 0:
|
|
28
|
-
ecr = _ref.ecr, awsConfig = _ref.awsConfig;
|
|
53
|
+
_ref = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, ecr = _ref.ecr, forImages = _ref.forImages, awsConfig = _ref.awsConfig;
|
|
54
|
+
if (!forImages) {
|
|
55
|
+
_context2.next = 2;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
log.debug('logging into AWS ECR for images:', forImages);
|
|
59
|
+
regions = new Set(forImages.flatMap(function (image) {
|
|
60
|
+
try {
|
|
61
|
+
return [(0, _parseECRImageUri["default"])(image).region];
|
|
62
|
+
} catch (_unused) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
}));
|
|
66
|
+
log.debug('parsed AWS regions from images:', regions);
|
|
67
|
+
_context2.next = 1;
|
|
68
|
+
return Promise.all((0, _toConsumableArray2["default"])(regions).map(/*#__PURE__*/function () {
|
|
69
|
+
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(region) {
|
|
70
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
71
|
+
while (1) switch (_context.prev = _context.next) {
|
|
72
|
+
case 0:
|
|
73
|
+
return _context.abrupt("return", loginToECR({
|
|
74
|
+
awsConfig: _objectSpread(_objectSpread({}, awsConfig), {}, {
|
|
75
|
+
region: region
|
|
76
|
+
})
|
|
77
|
+
}));
|
|
78
|
+
case 1:
|
|
79
|
+
case "end":
|
|
80
|
+
return _context.stop();
|
|
81
|
+
}
|
|
82
|
+
}, _callee);
|
|
83
|
+
}));
|
|
84
|
+
return function (_x) {
|
|
85
|
+
return _ref2.apply(this, arguments);
|
|
86
|
+
};
|
|
87
|
+
}()));
|
|
88
|
+
case 1:
|
|
89
|
+
return _context2.abrupt("return");
|
|
90
|
+
case 2:
|
|
29
91
|
if (!ecr) ecr = new _clientEcr.ECRClient(_objectSpread({}, awsConfig));
|
|
30
|
-
|
|
92
|
+
_t = log;
|
|
93
|
+
_context2.next = 3;
|
|
94
|
+
return ecr.config.region();
|
|
95
|
+
case 3:
|
|
96
|
+
_t.debug.call(_t, 'logging into ECR for region:', _context2.sent);
|
|
97
|
+
_context2.next = 4;
|
|
31
98
|
return ecr.send(new _clientEcr.GetAuthorizationTokenCommand());
|
|
32
99
|
case 4:
|
|
33
|
-
_yield$ecr$send =
|
|
100
|
+
_yield$ecr$send = _context2.sent;
|
|
34
101
|
authorizationData = _yield$ecr$send.authorizationData;
|
|
35
|
-
|
|
102
|
+
_ref3 = (authorizationData === null || authorizationData === void 0 ? void 0 : authorizationData[0]) || {}, authorizationToken = _ref3.authorizationToken, proxyEndpoint = _ref3.proxyEndpoint;
|
|
103
|
+
log.debug('GetAuthorizationToken data:', {
|
|
104
|
+
authorizationToken: authorizationToken,
|
|
105
|
+
proxyEndpoint: proxyEndpoint
|
|
106
|
+
});
|
|
36
107
|
if (authorizationToken) {
|
|
37
|
-
|
|
108
|
+
_context2.next = 5;
|
|
38
109
|
break;
|
|
39
110
|
}
|
|
40
111
|
throw new Error('failed to get authorizationToken from ECR');
|
|
41
|
-
case
|
|
112
|
+
case 5:
|
|
42
113
|
if (proxyEndpoint) {
|
|
43
|
-
|
|
114
|
+
_context2.next = 6;
|
|
44
115
|
break;
|
|
45
116
|
}
|
|
46
117
|
throw new Error('failed to get proxyEndpoint from ECR');
|
|
47
|
-
case
|
|
118
|
+
case 6:
|
|
48
119
|
// this is silly...
|
|
49
|
-
decoded =
|
|
120
|
+
decoded = Buffer.from(_base64Js["default"].toByteArray(authorizationToken)).toString('utf8');
|
|
50
121
|
_decoded$split = decoded.split(/:/), _decoded$split2 = (0, _slicedToArray2["default"])(_decoded$split, 2), user = _decoded$split2[0], password = _decoded$split2[1];
|
|
51
|
-
|
|
52
|
-
|
|
122
|
+
dockerArgs = ['login', '-u', user, '--password-stdin', proxyEndpoint];
|
|
123
|
+
log.debug.apply(log, ['running: docker'].concat((0, _toConsumableArray2["default"])(dockerArgs.map(function (arg) {
|
|
124
|
+
return /^[-_a-z0-9]+$/i.test(arg) ? arg : "'".concat(arg.replace(/'/g, "'\\'')}'"), "'");
|
|
125
|
+
}))));
|
|
126
|
+
child = (0, _promisifyChildProcess.spawn)('docker', dockerArgs, {
|
|
127
|
+
stdio: ['pipe', 'pipe', 'inherit'],
|
|
53
128
|
encoding: 'utf8'
|
|
54
129
|
});
|
|
55
|
-
if (child.stdin) {
|
|
56
|
-
_context.next = 16;
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
throw new Error('expected child.stdin to be defined');
|
|
60
|
-
case 16:
|
|
61
130
|
child.stdin.write(password);
|
|
62
131
|
child.stdin.end();
|
|
63
|
-
|
|
64
|
-
return child
|
|
65
|
-
|
|
132
|
+
_context2.next = 7;
|
|
133
|
+
return child.then(function () {
|
|
134
|
+
return log.debug('ECR login succeeded');
|
|
135
|
+
}, function (error) {
|
|
136
|
+
if (error && (0, _typeof2["default"])(error) === 'object') {
|
|
137
|
+
if ('code' in error) log.debug('docker login exited with code', error.code);
|
|
138
|
+
if ('signal' in error) log.debug('docker login was killed with signal', error.signal);
|
|
139
|
+
}
|
|
140
|
+
throw error;
|
|
141
|
+
});
|
|
142
|
+
case 7:
|
|
66
143
|
case "end":
|
|
67
|
-
return
|
|
144
|
+
return _context2.stop();
|
|
68
145
|
}
|
|
69
|
-
},
|
|
146
|
+
}, _callee2);
|
|
70
147
|
}));
|
|
71
148
|
return _loginToECR.apply(this, arguments);
|
|
72
149
|
}
|
|
73
|
-
module.exports = exports.default;
|
|
150
|
+
module.exports = exports.default;
|
|
151
|
+
//# sourceMappingURL=loginToECR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginToECR.js","names":["_promisifyChildProcess","require","_base64Js","_interopRequireDefault","_clientEcr","_parseECRImageUri","log4jcore","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof3","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","logger","loginToECR","_loginToECR","_asyncToGenerator2","_regenerator","mark","_callee2","_ref","ecr","forImages","awsConfig","regions","_yield$ecr$send","authorizationData","_ref3","authorizationToken","proxyEndpoint","decoded","_decoded$split","_decoded$split2","user","password","dockerArgs","child","_args2","_t","wrap","_context2","prev","next","undefined","debug","Set","flatMap","image","parseECRImageUri","region","_unused","Promise","all","_toConsumableArray2","map","_ref2","_callee","_context","abrupt","stop","_x","ECRClient","config","sent","send","GetAuthorizationTokenCommand","Error","Buffer","from","base64","toByteArray","toString","split","_slicedToArray2","concat","arg","test","replace","spawn","stdio","encoding","stdin","write","end","then","error","_typeof2","code","signal","module","exports","default"],"sources":["src/loginToECR.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/loginToECR.mjs
CHANGED
|
@@ -4,13 +4,36 @@
|
|
|
4
4
|
import { spawn } from 'promisify-child-process';
|
|
5
5
|
import base64 from 'base64-js';
|
|
6
6
|
import { ECRClient, GetAuthorizationTokenCommand } from '@aws-sdk/client-ecr';
|
|
7
|
+
import parseECRImageUri from "./parseECRImageUri.mjs";
|
|
8
|
+
import * as log4jcore from 'log4jcore';
|
|
9
|
+
const log = log4jcore.logger('@jcoreio/aws-ecr-utils/loginToECR');
|
|
7
10
|
export default async function loginToECR({
|
|
8
11
|
ecr,
|
|
12
|
+
forImages,
|
|
9
13
|
awsConfig
|
|
10
|
-
}) {
|
|
14
|
+
} = {}) {
|
|
15
|
+
if (forImages) {
|
|
16
|
+
log.debug('logging into AWS ECR for images:', forImages);
|
|
17
|
+
const regions = new Set(forImages.flatMap(image => {
|
|
18
|
+
try {
|
|
19
|
+
return [parseECRImageUri(image).region];
|
|
20
|
+
} catch {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
}));
|
|
24
|
+
log.debug('parsed AWS regions from images:', regions);
|
|
25
|
+
await Promise.all([...regions].map(async region => loginToECR({
|
|
26
|
+
awsConfig: {
|
|
27
|
+
...awsConfig,
|
|
28
|
+
region
|
|
29
|
+
}
|
|
30
|
+
})));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
11
33
|
if (!ecr) ecr = new ECRClient({
|
|
12
34
|
...awsConfig
|
|
13
35
|
});
|
|
36
|
+
log.debug('logging into ECR for region:', await ecr.config.region());
|
|
14
37
|
const {
|
|
15
38
|
authorizationData
|
|
16
39
|
} = await ecr.send(new GetAuthorizationTokenCommand());
|
|
@@ -18,6 +41,10 @@ export default async function loginToECR({
|
|
|
18
41
|
authorizationToken,
|
|
19
42
|
proxyEndpoint
|
|
20
43
|
} = (authorizationData === null || authorizationData === void 0 ? void 0 : authorizationData[0]) || {};
|
|
44
|
+
log.debug('GetAuthorizationToken data:', {
|
|
45
|
+
authorizationToken,
|
|
46
|
+
proxyEndpoint
|
|
47
|
+
});
|
|
21
48
|
if (!authorizationToken) {
|
|
22
49
|
throw new Error('failed to get authorizationToken from ECR');
|
|
23
50
|
}
|
|
@@ -25,16 +52,22 @@ export default async function loginToECR({
|
|
|
25
52
|
throw new Error('failed to get proxyEndpoint from ECR');
|
|
26
53
|
}
|
|
27
54
|
// this is silly...
|
|
28
|
-
const decoded =
|
|
55
|
+
const decoded = Buffer.from(base64.toByteArray(authorizationToken)).toString('utf8');
|
|
29
56
|
const [user, password] = decoded.split(/:/);
|
|
30
|
-
const
|
|
31
|
-
|
|
57
|
+
const dockerArgs = ['login', '-u', user, '--password-stdin', proxyEndpoint];
|
|
58
|
+
log.debug('running: docker', ...dockerArgs.map(arg => /^[-_a-z0-9]+$/i.test(arg) ? arg : `'${arg.replace(/'/g, `'\\'')}'`)}'`));
|
|
59
|
+
const child = spawn('docker', dockerArgs, {
|
|
60
|
+
stdio: ['pipe', 'pipe', 'inherit'],
|
|
32
61
|
encoding: 'utf8'
|
|
33
62
|
});
|
|
34
|
-
if (!child.stdin) {
|
|
35
|
-
throw new Error('expected child.stdin to be defined');
|
|
36
|
-
}
|
|
37
63
|
child.stdin.write(password);
|
|
38
64
|
child.stdin.end();
|
|
39
|
-
await child
|
|
40
|
-
|
|
65
|
+
await child.then(() => log.debug('ECR login succeeded'), error => {
|
|
66
|
+
if (error && typeof error === 'object') {
|
|
67
|
+
if ('code' in error) log.debug('docker login exited with code', error.code);
|
|
68
|
+
if ('signal' in error) log.debug('docker login was killed with signal', error.signal);
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=loginToECR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginToECR.mjs","names":["spawn","base64","ECRClient","GetAuthorizationTokenCommand","parseECRImageUri","log4jcore","log","logger","loginToECR","ecr","forImages","awsConfig","debug","regions","Set","flatMap","image","region","Promise","all","map","config","authorizationData","send","authorizationToken","proxyEndpoint","Error","decoded","Buffer","from","toByteArray","toString","user","password","split","dockerArgs","arg","test","replace","child","stdio","encoding","stdin","write","end","then","error","code","signal"],"sources":["src/loginToECR.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,QAAQ,yBAAyB;AAC/C,OAAOC,MAAM,MAAM,WAAW;AAC9B,SACEC,SAAS,EAETC,4BAA4B,QACvB,qBAAqB;AAC5B,OAAOC,gBAAgB;AACvB,OAAO,KAAKC,SAAS,MAAM,WAAW;AAEtC,MAAMC,GAAG,GAAGD,SAAS,CAACE,MAAM,CAAC,mCAAmC,CAAC;AAEjE,eAAe,eAAeC,UAAUA,CAAC;EACvCC,GAAG;EACHC,SAAS;EACTC;AAKF,CAAC,GAAG,CAAC,CAAC,EAAiB;EACrB,IAAID,SAAS,EAAE;IACbJ,GAAG,CAACM,KAAK,CAAC,kCAAkC,EAAEF,SAAS,CAAC;IACxD,MAAMG,OAAO,GAAG,IAAIC,GAAG,CACrBJ,SAAS,CAACK,OAAO,CAAEC,KAAK,IAAK;MAC3B,IAAI;QACF,OAAO,CAACZ,gBAAgB,CAACY,KAAK,CAAC,CAACC,MAAM,CAAC;MACzC,CAAC,CAAC,MAAM;QACN,OAAO,EAAE;MACX;IACF,CAAC,CACH,CAAC;IACDX,GAAG,CAACM,KAAK,CAAC,iCAAiC,EAAEC,OAAO,CAAC;IACrD,MAAMK,OAAO,CAACC,GAAG,CACf,CAAC,GAAGN,OAAO,CAAC,CAACO,GAAG,CAAC,MAAOH,MAAM,IAC5BT,UAAU,CAAC;MACTG,SAAS,EAAE;QAAE,GAAGA,SAAS;QAAEM;MAAO;IACpC,CAAC,CACH,CACF,CAAC;IACD;EACF;EACA,IAAI,CAACR,GAAG,EAAEA,GAAG,GAAG,IAAIP,SAAS,CAAC;IAAE,GAAGS;EAAU,CAAC,CAAC;EAE/CL,GAAG,CAACM,KAAK,CAAC,8BAA8B,EAAE,MAAMH,GAAG,CAACY,MAAM,CAACJ,MAAM,CAAC,CAAC,CAAC;EACpE,MAAM;IAAEK;EAAkB,CAAC,GAAG,MAAMb,GAAG,CAACc,IAAI,CAC1C,IAAIpB,4BAA4B,CAAC,CACnC,CAAC;EACD,MAAM;IAAEqB,kBAAkB;IAAEC;EAAc,CAAC,GAAG,CAAAH,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG,CAAC,CAAC,KAAI,CAAC,CAAC;EAC1EhB,GAAG,CAACM,KAAK,CAAC,6BAA6B,EAAE;IACvCY,kBAAkB;IAClBC;EACF,CAAC,CAAC;EACF,IAAI,CAACD,kBAAkB,EAAE;IACvB,MAAM,IAAIE,KAAK,CAAC,2CAA2C,CAAC;EAC9D;EACA,IAAI,CAACD,aAAa,EAAE;IAClB,MAAM,IAAIC,KAAK,CAAC,sCAAsC,CAAC;EACzD;EACA;EACA,MAAMC,OAAO,GAAGC,MAAM,CAACC,IAAI,CAAC5B,MAAM,CAAC6B,WAAW,CAACN,kBAAkB,CAAC,CAAC,CAACO,QAAQ,CAC1E,MACF,CAAC;EACD,MAAM,CAACC,IAAI,EAAEC,QAAQ,CAAC,GAAGN,OAAO,CAACO,KAAK,CAAC,GAAG,CAAC;EAC3C,MAAMC,UAAU,GAAG,CAAC,OAAO,EAAE,IAAI,EAAEH,IAAI,EAAE,kBAAkB,EAAEP,aAAa,CAAC;EAC3EnB,GAAG,CAACM,KAAK,CACP,iBAAiB,EACjB,GAAGuB,UAAU,CAACf,GAAG,CAAEgB,GAAG,IACpB,gBAAgB,CAACC,IAAI,CAACD,GAAG,CAAC,GAAGA,GAAG,GAAG,IAAIA,GAAG,CAACE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,GACtE,CACF,CAAC;EACD,MAAMC,KAAK,GAAGvC,KAAK,CAAC,QAAQ,EAAEmC,UAAU,EAAE;IACxCK,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAU;IAC3CC,QAAQ,EAAE;EACZ,CAAC,CAAC;EACFF,KAAK,CAACG,KAAK,CAACC,KAAK,CAACV,QAAQ,CAAC;EAC3BM,KAAK,CAACG,KAAK,CAACE,GAAG,CAAC,CAAC;EACjB,MAAML,KAAK,CAACM,IAAI,CACd,MAAMvC,GAAG,CAACM,KAAK,CAAC,qBAAqB,CAAC,EACrCkC,KAAc,IAAK;IAClB,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MACtC,IAAI,MAAM,IAAIA,KAAK,EACjBxC,GAAG,CAACM,KAAK,CAAC,+BAA+B,EAAEkC,KAAK,CAACC,IAAI,CAAC;MACxD,IAAI,QAAQ,IAAID,KAAK,EACnBxC,GAAG,CAACM,KAAK,CAAC,qCAAqC,EAAEkC,KAAK,CAACE,MAAM,CAAC;IAClE;IACA,MAAMF,KAAK;EACb,CACF,CAAC;AACH","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jcoreio/aws-ecr-utils",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "utilities for working with AWS Elastic Container Registry",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"repository": {
|
|
@@ -21,25 +21,31 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@aws-sdk/client-ecr": "^3.577.0",
|
|
23
23
|
"@aws-sdk/client-sts": "^3.577.0",
|
|
24
|
-
"@babel/runtime": "^7.
|
|
24
|
+
"@babel/runtime": "^7.26.0",
|
|
25
25
|
"base64-js": "^1.5.1",
|
|
26
26
|
"inquirer": "^8.2.6",
|
|
27
|
-
"
|
|
28
|
-
"promisify-child-process": "^
|
|
29
|
-
"zod": "^3.
|
|
27
|
+
"log4jcore": "^4.8.0",
|
|
28
|
+
"promisify-child-process": "^5.0.0",
|
|
29
|
+
"zod": "^3.25.76"
|
|
30
30
|
},
|
|
31
31
|
"main": "index.js",
|
|
32
32
|
"module": "index.mjs",
|
|
33
33
|
"types": "index.d.ts",
|
|
34
34
|
"exports": {
|
|
35
35
|
".": {
|
|
36
|
-
"types":
|
|
36
|
+
"types": {
|
|
37
|
+
"import": "./index.d.mts",
|
|
38
|
+
"default": "./index.d.ts"
|
|
39
|
+
},
|
|
37
40
|
"require": "./index.js",
|
|
38
41
|
"default": "./index.mjs"
|
|
39
42
|
},
|
|
40
43
|
"./package.json": "./package.json",
|
|
41
44
|
"./*": {
|
|
42
|
-
"types":
|
|
45
|
+
"types": {
|
|
46
|
+
"import": "./*.d.mts",
|
|
47
|
+
"default": "./*.d.ts"
|
|
48
|
+
},
|
|
43
49
|
"require": "./*.js",
|
|
44
50
|
"default": "./*.mjs"
|
|
45
51
|
}
|
|
@@ -47,5 +53,8 @@
|
|
|
47
53
|
"engines": {
|
|
48
54
|
"node": ">=16"
|
|
49
55
|
},
|
|
50
|
-
"packageManager": "pnpm@
|
|
56
|
+
"packageManager": "pnpm@10.6.5",
|
|
57
|
+
"@jcoreio/toolchain": {
|
|
58
|
+
"migratedVersion": "5.8.8"
|
|
59
|
+
}
|
|
51
60
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseECRImageUri.d.mts","names":["parseECRImageUri","imageUri","registryId","region","repositoryName","imageTag"],"sources":["src/parseECRImageUri.ts"],"sourcesContent":[null],"mappings":"AAAA,eAAc,SAAUA,gBAAgBA,CAACC,QAAQ,EAAE,MAAM,GAAG;EAC1DC,UAAU,EAAE,MAAM;EAClBC,MAAM,EAAE,MAAM;EACdC,cAAc,EAAE,MAAM;EACtBC,QAAQ,EAAE,MAAM;CACjB","ignoreList":[]}
|
package/parseECRImageUri.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
declare function parseECRImageUri(imageUri: string): {
|
|
2
|
+
registryId: string;
|
|
3
|
+
region: string;
|
|
4
|
+
repositoryName: string;
|
|
5
|
+
imageTag: string;
|
|
6
6
|
};
|
|
7
|
+
export = parseECRImageUri;
|
|
8
|
+
//# sourceMappingURL=parseECRImageUri.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseECRImageUri.d.ts","names":["parseECRImageUri","imageUri","registryId","region","repositoryName","imageTag"],"sources":["src/parseECRImageUri.ts"],"sourcesContent":[null],"mappings":"AAAc,iBAAUA,gBAAgBA,CAACC,QAAQ,EAAE,MAAM,GAAG;EAC1DC,UAAU,EAAE,MAAM;EAClBC,MAAM,EAAE,MAAM;EACdC,cAAc,EAAE,MAAM;EACtBC,QAAQ,EAAE,MAAM;CACjB;AAOA,SAAAL,gBAAA","ignoreList":[]}
|
package/parseECRImageUri.js
CHANGED