@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.
Files changed (127) hide show
  1. package/ImageManifestSchema.d.mts +59 -0
  2. package/ImageManifestSchema.d.mts.map +1 -0
  3. package/ImageManifestSchema.d.ts +50 -49
  4. package/ImageManifestSchema.d.ts.map +1 -0
  5. package/ImageManifestSchema.js +2 -1
  6. package/ImageManifestSchema.js.map +1 -0
  7. package/ImageManifestSchema.mjs +2 -1
  8. package/ImageManifestSchema.mjs.map +1 -0
  9. package/checkECRImageAccess.d.mts +25 -0
  10. package/checkECRImageAccess.d.mts.map +1 -0
  11. package/checkECRImageAccess.d.ts +25 -17
  12. package/checkECRImageAccess.d.ts.map +1 -0
  13. package/checkECRImageAccess.js +46 -47
  14. package/checkECRImageAccess.js.map +1 -0
  15. package/checkECRImageAccess.mjs +9 -7
  16. package/checkECRImageAccess.mjs.map +1 -0
  17. package/checkECRRepositoryPolicy.d.mts +28 -0
  18. package/checkECRRepositoryPolicy.d.mts.map +1 -0
  19. package/checkECRRepositoryPolicy.d.ts +21 -12
  20. package/checkECRRepositoryPolicy.d.ts.map +1 -0
  21. package/checkECRRepositoryPolicy.js +20 -19
  22. package/checkECRRepositoryPolicy.js.map +1 -0
  23. package/checkECRRepositoryPolicy.mjs +5 -5
  24. package/checkECRRepositoryPolicy.mjs.map +1 -0
  25. package/copyECRImage.d.mts +17 -0
  26. package/copyECRImage.d.mts.map +1 -0
  27. package/copyECRImage.d.ts +17 -12
  28. package/copyECRImage.d.ts.map +1 -0
  29. package/copyECRImage.js +21 -20
  30. package/copyECRImage.js.map +1 -0
  31. package/copyECRImage.mjs +2 -1
  32. package/copyECRImage.mjs.map +1 -0
  33. package/ecrImageExists.d.mts +17 -0
  34. package/ecrImageExists.d.mts.map +1 -0
  35. package/ecrImageExists.d.ts +17 -8
  36. package/ecrImageExists.d.ts.map +1 -0
  37. package/ecrImageExists.js +13 -12
  38. package/ecrImageExists.js.map +1 -0
  39. package/ecrImageExists.mjs +2 -1
  40. package/ecrImageExists.mjs.map +1 -0
  41. package/formatECRImageUri.d.mts +12 -0
  42. package/formatECRImageUri.d.mts.map +1 -0
  43. package/formatECRImageUri.d.ts +12 -5
  44. package/formatECRImageUri.d.ts.map +1 -0
  45. package/formatECRImageUri.js +2 -1
  46. package/formatECRImageUri.js.map +1 -0
  47. package/formatECRImageUri.mjs +2 -1
  48. package/formatECRImageUri.mjs.map +1 -0
  49. package/formatECRRepositoryHostname.d.mts +10 -0
  50. package/formatECRRepositoryHostname.d.mts.map +1 -0
  51. package/formatECRRepositoryHostname.d.ts +10 -4
  52. package/formatECRRepositoryHostname.d.ts.map +1 -0
  53. package/formatECRRepositoryHostname.js +2 -1
  54. package/formatECRRepositoryHostname.js.map +1 -0
  55. package/formatECRRepositoryHostname.mjs +2 -1
  56. package/formatECRRepositoryHostname.mjs.map +1 -0
  57. package/index.d.mts +12 -0
  58. package/index.d.mts.map +1 -0
  59. package/index.d.ts +12 -11
  60. package/index.d.ts.map +1 -0
  61. package/index.js +2 -1
  62. package/index.js.map +1 -0
  63. package/index.mjs +2 -1
  64. package/index.mjs.map +1 -0
  65. package/isInteractive.d.mts +2 -0
  66. package/isInteractive.d.mts.map +1 -0
  67. package/isInteractive.d.ts +2 -0
  68. package/isInteractive.d.ts.map +1 -0
  69. package/isInteractive.js +8 -0
  70. package/isInteractive.js.map +1 -0
  71. package/isInteractive.mjs +2 -0
  72. package/isInteractive.mjs.map +1 -0
  73. package/loginToECR.d.mts +11 -0
  74. package/loginToECR.d.mts.map +1 -0
  75. package/loginToECR.d.ts +11 -4
  76. package/loginToECR.d.ts.map +1 -0
  77. package/loginToECR.js +106 -28
  78. package/loginToECR.js.map +1 -0
  79. package/loginToECR.mjs +42 -9
  80. package/loginToECR.mjs.map +1 -0
  81. package/package.json +17 -8
  82. package/parseECRImageUri.d.mts +7 -0
  83. package/parseECRImageUri.d.mts.map +1 -0
  84. package/parseECRImageUri.d.ts +7 -5
  85. package/parseECRImageUri.d.ts.map +1 -0
  86. package/parseECRImageUri.js +2 -1
  87. package/parseECRImageUri.js.map +1 -0
  88. package/parseECRImageUri.mjs +2 -1
  89. package/parseECRImageUri.mjs.map +1 -0
  90. package/parseECRRepositoryHostname.d.mts +6 -0
  91. package/parseECRRepositoryHostname.d.mts.map +1 -0
  92. package/parseECRRepositoryHostname.d.ts +6 -4
  93. package/parseECRRepositoryHostname.d.ts.map +1 -0
  94. package/parseECRRepositoryHostname.js +2 -1
  95. package/parseECRRepositoryHostname.js.map +1 -0
  96. package/parseECRRepositoryHostname.mjs +2 -1
  97. package/parseECRRepositoryHostname.mjs.map +1 -0
  98. package/src/ImageManifestSchema.ts +19 -0
  99. package/src/checkECRImageAccess.ts +193 -0
  100. package/src/checkECRRepositoryPolicy.ts +153 -0
  101. package/src/copyECRImage.ts +76 -0
  102. package/src/ecrImageExists.ts +48 -0
  103. package/src/formatECRImageUri.ts +19 -0
  104. package/src/formatECRRepositoryHostname.ts +11 -0
  105. package/src/index.ts +11 -0
  106. package/src/isInteractive.ts +2 -0
  107. package/src/loginToECR.ts +93 -0
  108. package/src/parseECRImageUri.ts +13 -0
  109. package/src/parseECRRepositoryHostname.ts +12 -0
  110. package/src/tagECRImage.ts +57 -0
  111. package/src/upsertECRRepository.ts +40 -0
  112. package/tagECRImage.d.mts +16 -0
  113. package/tagECRImage.d.mts.map +1 -0
  114. package/tagECRImage.d.ts +13 -6
  115. package/tagECRImage.d.ts.map +1 -0
  116. package/tagECRImage.js +40 -39
  117. package/tagECRImage.js.map +1 -0
  118. package/tagECRImage.mjs +3 -3
  119. package/tagECRImage.mjs.map +1 -0
  120. package/upsertECRRepository.d.mts +11 -0
  121. package/upsertECRRepository.d.mts.map +1 -0
  122. package/upsertECRRepository.d.ts +11 -5
  123. package/upsertECRRepository.d.ts.map +1 -0
  124. package/upsertECRRepository.js +21 -20
  125. package/upsertECRRepository.js.map +1 -0
  126. package/upsertECRRepository.mjs +3 -2
  127. 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":[]}
@@ -10,4 +10,5 @@ export default function formatECRImageUri({
10
10
  region,
11
11
  repositoryName
12
12
  })}:${imageTag}`;
13
- }
13
+ }
14
+ //# sourceMappingURL=formatECRImageUri.mjs.map
@@ -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,10 @@
1
+ export default function formatECRRepositoryHostname({
2
+ registryId,
3
+ region,
4
+ repositoryName
5
+ }: {
6
+ registryId: string;
7
+ region: string;
8
+ repositoryName: string;
9
+ }): string;
10
+ //# sourceMappingURL=formatECRRepositoryHostname.d.mts.map
@@ -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
- export default function formatECRRepositoryHostname({ registryId, region, repositoryName, }: {
2
- registryId: string;
3
- region: string;
4
- repositoryName: string;
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":[]}
@@ -4,4 +4,5 @@ export default function formatECRRepositoryHostname({
4
4
  repositoryName
5
5
  }) {
6
6
  return `${registryId}.dkr.ecr.${region}.amazonaws.com/${repositoryName}`;
7
- }
7
+ }
8
+ //# sourceMappingURL=formatECRRepositoryHostname.mjs.map
@@ -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
@@ -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 './copyECRImage';
2
- export { default as ecrImageExists } from './ecrImageExists';
3
- export { default as loginToECR } from './loginToECR';
4
- export { default as tagECRImage } from './tagECRImage';
5
- export { default as parseECRImageUri } from './parseECRImageUri';
6
- export { default as parseECRRepositoryHostname } from './parseECRRepositoryHostname';
7
- export { default as upsertECRRepository } from './upsertECRRepository';
8
- export { default as checkECRRepositoryPolicy } from './checkECRRepositoryPolicy';
9
- export { default as checkECRImageAccess } from './checkECRImageAccess';
10
- export { default as formatECRRepositoryHostname } from './formatECRRepositoryHostname';
11
- export { default as formatECRImageUri } from './formatECRImageUri';
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,2 @@
1
+ export declare const isInteractive: boolean;
2
+ //# sourceMappingURL=isInteractive.d.mts.map
@@ -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,2 @@
1
+ export declare const isInteractive: boolean;
2
+ //# sourceMappingURL=isInteractive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isInteractive.d.ts","names":["isInteractive"],"sources":["src/isInteractive.ts"],"sourcesContent":[null],"mappings":"AAAA,qBAAaA,aAAa,SACqD","ignoreList":[]}
@@ -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,2 @@
1
+ export const isInteractive = process.stdout.isTTY && process.env.TERM !== 'dumb' && !('CI' in process.env);
2
+ //# sourceMappingURL=isInteractive.mjs.map
@@ -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":[]}
@@ -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
- export default function loginToECR({ ecr, awsConfig, }: {
3
- ecr?: ECRClient;
4
- awsConfig?: ECRClientConfig;
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
- function loginToECR(_x) {
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"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
24
- var ecr, awsConfig, _yield$ecr$send, authorizationData, _ref2, authorizationToken, proxyEndpoint, decoded, _decoded$split, _decoded$split2, user, password, child;
25
- return _regenerator["default"].wrap(function _callee$(_context) {
26
- while (1) switch (_context.prev = _context.next) {
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
- _context.next = 4;
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 = _context.sent;
100
+ _yield$ecr$send = _context2.sent;
34
101
  authorizationData = _yield$ecr$send.authorizationData;
35
- _ref2 = (authorizationData === null || authorizationData === void 0 ? void 0 : authorizationData[0]) || {}, authorizationToken = _ref2.authorizationToken, proxyEndpoint = _ref2.proxyEndpoint;
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
- _context.next = 9;
108
+ _context2.next = 5;
38
109
  break;
39
110
  }
40
111
  throw new Error('failed to get authorizationToken from ECR');
41
- case 9:
112
+ case 5:
42
113
  if (proxyEndpoint) {
43
- _context.next = 11;
114
+ _context2.next = 6;
44
115
  break;
45
116
  }
46
117
  throw new Error('failed to get proxyEndpoint from ECR');
47
- case 11:
118
+ case 6:
48
119
  // this is silly...
49
- decoded = new Buffer(_base64Js["default"].toByteArray(authorizationToken)).toString('utf8');
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
- child = (0, _promisifyChildProcess.spawn)('docker', ['login', '-u', user, '--password-stdin', proxyEndpoint], {
52
- stdio: 'pipe',
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
- _context.next = 20;
64
- return child;
65
- case 20:
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 _context.stop();
144
+ return _context2.stop();
68
145
  }
69
- }, _callee);
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 = new Buffer(base64.toByteArray(authorizationToken)).toString('utf8');
55
+ const decoded = Buffer.from(base64.toByteArray(authorizationToken)).toString('utf8');
29
56
  const [user, password] = decoded.split(/:/);
30
- const child = spawn('docker', ['login', '-u', user, '--password-stdin', proxyEndpoint], {
31
- stdio: 'pipe',
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":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jcoreio/aws-ecr-utils",
3
- "version": "2.0.0",
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.18.6",
24
+ "@babel/runtime": "^7.26.0",
25
25
  "base64-js": "^1.5.1",
26
26
  "inquirer": "^8.2.6",
27
- "is-interactive": "^1.0.0",
28
- "promisify-child-process": "^4.1.1",
29
- "zod": "^3.22.4"
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": "./index.d.ts",
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": "./*.d.ts",
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@8.11.0"
56
+ "packageManager": "pnpm@10.6.5",
57
+ "@jcoreio/toolchain": {
58
+ "migratedVersion": "5.8.8"
59
+ }
51
60
  }
@@ -0,0 +1,7 @@
1
+ export default function parseECRImageUri(imageUri: string): {
2
+ registryId: string;
3
+ region: string;
4
+ repositoryName: string;
5
+ imageTag: string;
6
+ };
7
+ //# sourceMappingURL=parseECRImageUri.d.mts.map
@@ -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":[]}
@@ -1,6 +1,8 @@
1
- export default function parseECRImageUri(imageUri: string): {
2
- registryId: string;
3
- region: string;
4
- repositoryName: string;
5
- imageTag: string;
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":[]}
@@ -21,4 +21,5 @@ function parseECRImageUri(imageUri) {
21
21
  imageTag: imageTag
22
22
  };
23
23
  }
24
- module.exports = exports.default;
24
+ module.exports = exports.default;
25
+ //# sourceMappingURL=parseECRImageUri.js.map