@unchainedshop/api 4.1.0 → 4.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"generateImageHandler.d.ts","sourceRoot":"","sources":["../../src/chat/generateImageHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,OAAO,MAAM,IAAI,CAAC;AAiCnC,QAAA,MAAM,oBAAoB,GACvB,KAAK,GAAG,MACR,uBAGE;IACD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,6BA2CA,CAAC;AAEJ,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"generateImageHandler.d.ts","sourceRoot":"","sources":["../../src/chat/generateImageHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,OAAO,MAAM,IAAI,CAAC;AAoCnC,QAAA,MAAM,oBAAoB,GACvB,KAAK,GAAG,MACR,uBAGE;IACD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,6BA0CA,CAAC;AAEJ,eAAe,oBAAoB,CAAC"}
@@ -1,5 +1,7 @@
1
- import { fileTypeFromBuffer } from 'file-type';
2
1
  import { z } from 'zod';
2
+ import mime from 'mime/lite';
3
+ import { createLogger } from '@unchainedshop/logger';
4
+ const logger = createLogger('unchained:api:mcp');
3
5
  let experimental_generateImage;
4
6
  let tool;
5
7
  try {
@@ -41,12 +43,10 @@ const generateImageHandler = (req) => ({ model, uploadUrl = `${process.env.ROOT_
41
43
  prompt,
42
44
  size: size,
43
45
  });
44
- const buffer = Buffer.from(image.base64, 'base64');
45
- const fileType = await fileTypeFromBuffer(buffer);
46
- const extension = fileType?.ext || 'png';
47
- const mime = fileType?.mime || 'image/png';
46
+ const buffer = Buffer.from(image.uint8Array);
47
+ const extension = mime.getExtension(image.mediaType) || 'png';
48
48
  const filename = `image-${Date.now()}.${extension}`;
49
- const file = new File([buffer], filename, { type: mime });
49
+ const file = new File([buffer], filename, { type: image.mediaType });
50
50
  const formData = new FormData();
51
51
  formData.append('image', file);
52
52
  const uploadRes = await fetch(uploadUrl, {
@@ -64,6 +64,7 @@ const generateImageHandler = (req) => ({ model, uploadUrl = `${process.env.ROOT_
64
64
  return { imageUrl: url, prompt };
65
65
  }
66
66
  catch (error) {
67
+ logger.error('Error generating image:', error.message);
67
68
  return `Error Generating image: ${error.message}`;
68
69
  }
69
70
  },
@@ -1 +1 @@
1
- {"version":3,"file":"generateImageHandler.js","sourceRoot":"","sources":["../../src/chat/generateImageHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateImageHandler.js","sourceRoot":"","sources":["../../src/chat/generateImageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAEjD,IAAI,0BAAqE,CAAC;AAC1E,IAAI,IAAyB,CAAC;AAE9B,IAAI,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACpB,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;AAClE,CAAC;AAAC,MAAM,CAAC;IACP,KAAK;AACP,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACpE,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC;QACJ,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;QACV,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;QACV,WAAW;KACZ,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,oBAAoB,GACxB,CAAC,GAAQ,EAAE,EAAE,CACb,CAAC,EACC,KAAK,EACL,SAAS,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,cAAc,GAIlD,EAAE,EAAE;IACH,OAAO,IAAI,CAAM;QACf,WAAW,EAAE,uCAAuC;QACpD,WAAW,EAAE,WAAkB;QAC/B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,WAAW,EAAE,EAAE,EAAE;YAChD,IAAI,CAAC;gBACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,0BAA0B,CAAC;oBACjD,KAAK;oBACL,MAAM;oBACN,IAAI,EAAE,IAAW;iBAClB,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;gBAE9D,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,SAAS,EAAE,CAAC;gBACpD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBACrE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAE/B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;oBACvC,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,SAAS;oBACtB,OAAO,EAAE;wBACP,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;qBAClE;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClE,CAAC;gBAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;gBAClE,OAAO,2BAA4B,KAAe,CAAC,OAAO,EAAE,CAAC;YAC/D,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEJ,eAAe,oBAAoB,CAAC"}
@@ -721,6 +721,7 @@ declare const types: {
721
721
  quantity?: number;
722
722
  }[]>;
723
723
  tokens(product: import("@unchainedshop/core-products").Product, params: never, requestContext: import("../../context.js").Context): Promise<import("@unchainedshop/core-warehousing").TokenSurrogate[]>;
724
+ tokensCount(product: import("@unchainedshop/core-products").Product, params: never, requestContext: import("../../context.js").Context): Promise<number>;
724
725
  catalogPrice(product: import("@unchainedshop/core-products").Product, { quantity, currencyCode: forcedCurrencyCode }: {
725
726
  quantity?: number;
726
727
  currencyCode?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/index.ts"],"names":[],"mappings":"AAsEA,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;gBA1CgD,CAAC;;;;uBAU3B,CAAC;;;uBAKqB,CAAC;uBACxD,CAAA;;;mBAC6B,CAAC;;;;;;;;;;;;;;;;;;uBAxCb,CAAC;;;;;;;;oBADwC,CAAC;wBAC3D,CAAC;;;oBAQmB,CAAC;wBAA4B,CAAC;uBACpC,CAAC;yBAA8B,CAAC;;;wBAc/B,CAAC;;;;;;;;;;;;uBAdY,CAAC;;;;;;;gBAUT,CAAC;;;uBAOwB,CAAC;iBACpC,CAAC;kBAAuB,CAAA;gBAAoB,CAAC;;;uBAKhD,CAAA;;;wBAGI,CAAC;;;;;;;uBAYuE,CAAC;;;;;;;;;;;;;;;wBApC1D,CAAA;;;;;;;;;;wBAckD,CAAC;;oBACtB,CAAC;;;;;;;uBAjB5B,CAAC;;;;;;;gBAUT,CAAC;;;uBAOwB,CAAC;iBACpC,CAAC;kBAAuB,CAAA;gBAAoB,CAAC;;;uBAKhD,CAAA;;;wBAGI,CAAC;;;;;;;uBAYuE,CAAC;;;;;;;;;;;;;;;;wBAnC7C,CAAC;;uBACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAhBoC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAErB,CAAC;;;;;;;uBACrC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACsB,CAAC;gBACvB,CAAC;iBAA0B,CAAC;;mBACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAJ0C,CAAC;wBAC3D,CAAC;;;oBAQmB,CAAC;wBAA4B,CAAC;uBACpC,CAAC;yBAA8B,CAAC;;;wBAc/B,CAAC;;;;;;;;;;;;uBAdY,CAAC;;;;;;;gBAUT,CAAC;;;uBAOwB,CAAC;iBACpC,CAAC;kBAAuB,CAAA;gBAAoB,CAAC;;;uBAKhD,CAAA;;;wBAGI,CAAC;;;;;;;uBAYuE,CAAC;;;;;;;;;;;;;uBAtCxD,CAAC;;;;;;;gBAUT,CAAC;;;uBAOwB,CAAC;iBACpC,CAAC;kBAAuB,CAAA;gBAAoB,CAAC;;;uBAKhD,CAAA;;;wBAGI,CAAC;;;;;;;uBAYuE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA5ChB,CAAC;+BAClC,CAAC;oBACT,CAAC;4BAClB,CAAC;;;;;;4BAMsC,CAAC;+BAC1B,CAAC;oBACd,CAAC;;;;;;;;;;;;oBAf8C,CAAC;wBAC3D,CAAC;;;oBAQmB,CAAC;wBAA4B,CAAC;uBACpC,CAAC;yBAA8B,CAAC;;;wBAc/B,CAAC;;;;;;;;;;;;uBAdY,CAAC;;;;;;;gBAUT,CAAC;;;uBAOwB,CAAC;iBACpC,CAAC;kBAAuB,CAAA;gBAAoB,CAAC;;;uBAKhD,CAAA;;;wBAGI,CAAC;;;;;;;uBAYuE,CAAC;;;;;;;;;;4BAnClC,CAAC;+BAC1B,CAAC;oBACd,CAAC;;;;oBAf6C,CAAC;wBAC3D,CAAC;;;oBAQmB,CAAC;wBAA4B,CAAC;uBACpC,CAAC;yBAA8B,CAAC;;;wBAc/B,CAAC;;;;;;;;;;;;uBAdY,CAAC;;;;;;;gBAUT,CAAC;;;uBAOwB,CAAC;iBACpC,CAAC;kBAAuB,CAAA;gBAAoB,CAAC;;;uBAKhD,CAAA;;;wBAGI,CAAC;;;;;;;uBAYuE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFnF,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare const TokenizedProduct: {
14
14
  quantity?: number;
15
15
  }[]>;
16
16
  tokens(product: Product, params: never, requestContext: Context): Promise<import("@unchainedshop/core-warehousing").TokenSurrogate[]>;
17
+ tokensCount(product: Product, params: never, requestContext: Context): Promise<number>;
17
18
  catalogPrice(product: Product, { quantity, currencyCode: forcedCurrencyCode }: {
18
19
  quantity?: number;
19
20
  currencyCode?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"product-tokenized-types.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-tokenized-types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAK9C,eAAO,MAAM,gBAAgB;sCAGO,OAAO,GAAG,MAAM,GAAG,IAAI;4CAIjB,OAAO,GAAG,4BAA4B,GAAG,IAAI;uCASlD,OAAO,GAAG,uBAAuB,GAAG,IAAI;yBAKpE,OAAO,UACJ;QACN,aAAa,EAAE,IAAI,CAAC;KACrB,kBACe,OAAO,GACtB,OAAO,CACR;QACE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CACJ;oBASqB,OAAO,UAAU,KAAK,kBAAkB,OAAO;;gBA5ClE,CAAC;oBAAsB,CAAC;;;gBAeqB,CAAC;oBAIjD,CAAA;mBAA2B,CAAC;qBAA8B,CAAC;;;oBAoC1D,CAAC;;;;;;;;;;;;mBApCuC,CAAC;;;;;;;YA0BzB,CAAC;;;mBAW8K,CAAC;aAAqB,CAAC;cAAsB,CAAC;YAAoB,CAAC;;;mBAA8T,CAAC;;;oBAAsO,CAAC;;;;;;;mBAAu6B,CAAC;;CALltD,CAAC"}
1
+ {"version":3,"file":"product-tokenized-types.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-tokenized-types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAK9C,eAAO,MAAM,gBAAgB;sCAGO,OAAO,GAAG,MAAM,GAAG,IAAI;4CAIjB,OAAO,GAAG,4BAA4B,GAAG,IAAI;uCASlD,OAAO,GAAG,uBAAuB,GAAG,IAAI;yBAKpE,OAAO,UACJ;QACN,aAAa,EAAE,IAAI,CAAC;KACrB,kBACe,OAAO,GACtB,OAAO,CACR;QACE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CACJ;oBASqB,OAAO,UAAU,KAAK,kBAAkB,OAAO;yBAO1C,OAAO,UAAU,KAAK,kBAAkB,OAAO;;gBAnDvE,CAAC;oBAAsB,CAAC;;;gBAeqB,CAAC;oBAIjD,CAAA;mBAA2B,CAAC;qBAA8B,CAAC;;;oBAiCnC,CAAC;;;;;;;;;;;;mBAjCgB,CAAC;;;;;;;YA0BzB,CAAC;;;mBAeqB,CAAC;aAClC,CAAC;cAAsB,CAAC;YAAoB,CAAC;;;mBACuQ,CAAC;;;oBAAsO,CAAC;;;;;;;mBAAu6B,CAAC;;CAL38C,CAAC"}
@@ -33,6 +33,12 @@ export const TokenizedProduct = {
33
33
  });
34
34
  return tokens;
35
35
  },
36
+ async tokensCount(product, params, requestContext) {
37
+ await checkAction(requestContext, actions.viewTokens, [undefined, params]);
38
+ return requestContext.modules.warehousing.tokensCount({
39
+ productId: product._id,
40
+ });
41
+ },
36
42
  };
37
43
  delete TokenizedProduct.salesUnit;
38
44
  delete TokenizedProduct.salesQuantityPerUnit;
@@ -1 +1 @@
1
- {"version":3,"file":"product-tokenized-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-tokenized-types.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,GAAG,WAAW;IAEd,eAAe,CAAC,EAAE,YAAY,EAAW;QACvC,OAAO,YAAY,EAAE,eAAe,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,qBAAqB,CAAC,EAAE,YAAY,EAAW;QAC7C,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;SAC1D,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,EAAE,YAAY,EAAW;QACxC,OAAO,YAAY,EAAE,gBAAgB,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAY,EACZ,MAEC,EACD,cAAuB;QAQvB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACpC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAChD,OAAO,EAAE,GAAG;YACZ,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,MAAa,EAAE,cAAuB;QACnE,MAAM,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;YACjE,SAAS,EAAE,OAAO,CAAC,GAAG;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,OAAQ,gBAAwB,CAAC,SAAS,CAAC;AAC3C,OAAQ,gBAAwB,CAAC,oBAAoB,CAAC;AACtD,OAAQ,gBAAwB,CAAC,oBAAoB,CAAC"}
1
+ {"version":3,"file":"product-tokenized-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-tokenized-types.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,GAAG,WAAW;IAEd,eAAe,CAAC,EAAE,YAAY,EAAW;QACvC,OAAO,YAAY,EAAE,eAAe,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,qBAAqB,CAAC,EAAE,YAAY,EAAW;QAC7C,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;SAC1D,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,EAAE,YAAY,EAAW;QACxC,OAAO,YAAY,EAAE,gBAAgB,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAY,EACZ,MAEC,EACD,cAAuB;QAQvB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACpC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAChD,OAAO,EAAE,GAAG;YACZ,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,MAAa,EAAE,cAAuB;QACnE,MAAM,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;YACjE,SAAS,EAAE,OAAO,CAAC,GAAG;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE,MAAa,EAAE,cAAuB;QACxE,MAAM,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,OAAO,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC;YACpD,SAAS,EAAE,OAAO,CAAC,GAAG;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,OAAQ,gBAAwB,CAAC,SAAS,CAAC;AAC3C,OAAQ,gBAAwB,CAAC,oBAAoB,CAAC;AACtD,OAAQ,gBAAwB,CAAC,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/api",
3
- "version": "4.1.0",
3
+ "version": "4.1.1",
4
4
  "main": "lib/api-index.js",
5
5
  "types": "lib/api-index.d.ts",
6
6
  "type": "module",
@@ -39,7 +39,7 @@
39
39
  "@noble/curves": "^2.0.0",
40
40
  "@noble/hashes": "^2.0.0",
41
41
  "ai": ">= 5 < 6",
42
- "@ai-sdk/mcp": "^0.0.1",
42
+ "@ai-sdk/mcp": "^0.0.4",
43
43
  "connect-mongo": ">= 5.1 < 6",
44
44
  "express": ">= 5 < 6",
45
45
  "express-session": ">= 1.18 < 2",
@@ -106,7 +106,7 @@
106
106
  "@unchainedshop/utils": "^4.1.0",
107
107
  "dataloader": "^2.2.3",
108
108
  "expiry-map": "^2.0.0",
109
- "file-type": "^21.0.0",
109
+ "mime": ">= 4 < 5",
110
110
  "graphql-scalars": "^1.24.2",
111
111
  "moniker": "0.1.2",
112
112
  "p-memoize": "^8.0.0",
@@ -122,7 +122,7 @@
122
122
  "@noble/hashes": "^2.0.0",
123
123
  "@types/express": "^5.0.3",
124
124
  "@types/node": "^24.0.13",
125
- "@ai-sdk/mcp": "^0.0.1",
125
+ "@ai-sdk/mcp": "^0.0.4",
126
126
  "ai": "^5.0.80",
127
127
  "express": "^5.1.0",
128
128
  "express-session": "^1.18.1",
@@ -1,6 +1,9 @@
1
- import { fileTypeFromBuffer } from 'file-type';
2
1
  import { z } from 'zod';
2
+ import mime from 'mime/lite';
3
3
  import type * as aiTypes from 'ai';
4
+ import { createLogger } from '@unchainedshop/logger';
5
+
6
+ const logger = createLogger('unchained:api:mcp');
4
7
 
5
8
  let experimental_generateImage: typeof aiTypes.experimental_generateImage;
6
9
  let tool: typeof aiTypes.tool;
@@ -54,13 +57,11 @@ const generateImageHandler =
54
57
  size: size as any,
55
58
  });
56
59
 
57
- const buffer = Buffer.from(image.base64, 'base64');
58
- const fileType = await fileTypeFromBuffer(buffer);
59
- const extension = fileType?.ext || 'png';
60
- const mime = fileType?.mime || 'image/png';
60
+ const buffer = Buffer.from(image.uint8Array);
61
+ const extension = mime.getExtension(image.mediaType) || 'png';
61
62
 
62
63
  const filename = `image-${Date.now()}.${extension}`;
63
- const file = new File([buffer], filename, { type: mime });
64
+ const file = new File([buffer], filename, { type: image.mediaType });
64
65
  const formData = new FormData();
65
66
  formData.append('image', file);
66
67
 
@@ -80,6 +81,7 @@ const generateImageHandler =
80
81
  const { url } = await uploadRes.json();
81
82
  return { imageUrl: url, prompt };
82
83
  } catch (error) {
84
+ logger.error('Error generating image:', (error as Error).message);
83
85
  return `Error Generating image: ${(error as Error).message}`;
84
86
  }
85
87
  },
@@ -59,6 +59,12 @@ export const TokenizedProduct = {
59
59
  });
60
60
  return tokens;
61
61
  },
62
+ async tokensCount(product: Product, params: never, requestContext: Context) {
63
+ await checkAction(requestContext, actions.viewTokens, [undefined, params]);
64
+ return requestContext.modules.warehousing.tokensCount({
65
+ productId: product._id,
66
+ });
67
+ },
62
68
  };
63
69
 
64
70
  delete (TokenizedProduct as any).salesUnit;