@unchainedshop/api 2.2.1 → 2.2.2
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/lib/api-index.js +1 -1
- package/lib/api-index.js.map +1 -1
- package/lib/express/createSingleSignOnMiddleware.js +1 -1
- package/lib/express/createSingleSignOnMiddleware.js.map +1 -1
- package/lib/resolvers/mutations/bookmarks/createBookmark.d.ts +2 -1
- package/lib/resolvers/mutations/bookmarks/createBookmark.js +2 -1
- package/lib/resolvers/mutations/bookmarks/createBookmark.js.map +1 -1
- package/lib/resolvers/queries/shopInfo.js +2 -1
- package/lib/resolvers/queries/shopInfo.js.map +1 -1
- package/lib/schema/mutation.js +1 -1
- package/lib/user-context.js +6 -5
- package/lib/user-context.js.map +1 -1
- package/package.json +10 -10
- package/src/api-index.ts +1 -1
- package/src/express/createSingleSignOnMiddleware.ts +1 -1
- package/src/resolvers/mutations/bookmarks/createBookmark.ts +2 -1
- package/src/resolvers/queries/shopInfo.ts +3 -1
- package/src/schema/mutation.ts +1 -1
- package/src/user-context.ts +12 -5
package/lib/api-index.js
CHANGED
|
@@ -25,7 +25,7 @@ export const loadJSON = (filename) => {
|
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
const packageJson = loadJSON('../package.json');
|
|
28
|
-
const UNCHAINED_API_VERSION =
|
|
28
|
+
const { UNCHAINED_API_VERSION = packageJson?.version || '2.x' } = process.env;
|
|
29
29
|
export const startAPIServer = async (options) => {
|
|
30
30
|
const { unchainedAPI, roles, context: customContext, adminUiConfig, ...apolloServerOptions } = options || {};
|
|
31
31
|
const contextResolver = createContextResolver(unchainedAPI, roles, UNCHAINED_API_VERSION, adminUiConfig);
|
package/lib/api-index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-index.js","sourceRoot":"","sources":["../src/api-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC;AAEvF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,EAAE;IACnC,IAAI;QACF,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,CAAC;QAC7D,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;aACzC,CAAC;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AACF,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAEhD,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"api-index.js","sourceRoot":"","sources":["../src/api-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC;AAEvF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,EAAE;IACnC,IAAI;QACF,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,CAAC;QAC7D,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;aACzC,CAAC;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AACF,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAEhD,MAAM,EAAE,qBAAqB,GAAG,WAAW,EAAE,OAAO,IAAI,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,OAA+B,EAAyB,EAAE;IAC7F,MAAM,EACJ,YAAY,EACZ,KAAK,EACL,OAAO,EAAE,aAAa,EACtB,aAAa,EACb,GAAG,mBAAmB,EACvB,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,MAAM,eAAe,GAAG,qBAAqB,CAC3C,YAAY,EACZ,KAAK,EACL,qBAAqB,EACrB,aAAa,CACd,CAAC;IAEF,yBAAyB,CACvB,aAAa;QACX,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;YACf,OAAO,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;QACtD,CAAC;QACH,CAAC,CAAC,eAAe,CACpB,CAAC;IAEF,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -52,7 +52,7 @@ const loginWithSingleSignOn = async (remoteToken, context) => {
|
|
|
52
52
|
export default function singleSignOnMiddleware(contextResolver) {
|
|
53
53
|
return async (req, res, next) => {
|
|
54
54
|
try {
|
|
55
|
-
if (req.query?.token) {
|
|
55
|
+
if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
|
|
56
56
|
const context = await contextResolver({ req, res });
|
|
57
57
|
const authCookie = await loginWithSingleSignOn(req.query.token, context);
|
|
58
58
|
if (authCookie) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSingleSignOnMiddleware.js","sourceRoot":"","sources":["../../src/express/createSingleSignOnMiddleware.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAErE,MAAM,MAAM,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE7D,MAAM,qBAAqB,GAAG,KAAK,EAAE,WAAW,EAAE,OAAsB,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC;IAChG,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wBAAwB,EAAE;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,2BAA2B;QAC3B,aAAa;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,aAAa,EAAE,SAAS;YACxB,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;aACnB;YACD,KAAK,EACH,6FAA6F;SAChG,CAAC;KACH,CAAC,CAAC;IACH,MAAM,IAAI,GAAQ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KACzC;IAED,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE;QAC5F,yCAAyC;QACzC,MAAM,SAAS,GACb,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG;YAChE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CACxC;gBACE,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,KAAK;aACb,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC,CAAC;QACL,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE;YAC5E,MAAM;YACN,QAAQ,EAAE,IAAI;YACd,OAAO;YACP,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,QAAQ,KAAK,YAAY;SAClC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;KACnB;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,eAAyC;IACtF,OAAO,KAAK,EAAE,GAAsC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjE,IAAI;YACF,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"createSingleSignOnMiddleware.js","sourceRoot":"","sources":["../../src/express/createSingleSignOnMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Context, Root } from '@unchainedshop/types/api.js';
|
|
2
|
-
export default function createBookmark(root: Root, { productId, userId }: {
|
|
2
|
+
export default function createBookmark(root: Root, { productId, userId, meta }: {
|
|
3
3
|
productId: string;
|
|
4
4
|
userId: string;
|
|
5
|
+
meta?: any;
|
|
5
6
|
}, { modules, userId: currenctUserId }: Context): Promise<import("@unchainedshop/types/bookmarks.js").Bookmark>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { log } from '@unchainedshop/logger';
|
|
2
2
|
import { BookmarkAlreadyExistsError, InvalidIdError, ProductNotFoundError } from '../../../errors.js';
|
|
3
|
-
export default async function createBookmark(root, { productId, userId }, { modules, userId: currenctUserId }) {
|
|
3
|
+
export default async function createBookmark(root, { productId, userId, meta }, { modules, userId: currenctUserId }) {
|
|
4
4
|
log(`mutation createBookmark for ${userId}`, {
|
|
5
5
|
productId,
|
|
6
6
|
userId: currenctUserId,
|
|
@@ -18,6 +18,7 @@ export default async function createBookmark(root, { productId, userId }, { modu
|
|
|
18
18
|
const bookmarkId = await modules.bookmarks.create({
|
|
19
19
|
userId,
|
|
20
20
|
productId,
|
|
21
|
+
meta,
|
|
21
22
|
});
|
|
22
23
|
return modules.bookmarks.findById(bookmarkId);
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBookmark.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/bookmarks/createBookmark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEtG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"createBookmark.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/bookmarks/createBookmark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEtG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAqD,EAC9E,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAW;IAE5C,GAAG,CAAC,+BAA+B,MAAM,EAAE,EAAE;QAC3C,SAAS;QACT,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACxD,MAAM,IAAI,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC;QAChE,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,QAAQ;QAAE,MAAM,IAAI,0BAA0B,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IAEjF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;QAChD,MAAM;QACN,SAAS;QACT,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { log } from '@unchainedshop/logger';
|
|
2
|
+
const { EXTERNAL_LINKS = '[]' } = process.env;
|
|
2
3
|
export default function shopInfo(root, _, context) {
|
|
3
4
|
const { adminUiConfig } = context;
|
|
4
5
|
log('query shopInfo', { userId: context.userId });
|
|
5
6
|
return {
|
|
6
7
|
version: context.version,
|
|
7
|
-
externalLinks: JSON.parse(
|
|
8
|
+
externalLinks: JSON.parse(EXTERNAL_LINKS),
|
|
8
9
|
adminUiConfig: {
|
|
9
10
|
customProperties: adminUiConfig?.customProperties ?? [],
|
|
10
11
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shopInfo.js","sourceRoot":"","sources":["../../../src/resolvers/queries/shopInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,IAAU,EACV,CAAQ,EACR,OAAgB;IAQhB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,GAAG,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAElD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"shopInfo.js","sourceRoot":"","sources":["../../../src/resolvers/queries/shopInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,IAAU,EACV,CAAQ,EACR,OAAgB;IAQhB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,GAAG,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAElD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QACzC,aAAa,EAAE;YACb,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,IAAI,EAAE;SACxD;QACD,KAAK,CAAC,cAAc;YAClB,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACxD,CAAC;QACD,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,4BAA4B;KAC1D,CAAC;AACJ,CAAC;AAED,EAAE"}
|
package/lib/schema/mutation.js
CHANGED
|
@@ -816,7 +816,7 @@ export default [
|
|
|
816
816
|
"""
|
|
817
817
|
Create a bookmark for a specific user
|
|
818
818
|
"""
|
|
819
|
-
createBookmark(productId: ID!, userId: ID
|
|
819
|
+
createBookmark(productId: ID!, userId: ID!, meta: JSON): Bookmark!
|
|
820
820
|
|
|
821
821
|
"""
|
|
822
822
|
Remove an existing bookmark by ID
|
package/lib/user-context.js
CHANGED
|
@@ -2,11 +2,12 @@ import cookie from 'cookie';
|
|
|
2
2
|
function isString(input) {
|
|
3
3
|
return typeof input === 'string' && Object.prototype.toString.call(input) === '[object String]';
|
|
4
4
|
}
|
|
5
|
+
const { UNCHAINED_COOKIE_NAME = 'unchained_token', UNCHAINED_COOKIE_PATH = '/', UNCHAINED_COOKIE_DOMAIN, NODE_ENV, } = process.env;
|
|
5
6
|
export const getUserContext = async (req, res, unchainedAPI) => {
|
|
6
7
|
// there is a possible current user connected!
|
|
7
|
-
const cookieName =
|
|
8
|
-
const domain =
|
|
9
|
-
const path =
|
|
8
|
+
const cookieName = UNCHAINED_COOKIE_NAME;
|
|
9
|
+
const domain = UNCHAINED_COOKIE_DOMAIN;
|
|
10
|
+
const path = UNCHAINED_COOKIE_PATH;
|
|
10
11
|
let loginToken = req.cookies?.[cookieName];
|
|
11
12
|
function setLoginToken(token, expires) {
|
|
12
13
|
if (!domain)
|
|
@@ -14,11 +15,11 @@ export const getUserContext = async (req, res, unchainedAPI) => {
|
|
|
14
15
|
const authCookie = cookie.serialize(cookieName, token || null, {
|
|
15
16
|
domain,
|
|
16
17
|
httpOnly: true,
|
|
17
|
-
path
|
|
18
|
+
path,
|
|
18
19
|
expires: token ? expires : undefined,
|
|
19
20
|
maxAge: token ? undefined : -1,
|
|
20
21
|
sameSite: 'lax',
|
|
21
|
-
secure:
|
|
22
|
+
secure: NODE_ENV === 'production',
|
|
22
23
|
});
|
|
23
24
|
res.setHeader('Set-Cookie', authCookie);
|
|
24
25
|
}
|
package/lib/user-context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-context.js","sourceRoot":"","sources":["../src/user-context.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,SAAS,QAAQ,CAAC,KAAK;IACrB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC;AAClG,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,GAAwC,EACxC,GAAoB,EACpB,YAA2B,EACI,EAAE;IACjC,8CAA8C;IAC9C,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"user-context.js","sourceRoot":"","sources":["../src/user-context.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/api",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2",
|
|
4
4
|
"main": "lib/api-index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/api-index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@apollo/server": "^4.7.
|
|
43
|
+
"@apollo/server": "^4.7.2",
|
|
44
44
|
"cookie": "^0.5.0",
|
|
45
45
|
"graphql": "^16.6.0"
|
|
46
46
|
},
|
|
@@ -49,14 +49,14 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@metamask/eth-sig-util": "^5.1.0",
|
|
52
|
-
"@unchainedshop/core": "^2.2.
|
|
53
|
-
"@unchainedshop/events": "^2.2.
|
|
54
|
-
"@unchainedshop/logger": "^2.2.
|
|
55
|
-
"@unchainedshop/roles": "^2.2.
|
|
56
|
-
"@unchainedshop/utils": "^2.2.
|
|
52
|
+
"@unchainedshop/core": "^2.2.2",
|
|
53
|
+
"@unchainedshop/events": "^2.2.2",
|
|
54
|
+
"@unchainedshop/logger": "^2.2.2",
|
|
55
|
+
"@unchainedshop/roles": "^2.2.2",
|
|
56
|
+
"@unchainedshop/utils": "^2.2.2",
|
|
57
57
|
"accounting": "0.4.1",
|
|
58
58
|
"dataloader": "^2.2.2",
|
|
59
|
-
"graphql-scalars": "^1.
|
|
59
|
+
"graphql-scalars": "^1.22.2",
|
|
60
60
|
"graphql-upload": "^16.0.2",
|
|
61
61
|
"locale": "0.1.0",
|
|
62
62
|
"lodash.isnumber": "3.0.3",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/graphql-upload": "^16.0.0",
|
|
67
67
|
"@types/locale": "^0.1.1",
|
|
68
|
-
"@types/node": "^18.16.
|
|
69
|
-
"@unchainedshop/types": "^2.2.
|
|
68
|
+
"@types/node": "^18.16.16",
|
|
69
|
+
"@unchainedshop/types": "^2.2.2",
|
|
70
70
|
"express": "^4.18.2",
|
|
71
71
|
"graphql": "^16.6.0",
|
|
72
72
|
"jest": "^29.5.0",
|
package/src/api-index.ts
CHANGED
|
@@ -33,7 +33,7 @@ export const loadJSON = (filename) => {
|
|
|
33
33
|
};
|
|
34
34
|
const packageJson = loadJSON('../package.json');
|
|
35
35
|
|
|
36
|
-
const UNCHAINED_API_VERSION =
|
|
36
|
+
const { UNCHAINED_API_VERSION = packageJson?.version || '2.x' } = process.env;
|
|
37
37
|
|
|
38
38
|
export const startAPIServer = async (options: UnchainedServerOptions): Promise<ApolloServer> => {
|
|
39
39
|
const {
|
|
@@ -66,7 +66,7 @@ const loginWithSingleSignOn = async (remoteToken, context: UnchainedCore) => {
|
|
|
66
66
|
export default function singleSignOnMiddleware(contextResolver: UnchainedContextResolver) {
|
|
67
67
|
return async (req: IncomingMessage & { query?: any }, res, next) => {
|
|
68
68
|
try {
|
|
69
|
-
if (req.query?.token) {
|
|
69
|
+
if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
|
|
70
70
|
const context = await contextResolver({ req, res });
|
|
71
71
|
const authCookie = await loginWithSingleSignOn(req.query.token, context);
|
|
72
72
|
|
|
@@ -4,7 +4,7 @@ import { BookmarkAlreadyExistsError, InvalidIdError, ProductNotFoundError } from
|
|
|
4
4
|
|
|
5
5
|
export default async function createBookmark(
|
|
6
6
|
root: Root,
|
|
7
|
-
{ productId, userId }: { productId: string; userId: string },
|
|
7
|
+
{ productId, userId, meta }: { productId: string; userId: string; meta?: any },
|
|
8
8
|
{ modules, userId: currenctUserId }: Context,
|
|
9
9
|
) {
|
|
10
10
|
log(`mutation createBookmark for ${userId}`, {
|
|
@@ -25,6 +25,7 @@ export default async function createBookmark(
|
|
|
25
25
|
const bookmarkId = await modules.bookmarks.create({
|
|
26
26
|
userId,
|
|
27
27
|
productId,
|
|
28
|
+
meta,
|
|
28
29
|
});
|
|
29
30
|
|
|
30
31
|
return modules.bookmarks.findById(bookmarkId);
|
|
@@ -2,6 +2,8 @@ import { Context, Root } from '@unchainedshop/types/api.js';
|
|
|
2
2
|
import { log } from '@unchainedshop/logger';
|
|
3
3
|
import { IOAuth2Adapter } from '@unchainedshop/types/accounts.js';
|
|
4
4
|
|
|
5
|
+
const { EXTERNAL_LINKS = '[]' } = process.env;
|
|
6
|
+
|
|
5
7
|
export default function shopInfo(
|
|
6
8
|
root: Root,
|
|
7
9
|
_: never,
|
|
@@ -18,7 +20,7 @@ export default function shopInfo(
|
|
|
18
20
|
|
|
19
21
|
return {
|
|
20
22
|
version: context.version,
|
|
21
|
-
externalLinks: JSON.parse(
|
|
23
|
+
externalLinks: JSON.parse(EXTERNAL_LINKS),
|
|
22
24
|
adminUiConfig: {
|
|
23
25
|
customProperties: adminUiConfig?.customProperties ?? [],
|
|
24
26
|
},
|
package/src/schema/mutation.ts
CHANGED
|
@@ -816,7 +816,7 @@ export default [
|
|
|
816
816
|
"""
|
|
817
817
|
Create a bookmark for a specific user
|
|
818
818
|
"""
|
|
819
|
-
createBookmark(productId: ID!, userId: ID
|
|
819
|
+
createBookmark(productId: ID!, userId: ID!, meta: JSON): Bookmark!
|
|
820
820
|
|
|
821
821
|
"""
|
|
822
822
|
Remove an existing bookmark by ID
|
package/src/user-context.ts
CHANGED
|
@@ -7,15 +7,22 @@ function isString(input) {
|
|
|
7
7
|
return typeof input === 'string' && Object.prototype.toString.call(input) === '[object String]';
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
const {
|
|
11
|
+
UNCHAINED_COOKIE_NAME = 'unchained_token',
|
|
12
|
+
UNCHAINED_COOKIE_PATH = '/',
|
|
13
|
+
UNCHAINED_COOKIE_DOMAIN,
|
|
14
|
+
NODE_ENV,
|
|
15
|
+
} = process.env;
|
|
16
|
+
|
|
10
17
|
export const getUserContext = async (
|
|
11
18
|
req: IncomingMessage & { cookies?: any },
|
|
12
19
|
res: OutgoingMessage,
|
|
13
20
|
unchainedAPI: UnchainedCore,
|
|
14
21
|
): Promise<UnchainedUserContext> => {
|
|
15
22
|
// there is a possible current user connected!
|
|
16
|
-
const cookieName =
|
|
17
|
-
const domain =
|
|
18
|
-
const path =
|
|
23
|
+
const cookieName = UNCHAINED_COOKIE_NAME;
|
|
24
|
+
const domain = UNCHAINED_COOKIE_DOMAIN;
|
|
25
|
+
const path = UNCHAINED_COOKIE_PATH;
|
|
19
26
|
|
|
20
27
|
let loginToken = req.cookies?.[cookieName];
|
|
21
28
|
|
|
@@ -24,11 +31,11 @@ export const getUserContext = async (
|
|
|
24
31
|
const authCookie = cookie.serialize(cookieName, token || null, {
|
|
25
32
|
domain,
|
|
26
33
|
httpOnly: true,
|
|
27
|
-
path
|
|
34
|
+
path,
|
|
28
35
|
expires: token ? expires : undefined,
|
|
29
36
|
maxAge: token ? undefined : -1,
|
|
30
37
|
sameSite: 'lax',
|
|
31
|
-
secure:
|
|
38
|
+
secure: NODE_ENV === 'production',
|
|
32
39
|
});
|
|
33
40
|
res.setHeader('Set-Cookie', authCookie);
|
|
34
41
|
}
|