@agnostack/verifyd 2.0.2 → 2.1.0-beta.1
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/shared/WebCrypto.d.ts +2 -1
- package/dist/shared/WebCrypto.d.ts.map +1 -1
- package/dist/shared/WebCrypto.js +15 -10
- package/dist/shared/WebCrypto.js.map +1 -1
- package/dist/shared/authorization.d.ts +11 -0
- package/dist/shared/authorization.d.ts.map +1 -0
- package/dist/shared/authorization.js +33 -0
- package/dist/shared/authorization.js.map +1 -0
- package/dist/shared/display.d.ts +2 -2
- package/dist/shared/display.d.ts.map +1 -1
- package/dist/shared/display.js +8 -4
- package/dist/shared/display.js.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.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/WebCrypto.d.ts +2 -1
- package/dist/umd/lib/shared/WebCrypto.d.ts.map +1 -1
- package/dist/umd/lib/shared/authorization.d.ts +11 -0
- package/dist/umd/lib/shared/authorization.d.ts.map +1 -0
- package/dist/umd/lib/shared/display.d.ts +2 -2
- package/dist/umd/lib/shared/display.d.ts.map +1 -1
- package/dist/umd/lib/shared/index.d.ts +1 -0
- package/dist/umd/lib/shared/index.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [2.1.0-beta.1](https://github.com/agnostack/verifyd/compare/v2.0.2...v2.1.0-beta.1) (2024-03-11)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* added authorization/shared secret helpers ([6eea8aa](https://github.com/agnostack/verifyd/commit/6eea8aac539c848286c638c470198c790111da2d))
|
|
7
|
+
|
|
1
8
|
## [2.0.2](https://github.com/agnostack/verifyd/compare/v2.0.1...v2.0.2) (2024-02-28)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -15,7 +15,6 @@ export class WebCrypto {
|
|
|
15
15
|
arrayBufferToString(arrayBuffer: any): Promise<any>;
|
|
16
16
|
arrayToArrayBuffer(array: any): any;
|
|
17
17
|
ensureArrayBuffer(arrayOrArrayBuffer: any): any;
|
|
18
|
-
generateKeyPair(): Promise<any>;
|
|
19
18
|
getKeyOperations(keyType: any): string[];
|
|
20
19
|
getKeyAlgorythm(keyType: any): {
|
|
21
20
|
name: string;
|
|
@@ -24,6 +23,8 @@ export class WebCrypto {
|
|
|
24
23
|
name: string;
|
|
25
24
|
namedCurve: string;
|
|
26
25
|
};
|
|
26
|
+
generateKeyPair(): Promise<any>;
|
|
27
|
+
generateSharedSecret(): Promise<any>;
|
|
27
28
|
generateHMAC(message: any, derivedKey: any): Promise<string | undefined>;
|
|
28
29
|
verifyHMAC(message: any, derivedKey: any, verifiableHMAC: any): Promise<boolean>;
|
|
29
30
|
getStorableKey(key: any): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAIA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,6BAqBC;IAED,+BAkBC;IAED,+BAkBC;IAED,mDAiBC;IAED,sCAMC;IAED,mCAQC;IAED,oDAIC;IAED,oCAMC;IAED,gDAMC;IAED,
|
|
1
|
+
{"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAIA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,6BAqBC;IAED,+BAkBC;IAED,+BAkBC;IAED,mDAiBC;IAED,sCAMC;IAED,mCAQC;IAED,oDAIC;IAED,oCAMC;IAED,gDAMC;IAED,yCAkBC;IAED;;;;;;MAmBC;IAED,gCASC;IAED,qCASC;IAED,yEAiBC;IAED,iFAIC;IAED,0CAKC;IAED,iEAkBC;IAED,8CAUC;IAED,kDAUC;IAED;;;qBAoBC;IAED;;;qBAqBC;IAED;;;;;;;;;OAaC;IAED,sFAuBC;IAED,qEAuBC;CACF"}
|
package/dist/shared/WebCrypto.js
CHANGED
|
@@ -148,18 +148,9 @@ class WebCrypto {
|
|
|
148
148
|
? arrayOrArrayBuffer
|
|
149
149
|
: this.arrayToArrayBuffer(arrayOrArrayBuffer));
|
|
150
150
|
}
|
|
151
|
-
generateKeyPair() {
|
|
152
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
-
const crypto = yield this.getWebCrypto();
|
|
154
|
-
const keyPair = yield crypto.subtle.generateKey({
|
|
155
|
-
name: 'ECDH',
|
|
156
|
-
namedCurve: 'P-256',
|
|
157
|
-
}, true, ['deriveKey']);
|
|
158
|
-
return keyPair;
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
151
|
getKeyOperations(keyType) {
|
|
162
152
|
switch (keyType) {
|
|
153
|
+
case 'paired':
|
|
163
154
|
case 'private':
|
|
164
155
|
case 'privateKey': {
|
|
165
156
|
return ['deriveKey'];
|
|
@@ -193,6 +184,20 @@ class WebCrypto {
|
|
|
193
184
|
}
|
|
194
185
|
}
|
|
195
186
|
}
|
|
187
|
+
generateKeyPair() {
|
|
188
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
189
|
+
const crypto = yield this.getWebCrypto();
|
|
190
|
+
const keyPair = yield crypto.subtle.generateKey(this.getKeyAlgorythm('paired'), true, this.getKeyOperations('paired'));
|
|
191
|
+
return keyPair;
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
generateSharedSecret() {
|
|
195
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
196
|
+
const crypto = yield this.getWebCrypto();
|
|
197
|
+
const keyPair = yield crypto.subtle.generateKey(this.getKeyAlgorythm('sharedSecret'), true, this.getKeyOperations('sharedSecret'));
|
|
198
|
+
return keyPair;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
196
201
|
generateHMAC(message, derivedKey) {
|
|
197
202
|
return __awaiter(this, void 0, void 0, function* () {
|
|
198
203
|
if (!message || !derivedKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function getAuthorizationHelpers(sharedSecret: any, { crypto: _crypto, util: _util }?: {
|
|
2
|
+
crypto: any;
|
|
3
|
+
util: any;
|
|
4
|
+
}): Promise<{
|
|
5
|
+
encrypt?: undefined;
|
|
6
|
+
decrypt?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
encrypt: (decryptedMessage: any) => Promise<number[] | undefined>;
|
|
9
|
+
decrypt: (encryptedMessage: any) => Promise<any>;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=authorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../../src/shared/authorization.js"],"names":[],"mappings":"AAGO;;;;;;;;;GAyBN"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getAuthorizationHelpers = void 0;
|
|
13
|
+
const display_1 = require("./display");
|
|
14
|
+
const WebCrypto_1 = require("./WebCrypto");
|
|
15
|
+
const getAuthorizationHelpers = (sharedSecret, { crypto: _crypto, util: _util } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const webCrypto = new WebCrypto_1.WebCrypto({ crypto: _crypto, util: _util });
|
|
17
|
+
if ((0, display_1.stringEmpty)(sharedSecret)) {
|
|
18
|
+
sharedSecret = yield webCrypto.getStorableKeyPair(yield webCrypto.generateSharedSecret());
|
|
19
|
+
console.log(`>>> > TEMP > getAuthorizationHelpers > sharedSecret:`, { sharedSecret });
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
const sharedKey = yield webCrypto.restoreStorableKey('sharedSecret', sharedSecret);
|
|
23
|
+
return {
|
|
24
|
+
encrypt: (decryptedMessage) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
return (webCrypto.encryptMessage(decryptedMessage, sharedKey));
|
|
26
|
+
}),
|
|
27
|
+
decrypt: (encryptedMessage) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
return (webCrypto.decryptMessage(encryptedMessage, sharedKey));
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
exports.getAuthorizationHelpers = getAuthorizationHelpers;
|
|
33
|
+
//# sourceMappingURL=authorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/shared/authorization.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAuC;AACvC,2CAAuC;AAEhC,MAAM,uBAAuB,GAAG,CAAO,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;IACnG,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAEjE,IAAI,IAAA,qBAAW,EAAC,YAAY,CAAC,EAAE;QAC7B,YAAY,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAC/C,MAAM,SAAS,CAAC,oBAAoB,EAAE,CACvC,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,sDAAsD,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QAErF,OAAO,EAAE,CAAA;KACV;IAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAClD,cAAc,EACd,YAAY,CACb,CAAA;IAED,OAAO;QACL,OAAO,EAAE,CAAO,gBAAgB,EAAE,EAAE;YAAC,OAAA,CACnC,SAAS,CAAC,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CACtD,CAAA;UAAA;QACD,OAAO,EAAE,CAAO,gBAAgB,EAAE,EAAE;YAAC,OAAA,CACnC,SAAS,CAAC,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CACtD,CAAA;UAAA;KACF,CAAA;AACH,CAAC,CAAA,CAAA;AAzBY,QAAA,uBAAuB,2BAyBnC"}
|
package/dist/shared/display.d.ts
CHANGED
|
@@ -60,7 +60,7 @@ export function lowercase(string: any, defaultValue?: string): string;
|
|
|
60
60
|
export function slugify(string: any): string;
|
|
61
61
|
export function capitalize(string: any): string;
|
|
62
62
|
export function camelCase(string: any): string;
|
|
63
|
-
export function titleCase(
|
|
63
|
+
export function titleCase(_string: any, _overrides: any): any;
|
|
64
64
|
export function removeLeadingSlash(string: any): string;
|
|
65
65
|
export function removeLeadingTrailingQuotes(string: any): string;
|
|
66
66
|
export function removeTrailingSlash(string: any): string;
|
|
@@ -88,7 +88,7 @@ export function parseProject(packageInfo: any): (string | {
|
|
|
88
88
|
appName: any;
|
|
89
89
|
siteName: any;
|
|
90
90
|
shortName: any;
|
|
91
|
-
companyName:
|
|
91
|
+
companyName: any;
|
|
92
92
|
projectName: string;
|
|
93
93
|
})[];
|
|
94
94
|
export function querystringToObject(queryString: any): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAIO;;;;;EAmCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAEM,+DAwBN;AAEM,0CAON;AAEM,sDAeN;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,0FAqBN;AAMM,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,6CAEN;AAEM,gDAGN;AAEM,+CASN;AAEM,
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAIO;;;;;EAmCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAEM,+DAwBN;AAEM,0CAON;AAEM,sDAeN;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,0FAqBN;AAMM,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,6CAEN;AAEM,gDAGN;AAEM,+CASN;AAEM,8DAqEN;AAEM,wDAEN;AAEM,iEAEN;AAGM,yDAEN;AAEM,gEAEN;AAEM,wDAEN;AAEM,yDAEN;AAEM,kEAQN;AAEM,yEAON;AAEM,+CAWN;AAEM,kDAUN;AAEM,oEAON;AAEM,6DAKN;AAEM,wDAGN;AAGM,wEASN;AAEM,+DAcN;AAEM;;;;;EAWN;AAEM;;;;;;;;KAkBN;AAMM;;EAON;AAEM,yEAKN;AAEM,+DAEN;AAEM,sEAMN"}
|
package/dist/shared/display.js
CHANGED
|
@@ -317,12 +317,16 @@ const camelCase = (string) => ((0, exports.stringNotEmpty)(string)
|
|
|
317
317
|
}).split(' ').join('')
|
|
318
318
|
: '');
|
|
319
319
|
exports.camelCase = camelCase;
|
|
320
|
-
const titleCase = (
|
|
321
|
-
if (!(0, exports.stringNotEmpty)(
|
|
320
|
+
const titleCase = (_string, _overrides) => {
|
|
321
|
+
if (!(0, exports.stringNotEmpty)(_string)) {
|
|
322
322
|
return '';
|
|
323
323
|
}
|
|
324
|
-
const overrides = Object.assign({ 'add-ons': 'Add-Ons', agnostack: 'agnoStack', ai: 'AI', b2b: 'B2B', b2c: 'B2C', cartcollab: 'CartCollab', 'cartcollab(sm)': 'CartCollab(SM)', chatgpt: 'ChatGPT', covid: 'COVID', covid19: 'COVID-19', 'covid-19': 'COVID-19', crm: 'CRM', elasticpath: 'Elastic Path', ecommerce: 'eCommerce', 'e-commerce': 'eCommerce', faqs: 'FAQs', gpt: 'GPT', ipaas: 'iPaaS', 'smile.io': 'Smile.io', 'stamped.io': 'Stamped.io', 'judge.me': 'Judge.me', 'influence.io': 'Influence.io', keepsmallstrong: 'KeepSmallStrong', loyaltylion: 'LoyaltyLion', openai: 'OpenAI', paypal: 'PayPal', 'postscript.io': 'Postscript.io', recharge: 'ReCharge', 'stay.ai': 'Stay.ai', 'stay ai': 'Stay Ai', shipengine: 'ShipEngine', shipperhq: 'ShipperHQ', shipstation: 'ShipStation', taxjar: 'TaxJar', yotpo: 'YotPo' }, _overrides);
|
|
325
|
-
const
|
|
324
|
+
const overrides = Object.assign({ 'add-ons': 'Add-Ons', agnostack: 'agnoStack', ai: 'AI', b2b: 'B2B', b2c: 'B2C', cartcollab: 'CartCollab', 'cartcollab(sm)': 'CartCollab(SM)', chatgpt: 'ChatGPT', covid: 'COVID', covid19: 'COVID-19', 'covid-19': 'COVID-19', crm: 'CRM', elasticpath: 'Elastic Path', ecommerce: 'eCommerce', 'e-commerce': 'eCommerce', faqs: 'FAQs', gpt: 'GPT', ipaas: 'iPaaS', 'smile.io': 'Smile.io', 'stamped.io': 'Stamped.io', 'judge.me': 'Judge.me', 'influence.io': 'Influence.io', keepsmallstrong: 'KeepSmallStrong', loyaltylion: 'LoyaltyLion', 'mach alliance': 'MACH Alliance', openai: 'OpenAI', paypal: 'PayPal', 'postscript.io': 'Postscript.io', recharge: 'ReCharge', 'stay.ai': 'Stay.ai', 'stay ai': 'Stay Ai', shipengine: 'ShipEngine', shipperhq: 'ShipperHQ', shipstation: 'ShipStation', taxjar: 'TaxJar', yotpo: 'YotPo' }, _overrides);
|
|
325
|
+
const string = (0, exports.lowercase)(_string);
|
|
326
|
+
if (overrides[string]) {
|
|
327
|
+
return overrides[string];
|
|
328
|
+
}
|
|
329
|
+
const stringParts = string
|
|
326
330
|
.split(' ')
|
|
327
331
|
.reduce((_stringParts, _stringPart) => {
|
|
328
332
|
var _a;
|
|
@@ -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/shared/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AACA,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
|
package/dist/shared/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
// export * from './constants'
|
|
18
|
+
__exportStar(require("./authorization"), exports);
|
|
18
19
|
__exportStar(require("./request"), exports);
|
|
19
20
|
__exportStar(require("./verification"), exports);
|
|
20
21
|
__exportStar(require("./WebCrypto"), exports);
|
package/dist/shared/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8BAA8B;AAC9B,4CAAyB;AACzB,iDAA8B;AAC9B,8CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8BAA8B;AAC9B,kDAA+B;AAC/B,4CAAyB;AACzB,iDAA8B;AAC9B,8CAA2B"}
|
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=(e,t)=>null!=e&&typeof e===t,r=(e,r)=>(t(e,"string")&&(r&&(e=(e=>(t(e,"string")&&(e=e.trim()),e))(e)),(e.startsWith("{")||e.startsWith("[")||e.startsWith('"'))&&(e=JSON.parse(e))),e),i=e=>e?`${e}`:"",n=(e=[])=>e?Array.isArray(e)?e:[e]:[],o=e=>{const t=i(e);return t.length>0&&!["null","undefined"].includes(t)},a=e=>!o(e),s=([e],[t])=>((e,t)=>a(e)?1:a(t)?-1:i(e).localeCompare(t))(e,t),c=(e,t="")=>Object.entries((e=>e??{})(e)).sort(s).map((([e,t])=>`${e}=${t}`)).join(t),y=e=>`/${(e=>i(e).replace(/^\//,""))(e)}`,u=(e,t)=>{const r=i(e);return![...n(t),"","false"].includes(r)},l="xyz.com",d=["shop","host"],p="Content-Type",h="X-Public-Key",f="X-Ephemeral-Key",g="X-Authorization",w="X-Authorization-Timestamp",b={APPLICATION_JSON:"application/json"},m=(e,t)=>i(t??(e?"POST":"GET")).toUpperCase(),v=({method:e,body:t,headers:i,...n}={})=>{const o=m(t,e),a=i?.[p.toLowerCase()],s={[p]:a||b.APPLICATION_JSON,...i};let c=t;return c&&s[p].startsWith(b.APPLICATION_JSON)&&(c=JSON.stringify(r(c))),{method:o,headers:s,...c&&"GET"!==o&&{body:c},...n}},K=e=>{const t=(e=>{if(a(e))return;return/^(https?:\/\/).+/i.test(e)?new URL(e):new URL(`https://${l}${y(e)}`)})(e);if(t)return d.forEach((e=>t.searchParams.delete(e))),{...t.hostname!==l&&{origin:t.origin},pathname:t.pathname,search:t.search}};var A,C=((A=function(){return C}).toString=A.toLocaleString=A[Symbol.toPrimitive]=function(){return""},A.valueOf=function(){return!1},new Proxy(Object.freeze(A),{get:function(e,t){return e.hasOwnProperty(t)?e[t]:C}}));let S=global.window,T=e=>!function(e){return e===C}(e),E=void 0!==S?S:C;class x{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(T(E)&&"function"==typeof E?.TextDecoder)return E.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(T(E)&&"function"==typeof E?.TextEncoder)return E.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(i(e),(e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")}hexToString(e){return n(i(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)}async generateKeyPair(){const e=await this.getWebCrypto();return await e.subtle.generateKey({name:"ECDH",namedCurve:"P-256"},!0,["deriveKey"])}getKeyOperations(e){switch(e){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 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)}}class H 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,H.prototype)}}const P=async e=>{if(e?.rawBody)return e.rawBody;try{const t=(await import("raw-body")).default;if(!e.method||"get"===((e,t="")=>o(e)?i(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}},O=async e=>P(e).catch((t=>{throw console.error(`Error getting raw body for '${e?.url}'`,t),t}));function M(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=b,e.HEADER_AUTHORIZATION_CUSTOM=g,e.HEADER_AUTHORIZATION_TIMESTAMP=w,e.HEADER_CONTENT_TYPE=p,e.HEADER_EPHEMERAL_KEY=f,e.HEADER_PUBLIC_KEY=h,e.VerificationError=H,e.WebCrypto=x,e.ensureRawBody=O,e.generateStorableKeyPairs=({crypto:e,util:t}={})=>M(void 0,void 0,void 0,(function*(){const r=new x({crypto:e,util:t}),i=yield r.generateKeyPair();return r.getStorableKeyPair({publicKey:i.publicKey,privateKey:i.privateKey})})),e.getRequestMethod=m,e.getVerificationHelpers=({keyPairs:e,crypto:t,util:n}={keyPairs:{}})=>{const o=new x({crypto:t,util:n});return(t,n)=>M(void 0,void 0,void 0,(function*(){var a;const{[h]:s,[h.toLowerCase()]:y=s,[f]:l,[f.toLowerCase()]:d=l,[w]:p,[w.toLowerCase()]:b=p,[g]:v,[g.toLowerCase()]:A=v}=null!==(a=t.headers)&&void 0!==a?a:{},{uri:C,disableRecryption:S}=null!=n?n:{},T=null!=C?C:t.url,E=u(S);let x=!1;try{const[n,a]=i(A).split(" ");let s;x=u(y&&d&&b&&a&&"HMAC-SHA256"===n&&(null==e?void 0:e.shared));const l=yield O(t);let p=r(l);if(x){if(!(y&&d&&b&&a&&"HMAC-SHA256"===n&&(null==e?void 0:e.shared)&&y===e.shared.publicKey))throw new H("Invalid or missing authorization",{code:401});if(s=yield o.getVerificationKeys({publicKey:d,privateKey:e.shared.privateKey}),!s)throw new H("Invalid or missing verification",{code:412});const i=c(Object.assign({method:m(l,t.method),timestamp:b,body:p},K(T)));if(!(yield o.verifyHMAC(i,s.derivedHMACKey,a)))throw new H("Invalid or missing verification",{code:403});if(!E&&p){const e=yield o.decryptMessage(p,s.derivedSecretKey);p=r(e)}}return{rawBody:l,requestBody:p,processResponse:e=>M(void 0,void 0,void 0,(function*(){return e&&!E&&x&&(null==s?void 0:s.derivedSecretKey)?o.encryptMessage(JSON.stringify(e),s.derivedSecretKey):e}))}}catch(e){throw console.error(`Error handling request verification for '${T}'`,{error:e,isVerifiable:x,disableRecryption:E}),e}}))},e.getVerificationKeysData=async(e,{crypto:t,util:r}={})=>{if(a(e))return{};const i=new x({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=K,e.prepareRequestOptions=v,e.prepareVerificationRequest=({keysData:e,disableRecryption:t,crypto:i,util:n}={})=>{const o=new x({crypto:i,util:n}),s=u(t);return async(t,{method:i,body:n,headers:y,...u}={})=>{let l=r(n);const d=m(l,i);if(s||a(e?.publicKey))return[t,v({method:d,body:l,headers:y,...u})];const{verification:{derivedHMACKey:p,derivedSecretKey:h}={},ephemeral:{publicKey:f}={}}=e??{};if(!p||!f)return;l&&h&&(l=await o.encryptMessage(JSON.stringify(l),h));const g=(()=>{const e=(new Date).getTime();return Math.floor(e/1e3).toString()})(),w=await o.generateHMAC(c({body:l,method:d,timestamp:g,...K(t)}),p);return[t,v({method:d,body:l,headers:{"X-Authorization":`HMAC-SHA256 ${w}`,"X-Authorization-Timestamp":g,"X-Ephemeral-Key":f,"X-Public-Key":e.publicKey,...y},...u}),h]}},e.processVerificationResponse=({keysData:e,disableRecryption:t,crypto:i,util:n}={})=>{const o=new x({crypto:i,util:n}),a=u(t);return async(t,i)=>{const n=i??e.verification?.derivedSecretKey;if(a||!t||!n)return t;const s=await o.decryptMessage(t,n);return r(s)}},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=(e,t)=>null!=e&&typeof e===t,r=(e,r)=>(t(e,"string")&&(r&&(e=(e=>(t(e,"string")&&(e=e.trim()),e))(e)),(e.startsWith("{")||e.startsWith("[")||e.startsWith('"'))&&(e=JSON.parse(e))),e),i=e=>e?`${e}`:"",n=(e=[])=>e?Array.isArray(e)?e:[e]:[],o=e=>{const t=i(e);return t.length>0&&!["null","undefined"].includes(t)},a=e=>!o(e),s=([e],[t])=>((e,t)=>a(e)?1:a(t)?-1:i(e).localeCompare(t))(e,t),c=(e,t="")=>Object.entries((e=>e??{})(e)).sort(s).map((([e,t])=>`${e}=${t}`)).join(t),y=e=>`/${(e=>i(e).replace(/^\//,""))(e)}`,u=(e,t)=>{const r=i(e);return![...n(t),"","false"].includes(r)};var l,d=((l=function(){return d}).toString=l.toLocaleString=l[Symbol.toPrimitive]=function(){return""},l.valueOf=function(){return!1},new Proxy(Object.freeze(l),{get:function(e,t){return e.hasOwnProperty(t)?e[t]:d}}));let p=global.window,h=e=>!function(e){return e===d}(e),f=void 0!==p?p:d;class g{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(h(f)&&"function"==typeof f?.TextDecoder)return f.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(h(f)&&"function"==typeof f?.TextEncoder)return f.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(i(e),(e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")}hexToString(e){return n(i(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 w="xyz.com",b=["shop","host"],m="Content-Type",K="X-Public-Key",v="X-Ephemeral-Key",A="X-Authorization",S="X-Authorization-Timestamp",C={APPLICATION_JSON:"application/json"},T=(e,t)=>i(t??(e?"POST":"GET")).toUpperCase(),E=({method:e,body:t,headers:i,...n}={})=>{const o=T(t,e),a=i?.[m.toLowerCase()],s={[m]:a||C.APPLICATION_JSON,...i};let c=t;return c&&s[m].startsWith(C.APPLICATION_JSON)&&(c=JSON.stringify(r(c))),{method:o,headers:s,...c&&"GET"!==o&&{body:c},...n}},O=e=>{const t=(e=>{if(a(e))return;return/^(https?:\/\/).+/i.test(e)?new URL(e):new URL(`https://${w}${y(e)}`)})(e);if(t)return b.forEach((e=>t.searchParams.delete(e))),{...t.hostname!==w&&{origin:t.origin},pathname:t.pathname,search:t.search}};class x 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,x.prototype)}}const H=async e=>{if(e?.rawBody)return e.rawBody;try{const t=(await import("raw-body")).default;if(!e.method||"get"===((e,t="")=>o(e)?i(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}},P=async e=>H(e).catch((t=>{throw console.error(`Error getting raw body for '${e?.url}'`,t),t}));function M(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=C,e.HEADER_AUTHORIZATION_CUSTOM=A,e.HEADER_AUTHORIZATION_TIMESTAMP=S,e.HEADER_CONTENT_TYPE=m,e.HEADER_EPHEMERAL_KEY=v,e.HEADER_PUBLIC_KEY=K,e.VerificationError=x,e.WebCrypto=g,e.ensureRawBody=P,e.generateStorableKeyPairs=({crypto:e,util:t}={})=>M(void 0,void 0,void 0,(function*(){const r=new g({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}={})=>{const i=new g({crypto:t,util:r});if(a(e))return e=await i.getStorableKeyPair(await i.generateSharedSecret()),{};const n=await i.restoreStorableKey("sharedSecret",e);return{encrypt:async e=>i.encryptMessage(e,n),decrypt:async e=>i.decryptMessage(e,n)}},e.getRequestMethod=T,e.getVerificationHelpers=({keyPairs:e,crypto:t,util:n}={keyPairs:{}})=>{const o=new g({crypto:t,util:n});return(t,n)=>M(void 0,void 0,void 0,(function*(){var a;const{[K]:s,[K.toLowerCase()]:y=s,[v]:l,[v.toLowerCase()]:d=l,[S]:p,[S.toLowerCase()]:h=p,[A]:f,[A.toLowerCase()]:g=f}=null!==(a=t.headers)&&void 0!==a?a:{},{uri:w,disableRecryption:b}=null!=n?n:{},m=null!=w?w:t.url,C=u(b);let E=!1;try{const[n,a]=i(g).split(" ");let s;E=u(y&&d&&h&&a&&"HMAC-SHA256"===n&&(null==e?void 0:e.shared));const l=yield P(t);let p=r(l);if(E){if(!(y&&d&&h&&a&&"HMAC-SHA256"===n&&(null==e?void 0:e.shared)&&y===e.shared.publicKey))throw new x("Invalid or missing authorization",{code:401});if(s=yield o.getVerificationKeys({publicKey:d,privateKey:e.shared.privateKey}),!s)throw new x("Invalid or missing verification",{code:412});const i=c(Object.assign({method:T(l,t.method),timestamp:h,body:p},O(m)));if(!(yield o.verifyHMAC(i,s.derivedHMACKey,a)))throw new x("Invalid or missing verification",{code:403});if(!C&&p){const e=yield o.decryptMessage(p,s.derivedSecretKey);p=r(e)}}return{rawBody:l,requestBody:p,processResponse:e=>M(void 0,void 0,void 0,(function*(){return e&&!C&&E&&(null==s?void 0:s.derivedSecretKey)?o.encryptMessage(JSON.stringify(e),s.derivedSecretKey):e}))}}catch(e){throw console.error(`Error handling request verification for '${m}'`,{error:e,isVerifiable:E,disableRecryption:C}),e}}))},e.getVerificationKeysData=async(e,{crypto:t,util:r}={})=>{if(a(e))return{};const i=new g({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=O,e.prepareRequestOptions=E,e.prepareVerificationRequest=({keysData:e,disableRecryption:t,crypto:i,util:n}={})=>{const o=new g({crypto:i,util:n}),s=u(t);return async(t,{method:i,body:n,headers:y,...u}={})=>{let l=r(n);const d=T(l,i);if(s||a(e?.publicKey))return[t,E({method:d,body:l,headers:y,...u})];const{verification:{derivedHMACKey:p,derivedSecretKey:h}={},ephemeral:{publicKey:f}={}}=e??{};if(!p||!f)return;l&&h&&(l=await o.encryptMessage(JSON.stringify(l),h));const g=(()=>{const e=(new Date).getTime();return Math.floor(e/1e3).toString()})(),w=await o.generateHMAC(c({body:l,method:d,timestamp:g,...O(t)}),p);return[t,E({method:d,body:l,headers:{"X-Authorization":`HMAC-SHA256 ${w}`,"X-Authorization-Timestamp":g,"X-Ephemeral-Key":f,"X-Public-Key":e.publicKey,...y},...u}),h]}},e.processVerificationResponse=({keysData:e,disableRecryption:t,crypto:i,util:n}={})=>{const o=new g({crypto:i,util:n}),a=u(t);return async(t,i)=>{const n=i??e.verification?.derivedSecretKey;if(a||!t||!n)return t;const s=await o.decryptMessage(t,n);return r(s)}},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","../../../src/shared/request.js","../../../node_modules/browser-monads-ts/dist/browser-monads-ts.es.js","../../../src/shared/WebCrypto.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 verifyd and lib-core (and lib-utils-js at bottom)\nexport const normalizeShopifyId = (shopifyData) => {\n const isString = isType(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 hasEntityId = stringNotEmpty(entity_id)\n const hasEntityType = stringNotEmpty(entity_type)\n\n return {\n ...stringNotEmpty(id) && { id },\n ...hasEntityId && { entity_id },\n ...hasEntityType && { entity_type },\n ...(hasEntityId && hasEntityType) && {\n gid: `gid://shopify/${entity_type}/${entity_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\nexport const isTypeEnhanced = (value, type) => {\n switch (true) {\n case (type === 'set'): {\n return isSet(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 )\n }\n\n default: {\n return isType(value, type)\n }\n }\n}\n\nexport const safeTrim = (value) => {\n if (isType(value, 'string')) {\n // eslint-disable-next-line no-param-reassign\n value = value.trim()\n }\n\n return value\n}\n\nexport const safeParse = (value, trim) => {\n if (isType(value, 'string')) {\n if (trim) {\n // eslint-disable-next-line no-param-reassign\n value = safeTrim(value)\n }\n\n if (value.startsWith('{') || value.startsWith('[') || value.startsWith('\"')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.parse(value)\n }\n }\n\n // TODO: should this be value ?? {}\n return value\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 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 return {\n ..._cleanedObject,\n [key]: value,\n }\n }, {})\n)\n\nconst cleanObjectValue = (value, allowEmptyLeafs, isEmptyCallback) => (\n isType(value, 'object') ? cleanObject(value, allowEmptyLeafs, isEmptyCallback) : value\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 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 stringNotEmpty(string)\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)\n\nexport const titleCase = (string, _overrides) => {\n if (!stringNotEmpty(string)) {\n return ''\n }\n\n const overrides = {\n 'add-ons': 'Add-Ons',\n agnostack: 'agnoStack',\n ai: 'AI',\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 '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 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 yotpo: 'YotPo',\n ..._overrides,\n }\n\n const stringParts = lowercase(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 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\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 parseKeywordGroups = (keywordGroups) => {\n const parsedKeywords = ensureArray(keywordGroups).reduce((_parsedKeywords, keywordGroup) => ([\n ..._parsedKeywords,\n ...ensureArray(keywordGroup).reduce((_parsedGroupKeywords, keyword) => {\n const keywords = splitCommas(keyword)\n\n return [\n ..._parsedGroupKeywords,\n ...keywords.filter((_keyword) => stringNotEmpty(_keyword))\n ]\n }, [])\n ]), [])\n\n return [...new Set(parsedKeywords)].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 { shortName, owner: _appOwner, name: _name, appName: _appName, keywords, siteName: _siteName } = 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 companyName,\n projectName,\n }, organization, name]\n}\n\n// #endregion lib-core\n\n// #region lib-utils-js\n\nexport const querystringToObject = (queryString) => {\n if (stringEmpty(queryString)) {\n return {}\n }\n\n const urlParams = new URLSearchParams(queryString)\n return Object.fromEntries(urlParams)\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","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","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 async generateKeyPair() {\n const crypto = await this.getWebCrypto()\n const keyPair = await crypto.subtle.generateKey(\n {\n name: 'ECDH',\n namedCurve: 'P-256',\n },\n true,\n ['deriveKey']\n )\n\n return keyPair\n }\n\n getKeyOperations(keyType) {\n switch (keyType) {\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 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","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 if (disableRecryption || !encryptedResponse || !derivedSecretKey) {\n return encryptedResponse\n }\n \n const decryptedMessage = await webCrypto.decryptMessage(encryptedResponse, derivedSecretKey)\n return safeParse(decryptedMessage)\n }\n}\n\n"],"names":["isType","value","type","undefined","safeParse","trim","safeTrim","startsWith","JSON","parse","ensureString","string","ensureArray","array","Array","isArray","stringNotEmpty","stringable","length","includes","stringEmpty","compareEntryKeys","string1","string2","localeCompare","objectToSortedString","object","separator","Object","entries","ensureObject","sort","map","key","join","ensureLeadingSlash","replace","removeLeadingSlash","isTrue","falsy","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","stringify","normalizeURIParts","uri","urlObject","test","URL","convertToURL","forEach","searchParams","delete","hostname","origin","pathname","search","n","r","toString","toLocaleString","Symbol","toPrimitive","valueOf","Proxy","freeze","get","t","hasOwnProperty","win","global","window","exists","variable","u","WebCrypto","constructor","crypto","_crypto","util","_util","this","subtle","getWebCrypto","import","default","_ignore","error","console","Error","getTextDecoder","TextDecoder","getTextEncoder","TextEncoder","timingSafeEqual","value1","value2","result","i","stringToHex","stringValue","from","char","charCodeAt","padStart","hexToString","hexValue","match","byte","String","fromCharCode","parseInt","arrayBufferToString","arrayBuffer","uint8Array","Uint8Array","decode","arrayToArrayBuffer","ArrayBuffer","buffer","ensureArrayBuffer","arrayOrArrayBuffer","generateKeyPair","generateKey","name","namedCurve","getKeyOperations","keyType","getKeyAlgorythm","generateHMAC","message","derivedKey","Encoder","signature","sign","encode","verifyHMAC","verifiableHMAC","calculatedHMAC","getStorableKey","exportedJWK","exportKey","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","VerificationError","_data","super","code","data","setPrototypeOf","prototype","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","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"],"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 verifyd and lib-core (and lib-utils-js at bottom)\nexport const normalizeShopifyId = (shopifyData) => {\n const isString = isType(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 hasEntityId = stringNotEmpty(entity_id)\n const hasEntityType = stringNotEmpty(entity_type)\n\n return {\n ...stringNotEmpty(id) && { id },\n ...hasEntityId && { entity_id },\n ...hasEntityType && { entity_type },\n ...(hasEntityId && hasEntityType) && {\n gid: `gid://shopify/${entity_type}/${entity_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\nexport const isTypeEnhanced = (value, type) => {\n switch (true) {\n case (type === 'set'): {\n return isSet(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 )\n }\n\n default: {\n return isType(value, type)\n }\n }\n}\n\nexport const safeTrim = (value) => {\n if (isType(value, 'string')) {\n // eslint-disable-next-line no-param-reassign\n value = value.trim()\n }\n\n return value\n}\n\nexport const safeParse = (value, trim) => {\n if (isType(value, 'string')) {\n if (trim) {\n // eslint-disable-next-line no-param-reassign\n value = safeTrim(value)\n }\n\n if (value.startsWith('{') || value.startsWith('[') || value.startsWith('\"')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.parse(value)\n }\n }\n\n // TODO: should this be value ?? {}\n return value\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 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 return {\n ..._cleanedObject,\n [key]: value,\n }\n }, {})\n)\n\nconst cleanObjectValue = (value, allowEmptyLeafs, isEmptyCallback) => (\n isType(value, 'object') ? cleanObject(value, allowEmptyLeafs, isEmptyCallback) : value\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 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 stringNotEmpty(string)\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)\n\nexport const titleCase = (_string, _overrides) => {\n if (!stringNotEmpty(_string)) {\n return ''\n }\n\n const overrides = {\n 'add-ons': 'Add-Ons',\n agnostack: 'agnoStack',\n ai: 'AI',\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 '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 yotpo: 'YotPo',\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 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\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 parseKeywordGroups = (keywordGroups) => {\n const parsedKeywords = ensureArray(keywordGroups).reduce((_parsedKeywords, keywordGroup) => ([\n ..._parsedKeywords,\n ...ensureArray(keywordGroup).reduce((_parsedGroupKeywords, keyword) => {\n const keywords = splitCommas(keyword)\n\n return [\n ..._parsedGroupKeywords,\n ...keywords.filter((_keyword) => stringNotEmpty(_keyword))\n ]\n }, [])\n ]), [])\n\n return [...new Set(parsedKeywords)].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 { shortName, owner: _appOwner, name: _name, appName: _appName, keywords, siteName: _siteName } = 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 companyName,\n projectName,\n }, organization, name]\n}\n\n// #endregion lib-core\n\n// #region lib-utils-js\n\nexport const querystringToObject = (queryString) => {\n if (stringEmpty(queryString)) {\n return {}\n }\n\n const urlParams = new URLSearchParams(queryString)\n return Object.fromEntries(urlParams)\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","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 const webCrypto = new WebCrypto({ crypto: _crypto, util: _util })\n\n if (stringEmpty(sharedSecret)) {\n sharedSecret = await webCrypto.getStorableKeyPair(\n await webCrypto.generateSharedSecret()\n )\n console.log(`>>> > TEMP > getAuthorizationHelpers > sharedSecret:`, { sharedSecret })\n\n return {}\n }\n\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 if (disableRecryption || !encryptedResponse || !derivedSecretKey) {\n return encryptedResponse\n }\n \n const decryptedMessage = await webCrypto.decryptMessage(encryptedResponse, derivedSecretKey)\n return safeParse(decryptedMessage)\n }\n}\n\n"],"names":["isType","value","type","undefined","safeParse","trim","safeTrim","startsWith","JSON","parse","ensureString","string","ensureArray","array","Array","isArray","stringNotEmpty","stringable","length","includes","stringEmpty","compareEntryKeys","string1","string2","localeCompare","objectToSortedString","object","separator","Object","entries","ensureObject","sort","map","key","join","ensureLeadingSlash","replace","removeLeadingSlash","isTrue","falsy","n","r","toString","toLocaleString","Symbol","toPrimitive","valueOf","Proxy","freeze","get","t","hasOwnProperty","win","global","window","exists","variable","u","WebCrypto","constructor","crypto","_crypto","util","_util","this","subtle","getWebCrypto","import","default","_ignore","error","console","Error","getTextDecoder","TextDecoder","getTextEncoder","TextEncoder","timingSafeEqual","value1","value2","result","i","stringToHex","stringValue","from","char","charCodeAt","padStart","hexToString","hexValue","match","byte","String","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","prototype","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"],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@ export class WebCrypto {
|
|
|
15
15
|
arrayBufferToString(arrayBuffer: any): Promise<any>;
|
|
16
16
|
arrayToArrayBuffer(array: any): any;
|
|
17
17
|
ensureArrayBuffer(arrayOrArrayBuffer: any): any;
|
|
18
|
-
generateKeyPair(): Promise<any>;
|
|
19
18
|
getKeyOperations(keyType: any): string[];
|
|
20
19
|
getKeyAlgorythm(keyType: any): {
|
|
21
20
|
name: string;
|
|
@@ -24,6 +23,8 @@ export class WebCrypto {
|
|
|
24
23
|
name: string;
|
|
25
24
|
namedCurve: string;
|
|
26
25
|
};
|
|
26
|
+
generateKeyPair(): Promise<any>;
|
|
27
|
+
generateSharedSecret(): Promise<any>;
|
|
27
28
|
generateHMAC(message: any, derivedKey: any): Promise<string | undefined>;
|
|
28
29
|
verifyHMAC(message: any, derivedKey: any, verifiableHMAC: any): Promise<boolean>;
|
|
29
30
|
getStorableKey(key: any): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAIA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,6BAqBC;IAED,+BAkBC;IAED,+BAkBC;IAED,mDAiBC;IAED,sCAMC;IAED,mCAQC;IAED,oDAIC;IAED,oCAMC;IAED,gDAMC;IAED,
|
|
1
|
+
{"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAIA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,6BAqBC;IAED,+BAkBC;IAED,+BAkBC;IAED,mDAiBC;IAED,sCAMC;IAED,mCAQC;IAED,oDAIC;IAED,oCAMC;IAED,gDAMC;IAED,yCAkBC;IAED;;;;;;MAmBC;IAED,gCASC;IAED,qCASC;IAED,yEAiBC;IAED,iFAIC;IAED,0CAKC;IAED,iEAkBC;IAED,8CAUC;IAED,kDAUC;IAED;;;qBAoBC;IAED;;;qBAqBC;IAED;;;;;;;;;OAaC;IAED,sFAuBC;IAED,qEAuBC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function getAuthorizationHelpers(sharedSecret: any, { crypto: _crypto, util: _util }?: {
|
|
2
|
+
crypto: any;
|
|
3
|
+
util: any;
|
|
4
|
+
}): Promise<{
|
|
5
|
+
encrypt?: undefined;
|
|
6
|
+
decrypt?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
encrypt: (decryptedMessage: any) => Promise<number[] | undefined>;
|
|
9
|
+
decrypt: (encryptedMessage: any) => Promise<any>;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=authorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../../src/shared/authorization.js"],"names":[],"mappings":"AAGO;;;;;;;;;GAyBN"}
|
|
@@ -60,7 +60,7 @@ export function lowercase(string: any, defaultValue?: string): string;
|
|
|
60
60
|
export function slugify(string: any): string;
|
|
61
61
|
export function capitalize(string: any): string;
|
|
62
62
|
export function camelCase(string: any): string;
|
|
63
|
-
export function titleCase(
|
|
63
|
+
export function titleCase(_string: any, _overrides: any): any;
|
|
64
64
|
export function removeLeadingSlash(string: any): string;
|
|
65
65
|
export function removeLeadingTrailingQuotes(string: any): string;
|
|
66
66
|
export function removeTrailingSlash(string: any): string;
|
|
@@ -88,7 +88,7 @@ export function parseProject(packageInfo: any): (string | {
|
|
|
88
88
|
appName: any;
|
|
89
89
|
siteName: any;
|
|
90
90
|
shortName: any;
|
|
91
|
-
companyName:
|
|
91
|
+
companyName: any;
|
|
92
92
|
projectName: string;
|
|
93
93
|
})[];
|
|
94
94
|
export function querystringToObject(queryString: any): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAIO;;;;;EAmCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAEM,+DAwBN;AAEM,0CAON;AAEM,sDAeN;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,0FAqBN;AAMM,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,6CAEN;AAEM,gDAGN;AAEM,+CASN;AAEM,
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/shared/display.js"],"names":[],"mappings":"AAIO;;;;;EAmCN;AAEM,2DAGN;AAEM,4DAeN;AAEM,gEAmBN;AAEM,mDAEN;AAEM,6CAGN;AAEM,2CAGN;AAEM,uDAGN;AAEM,+DAwBN;AAEM,0CAON;AAEM,sDAeN;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,0FAqBN;AAMM,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,6CAEN;AAEM,gDAGN;AAEM,+CASN;AAEM,8DAqEN;AAEM,wDAEN;AAEM,iEAEN;AAGM,yDAEN;AAEM,gEAEN;AAEM,wDAEN;AAEM,yDAEN;AAEM,kEAQN;AAEM,yEAON;AAEM,+CAWN;AAEM,kDAUN;AAEM,oEAON;AAEM,6DAKN;AAEM,wDAGN;AAGM,wEASN;AAEM,+DAcN;AAEM;;;;;EAWN;AAEM;;;;;;;;KAkBN;AAMM;;EAON;AAEM,yEAKN;AAEM,+DAEN;AAEM,sEAMN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AACA,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agnostack/verifyd",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-beta.1",
|
|
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",
|