@catladder/cli 0.0.0-refactor-gcloud-api-d53966a5 → 0.0.0-refactor-gcloud-api-ee7f86ef

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.
@@ -40074,7 +40074,7 @@ exports.readConfigSync = readConfigSync;
40074
40074
 
40075
40075
  exports.__esModule = true;
40076
40076
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
40077
- exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-d53966a5" || 0;
40077
+ exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-ee7f86ef" || 0;
40078
40078
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
40079
40079
 
40080
40080
  /***/ }),
@@ -6483,7 +6483,7 @@ var getCloudRunDomainSuffix = function (config) { return __awaiter(void 0, void
6483
6483
  return [4 /*yield*/, runClient.listServices({ parent: parent, pageSize: 1 }, { autoPaginate: false })];
6484
6484
  case 1:
6485
6485
  existingService = (_a.sent())[0];
6486
- if (existingService) {
6486
+ if (existingService.length > 0) {
6487
6487
  return [2 /*return*/, getSuffixFromService(existingService)];
6488
6488
  }
6489
6489
  return [4 /*yield*/, runClient.createService({
@@ -6632,25 +6632,35 @@ exports.__esModule = true;
6632
6632
  exports.enableGCloudServices = void 0;
6633
6633
  var googleapis_1 = __nccwpck_require__(71581);
6634
6634
  var enableGCloudServices = function (services, config) { return __awaiter(void 0, void 0, void 0, function () {
6635
- var _i, services_1, service;
6636
- return __generator(this, function (_a) {
6637
- switch (_a.label) {
6635
+ var gcloudAuth, _a, _b, _i, services_1, service;
6636
+ var _c;
6637
+ return __generator(this, function (_d) {
6638
+ switch (_d.label) {
6638
6639
  case 0:
6639
- _i = 0, services_1 = services;
6640
- _a.label = 1;
6640
+ gcloudAuth = new googleapis_1.google.auth.GoogleAuth({
6641
+ scopes: ['https://www.googleapis.com/auth/cloud-platform'],
6642
+ projectId: config.projectId
6643
+ });
6644
+ _b = (_a = googleapis_1.google).options;
6645
+ _c = {};
6646
+ return [4 /*yield*/, gcloudAuth.getClient()];
6641
6647
  case 1:
6642
- if (!(_i < services_1.length)) return [3 /*break*/, 4];
6648
+ _b.apply(_a, [(_c.auth = _d.sent(), _c)]);
6649
+ _i = 0, services_1 = services;
6650
+ _d.label = 2;
6651
+ case 2:
6652
+ if (!(_i < services_1.length)) return [3 /*break*/, 5];
6643
6653
  service = services_1[_i];
6644
6654
  return [4 /*yield*/, googleapis_1.google.serviceusage({ version: 'v1' }).services.enable({
6645
6655
  name: "projects/".concat(config.projectId, "/services/").concat(service)
6646
6656
  })];
6647
- case 2:
6648
- _a.sent();
6649
- _a.label = 3;
6650
6657
  case 3:
6658
+ _d.sent();
6659
+ _d.label = 4;
6660
+ case 4:
6651
6661
  _i++;
6652
- return [3 /*break*/, 1];
6653
- case 4: return [2 /*return*/];
6662
+ return [3 /*break*/, 2];
6663
+ case 5: return [2 /*return*/];
6654
6664
  }
6655
6665
  });
6656
6666
  }); };
@@ -6784,6 +6794,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
6784
6794
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
6785
6795
  }
6786
6796
  };
6797
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
6798
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
6799
+ if (ar || !(i in from)) {
6800
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6801
+ ar[i] = from[i];
6802
+ }
6803
+ }
6804
+ return to.concat(ar || Array.prototype.slice.call(from));
6805
+ };
6787
6806
  exports.__esModule = true;
6788
6807
  exports.upsertGcloudServiceAccountAndSaveSecret = exports.accountExists = void 0;
6789
6808
  var googleapis_1 = __nccwpck_require__(71581);
@@ -6809,10 +6828,11 @@ var accountExists = function (client, projectId, fullPath) { return __awaiter(vo
6809
6828
  }); };
6810
6829
  exports.accountExists = accountExists;
6811
6830
  var upsertGcloudServiceAccount = function (context, account) { return __awaiter(void 0, void 0, void 0, function () {
6812
- var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist, _i, _c, key_1, key;
6813
- var _d;
6814
- return __generator(this, function (_e) {
6815
- switch (_e.label) {
6831
+ var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist, key;
6832
+ var _c;
6833
+ var _d, _e;
6834
+ return __generator(this, function (_f) {
6835
+ switch (_f.label) {
6816
6836
  case 0:
6817
6837
  projectId = account.projectId, name = account.name, displayName = account.displayName, roles = account.roles, description = account.description;
6818
6838
  namePrefix = "".concat(name, "-");
@@ -6831,13 +6851,13 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
6831
6851
  projectId: projectId
6832
6852
  });
6833
6853
  _b = (_a = googleapis_1.google).options;
6834
- _d = {};
6854
+ _c = {};
6835
6855
  return [4 /*yield*/, gcloudAuth.getClient()];
6836
6856
  case 1:
6837
- _b.apply(_a, [(_d.auth = _e.sent(), _d)]);
6857
+ _b.apply(_a, [(_c.auth = _f.sent(), _c)]);
6838
6858
  return [4 /*yield*/, (0, exports.accountExists)(gcloudIamClient, projectId, fullPath)];
6839
6859
  case 2:
6840
- existing = _e.sent();
6860
+ existing = _f.sent();
6841
6861
  if (!!existing) return [3 /*break*/, 4];
6842
6862
  return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.create({
6843
6863
  name: gcloudProjectsClient.projectPath(projectId),
@@ -6850,23 +6870,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
6850
6870
  }
6851
6871
  })];
6852
6872
  case 3:
6853
- _e.sent();
6854
- _e.label = 4;
6873
+ _f.sent();
6874
+ _f.label = 4;
6855
6875
  case 4:
6856
6876
  memberName = "serviceAccount:".concat(fullIdentifier);
6857
6877
  return [4 /*yield*/, gcloudProjectsClient.getIamPolicy({ resource: gcloudProjectsClient.projectPath(projectId) })];
6858
6878
  case 5:
6859
- projectIamPolicy = (_e.sent())[0];
6879
+ projectIamPolicy = (_f.sent())[0];
6860
6880
  currentBindings = projectIamPolicy.bindings;
6861
6881
  bindings = currentBindings.map(function (binding) {
6862
- var _a;
6863
- return ((_a = roles.includes(binding.role)) !== null && _a !== void 0 ? _a : !binding.members.includes(memberName))
6864
- ? __assign(__assign({}, binding), { members: binding.members.concat([memberName]) }) : binding;
6882
+ return (roles.includes(binding.role) && !binding.members.includes(memberName))
6883
+ ? __assign(__assign({}, binding), { members: __spreadArray(__spreadArray([], binding.members, true), [memberName], false) }) : binding;
6865
6884
  }).concat(roles.filter(function (r) { return !currentBindings.map(function (b) { return b.role; }).includes(r); }).map(function (newRole) { return ({
6866
6885
  role: newRole,
6867
6886
  members: [memberName]
6868
6887
  }); }));
6869
6888
  return [4 /*yield*/, gcloudProjectsClient.setIamPolicy({
6889
+ resource: gcloudProjectsClient.projectPath(projectId),
6870
6890
  policy: {
6871
6891
  bindings: bindings,
6872
6892
  etag: projectIamPolicy.etag
@@ -6876,29 +6896,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
6876
6896
  // delete first all keys
6877
6897
  ];
6878
6898
  case 6:
6879
- _e.sent();
6899
+ _f.sent();
6880
6900
  return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.list({
6881
6901
  name: fullPath,
6882
6902
  keyTypes: ['USER_MANAGED']
6883
6903
  })];
6884
6904
  case 7:
6885
- keylist = _e.sent();
6886
- _i = 0, _c = keylist.data.keys;
6887
- _e.label = 8;
6905
+ keylist = _f.sent();
6906
+ (_e = (_d = keylist.data) === null || _d === void 0 ? void 0 : _d.keys) === null || _e === void 0 ? void 0 : _e.map(function (key) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
6907
+ switch (_a.label) {
6908
+ case 0: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key.name })];
6909
+ case 1: return [2 /*return*/, _a.sent()];
6910
+ }
6911
+ }); }); });
6912
+ return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
6888
6913
  case 8:
6889
- if (!(_i < _c.length)) return [3 /*break*/, 11];
6890
- key_1 = _c[_i];
6891
- return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key_1.name })];
6892
- case 9:
6893
- _e.sent();
6894
- _e.label = 10;
6895
- case 10:
6896
- _i++;
6897
- return [3 /*break*/, 8];
6898
- case 11: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
6899
- case 12:
6900
- key = _e.sent();
6901
- return [2 /*return*/, key.data.privateKeyData];
6914
+ key = _f.sent();
6915
+ return [2 /*return*/, Buffer.from(key.data.privateKeyData, "base64").toString("utf-8")];
6902
6916
  }
6903
6917
  });
6904
6918
  }); };
@@ -1118254,7 +1118268,7 @@ exports.readConfigSync = readConfigSync;
1118254
1118268
 
1118255
1118269
  exports.__esModule = true;
1118256
1118270
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
1118257
- exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-d53966a5" || 0;
1118271
+ exports.PIPELINE_IMAGE_TAG = "refactor-gcloud-api-ee7f86ef" || 0;
1118258
1118272
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
1118259
1118273
 
1118260
1118274
  /***/ }),
@@ -54,7 +54,7 @@ var getCloudRunDomainSuffix = function (config) { return __awaiter(void 0, void
54
54
  return [4 /*yield*/, runClient.listServices({ parent: parent, pageSize: 1 }, { autoPaginate: false })];
55
55
  case 1:
56
56
  existingService = (_a.sent())[0];
57
- if (existingService) {
57
+ if (existingService.length > 0) {
58
58
  return [2 /*return*/, getSuffixFromService(existingService)];
59
59
  }
60
60
  return [4 /*yield*/, runClient.createService({
@@ -1 +1 @@
1
- {"version":3,"file":"getCloudRunDomainSuffix.js","sourceRoot":"","sources":["../../../src/gcloud/cloudRun/getCloudRunDomainSuffix.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAmD;AAEnD,IAAM,oBAAoB,GAAG,UAAC,OAAY;IACxC,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3C,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AACK,IAAM,uBAAuB,GAAG,UAAO,MAA4B;;;;;gBAUlE,gBAAgB,GAAG,4BAA4B,CAAC;gBAEhD,SAAS,GAAG,IAAI,oBAAc,EAAE,CAAA;gBAChC,MAAM,GAAG,mBAAY,MAAM,CAAC,SAAS,wBAAc,MAAM,CAAC,MAAM,CAAE,CAAA;gBAE9C,qBAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAA;;gBAAjG,eAAe,GAAI,CAAA,SAA8E,CAAA,GAAlF;gBAEtB,IAAI,eAAe,EAAE;oBACnB,sBAAO,oBAAoB,CAAC,eAAe,CAAC,EAAC;iBAC9C;gBAE+B,qBAAM,SAAS,CAAC,aAAa,CAAC;wBAC5D,MAAM,QAAA;wBACN,SAAS,EAAE,gBAAgB;wBAC3B,OAAO,EAAE;4BACP,QAAQ,EAAE;gCACR,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;6BACtE;yBACF;qBACF,CAAC,EAAA;;gBARK,qBAAqB,GAAI,CAAA,SAQ9B,CAAA,GAR0B;gBASL,qBAAM,qBAAqB,CAAC,OAAO,EAAE,EAAA;;gBAArD,YAAY,GAAI,CAAA,SAAqC,CAAA,GAAzC;gBAEO,qBAAM,SAAS,CAAC,aAAa,CAAC;wBACtD,IAAI,EAAE,YAAY,CAAC,IAAI;qBACxB,CAAC,EAAA;;gBAFK,eAAe,GAAI,CAAA,SAExB,CAAA,GAFoB;gBAGtB,qBAAM,eAAe,CAAC,OAAO,EAAE,EAAA;;gBAA/B,SAA+B,CAAA;gBAExB,qBAAM,oBAAoB,CAAC,YAAY,CAAC,EAAA;oBAA/C,sBAAO,SAAwC,EAAC;;;KACjD,CAAC;AAtCW,QAAA,uBAAuB,2BAsClC"}
1
+ {"version":3,"file":"getCloudRunDomainSuffix.js","sourceRoot":"","sources":["../../../src/gcloud/cloudRun/getCloudRunDomainSuffix.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAmD;AAEnD,IAAM,oBAAoB,GAAG,UAAC,OAAY;IACxC,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3C,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AACK,IAAM,uBAAuB,GAAG,UAAO,MAA4B;;;;;gBAUlE,gBAAgB,GAAG,4BAA4B,CAAC;gBAEhD,SAAS,GAAG,IAAI,oBAAc,EAAE,CAAA;gBAChC,MAAM,GAAG,mBAAY,MAAM,CAAC,SAAS,wBAAc,MAAM,CAAC,MAAM,CAAE,CAAA;gBAE9C,qBAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,QAAA,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAA;;gBAAjG,eAAe,GAAI,CAAA,SAA8E,CAAA,GAAlF;gBAEtB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,sBAAO,oBAAoB,CAAC,eAAe,CAAC,EAAC;iBAC9C;gBAE+B,qBAAM,SAAS,CAAC,aAAa,CAAC;wBAC5D,MAAM,QAAA;wBACN,SAAS,EAAE,gBAAgB;wBAC3B,OAAO,EAAE;4BACP,QAAQ,EAAE;gCACR,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;6BACtE;yBACF;qBACF,CAAC,EAAA;;gBARK,qBAAqB,GAAI,CAAA,SAQ9B,CAAA,GAR0B;gBASL,qBAAM,qBAAqB,CAAC,OAAO,EAAE,EAAA;;gBAArD,YAAY,GAAI,CAAA,SAAqC,CAAA,GAAzC;gBAEO,qBAAM,SAAS,CAAC,aAAa,CAAC;wBACtD,IAAI,EAAE,YAAY,CAAC,IAAI;qBACxB,CAAC,EAAA;;gBAFK,eAAe,GAAI,CAAA,SAExB,CAAA,GAFoB;gBAGtB,qBAAM,eAAe,CAAC,OAAO,EAAE,EAAA;;gBAA/B,SAA+B,CAAA;gBAExB,qBAAM,oBAAoB,CAAC,YAAY,CAAC,EAAA;oBAA/C,sBAAO,SAAwC,EAAC;;;KACjD,CAAC;AAtCW,QAAA,uBAAuB,2BAsClC"}
@@ -39,25 +39,35 @@ exports.__esModule = true;
39
39
  exports.enableGCloudServices = void 0;
40
40
  var googleapis_1 = require("googleapis");
41
41
  var enableGCloudServices = function (services, config) { return __awaiter(void 0, void 0, void 0, function () {
42
- var _i, services_1, service;
43
- return __generator(this, function (_a) {
44
- switch (_a.label) {
42
+ var gcloudAuth, _a, _b, _i, services_1, service;
43
+ var _c;
44
+ return __generator(this, function (_d) {
45
+ switch (_d.label) {
45
46
  case 0:
46
- _i = 0, services_1 = services;
47
- _a.label = 1;
47
+ gcloudAuth = new googleapis_1.google.auth.GoogleAuth({
48
+ scopes: ['https://www.googleapis.com/auth/cloud-platform'],
49
+ projectId: config.projectId
50
+ });
51
+ _b = (_a = googleapis_1.google).options;
52
+ _c = {};
53
+ return [4 /*yield*/, gcloudAuth.getClient()];
48
54
  case 1:
49
- if (!(_i < services_1.length)) return [3 /*break*/, 4];
55
+ _b.apply(_a, [(_c.auth = _d.sent(), _c)]);
56
+ _i = 0, services_1 = services;
57
+ _d.label = 2;
58
+ case 2:
59
+ if (!(_i < services_1.length)) return [3 /*break*/, 5];
50
60
  service = services_1[_i];
51
61
  return [4 /*yield*/, googleapis_1.google.serviceusage({ version: 'v1' }).services.enable({
52
62
  name: "projects/".concat(config.projectId, "/services/").concat(service)
53
63
  })];
54
- case 2:
55
- _a.sent();
56
- _a.label = 3;
57
64
  case 3:
65
+ _d.sent();
66
+ _d.label = 4;
67
+ case 4:
58
68
  _i++;
59
- return [3 /*break*/, 1];
60
- case 4: return [2 /*return*/];
69
+ return [3 /*break*/, 2];
70
+ case 5: return [2 /*return*/];
61
71
  }
62
72
  });
63
73
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"enableServices.js","sourceRoot":"","sources":["../../src/gcloud/enableServices.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AAE7B,IAAM,oBAAoB,GAAG,UAClC,QAAkB,EAClB,MAEC;;;;;sBAE6B,EAAR,qBAAQ;;;qBAAR,CAAA,sBAAQ,CAAA;gBAAnB,OAAO;gBAChB,qBAAM,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC3D,IAAI,EAAE,mBAAY,MAAM,CAAC,SAAS,uBAAa,OAAO,CAAE;qBACzD,CAAC,EAAA;;gBAFF,SAEE,CAAA;;;gBAHkB,IAAQ,CAAA;;;;;KAK/B,CAAC;AAXW,QAAA,oBAAoB,wBAW/B"}
1
+ {"version":3,"file":"enableServices.js","sourceRoot":"","sources":["../../src/gcloud/enableServices.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AAE7B,IAAM,oBAAoB,GAAG,UAClC,QAAkB,EAClB,MAEC;;;;;;gBAEK,UAAU,GAAG,IAAI,mBAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC5C,MAAM,EAAE,CAAC,gDAAgD,CAAC;oBAC1D,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,KAAA,CAAA,KAAA,mBAAM,CAAA,CAAC,OAAO,CAAA;;gBAAS,qBAAM,UAAU,CAAC,SAAS,EAAE,EAAA;;gBAAnD,eAAiB,OAAI,GAAE,SAA4B,OAAG,CAAA;sBAExB,EAAR,qBAAQ;;;qBAAR,CAAA,sBAAQ,CAAA;gBAAnB,OAAO;gBAChB,qBAAM,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC3D,IAAI,EAAE,mBAAY,MAAM,CAAC,SAAS,uBAAa,OAAO,CAAE;qBACzD,CAAC,EAAA;;gBAFF,SAEE,CAAA;;;gBAHkB,IAAQ,CAAA;;;;;KAK/B,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B"}
@@ -46,6 +46,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
47
  }
48
48
  };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
49
58
  exports.__esModule = true;
50
59
  exports.upsertGcloudServiceAccountAndSaveSecret = exports.accountExists = void 0;
51
60
  var googleapis_1 = require("googleapis");
@@ -71,10 +80,11 @@ var accountExists = function (client, projectId, fullPath) { return __awaiter(vo
71
80
  }); };
72
81
  exports.accountExists = accountExists;
73
82
  var upsertGcloudServiceAccount = function (context, account) { return __awaiter(void 0, void 0, void 0, function () {
74
- var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist, _i, _c, key_1, key;
75
- var _d;
76
- return __generator(this, function (_e) {
77
- switch (_e.label) {
83
+ var projectId, name, displayName, roles, description, namePrefix, nameSuffix, nameMiddleLength, nameMiddle, middle, fullName, fullDisplayName, fullIdentifier, fullPath, gcloudIamClient, gcloudProjectsClient, gcloudAuth, _a, _b, existing, memberName, projectIamPolicy, currentBindings, bindings, keylist, key;
84
+ var _c;
85
+ var _d, _e;
86
+ return __generator(this, function (_f) {
87
+ switch (_f.label) {
78
88
  case 0:
79
89
  projectId = account.projectId, name = account.name, displayName = account.displayName, roles = account.roles, description = account.description;
80
90
  namePrefix = "".concat(name, "-");
@@ -93,13 +103,13 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
93
103
  projectId: projectId
94
104
  });
95
105
  _b = (_a = googleapis_1.google).options;
96
- _d = {};
106
+ _c = {};
97
107
  return [4 /*yield*/, gcloudAuth.getClient()];
98
108
  case 1:
99
- _b.apply(_a, [(_d.auth = _e.sent(), _d)]);
109
+ _b.apply(_a, [(_c.auth = _f.sent(), _c)]);
100
110
  return [4 /*yield*/, (0, exports.accountExists)(gcloudIamClient, projectId, fullPath)];
101
111
  case 2:
102
- existing = _e.sent();
112
+ existing = _f.sent();
103
113
  if (!!existing) return [3 /*break*/, 4];
104
114
  return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.create({
105
115
  name: gcloudProjectsClient.projectPath(projectId),
@@ -112,23 +122,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
112
122
  }
113
123
  })];
114
124
  case 3:
115
- _e.sent();
116
- _e.label = 4;
125
+ _f.sent();
126
+ _f.label = 4;
117
127
  case 4:
118
128
  memberName = "serviceAccount:".concat(fullIdentifier);
119
129
  return [4 /*yield*/, gcloudProjectsClient.getIamPolicy({ resource: gcloudProjectsClient.projectPath(projectId) })];
120
130
  case 5:
121
- projectIamPolicy = (_e.sent())[0];
131
+ projectIamPolicy = (_f.sent())[0];
122
132
  currentBindings = projectIamPolicy.bindings;
123
133
  bindings = currentBindings.map(function (binding) {
124
- var _a;
125
- return ((_a = roles.includes(binding.role)) !== null && _a !== void 0 ? _a : !binding.members.includes(memberName))
126
- ? __assign(__assign({}, binding), { members: binding.members.concat([memberName]) }) : binding;
134
+ return (roles.includes(binding.role) && !binding.members.includes(memberName))
135
+ ? __assign(__assign({}, binding), { members: __spreadArray(__spreadArray([], binding.members, true), [memberName], false) }) : binding;
127
136
  }).concat(roles.filter(function (r) { return !currentBindings.map(function (b) { return b.role; }).includes(r); }).map(function (newRole) { return ({
128
137
  role: newRole,
129
138
  members: [memberName]
130
139
  }); }));
131
140
  return [4 /*yield*/, gcloudProjectsClient.setIamPolicy({
141
+ resource: gcloudProjectsClient.projectPath(projectId),
132
142
  policy: {
133
143
  bindings: bindings,
134
144
  etag: projectIamPolicy.etag
@@ -138,29 +148,23 @@ var upsertGcloudServiceAccount = function (context, account) { return __awaiter(
138
148
  // delete first all keys
139
149
  ];
140
150
  case 6:
141
- _e.sent();
151
+ _f.sent();
142
152
  return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.list({
143
153
  name: fullPath,
144
154
  keyTypes: ['USER_MANAGED']
145
155
  })];
146
156
  case 7:
147
- keylist = _e.sent();
148
- _i = 0, _c = keylist.data.keys;
149
- _e.label = 8;
157
+ keylist = _f.sent();
158
+ (_e = (_d = keylist.data) === null || _d === void 0 ? void 0 : _d.keys) === null || _e === void 0 ? void 0 : _e.map(function (key) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
159
+ switch (_a.label) {
160
+ case 0: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key.name })];
161
+ case 1: return [2 /*return*/, _a.sent()];
162
+ }
163
+ }); }); });
164
+ return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
150
165
  case 8:
151
- if (!(_i < _c.length)) return [3 /*break*/, 11];
152
- key_1 = _c[_i];
153
- return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys["delete"]({ name: key_1.name })];
154
- case 9:
155
- _e.sent();
156
- _e.label = 10;
157
- case 10:
158
- _i++;
159
- return [3 /*break*/, 8];
160
- case 11: return [4 /*yield*/, gcloudIamClient.projects.serviceAccounts.keys.create({ name: fullPath })];
161
- case 12:
162
- key = _e.sent();
163
- return [2 /*return*/, key.data.privateKeyData];
166
+ key = _f.sent();
167
+ return [2 /*return*/, Buffer.from(key.data.privateKeyData, "base64").toString("utf-8")];
164
168
  }
165
169
  });
166
170
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"serviceAccounts.js","sourceRoot":"","sources":["../../src/gcloud/serviceAccounts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serviceAccounts.js","sourceRoot":"","sources":["../../src/gcloud/serviceAccounts.ts"],"names":[],"mappings":"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"}