@jcoreio/aws-ecr-utils 2.0.0 → 2.1.0

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 (118) 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 +24 -16
  12. package/checkECRImageAccess.d.ts.map +1 -0
  13. package/checkECRImageAccess.js +43 -44
  14. package/checkECRImageAccess.js.map +1 -0
  15. package/checkECRImageAccess.mjs +6 -4
  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 +20 -11
  20. package/checkECRRepositoryPolicy.d.ts.map +1 -0
  21. package/checkECRRepositoryPolicy.js +18 -17
  22. package/checkECRRepositoryPolicy.js.map +1 -0
  23. package/checkECRRepositoryPolicy.mjs +3 -3
  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 +16 -11
  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 +16 -7
  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/loginToECR.d.mts +11 -0
  66. package/loginToECR.d.mts.map +1 -0
  67. package/loginToECR.d.ts +10 -3
  68. package/loginToECR.d.ts.map +1 -0
  69. package/loginToECR.js +89 -23
  70. package/loginToECR.js.map +1 -0
  71. package/loginToECR.mjs +41 -5
  72. package/loginToECR.mjs.map +1 -0
  73. package/package.json +15 -5
  74. package/parseECRImageUri.d.mts +7 -0
  75. package/parseECRImageUri.d.mts.map +1 -0
  76. package/parseECRImageUri.d.ts +7 -5
  77. package/parseECRImageUri.d.ts.map +1 -0
  78. package/parseECRImageUri.js +2 -1
  79. package/parseECRImageUri.js.map +1 -0
  80. package/parseECRImageUri.mjs +2 -1
  81. package/parseECRImageUri.mjs.map +1 -0
  82. package/parseECRRepositoryHostname.d.mts +6 -0
  83. package/parseECRRepositoryHostname.d.mts.map +1 -0
  84. package/parseECRRepositoryHostname.d.ts +6 -4
  85. package/parseECRRepositoryHostname.d.ts.map +1 -0
  86. package/parseECRRepositoryHostname.js +2 -1
  87. package/parseECRRepositoryHostname.js.map +1 -0
  88. package/parseECRRepositoryHostname.mjs +2 -1
  89. package/parseECRRepositoryHostname.mjs.map +1 -0
  90. package/src/ImageManifestSchema.ts +19 -0
  91. package/src/checkECRImageAccess.ts +193 -0
  92. package/src/checkECRRepositoryPolicy.ts +153 -0
  93. package/src/copyECRImage.ts +76 -0
  94. package/src/ecrImageExists.ts +48 -0
  95. package/src/formatECRImageUri.ts +19 -0
  96. package/src/formatECRRepositoryHostname.ts +11 -0
  97. package/src/index.ts +11 -0
  98. package/src/loginToECR.ts +96 -0
  99. package/src/parseECRImageUri.ts +13 -0
  100. package/src/parseECRRepositoryHostname.ts +12 -0
  101. package/src/tagECRImage.ts +57 -0
  102. package/src/upsertECRRepository.ts +40 -0
  103. package/tagECRImage.d.mts +16 -0
  104. package/tagECRImage.d.mts.map +1 -0
  105. package/tagECRImage.d.ts +12 -5
  106. package/tagECRImage.d.ts.map +1 -0
  107. package/tagECRImage.js +40 -39
  108. package/tagECRImage.js.map +1 -0
  109. package/tagECRImage.mjs +3 -3
  110. package/tagECRImage.mjs.map +1 -0
  111. package/upsertECRRepository.d.mts +11 -0
  112. package/upsertECRRepository.d.mts.map +1 -0
  113. package/upsertECRRepository.d.ts +10 -4
  114. package/upsertECRRepository.d.ts.map +1 -0
  115. package/upsertECRRepository.js +21 -20
  116. package/upsertECRRepository.js.map +1 -0
  117. package/upsertECRRepository.mjs +3 -2
  118. package/upsertECRRepository.mjs.map +1 -0
@@ -0,0 +1,59 @@
1
+ import z from 'zod';
2
+ export declare const ImageManifestSchema: z.ZodObject<{
3
+ schemaVersion: z.ZodLiteral<2>;
4
+ mediaType: z.ZodString;
5
+ config: z.ZodObject<{
6
+ mediaType: z.ZodString;
7
+ size: z.ZodNumber;
8
+ digest: z.ZodString;
9
+ }, "strip", z.ZodTypeAny, {
10
+ mediaType: string;
11
+ size: number;
12
+ digest: string;
13
+ }, {
14
+ mediaType: string;
15
+ size: number;
16
+ digest: string;
17
+ }>;
18
+ layers: z.ZodArray<z.ZodObject<{
19
+ mediaType: z.ZodString;
20
+ size: z.ZodNumber;
21
+ digest: z.ZodString;
22
+ }, "strip", z.ZodTypeAny, {
23
+ mediaType: string;
24
+ size: number;
25
+ digest: string;
26
+ }, {
27
+ mediaType: string;
28
+ size: number;
29
+ digest: string;
30
+ }>, "many">;
31
+ }, "strip", z.ZodTypeAny, {
32
+ mediaType: string;
33
+ schemaVersion: 2;
34
+ config: {
35
+ mediaType: string;
36
+ size: number;
37
+ digest: string;
38
+ };
39
+ layers: {
40
+ mediaType: string;
41
+ size: number;
42
+ digest: string;
43
+ }[];
44
+ }, {
45
+ mediaType: string;
46
+ schemaVersion: 2;
47
+ config: {
48
+ mediaType: string;
49
+ size: number;
50
+ digest: string;
51
+ };
52
+ layers: {
53
+ mediaType: string;
54
+ size: number;
55
+ digest: string;
56
+ }[];
57
+ }>;
58
+ export type ImageManifestSchema = z.infer<typeof ImageManifestSchema>;
59
+ //# sourceMappingURL=ImageManifestSchema.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageManifestSchema.d.mts","names":["z","ImageManifestSchema","ZodObject","infer"],"sources":["src/ImageManifestSchema.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,CAAC,MAAM,KAAK;AAYnB,qBAAaC,mBAAmB,EAAAD,CAAA,CAAAE,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9B;AACF,OAAM,KAAMD,mBAAmB,GAAGD,CAAC,CAACG,KAAK,CAAC,OAAOF,mBAAmB,CAAC","ignoreList":[]}
@@ -1,58 +1,59 @@
1
1
  import z from 'zod';
2
2
  export declare const ImageManifestSchema: z.ZodObject<{
3
- schemaVersion: z.ZodLiteral<2>;
3
+ schemaVersion: z.ZodLiteral<2>;
4
+ mediaType: z.ZodString;
5
+ config: z.ZodObject<{
4
6
  mediaType: z.ZodString;
5
- config: z.ZodObject<{
6
- mediaType: z.ZodString;
7
- size: z.ZodNumber;
8
- digest: z.ZodString;
9
- }, "strip", z.ZodTypeAny, {
10
- mediaType: string;
11
- size: number;
12
- digest: string;
13
- }, {
14
- mediaType: string;
15
- size: number;
16
- digest: string;
17
- }>;
18
- layers: z.ZodArray<z.ZodObject<{
19
- mediaType: z.ZodString;
20
- size: z.ZodNumber;
21
- digest: z.ZodString;
22
- }, "strip", z.ZodTypeAny, {
23
- mediaType: string;
24
- size: number;
25
- digest: string;
26
- }, {
27
- mediaType: string;
28
- size: number;
29
- digest: string;
30
- }>, "many">;
7
+ size: z.ZodNumber;
8
+ digest: z.ZodString;
9
+ }, "strip", z.ZodTypeAny, {
10
+ mediaType: string;
11
+ size: number;
12
+ digest: string;
13
+ }, {
14
+ mediaType: string;
15
+ size: number;
16
+ digest: string;
17
+ }>;
18
+ layers: z.ZodArray<z.ZodObject<{
19
+ mediaType: z.ZodString;
20
+ size: z.ZodNumber;
21
+ digest: z.ZodString;
22
+ }, "strip", z.ZodTypeAny, {
23
+ mediaType: string;
24
+ size: number;
25
+ digest: string;
26
+ }, {
27
+ mediaType: string;
28
+ size: number;
29
+ digest: string;
30
+ }>, "many">;
31
31
  }, "strip", z.ZodTypeAny, {
32
+ mediaType: string;
33
+ schemaVersion: 2;
34
+ config: {
35
+ mediaType: string;
36
+ size: number;
37
+ digest: string;
38
+ };
39
+ layers: {
32
40
  mediaType: string;
33
- schemaVersion: 2;
34
- config: {
35
- mediaType: string;
36
- size: number;
37
- digest: string;
38
- };
39
- layers: {
40
- mediaType: string;
41
- size: number;
42
- digest: string;
43
- }[];
41
+ size: number;
42
+ digest: string;
43
+ }[];
44
44
  }, {
45
+ mediaType: string;
46
+ schemaVersion: 2;
47
+ config: {
48
+ mediaType: string;
49
+ size: number;
50
+ digest: string;
51
+ };
52
+ layers: {
45
53
  mediaType: string;
46
- schemaVersion: 2;
47
- config: {
48
- mediaType: string;
49
- size: number;
50
- digest: string;
51
- };
52
- layers: {
53
- mediaType: string;
54
- size: number;
55
- digest: string;
56
- }[];
54
+ size: number;
55
+ digest: string;
56
+ }[];
57
57
  }>;
58
58
  export type ImageManifestSchema = z.infer<typeof ImageManifestSchema>;
59
+ //# sourceMappingURL=ImageManifestSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageManifestSchema.d.ts","names":["z","ImageManifestSchema","ZodObject","infer"],"sources":["src/ImageManifestSchema.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,CAAC,MAAM,KAAK;AAYnB,qBAAaC,mBAAmB,EAAAD,CAAA,CAAAE,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9B;AACF,OAAM,KAAMD,mBAAmB,GAAGD,CAAC,CAACG,KAAK,CAAC,OAAOF,mBAAmB,CAAC","ignoreList":[]}
@@ -19,4 +19,5 @@ var ImageManifestSchema = exports.ImageManifestSchema = _zod["default"].object({
19
19
  mediaType: _zod["default"].string(),
20
20
  config: LayerSchema,
21
21
  layers: _zod["default"].array(LayerSchema)
22
- });
22
+ });
23
+ //# sourceMappingURL=ImageManifestSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageManifestSchema.js","names":["_zod","_interopRequireDefault","require","MediaType","z","string","min","Size","number","nonnegative","Digest","LayerSchema","object","mediaType","size","digest","ImageManifestSchema","exports","schemaVersion","literal","config","layers","array"],"sources":["src/ImageManifestSchema.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,SAAS,GAAGC,eAAC,CAACC,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;AACnC,IAAMC,IAAI,GAAGH,eAAC,CAACI,MAAM,CAAC,CAAC,OAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;AAC3C,IAAMC,MAAM,GAAGN,eAAC,CAACC,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,EAAE,CAAC;AAEjC,IAAMK,WAAW,GAAGP,eAAC,CAACQ,MAAM,CAAC;EAC3BC,SAAS,EAAEV,SAAS;EACpBW,IAAI,EAAEP,IAAI;EACVQ,MAAM,EAAEL;AACV,CAAC,CAAC;AAEK,IAAMM,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAGZ,eAAC,CAACQ,MAAM,CAAC;EAC1CM,aAAa,EAAEd,eAAC,CAACe,OAAO,CAAC,CAAC,CAAC;EAC3BN,SAAS,EAAET,eAAC,CAACC,MAAM,CAAC,CAAC;EACrBe,MAAM,EAAET,WAAW;EACnBU,MAAM,EAAEjB,eAAC,CAACkB,KAAK,CAACX,WAAW;AAC7B,CAAC,CAAC","ignoreList":[]}
@@ -12,4 +12,5 @@ export const ImageManifestSchema = z.object({
12
12
  mediaType: z.string(),
13
13
  config: LayerSchema,
14
14
  layers: z.array(LayerSchema)
15
- });
15
+ });
16
+ //# sourceMappingURL=ImageManifestSchema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageManifestSchema.mjs","names":["z","MediaType","string","min","Size","number","int","nonnegative","Digest","LayerSchema","object","mediaType","size","digest","ImageManifestSchema","schemaVersion","literal","config","layers","array"],"sources":["src/ImageManifestSchema.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,CAAC,MAAM,KAAK;AAEnB,MAAMC,SAAS,GAAGD,CAAC,CAACE,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;AACnC,MAAMC,IAAI,GAAGJ,CAAC,CAACK,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;AAC3C,MAAMC,MAAM,GAAGR,CAAC,CAACE,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,EAAE,CAAC;AAEjC,MAAMM,WAAW,GAAGT,CAAC,CAACU,MAAM,CAAC;EAC3BC,SAAS,EAAEV,SAAS;EACpBW,IAAI,EAAER,IAAI;EACVS,MAAM,EAAEL;AACV,CAAC,CAAC;AAEF,OAAO,MAAMM,mBAAmB,GAAGd,CAAC,CAACU,MAAM,CAAC;EAC1CK,aAAa,EAAEf,CAAC,CAACgB,OAAO,CAAC,CAAC,CAAC;EAC3BL,SAAS,EAAEX,CAAC,CAACE,MAAM,CAAC,CAAC;EACrBe,MAAM,EAAER,WAAW;EACnBS,MAAM,EAAElB,CAAC,CAACmB,KAAK,CAACV,WAAW;AAC7B,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { ECRClient, ECRClientConfig } from '@aws-sdk/client-ecr';
2
+ export default function checkECRImageAccess({
3
+ ecr,
4
+ awsConfig,
5
+ repoAccountAwsConfig,
6
+ imageUri,
7
+ log
8
+ }: {
9
+ ecr?: ECRClient;
10
+ awsConfig?: ECRClientConfig;
11
+ /**
12
+ * Config for the AWS account containing the ECR repository.
13
+ * Optional; if given, will prompt to add/update the policy on the
14
+ * ECR repository, if access checks failed and the terminal is
15
+ * interactive.
16
+ */
17
+ repoAccountAwsConfig?: ECRClientConfig;
18
+ imageUri: string;
19
+ log?: {
20
+ info: (...args: any[]) => void;
21
+ warn: (...args: any[]) => void;
22
+ error: (...args: any[]) => void;
23
+ };
24
+ }): Promise<boolean>;
25
+ //# sourceMappingURL=checkECRImageAccess.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkECRImageAccess.d.mts","names":["ECRClient","ECRClientConfig","checkECRImageAccess","ecr","awsConfig","repoAccountAwsConfig","imageUri","log","info","args","warn","error","Promise"],"sources":["src/checkECRImageAccess.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,SAAS,EACTC,eAAe,QAIV,qBAAqB;AAQ5B,wBAA8BC,mBAAmBA,CAAC;EAChDC,GAAG;EACHC,SAAS;EACTC,oBAAoB;EACpBC,QAAQ;EACRC;CACD,EAAE;EACDJ,GAAG,CAAC,EAAEH,SAAS;EACfI,SAAS,CAAC,EAAEH,eAAe;EAC3B;;;;;;EAMAI,oBAAoB,CAAC,EAAEJ,eAAe;EACtCK,QAAQ,EAAE,MAAM;EAChBC,GAAG,CAAC,EAAE;IACJC,IAAI,EAAE,CAAC,GAAGC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BC,IAAI,EAAE,CAAC,GAAGD,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BE,KAAK,EAAE,CAAC,GAAGF,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;GAChC;CACF,GAAGG,OAAO,CAAC,OAAO,CAAC","ignoreList":[]}
@@ -1,18 +1,26 @@
1
1
  import { ECRClient, ECRClientConfig } from '@aws-sdk/client-ecr';
2
- export default function checkECRImageAccess({ ecr, awsConfig, repoAccountAwsConfig, imageUri, log, }: {
3
- ecr?: ECRClient;
4
- awsConfig?: ECRClientConfig;
5
- /**
6
- * Config for the AWS account containing the ECR repository.
7
- * Optional; if given, will prompt to add/update the policy on the
8
- * ECR repository, if access checks failed and the terminal is
9
- * interactive.
10
- */
11
- repoAccountAwsConfig?: ECRClientConfig;
12
- imageUri: string;
13
- log?: {
14
- info: (...args: any[]) => void;
15
- warn: (...args: any[]) => void;
16
- error: (...args: any[]) => void;
17
- };
2
+ declare function checkECRImageAccess({
3
+ ecr,
4
+ awsConfig,
5
+ repoAccountAwsConfig,
6
+ imageUri,
7
+ log
8
+ }: {
9
+ ecr?: ECRClient;
10
+ awsConfig?: ECRClientConfig;
11
+ /**
12
+ * Config for the AWS account containing the ECR repository.
13
+ * Optional; if given, will prompt to add/update the policy on the
14
+ * ECR repository, if access checks failed and the terminal is
15
+ * interactive.
16
+ */
17
+ repoAccountAwsConfig?: ECRClientConfig;
18
+ imageUri: string;
19
+ log?: {
20
+ info: (...args: any[]) => void;
21
+ warn: (...args: any[]) => void;
22
+ error: (...args: any[]) => void;
23
+ };
18
24
  }): Promise<boolean>;
25
+ export = checkECRImageAccess;
26
+ //# sourceMappingURL=checkECRImageAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkECRImageAccess.d.ts","names":["ECRClient","ECRClientConfig","checkECRImageAccess","ecr","awsConfig","repoAccountAwsConfig","imageUri","log","info","args","warn","error","Promise"],"sources":["src/checkECRImageAccess.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,SAAS,EACTC,eAAe,QAIV,qBAAqB;AAQ5B,iBAA8BC,mBAAmBA,CAAC;EAChDC,GAAG;EACHC,SAAS;EACTC,oBAAoB;EACpBC,QAAQ;EACRC;CACD,EAAE;EACDJ,GAAG,CAAC,EAAEH,SAAS;EACfI,SAAS,CAAC,EAAEH,eAAe;EAC3B;;;;;;EAMAI,oBAAoB,CAAC,EAAEJ,eAAe;EACtCK,QAAQ,EAAE,MAAM;EAChBC,GAAG,CAAC,EAAE;IACJC,IAAI,EAAE,CAAC,GAAGC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BC,IAAI,EAAE,CAAC,GAAGD,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BE,KAAK,EAAE,CAAC,GAAGF,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;GAChC;CACF,GAAGG,OAAO,CAAC,OAAO,CAAC;AA0JnB,SAAAV,mBAAA","ignoreList":[]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = checkECRImageAccess;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
13
  var _clientEcr = require("@aws-sdk/client-ecr");
@@ -23,9 +23,9 @@ function checkECRImageAccess(_x) {
23
23
  return _checkECRImageAccess.apply(this, arguments);
24
24
  }
25
25
  function _checkECRImageAccess() {
26
- _checkECRImageAccess = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
27
- var ecr, awsConfig, repoAccountAwsConfig, imageUri, _ref$log, log, _parseECRImageUri, registryId, region, repositoryName, imageTag, _yield$ecr$send, _yield$ecr$send$image, _yield$ecr$send$image2, _yield$ecr$send$image3, image, imageManifest, _ImageManifestSchema$, config, layers, Action, _yield$STSClient$send, Account, _yield$inquirer$promp, update, srcEcr, _yield$srcEcr$send$ca, policyText, policy;
28
- return _regenerator["default"].wrap(function _callee$(_context) {
26
+ _checkECRImageAccess = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
27
+ var ecr, awsConfig, repoAccountAwsConfig, imageUri, _ref$log, log, _parseECRImageUri, registryId, region, repositoryName, imageTag, _images$, _yield$ecr$send, _yield$ecr$send$image, images, imageManifest, _ImageManifestSchema$, config, layers, Action, _yield$STSClient$send, Account, _yield$inquirer$promp, update, srcEcr, _yield$srcEcr$send$ca, policyText, policy, _t;
28
+ return _regenerator["default"].wrap(function (_context) {
29
29
  while (1) switch (_context.prev = _context.next) {
30
30
  case 0:
31
31
  ecr = _ref.ecr, awsConfig = _ref.awsConfig, repoAccountAwsConfig = _ref.repoAccountAwsConfig, imageUri = _ref.imageUri, _ref$log = _ref.log, log = _ref$log === void 0 ? console : _ref$log;
@@ -34,8 +34,8 @@ function _checkECRImageAccess() {
34
34
  if (!ecr) ecr = new _clientEcr.ECRClient(_objectSpread(_objectSpread({}, awsConfig), {}, {
35
35
  region: region
36
36
  }));
37
- _context.prev = 4;
38
- _context.next = 7;
37
+ _context.prev = 1;
38
+ _context.next = 2;
39
39
  return ecr.send(new _clientEcr.BatchGetImageCommand({
40
40
  registryId: registryId,
41
41
  repositoryName: repositoryName,
@@ -43,21 +43,19 @@ function _checkECRImageAccess() {
43
43
  imageTag: imageTag
44
44
  }]
45
45
  }));
46
- case 7:
46
+ case 2:
47
47
  _yield$ecr$send = _context.sent;
48
48
  _yield$ecr$send$image = _yield$ecr$send.images;
49
- _yield$ecr$send$image2 = _yield$ecr$send$image === void 0 ? [] : _yield$ecr$send$image;
50
- _yield$ecr$send$image3 = (0, _slicedToArray2["default"])(_yield$ecr$send$image2, 1);
51
- image = _yield$ecr$send$image3[0];
52
- imageManifest = image === null || image === void 0 ? void 0 : image.imageManifest;
49
+ images = _yield$ecr$send$image === void 0 ? [] : _yield$ecr$send$image;
50
+ imageManifest = (_images$ = images[0]) === null || _images$ === void 0 ? void 0 : _images$.imageManifest;
53
51
  if (imageManifest) {
54
- _context.next = 15;
52
+ _context.next = 3;
55
53
  break;
56
54
  }
57
55
  throw new Error("imageManifest not found for: ".concat(imageUri));
58
- case 15:
56
+ case 3:
59
57
  _ImageManifestSchema$ = _ImageManifestSchema.ImageManifestSchema.parse(JSON.parse(imageManifest)), config = _ImageManifestSchema$.config, layers = _ImageManifestSchema$.layers;
60
- _context.next = 18;
58
+ _context.next = 4;
61
59
  return ecr.send(new _clientEcr.BatchCheckLayerAvailabilityCommand({
62
60
  registryId: registryId,
63
61
  repositoryName: repositoryName,
@@ -65,25 +63,25 @@ function _checkECRImageAccess() {
65
63
  return l.digest;
66
64
  })))
67
65
  }));
68
- case 18:
69
- _context.next = 20;
66
+ case 4:
67
+ _context.next = 5;
70
68
  return ecr.send(new _clientEcr.GetDownloadUrlForLayerCommand({
71
69
  registryId: registryId,
72
70
  repositoryName: repositoryName,
73
71
  layerDigest: layers[0].digest
74
72
  }));
75
- case 20:
73
+ case 5:
76
74
  log.error("ECR image is accessible: ".concat(imageUri));
77
75
  return _context.abrupt("return", true);
78
- case 24:
79
- _context.prev = 24;
80
- _context.t0 = _context["catch"](4);
81
- if (!(!(_context.t0 instanceof Error) || _context.t0.name !== 'AccessDeniedException')) {
82
- _context.next = 28;
76
+ case 6:
77
+ _context.prev = 6;
78
+ _t = _context["catch"](1);
79
+ if (!(!(_t instanceof Error) || _t.name !== 'AccessDeniedException')) {
80
+ _context.next = 7;
83
81
  break;
84
82
  }
85
- throw _context.t0;
86
- case 28:
83
+ throw _t;
84
+ case 7:
87
85
  log.error("Unable to access ECR image: ".concat(imageUri));
88
86
  Action = ['ecr:GetDownloadUrlForLayer', 'ecr:BatchCheckLayerAvailability', 'ecr:BatchGetImage'];
89
87
  log.error("You may need to add a policy to the ECR repository to allow this account.\n\nThe policy should include:\n\n ".concat(JSON.stringify({
@@ -97,56 +95,56 @@ function _checkECRImageAccess() {
97
95
  }]
98
96
  }, null, 2).replace(/\n/gm, '\n '), "\n"));
99
97
  if (!(repoAccountAwsConfig && (0, _isInteractive["default"])())) {
100
- _context.next = 57;
98
+ _context.next = 15;
101
99
  break;
102
100
  }
103
- _context.next = 34;
101
+ _context.next = 8;
104
102
  return new _clientSts.STSClient({
105
103
  credentials: ecr.config.credentials,
106
104
  region: region
107
105
  }).send(new _clientSts.GetCallerIdentityCommand());
108
- case 34:
106
+ case 8:
109
107
  _yield$STSClient$send = _context.sent;
110
108
  Account = _yield$STSClient$send.Account;
111
109
  if (Account) {
112
- _context.next = 39;
110
+ _context.next = 9;
113
111
  break;
114
112
  }
115
113
  log.error("failed to determine AWS account");
116
114
  return _context.abrupt("return", false);
117
- case 39:
118
- _context.next = 41;
115
+ case 9:
116
+ _context.next = 10;
119
117
  return _inquirer["default"].prompt([{
120
118
  name: 'update',
121
119
  message: 'Do you want to add/update the policy?',
122
120
  type: 'confirm',
123
121
  "default": false
124
122
  }]);
125
- case 41:
123
+ case 10:
126
124
  _yield$inquirer$promp = _context.sent;
127
125
  update = _yield$inquirer$promp.update;
128
126
  if (update) {
129
- _context.next = 45;
127
+ _context.next = 11;
130
128
  break;
131
129
  }
132
130
  return _context.abrupt("return", false);
133
- case 45:
131
+ case 11:
134
132
  srcEcr = new _clientEcr.ECRClient(_objectSpread(_objectSpread({}, repoAccountAwsConfig), {}, {
135
133
  region: region
136
134
  }));
137
- _context.next = 48;
135
+ _context.next = 12;
138
136
  return srcEcr.send(new _clientEcr.GetRepositoryPolicyCommand({
139
137
  registryId: registryId,
140
138
  repositoryName: repositoryName
141
139
  }))["catch"](function (error) {
142
- if (error.name === 'RepositoryPolicyNotFoundException') return {};
140
+ if (error && (0, _typeof2["default"])(error) === 'object' && 'name' in error && error.name === 'RepositoryPolicyNotFoundException') return {};
143
141
  throw error;
144
142
  });
145
- case 48:
143
+ case 12:
146
144
  _yield$srcEcr$send$ca = _context.sent;
147
145
  policyText = _yield$srcEcr$send$ca.policyText;
148
146
  policy = JSON.parse(policyText || '{}');
149
- _context.next = 53;
147
+ _context.next = 13;
150
148
  return srcEcr.send(new _clientEcr.SetRepositoryPolicyCommand({
151
149
  repositoryName: repositoryName,
152
150
  policyText: JSON.stringify(_objectSpread(_objectSpread({
@@ -161,29 +159,30 @@ function _checkECRImageAccess() {
161
159
  }])
162
160
  }), null, 2)
163
161
  }));
164
- case 53:
162
+ case 13:
165
163
  log.info("updated policy on ECR repository ".concat((0, _formatECRRepositoryHostname["default"])({
166
164
  registryId: registryId,
167
165
  region: region,
168
166
  repositoryName: repositoryName
169
167
  })));
170
- _context.next = 56;
168
+ _context.next = 14;
171
169
  return checkECRImageAccess({
172
170
  awsConfig: awsConfig,
173
171
  imageUri: imageUri,
174
172
  log: log,
175
173
  ecr: ecr
176
174
  });
177
- case 56:
175
+ case 14:
178
176
  return _context.abrupt("return", _context.sent);
179
- case 57:
177
+ case 15:
180
178
  return _context.abrupt("return", false);
181
- case 58:
179
+ case 16:
182
180
  case "end":
183
181
  return _context.stop();
184
182
  }
185
- }, _callee, null, [[4, 24]]);
183
+ }, _callee, null, [[1, 6]]);
186
184
  }));
187
185
  return _checkECRImageAccess.apply(this, arguments);
188
186
  }
189
- module.exports = exports.default;
187
+ module.exports = exports.default;
188
+ //# sourceMappingURL=checkECRImageAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkECRImageAccess.js","names":["_clientEcr","require","_clientSts","_parseECRImageUri2","_interopRequireDefault","_ImageManifestSchema","_isInteractive","_inquirer","_formatECRRepositoryHostname","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","checkECRImageAccess","_x","_checkECRImageAccess","_asyncToGenerator2","_regenerator","mark","_callee","_ref","ecr","awsConfig","repoAccountAwsConfig","imageUri","_ref$log","log","_parseECRImageUri","registryId","region","repositoryName","imageTag","_images$","_yield$ecr$send","_yield$ecr$send$image","images","imageManifest","_ImageManifestSchema$","config","layers","Action","_yield$STSClient$send","Account","_yield$inquirer$promp","update","srcEcr","_yield$srcEcr$send$ca","policyText","policy","_t","wrap","_context","prev","next","console","error","parseECRImageUri","ECRClient","send","BatchGetImageCommand","imageIds","sent","Error","concat","ImageManifestSchema","parse","JSON","BatchCheckLayerAvailabilityCommand","layerDigests","digest","_toConsumableArray2","map","l","GetDownloadUrlForLayerCommand","layerDigest","abrupt","name","stringify","Version","Statement","Effect","Principal","AWS","replace","isInteractive","STSClient","credentials","GetCallerIdentityCommand","inquirer","prompt","message","type","GetRepositoryPolicyCommand","_typeof2","SetRepositoryPolicyCommand","info","formatECRRepositoryHostname","stop","module","exports","default"],"sources":["src/checkECRImageAccess.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -24,8 +24,9 @@ export default async function checkECRImageAccess({
24
24
  region
25
25
  });
26
26
  try {
27
+ var _images$;
27
28
  const {
28
- images: [image] = []
29
+ images = []
29
30
  } = await ecr.send(new BatchGetImageCommand({
30
31
  registryId,
31
32
  repositoryName,
@@ -33,7 +34,7 @@ export default async function checkECRImageAccess({
33
34
  imageTag
34
35
  }]
35
36
  }));
36
- const imageManifest = image === null || image === void 0 ? void 0 : image.imageManifest;
37
+ const imageManifest = (_images$ = images[0]) === null || _images$ === void 0 ? void 0 : _images$.imageManifest;
37
38
  if (!imageManifest) {
38
39
  throw new Error(`imageManifest not found for: ${imageUri}`);
39
40
  }
@@ -105,7 +106,7 @@ The policy should include:
105
106
  registryId,
106
107
  repositoryName
107
108
  })).catch(error => {
108
- if (error.name === 'RepositoryPolicyNotFoundException') return {};
109
+ if (error && typeof error === 'object' && 'name' in error && error.name === 'RepositoryPolicyNotFoundException') return {};
109
110
  throw error;
110
111
  });
111
112
  const policy = JSON.parse(policyText || '{}');
@@ -136,4 +137,5 @@ The policy should include:
136
137
  });
137
138
  }
138
139
  return false;
139
- }
140
+ }
141
+ //# sourceMappingURL=checkECRImageAccess.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkECRImageAccess.mjs","names":["BatchCheckLayerAvailabilityCommand","BatchGetImageCommand","ECRClient","GetDownloadUrlForLayerCommand","GetRepositoryPolicyCommand","SetRepositoryPolicyCommand","STSClient","GetCallerIdentityCommand","parseECRImageUri","ImageManifestSchema","isInteractive","inquirer","formatECRRepositoryHostname","checkECRImageAccess","ecr","awsConfig","repoAccountAwsConfig","imageUri","log","console","error","registryId","region","repositoryName","imageTag","_images$","images","send","imageIds","imageManifest","Error","config","layers","parse","JSON","layerDigests","digest","map","l","layerDigest","name","Action","stringify","Version","Statement","Effect","Principal","AWS","replace","Account","credentials","update","prompt","message","type","default","srcEcr","policyText","catch","policy","info"],"sources":["src/checkECRImageAccess.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import { ECRClient, ECRClientConfig } from '@aws-sdk/client-ecr';
2
+ /**
3
+ * Checks if the given ECR repository has a sufficient repository
4
+ * policy to allow the given AWS principal to access docker images.
5
+ *
6
+ * If not, prints a warning, and if the terminal is interactive, asks the user if they
7
+ * would like to add/update the repository policy.
8
+ */
9
+ export default function checkECRRepositoryPolicy({
10
+ ecr,
11
+ awsConfig,
12
+ repositoryName,
13
+ awsPrincipal,
14
+ Action,
15
+ log
16
+ }: {
17
+ ecr?: ECRClient;
18
+ awsConfig?: ECRClientConfig;
19
+ repositoryName: string;
20
+ awsPrincipal: string;
21
+ Action?: string[];
22
+ log?: {
23
+ info: (...args: any[]) => void;
24
+ warn: (...args: any[]) => void;
25
+ error: (...args: any[]) => void;
26
+ };
27
+ }): Promise<boolean>;
28
+ //# sourceMappingURL=checkECRRepositoryPolicy.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkECRRepositoryPolicy.d.mts","names":["ECRClient","ECRClientConfig","checkECRRepositoryPolicy","ecr","awsConfig","repositoryName","awsPrincipal","Action","log","info","args","warn","error","Promise"],"sources":["src/checkECRRepositoryPolicy.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,SAAS,EACTC,eAAe,QAGV,qBAAqB;AAI5B;;;;;;;AAOA,wBAA8BC,wBAAwBA,CAAC;EACrDC,GAAG;EACHC,SAAS;EACTC,cAAc;EACdC,YAAY;EACZC,MAIC;EACDC;CACD,EAAE;EACDL,GAAG,CAAC,EAAEH,SAAS;EACfI,SAAS,CAAC,EAAEH,eAAe;EAC3BI,cAAc,EAAE,MAAM;EACtBC,YAAY,EAAE,MAAM;EACpBC,MAAM,CAAC,EAAE,MAAM,EAAE;EACjBC,GAAG,CAAC,EAAE;IACJC,IAAI,EAAE,CAAC,GAAGC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BC,IAAI,EAAE,CAAC,GAAGD,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BE,KAAK,EAAE,CAAC,GAAGF,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;GAChC;CACF,GAAGG,OAAO,CAAC,OAAO,CAAC","ignoreList":[]}
@@ -6,15 +6,24 @@ import { ECRClient, ECRClientConfig } from '@aws-sdk/client-ecr';
6
6
  * If not, prints a warning, and if the terminal is interactive, asks the user if they
7
7
  * would like to add/update the repository policy.
8
8
  */
9
- export default function checkECRRepositoryPolicy({ ecr, awsConfig, repositoryName, awsPrincipal, Action, log, }: {
10
- ecr?: ECRClient;
11
- awsConfig?: ECRClientConfig;
12
- repositoryName: string;
13
- awsPrincipal: string;
14
- Action?: string[];
15
- log?: {
16
- info: (...args: any[]) => void;
17
- warn: (...args: any[]) => void;
18
- error: (...args: any[]) => void;
19
- };
9
+ declare function checkECRRepositoryPolicy({
10
+ ecr,
11
+ awsConfig,
12
+ repositoryName,
13
+ awsPrincipal,
14
+ Action,
15
+ log
16
+ }: {
17
+ ecr?: ECRClient;
18
+ awsConfig?: ECRClientConfig;
19
+ repositoryName: string;
20
+ awsPrincipal: string;
21
+ Action?: string[];
22
+ log?: {
23
+ info: (...args: any[]) => void;
24
+ warn: (...args: any[]) => void;
25
+ error: (...args: any[]) => void;
26
+ };
20
27
  }): Promise<boolean>;
28
+ export = checkECRRepositoryPolicy;
29
+ //# sourceMappingURL=checkECRRepositoryPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkECRRepositoryPolicy.d.ts","names":["ECRClient","ECRClientConfig","checkECRRepositoryPolicy","ecr","awsConfig","repositoryName","awsPrincipal","Action","log","info","args","warn","error","Promise"],"sources":["src/checkECRRepositoryPolicy.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,SAAS,EACTC,eAAe,QAGV,qBAAqB;AAI5B;;;;;;;AAOA,iBAA8BC,wBAAwBA,CAAC;EACrDC,GAAG;EACHC,SAAS;EACTC,cAAc;EACdC,YAAY;EACZC,MAIC;EACDC;CACD,EAAE;EACDL,GAAG,CAAC,EAAEH,SAAS;EACfI,SAAS,CAAC,EAAEH,eAAe;EAC3BI,cAAc,EAAE,MAAM;EACtBC,YAAY,EAAE,MAAM;EACpBC,MAAM,CAAC,EAAE,MAAM,EAAE;EACjBC,GAAG,CAAC,EAAE;IACJC,IAAI,EAAE,CAAC,GAAGC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BC,IAAI,EAAE,CAAC,GAAGD,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC9BE,KAAK,EAAE,CAAC,GAAGF,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;GAChC;CACF,GAAGG,OAAO,CAAC,OAAO,CAAC;AAkHnB,SAAAX,wBAAA","ignoreList":[]}