@agnostack/verifyd 2.1.2-beta.6 → 2.1.2-beta.7
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/CHANGELOG.md +7 -0
- package/dist/lib/verification.js +2 -2
- package/dist/lib/verification.js.map +1 -1
- package/dist/react/hooks/useVerification.js +1 -1
- package/dist/react/hooks/useVerification.js.map +1 -1
- package/dist/shared/display.d.ts.map +1 -1
- package/dist/shared/display.js +1 -3
- package/dist/shared/display.js.map +1 -1
- package/dist/umd/lib/index.js +1 -1
- package/dist/umd/lib/index.js.map +1 -1
- package/dist/umd/lib/shared/display.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [2.1.2-beta.7](https://github.com/agnostack/verifyd/compare/v2.1.2-beta.6...v2.1.2-beta.7) (2024-10-15)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* work in progress ([5864e4b](https://github.com/agnostack/verifyd/commit/5864e4bada3958d62ea48a2522f4e280f7a73650))
|
|
7
|
+
|
|
1
8
|
## [2.1.2-beta.6](https://github.com/agnostack/verifyd/compare/v2.1.2-beta.5...v2.1.2-beta.6) (2024-10-15)
|
|
2
9
|
|
|
3
10
|
|
package/dist/lib/verification.js
CHANGED
|
@@ -40,7 +40,7 @@ const getVerificationHelpers = ({ keyPairs, crypto: _crypto, util: _util, } = {
|
|
|
40
40
|
authSignature &&
|
|
41
41
|
(authProtocol === 'HMAC-SHA256') &&
|
|
42
42
|
(keyPairs === null || keyPairs === void 0 ? void 0 : keyPairs.shared));
|
|
43
|
-
console.warn(`>>> > VERIFYD > YEP > getVerificationHelpers >
|
|
43
|
+
console.warn(`>>> > VERIFYD > YEP > getVerificationHelpers > isVerifiable:`, { isVerifiable, disableRecryption });
|
|
44
44
|
let verificationKeys;
|
|
45
45
|
const rawBody = yield (0, utils_1.ensureRawBody)(req);
|
|
46
46
|
// NOTE: requestBody should be wind up decrypted when isVerifiable (unless disableRecryption, then will pass through)
|
|
@@ -74,7 +74,7 @@ const getVerificationHelpers = ({ keyPairs, crypto: _crypto, util: _util, } = {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
const processResponse = (response) => __awaiter(void 0, void 0, void 0, function* () {
|
|
77
|
-
console.warn(`>>> > VERIFYD > YEP > processResponse >
|
|
77
|
+
console.warn(`>>> > VERIFYD > YEP > processResponse > response:`, { response, isVerifiable, disableRecryption });
|
|
78
78
|
if (disableRecryption || !response || !isVerifiable || !(verificationKeys === null || verificationKeys === void 0 ? void 0 : verificationKeys.derivedSecretKey)) {
|
|
79
79
|
return response;
|
|
80
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/lib/verification.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAK0B;AAC1B,+CAO0B;AAC1B,mDAA+C;AAC/C,mCAA0D;AAGnD,MAAM,wBAAwB,GAAG,CAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,KAA2C,EAAE,EAAE,EAAE;IAC5H,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACjE,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,eAAe,EAAE,CAAA;IAEvD,OAAO,SAAS,CAAC,kBAAkB,CAAC;QAClC,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,UAAU,EAAE,aAAa,CAAC,UAAU;KACrC,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AARY,QAAA,wBAAwB,4BAQpC;AAEM,MAAM,sBAAsB,GAAG,CAAC,EACrC,QAAQ,EACR,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,KAAK,MAKT,EAAE,QAAQ,EAAE,EAAc,EAAE,EAAE,EAAE;IAClC,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAEjE,OAAO,CAAO,GAA0F,EAAE,MAAsB,EAAE,EAAE;;QAClI,MAAM,EACJ,CAAC,2BAAiB,CAAC,EAAE,OAAO,EAC5B,CAAC,2BAAiB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,OAAiB,EAC7D,CAAC,8BAAoB,CAAC,EAAE,mBAAmB,EAC3C,CAAC,8BAAoB,CAAC,WAAW,EAAE,CAAC,EAAE,kBAAkB,GAAG,mBAA6B,EACxF,CAAC,wCAA8B,CAAC,EAAE,oBAAoB,EACtD,CAAC,wCAA8B,CAAC,WAAW,EAAE,CAAC,EAAE,mBAAmB,GAAG,oBAA8B,EACpG,CAAC,qCAA2B,CAAC,EAAE,WAAW,EAC1C,CAAC,qCAA2B,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,GAAG,WAAqB,GAChF,GAAG,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAA;QAErB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;QACzE,MAAM,GAAG,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,GAAG,CAAC,GAAG,CAAA;QAC3B,MAAM,iBAAiB,GAAG,IAAA,gBAAM,EAAC,kBAAkB,CAAC,CAAA;QAEpD,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,IAAI;YACF,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACzE,YAAY,GAAG,IAAA,gBAAM,EACnB,MAAM;gBACN,kBAAkB;gBAClB,mBAAmB;gBACnB,aAAa;gBACb,CAAC,YAAY,KAAK,aAAa,CAAC;iBAChC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,CACjB,CAAA;YACD,OAAO,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/lib/verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ const useVerification = (_a = {}) => {
|
|
|
40
40
|
});
|
|
41
41
|
const processResponse = (encryptedResponse, derivedSecretKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
42
|
const _keysData = yield ensureKeysData();
|
|
43
|
-
console.warn(`>>> > useVerification > disableRecryption:`, { disableRecryption });
|
|
43
|
+
console.warn(`>>> > VERIFYD > YEP > useVerification > disableRecryption:`, { disableRecryption });
|
|
44
44
|
const _processResponse = (0, verification_1.processVerificationResponse)({ disableRecryption, keysData: _keysData });
|
|
45
45
|
return _processResponse(encryptedResponse, derivedSecretKey);
|
|
46
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVerification.js","sourceRoot":"","sources":["../../../src/react/hooks/useVerification.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAgC;AAEhC,4DAIkC;AAE3B,MAAM,eAAe,GAAG,CAAC,KAA8C,EAAE,EAAE,EAAE;QAApD,EAAE,SAAS,EAAE,iBAAiB,OAAkB,EAAb,MAAM,cAAzC,kCAA2C,CAAF;IACvE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,GAAE,CAAA;IAE1C,MAAM,cAAc,GAAG,GAAS,EAAE;QAChC,MAAM,SAAS,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,MAAM,IAAA,sCAAuB,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;QAChF,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE;YAC1B,WAAW,CAAC,SAAS,CAAC,CAAA;SACvB;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA,CAAA;IAED,MAAM,mBAAmB,GAAG,CAAO,WAAW,EAAE,cAAc,EAAE,EAAE;QAChE,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAA;QACxC,MAAM,oBAAoB,GAAG,IAAA,yCAA0B,EAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAEnG,OAAO,oBAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC1D,CAAC,CAAA,CAAA;IAED,MAAM,eAAe,GAAG,CAAO,iBAAiB,EAAE,gBAAgB,EAAE,EAAE;QACpE,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAA;QACxC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"useVerification.js","sourceRoot":"","sources":["../../../src/react/hooks/useVerification.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAgC;AAEhC,4DAIkC;AAE3B,MAAM,eAAe,GAAG,CAAC,KAA8C,EAAE,EAAE,EAAE;QAApD,EAAE,SAAS,EAAE,iBAAiB,OAAkB,EAAb,MAAM,cAAzC,kCAA2C,CAAF;IACvE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,GAAE,CAAA;IAE1C,MAAM,cAAc,GAAG,GAAS,EAAE;QAChC,MAAM,SAAS,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,MAAM,IAAA,sCAAuB,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;QAChF,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE;YAC1B,WAAW,CAAC,SAAS,CAAC,CAAA;SACvB;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA,CAAA;IAED,MAAM,mBAAmB,GAAG,CAAO,WAAW,EAAE,cAAc,EAAE,EAAE;QAChE,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAA;QACxC,MAAM,oBAAoB,GAAG,IAAA,yCAA0B,EAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAEnG,OAAO,oBAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC1D,CAAC,CAAA,CAAA;IAED,MAAM,eAAe,GAAG,CAAO,iBAAiB,EAAE,gBAAgB,EAAE,EAAE;QACpE,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAA;QACxC,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACjG,MAAM,gBAAgB,GAAG,IAAA,0CAA2B,EAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAEhG,OAAO,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;IAC9D,CAAC,CAAA,CAAA;IAED,OAAO;QACL,mBAAmB;QACnB,eAAe;KAChB,CAAA;AACH,CAAC,CAAA;AA/BY,QAAA,eAAe,mBA+B3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAOO;;;;;;;;;;;;EAsCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAaM,+DA6CN;AAEM,0CAON;AAEM,8EAWN;AAEM,
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAOO;;;;;;;;;;;;EAsCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAaM,+DA6CN;AAEM,0CAON;AAEM,8EAWN;AAEM,sDA2BN;AAEM,kDAEN;AAGM,sDAGN;AAEM,uDAGN;AAEM,uDAGN;AAEM,wDAGN;AAEM,mDAIN;AAEM,wDAIN;AAGM,mDAEN;AAEM,uDAEN;AAGM,4DAEN;AAEM;;;WAQN;AAEM,kDAGN;AAEM,uDAEN;AAEM,8EAGN;AAEM,iFAGN;AAEM,qFAEN;AAEM,+CAEN;AAGM,kDAEN;AAEM,qDAEN;AAEM,2CAIN;AAEM,6DAEN;AAOM;;EAKN;AAEM,0FAyBN;AAkBM,6DAGN;AAEM,0DAEN;AAEM,yDAGN;AAEM,sDAEN;AAOM,0EAEN;AAEM,kEAUN;AAEM,6EAEN;AAEM,8EAKN;AAEM,yCAEN;AAEM,0EAEN;AAEM,sEAIN;AAgBM,gEAQN;AAEM,2CAEN;AAEM,sEAEN;AAEM,4CAEN;AAEM,uEAEN;AAEM,+CAEN;AAEM,sEAIN;AAEM,kDAEN;AAEM,6CAEN;AAEM,gDAGN;AAEM,+CASN;AAEM,8DA2EN;AAEM,wDAEN;AAEM,iEAEN;AAGM,yDAEN;AAEM,gEAEN;AAEM,wDAEN;AAEM,yDAEN;AAEM,yDAMN;AAEM,kEAQN;AAEM,yEAON;AAEM,+CAWN;AAEM,kDAUN;AAEM,oEAON;AAEM,6DAKN;AAEM,wDAGN;AAEM,mEAEN;AAEM,+CAEN;AAEM,iDAIN;AAEM,iEAWN;AAGM,wEASN;AAEM,0DAcN;AAEM,+DAEN;AAEM;;;;;EAWN;AAEM;;;;;;;;;;KA6BN;AAKM;;KAGN;AAEM;;EAEN;AAEM,yEAKN;AAEM,+DAEN;AAEM,sEAMN;AAEM,iEAEN"}
|
package/dist/shared/display.js
CHANGED
|
@@ -152,17 +152,15 @@ const safeParse = (value, trim) => {
|
|
|
152
152
|
return value;
|
|
153
153
|
}
|
|
154
154
|
case (0, exports.isParseable)(value, trim, true): {
|
|
155
|
-
console.warn(`>>> > VERIFYD > YEP > isParseable > value:`, { value });
|
|
156
155
|
if (trim) {
|
|
157
156
|
// eslint-disable-next-line no-param-reassign
|
|
158
157
|
value = (0, exports.safeTrim)(value);
|
|
159
|
-
console.warn(`>>> > VERIFYD > YEP > isParseable > value2:`, { value });
|
|
160
158
|
}
|
|
161
159
|
try {
|
|
162
160
|
return JSON.parse(value);
|
|
163
161
|
}
|
|
164
162
|
catch (_ignore) {
|
|
165
|
-
console.
|
|
163
|
+
console.info('Ignoring error parsing', _ignore);
|
|
166
164
|
// TODO: should this be value ?? {}
|
|
167
165
|
return value;
|
|
168
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"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"}
|
package/dist/umd/lib/index.js
CHANGED
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
* SOFTWARE.
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@agnostack/verifyd/external"]={})}(this,(function(e){"use strict";const t=Symbol.for("react.element"),r=e=>null!=e&&Array.isArray(e),i=e=>null!=e&&e instanceof Set,n=(e,t)=>null!=e&&typeof e===t,a=e=>n(e,"object")&&e?.$$typeof===t,o=e=>n(e,"object")&&Object.getPrototypeOf(e)!==Object.prototype&&!a(e),s=(e,t)=>{switch(!0){case"boolean"===t:return n(e,t)||["true","false"].includes(e);case"string"===t:return n(e,t)||e instanceof String;case"set"===t:return i(e);case"react"===t:return a(e);case"class"===t:return o(e);case"array"===t:return r(e)&&!i(e);case"object"===t:return n(e,t)&&!r(e)&&!o(e)&&!a(e);default:return n(e,t)}},c=e=>(s(e,"string")&&(e=e.trim()),e),y=(e,t)=>{switch(!0){case s(e,"object"):case s(e,"array"):return e;case((e,t,r)=>!!s(e,"string")&&(t&&(e=c(e)),w(e.startsWith("{")||e.startsWith("[")||r&&e.startsWith('"'))))(e,t,!0):console.warn(">>> > VERIFYD > YEP > isParseable > value:",{value:e}),t&&(e=c(e),console.warn(">>> > VERIFYD > YEP > isParseable > value2:",{value:e}));try{return JSON.parse(e)}catch(t){return console.warn(">>> > VERIFYD > YEP > isParseable > _ignore:",t),e}default:return e}},u=e=>e?`${e}`:"",l=(e=[])=>e?Array.isArray(e)?e:[e]:[],d=e=>{const t=u(e);return t.length>0&&!["null","undefined"].includes(t)},p=e=>!d(e),h=([e],[t])=>((e,t)=>p(e)?1:p(t)?-1:u(e).localeCompare(t))(e,t),f=(e,t="")=>Object.entries((e=>e??{})(e)).sort(h).map((([e,t])=>`${e}=${t}`)).join(t),g=e=>`/${(e=>u(e).replace(/^\//,""))(e)}`,w=(e,t)=>{const r=u(e);return![...l(t),"","false"].includes(r)};var b,m=((b=function(){return m}).toString=b.toLocaleString=b[Symbol.toPrimitive]=function(){return""},b.valueOf=function(){return!1},new Proxy(Object.freeze(b),{get:function(e,t){return e.hasOwnProperty(t)?e[t]:m}}));let v=global.window,K=e=>!function(e){return e===m}(e),A=void 0!==v?v:m;class E{constructor({crypto:e,util:t}={}){this._crypto=e??{},this._util=t??{}}get subtle(){return this._crypto?.subtle}async getWebCrypto(){if(!this._crypto?.subtle)try{this._crypto=(await import("isomorphic-webcrypto")).default}catch(e){try{this._crypto=(await import("crypto")).default}catch(e){throw console.error("Failed to import node crypto, ensure 'isomorphic-webcrypto' (or node 'crypto') is installed and/or pass in implementation via 'new WebCrypto({ crypto })'"),e}}if(!this._crypto?.subtle)throw new Error("Invalid crypto, missing subtle");return this._crypto}async getTextDecoder(){if(this._util?.TextDecoder)return this._util.TextDecoder;if(K(A)&&"function"==typeof A?.TextDecoder)return A.TextDecoder;try{const e=(await import("util")).TextDecoder;return this._util.TextDecoder=e,e}catch(e){throw console.error("Failed to import 'utils.TextDecoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'"),e}}async getTextEncoder(){if(this._util?.TextEncoder)return this._util.TextEncoder;if(K(A)&&"function"==typeof A?.TextEncoder)return A.TextEncoder;try{const e=(await import("util")).TextEncoder;return this._util.TextEncoder=e,e}catch(e){throw console.error("Failed to import 'utils.TextEncoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'"),e}}timingSafeEqual(e,t){if(null==e||null==t||e.length!==t.length)return!1;let r=0;for(let i=0;i<e.length;i++)r|=e[i]^t[i];return 0===r}stringToHex(e){return Array.from(u(e),(e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")}hexToString(e){return l(u(e).match(/.{1,2}/g)).map((e=>String.fromCharCode(parseInt(e,16)))).join("")}async arrayBufferToString(e){const t=new Uint8Array(e);return(new(await this.getTextDecoder())).decode(t)}arrayToArrayBuffer(e){return null!=ArrayBuffer.from?ArrayBuffer.from(e):new Uint8Array(e).buffer}ensureArrayBuffer(e){return e instanceof ArrayBuffer?e:this.arrayToArrayBuffer(e)}getKeyOperations(e){switch(e){case"paired":case"private":case"privateKey":return["deriveKey"];case"secret":case"secretKey":case"sharedSecret":return["encrypt","decrypt"];default:return[]}}getKeyAlgorythm(e){switch(e){case"derivedKey":case"derived":case"secret":case"secretKey":case"sharedSecret":return{name:"AES-GCM"};default:return{name:"ECDH",namedCurve:"P-256"}}}async generateKeyPair(){const e=await this.getWebCrypto();return await e.subtle.generateKey(this.getKeyAlgorythm("paired"),!0,this.getKeyOperations("paired"))}async generateSharedSecret(){const e=await this.getWebCrypto();return await e.subtle.generateKey(this.getKeyAlgorythm("sharedSecret"),!0,this.getKeyOperations("sharedSecret"))}async generateHMAC(e,t){if(!e||!t)return;const r=await this.getWebCrypto(),i=await this.getTextEncoder(),n=await r.subtle.sign("HMAC",t,(new i).encode(e));return this.stringToHex(this.arrayBufferToString(n))}async verifyHMAC(e,t,r){const i=await this.generateHMAC(e,t);return this.timingSafeEqual(i,r)}async getStorableKey(e){const t=await this.getWebCrypto(),r=await t.subtle.exportKey("jwk",e);return this.stringToHex(JSON.stringify(r))}async restoreStorableKey(e,t){if(!t)return;const r=await this.getWebCrypto(),i=JSON.parse(this.hexToString(t)||"{}");var n;return(n=i)&&Object.keys(n).length?r.subtle.importKey("jwk",i,this.getKeyAlgorythm(e),!0,this.getKeyOperations(e)):void 0}async getStorableKeyPair(e){const t={};for(const[r,i]of Object.entries(e))t[r]=await this.getStorableKey(i);return t}async restoreStorableKeyPair(e){const t={};for(const[r,i]of Object.entries(e))t[r]=await this.restoreStorableKey(r,i);return t}async deriveSharedKey({publicKey:e,privateKey:t}){if(!e||!t)return;const r=await this.getWebCrypto();return await r.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}async deriveHMACKey({publicKey:e,privateKey:t}){if(!e||!t)return;const r=await this.getWebCrypto();return await r.subtle.deriveKey({name:"ECDH",public:e},t,{name:"HMAC",hash:{name:"SHA-256"},length:256},!0,["sign","verify"])}async getVerificationKeys({publicKey:e,privateKey:t}){if(!e||!t)return{};const r=await this.restoreStorableKeyPair({publicKey:e,privateKey:t}),i=await this.deriveHMACKey(r);return{derivedSecretKey:await this.deriveSharedKey(r),derivedHMACKey:i}}async encryptMessage(e,t){if(!e||!t)return;const r=await this.getWebCrypto(),i=r.getRandomValues(new Uint8Array(12)),n=(new(await this.getTextEncoder())).encode(e),a=await r.subtle.encrypt({name:"AES-GCM",iv:i},t,n),o=new Uint8Array([...i,...new Uint8Array(a)]);return Array.from(o)}async decryptMessage(e,t){if(!e||!t)return;const r=await this.getWebCrypto(),i=this.ensureArrayBuffer(e),n=i.slice(0,12),a=i.slice(12),o=await r.subtle.decrypt({name:"AES-GCM",iv:n},t,a);return(new(await this.getTextDecoder())).decode(o)}}const S="xyz.com",C=["shop","host"],T="Content-Type",P="X-Public-Key",O="X-Ephemeral-Key",R="X-Authorization",H="X-Authorization-Timestamp",M={APPLICATION_JSON:"application/json"},x=(e,t)=>u(t??(e?"POST":"GET")).toUpperCase(),_=({method:e,body:t,headers:r,...i}={})=>{const n=x(t,e),a=r?.[T.toLowerCase()],o={[T]:a||M.APPLICATION_JSON,...r};let s=t;return s&&o[T].startsWith(M.APPLICATION_JSON)&&(s=JSON.stringify(y(s))),{method:n,headers:o,...s&&"GET"!==n&&{body:s},...i}},D=e=>{const t=(e=>{if(p(e))return;return/^(https?:\/\/).+/i.test(e)?new URL(e):new URL(`https://${S}${g(e)}`)})(e);if(t)return C.forEach((e=>t.searchParams.delete(e))),{...t.hostname!==S&&{origin:t.origin},pathname:t.pathname,search:t.search}};class I extends Error{constructor(e,t){super(e);const{code:r=500,...i}=t??{};this.code=r,this.data=i,this.name="VerificationError",Object.setPrototypeOf(this,I.prototype)}}const V=async e=>{if(e?.rawBody)return e.rawBody;try{const t=(await import("raw-body")).default;if(!e.method||"get"===((e,t="")=>d(e)?u(e).toLowerCase():t)(e.method))return;return t(e).then((e=>e?.toString()))}catch(e){throw console.error("Failed to import 'raw-body', please ensure the dependency is installed"),e}},j=async e=>V(e).catch((t=>{throw console.error(`Error getting raw body for '${e?.url}'`,t),t}));function N(e,t,r,i){return new(r||(r=Promise))((function(n,a){function o(e){try{c(i.next(e))}catch(e){a(e)}}function s(e){try{c(i.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}c((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;e.CONTENT_TYPES=M,e.HEADER_AUTHORIZATION_CUSTOM=R,e.HEADER_AUTHORIZATION_TIMESTAMP=H,e.HEADER_CONTENT_TYPE=T,e.HEADER_EPHEMERAL_KEY=O,e.HEADER_PUBLIC_KEY=P,e.VerificationError=I,e.WebCrypto=E,e.ensureRawBody=j,e.generateStorableKeyPairs=({crypto:e,util:t}={})=>N(void 0,void 0,void 0,(function*(){const r=new E({crypto:e,util:t}),i=yield r.generateKeyPair();return r.getStorableKeyPair({publicKey:i.publicKey,privateKey:i.privateKey})})),e.getAuthorizationHelpers=async(e,{crypto:t,util:r}={})=>{if(p(e))return;const i=new E({crypto:t,util:r}),n=await i.restoreStorableKey("sharedSecret",e);return{encrypt:async e=>i.encryptMessage(e,n),decrypt:async e=>i.decryptMessage(e,n)}},e.getRequestMethod=x,e.getVerificationHelpers=({keyPairs:e,crypto:t,util:r}={keyPairs:{}})=>{const i=new E({crypto:t,util:r});return(t,r)=>N(void 0,void 0,void 0,(function*(){var n;const{[P]:a,[P.toLowerCase()]:o=a,[O]:s,[O.toLowerCase()]:c=s,[H]:l,[H.toLowerCase()]:d=l,[R]:p,[R.toLowerCase()]:h=p}=null!==(n=t.headers)&&void 0!==n?n:{},{uri:g,disableRecryption:b}=null!=r?r:{},m=null!=g?g:t.url,v=w(b);let K=!1;try{const[r,n]=u(h).split(" ");let a;K=w(o&&c&&d&&n&&"HMAC-SHA256"===r&&(null==e?void 0:e.shared)),console.warn(">>> > VERIFYD > YEP > getVerificationHelpers > isVerifiable2:",{isVerifiable:K,disableRecryption:v});const s=yield j(t);let l=y(s);if(K){if(!(o&&c&&d&&n&&"HMAC-SHA256"===r&&(null==e?void 0:e.shared)&&o===e.shared.publicKey))throw new I("Invalid or missing authorization",{code:401});if(a=yield i.getVerificationKeys({publicKey:c,privateKey:e.shared.privateKey}),!a)throw new I("Invalid or missing verification",{code:412});const u=f(Object.assign({method:x(s,t.method),timestamp:d,body:l},D(m)));if(!(yield i.verifyHMAC(u,a.derivedHMACKey,n)))throw new I("Invalid or missing verification",{code:403});if(!v&&l){const e=yield i.decryptMessage(l,a.derivedSecretKey);l=y(e)}}return{rawBody:s,requestBody:l,processResponse:e=>N(void 0,void 0,void 0,(function*(){return console.warn(">>> > VERIFYD > YEP > processResponse > response2:",{response:e,isVerifiable:K,disableRecryption:v}),!v&&e&&K&&(null==a?void 0:a.derivedSecretKey)?i.encryptMessage(JSON.stringify(e),a.derivedSecretKey):e}))}}catch(e){throw console.error(`Error handling request verification for '${m}'`,{error:e,isVerifiable:K,disableRecryption:v}),e}}))},e.getVerificationKeysData=async(e,{crypto:t,util:r}={})=>{if(p(e))return{};const i=new E({crypto:t,util:r}),n=await i.getStorableKeyPair(await i.generateKeyPair());return{publicKey:e,ephemeral:n,verification:await i.getVerificationKeys({publicKey:e,privateKey:n.privateKey})}},e.normalizeURIParts=D,e.prepareRequestOptions=_,e.prepareVerificationRequest=({keysData:e,disableRecryption:t,crypto:r,util:i}={})=>{const n=new E({crypto:r,util:i}),a=w(t);return async(t,{method:r,body:i,headers:o,...s}={})=>{let c=y(i);const u=x(c,r);if(a||p(e?.publicKey))return[t,_({method:u,body:c,headers:o,...s})];const{verification:{derivedHMACKey:l,derivedSecretKey:d}={},ephemeral:{publicKey:h}={}}=e??{};if(!l||!h)return;c&&d&&(c=await n.encryptMessage(JSON.stringify(c),d));const g=(()=>{const e=(new Date).getTime();return Math.floor(e/1e3).toString()})(),w=await n.generateHMAC(f({body:c,method:u,timestamp:g,...D(t)}),l);return[t,_({method:u,body:c,headers:{"X-Authorization":`HMAC-SHA256 ${w}`,"X-Authorization-Timestamp":g,"X-Ephemeral-Key":h,"X-Public-Key":e.publicKey,...o},...s}),d]}},e.processVerificationResponse=({keysData:e,disableRecryption:t,crypto:r,util:i}={})=>{const n=new E({crypto:r,util:i}),a=w(t);return async(t,r)=>{const i=r??e.verification?.derivedSecretKey;if(console.warn(">>> > VERIFYD > YEP > processVerificationResponse > disableRecryption:",{disableRecryption:a,encryptedResponse:t}),a||!t||!i)return t;const o=await n.decryptMessage(t,i);return console.warn(">>> > VERIFYD > YEP > processVerificationResponse > decryptedMessage:",{decryptedMessage:o,parsedTrimmed:y(o,!0),parsed:y(o)}),y(o)}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
25
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@agnostack/verifyd/external"]={})}(this,(function(e){"use strict";const t=Symbol.for("react.element"),r=e=>null!=e&&Array.isArray(e),i=e=>null!=e&&e instanceof Set,n=(e,t)=>null!=e&&typeof e===t,o=e=>n(e,"object")&&e?.$$typeof===t,a=e=>n(e,"object")&&Object.getPrototypeOf(e)!==Object.prototype&&!o(e),s=(e,t)=>{switch(!0){case"boolean"===t:return n(e,t)||["true","false"].includes(e);case"string"===t:return n(e,t)||e instanceof String;case"set"===t:return i(e);case"react"===t:return o(e);case"class"===t:return a(e);case"array"===t:return r(e)&&!i(e);case"object"===t:return n(e,t)&&!r(e)&&!a(e)&&!o(e);default:return n(e,t)}},c=e=>(s(e,"string")&&(e=e.trim()),e),y=(e,t)=>{switch(!0){case s(e,"object"):case s(e,"array"):return e;case((e,t,r)=>!!s(e,"string")&&(t&&(e=c(e)),w(e.startsWith("{")||e.startsWith("[")||r&&e.startsWith('"'))))(e,t,!0):t&&(e=c(e));try{return JSON.parse(e)}catch(t){return e}default:return e}},u=e=>e?`${e}`:"",l=(e=[])=>e?Array.isArray(e)?e:[e]:[],d=e=>{const t=u(e);return t.length>0&&!["null","undefined"].includes(t)},p=e=>!d(e),h=([e],[t])=>((e,t)=>p(e)?1:p(t)?-1:u(e).localeCompare(t))(e,t),f=(e,t="")=>Object.entries((e=>e??{})(e)).sort(h).map((([e,t])=>`${e}=${t}`)).join(t),g=e=>`/${(e=>u(e).replace(/^\//,""))(e)}`,w=(e,t)=>{const r=u(e);return![...l(t),"","false"].includes(r)};var b,m=((b=function(){return m}).toString=b.toLocaleString=b[Symbol.toPrimitive]=function(){return""},b.valueOf=function(){return!1},new Proxy(Object.freeze(b),{get:function(e,t){return e.hasOwnProperty(t)?e[t]:m}}));let K=global.window,v=e=>!function(e){return e===m}(e),A=void 0!==K?K:m;class S{constructor({crypto:e,util:t}={}){this._crypto=e??{},this._util=t??{}}get subtle(){return this._crypto?.subtle}async getWebCrypto(){if(!this._crypto?.subtle)try{this._crypto=(await import("isomorphic-webcrypto")).default}catch(e){try{this._crypto=(await import("crypto")).default}catch(e){throw console.error("Failed to import node crypto, ensure 'isomorphic-webcrypto' (or node 'crypto') is installed and/or pass in implementation via 'new WebCrypto({ crypto })'"),e}}if(!this._crypto?.subtle)throw new Error("Invalid crypto, missing subtle");return this._crypto}async getTextDecoder(){if(this._util?.TextDecoder)return this._util.TextDecoder;if(v(A)&&"function"==typeof A?.TextDecoder)return A.TextDecoder;try{const e=(await import("util")).TextDecoder;return this._util.TextDecoder=e,e}catch(e){throw console.error("Failed to import 'utils.TextDecoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'"),e}}async getTextEncoder(){if(this._util?.TextEncoder)return this._util.TextEncoder;if(v(A)&&"function"==typeof A?.TextEncoder)return A.TextEncoder;try{const e=(await import("util")).TextEncoder;return this._util.TextEncoder=e,e}catch(e){throw console.error("Failed to import 'utils.TextEncoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'"),e}}timingSafeEqual(e,t){if(null==e||null==t||e.length!==t.length)return!1;let r=0;for(let i=0;i<e.length;i++)r|=e[i]^t[i];return 0===r}stringToHex(e){return Array.from(u(e),(e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")}hexToString(e){return l(u(e).match(/.{1,2}/g)).map((e=>String.fromCharCode(parseInt(e,16)))).join("")}async arrayBufferToString(e){const t=new Uint8Array(e);return(new(await this.getTextDecoder())).decode(t)}arrayToArrayBuffer(e){return null!=ArrayBuffer.from?ArrayBuffer.from(e):new Uint8Array(e).buffer}ensureArrayBuffer(e){return e instanceof ArrayBuffer?e:this.arrayToArrayBuffer(e)}getKeyOperations(e){switch(e){case"paired":case"private":case"privateKey":return["deriveKey"];case"secret":case"secretKey":case"sharedSecret":return["encrypt","decrypt"];default:return[]}}getKeyAlgorythm(e){switch(e){case"derivedKey":case"derived":case"secret":case"secretKey":case"sharedSecret":return{name:"AES-GCM"};default:return{name:"ECDH",namedCurve:"P-256"}}}async generateKeyPair(){const e=await this.getWebCrypto();return await e.subtle.generateKey(this.getKeyAlgorythm("paired"),!0,this.getKeyOperations("paired"))}async generateSharedSecret(){const e=await this.getWebCrypto();return await e.subtle.generateKey(this.getKeyAlgorythm("sharedSecret"),!0,this.getKeyOperations("sharedSecret"))}async generateHMAC(e,t){if(!e||!t)return;const r=await this.getWebCrypto(),i=await this.getTextEncoder(),n=await r.subtle.sign("HMAC",t,(new i).encode(e));return this.stringToHex(this.arrayBufferToString(n))}async verifyHMAC(e,t,r){const i=await this.generateHMAC(e,t);return this.timingSafeEqual(i,r)}async getStorableKey(e){const t=await this.getWebCrypto(),r=await t.subtle.exportKey("jwk",e);return this.stringToHex(JSON.stringify(r))}async restoreStorableKey(e,t){if(!t)return;const r=await this.getWebCrypto(),i=JSON.parse(this.hexToString(t)||"{}");var n;return(n=i)&&Object.keys(n).length?r.subtle.importKey("jwk",i,this.getKeyAlgorythm(e),!0,this.getKeyOperations(e)):void 0}async getStorableKeyPair(e){const t={};for(const[r,i]of Object.entries(e))t[r]=await this.getStorableKey(i);return t}async restoreStorableKeyPair(e){const t={};for(const[r,i]of Object.entries(e))t[r]=await this.restoreStorableKey(r,i);return t}async deriveSharedKey({publicKey:e,privateKey:t}){if(!e||!t)return;const r=await this.getWebCrypto();return await r.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}async deriveHMACKey({publicKey:e,privateKey:t}){if(!e||!t)return;const r=await this.getWebCrypto();return await r.subtle.deriveKey({name:"ECDH",public:e},t,{name:"HMAC",hash:{name:"SHA-256"},length:256},!0,["sign","verify"])}async getVerificationKeys({publicKey:e,privateKey:t}){if(!e||!t)return{};const r=await this.restoreStorableKeyPair({publicKey:e,privateKey:t}),i=await this.deriveHMACKey(r);return{derivedSecretKey:await this.deriveSharedKey(r),derivedHMACKey:i}}async encryptMessage(e,t){if(!e||!t)return;const r=await this.getWebCrypto(),i=r.getRandomValues(new Uint8Array(12)),n=(new(await this.getTextEncoder())).encode(e),o=await r.subtle.encrypt({name:"AES-GCM",iv:i},t,n),a=new Uint8Array([...i,...new Uint8Array(o)]);return Array.from(a)}async decryptMessage(e,t){if(!e||!t)return;const r=await this.getWebCrypto(),i=this.ensureArrayBuffer(e),n=i.slice(0,12),o=i.slice(12),a=await r.subtle.decrypt({name:"AES-GCM",iv:n},t,o);return(new(await this.getTextDecoder())).decode(a)}}const E="xyz.com",C=["shop","host"],T="Content-Type",O="X-Public-Key",P="X-Ephemeral-Key",H="X-Authorization",M="X-Authorization-Timestamp",x={APPLICATION_JSON:"application/json"},R=(e,t)=>u(t??(e?"POST":"GET")).toUpperCase(),_=({method:e,body:t,headers:r,...i}={})=>{const n=R(t,e),o=r?.[T.toLowerCase()],a={[T]:o||x.APPLICATION_JSON,...r};let s=t;return s&&a[T].startsWith(x.APPLICATION_JSON)&&(s=JSON.stringify(y(s))),{method:n,headers:a,...s&&"GET"!==n&&{body:s},...i}},D=e=>{const t=(e=>{if(p(e))return;return/^(https?:\/\/).+/i.test(e)?new URL(e):new URL(`https://${E}${g(e)}`)})(e);if(t)return C.forEach((e=>t.searchParams.delete(e))),{...t.hostname!==E&&{origin:t.origin},pathname:t.pathname,search:t.search}};class I extends Error{constructor(e,t){super(e);const{code:r=500,...i}=t??{};this.code=r,this.data=i,this.name="VerificationError",Object.setPrototypeOf(this,I.prototype)}}const j=async e=>{if(e?.rawBody)return e.rawBody;try{const t=(await import("raw-body")).default;if(!e.method||"get"===((e,t="")=>d(e)?u(e).toLowerCase():t)(e.method))return;return t(e).then((e=>e?.toString()))}catch(e){throw console.error("Failed to import 'raw-body', please ensure the dependency is installed"),e}},V=async e=>j(e).catch((t=>{throw console.error(`Error getting raw body for '${e?.url}'`,t),t}));function N(e,t,r,i){return new(r||(r=Promise))((function(n,o){function a(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;e.CONTENT_TYPES=x,e.HEADER_AUTHORIZATION_CUSTOM=H,e.HEADER_AUTHORIZATION_TIMESTAMP=M,e.HEADER_CONTENT_TYPE=T,e.HEADER_EPHEMERAL_KEY=P,e.HEADER_PUBLIC_KEY=O,e.VerificationError=I,e.WebCrypto=S,e.ensureRawBody=V,e.generateStorableKeyPairs=({crypto:e,util:t}={})=>N(void 0,void 0,void 0,(function*(){const r=new S({crypto:e,util:t}),i=yield r.generateKeyPair();return r.getStorableKeyPair({publicKey:i.publicKey,privateKey:i.privateKey})})),e.getAuthorizationHelpers=async(e,{crypto:t,util:r}={})=>{if(p(e))return;const i=new S({crypto:t,util:r}),n=await i.restoreStorableKey("sharedSecret",e);return{encrypt:async e=>i.encryptMessage(e,n),decrypt:async e=>i.decryptMessage(e,n)}},e.getRequestMethod=R,e.getVerificationHelpers=({keyPairs:e,crypto:t,util:r}={keyPairs:{}})=>{const i=new S({crypto:t,util:r});return(t,r)=>N(void 0,void 0,void 0,(function*(){var n;const{[O]:o,[O.toLowerCase()]:a=o,[P]:s,[P.toLowerCase()]:c=s,[M]:l,[M.toLowerCase()]:d=l,[H]:p,[H.toLowerCase()]:h=p}=null!==(n=t.headers)&&void 0!==n?n:{},{uri:g,disableRecryption:b}=null!=r?r:{},m=null!=g?g:t.url,K=w(b);let v=!1;try{const[r,n]=u(h).split(" ");let o;v=w(a&&c&&d&&n&&"HMAC-SHA256"===r&&(null==e?void 0:e.shared)),console.warn(">>> > VERIFYD > YEP > getVerificationHelpers > isVerifiable:",{isVerifiable:v,disableRecryption:K});const s=yield V(t);let l=y(s);if(v){if(!(a&&c&&d&&n&&"HMAC-SHA256"===r&&(null==e?void 0:e.shared)&&a===e.shared.publicKey))throw new I("Invalid or missing authorization",{code:401});if(o=yield i.getVerificationKeys({publicKey:c,privateKey:e.shared.privateKey}),!o)throw new I("Invalid or missing verification",{code:412});const u=f(Object.assign({method:R(s,t.method),timestamp:d,body:l},D(m)));if(!(yield i.verifyHMAC(u,o.derivedHMACKey,n)))throw new I("Invalid or missing verification",{code:403});if(!K&&l){const e=yield i.decryptMessage(l,o.derivedSecretKey);l=y(e)}}return{rawBody:s,requestBody:l,processResponse:e=>N(void 0,void 0,void 0,(function*(){return console.warn(">>> > VERIFYD > YEP > processResponse > response:",{response:e,isVerifiable:v,disableRecryption:K}),!K&&e&&v&&(null==o?void 0:o.derivedSecretKey)?i.encryptMessage(JSON.stringify(e),o.derivedSecretKey):e}))}}catch(e){throw console.error(`Error handling request verification for '${m}'`,{error:e,isVerifiable:v,disableRecryption:K}),e}}))},e.getVerificationKeysData=async(e,{crypto:t,util:r}={})=>{if(p(e))return{};const i=new S({crypto:t,util:r}),n=await i.getStorableKeyPair(await i.generateKeyPair());return{publicKey:e,ephemeral:n,verification:await i.getVerificationKeys({publicKey:e,privateKey:n.privateKey})}},e.normalizeURIParts=D,e.prepareRequestOptions=_,e.prepareVerificationRequest=({keysData:e,disableRecryption:t,crypto:r,util:i}={})=>{const n=new S({crypto:r,util:i}),o=w(t);return async(t,{method:r,body:i,headers:a,...s}={})=>{let c=y(i);const u=R(c,r);if(o||p(e?.publicKey))return[t,_({method:u,body:c,headers:a,...s})];const{verification:{derivedHMACKey:l,derivedSecretKey:d}={},ephemeral:{publicKey:h}={}}=e??{};if(!l||!h)return;c&&d&&(c=await n.encryptMessage(JSON.stringify(c),d));const g=(()=>{const e=(new Date).getTime();return Math.floor(e/1e3).toString()})(),w=await n.generateHMAC(f({body:c,method:u,timestamp:g,...D(t)}),l);return[t,_({method:u,body:c,headers:{"X-Authorization":`HMAC-SHA256 ${w}`,"X-Authorization-Timestamp":g,"X-Ephemeral-Key":h,"X-Public-Key":e.publicKey,...a},...s}),d]}},e.processVerificationResponse=({keysData:e,disableRecryption:t,crypto:r,util:i}={})=>{const n=new S({crypto:r,util:i}),o=w(t);return async(t,r)=>{const i=r??e.verification?.derivedSecretKey;if(console.warn(">>> > VERIFYD > YEP > processVerificationResponse > disableRecryption:",{disableRecryption:o,encryptedResponse:t}),o||!t||!i)return t;const a=await n.decryptMessage(t,i);return console.warn(">>> > VERIFYD > YEP > processVerificationResponse > decryptedMessage:",{decryptedMessage:a,parsedTrimmed:y(a,!0),parsed:y(a)}),y(a)}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
26
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/shared/display.js","../../../node_modules/browser-monads-ts/dist/browser-monads-ts.es.js","../../../src/shared/WebCrypto.js","../../../src/shared/authorization.js","../../../src/shared/request.js","../../../src/lib/utils/errors.js","../../../src/lib/utils/rawbody.js","../../../node_modules/tslib/tslib.es6.js","../../../src/lib/verification.ts","../../../src/shared/verification.js"],"sourcesContent":["/* eslint-disable no-use-before-define */\n\n// #region lib-core\n// TODO!!!: keep in sync between next-shopify and lib-core (AND lib-utils-js at bottom)\n\nconst REACT_SYMBOL = Symbol.for('react.element')\n\nexport const normalizeShopifyId = (shopifyData) => {\n const isString = isTypeEnhanced(shopifyData, 'string')\n if (isString && !shopifyData.startsWith('gid:')) {\n if (!isNumericOnly(shopifyData)) {\n return {}\n }\n\n return {\n id: `${shopifyData}`,\n }\n }\n\n const { id: _entityId, legacyResourceId } = isString\n ? { id: shopifyData }\n : ensureObject(shopifyData)\n\n if (stringEmpty(_entityId) && stringEmpty(legacyResourceId)) {\n return {}\n }\n\n const entity_id = ensureString(_entityId)\n const { entity_type, parsedId } = entity_id.match(/^gid:\\/\\/shopify\\/(?<entity_type>.*)\\/(?<parsedId>[0-9]+).*$/)?.groups ?? {}\n const id = ensureString(parsedId || legacyResourceId)\n\n const hasId = stringNotEmpty(id)\n const hasEntityId = stringNotEmpty(entity_id)\n const hasEntityType = stringNotEmpty(entity_type)\n\n return {\n ...stringNotEmpty(id) && { id },\n ...hasEntityType && { entity_type },\n ...hasEntityId ? {\n entity_id,\n gid: entity_id,\n } : (hasEntityType && hasId) && {\n gid: `gid://shopify/${entity_type}/${id}`,\n },\n }\n}\n\nexport const random = (max = 100, min = 1) => {\n const floor = Math.min(max, min)\n return Math.floor(Math.random() * (max - floor + 1)) + floor\n}\n\nexport const nextRandom = (max = 100, min = 1) => {\n const maximum = Math.max(max, 0)\n const minimum = Math.max(min, 0)\n\n let randomNumber = maximum\n\n if (maximum > minimum) {\n do {\n randomNumber = random(maximum, minimum)\n } while (randomNumber === nextRandom.last)\n\n nextRandom.last = randomNumber\n }\n\n return randomNumber\n}\n\nexport const arrayRandom = (_values, _max = 1) => {\n const values = ensureArray(_values)\n const valuesLength = values.length\n const maxLength = Math.min(_max, valuesLength)\n\n if (valuesLength <= maxLength) {\n return values\n }\n\n const arrayLength = valuesLength - 1\n const randomValues = []\n do {\n const newVal = values[nextRandom(arrayLength, 0)]\n if (!randomValues.includes(newVal)) {\n randomValues.push(newVal)\n }\n } while (randomValues.length < maxLength)\n\n return randomValues\n}\n\nexport const arrayRandomItem = (_values) => (\n arrayRandom(_values)[0]\n)\n\nexport const isArray = (value) => (\n // eslint-disable-next-line eqeqeq\n (value != undefined) && Array.isArray(value)\n)\n\nexport const isSet = (value) => (\n // eslint-disable-next-line eqeqeq\n (value != undefined) && (value instanceof Set)\n)\n\nexport const isType = (value, type) => (\n // eslint-disable-next-line eqeqeq, valid-typeof\n (value != undefined) && (typeof value === type)\n)\n\nconst isReact = (value) => (\n isType(value, 'object') &&\n (value?.$$typeof === REACT_SYMBOL)\n)\n\nconst isClass = (value) => (\n isType(value, 'object') &&\n (Object.getPrototypeOf(value) !== Object.prototype) &&\n !isReact(value)\n)\n\nexport const isTypeEnhanced = (value, type) => {\n switch (true) {\n case (type === 'boolean'): {\n return isType(value, type) || ['true', 'false'].includes(value)\n }\n\n case (type === 'string'): {\n return (\n isType(value, type) ||\n (value instanceof String)\n )\n }\n\n case (type === 'set'): {\n return isSet(value)\n }\n\n case (type === 'react'): {\n return isReact(value)\n }\n\n case (type === 'class'): {\n return isClass(value)\n }\n\n case (type === 'array'): {\n return (\n isArray(value) &&\n !isSet(value)\n )\n }\n\n case (type === 'object'): {\n return (\n isType(value, type) &&\n !isArray(value) &&\n !isClass(value) &&\n !isReact(value)\n )\n }\n\n default: {\n return isType(value, type)\n }\n }\n}\n\nexport const safeTrim = (value) => {\n if (isTypeEnhanced(value, 'string')) {\n // eslint-disable-next-line no-param-reassign\n value = value.trim()\n }\n\n return value\n}\n\nexport const isParseable = (value, trim, matchQuoted) => {\n if (!isTypeEnhanced(value, 'string')) {\n return false\n }\n\n if (trim) {\n // eslint-disable-next-line no-param-reassign\n value = safeTrim(value)\n }\n\n return isTrue(value.startsWith('{') || value.startsWith('[') || (matchQuoted && value.startsWith('\"')))\n}\n\nexport const safeParse = (value, trim) => {\n switch (true) {\n case isTypeEnhanced(value, 'object'):\n case isTypeEnhanced(value, 'array'): {\n return value\n }\n\n case isParseable(value, trim, true): {\n console.warn(`>>> > VERIFYD > YEP > isParseable > value:`, { value })\n if (trim) {\n // eslint-disable-next-line no-param-reassign\n value = safeTrim(value)\n console.warn(`>>> > VERIFYD > YEP > isParseable > value2:`, { value })\n }\n\n try {\n return JSON.parse(value)\n } catch (_ignore) {\n console.warn(`>>> > VERIFYD > YEP > isParseable > _ignore:`, _ignore)\n // TODO: should this be value ?? {}\n return value\n }\n }\n\n default: {\n // TODO: should this be value ?? {}\n return value\n }\n }\n}\n\nexport const ensureString = (string) => (\n string ? `${string}` : ''\n)\n\n// HMMM: what if 'string' is an object?\nexport const ensureStringOnly = (string) => (\n // eslint-disable-next-line eqeqeq\n (string != undefined) ? `${string}` : ''\n)\n\nexport const ensureStringAscii = (string) => (\n // eslint-disable-next-line no-control-regex\n ensureStringOnly(string).replace(/[^\\x00-\\x7F]/g, '')\n)\n\nexport const ensureStringClean = (string) => (\n // eslint-disable-next-line no-control-regex\n ensureStringOnly(string).replace(/[^a-z0-9_-]/gi, '')\n)\n\nexport const ensureAlphaNumeric = (string) => (\n // eslint-disable-next-line no-control-regex\n ensureStringOnly(string).replace(/[^a-z0-9]/gi, '')\n)\n\nexport const isNumericOnly = (value) => {\n const [matched] = `${value}`.match(/^([0-9]+)$/) ?? []\n // eslint-disable-next-line eqeqeq\n return (matched != undefined)\n}\n\nexport const isNumericNegatable = (value) => {\n const [matched] = `${value}`.match(/^(-?[0-9]+(\\.[0-9]+)?)?$/) ?? []\n // eslint-disable-next-line eqeqeq\n return (matched != undefined)\n}\n\n// TODO: explore places using ensureNumeric to move to isNumericNegatable\nexport const ensureNumeric = (string) => (\n Number(ensureString(string).replace(/[^0-9.]/gi, ''))\n)\n\nexport const ensureNumericOnly = (string) => (\n Number(ensureString(string).replace(/[^0-9]/gi, ''))\n)\n\n// TODO: update regex to handle negative number returns negative. Something like (?!\\d\\.)(-?\\d+(\\.\\d)?)\nexport const ensureNumericNegatable = (string) => (\n Number(ensureString(string).replace(/[^0-9.-]/gi, ''))\n)\n\nexport const ensureNumericConstrained = (value, { min: _min = 0, max: _max = 100 } = {}) => {\n const min = ensureNumericNegatable(_min)\n const max = ensureNumericNegatable(_max)\n\n return Math.max(\n min,\n Math.min(ensureNumeric(value), max)\n )\n}\n\nexport const ensureArray = (array = []) => (\n // eslint-disable-next-line no-nested-ternary\n !array ? [] : Array.isArray(array) ? array : [array]\n)\n\nexport const ensureArraySet = (arrayOrSet) => (\n ensureArray(isSet(arrayOrSet) ? [...arrayOrSet] : arrayOrSet)\n)\n\nexport const arrayEmpty = (array, disableEmptyString = false) => (\n // eslint-disable-next-line eqeqeq\n !array || !array.length || (array.length === 1 && (array[0] == undefined || (disableEmptyString && stringEmpty(array[0]))))\n)\n\nexport const arrayNotEmpty = (array, disableEmptyString = false) => (\n // eslint-disable-next-line eqeqeq\n !arrayEmpty(array) && array[0] != undefined && (!disableEmptyString || stringNotEmpty(array[0]))\n)\n\nexport const findLastMatch = (array, filterCallback = (value) => (value)) => (\n ensureArray(array).filter(filterCallback).slice(-1)[0]\n)\n\nexport const ensureObject = (object) => (\n object ?? {}\n)\n\n// NOTE: this does not ensure !isType(string)\nexport const objectEmpty = (object) => (\n !object || !Object.keys(object).length\n)\n\nexport const objectNotEmpty = (object) => (\n !objectEmpty(object)\n)\n\nexport const nullable = (object) => (\n (!object || (object === 'null') || (object === undefined) || (object === null))\n ? null // TODO: explore undefined here??\n : object\n)\n\nexport const objectContainsAnyValue = (object) => (\n Object.values(ensureObject(object)).some((value) => nullable(value))\n)\n\nconst isUndefined = (value) => (\n // eslint-disable-next-line eqeqeq\n value == undefined\n)\n\nexport const cleanObjectKeys = (object, _removeKeyNames) => {\n const removeKeyNames = ensureArray(_removeKeyNames)\n return Object.fromEntries(\n Object.entries(ensureObject(object)).filter(([key]) => !removeKeyNames.includes(key))\n )\n}\n\nexport const cleanObject = (object, allowEmptyLeafs, isEmptyCallback) => (\n Object.entries(ensureObject(object)).reduce((\n _cleanedObject,\n [key, _value]\n ) => {\n if (!allowEmptyLeafs && (isEmptyCallback?.(_value) ?? isUndefined(_value))) {\n return _cleanedObject // skip key if null or undefined\n }\n\n const value = !Array.isArray(_value)\n ? cleanObjectValue(_value, allowEmptyLeafs, isEmptyCallback)\n : _value.reduce((_data, __value) => ([\n ..._data,\n cleanObjectValue(__value, allowEmptyLeafs, isEmptyCallback)\n ]), [])\n\n if (!allowEmptyLeafs && (isEmptyCallback?.(value) ?? isUndefined(value))) {\n return _cleanedObject // skip key if null or undefined\n }\n\n return {\n ..._cleanedObject,\n [key]: value,\n }\n }, {})\n)\n\nconst cleanObjectValue = (value, allowEmptyLeafs, isEmptyCallback) => {\n switch (true) {\n case isClass(value): {\n return undefined\n }\n\n case isTypeEnhanced(value, 'object'): {\n return cleanObject(value, allowEmptyLeafs, isEmptyCallback)\n }\n\n default: {\n return value\n }\n }\n}\n\nexport const stringNotEmptyOnly = (stringable) => {\n const string = ensureStringOnly(stringable)\n return ((string.length > 0) && !['null', 'undefined'].includes(string))\n}\n\nexport const stringEmptyOnly = (stringable) => (\n !stringNotEmptyOnly(stringable)\n)\n\nexport const stringNotEmpty = (stringable) => {\n const string = ensureString(stringable)\n return ((string.length > 0) && !['null', 'undefined'].includes(string))\n}\n\nexport const stringEmpty = (stringable) => (\n !stringNotEmpty(stringable)\n)\n\nconst splitString = (splitting, index = splitting.length) => {\n const string = ensureString(splitting)\n return [string.slice(0, index), string.slice(index)]\n}\n\nexport const compareNumber = (number1 = 0, number2 = 0) => (\n number1 - number2\n)\n\nexport const compareString = (string1, string2) => {\n if (stringEmpty(string1)) {\n return 1\n }\n\n if (stringEmpty(string2)) {\n return -1\n }\n\n return ensureString(string1).localeCompare(string2)\n}\n\nexport const compareEntryKeys = ([string1], [string2]) => (\n compareString(string1, string2)\n)\n\nexport const objectToSortedString = (object, separator = '') => (\n Object.entries(ensureObject(object))\n .sort(compareEntryKeys)\n .map(([key, value]) => `${key}=${value}`)\n .join(separator)\n)\n\nexport const isHTML = (string) => (\n (string?.startsWith?.('<') || string?.startsWith?.('\\n<')) ?? false\n)\n\nexport const freeze = (logMessage, object, type = 'log') => {\n console[type](logMessage, !object ? object : JSON.parse(JSON.stringify(ensureObject(object))))\n}\n\nexport const replaceSpaces = (string, replacement = '') => (\n !isType(string, 'string')\n ? ''\n : string.replace(/\\s/g, replacement)\n)\n\nconst recase = (string, replacement = '') => (\n !isType(string, 'string')\n ? ''\n : string\n .replace(/[^a-zA-Z0-9]+/g, replacement)\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9])([^0-9])/g, '$1-$2')\n .replace(/([^0-9])([0-9])/g, '$1-$2')\n .replace(/[-_]+/g, replacement)\n .replace(new RegExp(`${replacement}$`), '')\n .toLowerCase()\n)\n\nexport const zencase = (string, replacement = '-') => (\n !isType(string, 'string')\n ? ''\n : replaceSpaces(string, replacement)\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(new RegExp(`${replacement}$`), '')\n .toLowerCase()\n)\n\nexport const dashcase = (string) => (\n recase(string, '-')\n)\n\nexport const undashcase = (string, replacement = ' ') => (\n ensureString(string).replace(/-/g, replacement).trim()\n)\n\nexport const snakecase = (string) => (\n recase(string, '_')\n)\n\nexport const unsnakecase = (string, replacement = ' ') => (\n ensureString(string).replace(/_/g, replacement).trim()\n)\n\nexport const uppercase = (string) => (\n ensureString(string).toUpperCase()\n)\n\nexport const lowercase = (string, defaultValue = '') => (\n !stringNotEmpty(string)\n ? defaultValue\n : ensureString(string).toLowerCase()\n)\n\nexport const isLowercase = (string) => (\n stringNotEmpty(string) && /^[^A-Z]*$/.test(string)\n)\n\nexport const slugify = (string) => (\n lowercase(dashcase(string))\n)\n\nexport const capitalize = (string) => {\n const parts = splitString(string, 1)\n return `${uppercase(parts[0])}${parts[1]}`\n}\n\nexport const camelCase = (string) => (\n stringEmpty(string)\n ? ''\n : unsnakecase(undashcase(string)).replace(/\\w\\S*/g, (word, charIndex) => {\n if (charIndex === 0) {\n return lowercase(word)\n }\n return `${uppercase(word.charAt(0))}${lowercase(word.substr(1))}`\n }).split(' ').join('')\n)\n\nexport const titleCase = (_string, _overrides) => {\n if (stringEmpty(_string)) {\n return ''\n }\n\n const overrides = {\n 'add-ons': 'Add-Ons',\n agnostack: 'agnoStack',\n ai: 'AI',\n 'ai for commerce': 'AI for Commerce',\n \"'ai for commerce'\": \"'AI For Commerce'\",\n b2b: 'B2B',\n b2c: 'B2C',\n cartcollab: 'CartCollab',\n 'cartcollab(sm)': 'CartCollab(SM)',\n chatgpt: 'ChatGPT',\n covid: 'COVID',\n covid19: 'COVID-19',\n 'covid-19': 'COVID-19',\n crm: 'CRM',\n elasticpath: 'Elastic Path',\n ecommerce: 'eCommerce',\n 'e-commerce': 'eCommerce',\n faqs: 'FAQs',\n gpt: 'GPT',\n ipaas: 'iPaaS',\n 'ltv.ai': 'LTV.ai',\n 'smile.io': 'Smile.io',\n 'stamped.io': 'Stamped.io',\n 'judge.me': 'Judge.me',\n 'influence.io': 'Influence.io',\n keepsmallstrong: 'KeepSmallStrong',\n loyaltylion: 'LoyaltyLion',\n 'mach alliance': 'MACH Alliance',\n openai: 'OpenAI',\n paypal: 'PayPal',\n 'postscript.io': 'Postscript.io',\n recharge: 'Recharge',\n 'stay.ai': 'Stay Ai',\n 'stay ai': 'Stay Ai',\n shipengine: 'ShipEngine',\n shipperhq: 'ShipperHQ',\n shipstation: 'ShipStation',\n taxjar: 'TaxJar',\n vs: 'vs',\n 'vs.': 'vs.',\n yotpo: 'YotPo',\n \"zendesk 'ai for commerce'\": \"Zendesk 'AI For Commerce'\",\n ..._overrides,\n }\n\n const string = lowercase(_string)\n\n if (overrides[string]) {\n return overrides[string]\n }\n\n const stringParts = string\n .split(' ')\n .reduce((\n _stringParts,\n _stringPart\n ) => {\n const stringPart = overrides[_stringPart] ?? _stringPart\n .replace(/([A-Z]+)/g, ' $1')\n .replace(/\\s\\s+/g, ' ')\n .replace(/(\\b[a-z](?!\\s)*)/g, (firstChar) => uppercase(firstChar))\n\n return [\n ..._stringParts,\n ...stringNotEmpty(stringPart) ? [stringPart] : []\n ]\n }, [])\n\n return stringParts.join(' ')\n}\n\nexport const removeLeadingSlash = (string) => (\n ensureString(string).replace(/^\\//, '')\n)\n\nexport const removeLeadingTrailingQuotes = (string) => (\n ensureString(string).replace(/^\"|\"$/g, '')\n)\n\n// TODO: not sure if this should remove multipel at end or just one (as it does now)?\nexport const removeTrailingSlash = (string) => (\n ensureString(string).replace(/\\/$/, '')\n)\n\nexport const removeLeadingTrailingSlash = (string) => (\n removeTrailingSlash(removeLeadingSlash(string))\n)\n\nexport const ensureLeadingSlash = (string) => (\n `/${removeLeadingSlash(string)}`\n)\n\nexport const ensureTrailingSlash = (string) => (\n `${removeTrailingSlash(string)}/`\n)\n\nexport const ensureTrailingQuestion = (string) => {\n const isString = isTypeEnhanced(string, 'string')\n if (!isString) {\n return string\n }\n return string.endsWith('?') ? string : `${string}?`\n}\n\nexport const ensureExtension = (string, extension) => {\n if (stringEmpty(extension)) {\n return string\n }\n\n const filePath = string.match(/(.*)\\..+$/)?.[1] ?? string\n\n return `${filePath}.${extension}`\n}\n\nexport const wrappedEncode = (basePath, _wrappingPath) => {\n const wrappingPath = ensureString(_wrappingPath)\n if (stringEmpty(basePath)) {\n return wrappingPath\n }\n\n return `${basePath}${encodeURIComponent(wrappingPath)}`\n}\n\nexport const splitCommas = (value) => (\n ensureString(value)\n .replace(/, /g, ',')\n .split(',')\n .reduce((_values, _value) => {\n const __value = safeTrim(_value)\n return [\n ..._values,\n ...stringNotEmpty(__value) ? [__value] : [] // TODO: explore stringEmptyOnly?\n ]\n }, [])\n)\n\nexport const combineCommas = (values) => (\n [...new Set(\n ensureArray(values).reduce((\n _combined,\n value\n ) => ([\n ..._combined,\n ...splitCommas(value)\n ]), [])\n )]\n)\n\nexport const normalizeArray = (input, separator = ' ') => {\n const inputArray = ensureArray(input)\n\n return inputArray.reduce((normalized, _ignore, index) => ([\n ...normalized,\n inputArray.slice(0, index + 1).join(separator)\n ]), []).reverse()\n}\n\nexport const arrayToObject = (arrayable, key) => (\n ensureArray(arrayable).reduce((_object, item) => ({\n ..._object,\n [item?.[key]]: item,\n }), {})\n)\n\nexport const isTrue = (value, falsy) => {\n const string = ensureString(value)\n return ![...ensureArray(falsy), '', 'false'].includes(string)\n}\n\nexport const isUndefinedOrTrue = (value, falsy) => (\n isUndefined(value) || isTrue(value, falsy)\n)\n\nexport const isBoolean = (value) => (\n [true, false, 'true', 'false'].includes(value)\n)\n\nexport const getBaseDomain = (baseUrl) => (\n baseUrl?.match(/^(?:https?:\\/\\/)?([^/:]+)(?::(\\d+))?/).slice(1, 3)\n .filter(stringNotEmpty)\n .join(':') || undefined\n)\n\nexport const getPublicEnvValue = (publicEnv, key) => {\n let envValue\n // NOTE: intentionally using for/of loop instead of map so we can break to exit quickly soon as matched\n // eslint-disable-next-line no-restricted-syntax\n for (const envKey of [`NEXT_PUBLIC_${key}`, `VITE_PUBLIC_${key}`, `GATSBY_${key}`, `PUBLIC_${key}`]) {\n envValue = publicEnv?.[envKey]\n if (stringNotEmpty(envValue)) {\n break\n }\n }\n return envValue\n}\n\n// TODO: move all uses of parseKeywords to parseKeywordGroups\nexport const parseKeywords = (keywordGroup, previous) => (\n [...new Set(ensureArray(keywordGroup).reduce((_parsedKeywords, keyword) => {\n const keywords = splitCommas(keyword)\n\n return [\n ..._parsedKeywords,\n ...keywords.filter((_keyword) => stringNotEmpty(_keyword))\n ]\n }, ensureArray(previous)))].join(', ')\n)\n\nexport const parseCommaGroups = (commaGroups) => {\n const parsedGroups = ensureArray(commaGroups).reduce((_parsedGroups, commaGroup) => ([\n ..._parsedGroups,\n ...ensureArray(commaGroup).reduce((_parsedCommaKeywords, keyword) => {\n const keywords = splitCommas(keyword)\n\n return [\n ..._parsedCommaKeywords,\n ...keywords.filter((_keyword) => stringNotEmpty(_keyword))\n ]\n }, [])\n ]), [])\n\n return [...new Set(parsedGroups)]\n}\n\nexport const parseKeywordGroups = (keywordGroups) => (\n parseCommaGroups(keywordGroups).join(', ')\n)\n\nexport const parseProjectName = (_name) => {\n const name = ensureString(_name)\n const [, organization, ...parts] = /(@.*)([\\\\]+|\\/)+(.*)/.exec(name) ?? []\n const projectName = organization ? name.replace(organization, '').replace('/', '') : name\n\n return {\n name,\n parts,\n organization,\n projectName,\n }\n}\n\nexport const parseProject = (packageInfo) => {\n const {\n keywords,\n shortName,\n siteHandle,\n siteAuthor,\n name: _name,\n owner: _appOwner,\n appName: _appName,\n siteName: _siteName,\n } = packageInfo ?? {}\n const { name, organization, projectName } = parseProjectName(_name)\n\n const appName = _appName ?? projectName?.slice(projectName?.indexOf('-') + 1)\n const siteName = _siteName ?? projectName?.slice(projectName?.indexOf('-') + 1)\n const companyName = titleCase(organization?.replace('@', ''))\n const appOwner = _appOwner ?? companyName\n\n return [{\n keywords,\n appOwner,\n appName,\n siteName,\n shortName,\n siteHandle,\n siteAuthor,\n companyName,\n projectName,\n }, organization, name]\n}\n\n// #endregion lib-core\n// #region lib-utils-js\n\nexport const querystringToParams = (queryString) => {\n const urlParams = new URLSearchParams(ensureString(queryString))\n return [Object.fromEntries(urlParams), urlParams]\n}\n\nexport const querystringToObject = (queryString) => (\n querystringToParams(queryString)[0]\n)\n\nexport const arrayIncludesAll = (_values, comparison) => {\n const values = ensureArray(_values)\n return ensureArray(comparison).every((value) => (\n stringNotEmpty(value) && values.includes(value)\n ))\n}\n\nexport const arraysMatch = (array1, array2) => (\n arrayIncludesAll(array1, array2) && arrayIncludesAll(array2, array1)\n)\n\nexport const appendQuery = (_basePath, queryString) => {\n const basePath = ensureString(_basePath)\n if (stringEmpty(queryString)) {\n return basePath\n }\n return `${basePath}${basePath.includes('?') ? '&' : '?'}${queryString}`\n}\n\nexport const appendParams = (basePath, params) => (\n appendQuery(basePath, ensureArray(params).join('&'))\n)\n","var n,r=((n=function(){return r}).toString=n.toLocaleString=n[Symbol.toPrimitive]=function(){return \"\"},n.valueOf=function(){return !1},new Proxy(Object.freeze(n),{get:function(n,t){return n.hasOwnProperty(t)?n[t]:r}})),u=function(n){return n===r};\n\nlet win = global.window;\nlet doc = global.document;\nlet nav = global.navigator;\nlet document = typeof doc !== \"undefined\" ? doc : r;\nlet exists = (variable) => !u(variable);\nlet navigator = typeof nav !== \"undefined\" ? nav : r;\nlet window = typeof win !== \"undefined\" ? win : r;\n\nexport { document, exists, navigator, window };\n//# sourceMappingURL=browser-monads-ts.es.js.map\n","import { exists, window } from 'browser-monads-ts'\n\nimport { ensureArray, ensureString, objectEmpty } from './display'\n\nexport class WebCrypto {\n constructor({ crypto: _crypto, util: _util } = {}) {\n this._crypto = _crypto ?? {}\n this._util = _util ?? {}\n }\n\n get subtle() {\n return this._crypto?.subtle\n }\n\n async getWebCrypto() {\n if (!this._crypto?.subtle) {\n try {\n this._crypto = (await import('isomorphic-webcrypto')).default\n } catch (_ignore) {\n console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto')\n try {\n this._crypto = (await import('crypto')).default\n } catch (error) {\n // eslint-disable-next-line max-len\n console.error(`Failed to import node crypto, ensure 'isomorphic-webcrypto' (or node 'crypto') is installed and/or pass in implementation via 'new WebCrypto({ crypto })'`)\n throw error\n }\n }\n }\n\n if (!this._crypto?.subtle) {\n throw new Error('Invalid crypto, missing subtle')\n }\n\n return this._crypto\n }\n\n async getTextDecoder() {\n if (this._util?.TextDecoder) {\n return this._util.TextDecoder\n }\n\n if (exists(window) && typeof window?.TextDecoder === 'function') {\n return window.TextDecoder\n }\n\n try {\n const TextDecoder = (await import('util')).TextDecoder\n this._util.TextDecoder = TextDecoder\n\n return TextDecoder\n } catch (error) {\n console.error(`Failed to import 'utils.TextDecoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'`)\n throw error\n }\n }\n\n async getTextEncoder() {\n if (this._util?.TextEncoder) {\n return this._util.TextEncoder\n }\n\n if (exists(window) && typeof window?.TextEncoder === 'function') {\n return window.TextEncoder\n }\n\n try {\n const TextEncoder = (await import('util')).TextEncoder\n this._util.TextEncoder = TextEncoder\n\n return TextEncoder\n } catch (error) {\n console.error(`Failed to import 'utils.TextEncoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'`)\n throw error\n }\n }\n\n timingSafeEqual(value1, value2) {\n if (\n (value1 == undefined) ||\n (value2 == undefined) ||\n (value1.length !== value2.length)\n ) {\n return false\n }\n\n let result = 0\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < value1.length; i++) {\n // eslint-disable-next-line no-bitwise\n result |= value1[i] ^ value2[i]\n }\n\n return (result === 0)\n }\n\n stringToHex(stringValue) {\n return (\n Array.from(ensureString(stringValue), (char) => (\n char.charCodeAt(0).toString(16).padStart(2, '0')\n )).join('')\n )\n }\n\n hexToString(hexValue) {\n return (\n ensureArray(\n ensureString(hexValue).match(/.{1,2}/g)\n )\n .map((byte) => String.fromCharCode(parseInt(byte, 16)))\n .join('')\n )\n }\n\n async arrayBufferToString(arrayBuffer) {\n const uint8Array = new Uint8Array(arrayBuffer)\n const Decoder = await this.getTextDecoder()\n return new Decoder().decode(uint8Array)\n }\n\n arrayToArrayBuffer(array) {\n return (\n (ArrayBuffer.from != undefined)\n ? ArrayBuffer.from(array)\n : new Uint8Array(array).buffer\n )\n }\n\n ensureArrayBuffer(arrayOrArrayBuffer) {\n return (\n (arrayOrArrayBuffer instanceof ArrayBuffer)\n ? arrayOrArrayBuffer\n : this.arrayToArrayBuffer(arrayOrArrayBuffer)\n )\n }\n\n getKeyOperations(keyType) {\n switch (keyType) {\n case 'paired':\n case 'private':\n case 'privateKey': {\n return ['deriveKey']\n }\n\n case 'secret':\n case 'secretKey':\n case 'sharedSecret': {\n return ['encrypt', 'decrypt']\n }\n\n default: {\n return []\n }\n }\n }\n\n getKeyAlgorythm(keyType) {\n switch (keyType) {\n case 'derivedKey':\n case 'derived':\n case 'secret':\n case 'secretKey':\n case 'sharedSecret': {\n return {\n name: 'AES-GCM',\n }\n }\n\n default: {\n return {\n name: 'ECDH',\n namedCurve: 'P-256',\n }\n }\n }\n }\n\n async generateKeyPair() {\n const crypto = await this.getWebCrypto()\n const keyPair = await crypto.subtle.generateKey(\n this.getKeyAlgorythm('paired'),\n true,\n this.getKeyOperations('paired')\n )\n\n return keyPair\n }\n\n async generateSharedSecret() {\n const crypto = await this.getWebCrypto()\n const keyPair = await crypto.subtle.generateKey(\n this.getKeyAlgorythm('sharedSecret'),\n true,\n this.getKeyOperations('sharedSecret')\n )\n\n return keyPair\n }\n\n async generateHMAC(message, derivedKey) {\n if (!message || !derivedKey) {\n return undefined\n } \n\n const crypto = await this.getWebCrypto()\n const Encoder = await this.getTextEncoder()\n\n const signature = await crypto.subtle.sign(\n 'HMAC',\n derivedKey,\n new Encoder().encode(message)\n )\n\n return this.stringToHex(\n this.arrayBufferToString(signature)\n )\n }\n\n async verifyHMAC(message, derivedKey, verifiableHMAC) {\n const calculatedHMAC = await this.generateHMAC(message, derivedKey)\n\n return this.timingSafeEqual(calculatedHMAC, verifiableHMAC)\n }\n\n async getStorableKey(key) {\n const crypto = await this.getWebCrypto()\n\n const exportedJWK = await crypto.subtle.exportKey('jwk', key)\n return this.stringToHex(JSON.stringify(exportedJWK))\n }\n\n async restoreStorableKey(keyType, storableHex) {\n if (!storableHex) {\n return undefined\n }\n const crypto = await this.getWebCrypto()\n\n const exportedJWK = JSON.parse(this.hexToString(storableHex) || '{}')\n if (objectEmpty(exportedJWK)) {\n return undefined\n }\n\n return crypto.subtle.importKey(\n 'jwk',\n exportedJWK,\n this.getKeyAlgorythm(keyType),\n true,\n this.getKeyOperations(keyType)\n )\n }\n\n async getStorableKeyPair(keyPair) {\n const storableKeys = {}\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [keyType, key] of Object.entries(keyPair)) {\n // eslint-disable-next-line no-await-in-loop\n storableKeys[keyType] = await this.getStorableKey(key)\n }\n\n return storableKeys\n }\n\n async restoreStorableKeyPair(keyPair) {\n const restoredKeys = {}\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [keyType, key] of Object.entries(keyPair)) {\n // eslint-disable-next-line no-await-in-loop\n restoredKeys[keyType] = await this.restoreStorableKey(keyType, key)\n }\n\n return restoredKeys\n }\n\n async deriveSharedKey({ publicKey, privateKey }) {\n if (!publicKey || !privateKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n const derivedKey = await crypto.subtle.deriveKey(\n {\n name: 'ECDH',\n public: publicKey,\n },\n privateKey,\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt']\n )\n return derivedKey\n }\n\n async deriveHMACKey({ publicKey, privateKey }) {\n if (!publicKey || !privateKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n const derivedKey = await crypto.subtle.deriveKey(\n {\n name: 'ECDH',\n public: publicKey,\n },\n privateKey,\n {\n name: 'HMAC',\n hash: { name: 'SHA-256' },\n length: 256, // Adjusted key length, e.g., 128 bits\n },\n true,\n ['sign', 'verify']\n )\n return derivedKey\n }\n\n async getVerificationKeys({ publicKey, privateKey }) {\n if (!publicKey || !privateKey) {\n return {}\n }\n\n const sharedKeyPair = await this.restoreStorableKeyPair({ publicKey, privateKey })\n const derivedHMACKey = await this.deriveHMACKey(sharedKeyPair)\n const derivedSecretKey = await this.deriveSharedKey(sharedKeyPair)\n\n return {\n derivedSecretKey,\n derivedHMACKey,\n }\n }\n\n async encryptMessage(decryptedMessage, derivedKey) {\n if (!decryptedMessage || !derivedKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n const iv = crypto.getRandomValues(new Uint8Array(12))\n const Encoder = await this.getTextEncoder()\n const encodedMessage = new Encoder().encode(decryptedMessage)\n const ciphertext = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n derivedKey,\n encodedMessage\n )\n\n const encryptedMessage = new Uint8Array([\n ...iv,\n ...new Uint8Array(ciphertext)\n ])\n return Array.from(encryptedMessage)\n }\n\n async decryptMessage(encryptedMessage, derivedKey) {\n if (!encryptedMessage || !derivedKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n // NOTE: this presumed an array or arrayBuffer coming in as encryptedMessage (will fail w/ IV error if its a string)\n const encryptedArrayBuffer = this.ensureArrayBuffer(encryptedMessage)\n const iv = encryptedArrayBuffer.slice(0, 12)\n const ciphertext = encryptedArrayBuffer.slice(12)\n\n const decryptedArrayBuffer = await crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n derivedKey,\n ciphertext\n )\n\n const Decoder = await this.getTextDecoder()\n const decryptedMessage = new Decoder().decode(decryptedArrayBuffer)\n return decryptedMessage\n }\n}\n","import { stringEmpty } from './display'\nimport { WebCrypto } from './WebCrypto'\n\nexport const getAuthorizationHelpers = async (sharedSecret, { crypto: _crypto, util: _util } = {}) => {\n if (stringEmpty(sharedSecret)) {\n return undefined\n }\n\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n const sharedKey = await webCrypto.restoreStorableKey(\n 'sharedSecret',\n sharedSecret\n )\n\n return {\n encrypt: async (decryptedMessage) => (\n webCrypto.encryptMessage(decryptedMessage, sharedKey)\n ),\n decrypt: async (encryptedMessage) => (\n webCrypto.decryptMessage(encryptedMessage, sharedKey)\n ),\n }\n}\n","import {\n ensureLeadingSlash,\n stringEmpty,\n uppercase,\n safeParse,\n} from './display'\n\nconst TEMP_HOSTNAME = 'xyz.com'\nconst REMOVABLE_KEYS = ['shop', 'host']\n\nexport const HEADER_CONTENT_TYPE = 'Content-Type'\nexport const HEADER_PUBLIC_KEY = 'X-Public-Key'\nexport const HEADER_EPHEMERAL_KEY = 'X-Ephemeral-Key'\nexport const HEADER_AUTHORIZATION_CUSTOM = 'X-Authorization'\nexport const HEADER_AUTHORIZATION_TIMESTAMP = 'X-Authorization-Timestamp'\n\nexport const CONTENT_TYPES = {\n APPLICATION_JSON: 'application/json',\n}\n\nexport const getRequestMethod = (body, _method) => {\n const method = _method ?? (body ? 'POST' : 'GET')\n\n return uppercase(method)\n}\n\nexport const prepareRequestOptions = ({ method: _method, body: _body, headers: _headers, ...requestOptions } = {}) => {\n const method = getRequestMethod(_body, _method)\n\n const _contentType = _headers?.[HEADER_CONTENT_TYPE.toLowerCase()]\n const headers = {\n [HEADER_CONTENT_TYPE]: _contentType || CONTENT_TYPES.APPLICATION_JSON,\n ..._headers,\n }\n\n let body = _body\n if (body && headers[HEADER_CONTENT_TYPE].startsWith(CONTENT_TYPES.APPLICATION_JSON)) {\n body = JSON.stringify(safeParse(body))\n }\n\n return {\n method,\n headers,\n ...(body && (method !== 'GET')) && { body },\n ...requestOptions,\n }\n}\n\nconst convertToURL = (uri) => {\n if (stringEmpty(uri)) {\n return undefined\n }\n\n const protocolRegex = /^(https?:\\/\\/).+/i\n\n if (!protocolRegex.test(uri)) {\n return new URL(`https://${TEMP_HOSTNAME}${ensureLeadingSlash(uri)}`)\n }\n\n return new URL(uri)\n}\n\nexport const normalizeURIParts = (uri) => {\n const urlObject = convertToURL(uri)\n if (!urlObject) {\n return undefined\n }\n\n REMOVABLE_KEYS.forEach((key) => urlObject.searchParams.delete(key))\n\n return {\n ...(urlObject.hostname !== TEMP_HOSTNAME) && {\n origin: urlObject.origin,\n },\n pathname: urlObject.pathname,\n search: urlObject.search,\n }\n}\n","export class VerificationError extends Error {\n constructor(message, _data) {\n super(message)\n const { code = 500, ...data } = _data ?? {}\n this.code = code\n this.data = data\n this.name = 'VerificationError'\n Object.setPrototypeOf(this, VerificationError.prototype)\n }\n}\n","import { lowercase } from '../../shared/display'\n\nconst getChunkedRawBody = async (req) => {\n if (req?.rawBody) {\n return req.rawBody\n }\n\n // TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405\n try {\n const _getRawBody = (await import('raw-body')).default\n\n if (!req.method || (lowercase(req.method) === 'get')) {\n return undefined\n }\n\n return _getRawBody(req).then((_rawBody) => _rawBody?.toString())\n } catch (error) {\n console.error(`Failed to import 'raw-body', please ensure the dependency is installed`)\n throw error\n }\n}\n\n// TODO: explore returning mutated request object adding on req.rawBody??\nexport const ensureRawBody = async (req) => (\n getChunkedRawBody(req)\n .catch((error) => {\n console.error(`Error getting raw body for '${req?.url}'`, error)\n throw error\n })\n)\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,"import {\n normalizeURIParts,\n prepareRequestOptions,\n getRequestMethod,\n} from './request'\nimport {\n isTrue,\n safeParse,\n stringEmpty,\n objectToSortedString,\n} from './display'\nimport { WebCrypto } from './WebCrypto'\n\nconst getUnixString = () => {\n const currentDate = new Date()\n const unixTimestamp = currentDate.getTime()\n return Math.floor(unixTimestamp / 1000).toString()\n}\n\nexport const getVerificationKeysData = async (publicKey, { crypto: _crypto, util: _util } = {}) => {\n if (stringEmpty(publicKey)) {\n return {}\n }\n\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n\n const _ephemeralStoreableKeyPair = await webCrypto.getStorableKeyPair(\n await webCrypto.generateKeyPair()\n )\n\n const _verificationKeyPair = await webCrypto.getVerificationKeys({\n publicKey,\n privateKey: _ephemeralStoreableKeyPair.privateKey,\n })\n\n return {\n publicKey,\n ephemeral: _ephemeralStoreableKeyPair,\n verification: _verificationKeyPair,\n }\n}\n\n// eslint-disable-next-line arrow-body-style\nexport const prepareVerificationRequest = ({ keysData: _keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util } = {}) => {\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n const disableRecryption = isTrue(_disableRecryption)\n\n return async (requestPath, { method: rawMethod, body: rawBody, headers: rawHeaders, ...requestOptions } = {}) => {\n let parsedBody = safeParse(rawBody)\n const method = getRequestMethod(parsedBody, rawMethod)\n\n if (disableRecryption || stringEmpty(_keysData?.publicKey)) {\n return [\n requestPath,\n prepareRequestOptions({\n method,\n body: parsedBody,\n headers: rawHeaders,\n ...requestOptions,\n }, requestPath)\n ]\n }\n\n const {\n verification: {\n derivedHMACKey,\n derivedSecretKey,\n } = {},\n ephemeral: {\n publicKey: ephemeralPublicKey,\n } = {},\n } = _keysData ?? {}\n\n if (!derivedHMACKey || !ephemeralPublicKey) {\n return undefined\n }\n\n if (parsedBody && derivedSecretKey) {\n parsedBody = await webCrypto.encryptMessage(JSON.stringify(parsedBody), derivedSecretKey)\n }\n\n const timestamp = getUnixString()\n const computedHMAC = await webCrypto.generateHMAC(\n objectToSortedString({\n body: parsedBody,\n method,\n timestamp,\n ...normalizeURIParts(requestPath),\n }),\n derivedHMACKey\n )\n\n return [\n requestPath,\n prepareRequestOptions({\n method,\n body: parsedBody,\n headers: {\n 'X-Authorization': `HMAC-SHA256 ${computedHMAC}`,\n 'X-Authorization-Timestamp': timestamp,\n 'X-Ephemeral-Key': ephemeralPublicKey,\n 'X-Public-Key': _keysData.publicKey,\n ...rawHeaders,\n },\n ...requestOptions,\n }, requestPath),\n derivedSecretKey\n ]\n }\n}\n\nexport const processVerificationResponse = ({ keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util } = {}) => {\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n const disableRecryption = isTrue(_disableRecryption)\n\n return async (encryptedResponse, _derivedSecretKey) => {\n const derivedSecretKey = _derivedSecretKey ?? keysData.verification?.derivedSecretKey\n console.warn(`>>> > VERIFYD > YEP > processVerificationResponse > disableRecryption:`, { disableRecryption, encryptedResponse })\n if (disableRecryption || !encryptedResponse || !derivedSecretKey) {\n return encryptedResponse\n }\n \n const decryptedMessage = await webCrypto.decryptMessage(encryptedResponse, derivedSecretKey)\n console.warn(`>>> > VERIFYD > YEP > processVerificationResponse > decryptedMessage:`, { decryptedMessage, parsedTrimmed: safeParse(decryptedMessage, true), parsed: safeParse(decryptedMessage) })\n return safeParse(decryptedMessage)\n }\n}\n\n"],"names":["REACT_SYMBOL","Symbol","for","isArray","value","undefined","Array","isSet","Set","isType","type","isReact","$$typeof","isClass","Object","getPrototypeOf","prototype","isTypeEnhanced","includes","String","safeTrim","trim","safeParse","matchQuoted","isTrue","startsWith","isParseable","console","warn","JSON","parse","_ignore","ensureString","string","ensureArray","array","stringNotEmpty","stringable","length","stringEmpty","compareEntryKeys","string1","string2","localeCompare","objectToSortedString","object","separator","entries","ensureObject","sort","map","key","join","ensureLeadingSlash","replace","removeLeadingSlash","falsy","n","r","toString","toLocaleString","toPrimitive","valueOf","Proxy","freeze","get","t","hasOwnProperty","win","global","window","exists","variable","u","WebCrypto","constructor","crypto","_crypto","util","_util","this","subtle","getWebCrypto","import","default","error","Error","getTextDecoder","TextDecoder","getTextEncoder","TextEncoder","timingSafeEqual","value1","value2","result","i","stringToHex","stringValue","from","char","charCodeAt","padStart","hexToString","hexValue","match","byte","fromCharCode","parseInt","arrayBufferToString","arrayBuffer","uint8Array","Uint8Array","decode","arrayToArrayBuffer","ArrayBuffer","buffer","ensureArrayBuffer","arrayOrArrayBuffer","getKeyOperations","keyType","getKeyAlgorythm","name","namedCurve","generateKeyPair","generateKey","generateSharedSecret","generateHMAC","message","derivedKey","Encoder","signature","sign","encode","verifyHMAC","verifiableHMAC","calculatedHMAC","getStorableKey","exportedJWK","exportKey","stringify","restoreStorableKey","storableHex","keys","importKey","getStorableKeyPair","keyPair","storableKeys","restoreStorableKeyPair","restoredKeys","deriveSharedKey","publicKey","privateKey","deriveKey","public","deriveHMACKey","hash","getVerificationKeys","sharedKeyPair","derivedHMACKey","derivedSecretKey","encryptMessage","decryptedMessage","iv","getRandomValues","encodedMessage","ciphertext","encrypt","encryptedMessage","decryptMessage","encryptedArrayBuffer","slice","decryptedArrayBuffer","decrypt","TEMP_HOSTNAME","REMOVABLE_KEYS","HEADER_CONTENT_TYPE","HEADER_PUBLIC_KEY","HEADER_EPHEMERAL_KEY","HEADER_AUTHORIZATION_CUSTOM","HEADER_AUTHORIZATION_TIMESTAMP","CONTENT_TYPES","APPLICATION_JSON","getRequestMethod","body","_method","toUpperCase","prepareRequestOptions","method","_body","headers","_headers","requestOptions","_contentType","toLowerCase","normalizeURIParts","uri","urlObject","test","URL","convertToURL","forEach","searchParams","delete","hostname","origin","pathname","search","VerificationError","_data","super","code","data","setPrototypeOf","getChunkedRawBody","async","req","rawBody","_getRawBody","defaultValue","lowercase","then","_rawBody","ensureRawBody","catch","url","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","apply","SuppressedError","webCrypto","sharedSecret","sharedKey","keyPairs","params","_apiKey","apiKey","_ephemeralPublicKey","ephemeralPublicKey","_customAuthTimestamp","customAuthTimestamp","_customAuth","customAuth","_a","_uri","disableRecryption","_disableRecryption","isVerifiable","authProtocol","authSignature","split","verificationKeys","shared","requestBody","verificationPayload","assign","timestamp","processResponse","response","_ephemeralStoreableKeyPair","ephemeral","verification","keysData","_keysData","requestPath","rawMethod","rawHeaders","parsedBody","unixTimestamp","Date","getTime","Math","floor","getUnixString","computedHMAC","encryptedResponse","_derivedSecretKey","parsedTrimmed","parsed"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/shared/display.js","../../../node_modules/browser-monads-ts/dist/browser-monads-ts.es.js","../../../src/shared/WebCrypto.js","../../../src/shared/authorization.js","../../../src/shared/request.js","../../../src/lib/utils/errors.js","../../../src/lib/utils/rawbody.js","../../../node_modules/tslib/tslib.es6.js","../../../src/lib/verification.ts","../../../src/shared/verification.js"],"sourcesContent":["/* eslint-disable no-use-before-define */\n\n// #region lib-core\n// TODO!!!: keep in sync between next-shopify and lib-core (AND lib-utils-js at bottom)\n\nconst REACT_SYMBOL = Symbol.for('react.element')\n\nexport const normalizeShopifyId = (shopifyData) => {\n const isString = isTypeEnhanced(shopifyData, 'string')\n if (isString && !shopifyData.startsWith('gid:')) {\n if (!isNumericOnly(shopifyData)) {\n return {}\n }\n\n return {\n id: `${shopifyData}`,\n }\n }\n\n const { id: _entityId, legacyResourceId } = isString\n ? { id: shopifyData }\n : ensureObject(shopifyData)\n\n if (stringEmpty(_entityId) && stringEmpty(legacyResourceId)) {\n return {}\n }\n\n const entity_id = ensureString(_entityId)\n const { entity_type, parsedId } = entity_id.match(/^gid:\\/\\/shopify\\/(?<entity_type>.*)\\/(?<parsedId>[0-9]+).*$/)?.groups ?? {}\n const id = ensureString(parsedId || legacyResourceId)\n\n const hasId = stringNotEmpty(id)\n const hasEntityId = stringNotEmpty(entity_id)\n const hasEntityType = stringNotEmpty(entity_type)\n\n return {\n ...stringNotEmpty(id) && { id },\n ...hasEntityType && { entity_type },\n ...hasEntityId ? {\n entity_id,\n gid: entity_id,\n } : (hasEntityType && hasId) && {\n gid: `gid://shopify/${entity_type}/${id}`,\n },\n }\n}\n\nexport const random = (max = 100, min = 1) => {\n const floor = Math.min(max, min)\n return Math.floor(Math.random() * (max - floor + 1)) + floor\n}\n\nexport const nextRandom = (max = 100, min = 1) => {\n const maximum = Math.max(max, 0)\n const minimum = Math.max(min, 0)\n\n let randomNumber = maximum\n\n if (maximum > minimum) {\n do {\n randomNumber = random(maximum, minimum)\n } while (randomNumber === nextRandom.last)\n\n nextRandom.last = randomNumber\n }\n\n return randomNumber\n}\n\nexport const arrayRandom = (_values, _max = 1) => {\n const values = ensureArray(_values)\n const valuesLength = values.length\n const maxLength = Math.min(_max, valuesLength)\n\n if (valuesLength <= maxLength) {\n return values\n }\n\n const arrayLength = valuesLength - 1\n const randomValues = []\n do {\n const newVal = values[nextRandom(arrayLength, 0)]\n if (!randomValues.includes(newVal)) {\n randomValues.push(newVal)\n }\n } while (randomValues.length < maxLength)\n\n return randomValues\n}\n\nexport const arrayRandomItem = (_values) => (\n arrayRandom(_values)[0]\n)\n\nexport const isArray = (value) => (\n // eslint-disable-next-line eqeqeq\n (value != undefined) && Array.isArray(value)\n)\n\nexport const isSet = (value) => (\n // eslint-disable-next-line eqeqeq\n (value != undefined) && (value instanceof Set)\n)\n\nexport const isType = (value, type) => (\n // eslint-disable-next-line eqeqeq, valid-typeof\n (value != undefined) && (typeof value === type)\n)\n\nconst isReact = (value) => (\n isType(value, 'object') &&\n (value?.$$typeof === REACT_SYMBOL)\n)\n\nconst isClass = (value) => (\n isType(value, 'object') &&\n (Object.getPrototypeOf(value) !== Object.prototype) &&\n !isReact(value)\n)\n\nexport const isTypeEnhanced = (value, type) => {\n switch (true) {\n case (type === 'boolean'): {\n return isType(value, type) || ['true', 'false'].includes(value)\n }\n\n case (type === 'string'): {\n return (\n isType(value, type) ||\n (value instanceof String)\n )\n }\n\n case (type === 'set'): {\n return isSet(value)\n }\n\n case (type === 'react'): {\n return isReact(value)\n }\n\n case (type === 'class'): {\n return isClass(value)\n }\n\n case (type === 'array'): {\n return (\n isArray(value) &&\n !isSet(value)\n )\n }\n\n case (type === 'object'): {\n return (\n isType(value, type) &&\n !isArray(value) &&\n !isClass(value) &&\n !isReact(value)\n )\n }\n\n default: {\n return isType(value, type)\n }\n }\n}\n\nexport const safeTrim = (value) => {\n if (isTypeEnhanced(value, 'string')) {\n // eslint-disable-next-line no-param-reassign\n value = value.trim()\n }\n\n return value\n}\n\nexport const isParseable = (value, trim, matchQuoted) => {\n if (!isTypeEnhanced(value, 'string')) {\n return false\n }\n\n if (trim) {\n // eslint-disable-next-line no-param-reassign\n value = safeTrim(value)\n }\n\n return isTrue(value.startsWith('{') || value.startsWith('[') || (matchQuoted && value.startsWith('\"')))\n}\n\nexport const safeParse = (value, trim) => {\n switch (true) {\n case isTypeEnhanced(value, 'object'):\n case isTypeEnhanced(value, 'array'): {\n return value\n }\n\n case isParseable(value, trim, true): {\n if (trim) {\n // eslint-disable-next-line no-param-reassign\n value = safeTrim(value)\n }\n\n try {\n return JSON.parse(value)\n } catch (_ignore) {\n console.info('Ignoring error parsing', _ignore)\n // TODO: should this be value ?? {}\n return value\n }\n }\n\n default: {\n // TODO: should this be value ?? {}\n return value\n }\n }\n}\n\nexport const ensureString = (string) => (\n string ? `${string}` : ''\n)\n\n// HMMM: what if 'string' is an object?\nexport const ensureStringOnly = (string) => (\n // eslint-disable-next-line eqeqeq\n (string != undefined) ? `${string}` : ''\n)\n\nexport const ensureStringAscii = (string) => (\n // eslint-disable-next-line no-control-regex\n ensureStringOnly(string).replace(/[^\\x00-\\x7F]/g, '')\n)\n\nexport const ensureStringClean = (string) => (\n // eslint-disable-next-line no-control-regex\n ensureStringOnly(string).replace(/[^a-z0-9_-]/gi, '')\n)\n\nexport const ensureAlphaNumeric = (string) => (\n // eslint-disable-next-line no-control-regex\n ensureStringOnly(string).replace(/[^a-z0-9]/gi, '')\n)\n\nexport const isNumericOnly = (value) => {\n const [matched] = `${value}`.match(/^([0-9]+)$/) ?? []\n // eslint-disable-next-line eqeqeq\n return (matched != undefined)\n}\n\nexport const isNumericNegatable = (value) => {\n const [matched] = `${value}`.match(/^(-?[0-9]+(\\.[0-9]+)?)?$/) ?? []\n // eslint-disable-next-line eqeqeq\n return (matched != undefined)\n}\n\n// TODO: explore places using ensureNumeric to move to isNumericNegatable\nexport const ensureNumeric = (string) => (\n Number(ensureString(string).replace(/[^0-9.]/gi, ''))\n)\n\nexport const ensureNumericOnly = (string) => (\n Number(ensureString(string).replace(/[^0-9]/gi, ''))\n)\n\n// TODO: update regex to handle negative number returns negative. Something like (?!\\d\\.)(-?\\d+(\\.\\d)?)\nexport const ensureNumericNegatable = (string) => (\n Number(ensureString(string).replace(/[^0-9.-]/gi, ''))\n)\n\nexport const ensureNumericConstrained = (value, { min: _min = 0, max: _max = 100 } = {}) => {\n const min = ensureNumericNegatable(_min)\n const max = ensureNumericNegatable(_max)\n\n return Math.max(\n min,\n Math.min(ensureNumeric(value), max)\n )\n}\n\nexport const ensureArray = (array = []) => (\n // eslint-disable-next-line no-nested-ternary\n !array ? [] : Array.isArray(array) ? array : [array]\n)\n\nexport const ensureArraySet = (arrayOrSet) => (\n ensureArray(isSet(arrayOrSet) ? [...arrayOrSet] : arrayOrSet)\n)\n\nexport const arrayEmpty = (array, disableEmptyString = false) => (\n // eslint-disable-next-line eqeqeq\n !array || !array.length || (array.length === 1 && (array[0] == undefined || (disableEmptyString && stringEmpty(array[0]))))\n)\n\nexport const arrayNotEmpty = (array, disableEmptyString = false) => (\n // eslint-disable-next-line eqeqeq\n !arrayEmpty(array) && array[0] != undefined && (!disableEmptyString || stringNotEmpty(array[0]))\n)\n\nexport const findLastMatch = (array, filterCallback = (value) => (value)) => (\n ensureArray(array).filter(filterCallback).slice(-1)[0]\n)\n\nexport const ensureObject = (object) => (\n object ?? {}\n)\n\n// NOTE: this does not ensure !isType(string)\nexport const objectEmpty = (object) => (\n !object || !Object.keys(object).length\n)\n\nexport const objectNotEmpty = (object) => (\n !objectEmpty(object)\n)\n\nexport const nullable = (object) => (\n (!object || (object === 'null') || (object === undefined) || (object === null))\n ? null // TODO: explore undefined here??\n : object\n)\n\nexport const objectContainsAnyValue = (object) => (\n Object.values(ensureObject(object)).some((value) => nullable(value))\n)\n\nconst isUndefined = (value) => (\n // eslint-disable-next-line eqeqeq\n value == undefined\n)\n\nexport const cleanObjectKeys = (object, _removeKeyNames) => {\n const removeKeyNames = ensureArray(_removeKeyNames)\n return Object.fromEntries(\n Object.entries(ensureObject(object)).filter(([key]) => !removeKeyNames.includes(key))\n )\n}\n\nexport const cleanObject = (object, allowEmptyLeafs, isEmptyCallback) => (\n Object.entries(ensureObject(object)).reduce((\n _cleanedObject,\n [key, _value]\n ) => {\n if (!allowEmptyLeafs && (isEmptyCallback?.(_value) ?? isUndefined(_value))) {\n return _cleanedObject // skip key if null or undefined\n }\n\n const value = !Array.isArray(_value)\n ? cleanObjectValue(_value, allowEmptyLeafs, isEmptyCallback)\n : _value.reduce((_data, __value) => ([\n ..._data,\n cleanObjectValue(__value, allowEmptyLeafs, isEmptyCallback)\n ]), [])\n\n if (!allowEmptyLeafs && (isEmptyCallback?.(value) ?? isUndefined(value))) {\n return _cleanedObject // skip key if null or undefined\n }\n\n return {\n ..._cleanedObject,\n [key]: value,\n }\n }, {})\n)\n\nconst cleanObjectValue = (value, allowEmptyLeafs, isEmptyCallback) => {\n switch (true) {\n case isClass(value): {\n return undefined\n }\n\n case isTypeEnhanced(value, 'object'): {\n return cleanObject(value, allowEmptyLeafs, isEmptyCallback)\n }\n\n default: {\n return value\n }\n }\n}\n\nexport const stringNotEmptyOnly = (stringable) => {\n const string = ensureStringOnly(stringable)\n return ((string.length > 0) && !['null', 'undefined'].includes(string))\n}\n\nexport const stringEmptyOnly = (stringable) => (\n !stringNotEmptyOnly(stringable)\n)\n\nexport const stringNotEmpty = (stringable) => {\n const string = ensureString(stringable)\n return ((string.length > 0) && !['null', 'undefined'].includes(string))\n}\n\nexport const stringEmpty = (stringable) => (\n !stringNotEmpty(stringable)\n)\n\nconst splitString = (splitting, index = splitting.length) => {\n const string = ensureString(splitting)\n return [string.slice(0, index), string.slice(index)]\n}\n\nexport const compareNumber = (number1 = 0, number2 = 0) => (\n number1 - number2\n)\n\nexport const compareString = (string1, string2) => {\n if (stringEmpty(string1)) {\n return 1\n }\n\n if (stringEmpty(string2)) {\n return -1\n }\n\n return ensureString(string1).localeCompare(string2)\n}\n\nexport const compareEntryKeys = ([string1], [string2]) => (\n compareString(string1, string2)\n)\n\nexport const objectToSortedString = (object, separator = '') => (\n Object.entries(ensureObject(object))\n .sort(compareEntryKeys)\n .map(([key, value]) => `${key}=${value}`)\n .join(separator)\n)\n\nexport const isHTML = (string) => (\n (string?.startsWith?.('<') || string?.startsWith?.('\\n<')) ?? false\n)\n\nexport const freeze = (logMessage, object, type = 'log') => {\n console[type](logMessage, !object ? object : JSON.parse(JSON.stringify(ensureObject(object))))\n}\n\nexport const replaceSpaces = (string, replacement = '') => (\n !isType(string, 'string')\n ? ''\n : string.replace(/\\s/g, replacement)\n)\n\nconst recase = (string, replacement = '') => (\n !isType(string, 'string')\n ? ''\n : string\n .replace(/[^a-zA-Z0-9]+/g, replacement)\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9])([^0-9])/g, '$1-$2')\n .replace(/([^0-9])([0-9])/g, '$1-$2')\n .replace(/[-_]+/g, replacement)\n .replace(new RegExp(`${replacement}$`), '')\n .toLowerCase()\n)\n\nexport const zencase = (string, replacement = '-') => (\n !isType(string, 'string')\n ? ''\n : replaceSpaces(string, replacement)\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(new RegExp(`${replacement}$`), '')\n .toLowerCase()\n)\n\nexport const dashcase = (string) => (\n recase(string, '-')\n)\n\nexport const undashcase = (string, replacement = ' ') => (\n ensureString(string).replace(/-/g, replacement).trim()\n)\n\nexport const snakecase = (string) => (\n recase(string, '_')\n)\n\nexport const unsnakecase = (string, replacement = ' ') => (\n ensureString(string).replace(/_/g, replacement).trim()\n)\n\nexport const uppercase = (string) => (\n ensureString(string).toUpperCase()\n)\n\nexport const lowercase = (string, defaultValue = '') => (\n !stringNotEmpty(string)\n ? defaultValue\n : ensureString(string).toLowerCase()\n)\n\nexport const isLowercase = (string) => (\n stringNotEmpty(string) && /^[^A-Z]*$/.test(string)\n)\n\nexport const slugify = (string) => (\n lowercase(dashcase(string))\n)\n\nexport const capitalize = (string) => {\n const parts = splitString(string, 1)\n return `${uppercase(parts[0])}${parts[1]}`\n}\n\nexport const camelCase = (string) => (\n stringEmpty(string)\n ? ''\n : unsnakecase(undashcase(string)).replace(/\\w\\S*/g, (word, charIndex) => {\n if (charIndex === 0) {\n return lowercase(word)\n }\n return `${uppercase(word.charAt(0))}${lowercase(word.substr(1))}`\n }).split(' ').join('')\n)\n\nexport const titleCase = (_string, _overrides) => {\n if (stringEmpty(_string)) {\n return ''\n }\n\n const overrides = {\n 'add-ons': 'Add-Ons',\n agnostack: 'agnoStack',\n ai: 'AI',\n 'ai for commerce': 'AI for Commerce',\n \"'ai for commerce'\": \"'AI For Commerce'\",\n b2b: 'B2B',\n b2c: 'B2C',\n cartcollab: 'CartCollab',\n 'cartcollab(sm)': 'CartCollab(SM)',\n chatgpt: 'ChatGPT',\n covid: 'COVID',\n covid19: 'COVID-19',\n 'covid-19': 'COVID-19',\n crm: 'CRM',\n elasticpath: 'Elastic Path',\n ecommerce: 'eCommerce',\n 'e-commerce': 'eCommerce',\n faqs: 'FAQs',\n gpt: 'GPT',\n ipaas: 'iPaaS',\n 'ltv.ai': 'LTV.ai',\n 'smile.io': 'Smile.io',\n 'stamped.io': 'Stamped.io',\n 'judge.me': 'Judge.me',\n 'influence.io': 'Influence.io',\n keepsmallstrong: 'KeepSmallStrong',\n loyaltylion: 'LoyaltyLion',\n 'mach alliance': 'MACH Alliance',\n openai: 'OpenAI',\n paypal: 'PayPal',\n 'postscript.io': 'Postscript.io',\n recharge: 'Recharge',\n 'stay.ai': 'Stay Ai',\n 'stay ai': 'Stay Ai',\n shipengine: 'ShipEngine',\n shipperhq: 'ShipperHQ',\n shipstation: 'ShipStation',\n taxjar: 'TaxJar',\n vs: 'vs',\n 'vs.': 'vs.',\n yotpo: 'YotPo',\n \"zendesk 'ai for commerce'\": \"Zendesk 'AI For Commerce'\",\n ..._overrides,\n }\n\n const string = lowercase(_string)\n\n if (overrides[string]) {\n return overrides[string]\n }\n\n const stringParts = string\n .split(' ')\n .reduce((\n _stringParts,\n _stringPart\n ) => {\n const stringPart = overrides[_stringPart] ?? _stringPart\n .replace(/([A-Z]+)/g, ' $1')\n .replace(/\\s\\s+/g, ' ')\n .replace(/(\\b[a-z](?!\\s)*)/g, (firstChar) => uppercase(firstChar))\n\n return [\n ..._stringParts,\n ...stringNotEmpty(stringPart) ? [stringPart] : []\n ]\n }, [])\n\n return stringParts.join(' ')\n}\n\nexport const removeLeadingSlash = (string) => (\n ensureString(string).replace(/^\\//, '')\n)\n\nexport const removeLeadingTrailingQuotes = (string) => (\n ensureString(string).replace(/^\"|\"$/g, '')\n)\n\n// TODO: not sure if this should remove multipel at end or just one (as it does now)?\nexport const removeTrailingSlash = (string) => (\n ensureString(string).replace(/\\/$/, '')\n)\n\nexport const removeLeadingTrailingSlash = (string) => (\n removeTrailingSlash(removeLeadingSlash(string))\n)\n\nexport const ensureLeadingSlash = (string) => (\n `/${removeLeadingSlash(string)}`\n)\n\nexport const ensureTrailingSlash = (string) => (\n `${removeTrailingSlash(string)}/`\n)\n\nexport const ensureTrailingQuestion = (string) => {\n const isString = isTypeEnhanced(string, 'string')\n if (!isString) {\n return string\n }\n return string.endsWith('?') ? string : `${string}?`\n}\n\nexport const ensureExtension = (string, extension) => {\n if (stringEmpty(extension)) {\n return string\n }\n\n const filePath = string.match(/(.*)\\..+$/)?.[1] ?? string\n\n return `${filePath}.${extension}`\n}\n\nexport const wrappedEncode = (basePath, _wrappingPath) => {\n const wrappingPath = ensureString(_wrappingPath)\n if (stringEmpty(basePath)) {\n return wrappingPath\n }\n\n return `${basePath}${encodeURIComponent(wrappingPath)}`\n}\n\nexport const splitCommas = (value) => (\n ensureString(value)\n .replace(/, /g, ',')\n .split(',')\n .reduce((_values, _value) => {\n const __value = safeTrim(_value)\n return [\n ..._values,\n ...stringNotEmpty(__value) ? [__value] : [] // TODO: explore stringEmptyOnly?\n ]\n }, [])\n)\n\nexport const combineCommas = (values) => (\n [...new Set(\n ensureArray(values).reduce((\n _combined,\n value\n ) => ([\n ..._combined,\n ...splitCommas(value)\n ]), [])\n )]\n)\n\nexport const normalizeArray = (input, separator = ' ') => {\n const inputArray = ensureArray(input)\n\n return inputArray.reduce((normalized, _ignore, index) => ([\n ...normalized,\n inputArray.slice(0, index + 1).join(separator)\n ]), []).reverse()\n}\n\nexport const arrayToObject = (arrayable, key) => (\n ensureArray(arrayable).reduce((_object, item) => ({\n ..._object,\n [item?.[key]]: item,\n }), {})\n)\n\nexport const isTrue = (value, falsy) => {\n const string = ensureString(value)\n return ![...ensureArray(falsy), '', 'false'].includes(string)\n}\n\nexport const isUndefinedOrTrue = (value, falsy) => (\n isUndefined(value) || isTrue(value, falsy)\n)\n\nexport const isBoolean = (value) => (\n [true, false, 'true', 'false'].includes(value)\n)\n\nexport const getBaseDomain = (baseUrl) => (\n baseUrl?.match(/^(?:https?:\\/\\/)?([^/:]+)(?::(\\d+))?/).slice(1, 3)\n .filter(stringNotEmpty)\n .join(':') || undefined\n)\n\nexport const getPublicEnvValue = (publicEnv, key) => {\n let envValue\n // NOTE: intentionally using for/of loop instead of map so we can break to exit quickly soon as matched\n // eslint-disable-next-line no-restricted-syntax\n for (const envKey of [`NEXT_PUBLIC_${key}`, `VITE_PUBLIC_${key}`, `GATSBY_${key}`, `PUBLIC_${key}`]) {\n envValue = publicEnv?.[envKey]\n if (stringNotEmpty(envValue)) {\n break\n }\n }\n return envValue\n}\n\n// TODO: move all uses of parseKeywords to parseKeywordGroups\nexport const parseKeywords = (keywordGroup, previous) => (\n [...new Set(ensureArray(keywordGroup).reduce((_parsedKeywords, keyword) => {\n const keywords = splitCommas(keyword)\n\n return [\n ..._parsedKeywords,\n ...keywords.filter((_keyword) => stringNotEmpty(_keyword))\n ]\n }, ensureArray(previous)))].join(', ')\n)\n\nexport const parseCommaGroups = (commaGroups) => {\n const parsedGroups = ensureArray(commaGroups).reduce((_parsedGroups, commaGroup) => ([\n ..._parsedGroups,\n ...ensureArray(commaGroup).reduce((_parsedCommaKeywords, keyword) => {\n const keywords = splitCommas(keyword)\n\n return [\n ..._parsedCommaKeywords,\n ...keywords.filter((_keyword) => stringNotEmpty(_keyword))\n ]\n }, [])\n ]), [])\n\n return [...new Set(parsedGroups)]\n}\n\nexport const parseKeywordGroups = (keywordGroups) => (\n parseCommaGroups(keywordGroups).join(', ')\n)\n\nexport const parseProjectName = (_name) => {\n const name = ensureString(_name)\n const [, organization, ...parts] = /(@.*)([\\\\]+|\\/)+(.*)/.exec(name) ?? []\n const projectName = organization ? name.replace(organization, '').replace('/', '') : name\n\n return {\n name,\n parts,\n organization,\n projectName,\n }\n}\n\nexport const parseProject = (packageInfo) => {\n const {\n keywords,\n shortName,\n siteHandle,\n siteAuthor,\n name: _name,\n owner: _appOwner,\n appName: _appName,\n siteName: _siteName,\n } = packageInfo ?? {}\n const { name, organization, projectName } = parseProjectName(_name)\n\n const appName = _appName ?? projectName?.slice(projectName?.indexOf('-') + 1)\n const siteName = _siteName ?? projectName?.slice(projectName?.indexOf('-') + 1)\n const companyName = titleCase(organization?.replace('@', ''))\n const appOwner = _appOwner ?? companyName\n\n return [{\n keywords,\n appOwner,\n appName,\n siteName,\n shortName,\n siteHandle,\n siteAuthor,\n companyName,\n projectName,\n }, organization, name]\n}\n\n// #endregion lib-core\n// #region lib-utils-js\n\nexport const querystringToParams = (queryString) => {\n const urlParams = new URLSearchParams(ensureString(queryString))\n return [Object.fromEntries(urlParams), urlParams]\n}\n\nexport const querystringToObject = (queryString) => (\n querystringToParams(queryString)[0]\n)\n\nexport const arrayIncludesAll = (_values, comparison) => {\n const values = ensureArray(_values)\n return ensureArray(comparison).every((value) => (\n stringNotEmpty(value) && values.includes(value)\n ))\n}\n\nexport const arraysMatch = (array1, array2) => (\n arrayIncludesAll(array1, array2) && arrayIncludesAll(array2, array1)\n)\n\nexport const appendQuery = (_basePath, queryString) => {\n const basePath = ensureString(_basePath)\n if (stringEmpty(queryString)) {\n return basePath\n }\n return `${basePath}${basePath.includes('?') ? '&' : '?'}${queryString}`\n}\n\nexport const appendParams = (basePath, params) => (\n appendQuery(basePath, ensureArray(params).join('&'))\n)\n","var n,r=((n=function(){return r}).toString=n.toLocaleString=n[Symbol.toPrimitive]=function(){return \"\"},n.valueOf=function(){return !1},new Proxy(Object.freeze(n),{get:function(n,t){return n.hasOwnProperty(t)?n[t]:r}})),u=function(n){return n===r};\n\nlet win = global.window;\nlet doc = global.document;\nlet nav = global.navigator;\nlet document = typeof doc !== \"undefined\" ? doc : r;\nlet exists = (variable) => !u(variable);\nlet navigator = typeof nav !== \"undefined\" ? nav : r;\nlet window = typeof win !== \"undefined\" ? win : r;\n\nexport { document, exists, navigator, window };\n//# sourceMappingURL=browser-monads-ts.es.js.map\n","import { exists, window } from 'browser-monads-ts'\n\nimport { ensureArray, ensureString, objectEmpty } from './display'\n\nexport class WebCrypto {\n constructor({ crypto: _crypto, util: _util } = {}) {\n this._crypto = _crypto ?? {}\n this._util = _util ?? {}\n }\n\n get subtle() {\n return this._crypto?.subtle\n }\n\n async getWebCrypto() {\n if (!this._crypto?.subtle) {\n try {\n this._crypto = (await import('isomorphic-webcrypto')).default\n } catch (_ignore) {\n console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto')\n try {\n this._crypto = (await import('crypto')).default\n } catch (error) {\n // eslint-disable-next-line max-len\n console.error(`Failed to import node crypto, ensure 'isomorphic-webcrypto' (or node 'crypto') is installed and/or pass in implementation via 'new WebCrypto({ crypto })'`)\n throw error\n }\n }\n }\n\n if (!this._crypto?.subtle) {\n throw new Error('Invalid crypto, missing subtle')\n }\n\n return this._crypto\n }\n\n async getTextDecoder() {\n if (this._util?.TextDecoder) {\n return this._util.TextDecoder\n }\n\n if (exists(window) && typeof window?.TextDecoder === 'function') {\n return window.TextDecoder\n }\n\n try {\n const TextDecoder = (await import('util')).TextDecoder\n this._util.TextDecoder = TextDecoder\n\n return TextDecoder\n } catch (error) {\n console.error(`Failed to import 'utils.TextDecoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'`)\n throw error\n }\n }\n\n async getTextEncoder() {\n if (this._util?.TextEncoder) {\n return this._util.TextEncoder\n }\n\n if (exists(window) && typeof window?.TextEncoder === 'function') {\n return window.TextEncoder\n }\n\n try {\n const TextEncoder = (await import('util')).TextEncoder\n this._util.TextEncoder = TextEncoder\n\n return TextEncoder\n } catch (error) {\n console.error(`Failed to import 'utils.TextEncoder', ensure 'util' is available and/or pass in implementation via 'new WebCrypto({ util })'`)\n throw error\n }\n }\n\n timingSafeEqual(value1, value2) {\n if (\n (value1 == undefined) ||\n (value2 == undefined) ||\n (value1.length !== value2.length)\n ) {\n return false\n }\n\n let result = 0\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < value1.length; i++) {\n // eslint-disable-next-line no-bitwise\n result |= value1[i] ^ value2[i]\n }\n\n return (result === 0)\n }\n\n stringToHex(stringValue) {\n return (\n Array.from(ensureString(stringValue), (char) => (\n char.charCodeAt(0).toString(16).padStart(2, '0')\n )).join('')\n )\n }\n\n hexToString(hexValue) {\n return (\n ensureArray(\n ensureString(hexValue).match(/.{1,2}/g)\n )\n .map((byte) => String.fromCharCode(parseInt(byte, 16)))\n .join('')\n )\n }\n\n async arrayBufferToString(arrayBuffer) {\n const uint8Array = new Uint8Array(arrayBuffer)\n const Decoder = await this.getTextDecoder()\n return new Decoder().decode(uint8Array)\n }\n\n arrayToArrayBuffer(array) {\n return (\n (ArrayBuffer.from != undefined)\n ? ArrayBuffer.from(array)\n : new Uint8Array(array).buffer\n )\n }\n\n ensureArrayBuffer(arrayOrArrayBuffer) {\n return (\n (arrayOrArrayBuffer instanceof ArrayBuffer)\n ? arrayOrArrayBuffer\n : this.arrayToArrayBuffer(arrayOrArrayBuffer)\n )\n }\n\n getKeyOperations(keyType) {\n switch (keyType) {\n case 'paired':\n case 'private':\n case 'privateKey': {\n return ['deriveKey']\n }\n\n case 'secret':\n case 'secretKey':\n case 'sharedSecret': {\n return ['encrypt', 'decrypt']\n }\n\n default: {\n return []\n }\n }\n }\n\n getKeyAlgorythm(keyType) {\n switch (keyType) {\n case 'derivedKey':\n case 'derived':\n case 'secret':\n case 'secretKey':\n case 'sharedSecret': {\n return {\n name: 'AES-GCM',\n }\n }\n\n default: {\n return {\n name: 'ECDH',\n namedCurve: 'P-256',\n }\n }\n }\n }\n\n async generateKeyPair() {\n const crypto = await this.getWebCrypto()\n const keyPair = await crypto.subtle.generateKey(\n this.getKeyAlgorythm('paired'),\n true,\n this.getKeyOperations('paired')\n )\n\n return keyPair\n }\n\n async generateSharedSecret() {\n const crypto = await this.getWebCrypto()\n const keyPair = await crypto.subtle.generateKey(\n this.getKeyAlgorythm('sharedSecret'),\n true,\n this.getKeyOperations('sharedSecret')\n )\n\n return keyPair\n }\n\n async generateHMAC(message, derivedKey) {\n if (!message || !derivedKey) {\n return undefined\n } \n\n const crypto = await this.getWebCrypto()\n const Encoder = await this.getTextEncoder()\n\n const signature = await crypto.subtle.sign(\n 'HMAC',\n derivedKey,\n new Encoder().encode(message)\n )\n\n return this.stringToHex(\n this.arrayBufferToString(signature)\n )\n }\n\n async verifyHMAC(message, derivedKey, verifiableHMAC) {\n const calculatedHMAC = await this.generateHMAC(message, derivedKey)\n\n return this.timingSafeEqual(calculatedHMAC, verifiableHMAC)\n }\n\n async getStorableKey(key) {\n const crypto = await this.getWebCrypto()\n\n const exportedJWK = await crypto.subtle.exportKey('jwk', key)\n return this.stringToHex(JSON.stringify(exportedJWK))\n }\n\n async restoreStorableKey(keyType, storableHex) {\n if (!storableHex) {\n return undefined\n }\n const crypto = await this.getWebCrypto()\n\n const exportedJWK = JSON.parse(this.hexToString(storableHex) || '{}')\n if (objectEmpty(exportedJWK)) {\n return undefined\n }\n\n return crypto.subtle.importKey(\n 'jwk',\n exportedJWK,\n this.getKeyAlgorythm(keyType),\n true,\n this.getKeyOperations(keyType)\n )\n }\n\n async getStorableKeyPair(keyPair) {\n const storableKeys = {}\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [keyType, key] of Object.entries(keyPair)) {\n // eslint-disable-next-line no-await-in-loop\n storableKeys[keyType] = await this.getStorableKey(key)\n }\n\n return storableKeys\n }\n\n async restoreStorableKeyPair(keyPair) {\n const restoredKeys = {}\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [keyType, key] of Object.entries(keyPair)) {\n // eslint-disable-next-line no-await-in-loop\n restoredKeys[keyType] = await this.restoreStorableKey(keyType, key)\n }\n\n return restoredKeys\n }\n\n async deriveSharedKey({ publicKey, privateKey }) {\n if (!publicKey || !privateKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n const derivedKey = await crypto.subtle.deriveKey(\n {\n name: 'ECDH',\n public: publicKey,\n },\n privateKey,\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt']\n )\n return derivedKey\n }\n\n async deriveHMACKey({ publicKey, privateKey }) {\n if (!publicKey || !privateKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n const derivedKey = await crypto.subtle.deriveKey(\n {\n name: 'ECDH',\n public: publicKey,\n },\n privateKey,\n {\n name: 'HMAC',\n hash: { name: 'SHA-256' },\n length: 256, // Adjusted key length, e.g., 128 bits\n },\n true,\n ['sign', 'verify']\n )\n return derivedKey\n }\n\n async getVerificationKeys({ publicKey, privateKey }) {\n if (!publicKey || !privateKey) {\n return {}\n }\n\n const sharedKeyPair = await this.restoreStorableKeyPair({ publicKey, privateKey })\n const derivedHMACKey = await this.deriveHMACKey(sharedKeyPair)\n const derivedSecretKey = await this.deriveSharedKey(sharedKeyPair)\n\n return {\n derivedSecretKey,\n derivedHMACKey,\n }\n }\n\n async encryptMessage(decryptedMessage, derivedKey) {\n if (!decryptedMessage || !derivedKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n const iv = crypto.getRandomValues(new Uint8Array(12))\n const Encoder = await this.getTextEncoder()\n const encodedMessage = new Encoder().encode(decryptedMessage)\n const ciphertext = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n derivedKey,\n encodedMessage\n )\n\n const encryptedMessage = new Uint8Array([\n ...iv,\n ...new Uint8Array(ciphertext)\n ])\n return Array.from(encryptedMessage)\n }\n\n async decryptMessage(encryptedMessage, derivedKey) {\n if (!encryptedMessage || !derivedKey) {\n return undefined\n }\n\n const crypto = await this.getWebCrypto()\n // NOTE: this presumed an array or arrayBuffer coming in as encryptedMessage (will fail w/ IV error if its a string)\n const encryptedArrayBuffer = this.ensureArrayBuffer(encryptedMessage)\n const iv = encryptedArrayBuffer.slice(0, 12)\n const ciphertext = encryptedArrayBuffer.slice(12)\n\n const decryptedArrayBuffer = await crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n derivedKey,\n ciphertext\n )\n\n const Decoder = await this.getTextDecoder()\n const decryptedMessage = new Decoder().decode(decryptedArrayBuffer)\n return decryptedMessage\n }\n}\n","import { stringEmpty } from './display'\nimport { WebCrypto } from './WebCrypto'\n\nexport const getAuthorizationHelpers = async (sharedSecret, { crypto: _crypto, util: _util } = {}) => {\n if (stringEmpty(sharedSecret)) {\n return undefined\n }\n\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n const sharedKey = await webCrypto.restoreStorableKey(\n 'sharedSecret',\n sharedSecret\n )\n\n return {\n encrypt: async (decryptedMessage) => (\n webCrypto.encryptMessage(decryptedMessage, sharedKey)\n ),\n decrypt: async (encryptedMessage) => (\n webCrypto.decryptMessage(encryptedMessage, sharedKey)\n ),\n }\n}\n","import {\n ensureLeadingSlash,\n stringEmpty,\n uppercase,\n safeParse,\n} from './display'\n\nconst TEMP_HOSTNAME = 'xyz.com'\nconst REMOVABLE_KEYS = ['shop', 'host']\n\nexport const HEADER_CONTENT_TYPE = 'Content-Type'\nexport const HEADER_PUBLIC_KEY = 'X-Public-Key'\nexport const HEADER_EPHEMERAL_KEY = 'X-Ephemeral-Key'\nexport const HEADER_AUTHORIZATION_CUSTOM = 'X-Authorization'\nexport const HEADER_AUTHORIZATION_TIMESTAMP = 'X-Authorization-Timestamp'\n\nexport const CONTENT_TYPES = {\n APPLICATION_JSON: 'application/json',\n}\n\nexport const getRequestMethod = (body, _method) => {\n const method = _method ?? (body ? 'POST' : 'GET')\n\n return uppercase(method)\n}\n\nexport const prepareRequestOptions = ({ method: _method, body: _body, headers: _headers, ...requestOptions } = {}) => {\n const method = getRequestMethod(_body, _method)\n\n const _contentType = _headers?.[HEADER_CONTENT_TYPE.toLowerCase()]\n const headers = {\n [HEADER_CONTENT_TYPE]: _contentType || CONTENT_TYPES.APPLICATION_JSON,\n ..._headers,\n }\n\n let body = _body\n if (body && headers[HEADER_CONTENT_TYPE].startsWith(CONTENT_TYPES.APPLICATION_JSON)) {\n body = JSON.stringify(safeParse(body))\n }\n\n return {\n method,\n headers,\n ...(body && (method !== 'GET')) && { body },\n ...requestOptions,\n }\n}\n\nconst convertToURL = (uri) => {\n if (stringEmpty(uri)) {\n return undefined\n }\n\n const protocolRegex = /^(https?:\\/\\/).+/i\n\n if (!protocolRegex.test(uri)) {\n return new URL(`https://${TEMP_HOSTNAME}${ensureLeadingSlash(uri)}`)\n }\n\n return new URL(uri)\n}\n\nexport const normalizeURIParts = (uri) => {\n const urlObject = convertToURL(uri)\n if (!urlObject) {\n return undefined\n }\n\n REMOVABLE_KEYS.forEach((key) => urlObject.searchParams.delete(key))\n\n return {\n ...(urlObject.hostname !== TEMP_HOSTNAME) && {\n origin: urlObject.origin,\n },\n pathname: urlObject.pathname,\n search: urlObject.search,\n }\n}\n","export class VerificationError extends Error {\n constructor(message, _data) {\n super(message)\n const { code = 500, ...data } = _data ?? {}\n this.code = code\n this.data = data\n this.name = 'VerificationError'\n Object.setPrototypeOf(this, VerificationError.prototype)\n }\n}\n","import { lowercase } from '../../shared/display'\n\nconst getChunkedRawBody = async (req) => {\n if (req?.rawBody) {\n return req.rawBody\n }\n\n // TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405\n try {\n const _getRawBody = (await import('raw-body')).default\n\n if (!req.method || (lowercase(req.method) === 'get')) {\n return undefined\n }\n\n return _getRawBody(req).then((_rawBody) => _rawBody?.toString())\n } catch (error) {\n console.error(`Failed to import 'raw-body', please ensure the dependency is installed`)\n throw error\n }\n}\n\n// TODO: explore returning mutated request object adding on req.rawBody??\nexport const ensureRawBody = async (req) => (\n getChunkedRawBody(req)\n .catch((error) => {\n console.error(`Error getting raw body for '${req?.url}'`, error)\n throw error\n })\n)\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,"import {\n normalizeURIParts,\n prepareRequestOptions,\n getRequestMethod,\n} from './request'\nimport {\n isTrue,\n safeParse,\n stringEmpty,\n objectToSortedString,\n} from './display'\nimport { WebCrypto } from './WebCrypto'\n\nconst getUnixString = () => {\n const currentDate = new Date()\n const unixTimestamp = currentDate.getTime()\n return Math.floor(unixTimestamp / 1000).toString()\n}\n\nexport const getVerificationKeysData = async (publicKey, { crypto: _crypto, util: _util } = {}) => {\n if (stringEmpty(publicKey)) {\n return {}\n }\n\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n\n const _ephemeralStoreableKeyPair = await webCrypto.getStorableKeyPair(\n await webCrypto.generateKeyPair()\n )\n\n const _verificationKeyPair = await webCrypto.getVerificationKeys({\n publicKey,\n privateKey: _ephemeralStoreableKeyPair.privateKey,\n })\n\n return {\n publicKey,\n ephemeral: _ephemeralStoreableKeyPair,\n verification: _verificationKeyPair,\n }\n}\n\n// eslint-disable-next-line arrow-body-style\nexport const prepareVerificationRequest = ({ keysData: _keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util } = {}) => {\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n const disableRecryption = isTrue(_disableRecryption)\n\n return async (requestPath, { method: rawMethod, body: rawBody, headers: rawHeaders, ...requestOptions } = {}) => {\n let parsedBody = safeParse(rawBody)\n const method = getRequestMethod(parsedBody, rawMethod)\n\n if (disableRecryption || stringEmpty(_keysData?.publicKey)) {\n return [\n requestPath,\n prepareRequestOptions({\n method,\n body: parsedBody,\n headers: rawHeaders,\n ...requestOptions,\n }, requestPath)\n ]\n }\n\n const {\n verification: {\n derivedHMACKey,\n derivedSecretKey,\n } = {},\n ephemeral: {\n publicKey: ephemeralPublicKey,\n } = {},\n } = _keysData ?? {}\n\n if (!derivedHMACKey || !ephemeralPublicKey) {\n return undefined\n }\n\n if (parsedBody && derivedSecretKey) {\n parsedBody = await webCrypto.encryptMessage(JSON.stringify(parsedBody), derivedSecretKey)\n }\n\n const timestamp = getUnixString()\n const computedHMAC = await webCrypto.generateHMAC(\n objectToSortedString({\n body: parsedBody,\n method,\n timestamp,\n ...normalizeURIParts(requestPath),\n }),\n derivedHMACKey\n )\n\n return [\n requestPath,\n prepareRequestOptions({\n method,\n body: parsedBody,\n headers: {\n 'X-Authorization': `HMAC-SHA256 ${computedHMAC}`,\n 'X-Authorization-Timestamp': timestamp,\n 'X-Ephemeral-Key': ephemeralPublicKey,\n 'X-Public-Key': _keysData.publicKey,\n ...rawHeaders,\n },\n ...requestOptions,\n }, requestPath),\n derivedSecretKey\n ]\n }\n}\n\nexport const processVerificationResponse = ({ keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util } = {}) => {\n const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n const disableRecryption = isTrue(_disableRecryption)\n\n return async (encryptedResponse, _derivedSecretKey) => {\n const derivedSecretKey = _derivedSecretKey ?? keysData.verification?.derivedSecretKey\n console.warn(`>>> > VERIFYD > YEP > processVerificationResponse > disableRecryption:`, { disableRecryption, encryptedResponse })\n if (disableRecryption || !encryptedResponse || !derivedSecretKey) {\n return encryptedResponse\n }\n \n const decryptedMessage = await webCrypto.decryptMessage(encryptedResponse, derivedSecretKey)\n console.warn(`>>> > VERIFYD > YEP > processVerificationResponse > decryptedMessage:`, { decryptedMessage, parsedTrimmed: safeParse(decryptedMessage, true), parsed: safeParse(decryptedMessage) })\n return safeParse(decryptedMessage)\n }\n}\n\n"],"names":["REACT_SYMBOL","Symbol","for","isArray","value","undefined","Array","isSet","Set","isType","type","isReact","$$typeof","isClass","Object","getPrototypeOf","prototype","isTypeEnhanced","includes","String","safeTrim","trim","safeParse","matchQuoted","isTrue","startsWith","isParseable","JSON","parse","_ignore","ensureString","string","ensureArray","array","stringNotEmpty","stringable","length","stringEmpty","compareEntryKeys","string1","string2","localeCompare","objectToSortedString","object","separator","entries","ensureObject","sort","map","key","join","ensureLeadingSlash","replace","removeLeadingSlash","falsy","n","r","toString","toLocaleString","toPrimitive","valueOf","Proxy","freeze","get","t","hasOwnProperty","win","global","window","exists","variable","u","WebCrypto","constructor","crypto","_crypto","util","_util","this","subtle","getWebCrypto","import","default","error","console","Error","getTextDecoder","TextDecoder","getTextEncoder","TextEncoder","timingSafeEqual","value1","value2","result","i","stringToHex","stringValue","from","char","charCodeAt","padStart","hexToString","hexValue","match","byte","fromCharCode","parseInt","arrayBufferToString","arrayBuffer","uint8Array","Uint8Array","decode","arrayToArrayBuffer","ArrayBuffer","buffer","ensureArrayBuffer","arrayOrArrayBuffer","getKeyOperations","keyType","getKeyAlgorythm","name","namedCurve","generateKeyPair","generateKey","generateSharedSecret","generateHMAC","message","derivedKey","Encoder","signature","sign","encode","verifyHMAC","verifiableHMAC","calculatedHMAC","getStorableKey","exportedJWK","exportKey","stringify","restoreStorableKey","storableHex","keys","importKey","getStorableKeyPair","keyPair","storableKeys","restoreStorableKeyPair","restoredKeys","deriveSharedKey","publicKey","privateKey","deriveKey","public","deriveHMACKey","hash","getVerificationKeys","sharedKeyPair","derivedHMACKey","derivedSecretKey","encryptMessage","decryptedMessage","iv","getRandomValues","encodedMessage","ciphertext","encrypt","encryptedMessage","decryptMessage","encryptedArrayBuffer","slice","decryptedArrayBuffer","decrypt","TEMP_HOSTNAME","REMOVABLE_KEYS","HEADER_CONTENT_TYPE","HEADER_PUBLIC_KEY","HEADER_EPHEMERAL_KEY","HEADER_AUTHORIZATION_CUSTOM","HEADER_AUTHORIZATION_TIMESTAMP","CONTENT_TYPES","APPLICATION_JSON","getRequestMethod","body","_method","toUpperCase","prepareRequestOptions","method","_body","headers","_headers","requestOptions","_contentType","toLowerCase","normalizeURIParts","uri","urlObject","test","URL","convertToURL","forEach","searchParams","delete","hostname","origin","pathname","search","VerificationError","_data","super","code","data","setPrototypeOf","getChunkedRawBody","async","req","rawBody","_getRawBody","defaultValue","lowercase","then","_rawBody","ensureRawBody","catch","url","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","apply","SuppressedError","webCrypto","sharedSecret","sharedKey","keyPairs","params","_apiKey","apiKey","_ephemeralPublicKey","ephemeralPublicKey","_customAuthTimestamp","customAuthTimestamp","_customAuth","customAuth","_a","_uri","disableRecryption","_disableRecryption","isVerifiable","authProtocol","authSignature","split","verificationKeys","shared","warn","requestBody","verificationPayload","assign","timestamp","processResponse","response","_ephemeralStoreableKeyPair","ephemeral","verification","keysData","_keysData","requestPath","rawMethod","rawHeaders","parsedBody","unixTimestamp","Date","getTime","Math","floor","getUnixString","computedHMAC","encryptedResponse","_derivedSecretKey","parsedTrimmed","parsed"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAOO;;;;;;;;;;;;EAsCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAaM,+DA6CN;AAEM,0CAON;AAEM,8EAWN;AAEM,
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAOO;;;;;;;;;;;;EAsCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAaM,+DA6CN;AAEM,0CAON;AAEM,8EAWN;AAEM,sDA2BN;AAEM,kDAEN;AAGM,sDAGN;AAEM,uDAGN;AAEM,uDAGN;AAEM,wDAGN;AAEM,mDAIN;AAEM,wDAIN;AAGM,mDAEN;AAEM,uDAEN;AAGM,4DAEN;AAEM;;;WAQN;AAEM,kDAGN;AAEM,uDAEN;AAEM,8EAGN;AAEM,iFAGN;AAEM,qFAEN;AAEM,+CAEN;AAGM,kDAEN;AAEM,qDAEN;AAEM,2CAIN;AAEM,6DAEN;AAOM;;EAKN;AAEM,0FAyBN;AAkBM,6DAGN;AAEM,0DAEN;AAEM,yDAGN;AAEM,sDAEN;AAOM,0EAEN;AAEM,kEAUN;AAEM,6EAEN;AAEM,8EAKN;AAEM,yCAEN;AAEM,0EAEN;AAEM,sEAIN;AAgBM,gEAQN;AAEM,2CAEN;AAEM,sEAEN;AAEM,4CAEN;AAEM,uEAEN;AAEM,+CAEN;AAEM,sEAIN;AAEM,kDAEN;AAEM,6CAEN;AAEM,gDAGN;AAEM,+CASN;AAEM,8DA2EN;AAEM,wDAEN;AAEM,iEAEN;AAGM,yDAEN;AAEM,gEAEN;AAEM,wDAEN;AAEM,yDAEN;AAEM,yDAMN;AAEM,kEAQN;AAEM,yEAON;AAEM,+CAWN;AAEM,kDAUN;AAEM,oEAON;AAEM,6DAKN;AAEM,wDAGN;AAEM,mEAEN;AAEM,+CAEN;AAEM,iDAIN;AAEM,iEAWN;AAGM,wEASN;AAEM,0DAcN;AAEM,+DAEN;AAEM;;;;;EAWN;AAEM;;;;;;;;;;KA6BN;AAKM;;KAGN;AAEM;;EAEN;AAEM,yEAKN;AAEM,+DAEN;AAEM,sEAMN;AAEM,iEAEN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agnostack/verifyd",
|
|
3
|
-
"version": "2.1.2-beta.
|
|
3
|
+
"version": "2.1.2-beta.7",
|
|
4
4
|
"author": "agnoStack Dev <developers@agnostack.com> (https://agnostack.com)",
|
|
5
5
|
"owner": "agnoStack",
|
|
6
6
|
"description": "Please contact agnoStack via info@agnostack.com for any questions",
|