@agnostack/next-shopify 1.7.7-beta.1 → 1.7.7-beta.3
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/dist/handlers/ssr/protect.js +4 -1
- package/dist/handlers/ssr/protect.js.map +1 -1
- package/dist/utils/crypto.d.ts +14 -8
- package/dist/utils/crypto.js +95 -37
- package/dist/utils/crypto.js.map +1 -1
- package/dist/utils/session.js +4 -10
- package/dist/utils/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,9 +22,10 @@ const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) =
|
|
|
22
22
|
props: utils_1.cleanObject(Object.assign({ locale }, data)),
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
+
console.log(`>>> > TODO!!!!: investigate this before release > BEFORE`);
|
|
25
26
|
const { shopify, findSessionIds, loadSession } = await utils_1.getShopifyHelpers(props, { shop });
|
|
26
27
|
const existingSessionIds = await findSessionIds(shop);
|
|
27
|
-
console.log(`>>> > TODO!!!!: investigate this before release >
|
|
28
|
+
console.log(`>>> > TODO!!!!: investigate this before release > AFTER > existingSessionIds:`, existingSessionIds);
|
|
28
29
|
if (utils_1.arrayEmpty(existingSessionIds)) {
|
|
29
30
|
// TODO: explore objectToQuerystring
|
|
30
31
|
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop })).toString();
|
|
@@ -37,7 +38,9 @@ const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) =
|
|
|
37
38
|
}
|
|
38
39
|
if (embedded !== '1') {
|
|
39
40
|
try {
|
|
41
|
+
console.log(`>>> > TODO!!!! IN HERE BEFORE`);
|
|
40
42
|
await loadSession({ req, res });
|
|
43
|
+
console.log(`>>> > TODO!!!! IN HERE AFTER`);
|
|
41
44
|
const destination = await shopify.auth.getEmbeddedAppUrl({
|
|
42
45
|
rawRequest: req,
|
|
43
46
|
rawResponse: res,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect.js","sourceRoot":"","sources":["../../../src/handlers/ssr/protect.js"],"names":[],"mappings":";;;AAAA,uCAUoB;AAEb,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;;IACtF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IACvC,MAAM,IAAI,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,IAAI,CAAA;IAC3C,MAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,QAAQ,CAAA;IAEvD,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,yBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;IAEjE,IAAI,mBAAW,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,0CAA0C;gBAC5F,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,6EAA6E;IAC7E,IAAI,wBAAgB,CAAC,KAAK,CAAC,EAAE;QAC3B,OAAO;YACL,KAAK,EAAE,mBAAW,iBAChB,MAAM,IACH,IAAI,EACP;SACH,CAAA;KACF;IAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,yBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACzF,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"protect.js","sourceRoot":"","sources":["../../../src/handlers/ssr/protect.js"],"names":[],"mappings":"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"}
|
package/dist/utils/crypto.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
export function wrapKeyData(keyData: any, keyType?: string): string;
|
|
2
|
-
export function getRecrypted(encrypted: any): {
|
|
3
|
-
initialVector: any;
|
|
4
|
-
encrypted: string;
|
|
5
|
-
};
|
|
6
|
-
export function decryptAES(toDecrypt: any, sharedSecret: any, initialVector: any): string;
|
|
7
|
-
export function decryptRSAPublic(toDecrypt: any, publicKey: any, encoding?: string): string;
|
|
8
|
-
export function encryptRSAPrivate(toEncrypt: any, privateKey: any, encoding?: string): string;
|
|
9
1
|
export function generateHMAC(message: any, apiSecret: any, digest?: string): Buffer & string;
|
|
10
2
|
export function compareHashes(digestable: any, checkSumable: any, encoding?: string): boolean;
|
|
3
|
+
export class CryptoHandler {
|
|
4
|
+
static getInstance(config: any): any;
|
|
5
|
+
constructor(enforcer: any, config: any);
|
|
6
|
+
type: string;
|
|
7
|
+
config: any;
|
|
8
|
+
get isInitialized(): boolean;
|
|
9
|
+
initialize(): void;
|
|
10
|
+
cryptoConfig: {};
|
|
11
|
+
decrypt(encrypted: any): any;
|
|
12
|
+
encrypt(decrypted: any): any;
|
|
13
|
+
[singleton]: CryptoHandler;
|
|
14
|
+
}
|
|
15
|
+
declare const singleton: unique symbol;
|
|
16
|
+
export {};
|
package/dist/utils/crypto.js
CHANGED
|
@@ -3,45 +3,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.CryptoHandler = exports.compareHashes = exports.generateHMAC = void 0;
|
|
7
7
|
const crypto_1 = __importDefault(require("crypto"));
|
|
8
8
|
const display_1 = require("./display");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
9
|
+
// import { ensureString, objectNotEmpty } from './display'
|
|
10
|
+
// const wrapKeyData = (keyData, keyType = 'RSA PRIVATE') => (
|
|
11
|
+
// `-----BEGIN ${keyType} KEY-----${
|
|
12
|
+
// ensureString(keyData).replace(/"/g, '')
|
|
13
|
+
// }-----END ${keyType} KEY-----\n`.replace(/\\n/g, '\n')
|
|
14
|
+
// )
|
|
15
|
+
// asda
|
|
16
|
+
// const getRecrypted = (encrypted) => {
|
|
17
|
+
// const [beginning, hiddenInitialVector, end = ''] = encrypted.split(/_(.*==)=/g)
|
|
18
|
+
// return { initialVector: hiddenInitialVector, encrypted: `${beginning}${end}` }
|
|
19
|
+
// }
|
|
20
|
+
// const decryptAES = (toDecrypt, sharedSecret, initialVector) => {
|
|
21
|
+
// if (!toDecrypt || !sharedSecret || !initialVector) return ''
|
|
22
|
+
// const decipher = crypto.createDecipheriv(
|
|
23
|
+
// 'aes-256-cbc',
|
|
24
|
+
// Buffer.from(sharedSecret, 'base64'),
|
|
25
|
+
// Buffer.from(initialVector, 'base64')
|
|
26
|
+
// )
|
|
27
|
+
// const decrypted = Buffer.concat([
|
|
28
|
+
// decipher.update(Buffer.from(toDecrypt, 'base64')),
|
|
29
|
+
// decipher.final()
|
|
30
|
+
// ])
|
|
31
|
+
// return decrypted.toString('utf8')
|
|
32
|
+
// }
|
|
33
|
+
// const decryptRSAPublic = (toDecrypt, publicKey, encoding = 'utf8') => (!toDecrypt || !publicKey
|
|
34
|
+
// ? ''
|
|
35
|
+
// : crypto
|
|
36
|
+
// .publicDecrypt(publicKey, Buffer.from(toDecrypt, 'base64'))
|
|
37
|
+
// .toString(encoding)
|
|
38
|
+
// )
|
|
39
|
+
// const encryptRSAPrivate = (toEncrypt, privateKey, encoding = 'utf8') => (!toEncrypt || !privateKey
|
|
40
|
+
// ? ''
|
|
41
|
+
// : crypto
|
|
42
|
+
// .privateEncrypt(privateKey, Buffer.from(JSON.stringify(toEncrypt), encoding))
|
|
43
|
+
// .toString('base64')
|
|
44
|
+
// )
|
|
45
|
+
const generateHMAC = (message, apiSecret, digest = 'hex') => (crypto_1.default.createHmac('sha256', apiSecret)
|
|
46
|
+
.update(message)
|
|
47
|
+
.digest(digest));
|
|
45
48
|
exports.generateHMAC = generateHMAC;
|
|
46
49
|
const compareHashes = (digestable, checkSumable, encoding = 'utf8') => {
|
|
47
50
|
const digest = (digestable instanceof ArrayBuffer)
|
|
@@ -54,4 +57,59 @@ const compareHashes = (digestable, checkSumable, encoding = 'utf8') => {
|
|
|
54
57
|
crypto_1.default.timingSafeEqual(digest, checkSum));
|
|
55
58
|
};
|
|
56
59
|
exports.compareHashes = compareHashes;
|
|
60
|
+
const singleton = Symbol('singleton');
|
|
61
|
+
const singletonEnforcer = Symbol('singletonEnforcer');
|
|
62
|
+
class CryptoHandler {
|
|
63
|
+
constructor(enforcer, config) {
|
|
64
|
+
if (enforcer !== singletonEnforcer) {
|
|
65
|
+
throw new Error('Cannot instantiate CryptoHandler directly, please use getInstance()');
|
|
66
|
+
}
|
|
67
|
+
this.type = 'CryptoHandler';
|
|
68
|
+
this.config = config;
|
|
69
|
+
}
|
|
70
|
+
get isInitialized() {
|
|
71
|
+
return (this.cryptoConfig != undefined);
|
|
72
|
+
}
|
|
73
|
+
initialize() {
|
|
74
|
+
if (display_1.objectNotEmpty(this.config)) {
|
|
75
|
+
// const { encryptedPrivateKey, encryptedPublicKey, sharedSecret } = this.config
|
|
76
|
+
// const {
|
|
77
|
+
// initialVector: hiddenPublicIv,
|
|
78
|
+
// encrypted: recryptedPublicKey,
|
|
79
|
+
// } = getRecrypted(encryptedPublicKey)
|
|
80
|
+
// const {
|
|
81
|
+
// initialVector: hiddenPrivateIv,
|
|
82
|
+
// encrypted: recryptedPrivateKey,
|
|
83
|
+
// } = getRecrypted(encryptedPrivateKey)
|
|
84
|
+
this.cryptoConfig = {
|
|
85
|
+
// publicKey: wrapKeyData(decryptAES(
|
|
86
|
+
// recryptedPublicKey,
|
|
87
|
+
// sharedSecret,
|
|
88
|
+
// hiddenPublicIv
|
|
89
|
+
// ), 'RSA PUBLIC'),
|
|
90
|
+
// privateKey: wrapKeyData(decryptAES(
|
|
91
|
+
// recryptedPrivateKey,
|
|
92
|
+
// sharedSecret,
|
|
93
|
+
// hiddenPrivateIv
|
|
94
|
+
// )),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
static getInstance(config) {
|
|
99
|
+
if (!this[singleton]) {
|
|
100
|
+
this[singleton] = new CryptoHandler(singletonEnforcer, config);
|
|
101
|
+
}
|
|
102
|
+
if (!this[singleton].isInitialized) {
|
|
103
|
+
this[singleton].initialize();
|
|
104
|
+
}
|
|
105
|
+
return this[singleton];
|
|
106
|
+
}
|
|
107
|
+
decrypt(encrypted) {
|
|
108
|
+
return encrypted; // decryptRSAPublic(encrypted, this.cryptoConfig.publicKey)
|
|
109
|
+
}
|
|
110
|
+
encrypt(decrypted) {
|
|
111
|
+
return decrypted; // encryptRSAPrivate(decrypted, this.cryptoConfig.privateKey)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.CryptoHandler = CryptoHandler;
|
|
57
115
|
//# sourceMappingURL=crypto.js.map
|
package/dist/utils/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.js"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.js"],"names":[],"mappings":"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"}
|
package/dist/utils/session.js
CHANGED
|
@@ -15,25 +15,20 @@ exports.getVerifiedClients = exports.getShopifyHelpers = void 0;
|
|
|
15
15
|
const shopify_api_1 = require("@shopify/shopify-api");
|
|
16
16
|
const luxon_1 = require("luxon");
|
|
17
17
|
const billing_1 = require("./billing");
|
|
18
|
-
const crypto_1 = require("./crypto");
|
|
19
18
|
const display_1 = require("./display");
|
|
20
19
|
const shopify_1 = require("./shopify");
|
|
21
20
|
const firebase_1 = require("./firebase");
|
|
21
|
+
const crypto_1 = require("./crypto");
|
|
22
22
|
const errors_1 = require("./errors");
|
|
23
23
|
const getShopifyHelpers = async (serverRuntimeConfig, { shop }) => {
|
|
24
24
|
var _a;
|
|
25
25
|
const shopify = await shopify_1.getInitializedShopify(serverRuntimeConfig);
|
|
26
26
|
const { FB_CONFIG, FB_ROOT_COLLECTION, SESSION_CONFIG, APP_ID } = serverRuntimeConfig;
|
|
27
|
+
const cryptoHandler = crypto_1.CryptoHandler.getInstance(SESSION_CONFIG);
|
|
27
28
|
const sessionHandler = firebase_1.FirebaseSessionHandler.getInstance(FB_CONFIG, {
|
|
28
29
|
collection: FB_ROOT_COLLECTION,
|
|
29
30
|
config: { configurationId: APP_ID, shop: (_a = shopify === null || shopify === void 0 ? void 0 : shopify.utils) === null || _a === void 0 ? void 0 : _a.sanitizeShop(shop) },
|
|
30
31
|
});
|
|
31
|
-
// #region CRYPTO
|
|
32
|
-
const { initialVector: hiddenPublicIv, encrypted: recryptedPublicKey, } = crypto_1.getRecrypted(SESSION_CONFIG.encryptedPublicKey);
|
|
33
|
-
const publicKey = crypto_1.wrapKeyData(crypto_1.decryptAES(recryptedPublicKey, SESSION_CONFIG.sharedSecret, hiddenPublicIv), 'RSA PUBLIC');
|
|
34
|
-
const { initialVector: hiddenPrivateIv, encrypted: recryptedPrivateKey, } = crypto_1.getRecrypted(SESSION_CONFIG.encryptedPrivateKey);
|
|
35
|
-
const privateKey = crypto_1.wrapKeyData(crypto_1.decryptAES(recryptedPrivateKey, SESSION_CONFIG.sharedSecret, hiddenPrivateIv));
|
|
36
|
-
// #endregion CRYPTO
|
|
37
32
|
const decryptVerifySession = async ({ req, res } = {}) => {
|
|
38
33
|
var _a, _b;
|
|
39
34
|
try {
|
|
@@ -55,7 +50,7 @@ const getShopifyHelpers = async (serverRuntimeConfig, { shop }) => {
|
|
|
55
50
|
if (!sessionActive) {
|
|
56
51
|
throw new Error('Inactive session');
|
|
57
52
|
}
|
|
58
|
-
return Object.assign(Object.assign({}, session), { accessToken: JSON.parse(
|
|
53
|
+
return Object.assign(Object.assign({}, session), { accessToken: JSON.parse(cryptoHandler.decrypt(encryptedAccessToken)) });
|
|
59
54
|
}
|
|
60
55
|
catch (error) {
|
|
61
56
|
throw new errors_1.ShopifyAuthenticationError(error === null || error === void 0 ? void 0 : error.message);
|
|
@@ -63,8 +58,7 @@ const getShopifyHelpers = async (serverRuntimeConfig, { shop }) => {
|
|
|
63
58
|
};
|
|
64
59
|
const encryptStoreSession = async (_session) => {
|
|
65
60
|
const { accessToken } = _session, session = __rest(_session, ["accessToken"]);
|
|
66
|
-
|
|
67
|
-
return firebase_1.storeCallback(sessionHandler, Object.assign(Object.assign({}, session), { accessToken: encryptedAccessToken }));
|
|
61
|
+
return firebase_1.storeCallback(sessionHandler, Object.assign(Object.assign({}, session), { accessToken: cryptoHandler.encrypt(accessToken) }));
|
|
68
62
|
};
|
|
69
63
|
return Object.assign({ shopify, loadSession: () => ({}), storeSession: () => ({}), deleteSessions: () => undefined, findSessionIds: () => ([]) }, shopify && {
|
|
70
64
|
loadSession: decryptVerifySession,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAAwD;AACxD,iCAAgC;AAEhC,uCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agnostack/next-shopify",
|
|
3
|
-
"version": "1.7.7-beta.
|
|
3
|
+
"version": "1.7.7-beta.3",
|
|
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",
|