@unchainedshop/api 2.10.5 → 2.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- export default function createApolloMiddleware(contextResolver: any, apolloGraphQLServer: any, { corsOrigins }?: {
1
+ export default function createApolloMiddleware(apolloGraphQLServer: any, { corsOrigins }?: {
2
2
  corsOrigins?: any;
3
3
  }): any[];
@@ -2,7 +2,9 @@ import cors from 'cors';
2
2
  import { expressMiddleware } from '@apollo/server/express4';
3
3
  import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';
4
4
  import e from 'express';
5
- export default function createApolloMiddleware(contextResolver, apolloGraphQLServer, { corsOrigins = undefined } = {}) {
5
+ import { getCurrentContextResolver } from '../context.js';
6
+ export default function createApolloMiddleware(apolloGraphQLServer, { corsOrigins = undefined } = {}) {
7
+ const contextResolver = getCurrentContextResolver();
6
8
  const originFn = corsOrigins && Array.isArray(corsOrigins)
7
9
  ? (origin, callback) => {
8
10
  if (corsOrigins.length === 0 || !origin) {
@@ -1 +1 @@
1
- {"version":3,"file":"createApolloMiddleware.js","sourceRoot":"","sources":["../../src/express/createApolloMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,CAAC,MAAM,SAAS,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,eAAe,EACf,mBAAmB,EACnB,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE;IAEhC,MAAM,QAAQ,GACZ,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACnB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACH,CAAC,CAAC,WAAW,CAAC;IAElB,OAAO;QACL,IAAI,CACF,CAAC,QAAQ;YACP,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,IAAI;aAClB,CACN;QACD,CAAC,CAAC,IAAI,EAAE;QACR,oBAAoB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC7D,iBAAiB,CAAC,mBAAmB,EAAE;YACrC,OAAO,EAAE,eAAe;SACzB,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createApolloMiddleware.js","sourceRoot":"","sources":["../../src/express/createApolloMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,mBAAmB,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE;IAClG,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IAEpD,MAAM,QAAQ,GACZ,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACnB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACH,CAAC,CAAC,WAAW,CAAC;IAElB,OAAO;QACL,IAAI,CACF,CAAC,QAAQ;YACP,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,IAAI;aAClB,CACN;QACD,CAAC,CAAC,IAAI,EAAE;QACR,oBAAoB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC7D,iBAAiB,CAAC,mBAAmB,EAAE;YACrC,OAAO,EAAE,eAAe;SACzB,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -1,2 +1 @@
1
- import { UnchainedContextResolver } from '@unchainedshop/types/api.js';
2
- export default function bulkImportMiddleware(contextResolver: UnchainedContextResolver): (req: any, res: any) => Promise<void>;
1
+ export default function bulkImportMiddleware(req: any, res: any): Promise<void>;
@@ -1,6 +1,7 @@
1
1
  import { createLogger } from '@unchainedshop/logger';
2
2
  import { checkAction } from '../acl.js';
3
3
  import { actions } from '../roles/index.js';
4
+ import { getCurrentContextResolver } from '../context.js';
4
5
  const logger = createLogger('unchained:bulk-import');
5
6
  const errorHandler = (res) => (e) => {
6
7
  logger.error(e.message);
@@ -12,41 +13,40 @@ const methodWrongHandler = (res) => () => {
12
13
  res.writeHead(404);
13
14
  res.end();
14
15
  };
15
- export default function bulkImportMiddleware(contextResolver) {
16
- return async (req, res) => {
17
- try {
18
- if (req.method !== 'POST') {
19
- methodWrongHandler(res)();
20
- return;
21
- }
22
- const context = await contextResolver({ req, res });
23
- await checkAction(context, actions.bulkImport);
24
- const input = {
25
- createShouldUpsertIfIDExists: !!req.query?.createShouldUpsertIfIDExists,
26
- skipCacheInvalidation: !!req.query?.skipCacheInvalidation,
27
- remoteAddress: context.remoteAddress,
28
- };
29
- const date = new Date().toISOString();
30
- const file = await context.services.files.uploadFileFromStream({
31
- directoryName: 'bulk-import-streams',
32
- rawFile: Promise.resolve({ filename: `${date}.json`, createReadStream: () => req }),
33
- meta: {},
34
- }, context);
35
- input.payloadId = file._id;
36
- input.payloadSize = file.size;
37
- const purgedInput = Object.fromEntries(Object.entries(input).filter(([, value]) => Boolean(value)));
38
- const work = await context.modules.worker.addWork({
39
- type: 'BULK_IMPORT',
40
- input: purgedInput,
41
- retries: 0,
42
- priority: 10,
43
- });
44
- res.writeHead(200);
45
- res.end(JSON.stringify(work));
16
+ export default async function bulkImportMiddleware(req, res) {
17
+ try {
18
+ if (req.method !== 'POST') {
19
+ methodWrongHandler(res)();
20
+ return;
46
21
  }
47
- catch (e) {
48
- errorHandler(res)(e);
49
- }
50
- };
22
+ const contextResolver = getCurrentContextResolver();
23
+ const context = await contextResolver({ req, res });
24
+ await checkAction(context, actions.bulkImport);
25
+ const input = {
26
+ createShouldUpsertIfIDExists: !!req.query?.createShouldUpsertIfIDExists,
27
+ skipCacheInvalidation: !!req.query?.skipCacheInvalidation,
28
+ remoteAddress: context.remoteAddress,
29
+ };
30
+ const date = new Date().toISOString();
31
+ const file = await context.services.files.uploadFileFromStream({
32
+ directoryName: 'bulk-import-streams',
33
+ rawFile: Promise.resolve({ filename: `${date}.json`, createReadStream: () => req }),
34
+ meta: {},
35
+ }, context);
36
+ input.payloadId = file._id;
37
+ input.payloadSize = file.size;
38
+ const purgedInput = Object.fromEntries(Object.entries(input).filter(([, value]) => Boolean(value)));
39
+ const work = await context.modules.worker.addWork({
40
+ type: 'BULK_IMPORT',
41
+ input: purgedInput,
42
+ retries: 0,
43
+ priority: 10,
44
+ });
45
+ res.writeHead(200);
46
+ res.end(JSON.stringify(work));
47
+ }
48
+ catch (e) {
49
+ errorHandler(res)(e);
50
+ }
51
51
  }
52
52
  //# sourceMappingURL=createBulkImportMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createBulkImportMiddleware.js","sourceRoot":"","sources":["../../src/express/createBulkImportMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createBulkImportMiddleware.js","sourceRoot":"","sources":["../../src/express/createBulkImportMiddleware.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import { IncomingMessage } from 'http';
3
- import { UnchainedContextResolver } from '@unchainedshop/types/api.js';
4
- export default function ercMetadataMiddleware(contextResolver: UnchainedContextResolver): (req: IncomingMessage, res: any) => Promise<void>;
3
+ export default function ercMetadataMiddleware(req: IncomingMessage, res: any): Promise<void>;
@@ -2,6 +2,7 @@ import path from 'path';
2
2
  import { createLogger } from '@unchainedshop/logger';
3
3
  import { systemLocale } from '@unchainedshop/utils';
4
4
  import localePkg from 'locale';
5
+ import { getCurrentContextResolver } from '../context.js';
5
6
  const { Locale } = localePkg;
6
7
  const logger = createLogger('unchained:erc-metadata');
7
8
  const errorHandler = (res) => (e) => {
@@ -14,44 +15,43 @@ const methodWrongHandler = (res) => () => {
14
15
  res.writeHead(404);
15
16
  res.end();
16
17
  };
17
- export default function ercMetadataMiddleware(contextResolver) {
18
- return async (req, res) => {
19
- try {
20
- if (req.method !== 'GET') {
21
- methodWrongHandler(res)();
22
- return;
23
- }
24
- const context = await contextResolver({ req, res });
25
- const url = new URL(req.url, process.env.ROOT_URL);
26
- const parsedPath = path.parse(url.pathname);
27
- if (parsedPath.ext !== '.json')
28
- throw new Error('Invalid ERC Metadata URI');
29
- const [, productId, localeOrTokenFilename, tokenFileName] = url.pathname.split('/');
30
- const locale = tokenFileName ? localeOrTokenFilename : systemLocale.language;
31
- const chainTokenId = parsedPath.name;
32
- const product = await context.modules.products.findProduct({
33
- productId,
34
- });
35
- const [token] = await context.modules.warehousing.findTokens({
36
- chainTokenId,
37
- contractAddress: product?.tokenization?.contractAddress,
38
- });
39
- const ercMetadata = await context.modules.warehousing.tokenMetadata(chainTokenId, {
40
- token,
41
- product,
42
- locale: new Locale(locale),
43
- referenceDate: new Date(),
44
- }, context);
45
- const body = JSON.stringify(ercMetadata);
46
- res.writeHead(200, {
47
- 'Content-Length': Buffer.byteLength(body),
48
- 'Content-Type': 'text/plain',
49
- });
50
- res.end(body);
18
+ export default async function ercMetadataMiddleware(req, res) {
19
+ try {
20
+ if (req.method !== 'GET') {
21
+ methodWrongHandler(res)();
22
+ return;
51
23
  }
52
- catch (e) {
53
- errorHandler(res)(e);
54
- }
55
- };
24
+ const contextResolver = getCurrentContextResolver();
25
+ const context = await contextResolver({ req, res });
26
+ const url = new URL(req.url, process.env.ROOT_URL);
27
+ const parsedPath = path.parse(url.pathname);
28
+ if (parsedPath.ext !== '.json')
29
+ throw new Error('Invalid ERC Metadata URI');
30
+ const [, productId, localeOrTokenFilename, tokenFileName] = url.pathname.split('/');
31
+ const locale = tokenFileName ? localeOrTokenFilename : systemLocale.language;
32
+ const chainTokenId = parsedPath.name;
33
+ const product = await context.modules.products.findProduct({
34
+ productId,
35
+ });
36
+ const [token] = await context.modules.warehousing.findTokens({
37
+ chainTokenId,
38
+ contractAddress: product?.tokenization?.contractAddress,
39
+ });
40
+ const ercMetadata = await context.modules.warehousing.tokenMetadata(chainTokenId, {
41
+ token,
42
+ product,
43
+ locale: new Locale(locale),
44
+ referenceDate: new Date(),
45
+ }, context);
46
+ const body = JSON.stringify(ercMetadata);
47
+ res.writeHead(200, {
48
+ 'Content-Length': Buffer.byteLength(body),
49
+ 'Content-Type': 'text/plain',
50
+ });
51
+ res.end(body);
52
+ }
53
+ catch (e) {
54
+ errorHandler(res)(e);
55
+ }
56
56
  }
57
57
  //# sourceMappingURL=createERCMetadataMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createERCMetadataMiddleware.js","sourceRoot":"","sources":["../../src/express/createERCMetadataMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createERCMetadataMiddleware.js","sourceRoot":"","sources":["../../src/express/createERCMetadataMiddleware.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference lib="dom" />
3
3
  import { IncomingMessage } from 'http';
4
- import { UnchainedContextResolver } from '@unchainedshop/types/api.js';
5
- export default function singleSignOnMiddleware(contextResolver: UnchainedContextResolver): (req: IncomingMessage & {
4
+ export default function singleSignOnMiddleware(req: IncomingMessage & {
6
5
  query?: any;
7
- }, res: any, next: any) => Promise<void>;
6
+ }, res: any, next: any): Promise<void>;
@@ -1,5 +1,6 @@
1
1
  import { createLogger } from '@unchainedshop/logger';
2
2
  import cookie from 'cookie';
3
+ import { getCurrentContextResolver } from '../context.js';
3
4
  const { ROOT_URL, NODE_ENV, UNCHAINED_CLOUD_ENDPOINT } = process.env;
4
5
  const logger = createLogger('unchained:unchained-cloud-sso');
5
6
  const loginWithSingleSignOn = async (remoteToken, context) => {
@@ -48,26 +49,25 @@ const loginWithSingleSignOn = async (remoteToken, context) => {
48
49
  }
49
50
  throw new Error('Invalid token/domain pair');
50
51
  };
51
- export default function singleSignOnMiddleware(contextResolver) {
52
- return async (req, res, next) => {
53
- try {
54
- if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
55
- const context = await contextResolver({ req, res });
56
- const authCookie = await loginWithSingleSignOn(req.query.token, context);
57
- if (authCookie) {
58
- res.writeHead(303, {
59
- 'Set-Cookie': authCookie,
60
- Location: '/',
61
- });
62
- res.end();
63
- return;
64
- }
52
+ export default async function singleSignOnMiddleware(req, res, next) {
53
+ try {
54
+ if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
55
+ const contextResolver = getCurrentContextResolver();
56
+ const context = await contextResolver({ req, res });
57
+ const authCookie = await loginWithSingleSignOn(req.query.token, context);
58
+ if (authCookie) {
59
+ res.writeHead(303, {
60
+ 'Set-Cookie': authCookie,
61
+ Location: '/',
62
+ });
63
+ res.end();
64
+ return;
65
65
  }
66
66
  }
67
- catch (e) {
68
- logger.error(e.message);
69
- }
70
- next();
71
- };
67
+ }
68
+ catch (e) {
69
+ logger.error(e.message);
70
+ }
71
+ next();
72
72
  }
73
73
  //# sourceMappingURL=createSingleSignOnMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSingleSignOnMiddleware.js","sourceRoot":"","sources":["../../src/express/createSingleSignOnMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSingleSignOnMiddleware.js","sourceRoot":"","sources":["../../src/express/createSingleSignOnMiddleware.ts"],"names":[],"mappings":"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"}
@@ -4,24 +4,26 @@ import createERCMetadataMiddleware from './createERCMetadataMiddleware.js';
4
4
  import createApolloMiddleware from './createApolloMiddleware.js';
5
5
  import createSingleSignOnMiddleware from './createSingleSignOnMiddleware.js';
6
6
  const { BULK_IMPORT_API_PATH = '/bulk-import', ERC_METADATA_API_PATH = '/erc-metadata', GRAPHQL_API_PATH = '/graphql', } = process.env;
7
+ const addContext = async function middlewareWithContext(req, res, next) {
8
+ try {
9
+ const context = getCurrentContextResolver();
10
+ req.unchainedContext = await context({ req, res });
11
+ next();
12
+ }
13
+ catch (error) {
14
+ next(error);
15
+ }
16
+ };
7
17
  export const useMiddlewareWithCurrentContext = (expressApp, path, ...middleware) => {
8
- const context = getCurrentContextResolver();
9
- const addContext = async function middlewareWithContext(req, res, next) {
10
- try {
11
- req.unchainedContext = await context({ req, res });
12
- next();
13
- }
14
- catch (error) {
15
- next(error);
16
- }
17
- };
18
+ if (!path) {
19
+ throw new Error('Path is required for useMiddlewareWithCurrentContext');
20
+ }
18
21
  expressApp.use(path, addContext, ...middleware);
19
22
  };
20
23
  export const connect = (expressApp, { apolloGraphQLServer }, options) => {
21
- const contextResolver = getCurrentContextResolver();
22
- expressApp.use(GRAPHQL_API_PATH, createApolloMiddleware(contextResolver, apolloGraphQLServer, options));
23
- expressApp.use(ERC_METADATA_API_PATH, createERCMetadataMiddleware(contextResolver));
24
- expressApp.use(BULK_IMPORT_API_PATH, createBulkImportMiddleware(contextResolver));
25
- expressApp.use(['/', '/.well-known/unchained/cloud-sso'], createSingleSignOnMiddleware(contextResolver));
24
+ expressApp.use(GRAPHQL_API_PATH, createApolloMiddleware(apolloGraphQLServer, options));
25
+ expressApp.use(ERC_METADATA_API_PATH, createERCMetadataMiddleware);
26
+ expressApp.use(BULK_IMPORT_API_PATH, createBulkImportMiddleware);
27
+ expressApp.use(['/', '/.well-known/unchained/cloud-sso'], createSingleSignOnMiddleware);
26
28
  };
27
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,2BAA2B,MAAM,kCAAkC,CAAC;AAC3E,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,4BAA4B,MAAM,mCAAmC,CAAC;AAE7E,MAAM,EACJ,oBAAoB,GAAG,cAAc,EACrC,qBAAqB,GAAG,eAAe,EACvC,gBAAgB,GAAG,UAAU,GAC9B,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE;IACjF,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,UAAU,qBAAqB,CACrD,GAA0D,EAC1D,GAAoB,EACpB,IAAI;QAEJ,IAAI,CAAC;YACH,GAAG,CAAC,gBAAgB,GAAG,MAAM,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,UAAqB,EACrB,EAAE,mBAAmB,EAAyC,EAC9D,OAA+B,EAC/B,EAAE;IACF,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IAEpD,UAAU,CAAC,GAAG,CACZ,gBAAgB,EAChB,sBAAsB,CAAC,eAAe,EAAE,mBAAmB,EAAE,OAAO,CAAC,CACtE,CAAC;IACF,UAAU,CAAC,GAAG,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,eAAe,CAAC,CAAC,CAAC;IACpF,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,UAAU,CAAC,GAAG,CACZ,CAAC,GAAG,EAAE,kCAAkC,CAAC,EACzC,4BAA4B,CAAC,eAAe,CAAC,CAC9C,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,2BAA2B,MAAM,kCAAkC,CAAC;AAC3E,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,4BAA4B,MAAM,mCAAmC,CAAC;AAE7E,MAAM,EACJ,oBAAoB,GAAG,cAAc,EACrC,qBAAqB,GAAG,eAAe,EACvC,gBAAgB,GAAG,UAAU,GAC9B,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,MAAM,UAAU,GAAG,KAAK,UAAU,qBAAqB,CACrD,GAA0D,EAC1D,GAAoB,EACpB,IAAI;IAEJ,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,GAAG,CAAC,gBAAgB,GAAG,MAAM,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE;IACjF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,UAAqB,EACrB,EAAE,mBAAmB,EAAyC,EAC9D,OAA+B,EAC/B,EAAE;IACF,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;IACvF,UAAU,CAAC,GAAG,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,CAAC;IACnE,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;IACjE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,kCAAkC,CAAC,EAAE,4BAA4B,CAAC,CAAC;AAC1F,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/api",
3
- "version": "2.10.5",
3
+ "version": "2.10.7",
4
4
  "main": "lib/api-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/api-index.js",
@@ -19,7 +19,7 @@
19
19
  "type": "module",
20
20
  "scripts": {
21
21
  "clean": "rm -rf lib",
22
- "prepare": "npm run clean && tsc",
22
+ "prepublishOnly": "npm run clean && tsc",
23
23
  "watch": "tsc -w",
24
24
  "test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
25
25
  "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "homepage": "https://github.com/unchainedshop/unchained#readme",
42
42
  "peerDependencies": {
43
- "@apollo/server": "~4",
43
+ "@apollo/server": "^4.10.4",
44
44
  "cookie": "~0.6"
45
45
  },
46
46
  "optionalDependencies": {
@@ -48,11 +48,11 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@metamask/eth-sig-util": "^7.0.2",
51
- "@unchainedshop/core": "^2.10.5",
52
- "@unchainedshop/events": "^2.10.5",
53
- "@unchainedshop/logger": "^2.10.5",
54
- "@unchainedshop/roles": "^2.10.5",
55
- "@unchainedshop/utils": "^2.10.5",
51
+ "@unchainedshop/core": "^2.10.7",
52
+ "@unchainedshop/events": "^2.10.7",
53
+ "@unchainedshop/logger": "^2.10.7",
54
+ "@unchainedshop/roles": "^2.10.7",
55
+ "@unchainedshop/utils": "^2.10.7",
56
56
  "accounting": "0.4.1",
57
57
  "dataloader": "^2.2.2",
58
58
  "graphql-scalars": "^1.23.0",
@@ -64,11 +64,11 @@
64
64
  "devDependencies": {
65
65
  "@types/graphql-upload": "^16.0.7",
66
66
  "@types/locale": "^0.1.4",
67
- "@types/node": "^20.14.2",
68
- "@unchainedshop/types": "^2.10.5",
67
+ "@types/node": "^20.14.7",
68
+ "@unchainedshop/types": "^2.10.7",
69
69
  "express": "^4.19.2",
70
70
  "jest": "^29.7.0",
71
- "ts-jest": "^29.1.4",
71
+ "ts-jest": "^29.1.5",
72
72
  "typescript": "^5.4.5"
73
73
  }
74
74
  }
@@ -2,12 +2,11 @@ import cors from 'cors';
2
2
  import { expressMiddleware } from '@apollo/server/express4';
3
3
  import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';
4
4
  import e from 'express';
5
+ import { getCurrentContextResolver } from '../context.js';
6
+
7
+ export default function createApolloMiddleware(apolloGraphQLServer, { corsOrigins = undefined } = {}) {
8
+ const contextResolver = getCurrentContextResolver();
5
9
 
6
- export default function createApolloMiddleware(
7
- contextResolver,
8
- apolloGraphQLServer,
9
- { corsOrigins = undefined } = {},
10
- ) {
11
10
  const originFn =
12
11
  corsOrigins && Array.isArray(corsOrigins)
13
12
  ? (origin, callback) => {
@@ -1,7 +1,7 @@
1
1
  import { createLogger } from '@unchainedshop/logger';
2
- import { UnchainedContextResolver } from '@unchainedshop/types/api.js';
3
2
  import { checkAction } from '../acl.js';
4
3
  import { actions } from '../roles/index.js';
4
+ import { getCurrentContextResolver } from '../context.js';
5
5
 
6
6
  const logger = createLogger('unchained:bulk-import');
7
7
 
@@ -17,52 +17,49 @@ const methodWrongHandler = (res) => () => {
17
17
  res.end();
18
18
  };
19
19
 
20
- export default function bulkImportMiddleware(contextResolver: UnchainedContextResolver) {
21
- return async (req, res) => {
22
- try {
23
- if (req.method !== 'POST') {
24
- methodWrongHandler(res)();
25
- return;
26
- }
20
+ export default async function bulkImportMiddleware(req, res) {
21
+ try {
22
+ if (req.method !== 'POST') {
23
+ methodWrongHandler(res)();
24
+ return;
25
+ }
27
26
 
28
- const context = await contextResolver({ req, res });
29
- await checkAction(context, (actions as any).bulkImport);
27
+ const contextResolver = getCurrentContextResolver();
28
+ const context = await contextResolver({ req, res });
29
+ await checkAction(context, (actions as any).bulkImport);
30
30
 
31
- const input: any = {
32
- createShouldUpsertIfIDExists: !!req.query?.createShouldUpsertIfIDExists,
33
- skipCacheInvalidation: !!req.query?.skipCacheInvalidation,
34
- remoteAddress: context.remoteAddress,
35
- };
31
+ const input: any = {
32
+ createShouldUpsertIfIDExists: !!req.query?.createShouldUpsertIfIDExists,
33
+ skipCacheInvalidation: !!req.query?.skipCacheInvalidation,
34
+ remoteAddress: context.remoteAddress,
35
+ };
36
36
 
37
- const date = new Date().toISOString();
37
+ const date = new Date().toISOString();
38
38
 
39
- const file = await context.services.files.uploadFileFromStream(
40
- {
41
- directoryName: 'bulk-import-streams',
42
- rawFile: Promise.resolve({ filename: `${date}.json`, createReadStream: () => req }),
43
- meta: {},
44
- },
45
- context,
46
- );
39
+ const file = await context.services.files.uploadFileFromStream(
40
+ {
41
+ directoryName: 'bulk-import-streams',
42
+ rawFile: Promise.resolve({ filename: `${date}.json`, createReadStream: () => req }),
43
+ meta: {},
44
+ },
45
+ context,
46
+ );
47
47
 
48
- input.payloadId = file._id;
49
- input.payloadSize = file.size;
48
+ input.payloadId = file._id;
49
+ input.payloadSize = file.size;
50
50
 
51
- const purgedInput = Object.fromEntries(
52
- Object.entries(input).filter(([, value]) => Boolean(value)),
53
- );
51
+ const purgedInput = Object.fromEntries(Object.entries(input).filter(([, value]) => Boolean(value)));
54
52
 
55
- const work = await context.modules.worker.addWork({
56
- type: 'BULK_IMPORT',
57
- input: purgedInput,
58
- retries: 0,
59
- priority: 10,
60
- });
53
+ const work = await context.modules.worker.addWork({
54
+ type: 'BULK_IMPORT',
55
+ input: purgedInput,
56
+ retries: 0,
57
+ priority: 10,
58
+ });
61
59
 
62
- res.writeHead(200);
63
- res.end(JSON.stringify(work));
64
- } catch (e) {
65
- errorHandler(res)(e);
66
- }
67
- };
60
+ res.writeHead(200);
61
+ res.end(JSON.stringify(work));
62
+ } catch (e) {
63
+ errorHandler(res)(e);
64
+ }
68
65
  }
@@ -1,9 +1,9 @@
1
1
  import { IncomingMessage } from 'http';
2
2
  import path from 'path';
3
3
  import { createLogger } from '@unchainedshop/logger';
4
- import { UnchainedContextResolver } from '@unchainedshop/types/api.js';
5
4
  import { systemLocale } from '@unchainedshop/utils';
6
5
  import localePkg from 'locale';
6
+ import { getCurrentContextResolver } from '../context.js';
7
7
 
8
8
  const { Locale } = localePkg;
9
9
 
@@ -21,53 +21,52 @@ const methodWrongHandler = (res) => () => {
21
21
  res.end();
22
22
  };
23
23
 
24
- export default function ercMetadataMiddleware(contextResolver: UnchainedContextResolver) {
25
- return async (req: IncomingMessage, res) => {
26
- try {
27
- if (req.method !== 'GET') {
28
- methodWrongHandler(res)();
29
- return;
30
- }
24
+ export default async function ercMetadataMiddleware(req: IncomingMessage, res) {
25
+ try {
26
+ if (req.method !== 'GET') {
27
+ methodWrongHandler(res)();
28
+ return;
29
+ }
31
30
 
32
- const context = await contextResolver({ req, res });
33
- const url = new URL(req.url, process.env.ROOT_URL);
34
- const parsedPath = path.parse(url.pathname);
31
+ const contextResolver = getCurrentContextResolver();
32
+ const context = await contextResolver({ req, res });
33
+ const url = new URL(req.url, process.env.ROOT_URL);
34
+ const parsedPath = path.parse(url.pathname);
35
35
 
36
- if (parsedPath.ext !== '.json') throw new Error('Invalid ERC Metadata URI');
36
+ if (parsedPath.ext !== '.json') throw new Error('Invalid ERC Metadata URI');
37
37
 
38
- const [, productId, localeOrTokenFilename, tokenFileName] = url.pathname.split('/');
38
+ const [, productId, localeOrTokenFilename, tokenFileName] = url.pathname.split('/');
39
39
 
40
- const locale = tokenFileName ? localeOrTokenFilename : systemLocale.language;
41
- const chainTokenId = parsedPath.name;
40
+ const locale = tokenFileName ? localeOrTokenFilename : systemLocale.language;
41
+ const chainTokenId = parsedPath.name;
42
42
 
43
- const product = await context.modules.products.findProduct({
44
- productId,
45
- });
43
+ const product = await context.modules.products.findProduct({
44
+ productId,
45
+ });
46
46
 
47
- const [token] = await context.modules.warehousing.findTokens({
48
- chainTokenId,
49
- contractAddress: product?.tokenization?.contractAddress,
50
- });
47
+ const [token] = await context.modules.warehousing.findTokens({
48
+ chainTokenId,
49
+ contractAddress: product?.tokenization?.contractAddress,
50
+ });
51
51
 
52
- const ercMetadata = await context.modules.warehousing.tokenMetadata(
53
- chainTokenId,
54
- {
55
- token,
56
- product,
57
- locale: new Locale(locale),
58
- referenceDate: new Date(),
59
- },
60
- context,
61
- );
52
+ const ercMetadata = await context.modules.warehousing.tokenMetadata(
53
+ chainTokenId,
54
+ {
55
+ token,
56
+ product,
57
+ locale: new Locale(locale),
58
+ referenceDate: new Date(),
59
+ },
60
+ context,
61
+ );
62
62
 
63
- const body = JSON.stringify(ercMetadata);
64
- res.writeHead(200, {
65
- 'Content-Length': Buffer.byteLength(body),
66
- 'Content-Type': 'text/plain',
67
- });
68
- res.end(body);
69
- } catch (e) {
70
- errorHandler(res)(e);
71
- }
72
- };
63
+ const body = JSON.stringify(ercMetadata);
64
+ res.writeHead(200, {
65
+ 'Content-Length': Buffer.byteLength(body),
66
+ 'Content-Type': 'text/plain',
67
+ });
68
+ res.end(body);
69
+ } catch (e) {
70
+ errorHandler(res)(e);
71
+ }
73
72
  }
@@ -4,6 +4,7 @@ import { createLogger } from '@unchainedshop/logger';
4
4
  import { UnchainedContextResolver } from '@unchainedshop/types/api.js';
5
5
  import { UnchainedCore } from '@unchainedshop/types/core.js';
6
6
  import cookie from 'cookie';
7
+ import { getCurrentContextResolver } from '../context.js';
7
8
 
8
9
  const { ROOT_URL, NODE_ENV, UNCHAINED_CLOUD_ENDPOINT } = process.env;
9
10
 
@@ -63,25 +64,24 @@ const loginWithSingleSignOn = async (remoteToken, context: UnchainedCore) => {
63
64
  throw new Error('Invalid token/domain pair');
64
65
  };
65
66
 
66
- export default function singleSignOnMiddleware(contextResolver: UnchainedContextResolver) {
67
- return async (req: IncomingMessage & { query?: any }, res, next) => {
68
- try {
69
- if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
70
- const context = await contextResolver({ req, res });
71
- const authCookie = await loginWithSingleSignOn(req.query.token, context);
67
+ export default async function singleSignOnMiddleware(req: IncomingMessage & { query?: any }, res, next) {
68
+ try {
69
+ if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
70
+ const contextResolver = getCurrentContextResolver();
71
+ const context = await contextResolver({ req, res });
72
+ const authCookie = await loginWithSingleSignOn(req.query.token, context);
72
73
 
73
- if (authCookie) {
74
- res.writeHead(303, {
75
- 'Set-Cookie': authCookie,
76
- Location: '/',
77
- });
78
- res.end();
79
- return;
80
- }
74
+ if (authCookie) {
75
+ res.writeHead(303, {
76
+ 'Set-Cookie': authCookie,
77
+ Location: '/',
78
+ });
79
+ res.end();
80
+ return;
81
81
  }
82
- } catch (e) {
83
- logger.error(e.message);
84
82
  }
85
- next();
86
- };
83
+ } catch (e) {
84
+ logger.error(e.message);
85
+ }
86
+ next();
87
87
  }
@@ -14,20 +14,24 @@ const {
14
14
  GRAPHQL_API_PATH = '/graphql',
15
15
  } = process.env;
16
16
 
17
+ const addContext = async function middlewareWithContext(
18
+ req: IncomingMessage & { unchainedContext: UnchainedCore },
19
+ res: OutgoingMessage,
20
+ next,
21
+ ) {
22
+ try {
23
+ const context = getCurrentContextResolver();
24
+ req.unchainedContext = await context({ req, res });
25
+ next();
26
+ } catch (error) {
27
+ next(error);
28
+ }
29
+ };
30
+
17
31
  export const useMiddlewareWithCurrentContext = (expressApp, path, ...middleware) => {
18
- const context = getCurrentContextResolver();
19
- const addContext = async function middlewareWithContext(
20
- req: IncomingMessage & { unchainedContext: UnchainedCore },
21
- res: OutgoingMessage,
22
- next,
23
- ) {
24
- try {
25
- req.unchainedContext = await context({ req, res });
26
- next();
27
- } catch (error) {
28
- next(error);
29
- }
30
- };
32
+ if (!path) {
33
+ throw new Error('Path is required for useMiddlewareWithCurrentContext');
34
+ }
31
35
 
32
36
  expressApp.use(path, addContext, ...middleware);
33
37
  };
@@ -37,16 +41,8 @@ export const connect = (
37
41
  { apolloGraphQLServer }: { apolloGraphQLServer: ApolloServer },
38
42
  options?: { corsOrigins?: any },
39
43
  ) => {
40
- const contextResolver = getCurrentContextResolver();
41
-
42
- expressApp.use(
43
- GRAPHQL_API_PATH,
44
- createApolloMiddleware(contextResolver, apolloGraphQLServer, options),
45
- );
46
- expressApp.use(ERC_METADATA_API_PATH, createERCMetadataMiddleware(contextResolver));
47
- expressApp.use(BULK_IMPORT_API_PATH, createBulkImportMiddleware(contextResolver));
48
- expressApp.use(
49
- ['/', '/.well-known/unchained/cloud-sso'],
50
- createSingleSignOnMiddleware(contextResolver),
51
- );
44
+ expressApp.use(GRAPHQL_API_PATH, createApolloMiddleware(apolloGraphQLServer, options));
45
+ expressApp.use(ERC_METADATA_API_PATH, createERCMetadataMiddleware);
46
+ expressApp.use(BULK_IMPORT_API_PATH, createBulkImportMiddleware);
47
+ expressApp.use(['/', '/.well-known/unchained/cloud-sso'], createSingleSignOnMiddleware);
52
48
  };