@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.
- package/lib/chat/generateImageHandler.d.ts.map +1 -1
- package/lib/chat/generateImageHandler.js +7 -6
- package/lib/chat/generateImageHandler.js.map +1 -1
- package/lib/resolvers/type/index.d.ts +1 -0
- package/lib/resolvers/type/index.d.ts.map +1 -1
- package/lib/resolvers/type/product/product-tokenized-types.d.ts +1 -0
- package/lib/resolvers/type/product/product-tokenized-types.d.ts.map +1 -1
- package/lib/resolvers/type/product/product-tokenized-types.js +6 -0
- package/lib/resolvers/type/product/product-tokenized-types.js.map +1 -1
- package/package.json +4 -4
- package/src/chat/generateImageHandler.ts +8 -6
- package/src/resolvers/type/product/product-tokenized-types.ts +6 -0
|
@@ -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;
|
|
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.
|
|
45
|
-
const
|
|
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:
|
|
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":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"generateImageHandler.js","sourceRoot":"","sources":["../../src/chat/generateImageHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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;;
|
|
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.
|
|
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.
|
|
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
|
-
"
|
|
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.
|
|
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.
|
|
58
|
-
const
|
|
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:
|
|
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;
|