@firestartr/cli 0.1.25 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -228011,8 +228011,8 @@ var envVars;
228011
228011
  // ---- CDKTF/LOCAL VARIABLES -----------------------------------------------
228012
228012
  envVars["cdktfConfigFiles"] = "CDKTF_CONFIG_FILES";
228013
228013
  envVars["exclusionsYamlPath"] = "EXCLUSIONS_PATH";
228014
- envVars["cdktfEntity"] = "FIRESTARTR_CDKTF_ENTITY";
228015
- envVars["cdktfDeps"] = "FIRESTARTR_CDKTF_DEPS";
228014
+ envVars["cdktfEntityPath"] = "FIRESTARTR_CDKTF_ENTITY_PATH";
228015
+ envVars["cdktfDepsPath"] = "FIRESTARTR_CDKTF_DEPS_PATH";
228016
228016
  envVars["cdktfIsImport"] = "FIRESTARTR_CDKTF_IS_IMPORT";
228017
228017
  // ---- GITHUB APP VARIABLES -----------------------------------------------
228018
228018
  envVars["githubAppId"] = "GITHUB_APP_ID";
@@ -232567,6 +232567,7 @@ async function getAffectedRepositories(claimPathFromMain, claimPathFromPR, wetRe
232567
232567
  const compareResult = compareCRs(renderFromMainBranch[key], renderFromPRBranch[key]);
232568
232568
  if (compareResult.changed) {
232569
232569
  const affectedRepo = (0, utils_1.getAffectedWetRepository)(providers, wetRepositoriesConfig, kind);
232570
+ console.dir(affectedRepo, { depth: null });
232570
232571
  affectedWetRepositories[affectedRepo.repo] = affectedRepo.workflows.notify;
232571
232572
  affectedResources[key] = {
232572
232573
  changes: compareResult.changes,
@@ -232642,7 +232643,7 @@ async function runComparer(claimPathFromMain, claimPathFromPR, claimsDefaultsPat
232642
232643
  writeWetAffectedRepositoriesFile(result.repos, pathForAffectedReposFile);
232643
232644
  }
232644
232645
  exports.runComparer = runComparer;
232645
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcGFyZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBNEM7QUFDNUMsdUNBQXlCO0FBQ3pCLDhDQUFnQztBQUNoQywrREFBaUQ7QUFDakQsbUNBQStFO0FBQy9FLHNDQUFvQztBQUNwQyxtREFBOEM7QUFDOUMsZ0RBQXFEO0FBd0JyRCxNQUFNLHNCQUFzQixHQUFXLGlDQUFpQyxDQUFDO0FBQ3pFLE1BQU0sb0JBQW9CLEdBQVcsK0JBQStCLENBQUM7QUFJckU7Ozs7O0tBS0s7QUFDRSxLQUFLLFVBQVUsdUJBQXVCLENBRXpDLGlCQUF5QixFQUV6QixlQUF1QixFQUV2Qix5QkFBaUM7SUFJakM7OztPQUdHO0lBQ0gsSUFBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUV6QyxFQUFFLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7S0FFdEM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSx1QkFBdUIsR0FBOEIsRUFBRSxDQUFBO0lBRTdEOzs7OztPQUtHO0lBQ0gsTUFBTSxpQkFBaUIsR0FBc0IsRUFBRSxDQUFBO0lBRS9DLG1DQUFtQztJQUNuQyxNQUFNLHFCQUFxQixHQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRWxHLHFEQUFxRDtJQUNyRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRTNELHlDQUF5QztJQUN6QyxJQUFBLGdCQUFPLEVBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFckMseUJBQXlCO0lBQ3pCLElBQUEsa0NBQTBCLEdBQUUsQ0FBQztJQUU3QixNQUFN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QUFDLENBQUMsQ0FFakMsQ0FBQTtBQUVMLENBQUM7QUFWRCw0RUFVQztBQUdNLEtBQUssVUFBVSxXQUFXLENBQzdCLGlCQUF5QixFQUN6QixlQUF1QixFQUN2QixrQkFBMEIsRUFDMUIseUJBQWlDLEVBQ2pDLHdCQUFnQztJQUloQyxJQUFBLGdCQUFPLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUU5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUF1QixDQUV4QyxpQkFBaUIsRUFFakIsZUFBZSxFQUVmLHlCQUF5QixDQUM1QixDQUFDO0lBRUYsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBRTdFLENBQUM7QUF0QkQsa0NBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwLCBZYW1sT3V0cHV0VHlwZSB9IGZyb20gXCJjZGs4c1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gXCJqcy15YW1sXCI7XG5pbXBvcnQgKiBhcyBmYXN0SnNvblBhdGNoICBmcm9tIFwiZmFzdC1qc29uLXBhdGNoXCJcbmltcG9ydCB7IGNvbmZpZ3VyZVBhdGhzRm9yUmVuZGVyaW5nLCBnZXRBZmZlY3RlZFdldFJlcG9zaXRvcnkgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgc2V0UGF0aCB9IGZyb20gXCIuLi9jb25maWdcIjtcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuLi9yZW5kZXJlci9yZW5kZXJlclwiO1xuaW1wb3J0IHsgZW1wdHlSZW5kZXJlZENsYWltcyB9IGZyb20gXCIuLi9yZWZyZXNvbHZlclwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIHdpdGggdGhlIGFmZmVjdGVkIHdldCByZXBvc2l0b3JpZXNcbiAqL1xudHlwZSBBZmZlY3RlZFJlc291cmNlID0ge1xuXG4gICAgLy8gQ2hhbmdlcyBpbiB0aGUgcmVzb3VyY2Ugd2l0aCB0aGUgZm9ybWF0IG9mIGZhc3QtanNvbi1wYXRjaFxuICAgIGNoYW5nZXM6IGZhc3RKc29uUGF0Y2guT3BlcmF0aW9uW10sXG5cbiAgICAvLyBUaGUgcmVhc29uIHdoeSB0aGUgcmVzb3VyY2UgaXMgYWZmZWN0ZWRcbiAgICByZWFzb246IFwiTU9ESUZJRURcIiB8IFwiREVMRVRFRF9GUk9NX1BSXCIgIHwgXCJBRERFRF9UT19QUlwiXG5cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT2JqZWN0IHdpdGggdGhlIGFmZmVjdGVkIHdldCByZXBvc2l0b3JpZXNcbiAqL1xudHlwZSBBZmZlY3RlZFJlc291cmNlcyA9IHtcblxuICAgIFtrZXk6IHN0cmluZ106IEFmZmVjdGVkUmVzb3VyY2VcblxufVxuXG5jb25zdCBNQUlOX0JSQU5DSF9PVVRQVVRfRElSOiBzdHJpbmcgPSBcIi90bXAvcmVzb3VyY2VzX2Zyb21fbWFpbl9icmFuY2hcIjtcbmNvbnN0IFBSX0JSQU5DSF9PVVRQVVRfRElSOiBzdHJpbmcgPSBcIi90bXAvcmVzb3VyY2VzX2Zyb21fcHJfYnJhbmNoXCI7XG5cblxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZXQgdGhlIGFmZmVjdGVkIHdldCByZXBvc2l0b3JpZXMgYnkgYSBQUlxuICogQHBhcmFtIGNsYWltUGF0aEZyb21NYWluIFBhdGggdG8gdGhlIGNsYWltcyBmcm9tIHRoZSBtYWluIGJyYW5jaFxuICogQHBhcmFtIGNsYWltUGF0aEZyb21QUiBQYXRoIHRvIHRoZSBjbGFpbXMgZnJvbSB0aGUgUFIgYnJhbmNoXG4gKiBAcGFyYW0gd2V0UmVwb3NpdG9yaWVzQ29uZmlnUGF0aCBQYXRoIHRvIHRoZSB3ZXQgcmVwb3NpdG9yaWVzIGNvbmZpZ1xuICogKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBZmZlY3RlZFJlcG9zaXRvcmllcyhcblxuICAgIGNsYWltUGF0aEZyb21NYWluOiBzdHJpbmcsXG5cbiAgICBjbGFpbVBhdGhGcm9tUFI6IHN0cmluZyxcblxuICAgIHdldFJlcG9zaXRvcmllc0NvbmZpZ1BhdGg6IHN0cmluZ1xuXG4pIDogUHJvbWlzZTx7IHJlcG9zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ30sIGNoYW5nZWRSZXNvdXJjZXM6IEFmZmVjdGVkUmVzb3VyY2VzIH0+IHtcblxuICAgIC8qXG4gICAgICogV2UgbmVlZCB0aGlzIGZvbGRlciB0byBleGlzdCwgc28gd2UgY3JlYXRlIGl0IGJlZm9yZWhhbmRcbiAgICAgKlxuICAgICAqL1xuICAgIGlmKCFmcy5leGlzdHNTeW5jKE1BSU5fQlJBTkNIX09VVFBVVF9ESVIpKSB7XG5cbiAgICAgIGZzLm1rZGlyU3luYyhNQUlOX0JSQU5DSF9PVVRQVVRfRElSKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB3aXRoIHRoZSBhZmZlY3RlZCB3ZXQgcmVwb3NpdG9yaWVzXG4gICAgICogVGhpcyB3aWxsIGJlIHJldHVybmVkIGluIG9yZGVyIHRvIHRyaWdnZXJcbiAgICAgKiB0aGUgcGlwZWxpbmVzIG9mIHRoZSBhZmZlY3RlZCB3ZXQgcmVwb3NpdG9yaWVzXG4gICAgICovXG4gICAgY29uc3QgYWZmZWN0ZWRXZXRSZXBvc2l0b3JpZXM6ICB7IFtrZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fVxuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IHdpdGggdGhlIGFmZmVjdGVkIHJlc291cmNlc1xuICAgICAqIFRoaXMgd2lsbCBiZSByZXR1cm5lZCBmb3IgYSBzdW1tYXJ5IG9mIHRoZSBjaGFuZ2VzLFxuICAgICAqIGFuZCB0aGUgdXNlciB3aWxsIGJlIGFibGUgdG8gc2VlIHRoZSBjaGFuZ2VzIGluIHRoZVxuICAgICAqIHBpcGVsaW5lIGxvZ3MuXG4gICAgICovXG4gICAgY29uc3QgYWZmZWN0ZWRSZXNvdXJjZXM6IEFmZmVjdGVkUmVzb3VyY2VzID0ge31cblxuICAgIC8vIExvYWQgdGhlIHdldCByZXBvc2l0b3JpZXMgY29uZmlnXG4gICAgY29uc3Qgd2V0UmVwb3NpdG9yaWVzQ29uZmlnOiBhbnkgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKHdldFJlcG9zaXRvcmllc0NvbmZpZ1BhdGgsIFwidXRmLThcIikpO1xuXG4gICAgLy8gR2V0IHRoZSBwcm92aWRlcnMgZnJvbSB0aGUgd2V0IHJlcG9zaXRvcmllcyBjb25maWdcbiAgICBjb25zdCBwcm92aWRlcnMgPSBPYmplY3Qua2V5cyh3ZXRSZXBvc2l0b3JpZXNDb25maWcuc3RhdGVzKVxuXG4gICAgLy8gU2V0IHRoZSBjbGFpbXMgcGF0aCB0byB0aGUgbWFpbiBicmFuY2hcbiAgICBzZXRQYXRoKFwiY2xhaW1zXCIsIGNsYWltUGF0aEZyb21NYWluKTtcblxuICAgIC8vIENvbmZpZ3VyZSB0aGUgcmVuZGVyZXJcbiAgICBjb25maWd1cmVQYXRoc0ZvclJlbmRlcmluZygpO1xuXG4gICAgY29uc3QgbWFpbkJyYW5jaEZpcmVzdGFydHJBcHAgPSBuZXcgQXBwKHtcbiAgICAgICAgb3V0ZGlyOiBNQUlOX0JSQU5DSF9PVVRQVVRfRElSLFxuICAgICAgICBvdXRwdXRGaWxlRXh0ZW5zaW9uOiBcIi55YW1sXCIsXG4gICAgICAgIHlhbWxPdXRwdXRUeXBlOiBZYW1sT3V0cHV0VHlwZS5GSUxFX1BFUl9SRVNPVVJDRSxcbiAgICB9KVxuXG4gICAgY29uc3QgbWFpbkJyYW5jaENhdGFsb2dBcHAgPSBuZXcgQXBwKHtcbiAgICAgICAgb3V0ZGlyOiBcIi90bXAvLmNhdGFsb2dcIixcbiAgICAgICAgb3V0cHV0RmlsZUV4dGVuc2lvbjogXCIueWFtbFwiLFxuICAgICAgICB5YW1sT3V0cHV0VHlwZTogWWFtbE91dHB1dFR5cGUuRklMRV9QRVJfUkVTT1VSQ0UsXG4gICAgfSlcblxuICAgIC8vIFJlbmRlciB0aGUgbWFpbiBicmFuY2hcbiAgICBsZXQgcmVuZGVyRnJvbU1haW5CcmFuY2g6IGFueSA9IGF3YWl0IHJlbmRlcihtYWluQnJhbmNoQ2F0YWxvZ0FwcCwgbWFpbkJyYW5jaEZpcmVzdGFydHJBcHApXG5cbiAgICBtYWluQnJhbmNoRmlyZXN0YXJ0ckFwcC5zeW50aCgpO1xuXG4gICAgZW1wdHlSZW5kZXJlZENsYWltcygpO1xuXG4gICAgLy8gQ2hhbmdlIHRoZSBjbGFpbXMgcGF0aCB0byB0aGUgUFIgYnJhbmNoXG4gICAgc2V0UGF0aChcImNsYWltc1wiLCBjbGFpbVBhdGhGcm9tUFIpXG5cbiAgICBjb25zdCBhcHAyID0gbmV3IEFwcCh7XG4gICAgICAgIG91dGRpcjogUFJfQlJBTkNIX09VVFBVVF9ESVIsXG4gICAgICAgIG91dHB1dEZpbGVFeHRlbnNpb246IFwiLnlhbWxcIixcbiAgICAgICAgeWFtbE91dHB1dFR5cGU6IFlhbWxPdXRwdXRUeXBlLkZJTEVfUEVSX1JFU09VUkNFLFxuICAgIH0pXG4gICAgLy8gUmVuZGVyIHRoZSBQUiBicmFuY2hcbiAgICBjb25zdCByZW5kZXJGcm9tUFJCcmFuY2g6IGFueSA9IGF3YWl0IHJlbmRlcihuZXcgQXBwKCksIGFwcDIpXG5cbiAgICBhcHAyLnN5bnRoKCk7XG5cbiAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHJlc291cmNlcyBmcm9tIHRoZSBtYWluIGJyYW5jaFxuICAgIGZvcihjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVuZGVyRnJvbU1haW5CcmFuY2gpKXtcblxuICAgICAgICBjb25zdCBraW5kID0gcmVuZGVyRnJvbU1haW5CcmFuY2hba2V5XS5raW5kXG5cbiAgICAgICAgLy9DaGVjayBpZiB0aGUgcmVzb3VyY2UgaXMgcHJlc2VudCBpbiB0aGUgUFIgYnJhbmNoXG4gICAgICAgIGlmKHJlbmRlckZyb21QUkJyYW5jaFtrZXldKXtcblxuICAgICAgICAgICAgLy9DaGVjayBpZiB0aGUgcmVzb3VyY2VzIGFyZSBkaWZmZXJlbnRcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVSZXN1bHQgPSBjb21wYXJlQ1JzKFxuXG4gICAgICAgICAgICAgICAgcmVuZGVyRnJvbU1haW5CcmFuY2hba2V5XSxcblxuICAgICAgICAgICAgICAgIHJlbmRlckZyb21QUkJyYW5jaFtrZXldXG5cbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYoY29tcGFyZVJlc3VsdC5jaGFuZ2VkKXtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGFmZmVjdGVkUmVwbyA9IGdldEFmZmVjdGVkV2V0UmVwb3NpdG9yeShcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzLFxuICAgICAgICAgICAgICAgICAgICB3ZXRSZXBvc2l0b3JpZXNDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIGtpbmRcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICBhZmZlY3RlZFdldFJlcG9zaXRvcmllc1thZmZlY3RlZFJlcG8ucmVwb10gPSBhZmZlY3RlZFJlcG8ud29ya2Zsb3dzLm5vdGlmeVxuXG4gICAgICAgICAgICAgICAgYWZmZWN0ZWRSZXNvdXJjZXNba2V5XSA9IHtcblxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VzOiBjb21wYXJlUmVzdWx0LmNoYW5nZXMsXG5cbiAgICAgICAgICAgICAgICAgICAgcmVhc29uOiBcIk1PRElGSUVEXCJcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoZSByZXNvdXJjZSBpcyBub3QgcHJlc2VudCBpbiB0aGUgUFIgYnJhbmNoLFxuICAgICAgICAgICAgICogaXQgbWVhbnMgdGhhdCBpdCBoYXMgYmVlbiBkZWxldGVkLCBzbyBpdCBpcyBhZmZlY3RlZFxuICAgICAgICAgICAgKiovXG4gICAgICAgICAgICBjb25zdCBhZmZlY3RlZFJlcG8gPSBnZXRBZmZlY3RlZFdldFJlcG9zaXRvcnkoXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzLFxuICAgICAgICAgICAgICAgIHdldFJlcG9zaXRvcmllc0NvbmZpZyxcbiAgICAgICAgICAgICAgICBraW5kXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGFmZmVjdGVkV2V0UmVwb3NpdG9yaWVzW2FmZmVjdGVkUmVwby5yZXBvXSA9IGFmZmVjdGVkUmVwby53b3JrZmxvd3Mubm90aWZ5XG5cbiAgICAgICAgICAgIGFmZmVjdGVkUmVzb3VyY2VzW2tleV0gPSB7XG5cbiAgICAgICAgICAgICAgICBjaGFuZ2VzOiBbXSxcblxuICAgICAgICAgICAgICAgIHJlYXNvbjogXCJERUxFVEVEX0ZST01fUFJcIlxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlIG92ZXIgdGhlIHJlc291cmNlcyBmcm9tIHRoZSBQUiBicmFuY2ggaW5cbiAgICAgKiBjYXNlIHRoZXJlIGFyZSByZXNvdXJjZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gdGhlIG1haW4gYnJhbmNoLFxuICAgICAqIHRoYXQgbWVhbnMgdGhhdCB0aGV5IGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgUFIgYnJhbmNoLlxuICAgICAqL1xuICAgIGZvcihjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVuZGVyRnJvbVBSQnJhbmNoKSl7XG5cbiAgICAgICAgY29uc3Qga2luZCA9IHJlbmRlckZyb21QUkJyYW5jaFtrZXldLmtpbmRcblxuICAgICAgICAvL0NoZWNrIGlmIHRoZSByZXNvdXJjZSBpcyBub3QgcHJlc2VudCBpbiB0aGUgbWFpbiBicmFuY2hcbiAgICAgICAgaWYoIXJlbmRlckZyb21NYWluQnJhbmNoW2tleV0pe1xuXG4gICAgICAgICAgICBjb25zdCBhZmZlY3RlZFJlcG8gPSBnZXRBZmZlY3RlZFdldFJlcG9zaXRvcnkoXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzLFxuICAgICAgICAgICAgICAgIHdldFJlcG9zaXRvcmllc0NvbmZpZyxcbiAgICAgICAgICAgICAgICBraW5kXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGFmZmVjdGVkV2V0UmVwb3NpdG9yaWVzW2FmZmVjdGVkUmVwby5yZXBvXSA9IGFmZmVjdGVkUmVwby53b3JrZmxvd3Mubm90aWZ5XG5cbiAgICAgICAgICAgIGFmZmVjdGVkUmVzb3VyY2VzW2tleV0gPSB7XG5cbiAgICAgICAgICAgICAgICBjaGFuZ2VzOiBbXSxcblxuICAgICAgICAgICAgICAgIHJlYXNvbjogXCJBRERFRF9UT19QUlwiXG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcblxuICAgICAgICByZXBvczogYWZmZWN0ZWRXZXRSZXBvc2l0b3JpZXMsXG5cbiAgICAgICAgY2hhbmdlZFJlc291cmNlczogYWZmZWN0ZWRSZXNvdXJjZXNcbiAgICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENoZWNrIGlmIHR3byBjcnMgYXJlIGRpZmZlcmVudFxuICogQHBhcmFtIGNyVjEgRmlyc3QgY3JcbiAqIEBwYXJhbSBjclYyIFNlY29uZCBjclxuICogKi9cbmZ1bmN0aW9uIGNvbXBhcmVDUnMoY3JWMTogYW55LCBjclYyOiBhbnkpIDogeyBjaGFuZ2VkOiBib29sZWFuLCBjaGFuZ2VzOiBmYXN0SnNvblBhdGNoLk9wZXJhdGlvbltdIH0ge1xuXG4gICAgaWYoY3JWMS5raW5kICE9PSBjclYyLmtpbmQpe1xuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgS2luZCBtaXNtYXRjaCBvbiBjb21wYXJlOiAke2NyVjEua2luZH0gIT09ICR7Y3JWMi5raW5kfWApXG5cbiAgICB9XG5cbiAgICBjb25zdCBjb21wYXJlUmVzdWx0ID0gZmFzdEpzb25QYXRjaFxuXG4gICAgLmNvbXBhcmUoY3JWMSwgY3JWMilcblxuICAgIC5maWx0ZXIoXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgaXMgYSBmYWtlIHJlbmRlciwgc28gd2UgZG9uJ3Qgd2FudCB0byBjb21wYXJlXG4gICAgICAgICAqIHRoZSB0ZlN0YXRlS2V5LCBiZWNhdXNlIGluIHRoZSBjbGFpbXMgcmVwbyB3ZSBkb24ndFxuICAgICAgICAgKiBoYXZlIHRoZSBwcmV2aW91cyBDUnMuXG4gICAgICAgICAqL1xuICAgICAgICAob3A6IGFueSkgPT5cbiAgICAgICAgICBvcC5wYXRoICE9PSBcIi9zcGVjL2ZpcmVzdGFydHIvdGZTdGF0ZUtleVwiICYmXG4gICAgICAgICAgb3AucGF0aCAhPT0gXCIvbWV0YWRhdGEvbmFtZVwiICYmXG4gICAgICAgICAgb3AucGF0aCAhPT0gXCIvc3BlYy93cml0ZUNvbm5lY3Rpb25TZWNyZXRUb1JlZi9uYW1lXCJcblxuICAgIClcblxuICAgIHJldHVybiB7IGNoYW5nZWQ6IGNvbXBhcmVSZXN1bHQubGVuZ3RoICE9PSAwLCBjaGFuZ2VzOiBjb21wYXJlUmVzdWx0IH1cblxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVdldEFmZmVjdGVkUmVwb3NpdG9yaWVzRmlsZShyZXBvczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgcGF0aDogc3RyaW5nKSB7XG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuXG4gICAgICAgIHBhdGgsXG5cbiAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVwb3MsIG51bGwsIDQpXG5cbiAgICApXG5cbn1cblxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQ29tcGFyZXIoXG4gICAgY2xhaW1QYXRoRnJvbU1haW46IHN0cmluZyxcbiAgICBjbGFpbVBhdGhGcm9tUFI6IHN0cmluZyxcbiAgICBjbGFpbXNEZWZhdWx0c1BhdGg6IHN0cmluZyxcbiAgICB3ZXRSZXBvc2l0b3JpZXNDb25maWdQYXRoOiBzdHJpbmcsXG4gICAgcGF0aEZvckFmZmVjdGVkUmVwb3NGaWxlOiBzdHJpbmdcbikge1xuXG5cbiAgICBzZXRQYXRoKFwiY2xhaW1zRGVmYXVsdHNcIiwgY2xhaW1zRGVmYXVsdHNQYXRoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldEFmZmVjdGVkUmVwb3NpdG9yaWVzKFxuXG4gICAgICAgIGNsYWltUGF0aEZyb21NYWluLFxuXG4gICAgICAgIGNsYWltUGF0aEZyb21QUixcblxuICAgICAgICB3ZXRSZXBvc2l0b3JpZXNDb25maWdQYXRoXG4gICAgKTtcblxuICAgIHdyaXRlV2V0QWZmZWN0ZWRSZXBvc2l0b3JpZXNGaWxlKHJlc3VsdC5yZXBvcywgcGF0aEZvckFmZmVjdGVkUmVwb3NGaWxlKTtcblxufVxuIl19
232646
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcGFyZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBNEM7QUFDNUMsdUNBQXlCO0FBQ3pCLDhDQUFnQztBQUNoQywrREFBaUQ7QUFDakQsbUNBQStFO0FBQy9FLHNDQUFvQztBQUNwQyxtREFBOEM7QUFDOUMsZ0RBQXFEO0FBd0JyRCxNQUFNLHNCQUFzQixHQUFXLGlDQUFpQyxDQUFDO0FBQ3pFLE1BQU0sb0JBQW9CLEdBQVcsK0JBQStCLENBQUM7QUFJckU7Ozs7O0tBS0s7QUFDRSxLQUFLLFVBQVUsdUJBQXVCLENBRXpDLGlCQUF5QixFQUV6QixlQUF1QixFQUV2Qix5QkFBaUM7SUFJakM7OztPQUdHO0lBQ0gsSUFBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUV6QyxFQUFFLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7S0FFdEM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSx1QkFBdUIsR0FBOEIsRUFBRSxDQUFBO0lBRTdEOzs7OztPQUtHO0lBQ0gsTUFBTSxpQkFBaUIsR0FBc0IsRUFBRSxDQUFBO0lBRS9DLG1DQUFtQztJQUNuQyxNQUFNLHFCQUFxQixHQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRWxHLHFEQUFxRDtJQUNyRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRTNELHlDQUF5QztJQUN6QyxJQUFBLGdCQUFPLEVBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFckMseUJBQXlCO0lBQ3pCLElBQUEsa0NBQTBCLEdBQUUsQ0FBQztJQUU3QixNQUFN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LEVBQUUsQ0FBQyxhQUFhLENBRVosSUFBSSxFQUVKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FFakMsQ0FBQTtBQUVMLENBQUM7QUFWRCw0RUFVQztBQUdNLEtBQUssVUFBVSxXQUFXLENBQzdCLGlCQUF5QixFQUN6QixlQUF1QixFQUN2QixrQkFBMEIsRUFDMUIseUJBQWlDLEVBQ2pDLHdCQUFnQztJQUloQyxJQUFBLGdCQUFPLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUU5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUF1QixDQUV4QyxpQkFBaUIsRUFFakIsZUFBZSxFQUVmLHlCQUF5QixDQUM1QixDQUFDO0lBRUYsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBRTdFLENBQUM7QUF0QkQsa0NBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwLCBZYW1sT3V0cHV0VHlwZSB9IGZyb20gXCJjZGs4c1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gXCJqcy15YW1sXCI7XG5pbXBvcnQgKiBhcyBmYXN0SnNvblBhdGNoICBmcm9tIFwiZmFzdC1qc29uLXBhdGNoXCJcbmltcG9ydCB7IGNvbmZpZ3VyZVBhdGhzRm9yUmVuZGVyaW5nLCBnZXRBZmZlY3RlZFdldFJlcG9zaXRvcnkgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgc2V0UGF0aCB9IGZyb20gXCIuLi9jb25maWdcIjtcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuLi9yZW5kZXJlci9yZW5kZXJlclwiO1xuaW1wb3J0IHsgZW1wdHlSZW5kZXJlZENsYWltcyB9IGZyb20gXCIuLi9yZWZyZXNvbHZlclwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIHdpdGggdGhlIGFmZmVjdGVkIHdldCByZXBvc2l0b3JpZXNcbiAqL1xudHlwZSBBZmZlY3RlZFJlc291cmNlID0ge1xuXG4gICAgLy8gQ2hhbmdlcyBpbiB0aGUgcmVzb3VyY2Ugd2l0aCB0aGUgZm9ybWF0IG9mIGZhc3QtanNvbi1wYXRjaFxuICAgIGNoYW5nZXM6IGZhc3RKc29uUGF0Y2guT3BlcmF0aW9uW10sXG5cbiAgICAvLyBUaGUgcmVhc29uIHdoeSB0aGUgcmVzb3VyY2UgaXMgYWZmZWN0ZWRcbiAgICByZWFzb246IFwiTU9ESUZJRURcIiB8IFwiREVMRVRFRF9GUk9NX1BSXCIgIHwgXCJBRERFRF9UT19QUlwiXG5cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT2JqZWN0IHdpdGggdGhlIGFmZmVjdGVkIHdldCByZXBvc2l0b3JpZXNcbiAqL1xudHlwZSBBZmZlY3RlZFJlc291cmNlcyA9IHtcblxuICAgIFtrZXk6IHN0cmluZ106IEFmZmVjdGVkUmVzb3VyY2VcblxufVxuXG5jb25zdCBNQUlOX0JSQU5DSF9PVVRQVVRfRElSOiBzdHJpbmcgPSBcIi90bXAvcmVzb3VyY2VzX2Zyb21fbWFpbl9icmFuY2hcIjtcbmNvbnN0IFBSX0JSQU5DSF9PVVRQVVRfRElSOiBzdHJpbmcgPSBcIi90bXAvcmVzb3VyY2VzX2Zyb21fcHJfYnJhbmNoXCI7XG5cblxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZXQgdGhlIGFmZmVjdGVkIHdldCByZXBvc2l0b3JpZXMgYnkgYSBQUlxuICogQHBhcmFtIGNsYWltUGF0aEZyb21NYWluIFBhdGggdG8gdGhlIGNsYWltcyBmcm9tIHRoZSBtYWluIGJyYW5jaFxuICogQHBhcmFtIGNsYWltUGF0aEZyb21QUiBQYXRoIHRvIHRoZSBjbGFpbXMgZnJvbSB0aGUgUFIgYnJhbmNoXG4gKiBAcGFyYW0gd2V0UmVwb3NpdG9yaWVzQ29uZmlnUGF0aCBQYXRoIHRvIHRoZSB3ZXQgcmVwb3NpdG9yaWVzIGNvbmZpZ1xuICogKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBZmZlY3RlZFJlcG9zaXRvcmllcyhcblxuICAgIGNsYWltUGF0aEZyb21NYWluOiBzdHJpbmcsXG5cbiAgICBjbGFpbVBhdGhGcm9tUFI6IHN0cmluZyxcblxuICAgIHdldFJlcG9zaXRvcmllc0NvbmZpZ1BhdGg6IHN0cmluZ1xuXG4pIDogUHJvbWlzZTx7IHJlcG9zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ30sIGNoYW5nZWRSZXNvdXJjZXM6IEFmZmVjdGVkUmVzb3VyY2VzIH0+IHtcblxuICAgIC8qXG4gICAgICogV2UgbmVlZCB0aGlzIGZvbGRlciB0byBleGlzdCwgc28gd2UgY3JlYXRlIGl0IGJlZm9yZWhhbmRcbiAgICAgKlxuICAgICAqL1xuICAgIGlmKCFmcy5leGlzdHNTeW5jKE1BSU5fQlJBTkNIX09VVFBVVF9ESVIpKSB7XG5cbiAgICAgIGZzLm1rZGlyU3luYyhNQUlOX0JSQU5DSF9PVVRQVVRfRElSKTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB3aXRoIHRoZSBhZmZlY3RlZCB3ZXQgcmVwb3NpdG9yaWVzXG4gICAgICogVGhpcyB3aWxsIGJlIHJldHVybmVkIGluIG9yZGVyIHRvIHRyaWdnZXJcbiAgICAgKiB0aGUgcGlwZWxpbmVzIG9mIHRoZSBhZmZlY3RlZCB3ZXQgcmVwb3NpdG9yaWVzXG4gICAgICovXG4gICAgY29uc3QgYWZmZWN0ZWRXZXRSZXBvc2l0b3JpZXM6ICB7IFtrZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fVxuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IHdpdGggdGhlIGFmZmVjdGVkIHJlc291cmNlc1xuICAgICAqIFRoaXMgd2lsbCBiZSByZXR1cm5lZCBmb3IgYSBzdW1tYXJ5IG9mIHRoZSBjaGFuZ2VzLFxuICAgICAqIGFuZCB0aGUgdXNlciB3aWxsIGJlIGFibGUgdG8gc2VlIHRoZSBjaGFuZ2VzIGluIHRoZVxuICAgICAqIHBpcGVsaW5lIGxvZ3MuXG4gICAgICovXG4gICAgY29uc3QgYWZmZWN0ZWRSZXNvdXJjZXM6IEFmZmVjdGVkUmVzb3VyY2VzID0ge31cblxuICAgIC8vIExvYWQgdGhlIHdldCByZXBvc2l0b3JpZXMgY29uZmlnXG4gICAgY29uc3Qgd2V0UmVwb3NpdG9yaWVzQ29uZmlnOiBhbnkgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKHdldFJlcG9zaXRvcmllc0NvbmZpZ1BhdGgsIFwidXRmLThcIikpO1xuXG4gICAgLy8gR2V0IHRoZSBwcm92aWRlcnMgZnJvbSB0aGUgd2V0IHJlcG9zaXRvcmllcyBjb25maWdcbiAgICBjb25zdCBwcm92aWRlcnMgPSBPYmplY3Qua2V5cyh3ZXRSZXBvc2l0b3JpZXNDb25maWcuc3RhdGVzKVxuXG4gICAgLy8gU2V0IHRoZSBjbGFpbXMgcGF0aCB0byB0aGUgbWFpbiBicmFuY2hcbiAgICBzZXRQYXRoKFwiY2xhaW1zXCIsIGNsYWltUGF0aEZyb21NYWluKTtcblxuICAgIC8vIENvbmZpZ3VyZSB0aGUgcmVuZGVyZXJcbiAgICBjb25maWd1cmVQYXRoc0ZvclJlbmRlcmluZygpO1xuXG4gICAgY29uc3QgbWFpbkJyYW5jaEZpcmVzdGFydHJBcHAgPSBuZXcgQXBwKHtcbiAgICAgICAgb3V0ZGlyOiBNQUlOX0JSQU5DSF9PVVRQVVRfRElSLFxuICAgICAgICBvdXRwdXRGaWxlRXh0ZW5zaW9uOiBcIi55YW1sXCIsXG4gICAgICAgIHlhbWxPdXRwdXRUeXBlOiBZYW1sT3V0cHV0VHlwZS5GSUxFX1BFUl9SRVNPVVJDRSxcbiAgICB9KVxuXG4gICAgY29uc3QgbWFpbkJyYW5jaENhdGFsb2dBcHAgPSBuZXcgQXBwKHtcbiAgICAgICAgb3V0ZGlyOiBcIi90bXAvLmNhdGFsb2dcIixcbiAgICAgICAgb3V0cHV0RmlsZUV4dGVuc2lvbjogXCIueWFtbFwiLFxuICAgICAgICB5YW1sT3V0cHV0VHlwZTogWWFtbE91dHB1dFR5cGUuRklMRV9QRVJfUkVTT1VSQ0UsXG4gICAgfSlcblxuICAgIC8vIFJlbmRlciB0aGUgbWFpbiBicmFuY2hcbiAgICBsZXQgcmVuZGVyRnJvbU1haW5CcmFuY2g6IGFueSA9IGF3YWl0IHJlbmRlcihtYWluQnJhbmNoQ2F0YWxvZ0FwcCwgbWFpbkJyYW5jaEZpcmVzdGFydHJBcHApXG5cbiAgICBtYWluQnJhbmNoRmlyZXN0YXJ0ckFwcC5zeW50aCgpO1xuXG4gICAgZW1wdHlSZW5kZXJlZENsYWltcygpO1xuXG4gICAgLy8gQ2hhbmdlIHRoZSBjbGFpbXMgcGF0aCB0byB0aGUgUFIgYnJhbmNoXG4gICAgc2V0UGF0aChcImNsYWltc1wiLCBjbGFpbVBhdGhGcm9tUFIpXG5cbiAgICBjb25zdCBhcHAyID0gbmV3IEFwcCh7XG4gICAgICAgIG91dGRpcjogUFJfQlJBTkNIX09VVFBVVF9ESVIsXG4gICAgICAgIG91dHB1dEZpbGVFeHRlbnNpb246IFwiLnlhbWxcIixcbiAgICAgICAgeWFtbE91dHB1dFR5cGU6IFlhbWxPdXRwdXRUeXBlLkZJTEVfUEVSX1JFU09VUkNFLFxuICAgIH0pXG4gICAgLy8gUmVuZGVyIHRoZSBQUiBicmFuY2hcbiAgICBjb25zdCByZW5kZXJGcm9tUFJCcmFuY2g6IGFueSA9IGF3YWl0IHJlbmRlcihuZXcgQXBwKCksIGFwcDIpXG5cbiAgICBhcHAyLnN5bnRoKCk7XG5cbiAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHJlc291cmNlcyBmcm9tIHRoZSBtYWluIGJyYW5jaFxuICAgIGZvcihjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVuZGVyRnJvbU1haW5CcmFuY2gpKXtcblxuICAgICAgICBjb25zdCBraW5kID0gcmVuZGVyRnJvbU1haW5CcmFuY2hba2V5XS5raW5kXG5cbiAgICAgICAgLy9DaGVjayBpZiB0aGUgcmVzb3VyY2UgaXMgcHJlc2VudCBpbiB0aGUgUFIgYnJhbmNoXG4gICAgICAgIGlmKHJlbmRlckZyb21QUkJyYW5jaFtrZXldKXtcblxuICAgICAgICAgICAgLy9DaGVjayBpZiB0aGUgcmVzb3VyY2VzIGFyZSBkaWZmZXJlbnRcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVSZXN1bHQgPSBjb21wYXJlQ1JzKFxuXG4gICAgICAgICAgICAgICAgcmVuZGVyRnJvbU1haW5CcmFuY2hba2V5XSxcblxuICAgICAgICAgICAgICAgIHJlbmRlckZyb21QUkJyYW5jaFtrZXldXG5cbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYoY29tcGFyZVJlc3VsdC5jaGFuZ2VkKXtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGFmZmVjdGVkUmVwbyA9IGdldEFmZmVjdGVkV2V0UmVwb3NpdG9yeShcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzLFxuICAgICAgICAgICAgICAgICAgICB3ZXRSZXBvc2l0b3JpZXNDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIGtpbmRcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmRpcihhZmZlY3RlZFJlcG8sIHsgZGVwdGg6IG51bGwgfSlcblxuICAgICAgICAgICAgICAgIGFmZmVjdGVkV2V0UmVwb3NpdG9yaWVzW2FmZmVjdGVkUmVwby5yZXBvXSA9IGFmZmVjdGVkUmVwby53b3JrZmxvd3Mubm90aWZ5XG5cbiAgICAgICAgICAgICAgICBhZmZlY3RlZFJlc291cmNlc1trZXldID0ge1xuXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZXM6IGNvbXBhcmVSZXN1bHQuY2hhbmdlcyxcblxuICAgICAgICAgICAgICAgICAgICByZWFzb246IFwiTU9ESUZJRURcIlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlIHJlc291cmNlIGlzIG5vdCBwcmVzZW50IGluIHRoZSBQUiBicmFuY2gsXG4gICAgICAgICAgICAgKiBpdCBtZWFucyB0aGF0IGl0IGhhcyBiZWVuIGRlbGV0ZWQsIHNvIGl0IGlzIGFmZmVjdGVkXG4gICAgICAgICAgICAqKi9cbiAgICAgICAgICAgIGNvbnN0IGFmZmVjdGVkUmVwbyA9IGdldEFmZmVjdGVkV2V0UmVwb3NpdG9yeShcbiAgICAgICAgICAgICAgICBwcm92aWRlcnMsXG4gICAgICAgICAgICAgICAgd2V0UmVwb3NpdG9yaWVzQ29uZmlnLFxuICAgICAgICAgICAgICAgIGtpbmRcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgYWZmZWN0ZWRXZXRSZXBvc2l0b3JpZXNbYWZmZWN0ZWRSZXBvLnJlcG9dID0gYWZmZWN0ZWRSZXBvLndvcmtmbG93cy5ub3RpZnlcblxuICAgICAgICAgICAgYWZmZWN0ZWRSZXNvdXJjZXNba2V5XSA9IHtcblxuICAgICAgICAgICAgICAgIGNoYW5nZXM6IFtdLFxuXG4gICAgICAgICAgICAgICAgcmVhc29uOiBcIkRFTEVURURfRlJPTV9QUlwiXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGUgb3ZlciB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIFBSIGJyYW5jaCBpblxuICAgICAqIGNhc2UgdGhlcmUgYXJlIHJlc291cmNlcyB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgbWFpbiBicmFuY2gsXG4gICAgICogdGhhdCBtZWFucyB0aGF0IHRoZXkgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBQUiBicmFuY2guXG4gICAgICovXG4gICAgZm9yKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhyZW5kZXJGcm9tUFJCcmFuY2gpKXtcblxuICAgICAgICBjb25zdCBraW5kID0gcmVuZGVyRnJvbVBSQnJhbmNoW2tleV0ua2luZFxuXG4gICAgICAgIC8vQ2hlY2sgaWYgdGhlIHJlc291cmNlIGlzIG5vdCBwcmVzZW50IGluIHRoZSBtYWluIGJyYW5jaFxuICAgICAgICBpZighcmVuZGVyRnJvbU1haW5CcmFuY2hba2V5XSl7XG5cbiAgICAgICAgICAgIGNvbnN0IGFmZmVjdGVkUmVwbyA9IGdldEFmZmVjdGVkV2V0UmVwb3NpdG9yeShcbiAgICAgICAgICAgICAgICBwcm92aWRlcnMsXG4gICAgICAgICAgICAgICAgd2V0UmVwb3NpdG9yaWVzQ29uZmlnLFxuICAgICAgICAgICAgICAgIGtpbmRcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgYWZmZWN0ZWRXZXRSZXBvc2l0b3JpZXNbYWZmZWN0ZWRSZXBvLnJlcG9dID0gYWZmZWN0ZWRSZXBvLndvcmtmbG93cy5ub3RpZnlcblxuICAgICAgICAgICAgYWZmZWN0ZWRSZXNvdXJjZXNba2V5XSA9IHtcblxuICAgICAgICAgICAgICAgIGNoYW5nZXM6IFtdLFxuXG4gICAgICAgICAgICAgICAgcmVhc29uOiBcIkFEREVEX1RPX1BSXCJcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuXG4gICAgICAgIHJlcG9zOiBhZmZlY3RlZFdldFJlcG9zaXRvcmllcyxcblxuICAgICAgICBjaGFuZ2VkUmVzb3VyY2VzOiBhZmZlY3RlZFJlc291cmNlc1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ2hlY2sgaWYgdHdvIGNycyBhcmUgZGlmZmVyZW50XG4gKiBAcGFyYW0gY3JWMSBGaXJzdCBjclxuICogQHBhcmFtIGNyVjIgU2Vjb25kIGNyXG4gKiAqL1xuZnVuY3Rpb24gY29tcGFyZUNScyhjclYxOiBhbnksIGNyVjI6IGFueSkgOiB7IGNoYW5nZWQ6IGJvb2xlYW4sIGNoYW5nZXM6IGZhc3RKc29uUGF0Y2guT3BlcmF0aW9uW10gfSB7XG5cbiAgICBpZihjclYxLmtpbmQgIT09IGNyVjIua2luZCl7XG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBLaW5kIG1pc21hdGNoIG9uIGNvbXBhcmU6ICR7Y3JWMS5raW5kfSAhPT0gJHtjclYyLmtpbmR9YClcblxuICAgIH1cblxuICAgIGNvbnN0IGNvbXBhcmVSZXN1bHQgPSBmYXN0SnNvblBhdGNoXG5cbiAgICAuY29tcGFyZShjclYxLCBjclYyKVxuXG4gICAgLmZpbHRlcihcblxuICAgICAgICAvKipcbiAgICAgICAgICogVGhpcyBpcyBhIGZha2UgcmVuZGVyLCBzbyB3ZSBkb24ndCB3YW50IHRvIGNvbXBhcmVcbiAgICAgICAgICogdGhlIHRmU3RhdGVLZXksIGJlY2F1c2UgaW4gdGhlIGNsYWltcyByZXBvIHdlIGRvbid0XG4gICAgICAgICAqIGhhdmUgdGhlIHByZXZpb3VzIENScy5cbiAgICAgICAgICovXG4gICAgICAgIChvcDogYW55KSA9PlxuICAgICAgICAgIG9wLnBhdGggIT09IFwiL3NwZWMvZmlyZXN0YXJ0ci90ZlN0YXRlS2V5XCIgJiZcbiAgICAgICAgICBvcC5wYXRoICE9PSBcIi9tZXRhZGF0YS9uYW1lXCIgJiZcbiAgICAgICAgICBvcC5wYXRoICE9PSBcIi9zcGVjL3dyaXRlQ29ubmVjdGlvblNlY3JldFRvUmVmL25hbWVcIlxuXG4gICAgKVxuXG4gICAgcmV0dXJuIHsgY2hhbmdlZDogY29tcGFyZVJlc3VsdC5sZW5ndGggIT09IDAsIGNoYW5nZXM6IGNvbXBhcmVSZXN1bHQgfVxuXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlV2V0QWZmZWN0ZWRSZXBvc2l0b3JpZXNGaWxlKHJlcG9zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBwYXRoOiBzdHJpbmcpIHtcblxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG5cbiAgICAgICAgcGF0aCxcblxuICAgICAgICBKU09OLnN0cmluZ2lmeShyZXBvcywgbnVsbCwgNClcblxuICAgIClcblxufVxuXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5Db21wYXJlcihcbiAgICBjbGFpbVBhdGhGcm9tTWFpbjogc3RyaW5nLFxuICAgIGNsYWltUGF0aEZyb21QUjogc3RyaW5nLFxuICAgIGNsYWltc0RlZmF1bHRzUGF0aDogc3RyaW5nLFxuICAgIHdldFJlcG9zaXRvcmllc0NvbmZpZ1BhdGg6IHN0cmluZyxcbiAgICBwYXRoRm9yQWZmZWN0ZWRSZXBvc0ZpbGU6IHN0cmluZ1xuKSB7XG5cblxuICAgIHNldFBhdGgoXCJjbGFpbXNEZWZhdWx0c1wiLCBjbGFpbXNEZWZhdWx0c1BhdGgpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0QWZmZWN0ZWRSZXBvc2l0b3JpZXMoXG5cbiAgICAgICAgY2xhaW1QYXRoRnJvbU1haW4sXG5cbiAgICAgICAgY2xhaW1QYXRoRnJvbVBSLFxuXG4gICAgICAgIHdldFJlcG9zaXRvcmllc0NvbmZpZ1BhdGhcbiAgICApO1xuXG4gICAgd3JpdGVXZXRBZmZlY3RlZFJlcG9zaXRvcmllc0ZpbGUocmVzdWx0LnJlcG9zLCBwYXRoRm9yQWZmZWN0ZWRSZXBvc0ZpbGUpO1xuXG59XG4iXX0=
232646
232647
 
232647
232648
  /***/ }),
232648
232649
 
@@ -234593,6 +234594,64 @@ function getOrg() {
234593
234594
 
234594
234595
  /***/ }),
234595
234596
 
234597
+ /***/ 71756:
234598
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
234599
+
234600
+ "use strict";
234601
+
234602
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
234603
+ exports.RevisionNormalizer = void 0;
234604
+ const base_1 = __nccwpck_require__(1440);
234605
+ class RevisionNormalizer extends base_1.Normalizer {
234606
+ constructor() {
234607
+ super(...arguments);
234608
+ this.applicableProviders = ['all'];
234609
+ }
234610
+ async __validate(_schema) {
234611
+ return true;
234612
+ }
234613
+ async __patches(_claim, previousCR) {
234614
+ const revisionKey = 'firestartr.dev/revision';
234615
+ return [
234616
+ {
234617
+ validate(_cr) {
234618
+ return true;
234619
+ },
234620
+ apply(cr) {
234621
+ var _a;
234622
+ if (previousCR &&
234623
+ previousCR.metadata.annotations &&
234624
+ previousCR.metadata.annotations[revisionKey]) {
234625
+ cr.metadata.annotations = (_a = cr.metadata.annotations) !== null && _a !== void 0 ? _a : {};
234626
+ let currentRevision = parseInt(previousCR.metadata.annotations[revisionKey], 10);
234627
+ if (isNaN(currentRevision)) {
234628
+ throw new base_1.NormalizerError(`INVALID_REVISION: '${cr.metadata.annotations[revisionKey]}'`);
234629
+ }
234630
+ currentRevision += 1;
234631
+ cr.metadata.annotations[revisionKey] = currentRevision.toString();
234632
+ }
234633
+ else {
234634
+ cr.metadata.annotations[revisionKey] = '1';
234635
+ }
234636
+ return cr;
234637
+ },
234638
+ identify() {
234639
+ return 'normalizer/revision';
234640
+ },
234641
+ applicable() {
234642
+ return {
234643
+ applicableProviders: ['terraform'],
234644
+ };
234645
+ },
234646
+ },
234647
+ ];
234648
+ }
234649
+ }
234650
+ exports.RevisionNormalizer = RevisionNormalizer;
234651
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmV2aXNpb25Ob3JtYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vcm1hbGl6ZXJzL1JldmlzaW9uTm9ybWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpQ0FBcUQ7QUFFckQsTUFBYSxrQkFBbUIsU0FBUSxpQkFBVTtJQUFsRDs7UUFDRSx3QkFBbUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBcUVoQyxDQUFDO0lBbkVDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBWTtRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQVcsRUFBRSxVQUFlO1FBRTFDLE1BQU0sV0FBVyxHQUFHLHlCQUF5QixDQUFDO1FBRTlDLE9BQU87WUFDTDtnQkFDRSxRQUFRLENBQUMsR0FBUTtvQkFDZixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUVELEtBQUssQ0FBQyxFQUFPOztvQkFFWCxJQUNHLFVBQVU7d0JBRVYsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXO3dCQUUvQixVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFFM0M7d0JBRUYsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsTUFBQSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsbUNBQUksRUFBRSxDQUFDO3dCQUV4RCxJQUFJLGVBQWUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBRWpGLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFOzRCQUUxQixNQUFNLElBQUksc0JBQWUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3lCQUUxRjt3QkFFRCxlQUFlLElBQUksQ0FBQyxDQUFDO3dCQUVyQixFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBRW5FO3lCQUFNO3dCQUVMLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztxQkFFNUM7b0JBRUQsT0FBTyxFQUFFLENBQUM7Z0JBRVosQ0FBQztnQkFFRCxRQUFRO29CQUVOLE9BQU8scUJBQXFCLENBQUM7Z0JBRS9CLENBQUM7Z0JBRUQsVUFBVTtvQkFFUixPQUFPO3dCQUVMLG1CQUFtQixFQUFFLENBQUMsV0FBVyxDQUFDO3FCQUVuQyxDQUFDO2dCQUVKLENBQUM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0RUQsZ0RBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUN1c3RvbVJlc291cmNlUGF0Y2ggfSBmcm9tICcuLi9wYXRjaGVzJztcbmltcG9ydCB7IE5vcm1hbGl6ZXIsIE5vcm1hbGl6ZXJFcnJvciB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjbGFzcyBSZXZpc2lvbk5vcm1hbGl6ZXIgZXh0ZW5kcyBOb3JtYWxpemVyIHtcbiAgYXBwbGljYWJsZVByb3ZpZGVycyA9IFsnYWxsJ107XG5cbiAgYXN5bmMgX192YWxpZGF0ZShfc2NoZW1hOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIF9fcGF0Y2hlcyhfY2xhaW06IGFueSwgcHJldmlvdXNDUjogYW55KTogUHJvbWlzZTxJQ3VzdG9tUmVzb3VyY2VQYXRjaFtdPiB7XG4gICAgXG4gICAgY29uc3QgcmV2aXNpb25LZXkgPSAnZmlyZXN0YXJ0ci5kZXYvcmV2aXNpb24nO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdGUoX2NyOiBhbnkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSxcblxuICAgICAgICBhcHBseShjcjogYW55KSB7XG5cbiAgICAgICAgICBpZihcbiAgICAgICAgICAgICBwcmV2aW91c0NSICYmIFxuXG4gICAgICAgICAgICAgcHJldmlvdXNDUi5tZXRhZGF0YS5hbm5vdGF0aW9ucyAmJiBcbiAgICAgICAgICAgICBcbiAgICAgICAgICAgICBwcmV2aW91c0NSLm1ldGFkYXRhLmFubm90YXRpb25zW3JldmlzaW9uS2V5XVxuICAgICAgICAgICAgXG4gICAgICAgICAgICApIHtcblxuICAgICAgICAgICAgY3IubWV0YWRhdGEuYW5ub3RhdGlvbnMgPSBjci5tZXRhZGF0YS5hbm5vdGF0aW9ucyA/PyB7fTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGV0IGN1cnJlbnRSZXZpc2lvbiA9IHBhcnNlSW50KHByZXZpb3VzQ1IubWV0YWRhdGEuYW5ub3RhdGlvbnNbcmV2aXNpb25LZXldLCAxMCk7XG5cbiAgICAgICAgICAgIGlmIChpc05hTihjdXJyZW50UmV2aXNpb24pKSB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vcm1hbGl6ZXJFcnJvcihgSU5WQUxJRF9SRVZJU0lPTjogJyR7Y3IubWV0YWRhdGEuYW5ub3RhdGlvbnNbcmV2aXNpb25LZXldfSdgKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjdXJyZW50UmV2aXNpb24gKz0gMTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY3IubWV0YWRhdGEuYW5ub3RhdGlvbnNbcmV2aXNpb25LZXldID0gY3VycmVudFJldmlzaW9uLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjci5tZXRhZGF0YS5hbm5vdGF0aW9uc1tyZXZpc2lvbktleV0gPSAnMSc7XG4gICAgICAgICAgXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNyO1xuICAgICAgICBcbiAgICAgICAgfSxcblxuICAgICAgICBpZGVudGlmeSgpIHtcbiAgICAgICAgXG4gICAgICAgICAgcmV0dXJuICdub3JtYWxpemVyL3JldmlzaW9uJztcbiAgICAgICAgXG4gICAgICAgIH0sXG5cbiAgICAgICAgYXBwbGljYWJsZSgpIHtcbiAgICAgICAgICBcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIFxuICAgICAgICAgICAgYXBwbGljYWJsZVByb3ZpZGVyczogWyd0ZXJyYWZvcm0nXSxcbiAgICAgICAgICBcbiAgICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufVxuIl19
234652
+
234653
+ /***/ }),
234654
+
234596
234655
  /***/ 1440:
234597
234656
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
234598
234657
 
@@ -234631,11 +234690,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
234631
234690
  exports.NORMALIZERS = exports.normalizeModuleContent = void 0;
234632
234691
  const name_1 = __nccwpck_require__(32095);
234633
234692
  const refValues_1 = __nccwpck_require__(46654);
234693
+ const RevisionNormalizer_1 = __nccwpck_require__(71756);
234634
234694
  const tfworkspace_1 = __nccwpck_require__(99986);
234635
234695
  var tfworkspace_2 = __nccwpck_require__(99986);
234636
234696
  Object.defineProperty(exports, "normalizeModuleContent", ({ enumerable: true, get: function () { return tfworkspace_2.normalizeModuleContent; } }));
234637
- exports.NORMALIZERS = [name_1.NameNormalizer, refValues_1.RefValuesNormalizer, tfworkspace_1.TFWorkspaceNormalizer];
234638
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbm9ybWFsaXplcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXdDO0FBQ3hDLDJDQUFrRDtBQUNsRCwrQ0FBc0Q7QUFDdEQsNkNBQXVEO0FBQTlDLHFIQUFBLHNCQUFzQixPQUFBO0FBRWxCLFFBQUEsV0FBVyxHQUFVLENBQUMscUJBQWMsRUFBRSwrQkFBbUIsRUFBRSxtQ0FBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9uYW1lXCI7XG5pbXBvcnQgeyBSZWZWYWx1ZXNOb3JtYWxpemVyIH0gZnJvbSBcIi4vcmVmVmFsdWVzXCI7XG5pbXBvcnQgeyBURldvcmtzcGFjZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi90ZndvcmtzcGFjZVwiO1xuZXhwb3J0IHsgbm9ybWFsaXplTW9kdWxlQ29udGVudCB9IGZyb20gXCIuL3Rmd29ya3NwYWNlXCI7XG5cbmV4cG9ydCBjb25zdCBOT1JNQUxJWkVSUzogYW55W10gPSBbTmFtZU5vcm1hbGl6ZXIsIFJlZlZhbHVlc05vcm1hbGl6ZXIsIFRGV29ya3NwYWNlTm9ybWFsaXplcl07XG4iXX0=
234697
+ exports.NORMALIZERS = [name_1.NameNormalizer, refValues_1.RefValuesNormalizer, tfworkspace_1.TFWorkspaceNormalizer, RevisionNormalizer_1.RevisionNormalizer];
234698
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbm9ybWFsaXplcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXdDO0FBQ3hDLDJDQUFrRDtBQUNsRCw2REFBMEQ7QUFDMUQsK0NBQXNEO0FBQ3RELDZDQUF1RDtBQUE5QyxxSEFBQSxzQkFBc0IsT0FBQTtBQUVsQixRQUFBLFdBQVcsR0FBVSxDQUFDLHFCQUFjLEVBQUUsK0JBQW1CLEVBQUUsbUNBQXFCLEVBQUUsdUNBQWtCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hbWVOb3JtYWxpemVyIH0gZnJvbSBcIi4vbmFtZVwiO1xuaW1wb3J0IHsgUmVmVmFsdWVzTm9ybWFsaXplciB9IGZyb20gXCIuL3JlZlZhbHVlc1wiO1xuaW1wb3J0IHsgUmV2aXNpb25Ob3JtYWxpemVyIH0gZnJvbSBcIi4vUmV2aXNpb25Ob3JtYWxpemVyXCI7XG5pbXBvcnQgeyBURldvcmtzcGFjZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi90ZndvcmtzcGFjZVwiO1xuZXhwb3J0IHsgbm9ybWFsaXplTW9kdWxlQ29udGVudCB9IGZyb20gXCIuL3Rmd29ya3NwYWNlXCI7XG5cbmV4cG9ydCBjb25zdCBOT1JNQUxJWkVSUzogYW55W10gPSBbTmFtZU5vcm1hbGl6ZXIsIFJlZlZhbHVlc05vcm1hbGl6ZXIsIFRGV29ya3NwYWNlTm9ybWFsaXplciwgUmV2aXNpb25Ob3JtYWxpemVyXTtcbiJdfQ==
234639
234699
 
234640
234700
  /***/ }),
234641
234701
 
@@ -236987,20 +237047,19 @@ exports.operatorSubcommands = {
236987
237047
  { name: "observeMode", type: Boolean, defaultValue: false },
236988
237048
  { name: "plan", type: Boolean },
236989
237049
  { name: "apply", type: Boolean },
236990
- { name: "cr", alias: "c", type: String },
237050
+ { name: "claim", alias: "c", type: String },
236991
237051
  { name: "namespace", alias: "n", type: String },
236992
237052
  ],
236993
237053
  run: async (options) => {
236994
237054
  // This will show the command line options passed to the command
236995
237055
  console.table(options);
236996
237056
  if (options["plan"] || options["apply"]) {
236997
- if (!options["cr"])
236998
- throw `Error: Missing arg: --cr`;
237057
+ if (!options["claim"])
237058
+ throw `Error: Missing arg: --claim`;
236999
237059
  if (!options["namespace"])
237000
237060
  throw `Error: Missing arg: --namespace`;
237001
- const claimContentFile = Buffer.from(options["cr"], 'base64').toString('utf8');
237002
237061
  const command = options["plan"] ? "plan" : "apply";
237003
- await (0, operator_1.execTfCommand)(command, claimContentFile, options["namespace"] || "default");
237062
+ await (0, operator_1.execTfCommand)(command, options["claim"], options["namespace"] || "default");
237004
237063
  return;
237005
237064
  }
237006
237065
  if (!options["start"]) {
@@ -239648,6 +239707,7 @@ const fs = __importStar(__nccwpck_require__(57147));
239648
239707
  const provisioner_1 = __importDefault(__nccwpck_require__(88456));
239649
239708
  const debug_1 = __importDefault(__nccwpck_require__(67984));
239650
239709
  const _1 = __nccwpck_require__(79622);
239710
+ const user_feedback_ops_1 = __nccwpck_require__(704);
239651
239711
  const log = (0, debug_1.default)('firestartr:operator:cdktf');
239652
239712
  function processOperation(item, op, handler) {
239653
239713
  try {
@@ -239755,6 +239815,7 @@ async function* markedToDeletion(item, op, handler) {
239755
239815
  delete: true
239756
239816
  });
239757
239817
  const output = destroyOutput.output;
239818
+ await (0, user_feedback_ops_1.tryPublishDestroy)(item, output);
239758
239819
  yield {
239759
239820
  item,
239760
239821
  reason: op,
@@ -239788,7 +239849,6 @@ async function* nothing(item, op, handler) {
239788
239849
  };
239789
239850
  }
239790
239851
  /**
239791
- *
239792
239852
  * @param {any} item - CR to be applied
239793
239853
  * @param op - Operation type
239794
239854
  * @param handler -
@@ -239833,6 +239893,7 @@ async function* doApply(item, op, handler) {
239833
239893
  mainCr: item,
239834
239894
  deps,
239835
239895
  }, opts);
239896
+ await (0, user_feedback_ops_1.tryPublishApply)(item, applyOutput?.data?.output, item.kind);
239836
239897
  const terraformOutputJson = await provisioner_1.default.runTerraform(item, [
239837
239898
  "output",
239838
239899
  "-json"
@@ -239867,6 +239928,10 @@ async function* doApply(item, op, handler) {
239867
239928
  handler.success();
239868
239929
  }
239869
239930
  catch (e) {
239931
+ if (typeof e === "object" && "output" in e) {
239932
+ e = e.output;
239933
+ }
239934
+ await (0, user_feedback_ops_1.tryPublishApply)(item, e, item.kind);
239870
239935
  log("Error applying item %s: %O", item.metadata.name, e);
239871
239936
  yield {
239872
239937
  item,
@@ -240233,14 +240298,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
240233
240298
  return (mod && mod.__esModule) ? mod : { "default": mod };
240234
240299
  };
240235
240300
  Object.defineProperty(exports, "__esModule", ({ value: true }));
240236
- exports.tfPlanner = void 0;
240301
+ exports.kubectlCp = exports.tfPlanner = void 0;
240237
240302
  const client = __importStar(__nccwpck_require__(54851));
240238
240303
  const stream = __importStar(__nccwpck_require__(12781));
240239
240304
  const ctl_1 = __nccwpck_require__(46679);
240240
240305
  const catalog_common_1 = __importDefault(__nccwpck_require__(74100));
240306
+ const child_process_1 = __nccwpck_require__(32081);
240241
240307
  const deploymentName = catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.operatorDeploymentName || "firestartr-firestartr-controller");
240242
240308
  const DEFAULT_OPERATOR_DEPLOY = deploymentName;
240243
- async function tfPlanner(claim, namespace, debug, jobTtl, cmd = "plan") {
240309
+ async function tfPlanner(claimFilePath, claim, namespace, debug, jobTtl, cmd = "plan") {
240244
240310
  const { kc } = await (0, ctl_1.getConnection)();
240245
240311
  const k8sApi = kc.makeApiClient(client.AppsV1Api);
240246
240312
  const batchV1Api = kc.makeApiClient(client.BatchV1Api);
@@ -240264,7 +240330,7 @@ async function tfPlanner(claim, namespace, debug, jobTtl, cmd = "plan") {
240264
240330
  job.spec.template.spec.containers[0].command = [
240265
240331
  "sh",
240266
240332
  "-c",
240267
- `${executablePath} operator --${cmd} --cr ${Buffer.from(JSON.stringify(claim)).toString('base64')} --namespace ${namespace}`,
240333
+ `${executablePath} operator --${cmd} --claim /tmp/claim.yaml --namespace ${namespace}`,
240268
240334
  ];
240269
240335
  if (debug) {
240270
240336
  job.spec.template.spec.containers[0].command[2] = job
@@ -240278,11 +240344,11 @@ async function tfPlanner(claim, namespace, debug, jobTtl, cmd = "plan") {
240278
240344
  job.spec.template.spec.restartPolicy = "Never";
240279
240345
  job.metadata = metadata;
240280
240346
  const createJobRes = await batchV1Api.createNamespacedJob(namespace, job);
240281
- await getLogs(namespace, job.metadata.name);
240347
+ await copyClaimAndGetLogs(namespace, job.metadata.name, claimFilePath);
240282
240348
  await batchV1Api.deleteNamespacedJob(job.metadata.name, namespace);
240283
240349
  }
240284
240350
  exports.tfPlanner = tfPlanner;
240285
- async function getLogs(namespace, jobName) {
240351
+ async function copyClaimAndGetLogs(namespace, jobName, sourcePath) {
240286
240352
  const { kc } = await (0, ctl_1.getConnection)();
240287
240353
  const k8sApi = kc.makeApiClient(client.CoreV1Api);
240288
240354
  const log = new client.Log(kc);
@@ -240309,7 +240375,12 @@ async function getLogs(namespace, jobName) {
240309
240375
  }
240310
240376
  }
240311
240377
  }
240378
+ console.log("Waiting for pod to be running");
240312
240379
  await awaitPodStatus((phase) => phase != "Pending");
240380
+ console.log("Pod is running");
240381
+ console.log("Copying claim to pod");
240382
+ await kubectlCp(sourcePath, namespace, pod.metadata.name);
240383
+ console.log("Claim copied to pod");
240313
240384
  try {
240314
240385
  const req = await log.log(namespace, pod.metadata.name, pod.spec.containers[0].name, logStream, {
240315
240386
  follow: true,
@@ -240340,6 +240411,11 @@ async function getLogs(namespace, jobName) {
240340
240411
  return;
240341
240412
  }
240342
240413
  }
240414
+ function kubectlCp(sourcePath, namespace, podName) {
240415
+ const command = `kubectl cp -n ${namespace} ${sourcePath} ${podName}:/tmp/claim.yaml`;
240416
+ (0, child_process_1.execSync)(command);
240417
+ }
240418
+ exports.kubectlCp = kubectlCp;
240343
240419
 
240344
240420
 
240345
240421
  /***/ }),
@@ -240930,9 +241006,17 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
240930
241006
  exports.execTfCommand = void 0;
240931
241007
  const yaml = __importStar(__nccwpck_require__(26264));
240932
241008
  const ctx_1 = __nccwpck_require__(29296);
240933
- async function execTfCommand(command, fileContent, namespace = "default") {
240934
- console.log(`execTfCommand: ${command} CR: ${fileContent}`);
240935
- const claim = yaml.load(fileContent);
241009
+ const fs = __importStar(__nccwpck_require__(57147));
241010
+ async function execTfCommand(command, filePath, namespace = "default") {
241011
+ console.log(`execTfCommand: ${command} claim file path: ${filePath} namespace: ${namespace}`);
241012
+ // The claim will be copied to the pod's filesystem
241013
+ // and the operator will read it from there
241014
+ // The operator should wait fort the claim file to be written
241015
+ // before reading it
241016
+ console.log(`Waiting for file ${filePath}`);
241017
+ await waitForFile(filePath);
241018
+ console.log(`File ${filePath} found`);
241019
+ const claim = yaml.load(fs.readFileSync(filePath, 'utf8'));
240936
241020
  let ctx = null;
240937
241021
  switch (claim.kind) {
240938
241022
  case "TFWorkspaceClaim":
@@ -240949,6 +241033,23 @@ async function execTfCommand(command, fileContent, namespace = "default") {
240949
241033
  await ctx.exec("runProvision");
240950
241034
  }
240951
241035
  exports.execTfCommand = execTfCommand;
241036
+ function waitForFile(filePath) {
241037
+ return new Promise((resolve, reject) => {
241038
+ const timeout = setTimeout(() => {
241039
+ reject(new Error(`File not found within 60 seconds: ${filePath}`));
241040
+ }, 65000);
241041
+ const interval = setInterval(() => {
241042
+ if (fs.existsSync(filePath)) {
241043
+ clearInterval(interval);
241044
+ clearTimeout(timeout);
241045
+ // wait a bit more to make sure the file is fully written
241046
+ setTimeout(() => {
241047
+ resolve();
241048
+ }, 5000);
241049
+ }
241050
+ }, 500);
241051
+ });
241052
+ }
240952
241053
 
240953
241054
 
240954
241055
  /***/ }),
@@ -242996,7 +243097,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
242996
243097
  exports.errorPolicyCompatibility = exports.policyAllowsOp = void 0;
242997
243098
  const informer_1 = __nccwpck_require__(41151);
242998
243099
  const debug_1 = __importDefault(__nccwpck_require__(67984));
242999
- const user_feedback_ops_1 = __nccwpck_require__(36322);
243100
+ const user_feedback_ops_1 = __nccwpck_require__(704);
243000
243101
  const catalog_common_1 = __importDefault(__nccwpck_require__(74100));
243001
243102
  const log = (0, debug_1.default)("firestartr:operator:tfworkspaces:policies");
243002
243103
  function policyAllowsOp(policy, op, item) {
@@ -243111,7 +243212,7 @@ const debug_1 = __importDefault(__nccwpck_require__(67984));
243111
243212
  const terraform_provisioner_1 = __nccwpck_require__(6777);
243112
243213
  const fs = __importStar(__nccwpck_require__(57147));
243113
243214
  const path = __importStar(__nccwpck_require__(71017));
243114
- const user_feedback_ops_1 = __nccwpck_require__(36322);
243215
+ const user_feedback_ops_1 = __nccwpck_require__(704);
243115
243216
  const policies_1 = __nccwpck_require__(31058);
243116
243217
  const catalog_common_1 = __importDefault(__nccwpck_require__(74100));
243117
243218
  const log = (0, debug_1.default)('firestartr:operator:terraform');
@@ -243505,7 +243606,7 @@ async function* doApply(item, op, handler) {
243505
243606
  log('Item %s has the following dependencies: %O', item.metadata.name, deps);
243506
243607
  const context = buildProvisionerContext(item, deps);
243507
243608
  const applyOutput = await (0, terraform_provisioner_1.runTerraformProvisioner)(context, "apply");
243508
- await (0, user_feedback_ops_1.tryPublishApply)(item, applyOutput);
243609
+ await (0, user_feedback_ops_1.tryPublishApply)(item, applyOutput, "TFWorkspace");
243509
243610
  const terraformOutputJson = await (0, terraform_provisioner_1.runTerraformProvisioner)(context, "output");
243510
243611
  if (!terraformOutputJson) {
243511
243612
  throw new Error(`Terraform output is empty for ${item.kind}/${item.metadata.name}`);
@@ -243538,7 +243639,7 @@ async function* doApply(item, op, handler) {
243538
243639
  }
243539
243640
  catch (e) {
243540
243641
  console.error(e);
243541
- await (0, user_feedback_ops_1.tryPublishApply)(item, e);
243642
+ await (0, user_feedback_ops_1.tryPublishApply)(item, e, "TFWorkspace");
243542
243643
  log("Error applying item %s: %O", item.metadata.name, e);
243543
243644
  yield {
243544
243645
  item,
@@ -243817,7 +243918,7 @@ function getErrorOutputMessage(cr, key, ref) {
243817
243918
 
243818
243919
  /***/ }),
243819
243920
 
243820
- /***/ 36322:
243921
+ /***/ 704:
243821
243922
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
243822
243923
 
243823
243924
  "use strict";
@@ -243830,13 +243931,13 @@ exports.publishError = exports.tryPublishError = exports.publishApply = exports.
243830
243931
  const github_1 = __importDefault(__nccwpck_require__(39759));
243831
243932
  const debug_1 = __importDefault(__nccwpck_require__(67984));
243832
243933
  const log = (0, debug_1.default)('firestartr:operator:terraform');
243833
- async function tryPublishApply(item, planOutput) {
243934
+ async function tryPublishApply(item, planOutput, kind) {
243834
243935
  try {
243835
243936
  if (!("firestartr.dev/last-state-pr" in item.metadata.annotations)) {
243836
243937
  log(`CR ${item.metadata.name} has no last state PR. Skipping terraform apply publish.`);
243837
243938
  return;
243838
243939
  }
243839
- await publishApply(item, planOutput);
243940
+ await publishApply(item, planOutput, kind);
243840
243941
  }
243841
243942
  catch (e) {
243842
243943
  log(`Error publishing apply: ${e}`);
@@ -243881,12 +243982,12 @@ async function tryPublishDestroy(item, destroyOutput) {
243881
243982
  }
243882
243983
  }
243883
243984
  exports.tryPublishDestroy = tryPublishDestroy;
243884
- async function publishApply(item, applyOutput) {
243985
+ async function publishApply(item, applyOutput, kind) {
243885
243986
  const { prNumber, repo, org } = extractPrInfo(item);
243886
243987
  const comment = `<h1>
243887
243988
  <img width="25" src="https://static-00.iconduck.com/assets.00/file-type-terraform-icon-1821x2048-mbxeegff.png"> Terraform apply
243888
243989
  </h1>
243889
- <p><b>TFWorkspace: </b>${item.metadata.name}</p>
243990
+ <p><b>${kind}: </b>${item.metadata.name}</p>
243890
243991
 
243891
243992
  <details id=github>
243892
243993
  <summary>APPLY LOGS</summary>
@@ -244042,11 +244143,10 @@ exports.runCDKTF = void 0;
244042
244143
  const catalog_common_1 = __importDefault(__nccwpck_require__(74100));
244043
244144
  const child_process_1 = __nccwpck_require__(32081);
244044
244145
  const path = __importStar(__nccwpck_require__(71017));
244045
- async function runCDKTF(entity, action, deps) {
244146
+ async function runCDKTF(entityPath, action, depsPath) {
244046
244147
  // ! If we are into a compiled environmet, the folder must be set to current dir plus /provisioner because everything is on the same file at projects root
244047
244148
  // ? Is there a better way to check compiled env than look for packages directory in path ?
244048
244149
  let workDir = __dirname.split(path.sep).includes('packages') ? path.join(__dirname, '..') : path.join(__dirname, 'provisioner');
244049
- const isImport = entity?.metadata?.annotations[catalog_common_1.default.generic.getFirestartrAnnotation("import")];
244050
244150
  workDir = workDir.split("/dist")[0];
244051
244151
  return new Promise((ok, ko) => {
244052
244152
  const cdktfProcess = (0, child_process_1.spawn)("cdktf", [action, "--log-level", "DEBUG", "--auto-approve"], {
@@ -244054,26 +244154,13 @@ async function runCDKTF(entity, action, deps) {
244054
244154
  env: {
244055
244155
  ...process.env,
244056
244156
  PATH: process.env.PATH,
244057
- FIRESTARTR_CDKTF_ENTITY: JSON.stringify(entity),
244058
- FIRESTARTR_CDKTF_DEPS: JSON.stringify(deps),
244059
- CATALOG_MAIN_STATE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.catalogMainSate),
244060
- CATALOG_DESIRED_STATE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.catalogDesiredState),
244061
- CATALOG_DELETIONS_STATE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.catalogDeletionsState),
244062
- CDKTF_CONFIG_FILES: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.cdktfConfigFiles),
244063
- FIRESTARTR_CDKTF_IS_IMPORT: isImport ? "true" : "false",
244064
- EXCLUSIONS_YAML_PATH: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.exclusionsYamlPath),
244065
- FIRESTARTR_CDKTF_ENTITY_KIND: entity.kind,
244157
+ FIRESTARTR_CDKTF_ENTITY_PATH: entityPath,
244158
+ FIRESTARTR_CDKTF_DEPS_PATH: depsPath ? depsPath : "",
244066
244159
  GITHUB_APP_ID: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.githubAppId),
244067
244160
  GITHUB_APP_INSTALLATION_ID: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.githubAppInstallationId),
244068
244161
  GITHUB_APP_INSTALLATION_ID_PREFAPP: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.githubAppInstallationIdPrefapp),
244069
244162
  GITHUB_APP_PEM_FILE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.githubAppPemFile),
244070
- S3_BUCKET: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.s3Bucket),
244071
- S3_REGION: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.s3Region),
244072
- S3_LOCK: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.s3Lock),
244073
- AWS_ACCESS_KEY_ID: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.awsAccesKey),
244074
- AWS_SECRET_ACCESS_KEY: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.awsAccesSecretKey),
244075
244163
  ORG: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.org),
244076
- TOKEN: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.token),
244077
244164
  KUBERNETES_SERVICE_HOST: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.kubernetesServiceHost),
244078
244165
  KUBERNETES_SERVICE_PORT: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.kubernetesServicePort),
244079
244166
  CDKTF_LOG_LEVEL: "OFF",
@@ -244084,7 +244171,10 @@ async function runCDKTF(entity, action, deps) {
244084
244171
  });
244085
244172
  let output = '';
244086
244173
  cdktfProcess.stdout.on("data", (log) => {
244087
- output += catalog_common_1.default.io.stripAnsi(log.toString());
244174
+ const logparsed = log.toString();
244175
+ if (!logparsed.includes("Synthesizing")) {
244176
+ output += catalog_common_1.default.io.stripAnsi(logparsed);
244177
+ }
244088
244178
  });
244089
244179
  cdktfProcess.stderr.on("data", (log) => {
244090
244180
  output += catalog_common_1.default.io.stripAnsi(log.toString());
@@ -244307,12 +244397,37 @@ function dumpArtifactYaml(component) {
244307
244397
 
244308
244398
  "use strict";
244309
244399
 
244400
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
244401
+ if (k2 === undefined) k2 = k;
244402
+ var desc = Object.getOwnPropertyDescriptor(m, k);
244403
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
244404
+ desc = { enumerable: true, get: function() { return m[k]; } };
244405
+ }
244406
+ Object.defineProperty(o, k2, desc);
244407
+ }) : (function(o, m, k, k2) {
244408
+ if (k2 === undefined) k2 = k;
244409
+ o[k2] = m[k];
244410
+ }));
244411
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
244412
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
244413
+ }) : function(o, v) {
244414
+ o["default"] = v;
244415
+ });
244416
+ var __importStar = (this && this.__importStar) || function (mod) {
244417
+ if (mod && mod.__esModule) return mod;
244418
+ var result = {};
244419
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
244420
+ __setModuleDefault(result, mod);
244421
+ return result;
244422
+ };
244310
244423
  var __importDefault = (this && this.__importDefault) || function (mod) {
244311
244424
  return (mod && mod.__esModule) ? mod : { "default": mod };
244312
244425
  };
244313
244426
  Object.defineProperty(exports, "__esModule", ({ value: true }));
244314
244427
  exports.untrackManagedFiles = void 0;
244428
+ const catalog_common_1 = __importDefault(__nccwpck_require__(74100));
244315
244429
  const debug_1 = __importDefault(__nccwpck_require__(67984));
244430
+ const path = __importStar(__nccwpck_require__(71017));
244316
244431
  const cdktf_1 = __nccwpck_require__(48619);
244317
244432
  const terraform_1 = __nccwpck_require__(31926);
244318
244433
  const messageLog = (0, debug_1.default)('firestartr:provisioner:features:uninstaller');
@@ -244321,7 +244436,11 @@ async function untrackManagedFiles(feature, deps) {
244321
244436
  return;
244322
244437
  messageLog(`Removing managed files from the Terraform State`);
244323
244438
  messageLog(`Synthing the project...`);
244324
- await (0, cdktf_1.runCDKTF)(feature, "synth", deps);
244439
+ const randomFilenameFeature = `${catalog_common_1.default.generic.randomString(20)}.yaml`;
244440
+ const randomFilenameDeps = `${catalog_common_1.default.generic.randomString(20)}_deps.yaml`;
244441
+ catalog_common_1.default.io.writeYamlFile(randomFilenameFeature, feature, "/tmp");
244442
+ catalog_common_1.default.io.writeYamlFile(randomFilenameDeps, deps, "/tmp");
244443
+ await (0, cdktf_1.runCDKTF)(path.join("/tmp", randomFilenameFeature), "synth", path.join("/tmp", randomFilenameDeps));
244325
244444
  await (0, terraform_1.runTerraform)(feature, ['init']);
244326
244445
  for (const file of feature.spec.files.filter((file) => file.userManaged === true)) {
244327
244446
  messageLog(`Removing from the state file ${file.path}`);
@@ -244627,14 +244746,42 @@ exports["default"] = {
244627
244746
  /***/ }),
244628
244747
 
244629
244748
  /***/ 44317:
244630
- /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
244749
+ /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
244631
244750
 
244632
244751
  "use strict";
244633
244752
 
244753
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
244754
+ if (k2 === undefined) k2 = k;
244755
+ var desc = Object.getOwnPropertyDescriptor(m, k);
244756
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
244757
+ desc = { enumerable: true, get: function() { return m[k]; } };
244758
+ }
244759
+ Object.defineProperty(o, k2, desc);
244760
+ }) : (function(o, m, k, k2) {
244761
+ if (k2 === undefined) k2 = k;
244762
+ o[k2] = m[k];
244763
+ }));
244764
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
244765
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
244766
+ }) : function(o, v) {
244767
+ o["default"] = v;
244768
+ });
244769
+ var __importStar = (this && this.__importStar) || function (mod) {
244770
+ if (mod && mod.__esModule) return mod;
244771
+ var result = {};
244772
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
244773
+ __setModuleDefault(result, mod);
244774
+ return result;
244775
+ };
244776
+ var __importDefault = (this && this.__importDefault) || function (mod) {
244777
+ return (mod && mod.__esModule) ? mod : { "default": mod };
244778
+ };
244634
244779
  Object.defineProperty(exports, "__esModule", ({ value: true }));
244635
244780
  exports.Resource = void 0;
244636
244781
  const cdktf_1 = __nccwpck_require__(48619);
244637
244782
  const terraform_1 = __nccwpck_require__(31926);
244783
+ const catalog_common_1 = __importDefault(__nccwpck_require__(74100));
244784
+ const path = __importStar(__nccwpck_require__(71017));
244638
244785
  class Resource {
244639
244786
  data = {};
244640
244787
  output = '';
@@ -244654,14 +244801,18 @@ class Resource {
244654
244801
  await this.runTerraform();
244655
244802
  }
244656
244803
  catch (err) {
244657
- throw `error: ${JSON.stringify(err, null, 4)}`;
244804
+ throw err;
244658
244805
  }
244659
244806
  }
244660
244807
  artifact() {
244661
244808
  return this.get('main_artifact');
244662
244809
  }
244663
244810
  async synth() {
244664
- await (0, cdktf_1.runCDKTF)(this.get('main_artifact'), "synth", this.get('deps'));
244811
+ const randomFilenameArtifact = `${catalog_common_1.default.generic.randomString(20)}.yaml`;
244812
+ const randomFilenameDeps = `${catalog_common_1.default.generic.randomString(20)}_deps.yaml`;
244813
+ catalog_common_1.default.io.writeYamlFile(randomFilenameArtifact, this.get('main_artifact'), "/tmp");
244814
+ catalog_common_1.default.io.writeYamlFile(randomFilenameDeps, this.get('deps'), "/tmp");
244815
+ await (0, cdktf_1.runCDKTF)(path.join("/tmp", randomFilenameArtifact), "synth", path.join("/tmp", randomFilenameDeps));
244665
244816
  }
244666
244817
  log(msg) {
244667
244818
  this.logFn(msg);
@@ -244794,21 +244945,9 @@ async function runTerraform(entity, command) {
244794
244945
  cwd: workDir,
244795
244946
  env: {
244796
244947
  PATH: process.env.PATH,
244797
- FIRESTARTR_CDKTF_ENTITY_NAME: entity.metadata.name,
244798
- CATALOG_MAIN_STATE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.catalogMainSate),
244799
- CATALOG_DESIRED_STATE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.catalogDesiredState),
244800
- CATALOG_DELETIONS_STATE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.catalogDeletionsState),
244801
- CDKTF_CONFIG_FILES: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.cdktfConfigFiles),
244802
- EXCLUSIONS_YAML_PATH: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.exclusionsYamlPath),
244803
- FIRESTARTR_CDKTF_ENTITY_KIND: entity.kind,
244804
244948
  GITHUB_APP_ID: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.githubAppId),
244805
244949
  GITHUB_APP_INSTALLATION_ID: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.githubAppInstallationId),
244806
244950
  GITHUB_APP_PEM_FILE: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.githubAppPemFile),
244807
- S3_BUCKET: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.s3Bucket),
244808
- S3_REGION: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.s3Region),
244809
- S3_LOCK: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.s3Lock),
244810
- AWS_ACCESS_KEY_ID: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.awsAccesKey),
244811
- AWS_SECRET_ACCESS_KEY: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.awsAccesSecretKey),
244812
244951
  ORG: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.org),
244813
244952
  TOKEN: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.token),
244814
244953
  KUBERNETES_SERVICE_HOST: catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.kubernetesServiceHost),
@@ -245336,10 +245475,10 @@ class TFProjectManagerRemote {
245336
245475
  this.tfVarsJsonWriter.writeToTerraformProject(path.join(this.projectPath, "terraform.tfvars.json"));
245337
245476
  }
245338
245477
  async __configGit() {
245339
- fs.existsSync("/root/.gitconfig") && fs.rmSync("/root/.gitconfig");
245478
+ fs.existsSync("/home/node/.gitconfig") && fs.rmSync("/home/node/.gitconfig");
245340
245479
  const org = catalog_common_1.default.environment.getFromEnvironment(catalog_common_1.default.types.envVars.org);
245341
245480
  const ghToken = await github_1.default.getGithubAppToken(org);
245342
- fs.writeFileSync("/root/.gitconfig", `[url "https://firestartr:${ghToken}@github.com"]
245481
+ fs.writeFileSync("/home/node/.gitconfig", `[url "https://firestartr:${ghToken}@github.com"]
245343
245482
  insteadOf = https://github.com`);
245344
245483
  }
245345
245484
  async __init() {