From 9e2cb365bb95c7efd3179f6af3993c553152fd9f Mon Sep 17 00:00:00 2001 From: JM Faircloth Date: Mon, 11 Mar 2024 11:34:54 -0500 Subject: [PATCH] add dist --- dist/index.js | 1405 +++++++++++++++++++++------------------------ dist/package.json | 3 + 2 files changed, 642 insertions(+), 766 deletions(-) create mode 100644 dist/package.json diff --git a/dist/index.js b/dist/index.js index 987f436..b0c1957 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,10 +1,9 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ +import { createRequire as __WEBPACK_EXTERNAL_createRequire } from "module"; +/******/ var __webpack_modules__ = ({ -/***/ 7351: +/***/ 5241: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -103,7 +102,6 @@ function escapeProperty(s) { /***/ 2186: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -135,7 +133,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; -const command_1 = __nccwpck_require__(7351); +const command_1 = __nccwpck_require__(5241); const file_command_1 = __nccwpck_require__(717); const utils_1 = __nccwpck_require__(5278); const os = __importStar(__nccwpck_require__(2037)); @@ -446,7 +444,6 @@ Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: funct /***/ 717: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; // For internal use, subject to change. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { @@ -511,7 +508,6 @@ exports.prepareKeyValueMessage = prepareKeyValueMessage; /***/ 8041: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } @@ -595,7 +591,6 @@ exports.OidcClient = OidcClient; /***/ 2981: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -660,7 +655,6 @@ exports.toPlatformPath = toPlatformPath; /***/ 1327: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } @@ -950,7 +944,6 @@ exports.summary = _summary; /***/ 5278: /***/ ((__unused_webpack_module, exports) => { -"use strict"; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ @@ -997,7 +990,6 @@ exports.toCommandProperties = toCommandProperties; /***/ 5526: /***/ (function(__unused_webpack_module, exports) { -"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } @@ -1085,7 +1077,6 @@ exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHand /***/ 6255: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; /* eslint-disable @typescript-eslint/no-explicit-any */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { @@ -1697,7 +1688,6 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ 9835: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.checkBypass = exports.getProxyUrl = void 0; @@ -1765,7 +1755,6 @@ exports.checkBypass = checkBypass; /***/ 7678: /***/ ((module, exports) => { -"use strict"; /// /// @@ -2183,7 +2172,6 @@ module.exports.assert = exports.assert; /***/ 8097: /***/ ((module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const defer_to_connect_1 = __nccwpck_require__(6214); @@ -2308,7 +2296,6 @@ module.exports["default"] = timer; /***/ 2286: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const { V4MAPPED, @@ -2752,7 +2739,6 @@ module.exports["default"] = CacheableLookup; /***/ 4340: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const {PassThrough: PassThroughStream} = __nccwpck_require__(2781); @@ -2812,7 +2798,6 @@ module.exports = options => { /***/ 7040: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const {constants: BufferConstants} = __nccwpck_require__(4300); const pump = __nccwpck_require__(8341); @@ -2880,7 +2865,6 @@ module.exports.MaxBufferError = MaxBufferError; /***/ 8116: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const EventEmitter = __nccwpck_require__(2361); @@ -3139,7 +3123,6 @@ module.exports = CacheableRequest; /***/ 1312: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const PassThrough = (__nccwpck_require__(2781).PassThrough); @@ -3164,7 +3147,6 @@ module.exports = cloneResponse; /***/ 5728: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const { promisify } = __nccwpck_require__(3837) @@ -3217,7 +3199,6 @@ module.exports.parse = JSONB.parse /***/ 4968: /***/ ((module) => { -"use strict"; module.exports = (defaultOptions = {}, options = {}) => { @@ -3243,7 +3224,6 @@ module.exports = (defaultOptions = {}, options = {}) => { /***/ 2391: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const {Transform, PassThrough} = __nccwpck_require__(2781); const zlib = __nccwpck_require__(9796); @@ -3309,7 +3289,6 @@ module.exports = response => { /***/ 3877: /***/ ((module) => { -"use strict"; // We define these manually to ensure they're always copied @@ -3394,7 +3373,6 @@ module.exports = (fromStream, toStream) => { /***/ 6214: /***/ ((module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); function isTLSSocket(socket) { @@ -3543,7 +3521,6 @@ module.exports = eos; /***/ 6457: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const types_1 = __nccwpck_require__(4597); @@ -3581,7 +3558,6 @@ exports["default"] = createRejection; /***/ 6056: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -3765,7 +3741,6 @@ __exportStar(__nccwpck_require__(4597), exports); /***/ 1048: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const is_1 = __nccwpck_require__(7678); @@ -3851,7 +3826,6 @@ exports["default"] = normalizeArguments; /***/ 8220: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const types_1 = __nccwpck_require__(4597); @@ -3884,7 +3858,6 @@ exports["default"] = parseBody; /***/ 4597: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -3934,7 +3907,6 @@ __exportStar(__nccwpck_require__(94), exports); /***/ 3462: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.retryAfterStatusCodes = void 0; @@ -3971,7 +3943,6 @@ exports["default"] = calculateRetryDelay; /***/ 94: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.UnsupportedProtocolError = exports.ReadError = exports.TimeoutError = exports.UploadError = exports.CacheError = exports.HTTPError = exports.MaxRedirectsError = exports.RequestError = exports.setNonEnumerableProperties = exports.knownHookEvents = exports.withoutBody = exports.kIsNormalizedAlready = void 0; @@ -5484,7 +5455,6 @@ exports["default"] = Request; /***/ 4993: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.dnsLookupIpVersionToFamily = exports.isDnsLookupIpVersion = void 0; @@ -5509,7 +5479,6 @@ exports.dnsLookupIpVersionToFamily = (dnsLookupIpVersion) => { /***/ 4564: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const fs_1 = __nccwpck_require__(7147); @@ -5549,7 +5518,6 @@ exports["default"] = async (body, headers) => { /***/ 4500: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); // TODO: Update https://github.com/sindresorhus/get-stream @@ -5573,7 +5541,6 @@ exports["default"] = getBuffer; /***/ 40: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const is_1 = __nccwpck_require__(7678); @@ -5585,7 +5552,6 @@ exports["default"] = (body) => is_1.default.nodeStream(body) && is_1.default.fun /***/ 9298: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isResponseOk = void 0; @@ -5601,7 +5567,6 @@ exports.isResponseOk = (response) => { /***/ 9219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); /* istanbul ignore file: deprecated */ @@ -5662,7 +5627,6 @@ exports["default"] = (origin, options) => { /***/ 3021: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); function default_1(from, to, events) { @@ -5687,7 +5651,6 @@ exports["default"] = default_1; /***/ 2454: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.TimeoutError = void 0; @@ -5816,7 +5779,6 @@ exports["default"] = (request, delays, options) => { /***/ 1593: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); // When attaching listeners, it's very easy to forget about them. @@ -5846,7 +5808,6 @@ exports["default"] = () => { /***/ 8026: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const is_1 = __nccwpck_require__(7678); @@ -5878,7 +5839,6 @@ exports["default"] = (url) => { /***/ 7288: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); class WeakableMap { @@ -5915,7 +5875,6 @@ exports["default"] = WeakableMap; /***/ 4337: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -6163,7 +6122,6 @@ __exportStar(__nccwpck_require__(2613), exports); /***/ 3061: /***/ (function(module, exports, __nccwpck_require__) { -"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -6303,7 +6261,6 @@ __exportStar(__nccwpck_require__(6056), exports); /***/ 2613: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); @@ -6313,7 +6270,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); /***/ 285: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const is_1 = __nccwpck_require__(7678); @@ -6333,7 +6289,6 @@ exports["default"] = deepFreeze; /***/ 397: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const alreadyWarned = new Set(); @@ -6354,7 +6309,6 @@ exports["default"] = (message) => { /***/ 1002: /***/ ((module) => { -"use strict"; // rfc7231 6.1 const statusCodeCacheableByDefault = new Set([ @@ -7036,7 +6990,6 @@ module.exports = class CachePolicy { /***/ 5461: /***/ ((module) => { -"use strict"; class QuickLRU { @@ -7167,7 +7120,6 @@ module.exports = QuickLRU; /***/ 9898: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const EventEmitter = __nccwpck_require__(2361); const tls = __nccwpck_require__(4404); @@ -7845,7 +7797,6 @@ module.exports = { /***/ 7167: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const http = __nccwpck_require__(3685); const https = __nccwpck_require__(5687); @@ -8002,7 +7953,6 @@ module.exports.protocolCache = cache; /***/ 9632: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const http2 = __nccwpck_require__(5158); const {Writable} = __nccwpck_require__(2781); @@ -8455,7 +8405,6 @@ module.exports = ClientRequest; /***/ 2575: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const {Readable} = __nccwpck_require__(2781); @@ -8521,7 +8470,6 @@ module.exports = IncomingMessage; /***/ 4645: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const http2 = __nccwpck_require__(5158); const agent = __nccwpck_require__(9898); @@ -8557,7 +8505,6 @@ module.exports = { /***/ 1982: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const net = __nccwpck_require__(1808); /* istanbul ignore file: https://github.com/nodejs/node/blob/v13.0.1/lib/_http_agent.js */ @@ -8592,7 +8539,6 @@ module.exports = options => { /***/ 7087: /***/ ((module) => { -"use strict"; /* istanbul ignore file: https://github.com/nodejs/node/blob/master/lib/internal/errors.js */ @@ -8645,7 +8591,6 @@ makeError(TypeError, 'ERR_INVALID_CHAR', args => { /***/ 1199: /***/ ((module) => { -"use strict"; module.exports = header => { @@ -8666,7 +8611,6 @@ module.exports = header => { /***/ 1818: /***/ ((module) => { -"use strict"; module.exports = (from, to, events) => { @@ -8681,7 +8625,6 @@ module.exports = (from, to, events) => { /***/ 2686: /***/ ((module) => { -"use strict"; /* istanbul ignore file: https://github.com/nodejs/node/blob/a91293d4d9ab403046ab5eb022332e4e3d249bd3/lib/internal/url.js#L1257 */ @@ -16312,6 +16255,7 @@ module.exports = utils; /***/ 7175: /***/ ((__unused_webpack_module, exports) => { +var __webpack_unused_export__; var navigator = {}; navigator.userAgent = false; @@ -16558,105 +16502,105 @@ function X509(v){var o=ASN1HEX,s=o.getChildIdx,k=o.getV,y=o.dump,j=o.parse,b=o.g var X509CRL=function(e){var a=KJUR,f=a.lang.String.isHex,m=ASN1HEX,k=m.getV,b=m.getTLV,h=m.getVbyList,c=m.getTLVbyList,d=m.getTLVbyListEx,i=m.getIdxbyList,g=m.getIdxbyListEx,l=m.getChildIdx,j=new X509();this.hex=null;this.posSigAlg=null;this.posRevCert=null;this.parsed=null;this._setPos=function(){var o=i(this.hex,0,[0,0]);var n=this.hex.substr(o,2);if(n=="02"){this.posSigAlg=1}else{if(n=="30"){this.posSigAlg=0}else{throw new Error("malformed 1st item of TBSCertList: "+n)}}var s=i(this.hex,0,[0,this.posSigAlg+3]);var r=this.hex.substr(s,2);if(r=="17"||r=="18"){var q,p;q=i(this.hex,0,[0,this.posSigAlg+4]);this.posRevCert=null;if(q!=-1){p=this.hex.substr(q,2);if(p=="30"){this.posRevCert=this.posSigAlg+4}}}else{if(r=="30"){this.posRevCert=this.posSigAlg+3}else{if(r=="a0"){this.posRevCert=null}else{throw new Error("malformed nextUpdate or revCert tag: "+r)}}}};this.getVersion=function(){if(this.posSigAlg==0){return null}return parseInt(h(this.hex,0,[0,0],"02"),16)+1};this.getSignatureAlgorithmField=function(){var n=c(this.hex,0,[0,this.posSigAlg],"30");return j.getAlgorithmIdentifierName(n)};this.getIssuer=function(){return j.getX500Name(this.getIssuerHex())};this.getIssuerHex=function(){return c(this.hex,0,[0,this.posSigAlg+1],"30")};this.getThisUpdate=function(){var n=h(this.hex,0,[0,this.posSigAlg+2]);return result=hextorstr(n)};this.getNextUpdate=function(){var o=i(this.hex,0,[0,this.posSigAlg+3]);var n=this.hex.substr(o,2);if(n!="17"&&n!="18"){return null}return hextorstr(k(this.hex,o))};this.getRevCertArray=function(){if(this.posRevCert==null){return null}var o=[];var n=i(this.hex,0,[0,this.posRevCert]);var p=l(this.hex,n);for(var q=0;q0){var b=":"+n.join(":")+":";if(b.indexOf(":"+k+":")==-1){throw"algorithm '"+k+"' not accepted in the list"}}if(k!="none"&&B===null){throw"key shall be specified to verify."}if(typeof B=="string"&&B.indexOf("-----BEGIN ")!=-1){B=KEYUTIL.getKey(B)}if(z=="RS"||z=="PS"){if(!(B instanceof m)){throw"key shall be a RSAKey obj for RS* and PS* algs"}}if(z=="ES"){if(!(B instanceof p)){throw"key shall be a ECDSA obj for ES* algs"}}if(k=="none"){}var u=null;if(t.jwsalg2sigalg[l.alg]===undefined){throw"unsupported alg name: "+k}else{u=t.jwsalg2sigalg[k]}if(u=="none"){throw"not supported"}else{if(u.substr(0,4)=="Hmac"){var o=null;if(B===undefined){throw"hexadecimal key shall be specified for HMAC"}var j=new s({alg:u,pass:B});j.updateString(c);o=j.doFinal();return A==o}else{if(u.indexOf("withECDSA")!=-1){var h=null;try{h=p.concatSigToASN1Sig(A)}catch(v){return false}var g=new d({alg:u});g.init(B);g.updateString(c);return g.verify(h)}else{var g=new d({alg:u});g.init(B);g.updateString(c);return g.verify(A)}}}};KJUR.jws.JWS.parse=function(g){var c=g.split(".");var b={};var f,e,d;if(c.length!=2&&c.length!=3){throw"malformed sJWS: wrong number of '.' splitted elements"}f=c[0];e=c[1];if(c.length==3){d=c[2]}b.headerObj=KJUR.jws.JWS.readSafeJSONString(b64utoutf8(f));b.payloadObj=KJUR.jws.JWS.readSafeJSONString(b64utoutf8(e));b.headerPP=JSON.stringify(b.headerObj,null," ");if(b.payloadObj==null){b.payloadPP=b64utoutf8(e)}else{b.payloadPP=JSON.stringify(b.payloadObj,null," ")}if(d!==undefined){b.sigHex=b64utohex(d)}return b};KJUR.jws.JWS.verifyJWT=function(e,l,r){var d=KJUR,j=d.jws,o=j.JWS,n=o.readSafeJSONString,p=o.inArray,f=o.includedArray;if(!isBase64URLDot(e)){return false}var k=e.split(".");if(k.length!=3){return false}var c=k[0];var i=k[1];var q=c+"."+i;var m=b64utohex(k[2]);var h=n(b64utoutf8(c));var g=n(b64utoutf8(i));if(h.alg===undefined){return false}if(r.alg===undefined){throw"acceptField.alg shall be specified"}if(!p(h.alg,r.alg)){return false}if(g.iss!==undefined&&typeof r.iss==="object"){if(!p(g.iss,r.iss)){return false}}if(g.sub!==undefined&&typeof r.sub==="object"){if(!p(g.sub,r.sub)){return false}}if(g.aud!==undefined&&typeof r.aud==="object"){if(typeof g.aud=="string"){if(!p(g.aud,r.aud)){return false}}else{if(typeof g.aud=="object"){if(!f(g.aud,r.aud)){return false}}}}var b=j.IntDate.getNow();if(r.verifyAt!==undefined&&typeof r.verifyAt==="number"){b=r.verifyAt}if(r.gracePeriod===undefined||typeof r.gracePeriod!=="number"){r.gracePeriod=0}if(g.exp!==undefined&&typeof g.exp=="number"){if(g.exp+r.gracePeriodl){this.aHeader.pop()}if(this.aSignature.length>l){this.aSignature.pop()}throw"addSignature failed: "+i}};this.verifyAll=function(h){if(this.aHeader.length!==h.length||this.aSignature.length!==h.length){return false}for(var g=0;g0){this.aHeader=g.headers}else{throw"malformed header"}if(typeof g.payload==="string"){this.sPayload=g.payload}else{throw"malformed signatures"}if(g.signatures.length>0){this.aSignature=g.signatures}else{throw"malformed signatures"}}catch(e){throw"malformed JWS-JS JSON object: "+e}}};this.getJSON=function(){return{headers:this.aHeader,payload:this.sPayload,signatures:this.aSignature}};this.isEmpty=function(){if(this.aHeader.length==0){return 1}return 0}}; -exports.SecureRandom = SecureRandom; -exports.rng_seed_time = rng_seed_time; +__webpack_unused_export__ = SecureRandom; +__webpack_unused_export__ = rng_seed_time; -exports.BigInteger = BigInteger; -exports.RSAKey = RSAKey; -exports.ECDSA = KJUR.crypto.ECDSA; -exports.DSA = KJUR.crypto.DSA; -exports.Signature = KJUR.crypto.Signature; -exports.MessageDigest = KJUR.crypto.MessageDigest; -exports.Mac = KJUR.crypto.Mac; +__webpack_unused_export__ = BigInteger; +__webpack_unused_export__ = RSAKey; +__webpack_unused_export__ = KJUR.crypto.ECDSA; +__webpack_unused_export__ = KJUR.crypto.DSA; +__webpack_unused_export__ = KJUR.crypto.Signature; +__webpack_unused_export__ = KJUR.crypto.MessageDigest; +__webpack_unused_export__ = KJUR.crypto.Mac; //exports.Cipher = KJUR.crypto.Cipher; -exports.KEYUTIL = KEYUTIL; -exports.ASN1HEX = ASN1HEX; -exports.X509 = X509; -exports.X509CRL = X509CRL; -exports.CryptoJS = CryptoJS; +exports.KZ = KEYUTIL; +__webpack_unused_export__ = ASN1HEX; +__webpack_unused_export__ = X509; +__webpack_unused_export__ = X509CRL; +__webpack_unused_export__ = CryptoJS; // ext/base64.js -exports.b64tohex = b64tohex; -exports.b64toBA = b64toBA; +__webpack_unused_export__ = b64tohex; +__webpack_unused_export__ = b64toBA; // ext/ec*.js -exports.ECFieldElementFp = ECFieldElementFp; -exports.ECPointFp = ECPointFp; -exports.ECCurveFp = ECCurveFp; +__webpack_unused_export__ = ECFieldElementFp; +__webpack_unused_export__ = ECPointFp; +__webpack_unused_export__ = ECCurveFp; // base64x.js -exports.stoBA = stoBA; -exports.BAtos = BAtos; -exports.BAtohex = BAtohex; -exports.stohex = stohex; -exports.stob64 = stob64; -exports.stob64u = stob64u; -exports.b64utos = b64utos; -exports.b64tob64u = b64tob64u; -exports.b64utob64 = b64utob64; -exports.hex2b64 = hex2b64; -exports.hextob64u = hextob64u; -exports.b64utohex = b64utohex; -exports.utf8tob64u = utf8tob64u; -exports.b64utoutf8 = b64utoutf8; -exports.utf8tob64 = utf8tob64; -exports.b64toutf8 = b64toutf8; -exports.utf8tohex = utf8tohex; -exports.hextoutf8 = hextoutf8; -exports.hextorstr = hextorstr; -exports.rstrtohex = rstrtohex; -exports.hextob64 = hextob64; -exports.hextob64nl = hextob64nl; -exports.b64nltohex = b64nltohex; -exports.hextopem = hextopem; -exports.pemtohex = pemtohex; -exports.hextoArrayBuffer = hextoArrayBuffer; -exports.ArrayBuffertohex = ArrayBuffertohex; -exports.zulutomsec = zulutomsec; -exports.msectozulu = msectozulu; -exports.zulutosec = zulutosec; -exports.zulutodate = zulutodate; -exports.datetozulu = datetozulu; -exports.uricmptohex = uricmptohex; -exports.hextouricmp = hextouricmp; -exports.ipv6tohex = ipv6tohex; -exports.hextoipv6 = hextoipv6; -exports.hextoip = hextoip; -exports.iptohex = iptohex; -exports.ucs2hextoutf8 = ucs2hextoutf8; -exports.encodeURIComponentAll = encodeURIComponentAll; -exports.newline_toUnix = newline_toUnix; -exports.newline_toDos = newline_toDos; -exports.hextoposhex = hextoposhex; -exports.intarystrtohex = intarystrtohex; -exports.strdiffidx = strdiffidx; -exports.oidtohex = oidtohex; -exports.hextooid = hextooid; -exports.strpad = strpad; -exports.bitstrtoint = bitstrtoint; -exports.inttobitstr = inttobitstr; -exports.bitstrtobinstr = bitstrtobinstr; -exports.binstrtobitstr = binstrtobitstr; -exports.isBase64URLDot = isBase64URLDot; -exports.namearraytobinstr = namearraytobinstr; -exports.extendClass = extendClass; -exports.foldnl = foldnl; -exports.b64topem = b64topem; -exports.pemtob64 = pemtob64; -exports.timeogen = timetogen; -exports.aryval = aryval; -exports.inttohex = inttohex; -exports.twoscompl = twoscompl; +__webpack_unused_export__ = stoBA; +__webpack_unused_export__ = BAtos; +__webpack_unused_export__ = BAtohex; +__webpack_unused_export__ = stohex; +__webpack_unused_export__ = stob64; +__webpack_unused_export__ = stob64u; +__webpack_unused_export__ = b64utos; +__webpack_unused_export__ = b64tob64u; +__webpack_unused_export__ = b64utob64; +__webpack_unused_export__ = hex2b64; +__webpack_unused_export__ = hextob64u; +__webpack_unused_export__ = b64utohex; +__webpack_unused_export__ = utf8tob64u; +__webpack_unused_export__ = b64utoutf8; +__webpack_unused_export__ = utf8tob64; +__webpack_unused_export__ = b64toutf8; +__webpack_unused_export__ = utf8tohex; +__webpack_unused_export__ = hextoutf8; +__webpack_unused_export__ = hextorstr; +__webpack_unused_export__ = rstrtohex; +__webpack_unused_export__ = hextob64; +__webpack_unused_export__ = hextob64nl; +__webpack_unused_export__ = b64nltohex; +__webpack_unused_export__ = hextopem; +__webpack_unused_export__ = pemtohex; +__webpack_unused_export__ = hextoArrayBuffer; +__webpack_unused_export__ = ArrayBuffertohex; +__webpack_unused_export__ = zulutomsec; +__webpack_unused_export__ = msectozulu; +__webpack_unused_export__ = zulutosec; +__webpack_unused_export__ = zulutodate; +__webpack_unused_export__ = datetozulu; +__webpack_unused_export__ = uricmptohex; +__webpack_unused_export__ = hextouricmp; +__webpack_unused_export__ = ipv6tohex; +__webpack_unused_export__ = hextoipv6; +__webpack_unused_export__ = hextoip; +__webpack_unused_export__ = iptohex; +__webpack_unused_export__ = ucs2hextoutf8; +__webpack_unused_export__ = encodeURIComponentAll; +__webpack_unused_export__ = newline_toUnix; +__webpack_unused_export__ = newline_toDos; +__webpack_unused_export__ = hextoposhex; +__webpack_unused_export__ = intarystrtohex; +__webpack_unused_export__ = strdiffidx; +__webpack_unused_export__ = oidtohex; +__webpack_unused_export__ = hextooid; +__webpack_unused_export__ = strpad; +__webpack_unused_export__ = bitstrtoint; +__webpack_unused_export__ = inttobitstr; +__webpack_unused_export__ = bitstrtobinstr; +__webpack_unused_export__ = binstrtobitstr; +__webpack_unused_export__ = isBase64URLDot; +__webpack_unused_export__ = namearraytobinstr; +__webpack_unused_export__ = extendClass; +__webpack_unused_export__ = foldnl; +__webpack_unused_export__ = b64topem; +__webpack_unused_export__ = pemtob64; +__webpack_unused_export__ = timetogen; +__webpack_unused_export__ = aryval; +__webpack_unused_export__ = inttohex; +__webpack_unused_export__ = twoscompl; // name spaces -exports.KJUR = KJUR; -exports.crypto = KJUR.crypto; -exports.asn1 = KJUR.asn1; -exports.jws = KJUR.jws; -exports.lang = KJUR.lang; +exports.fs = KJUR; +__webpack_unused_export__ = KJUR.crypto; +__webpack_unused_export__ = KJUR.asn1; +__webpack_unused_export__ = KJUR.jws; +__webpack_unused_export__ = KJUR.lang; -exports.VERSION = VERSION; -exports.VERSION_FULL = VERSION_FULL; +__webpack_unused_export__ = VERSION; +__webpack_unused_export__ = VERSION_FULL; @@ -16667,7 +16611,6 @@ exports.VERSION_FULL = VERSION_FULL; /***/ 1531: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const EventEmitter = __nccwpck_require__(2361); @@ -16947,7 +16890,6 @@ module.exports = Keyv; /***/ 9662: /***/ ((module) => { -"use strict"; module.exports = object => { const result = {}; @@ -16965,7 +16907,6 @@ module.exports = object => { /***/ 2610: /***/ ((module) => { -"use strict"; // We define these manually to ensure they're always copied @@ -17005,7 +16946,6 @@ module.exports = (fromStream, toStream) => { /***/ 7952: /***/ ((module) => { -"use strict"; // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs @@ -17278,7 +17218,6 @@ function onceStrict (fn) { /***/ 9072: /***/ ((module) => { -"use strict"; class CancelError extends Error { @@ -17482,7 +17421,6 @@ module.exports = pump /***/ 6624: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const tls = __nccwpck_require__(4404); @@ -17506,7 +17444,6 @@ module.exports = (options = {}) => new Promise((resolve, reject) => { /***/ 9004: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; const Readable = (__nccwpck_require__(2781).Readable); @@ -17556,7 +17493,6 @@ module.exports = __nccwpck_require__(4219); /***/ 4219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; var net = __nccwpck_require__(1808); @@ -17828,7 +17764,6 @@ exports.debug = debug; // for test /***/ 5840: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -17914,7 +17849,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /***/ 4569: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -17944,7 +17878,6 @@ exports["default"] = _default; /***/ 5332: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -17959,7 +17892,6 @@ exports["default"] = _default; /***/ 2746: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18011,7 +17943,6 @@ exports["default"] = _default; /***/ 814: /***/ ((__unused_webpack_module, exports) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18026,7 +17957,6 @@ exports["default"] = _default; /***/ 807: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18057,7 +17987,6 @@ function rng() { /***/ 5274: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18087,7 +18016,6 @@ exports["default"] = _default; /***/ 8950: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18133,7 +18061,6 @@ exports["default"] = _default; /***/ 8628: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18247,7 +18174,6 @@ exports["default"] = _default; /***/ 6409: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18270,7 +18196,6 @@ exports["default"] = _default; /***/ 5998: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18355,7 +18280,6 @@ function _default(name, version, hashfunc) { /***/ 5122: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18399,7 +18323,6 @@ exports["default"] = _default; /***/ 9120: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18422,7 +18345,6 @@ exports["default"] = _default; /***/ 6900: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18446,7 +18368,6 @@ exports["default"] = _default; /***/ 1595: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; Object.defineProperty(exports, "__esModule", ({ @@ -18511,18 +18432,551 @@ function wrappy (fn, cb) { /***/ }), -/***/ 3348: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 8081: +/***/ ((module) => { +module.exports = eval("require")("@actions/core/lib/command"); + + +/***/ }), + +/***/ 9491: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("assert"); + +/***/ }), + +/***/ 4300: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("buffer"); + +/***/ }), + +/***/ 6113: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("crypto"); + +/***/ }), + +/***/ 9523: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("dns"); + +/***/ }), + +/***/ 2361: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("events"); + +/***/ }), + +/***/ 7147: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs"); + +/***/ }), + +/***/ 3685: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http"); + +/***/ }), + +/***/ 5158: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http2"); + +/***/ }), + +/***/ 5687: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("https"); + +/***/ }), + +/***/ 1808: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("net"); + +/***/ }), + +/***/ 2037: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("os"); + +/***/ }), + +/***/ 1017: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("path"); + +/***/ }), + +/***/ 2781: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream"); + +/***/ }), + +/***/ 4404: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("tls"); + +/***/ }), + +/***/ 7310: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("url"); + +/***/ }), + +/***/ 3837: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("util"); + +/***/ }), + +/***/ 9796: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("zlib"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __nccwpck_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = new URL('.', import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/) ? 1 : 0, -1) + "/"; +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { + +// EXTERNAL MODULE: ./node_modules/@actions/core/lib/core.js +var core = __nccwpck_require__(2186); +// EXTERNAL MODULE: ./node_modules/@vercel/ncc/dist/ncc/@@notfound.js?@actions/core/lib/command +var command = __nccwpck_require__(8081); +// EXTERNAL MODULE: ./node_modules/got/dist/source/index.js +var source = __nccwpck_require__(3061); +// EXTERNAL MODULE: ./node_modules/jsonata/jsonata.js +var jsonata = __nccwpck_require__(4245); +;// CONCATENATED MODULE: ./src/utils.js +/** + * Replaces any dot chars to __ and removes non-ascii charts + * @param {string} dataKey + * @param {boolean=} isEnvVar + */ +function normalizeOutputKey(dataKey, isEnvVar = false) { + let outputKey = dataKey + .replace(".", "__") + .replace(new RegExp("-", "g"), "") + .replace(/[^\p{L}\p{N}_-]/gu, ""); + if (isEnvVar) { + outputKey = outputKey.toUpperCase(); + } + return outputKey; +} + + + +;// CONCATENATED MODULE: ./src/constants.js +const WILDCARD = '*'; + + + +// EXTERNAL MODULE: external "fs" +var external_fs_ = __nccwpck_require__(7147); +// EXTERNAL MODULE: ./node_modules/jsrsasign/lib/jsrsasign.js +var jsrsasign = __nccwpck_require__(7175); +;// CONCATENATED MODULE: ./src/auth.js // @ts-check -const core = __nccwpck_require__(2186); -const command = __nccwpck_require__(7351); -const got = (__nccwpck_require__(3061)["default"]); -const jsonata = __nccwpck_require__(4245); -const { normalizeOutputKey } = __nccwpck_require__(1608); -const { WILDCARD } = __nccwpck_require__(4438); -const { auth: { retrieveToken }, secrets: { getSecrets } } = __nccwpck_require__(4351); + + + + +const defaultKubernetesTokenPath = '/var/run/secrets/kubernetes.io/serviceaccount/token' +/*** + * Authenticate with Vault and retrieve a Vault token that can be used for requests. + * @param {string} method + * @param {import('got').Got} client + */ +async function retrieveToken(method, client) { + let path = core.getInput('path', { required: false }) || method; + path = `v1/auth/${path}/login` + + switch (method) { + case 'approle': { + const vaultRoleId = core.getInput('roleId', { required: true }); + const vaultSecretId = core.getInput('secretId', { required: false }); + return await getClientToken(client, method, path, { role_id: vaultRoleId, secret_id: vaultSecretId }); + } + case 'github': { + const githubToken = core.getInput('githubToken', { required: true }); + return await getClientToken(client, method, path, { token: githubToken }); + } + case 'jwt': { + /** @type {string} */ + let jwt; + const role = core.getInput('role', { required: false }); + const privateKeyRaw = core.getInput('jwtPrivateKey', { required: false }); + const privateKey = Buffer.from(privateKeyRaw, 'base64').toString(); + const keyPassword = core.getInput('jwtKeyPassword', { required: false }); + const tokenTtl = core.getInput('jwtTtl', { required: false }) || '3600'; // 1 hour + const githubAudience = core.getInput('jwtGithubAudience', { required: false }); + + if (!privateKey) { + jwt = await core.getIDToken(githubAudience) + } else { + jwt = generateJwt(privateKey, keyPassword, Number(tokenTtl)); + } + + return await getClientToken(client, method, path, { jwt: jwt, role: role }); + } + case 'kubernetes': { + const role = core.getInput('role', { required: true }) + const tokenPath = core.getInput('kubernetesTokenPath', { required: false }) || defaultKubernetesTokenPath + const data = external_fs_.readFileSync(tokenPath, 'utf8') + if (!(role && data) && data != "") { + throw new Error("Role Name must be set and a kubernetes token must set") + } + return await getClientToken(client, method, path, { jwt: data, role: role }) + } + case 'userpass': + case 'ldap': { + const username = core.getInput('username', { required: true }); + const password = core.getInput('password', { required: true }); + path = path + `/${username}` + return await getClientToken(client, method, path, { password: password }) + } + + default: { + if (!method || method === 'token') { + return core.getInput('token', { required: true }); + } else { + /** @type {string} */ + const payload = core.getInput('authPayload', { required: true }); + if (!payload) { + throw Error('When using a custom authentication method, you must provide the payload'); + } + return await getClientToken(client, method, path, JSON.parse(payload.trim())); + } + } + } +} + +/*** + * Generates signed Json Web Token with specified private key and ttl + * @param {string} privateKey + * @param {string} keyPassword + * @param {number} ttl + */ +function generateJwt(privateKey, keyPassword, ttl) { + const alg = 'RS256'; + const header = { alg: alg, typ: 'JWT' }; + const now = jsrsasign/* KJUR.jws.IntDate.getNow */.fs.jws.IntDate.getNow(); + const payload = { + iss: 'vault-action', + iat: now, + nbf: now, + exp: now + ttl, + event: process.env.GITHUB_EVENT_NAME, + workflow: process.env.GITHUB_WORKFLOW, + sha: process.env.GITHUB_SHA, + actor: process.env.GITHUB_ACTOR, + repository: process.env.GITHUB_REPOSITORY, + ref: process.env.GITHUB_REF + }; + const decryptedKey = jsrsasign/* KEYUTIL.getKey */.KZ.getKey(privateKey, keyPassword); + return jsrsasign/* KJUR.jws.JWS.sign */.fs.jws.JWS.sign(alg, JSON.stringify(header), JSON.stringify(payload), decryptedKey); +} + +/*** + * Call the appropriate login endpoint and parse out the token in the response. + * @param {import('got').Got} client + * @param {string} method + * @param {string} path + * @param {any} payload + */ +async function getClientToken(client, method, path, payload) { + /** @type {'json'} */ + const responseType = 'json'; + var options = { + json: payload, + responseType, + }; + + core.debug(`Retrieving Vault Token from ${path} endpoint`); + + /** @type {import('got').Response} */ + let response; + try { + response = await client.post(`${path}`, options); + } catch (err) { + if (err instanceof source.HTTPError) { + throw Error(`failed to retrieve vault token. code: ${err.code}, message: ${err.message}, vaultResponse: ${JSON.stringify(err.response.body)}`) + } else { + throw err + } + } + if (response && response.body && response.body.auth && response.body.auth.client_token) { + core.debug('✔ Vault Token successfully retrieved'); + + core.startGroup('Token Info'); + core.debug(`Operating under policies: ${JSON.stringify(response.body.auth.policies)}`); + core.debug(`Token Metadata: ${JSON.stringify(response.body.auth.metadata)}`); + core.endGroup(); + + return response.body.auth.client_token; + } else { + throw Error(`Unable to retrieve token from ${method}'s login endpoint.`); + } +} + +/*** + * @typedef {Object} VaultLoginResponse + * @property {{ + * client_token: string; + * accessor: string; + * policies: string[]; + * metadata: unknown; + * lease_duration: number; + * renewable: boolean; + * }} auth + */ + + + +;// CONCATENATED MODULE: ./src/secrets.js + + + + + +/** + * @typedef {Object} SecretRequest + * @property {string} path + * @property {string} selector + */ + +/** + * @template {SecretRequest} TRequest + * @typedef {Object} SecretResponse + * @property {TRequest} request + * @property {string} value + * @property {boolean} cachedResponse + */ + + /** + * @template TRequest + * @param {Array} secretRequests + * @param {import('got').Got} client + * @return {Promise[]>} + */ +async function getSecrets(secretRequests, client, ignoreNotFound) { + const responseCache = new Map(); + let results = []; + + for (const secretRequest of secretRequests) { + let { path, selector } = secretRequest; + + const requestPath = `v1/${path}`; + let body; + let cachedResponse = false; + if (responseCache.has(requestPath)) { + body = responseCache.get(requestPath); + cachedResponse = true; + } else { + try { + const result = await client.get(requestPath); + body = result.body; + responseCache.set(requestPath, body); + } catch (error) { + const {response} = error; + if (response?.statusCode === 404) { + let notFoundMsg = `Unable to retrieve result for "${path}" because it was not found: ${response.body.trim()}`; + const ignoreNotFound = (core.getInput('ignoreNotFound', { required: false }) || 'false').toLowerCase() != 'false'; + if (ignoreNotFound) { + core.error(`✘ ${notFoundMsg}`); + continue; + } else { + throw Error(notFoundMsg) + } + } + throw error + } + } + + body = JSON.parse(body); + + if (selector == WILDCARD) { + let keys = body.data; + if (body.data["data"] != undefined) { + keys = keys.data; + } + + for (let key in keys) { + let newRequest = Object.assign({},secretRequest); + newRequest.selector = key; + + if (secretRequest.selector === secretRequest.outputVarName) { + newRequest.outputVarName = key; + newRequest.envVarName = key; + } + else { + newRequest.outputVarName = secretRequest.outputVarName+key; + newRequest.envVarName = secretRequest.envVarName+key; + } + + newRequest.outputVarName = normalizeOutputKey(newRequest.outputVarName); + newRequest.envVarName = normalizeOutputKey(newRequest.envVarName,true); + + selector = key; + + results = await selectAndAppendResults( + selector, + body, + cachedResponse, + newRequest, + results + ); + } + } + else { + results = await selectAndAppendResults( + selector, + body, + cachedResponse, + secretRequest, + results + ); + } + } + + return results; +} + +/** + * Uses a Jsonata selector retrieve a bit of data from the result + * @param {object} data + * @param {string} selector + */ +async function selectData(data, selector) { + const ata = jsonata(selector); + let result = JSON.stringify(await ata.evaluate(data)); + + // Compat for custom engines + if (!result && ((ata.ast().type === "path" && ata.ast()['steps'].length === 1) || ata.ast().type === "string") && selector !== 'data' && 'data' in data) { + result = JSON.stringify(await jsonata(`data.${selector}`).evaluate(data)); + } else if (!result) { + throw Error(`Unable to retrieve result for ${selector}. No match data was found. Double check your Key or Selector.`); + } + + if (result.startsWith(`"`)) { + result = JSON.parse(result); + } + return result; +} + +/** + * Uses selectData with the selector to get the value and then appends it to the + * results. Returns a new array with all of the results. + * @param {string} selector + * @param {object} body + * @param {object} cachedResponse + * @param {TRequest} secretRequest + * @param {SecretResponse[]} results + * @return {Promise[]>} + */ +const selectAndAppendResults = async ( + selector, + body, + cachedResponse, + secretRequest, + results +) => { + if (!selector.match(/.*[\.].*/)) { + selector = '"' + selector + '"'; + } + selector = "data." + selector; + + if (body.data["data"] != undefined) { + selector = "data." + selector; + } + + const value = await selectData(body, selector); + return [ + ...results, + { + request: secretRequest, + value, + cachedResponse, + }, + ]; +}; + + + +;// CONCATENATED MODULE: ./src/action.js +// @ts-check + + + + + + + + + const AUTH_METHODS = ['approle', 'token', 'github', 'jwt', 'kubernetes', 'ldap', 'userpass']; const ENCODING_TYPES = ['base64', 'hex', 'utf8']; @@ -18552,7 +19006,7 @@ async function exportSecrets() { https: {}, retry: { statusCodes: [ - ...got.defaults.options.retry.statusCodes, + ...source.defaults.options.retry.statusCodes, // Vault returns 412 when the token in use hasn't yet been replicated // to the performance replica queried. See issue #332. 412, @@ -18588,10 +19042,10 @@ async function exportSecrets() { defaultOptions.headers["X-Vault-Namespace"] = vaultNamespace; } - const vaultToken = await retrieveToken(vaultMethod, got.extend(defaultOptions)); + const vaultToken = await retrieveToken(vaultMethod, source.extend(defaultOptions)); core.setSecret(vaultToken) defaultOptions.headers['X-Vault-Token'] = vaultToken; - const client = got.extend(defaultOptions); + const client = source.extend(defaultOptions); if (outputToken === true) { core.setOutput('vault_token', `${vaultToken}`); @@ -18735,589 +19189,11 @@ function parseHeadersInput(inputKey, inputOptions) { }, new Map()); } -module.exports = { - exportSecrets, - parseSecretsInput, - parseHeadersInput, -}; +;// CONCATENATED MODULE: ./src/entry.js -/***/ }), -/***/ 4915: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -// @ts-check -const core = __nccwpck_require__(2186); -const rsasign = __nccwpck_require__(7175); -const fs = __nccwpck_require__(7147); -const { default: got } = __nccwpck_require__(3061); - -const defaultKubernetesTokenPath = '/var/run/secrets/kubernetes.io/serviceaccount/token' -/*** - * Authenticate with Vault and retrieve a Vault token that can be used for requests. - * @param {string} method - * @param {import('got').Got} client - */ -async function retrieveToken(method, client) { - let path = core.getInput('path', { required: false }) || method; - path = `v1/auth/${path}/login` - - switch (method) { - case 'approle': { - const vaultRoleId = core.getInput('roleId', { required: true }); - const vaultSecretId = core.getInput('secretId', { required: true }); - return await getClientToken(client, method, path, { role_id: vaultRoleId, secret_id: vaultSecretId }); - } - case 'github': { - const githubToken = core.getInput('githubToken', { required: true }); - return await getClientToken(client, method, path, { token: githubToken }); - } - case 'jwt': { - /** @type {string} */ - let jwt; - const role = core.getInput('role', { required: false }); - const privateKeyRaw = core.getInput('jwtPrivateKey', { required: false }); - const privateKey = Buffer.from(privateKeyRaw, 'base64').toString(); - const keyPassword = core.getInput('jwtKeyPassword', { required: false }); - const tokenTtl = core.getInput('jwtTtl', { required: false }) || '3600'; // 1 hour - const githubAudience = core.getInput('jwtGithubAudience', { required: false }); - - if (!privateKey) { - jwt = await core.getIDToken(githubAudience) - } else { - jwt = generateJwt(privateKey, keyPassword, Number(tokenTtl)); - } - - return await getClientToken(client, method, path, { jwt: jwt, role: role }); - } - case 'kubernetes': { - const role = core.getInput('role', { required: true }) - const tokenPath = core.getInput('kubernetesTokenPath', { required: false }) || defaultKubernetesTokenPath - const data = fs.readFileSync(tokenPath, 'utf8') - if (!(role && data) && data != "") { - throw new Error("Role Name must be set and a kubernetes token must set") - } - return await getClientToken(client, method, path, { jwt: data, role: role }) - } - case 'userpass': - case 'ldap': { - const username = core.getInput('username', { required: true }); - const password = core.getInput('password', { required: true }); - path = path + `/${username}` - return await getClientToken(client, method, path, { password: password }) - } - - default: { - if (!method || method === 'token') { - return core.getInput('token', { required: true }); - } else { - /** @type {string} */ - const payload = core.getInput('authPayload', { required: true }); - if (!payload) { - throw Error('When using a custom authentication method, you must provide the payload'); - } - return await getClientToken(client, method, path, JSON.parse(payload.trim())); - } - } - } -} - -/*** - * Generates signed Json Web Token with specified private key and ttl - * @param {string} privateKey - * @param {string} keyPassword - * @param {number} ttl - */ -function generateJwt(privateKey, keyPassword, ttl) { - const alg = 'RS256'; - const header = { alg: alg, typ: 'JWT' }; - const now = rsasign.KJUR.jws.IntDate.getNow(); - const payload = { - iss: 'vault-action', - iat: now, - nbf: now, - exp: now + ttl, - event: process.env.GITHUB_EVENT_NAME, - workflow: process.env.GITHUB_WORKFLOW, - sha: process.env.GITHUB_SHA, - actor: process.env.GITHUB_ACTOR, - repository: process.env.GITHUB_REPOSITORY, - ref: process.env.GITHUB_REF - }; - const decryptedKey = rsasign.KEYUTIL.getKey(privateKey, keyPassword); - return rsasign.KJUR.jws.JWS.sign(alg, JSON.stringify(header), JSON.stringify(payload), decryptedKey); -} - -/*** - * Call the appropriate login endpoint and parse out the token in the response. - * @param {import('got').Got} client - * @param {string} method - * @param {string} path - * @param {any} payload - */ -async function getClientToken(client, method, path, payload) { - /** @type {'json'} */ - const responseType = 'json'; - var options = { - json: payload, - responseType, - }; - - core.debug(`Retrieving Vault Token from ${path} endpoint`); - - /** @type {import('got').Response} */ - let response; - try { - response = await client.post(`${path}`, options); - } catch (err) { - if (err instanceof got.HTTPError) { - throw Error(`failed to retrieve vault token. code: ${err.code}, message: ${err.message}, vaultResponse: ${JSON.stringify(err.response.body)}`) - } else { - throw err - } - } - if (response && response.body && response.body.auth && response.body.auth.client_token) { - core.debug('✔ Vault Token successfully retrieved'); - - core.startGroup('Token Info'); - core.debug(`Operating under policies: ${JSON.stringify(response.body.auth.policies)}`); - core.debug(`Token Metadata: ${JSON.stringify(response.body.auth.metadata)}`); - core.endGroup(); - - return response.body.auth.client_token; - } else { - throw Error(`Unable to retrieve token from ${method}'s login endpoint.`); - } -} - -/*** - * @typedef {Object} VaultLoginResponse - * @property {{ - * client_token: string; - * accessor: string; - * policies: string[]; - * metadata: unknown; - * lease_duration: number; - * renewable: boolean; - * }} auth - */ - -module.exports = { - retrieveToken, -}; - - -/***/ }), - -/***/ 4438: -/***/ ((module) => { - -const WILDCARD = '*'; - -module.exports = { - WILDCARD -}; - -/***/ }), - -/***/ 4351: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const auth = __nccwpck_require__(4915); -const secrets = __nccwpck_require__(8452); - -module.exports = { - auth, - secrets -}; - -/***/ }), - -/***/ 8452: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const jsonata = __nccwpck_require__(4245); -const { WILDCARD } = __nccwpck_require__(4438); -const { normalizeOutputKey } = __nccwpck_require__(1608); -const core = __nccwpck_require__(2186); - -/** - * @typedef {Object} SecretRequest - * @property {string} path - * @property {string} selector - */ - -/** - * @template {SecretRequest} TRequest - * @typedef {Object} SecretResponse - * @property {TRequest} request - * @property {string} value - * @property {boolean} cachedResponse - */ - - /** - * @template TRequest - * @param {Array} secretRequests - * @param {import('got').Got} client - * @return {Promise[]>} - */ -async function getSecrets(secretRequests, client, ignoreNotFound) { - const responseCache = new Map(); - let results = []; - - for (const secretRequest of secretRequests) { - let { path, selector } = secretRequest; - - const requestPath = `v1/${path}`; - let body; - let cachedResponse = false; - if (responseCache.has(requestPath)) { - body = responseCache.get(requestPath); - cachedResponse = true; - } else { - try { - const result = await client.get(requestPath); - body = result.body; - responseCache.set(requestPath, body); - } catch (error) { - const {response} = error; - if (response?.statusCode === 404) { - notFoundMsg = `Unable to retrieve result for "${path}" because it was not found: ${response.body.trim()}`; - const ignoreNotFound = (core.getInput('ignoreNotFound', { required: false }) || 'false').toLowerCase() != 'false'; - if (ignoreNotFound) { - core.error(`✘ ${notFoundMsg}`); - continue; - } else { - throw Error(notFoundMsg) - } - } - throw error - } - } - - body = JSON.parse(body); - - if (selector == WILDCARD) { - let keys = body.data; - if (body.data["data"] != undefined) { - keys = keys.data; - } - - for (let key in keys) { - let newRequest = Object.assign({},secretRequest); - newRequest.selector = key; - - if (secretRequest.selector === secretRequest.outputVarName) { - newRequest.outputVarName = key; - newRequest.envVarName = key; - } - else { - newRequest.outputVarName = secretRequest.outputVarName+key; - newRequest.envVarName = secretRequest.envVarName+key; - } - - newRequest.outputVarName = normalizeOutputKey(newRequest.outputVarName); - newRequest.envVarName = normalizeOutputKey(newRequest.envVarName,true); - - selector = key; - - results = await selectAndAppendResults( - selector, - body, - cachedResponse, - newRequest, - results - ); - } - } - else { - results = await selectAndAppendResults( - selector, - body, - cachedResponse, - secretRequest, - results - ); - } - } - - return results; -} - -/** - * Uses a Jsonata selector retrieve a bit of data from the result - * @param {object} data - * @param {string} selector - */ -async function selectData(data, selector) { - const ata = jsonata(selector); - let result = JSON.stringify(await ata.evaluate(data)); - - // Compat for custom engines - if (!result && ((ata.ast().type === "path" && ata.ast()['steps'].length === 1) || ata.ast().type === "string") && selector !== 'data' && 'data' in data) { - result = JSON.stringify(await jsonata(`data.${selector}`).evaluate(data)); - } else if (!result) { - throw Error(`Unable to retrieve result for ${selector}. No match data was found. Double check your Key or Selector.`); - } - - if (result.startsWith(`"`)) { - result = JSON.parse(result); - } - return result; -} - -/** - * Uses selectData with the selector to get the value and then appends it to the - * results. Returns a new array with all of the results. - * @param {string} selector - * @param {object} body - * @param {object} cachedResponse - * @param {TRequest} secretRequest - * @param {SecretResponse[]} results - * @return {Promise[]>} - */ -const selectAndAppendResults = async ( - selector, - body, - cachedResponse, - secretRequest, - results -) => { - if (!selector.match(/.*[\.].*/)) { - selector = '"' + selector + '"'; - } - selector = "data." + selector; - - if (body.data["data"] != undefined) { - selector = "data." + selector; - } - - const value = await selectData(body, selector); - return [ - ...results, - { - request: secretRequest, - value, - cachedResponse, - }, - ]; -}; - -module.exports = { - getSecrets, - selectData -} - - -/***/ }), - -/***/ 1608: -/***/ ((module) => { - -/** - * Replaces any dot chars to __ and removes non-ascii charts - * @param {string} dataKey - * @param {boolean=} isEnvVar - */ -function normalizeOutputKey(dataKey, isEnvVar = false) { - let outputKey = dataKey - .replace(".", "__") - .replace(new RegExp("-", "g"), "") - .replace(/[^\p{L}\p{N}_-]/gu, ""); - if (isEnvVar) { - outputKey = outputKey.toUpperCase(); - } - return outputKey; -} - -module.exports = { - normalizeOutputKey -}; - - -/***/ }), - -/***/ 9491: -/***/ ((module) => { - -"use strict"; -module.exports = require("assert"); - -/***/ }), - -/***/ 4300: -/***/ ((module) => { - -"use strict"; -module.exports = require("buffer"); - -/***/ }), - -/***/ 6113: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto"); - -/***/ }), - -/***/ 9523: -/***/ ((module) => { - -"use strict"; -module.exports = require("dns"); - -/***/ }), - -/***/ 2361: -/***/ ((module) => { - -"use strict"; -module.exports = require("events"); - -/***/ }), - -/***/ 7147: -/***/ ((module) => { - -"use strict"; -module.exports = require("fs"); - -/***/ }), - -/***/ 3685: -/***/ ((module) => { - -"use strict"; -module.exports = require("http"); - -/***/ }), - -/***/ 5158: -/***/ ((module) => { - -"use strict"; -module.exports = require("http2"); - -/***/ }), - -/***/ 5687: -/***/ ((module) => { - -"use strict"; -module.exports = require("https"); - -/***/ }), - -/***/ 1808: -/***/ ((module) => { - -"use strict"; -module.exports = require("net"); - -/***/ }), - -/***/ 2037: -/***/ ((module) => { - -"use strict"; -module.exports = require("os"); - -/***/ }), - -/***/ 1017: -/***/ ((module) => { - -"use strict"; -module.exports = require("path"); - -/***/ }), - -/***/ 2781: -/***/ ((module) => { - -"use strict"; -module.exports = require("stream"); - -/***/ }), - -/***/ 4404: -/***/ ((module) => { - -"use strict"; -module.exports = require("tls"); - -/***/ }), - -/***/ 7310: -/***/ ((module) => { - -"use strict"; -module.exports = require("url"); - -/***/ }), - -/***/ 3837: -/***/ ((module) => { - -"use strict"; -module.exports = require("util"); - -/***/ }), - -/***/ 9796: -/***/ ((module) => { - -"use strict"; -module.exports = require("zlib"); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __nccwpck_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ var threw = true; -/******/ try { -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__); -/******/ threw = false; -/******/ } finally { -/******/ if(threw) delete __webpack_module_cache__[moduleId]; -/******/ } -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat */ -/******/ -/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/"; -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -const core = __nccwpck_require__(2186); -const { exportSecrets } = __nccwpck_require__(3348); (async () => { try { @@ -19330,6 +19206,3 @@ const { exportSecrets } = __nccwpck_require__(3348); })(); -module.exports = __webpack_exports__; -/******/ })() -; \ No newline at end of file diff --git a/dist/package.json b/dist/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/dist/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +}