payload-ai 1.0.3 → 1.0.4

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.
Files changed (72) hide show
  1. package/dist/access/admins.js +8 -9
  2. package/dist/access/admins.js.map +1 -1
  3. package/dist/access/adminsOrPublished.js +8 -10
  4. package/dist/access/adminsOrPublished.js.map +1 -1
  5. package/dist/access/anyone.js +2 -5
  6. package/dist/access/anyone.js.map +1 -1
  7. package/dist/access/checkRole.js +5 -10
  8. package/dist/access/checkRole.js.map +1 -1
  9. package/dist/access/validateAccess.js +18 -25
  10. package/dist/access/validateAccess.js.map +1 -1
  11. package/dist/aiCaption.js +61 -135
  12. package/dist/aiCaption.js.map +1 -1
  13. package/dist/aiTranslate.d.ts +3 -3
  14. package/dist/aiTranslate.js +107 -227
  15. package/dist/aiTranslate.js.map +1 -1
  16. package/dist/components/AfterDashboard/index.js +22 -14
  17. package/dist/components/AfterDashboard/index.js.map +1 -1
  18. package/dist/components/Metadata/index.js +54 -93
  19. package/dist/components/Metadata/index.js.map +1 -1
  20. package/dist/components/Translator/Translator.css +194 -0
  21. package/dist/components/Translator/index.d.ts +2 -2
  22. package/dist/components/Translator/index.js +367 -335
  23. package/dist/components/Translator/index.js.map +1 -1
  24. package/dist/countries.json +193 -0
  25. package/dist/deepCompareAndMerge.js +32 -98
  26. package/dist/deepCompareAndMerge.js.map +1 -1
  27. package/dist/exports/client.d.ts +1 -0
  28. package/dist/exports/client.js +3 -0
  29. package/dist/exports/client.js.map +1 -0
  30. package/dist/exports/rsc.d.ts +1 -0
  31. package/dist/exports/rsc.js +3 -0
  32. package/dist/exports/rsc.js.map +1 -0
  33. package/dist/exports/types.d.ts +1 -0
  34. package/dist/exports/types.js +3 -0
  35. package/dist/exports/types.js.map +1 -0
  36. package/dist/fsMock.js +6 -2
  37. package/dist/fsMock.js.map +1 -1
  38. package/dist/generateImage.js +24 -75
  39. package/dist/generateImage.js.map +1 -1
  40. package/dist/generateText.d.ts +2 -2
  41. package/dist/generateText.js +28 -112
  42. package/dist/generateText.js.map +1 -1
  43. package/dist/handleMissingTranslate.d.ts +1 -1
  44. package/dist/handleMissingTranslate.js +60 -144
  45. package/dist/handleMissingTranslate.js.map +1 -1
  46. package/dist/handleTranslate.d.ts +2 -2
  47. package/dist/handleTranslate.js +121 -199
  48. package/dist/handleTranslate.js.map +1 -1
  49. package/dist/index.d.ts +3 -3
  50. package/dist/index.js +3 -8
  51. package/dist/index.js.map +1 -1
  52. package/dist/mocks/mockFile.js +1 -1
  53. package/dist/mocks/mockFile.js.map +1 -1
  54. package/dist/onInitExtension.d.ts +1 -1
  55. package/dist/onInitExtension.js +4 -8
  56. package/dist/onInitExtension.js.map +1 -1
  57. package/dist/plugin.d.ts +1 -1
  58. package/dist/plugin.js +124 -188
  59. package/dist/plugin.js.map +1 -1
  60. package/dist/seoTools.js +64 -127
  61. package/dist/seoTools.js.map +1 -1
  62. package/dist/stringTranslations.d.ts +1 -1
  63. package/dist/stringTranslations.js +124 -163
  64. package/dist/stringTranslations.js.map +1 -1
  65. package/dist/translateTextAndObjects.js +136 -206
  66. package/dist/translateTextAndObjects.js.map +1 -1
  67. package/dist/types.js +2 -2
  68. package/dist/types.js.map +1 -1
  69. package/dist/webpack.d.ts +1 -1
  70. package/dist/webpack.js +2 -9
  71. package/dist/webpack.js.map +1 -1
  72. package/package.json +116 -39
@@ -1,12 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.admins = void 0;
4
- var checkRole_1 = require("./checkRole");
5
- var admins = function (_a) {
6
- var user = _a.req.user;
7
- if (!user)
1
+ import { checkRole } from './checkRole.js';
2
+ export const admins = ({ req: { user } })=>{
3
+ if (!user) {
8
4
  return false;
9
- return (0, checkRole_1.checkRole)(['admin'], user);
5
+ }
6
+ return checkRole([
7
+ 'admin'
8
+ ], user);
10
9
  };
11
- exports.admins = admins;
10
+
12
11
  //# sourceMappingURL=admins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admins.js","sourceRoot":"","sources":["../../src/access/admins.ts"],"names":[],"mappings":";;;AAEA,yCAAuC;AAKhC,IAAM,MAAM,GAAY,UAAC,EAAiB;QAAR,IAAI,cAAA;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,OAAO,IAAA,qBAAS,EAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC,CAAA;AAHY,QAAA,MAAM,UAGlB"}
1
+ {"version":3,"sources":["../../src/access/admins.ts"],"sourcesContent":["import type { AccessArgs } from 'payload'\n\nimport { checkRole } from './checkRole.js'\n//import type { User } from '../payload-types'\n\ntype isAdmin = (args: AccessArgs<unknown>) => boolean\n\nexport const admins: isAdmin = ({ req: { user } }) => {\n if (!user) {return false}\n return checkRole(['admin'], user)\n}\n"],"names":["checkRole","admins","req","user"],"mappings":"AAEA,SAASA,SAAS,QAAQ,iBAAgB;AAK1C,OAAO,MAAMC,SAAkB,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAE;IAC/C,IAAI,CAACA,MAAM;QAAC,OAAO;IAAK;IACxB,OAAOH,UAAU;QAAC;KAAQ,EAAEG;AAC9B,EAAC"}
@@ -1,18 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.adminsOrPublished = void 0;
4
- var checkRole_1 = require("./checkRole");
5
- var adminsOrPublished = function (_a) {
6
- var user = _a.req.user;
7
- if (user && (0, checkRole_1.checkRole)(['admin'], user)) {
1
+ import { checkRole } from './checkRole.js';
2
+ export const adminsOrPublished = ({ req: { user } })=>{
3
+ if (user && checkRole([
4
+ 'admin'
5
+ ], user)) {
8
6
  return true;
9
7
  }
10
8
  return true;
11
9
  return {
12
10
  _status: {
13
- equals: 'published',
14
- },
11
+ equals: 'published'
12
+ }
15
13
  };
16
14
  };
17
- exports.adminsOrPublished = adminsOrPublished;
15
+
18
16
  //# sourceMappingURL=adminsOrPublished.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminsOrPublished.js","sourceRoot":"","sources":["../../src/access/adminsOrPublished.ts"],"names":[],"mappings":";;;AAEA,yCAAuC;AAEhC,IAAM,iBAAiB,GAAW,UAAC,EAAiB;QAAR,IAAI,cAAA;IACrD,IAAI,IAAI,IAAI,IAAA,qBAAS,EAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;QACtC,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,IAAI,CAAA;IACX,OAAO;QACL,OAAO,EAAE;YACP,MAAM,EAAE,WAAW;SACpB;KACF,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,iBAAiB,qBAW7B"}
1
+ {"version":3,"sources":["../../src/access/adminsOrPublished.ts"],"sourcesContent":["import type { Access } from 'payload'\n\nimport { checkRole } from './checkRole.js'\n\nexport const adminsOrPublished: Access = ({ req: { user } }) => {\n if (user && checkRole(['admin'], user)) {\n return true\n }\n\n return true\n return {\n _status: {\n equals: 'published',\n },\n }\n}\n"],"names":["checkRole","adminsOrPublished","req","user","_status","equals"],"mappings":"AAEA,SAASA,SAAS,QAAQ,iBAAgB;AAE1C,OAAO,MAAMC,oBAA4B,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAE;IACzD,IAAIA,QAAQH,UAAU;QAAC;KAAQ,EAAEG,OAAO;QACtC,OAAO;IACT;IAEA,OAAO;IACP,OAAO;QACLC,SAAS;YACPC,QAAQ;QACV;IACF;AACF,EAAC"}
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.anyone = void 0;
4
- var anyone = function () { return true; };
5
- exports.anyone = anyone;
1
+ export const anyone = ()=>true;
2
+
6
3
  //# sourceMappingURL=anyone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anyone.js","sourceRoot":"","sources":["../../src/access/anyone.ts"],"names":[],"mappings":";;;AAEO,IAAM,MAAM,GAAW,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AAA3B,QAAA,MAAM,UAAqB"}
1
+ {"version":3,"sources":["../../src/access/anyone.ts"],"sourcesContent":["import type { Access } from 'payload'\n\nexport const anyone: Access = () => true\n"],"names":["anyone"],"mappings":"AAEA,OAAO,MAAMA,SAAiB,IAAM,KAAI"}
@@ -1,18 +1,13 @@
1
- "use strict";
2
1
  //import type { User } from '../../payload-types'
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.checkRole = void 0;
5
- var checkRole = function (allRoles /* User['roles'] = [] */, user) {
2
+ export const checkRole = (allRoles /* User['roles'] = [] */ , user)=>{
6
3
  if (user) {
7
- if (allRoles.some(function (role) {
8
- var _a;
9
- return (_a = user === null || user === void 0 ? void 0 : user.roles) === null || _a === void 0 ? void 0 : _a.some(function (individualRole) {
4
+ if (allRoles.some((role)=>{
5
+ return user?.roles?.some((individualRole)=>{
10
6
  return individualRole === role;
11
7
  });
12
- }))
13
- return true;
8
+ })) return true;
14
9
  }
15
10
  return false;
16
11
  };
17
- exports.checkRole = checkRole;
12
+
18
13
  //# sourceMappingURL=checkRole.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkRole.js","sourceRoot":"","sources":["../../src/access/checkRole.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;AAE1C,IAAM,SAAS,GAAG,UAAC,QAAa,CAAC,wBAAwB,EAAE,IAAU;IAC1E,IAAI,IAAI,EAAE;QACR,IACE,QAAQ,CAAC,IAAI,CAAC,UAAC,IAAS;;YACtB,OAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,CAAC,UAAC,cAAmB;gBAC3C,OAAO,cAAc,KAAK,IAAI,CAAA;YAChC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;YAEF,OAAO,IAAI,CAAA;KACd;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAbY,QAAA,SAAS,aAarB"}
1
+ {"version":3,"sources":["../../src/access/checkRole.ts"],"sourcesContent":["//import type { User } from '../../payload-types'\n\nexport const checkRole = (allRoles: any /* User['roles'] = [] */, user?: any): boolean => {\n if (user) {\n if (\n allRoles.some((role: any) => {\n return user?.roles?.some((individualRole: any) => {\n return individualRole === role\n })\n })\n )\n return true\n }\n\n return false\n}\n"],"names":["checkRole","allRoles","user","some","role","roles","individualRole"],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,MAAMA,YAAY,CAACC,SAAc,sBAAsB,KAAIC;IAChE,IAAIA,MAAM;QACR,IACED,SAASE,IAAI,CAAC,CAACC;YACb,OAAOF,MAAMG,OAAOF,KAAK,CAACG;gBACxB,OAAOA,mBAAmBF;YAC5B;QACF,IAEA,OAAO;IACX;IAEA,OAAO;AACT,EAAC"}
@@ -1,28 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateAccess = void 0;
4
- var getCollectionSlug = function (req) {
5
- var _a, _b, _c;
6
- var fromCollection = (_b = (_a = req === null || req === void 0 ? void 0 : req.collection) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.slug;
7
- var fromRouteParams = (_c = req === null || req === void 0 ? void 0 : req.routeParams) === null || _c === void 0 ? void 0 : _c.collection;
8
- if (typeof fromCollection === 'string')
9
- return fromCollection;
10
- if (typeof fromRouteParams === 'string')
11
- return fromRouteParams;
12
- var pathname = (req === null || req === void 0 ? void 0 : req.pathname) || (req === null || req === void 0 ? void 0 : req.url) || '';
13
- var pathnameMatch = typeof pathname === 'string' ? pathname.match(/\/api\/([^/]+)\//) : null;
14
- return pathnameMatch === null || pathnameMatch === void 0 ? void 0 : pathnameMatch[1];
1
+ const getCollectionSlug = (req)=>{
2
+ const fromCollection = req?.collection?.config?.slug;
3
+ const fromRouteParams = req?.routeParams?.collection;
4
+ if (typeof fromCollection === 'string') return fromCollection;
5
+ if (typeof fromRouteParams === 'string') return fromRouteParams;
6
+ const pathname = req?.pathname || req?.url || '';
7
+ const pathnameMatch = typeof pathname === 'string' ? pathname.match(/\/api\/([^/]+)\//) : null;
8
+ return pathnameMatch?.[1];
15
9
  };
16
- var validateAccess = function (req, pluginOptions) {
17
- var _a, _b, _c, _d, _e, _f;
18
- var collectionSlug = getCollectionSlug(req);
19
- var collectionOptions = (collectionSlug && ((_a = pluginOptions.collections) === null || _a === void 0 ? void 0 : _a[collectionSlug])) || {};
20
- var collectionConfig = ((_b = req === null || req === void 0 ? void 0 : req.collection) === null || _b === void 0 ? void 0 : _b.config) ||
21
- ((_e = (_d = (_c = req === null || req === void 0 ? void 0 : req.payload) === null || _c === void 0 ? void 0 : _c.config) === null || _d === void 0 ? void 0 : _d.collections) === null || _e === void 0 ? void 0 : _e.find(function (collection) { return collection.slug === collectionSlug; }));
22
- var accessControl = collectionOptions.access || ((_f = collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.access) === null || _f === void 0 ? void 0 : _f.update);
23
- if (typeof accessControl !== 'function')
24
- return true;
25
- return accessControl({ req: req });
10
+ export const validateAccess = (req, pluginOptions)=>{
11
+ const collectionSlug = getCollectionSlug(req);
12
+ const collectionOptions = collectionSlug && pluginOptions.collections?.[collectionSlug] || {};
13
+ const collectionConfig = req?.collection?.config || req?.payload?.config?.collections?.find((collection)=>collection.slug === collectionSlug);
14
+ const accessControl = collectionOptions.access || collectionConfig?.access?.update;
15
+ if (typeof accessControl !== 'function') return true;
16
+ return accessControl({
17
+ req
18
+ });
26
19
  };
27
- exports.validateAccess = validateAccess;
20
+
28
21
  //# sourceMappingURL=validateAccess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateAccess.js","sourceRoot":"","sources":["../../src/access/validateAccess.ts"],"names":[],"mappings":";;;AAEA,IAAM,iBAAiB,GAAG,UAAC,GAAQ;;IACjC,IAAM,cAAc,GAAG,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,0CAAE,MAAM,0CAAE,IAAI,CAAA;IACpD,IAAM,eAAe,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,0CAAE,UAAU,CAAA;IAEpD,IAAI,OAAO,cAAc,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAA;IAC7D,IAAI,OAAO,eAAe,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAA;IAE/D,IAAM,QAAQ,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,MAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,CAAA,IAAI,EAAE,CAAA;IAChD,IAAM,aAAa,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAE9F,OAAO,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,CAAA;AAC3B,CAAC,CAAA;AAEM,IAAM,cAAc,GAAG,UAAC,GAAQ,EAAE,aAAkB;;IACzD,IAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC7C,IAAM,iBAAiB,GAAG,CAAC,cAAc,KAAI,MAAA,aAAa,CAAC,WAAW,0CAAG,cAAc,CAAC,CAAA,CAAC,IAAI,EAAE,CAAA;IAC/F,IAAM,gBAAgB,GACpB,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,0CAAE,MAAM;SACvB,MAAA,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,MAAM,0CAAE,WAAW,0CAAE,IAAI,CAAC,UAAC,UAAe,IAAK,OAAA,UAAU,CAAC,IAAI,KAAK,cAAc,EAAlC,CAAkC,CAAC,CAAA,CAAA;IAElG,IAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,KAAI,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,0CAAE,MAAM,CAAA,CAAA;IAElF,IAAI,OAAO,aAAa,KAAK,UAAU;QAAE,OAAO,IAAI,CAAA;IAEpD,OAAO,aAAa,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC,CAAA;AAC/B,CAAC,CAAA;AAZY,QAAA,cAAc,kBAY1B"}
1
+ {"version":3,"sources":["../../src/access/validateAccess.ts"],"sourcesContent":["import type { Access } from 'payload'\n\nconst getCollectionSlug = (req: any): string | undefined => {\n const fromCollection = req?.collection?.config?.slug\n const fromRouteParams = req?.routeParams?.collection\n\n if (typeof fromCollection === 'string') return fromCollection\n if (typeof fromRouteParams === 'string') return fromRouteParams\n\n const pathname = req?.pathname || req?.url || ''\n const pathnameMatch = typeof pathname === 'string' ? pathname.match(/\\/api\\/([^/]+)\\//) : null\n\n return pathnameMatch?.[1]\n}\n\nexport const validateAccess = (req: any, pluginOptions: any) => {\n const collectionSlug = getCollectionSlug(req)\n const collectionOptions = (collectionSlug && pluginOptions.collections?.[collectionSlug]) || {}\n const collectionConfig =\n req?.collection?.config ||\n req?.payload?.config?.collections?.find((collection: any) => collection.slug === collectionSlug)\n\n const accessControl = collectionOptions.access || collectionConfig?.access?.update\n\n if (typeof accessControl !== 'function') return true\n\n return accessControl({ req })\n}\n"],"names":["getCollectionSlug","req","fromCollection","collection","config","slug","fromRouteParams","routeParams","pathname","url","pathnameMatch","match","validateAccess","pluginOptions","collectionSlug","collectionOptions","collections","collectionConfig","payload","find","accessControl","access","update"],"mappings":"AAEA,MAAMA,oBAAoB,CAACC;IACzB,MAAMC,iBAAiBD,KAAKE,YAAYC,QAAQC;IAChD,MAAMC,kBAAkBL,KAAKM,aAAaJ;IAE1C,IAAI,OAAOD,mBAAmB,UAAU,OAAOA;IAC/C,IAAI,OAAOI,oBAAoB,UAAU,OAAOA;IAEhD,MAAME,WAAWP,KAAKO,YAAYP,KAAKQ,OAAO;IAC9C,MAAMC,gBAAgB,OAAOF,aAAa,WAAWA,SAASG,KAAK,CAAC,sBAAsB;IAE1F,OAAOD,eAAe,CAAC,EAAE;AAC3B;AAEA,OAAO,MAAME,iBAAiB,CAACX,KAAUY;IACvC,MAAMC,iBAAiBd,kBAAkBC;IACzC,MAAMc,oBAAoB,AAACD,kBAAkBD,cAAcG,WAAW,EAAE,CAACF,eAAe,IAAK,CAAC;IAC9F,MAAMG,mBACJhB,KAAKE,YAAYC,UACjBH,KAAKiB,SAASd,QAAQY,aAAaG,KAAK,CAAChB,aAAoBA,WAAWE,IAAI,KAAKS;IAEnF,MAAMM,gBAAgBL,kBAAkBM,MAAM,IAAIJ,kBAAkBI,QAAQC;IAE5E,IAAI,OAAOF,kBAAkB,YAAY,OAAO;IAEhD,OAAOA,cAAc;QAAEnB;IAAI;AAC7B,EAAC"}
package/dist/aiCaption.js CHANGED
@@ -1,143 +1,69 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.translateCollection = void 0;
43
- var axios_1 = __importDefault(require("axios"));
44
- var openai_1 = __importDefault(require("openai"));
45
- var aiCaptionHook = function (_a, fallback) {
46
- var collectionOptions = _a.collectionOptions, collection = _a.collection, pluginOptions = _a.pluginOptions;
47
- return function (_a) {
48
- var doc = _a.doc, req = _a.req, previousDoc = _a.previousDoc, context = _a.context, collection = _a.collection;
49
- return __awaiter(void 0, void 0, void 0, function () {
50
- var settings;
51
- var _b, _c;
52
- return __generator(this, function (_d) {
53
- switch (_d.label) {
54
- case 0:
55
- settings = (_c = (_b = pluginOptions.collections) === null || _b === void 0 ? void 0 : _b[collection.slug]) === null || _c === void 0 ? void 0 : _c.settings;
56
- return [4 /*yield*/, translateCollection({
57
- doc: doc,
58
- req: req,
59
- previousDoc: previousDoc,
60
- context: context,
61
- collection: collection,
62
- collectionOptions: collectionOptions,
63
- settings: settings,
64
- })];
65
- case 1: return [2 /*return*/, _d.sent()];
66
- }
67
- });
1
+ import axios from 'axios';
2
+ import OpenAI from 'openai';
3
+ const aiCaptionHook = ({ collectionOptions, collection, pluginOptions }, fallback)=>async ({ doc, req, previousDoc, context, collection })=>{
4
+ const settings = pluginOptions.collections?.[collection.slug]?.settings;
5
+ return await translateCollection({
6
+ doc,
7
+ req,
8
+ previousDoc,
9
+ context,
10
+ collection,
11
+ collectionOptions,
12
+ settings
68
13
  });
69
14
  };
70
- };
71
- exports.default = aiCaptionHook;
72
- function processImageRequest(url) {
73
- return __awaiter(this, void 0, void 0, function () {
74
- var response, imageBuffer, base64Image, mimeType, encodedImage, openai, responseGpt;
75
- return __generator(this, function (_a) {
76
- switch (_a.label) {
77
- case 0: return [4 /*yield*/, axios_1.default.get(url, { responseType: 'arraybuffer' })];
78
- case 1:
79
- response = _a.sent();
80
- imageBuffer = Buffer.from(response.data, 'binary');
81
- base64Image = imageBuffer.toString('base64');
82
- mimeType = response.headers['content-type'];
83
- encodedImage = "data:".concat(mimeType, ";base64,").concat(base64Image);
84
- openai = new openai_1.default({
85
- apiKey: process.env.OPENAI_API_KEY,
86
- });
87
- return [4 /*yield*/, openai.chat.completions.create({
88
- model: 'gpt-4o',
89
- messages: [
90
- {
91
- role: 'user',
92
- content: [
93
- { type: 'text', text: 'Create an image alt text' },
94
- { type: 'image_url', image_url: { url: encodedImage } },
95
- ],
96
- },
97
- ],
98
- max_tokens: 1024,
99
- })];
100
- case 2:
101
- responseGpt = _a.sent();
102
- return [2 /*return*/, responseGpt];
15
+ export default aiCaptionHook;
16
+ async function processImageRequest(url) {
17
+ const response = await axios.get(url, {
18
+ responseType: 'arraybuffer'
19
+ });
20
+ const imageBuffer = Buffer.from(response.data, 'binary');
21
+ const base64Image = imageBuffer.toString('base64');
22
+ const mimeType = response.headers['content-type'];
23
+ const encodedImage = `data:${mimeType};base64,${base64Image}`;
24
+ const openai = new OpenAI({
25
+ apiKey: process.env.OPENAI_API_KEY
26
+ });
27
+ const responseGpt = await openai.chat.completions.create({
28
+ model: 'gpt-4o',
29
+ messages: [
30
+ {
31
+ role: 'user',
32
+ content: [
33
+ {
34
+ type: 'text',
35
+ text: 'Create an image alt text'
36
+ },
37
+ {
38
+ type: 'image_url',
39
+ image_url: {
40
+ url: encodedImage
41
+ }
42
+ }
43
+ ]
103
44
  }
104
- });
45
+ ],
46
+ max_tokens: 1024
105
47
  });
48
+ return responseGpt;
106
49
  }
107
- function translateCollection(_a) {
108
- var _b, _c;
109
- var req = _a.req, doc = _a.doc, collection = _a.collection, previousDoc = _a.previousDoc, context = _a.context, collectionOptions = _a.collectionOptions, onlyMissing = _a.onlyMissing, codes = _a.codes, settings = _a.settings, sourceLanguage = _a.sourceLanguage;
110
- return __awaiter(this, void 0, void 0, function () {
111
- var responseGpt, docData, updatedLanguage;
112
- return __generator(this, function (_d) {
113
- switch (_d.label) {
114
- case 0:
115
- if (context.triggerAfterChange === false /* || req.locale !== sourceLanguageI */)
116
- return [2 /*return*/];
117
- if (!((_c = (_b = doc === null || doc === void 0 ? void 0 : doc.sizes) === null || _b === void 0 ? void 0 : _b.tablet) === null || _c === void 0 ? void 0 : _c.url))
118
- return [2 /*return*/];
119
- return [4 /*yield*/, processImageRequest("http://localhost:3000".concat(doc.sizes.tablet.url))];
120
- case 1:
121
- responseGpt = _d.sent();
122
- docData = doc;
123
- docData.alt = responseGpt.choices[0].message.content;
124
- return [4 /*yield*/, req.payload.update({
125
- //req,
126
- collection: collection.slug,
127
- id: doc.id,
128
- data: docData,
129
- limit: 1,
130
- depth: 0,
131
- context: {
132
- triggerAfterChange: false,
133
- },
134
- })];
135
- case 2:
136
- updatedLanguage = _d.sent();
137
- return [2 /*return*/];
138
- }
139
- });
50
+ export async function translateCollection({ req, doc, collection, previousDoc, context, collectionOptions, onlyMissing, codes, settings, sourceLanguage }) {
51
+ if (context.triggerAfterChange === false) return;
52
+ if (!doc?.sizes?.tablet?.url) return;
53
+ const responseGpt = await processImageRequest(`http://localhost:3000${doc.sizes.tablet.url}`);
54
+ const docData = doc;
55
+ docData.alt = responseGpt.choices[0].message.content;
56
+ const updatedLanguage = await req.payload.update({
57
+ //req,
58
+ collection: collection.slug,
59
+ id: doc.id,
60
+ data: docData,
61
+ limit: 1,
62
+ depth: 0,
63
+ context: {
64
+ triggerAfterChange: false
65
+ }
140
66
  });
141
67
  }
142
- exports.translateCollection = translateCollection;
68
+
143
69
  //# sourceMappingURL=aiCaption.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aiCaption.js","sourceRoot":"","sources":["../src/aiCaption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/aiCaption.ts"],"sourcesContent":["import axios from 'axios'\nimport OpenAI from 'openai'\nimport type { CollectionAfterChangeHook, FieldHook } from 'payload'\n\nconst aiCaptionHook =\n (\n {\n collectionOptions,\n collection,\n pluginOptions,\n }: { collectionOptions: any; collection: object; pluginOptions: any },\n fallback?: string,\n ): CollectionAfterChangeHook =>\n async ({ doc, req, previousDoc, context, collection }) => {\n const settings = pluginOptions.collections?.[collection.slug]?.settings\n\n return await translateCollection({\n doc,\n req,\n previousDoc,\n context,\n collection,\n collectionOptions,\n settings,\n })\n }\n\nexport default aiCaptionHook\n\nasync function processImageRequest(url: string) {\n const response = await axios.get(url, { responseType: 'arraybuffer' })\n const imageBuffer = Buffer.from(response.data, 'binary')\n const base64Image = imageBuffer.toString('base64')\n const mimeType = response.headers['content-type']\n const encodedImage = `data:${mimeType};base64,${base64Image}`\n\n const openai = new OpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n })\n\n const responseGpt = await openai.chat.completions.create({\n model: 'gpt-4o',\n messages: [\n {\n role: 'user',\n content: [\n { type: 'text', text: 'Create an image alt text' },\n { type: 'image_url', image_url: { url: encodedImage } },\n ],\n },\n ],\n max_tokens: 1024,\n })\n\n return responseGpt\n}\n\nexport async function translateCollection({\n req,\n doc,\n collection,\n previousDoc,\n context,\n collectionOptions,\n onlyMissing,\n codes,\n settings,\n sourceLanguage,\n}: any) {\n if (context.triggerAfterChange === false /* || req.locale !== sourceLanguageI */) return\n\n if (!doc?.sizes?.tablet?.url) return\n const responseGpt = await processImageRequest(`http://localhost:3000${doc.sizes.tablet.url}`)\n\n const docData = doc\n\n docData.alt = responseGpt.choices[0].message.content\n const updatedLanguage = await req.payload.update({\n //req,\n collection: collection.slug,\n id: doc.id,\n data: docData,\n limit: 1,\n depth: 0,\n context: {\n triggerAfterChange: false,\n },\n })\n}\n"],"names":["axios","OpenAI","aiCaptionHook","collectionOptions","collection","pluginOptions","fallback","doc","req","previousDoc","context","settings","collections","slug","translateCollection","processImageRequest","url","response","get","responseType","imageBuffer","Buffer","from","data","base64Image","toString","mimeType","headers","encodedImage","openai","apiKey","process","env","OPENAI_API_KEY","responseGpt","chat","completions","create","model","messages","role","content","type","text","image_url","max_tokens","onlyMissing","codes","sourceLanguage","triggerAfterChange","sizes","tablet","docData","alt","choices","message","updatedLanguage","payload","update","id","limit","depth"],"mappings":"AAAA,OAAOA,WAAW,QAAO;AACzB,OAAOC,YAAY,SAAQ;AAG3B,MAAMC,gBACJ,CACE,EACEC,iBAAiB,EACjBC,UAAU,EACVC,aAAa,EACsD,EACrEC,WAEF,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,WAAW,EAAEC,OAAO,EAAEN,UAAU,EAAE;QACnD,MAAMO,WAAWN,cAAcO,WAAW,EAAE,CAACR,WAAWS,IAAI,CAAC,EAAEF;QAE/D,OAAO,MAAMG,oBAAoB;YAC/BP;YACAC;YACAC;YACAC;YACAN;YACAD;YACAQ;QACF;IACF;AAEF,eAAeT,cAAa;AAE5B,eAAea,oBAAoBC,GAAW;IAC5C,MAAMC,WAAW,MAAMjB,MAAMkB,GAAG,CAACF,KAAK;QAAEG,cAAc;IAAc;IACpE,MAAMC,cAAcC,OAAOC,IAAI,CAACL,SAASM,IAAI,EAAE;IAC/C,MAAMC,cAAcJ,YAAYK,QAAQ,CAAC;IACzC,MAAMC,WAAWT,SAASU,OAAO,CAAC,eAAe;IACjD,MAAMC,eAAe,CAAC,KAAK,EAAEF,SAAS,QAAQ,EAAEF,aAAa;IAE7D,MAAMK,SAAS,IAAI5B,OAAO;QACxB6B,QAAQC,QAAQC,GAAG,CAACC,cAAc;IACpC;IAEA,MAAMC,cAAc,MAAML,OAAOM,IAAI,CAACC,WAAW,CAACC,MAAM,CAAC;QACvDC,OAAO;QACPC,UAAU;YACR;gBACEC,MAAM;gBACNC,SAAS;oBACP;wBAAEC,MAAM;wBAAQC,MAAM;oBAA2B;oBACjD;wBAAED,MAAM;wBAAaE,WAAW;4BAAE5B,KAAKY;wBAAa;oBAAE;iBACvD;YACH;SACD;QACDiB,YAAY;IACd;IAEA,OAAOX;AACT;AAEA,OAAO,eAAepB,oBAAoB,EACxCN,GAAG,EACHD,GAAG,EACHH,UAAU,EACVK,WAAW,EACXC,OAAO,EACPP,iBAAiB,EACjB2C,WAAW,EACXC,KAAK,EACLpC,QAAQ,EACRqC,cAAc,EACV;IACJ,IAAItC,QAAQuC,kBAAkB,KAAK,OAA+C;IAElF,IAAI,CAAC1C,KAAK2C,OAAOC,QAAQnC,KAAK;IAC9B,MAAMkB,cAAc,MAAMnB,oBAAoB,CAAC,qBAAqB,EAAER,IAAI2C,KAAK,CAACC,MAAM,CAACnC,GAAG,EAAE;IAE5F,MAAMoC,UAAU7C;IAEhB6C,QAAQC,GAAG,GAAGnB,YAAYoB,OAAO,CAAC,EAAE,CAACC,OAAO,CAACd,OAAO;IACpD,MAAMe,kBAAkB,MAAMhD,IAAIiD,OAAO,CAACC,MAAM,CAAC;QAC/C,MAAM;QACNtD,YAAYA,WAAWS,IAAI;QAC3B8C,IAAIpD,IAAIoD,EAAE;QACVpC,MAAM6B;QACNQ,OAAO;QACPC,OAAO;QACPnD,SAAS;YACPuC,oBAAoB;QACtB;IACF;AACF"}
@@ -1,8 +1,8 @@
1
1
  import type { CollectionAfterChangeHook } from 'payload';
2
- declare const aiTranslateHook: ({ collectionOptions, collection, pluginOptions, }: {
3
- collectionOptions: any;
2
+ declare const aiTranslateHook: ({ collection, collectionOptions, pluginOptions, }: {
4
3
  collection: object;
4
+ collectionOptions: any;
5
5
  pluginOptions: any;
6
6
  }, fallback?: string) => CollectionAfterChangeHook;
7
7
  export default aiTranslateHook;
8
- export declare function translateCollection({ req, doc, collection, previousDoc, context, collectionOptions, onlyMissing, codes, settings, sourceLanguage, onProgress, }: any): Promise<void>;
8
+ export declare function translateCollection({ codes, collection, collectionOptions, context, doc, onlyMissing, onProgress, previousDoc, req, settings, sourceLanguage, }: any): Promise<void>;