@shopify/shopify-api 11.2.0 → 11.4.0
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/LICENSE.md +9 -0
- package/README.md +2 -1
- package/dist/cjs/lib/billing/check.js +2 -0
- package/dist/cjs/lib/billing/check.js.map +1 -1
- package/dist/cjs/lib/billing/create-usage-record.js +135 -0
- package/dist/cjs/lib/billing/create-usage-record.js.map +1 -0
- package/dist/cjs/lib/billing/index.js +2 -0
- package/dist/cjs/lib/billing/index.js.map +1 -1
- package/dist/cjs/lib/billing/request.js.map +1 -1
- package/dist/cjs/lib/clients/admin/graphql/client.js +1 -0
- package/dist/cjs/lib/clients/admin/graphql/client.js.map +1 -1
- package/dist/cjs/lib/clients/admin/rest/client.js +1 -0
- package/dist/cjs/lib/clients/admin/rest/client.js.map +1 -1
- package/dist/cjs/lib/version.js +1 -1
- package/dist/cjs/lib/webhooks/register.js.map +1 -1
- package/dist/cjs/lib/webhooks/types.js.map +1 -1
- package/dist/cjs/runtime/http/headers.js +73 -9
- package/dist/cjs/runtime/http/headers.js.map +1 -1
- package/dist/cjs/test-helpers/const.js +20 -0
- package/dist/cjs/test-helpers/const.js.map +1 -0
- package/dist/cjs/test-helpers/get-hmac.js +13 -0
- package/dist/cjs/test-helpers/get-hmac.js.map +1 -0
- package/dist/cjs/test-helpers/get-host-value.js +14 -0
- package/dist/cjs/test-helpers/get-host-value.js.map +1 -0
- package/dist/cjs/test-helpers/get-jwt.js +38 -0
- package/dist/cjs/test-helpers/get-jwt.js.map +1 -0
- package/dist/cjs/test-helpers/get-shop-value.js +14 -0
- package/dist/cjs/test-helpers/get-shop-value.js.map +1 -0
- package/dist/cjs/test-helpers/index.js +29 -0
- package/dist/cjs/test-helpers/index.js.map +1 -0
- package/dist/cjs/test-helpers/setup-valid-request.js +88 -0
- package/dist/cjs/test-helpers/setup-valid-request.js.map +1 -0
- package/dist/cjs/test-helpers/setup-valid-session.js +55 -0
- package/dist/cjs/test-helpers/setup-valid-session.js.map +1 -0
- package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/lib/billing/check.mjs +2 -1
- package/dist/esm/lib/billing/check.mjs.map +1 -1
- package/dist/esm/lib/billing/create-usage-record.mjs +133 -0
- package/dist/esm/lib/billing/create-usage-record.mjs.map +1 -0
- package/dist/esm/lib/billing/index.mjs +2 -0
- package/dist/esm/lib/billing/index.mjs.map +1 -1
- package/dist/esm/lib/billing/request.mjs.map +1 -1
- package/dist/esm/lib/clients/admin/graphql/client.mjs +1 -0
- package/dist/esm/lib/clients/admin/graphql/client.mjs.map +1 -1
- package/dist/esm/lib/clients/admin/rest/client.mjs +1 -0
- package/dist/esm/lib/clients/admin/rest/client.mjs.map +1 -1
- package/dist/esm/lib/version.mjs +1 -1
- package/dist/esm/lib/webhooks/register.mjs.map +1 -1
- package/dist/esm/lib/webhooks/types.mjs.map +1 -1
- package/dist/esm/runtime/http/headers.mjs +73 -9
- package/dist/esm/runtime/http/headers.mjs.map +1 -1
- package/dist/esm/test-helpers/const.mjs +11 -0
- package/dist/esm/test-helpers/const.mjs.map +1 -0
- package/dist/esm/test-helpers/get-hmac.mjs +11 -0
- package/dist/esm/test-helpers/get-hmac.mjs.map +1 -0
- package/dist/esm/test-helpers/get-host-value.mjs +12 -0
- package/dist/esm/test-helpers/get-host-value.mjs.map +1 -0
- package/dist/esm/test-helpers/get-jwt.mjs +36 -0
- package/dist/esm/test-helpers/get-jwt.mjs.map +1 -0
- package/dist/esm/test-helpers/get-shop-value.mjs +12 -0
- package/dist/esm/test-helpers/get-shop-value.mjs.map +1 -0
- package/dist/esm/test-helpers/index.mjs +7 -0
- package/dist/esm/test-helpers/index.mjs.map +1 -0
- package/dist/esm/test-helpers/setup-valid-request.mjs +86 -0
- package/dist/esm/test-helpers/setup-valid-request.mjs.map +1 -0
- package/dist/esm/test-helpers/setup-valid-session.mjs +53 -0
- package/dist/esm/test-helpers/setup-valid-session.mjs.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ts/lib/base-types.d.ts +5 -0
- package/dist/ts/lib/base-types.d.ts.map +1 -1
- package/dist/ts/lib/billing/check.d.ts +9 -1
- package/dist/ts/lib/billing/check.d.ts.map +1 -1
- package/dist/ts/lib/billing/create-usage-record.d.ts +4 -0
- package/dist/ts/lib/billing/create-usage-record.d.ts.map +1 -0
- package/dist/ts/lib/billing/index.d.ts +1 -1
- package/dist/ts/lib/billing/index.d.ts.map +1 -1
- package/dist/ts/lib/billing/types.d.ts +83 -4
- package/dist/ts/lib/billing/types.d.ts.map +1 -1
- package/dist/ts/lib/clients/admin/graphql/client.d.ts.map +1 -1
- package/dist/ts/lib/clients/admin/rest/client.d.ts.map +1 -1
- package/dist/ts/lib/clients/index.d.ts +1 -1
- package/dist/ts/lib/clients/index.d.ts.map +1 -1
- package/dist/ts/lib/version.d.ts +1 -1
- package/dist/ts/lib/webhooks/register.d.ts.map +1 -1
- package/dist/ts/lib/webhooks/types.d.ts +15 -11
- package/dist/ts/lib/webhooks/types.d.ts.map +1 -1
- package/dist/ts/runtime/http/headers.d.ts +67 -0
- package/dist/ts/runtime/http/headers.d.ts.map +1 -1
- package/dist/ts/test-helpers/const.d.ts +9 -0
- package/dist/ts/test-helpers/const.d.ts.map +1 -0
- package/dist/ts/test-helpers/get-hmac.d.ts +2 -0
- package/dist/ts/test-helpers/get-hmac.d.ts.map +1 -0
- package/dist/ts/test-helpers/get-host-value.d.ts +8 -0
- package/dist/ts/test-helpers/get-host-value.d.ts.map +1 -0
- package/dist/ts/test-helpers/get-jwt.d.ts +17 -0
- package/dist/ts/test-helpers/get-jwt.d.ts.map +1 -0
- package/dist/ts/test-helpers/get-shop-value.d.ts +8 -0
- package/dist/ts/test-helpers/get-shop-value.d.ts.map +1 -0
- package/dist/ts/test-helpers/index.d.ts +9 -0
- package/dist/ts/test-helpers/index.d.ts.map +1 -0
- package/dist/ts/test-helpers/setup-valid-request.d.ts +35 -0
- package/dist/ts/test-helpers/setup-valid-request.d.ts.map +1 -0
- package/dist/ts/test-helpers/setup-valid-session.d.ts +14 -0
- package/dist/ts/test-helpers/setup-valid-session.d.ts.map +1 -0
- package/dist/ts/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +36 -28
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jwt = require('jsonwebtoken');
|
|
4
|
+
var _const = require('./const.js');
|
|
5
|
+
var getShopValue = require('./get-shop-value.js');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates and signs a JWT token to use in faking authorization for testing.
|
|
9
|
+
*
|
|
10
|
+
* @param store The name of the store for which to create a valid JWT token.
|
|
11
|
+
* @param apiKey The Client ID/API key for the store for which to create a valid JWT token.
|
|
12
|
+
* @param apiSecretKey The API secret for the store for which to create a valid JWT token.
|
|
13
|
+
* @param overrides Optional overrides for the JWT payload.
|
|
14
|
+
* @returns {TestJwt} The JWT token and the JWT payload used to create the token.
|
|
15
|
+
*/
|
|
16
|
+
function getJwt(store, apiKey, apiSecretKey, overrides = {}) {
|
|
17
|
+
const date = new Date();
|
|
18
|
+
const shop = getShopValue.getShopValue(store);
|
|
19
|
+
const payload = {
|
|
20
|
+
iss: `${shop}/admin`,
|
|
21
|
+
dest: `https://${shop}`,
|
|
22
|
+
aud: apiKey,
|
|
23
|
+
sub: `${_const.USER_ID}`,
|
|
24
|
+
exp: date.getTime() / 1000 + 3600,
|
|
25
|
+
nbf: date.getTime() / 1000 - 3600,
|
|
26
|
+
iat: date.getTime() / 1000 - 3600,
|
|
27
|
+
jti: '1234567890',
|
|
28
|
+
sid: '0987654321',
|
|
29
|
+
...overrides,
|
|
30
|
+
};
|
|
31
|
+
const token = jwt.sign(payload, apiSecretKey, {
|
|
32
|
+
algorithm: 'HS256',
|
|
33
|
+
});
|
|
34
|
+
return { token, payload };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.getJwt = getJwt;
|
|
38
|
+
//# sourceMappingURL=get-jwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-jwt.js","sources":["../../../../../test-helpers/get-jwt.ts"],"sourcesContent":[null],"names":["getShopValue","USER_ID"],"mappings":";;;;;;AAYA;;;;;;;;AAQG;AACG,SAAU,MAAM,CACpB,KAAa,EACb,MAAc,EACd,YAAoB,EACpB,SAAA,GAAiC,EAAE,EAAA;AAEnC,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACxB,IAAA,MAAM,IAAI,GAAWA,yBAAY,CAAC,KAAK,CAAC,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,CAAG,EAAA,IAAI,CAAQ,MAAA,CAAA;QACpB,IAAI,EAAE,CAAW,QAAA,EAAA,IAAI,CAAE,CAAA;AACvB,QAAA,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,CAAG,EAAAC,cAAO,CAAE,CAAA;QACjB,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;QACjC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;QACjC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;AACjC,QAAA,GAAG,EAAE,YAAY;AACjB,QAAA,GAAG,EAAE,YAAY;AACjB,QAAA,GAAG,SAAS;KACb,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE;AAC5C,QAAA,SAAS,EAAE,OAAO;AACnB,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC1B;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns a fake shop URL for a store name to use when faking authorization in testing.
|
|
5
|
+
*
|
|
6
|
+
* @param store The store name for which to create a fake shop URL.
|
|
7
|
+
* @returns {string} A fake shop URL for the store name.
|
|
8
|
+
*/
|
|
9
|
+
function getShopValue(store) {
|
|
10
|
+
return `${store}.myshopify.com`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.getShopValue = getShopValue;
|
|
14
|
+
//# sourceMappingURL=get-shop-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-shop-value.js","sources":["../../../../../test-helpers/get-shop-value.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AACG,SAAU,YAAY,CAAC,KAAa,EAAA;IACxC,OAAO,CAAA,EAAG,KAAK,CAAA,cAAA,CAAgB,CAAC;AAClC;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var setupValidSession = require('./setup-valid-session.js');
|
|
4
|
+
var setupValidRequest = require('./setup-valid-request.js');
|
|
5
|
+
var getJwt = require('./get-jwt.js');
|
|
6
|
+
var getHmac = require('./get-hmac.js');
|
|
7
|
+
var getShopValue = require('./get-shop-value.js');
|
|
8
|
+
var _const = require('./const.js');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.setUpValidSession = setupValidSession.setUpValidSession;
|
|
13
|
+
Object.defineProperty(exports, "RequestType", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return setupValidRequest.RequestType; }
|
|
16
|
+
});
|
|
17
|
+
exports.setUpValidRequest = setupValidRequest.setUpValidRequest;
|
|
18
|
+
exports.getJwt = getJwt.getJwt;
|
|
19
|
+
exports.getHmac = getHmac.getHmac;
|
|
20
|
+
exports.getShopValue = getShopValue.getShopValue;
|
|
21
|
+
exports.API_KEY = _const.API_KEY;
|
|
22
|
+
exports.API_SECRET_KEY = _const.API_SECRET_KEY;
|
|
23
|
+
exports.APP_URL = _const.APP_URL;
|
|
24
|
+
exports.BASE64_HOST = _const.BASE64_HOST;
|
|
25
|
+
exports.SHOPIFY_HOST = _const.SHOPIFY_HOST;
|
|
26
|
+
exports.TEST_SHOP = _const.TEST_SHOP;
|
|
27
|
+
exports.TEST_SHOP_NAME = _const.TEST_SHOP_NAME;
|
|
28
|
+
exports.USER_ID = _const.USER_ID;
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var types = require('../runtime/crypto/types.js');
|
|
4
|
+
require('../runtime/crypto/crypto.js');
|
|
5
|
+
var utils = require('../runtime/crypto/utils.js');
|
|
6
|
+
var getShopValue = require('./get-shop-value.js');
|
|
7
|
+
var getHostValue = require('./get-host-value.js');
|
|
8
|
+
var getJwt = require('./get-jwt.js');
|
|
9
|
+
var getHmac = require('./get-hmac.js');
|
|
10
|
+
|
|
11
|
+
exports.RequestType = void 0;
|
|
12
|
+
(function (RequestType) {
|
|
13
|
+
RequestType[RequestType["Admin"] = 0] = "Admin";
|
|
14
|
+
RequestType[RequestType["Bearer"] = 1] = "Bearer";
|
|
15
|
+
RequestType[RequestType["Extension"] = 2] = "Extension";
|
|
16
|
+
RequestType[RequestType["Public"] = 3] = "Public";
|
|
17
|
+
})(exports.RequestType || (exports.RequestType = {}));
|
|
18
|
+
/**
|
|
19
|
+
* Duplicates a Request object and decorates the duplicated object with fake authorization headers or query string parameters.
|
|
20
|
+
*
|
|
21
|
+
* @param {ValidRequestOptions} options Provides the type of authorization method to fake for the provided Request, and the inputs required to fake the authorization.
|
|
22
|
+
* @param {Request} request The Request object to be decorated with fake authorization headers or query string parameters.
|
|
23
|
+
* @returns {Request} A duplicate of the provided Request object with faked authorization headers or query string parameters.
|
|
24
|
+
*/
|
|
25
|
+
async function setUpValidRequest(options, request) {
|
|
26
|
+
let authenticatedRequest;
|
|
27
|
+
switch (options.type) {
|
|
28
|
+
case exports.RequestType.Admin:
|
|
29
|
+
authenticatedRequest = adminRequest(request, options.store, options.apiKey, options.apiSecretKey);
|
|
30
|
+
break;
|
|
31
|
+
case exports.RequestType.Bearer:
|
|
32
|
+
authenticatedRequest = bearerRequest(request, options.store, options.apiKey, options.apiSecretKey);
|
|
33
|
+
break;
|
|
34
|
+
case exports.RequestType.Extension:
|
|
35
|
+
authenticatedRequest = extensionRequest(request, options.store, options.apiSecretKey, options.body, options.headers);
|
|
36
|
+
break;
|
|
37
|
+
case exports.RequestType.Public:
|
|
38
|
+
authenticatedRequest = await publicRequest(request, options.store, options.apiSecretKey);
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
return authenticatedRequest;
|
|
42
|
+
}
|
|
43
|
+
function adminRequest(request, store, apiKey, apiSecretKey) {
|
|
44
|
+
const { token } = getJwt.getJwt(store, apiKey, apiSecretKey);
|
|
45
|
+
const url = new URL(request.url);
|
|
46
|
+
url.searchParams.set('embedded', '1');
|
|
47
|
+
url.searchParams.set('shop', getShopValue.getShopValue(store));
|
|
48
|
+
url.searchParams.set('host', getHostValue.getHostValue(store));
|
|
49
|
+
url.searchParams.set('id_token', token);
|
|
50
|
+
return new Request(url.href, request);
|
|
51
|
+
}
|
|
52
|
+
function bearerRequest(request, store, apiKey, apiSecretKey) {
|
|
53
|
+
const { token } = getJwt.getJwt(store, apiKey, apiSecretKey);
|
|
54
|
+
const authenticatedRequest = new Request(request);
|
|
55
|
+
authenticatedRequest.headers.set('authorization', `Bearer ${token}`);
|
|
56
|
+
return authenticatedRequest;
|
|
57
|
+
}
|
|
58
|
+
function extensionRequest(request, store, apiSecretKey, body, headers) {
|
|
59
|
+
const bodyString = JSON.stringify(body);
|
|
60
|
+
const authenticatedRequest = new Request(request, {
|
|
61
|
+
method: 'POST',
|
|
62
|
+
body: bodyString,
|
|
63
|
+
});
|
|
64
|
+
authenticatedRequest.headers.set('X-Shopify-Hmac-Sha256', getHmac.getHmac(bodyString, apiSecretKey));
|
|
65
|
+
authenticatedRequest.headers.set('X-Shopify-Shop-Domain', getShopValue.getShopValue(store));
|
|
66
|
+
if (headers) {
|
|
67
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
68
|
+
authenticatedRequest.headers.set(key, value);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return authenticatedRequest;
|
|
72
|
+
}
|
|
73
|
+
async function publicRequest(request, store, apiSecretKey) {
|
|
74
|
+
const url = new URL(request.url);
|
|
75
|
+
url.searchParams.set('shop', getShopValue.getShopValue(store));
|
|
76
|
+
url.searchParams.set('timestamp', String(Math.trunc(Date.now() / 1000) - 1));
|
|
77
|
+
const params = Object.fromEntries(url.searchParams.entries());
|
|
78
|
+
const string = Object.entries(params)
|
|
79
|
+
.sort(([val1], [val2]) => val1.localeCompare(val2))
|
|
80
|
+
.reduce((acc, [key, value]) => {
|
|
81
|
+
return `${acc}${key}=${value}`;
|
|
82
|
+
}, '');
|
|
83
|
+
url.searchParams.set('signature', await utils.createSHA256HMAC(apiSecretKey, string, types.HashFormat.Hex));
|
|
84
|
+
return new Request(url.href, request);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
exports.setUpValidRequest = setUpValidRequest;
|
|
88
|
+
//# sourceMappingURL=setup-valid-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-valid-request.js","sources":["../../../../../test-helpers/setup-valid-request.ts"],"sourcesContent":[null],"names":["RequestType","getJwt","getShopValue","getHostValue","getHmac","createSHA256HMAC","HashFormat"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var session = require('../lib/session/session.js');
|
|
4
|
+
var _const = require('./const.js');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Creates and returns a fake Session for the shop defined in sessionParams.
|
|
8
|
+
*
|
|
9
|
+
* @param sessionParams The Session parameters to use when creating the fake Session.
|
|
10
|
+
* @returns {Session} The fake Session created.
|
|
11
|
+
*/
|
|
12
|
+
function setUpValidSession(sessionParams) {
|
|
13
|
+
const overrides = { ...sessionParams };
|
|
14
|
+
const shop = sessionParams.shop;
|
|
15
|
+
let id = `offline_${shop}`;
|
|
16
|
+
if (sessionParams.isOnline) {
|
|
17
|
+
const onlineAccessInfo = sessionParams.onlineAccessInfo;
|
|
18
|
+
const associated_user = onlineAccessInfo?.associated_user;
|
|
19
|
+
delete sessionParams.onlineAccessInfo?.associated_user;
|
|
20
|
+
delete sessionParams.onlineAccessInfo;
|
|
21
|
+
id = `${shop}_${_const.USER_ID}`;
|
|
22
|
+
// Expires one day from now
|
|
23
|
+
overrides.expires =
|
|
24
|
+
sessionParams.expires || new Date(Date.now() + 1000 * 3600 * 24);
|
|
25
|
+
overrides.onlineAccessInfo = {
|
|
26
|
+
associated_user_scope: 'testScope',
|
|
27
|
+
expires_in: 3600 * 24,
|
|
28
|
+
associated_user: {
|
|
29
|
+
id: _const.USER_ID,
|
|
30
|
+
account_owner: true,
|
|
31
|
+
collaborator: true,
|
|
32
|
+
email: 'test@test.test',
|
|
33
|
+
email_verified: true,
|
|
34
|
+
first_name: 'Test',
|
|
35
|
+
last_name: 'User',
|
|
36
|
+
locale: 'en-US',
|
|
37
|
+
...associated_user,
|
|
38
|
+
},
|
|
39
|
+
...onlineAccessInfo,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const session$1 = new session.Session({
|
|
43
|
+
id,
|
|
44
|
+
shop,
|
|
45
|
+
isOnline: Boolean(sessionParams.isOnline),
|
|
46
|
+
state: 'test',
|
|
47
|
+
accessToken: 'totally_real_token',
|
|
48
|
+
scope: 'testScope',
|
|
49
|
+
...overrides,
|
|
50
|
+
});
|
|
51
|
+
return session$1;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.setUpValidSession = setUpValidSession;
|
|
55
|
+
//# sourceMappingURL=setup-valid-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-valid-session.js","sources":["../../../../../test-helpers/setup-valid-session.ts"],"sourcesContent":[null],"names":["USER_ID","session","Session"],"mappings":";;;;;AAUA;;;;;AAKG;AACG,SAAU,iBAAiB,CAC/B,aACyC,EAAA;AAEzC,IAAA,MAAM,SAAS,GAA2B,EAAC,GAAG,aAAa,EAAkB,CAAC;AAC9E,IAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;AAChC,IAAA,IAAI,EAAE,GAAG,CAAW,QAAA,EAAA,IAAI,EAAE,CAAC;AAC3B,IAAA,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC1B,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;AACxD,QAAA,MAAM,eAAe,GAAG,gBAAgB,EAAE,eAAe,CAAC;AAC1D,QAAA,OAAO,aAAa,CAAC,gBAAgB,EAAE,eAAe,CAAC;QACvD,OAAO,aAAa,CAAC,gBAAgB,CAAC;AAEtC,QAAA,EAAE,GAAG,CAAG,EAAA,IAAI,CAAI,CAAA,EAAAA,cAAO,EAAE,CAAC;;AAE1B,QAAA,SAAS,CAAC,OAAO;AACf,YAAA,aAAa,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QACnE,SAAS,CAAC,gBAAgB,GAAG;AAC3B,YAAA,qBAAqB,EAAE,WAAW;YAClC,UAAU,EAAE,IAAI,GAAG,EAAE;AACrB,YAAA,eAAe,EAAE;AACf,gBAAA,EAAE,EAAEA,cAAO;AACX,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,GAAG,eAAe;AACnB,aAAA;AACD,YAAA,GAAG,gBAAgB;SACpB,CAAC;KACH;AAED,IAAA,MAAMC,SAAO,GAAG,IAAIC,eAAO,CAAC;QAC1B,EAAE;QACF,IAAI;AACJ,QAAA,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;AACzC,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,WAAW,EAAE,oBAAoB;AACjC,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,GAAG,SAAS;AACb,KAAA,CAAC,CAAC;AAEH,IAAA,OAAOD,SAAO,CAAC;AACjB;;;;"}
|