@ai-stack/payloadcms 3.0.0-beta.104

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 (250) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +137 -0
  3. package/dist/ai/analyse.d.ts +2 -0
  4. package/dist/ai/analyse.d.ts.map +1 -0
  5. package/dist/ai/analyse.js +3 -0
  6. package/dist/ai/analyse.js.map +1 -0
  7. package/dist/ai/models/anthropic/generateRichText.d.ts +2 -0
  8. package/dist/ai/models/anthropic/generateRichText.d.ts.map +1 -0
  9. package/dist/ai/models/anthropic/generateRichText.js +38 -0
  10. package/dist/ai/models/anthropic/generateRichText.js.map +1 -0
  11. package/dist/ai/models/anthropic/index.d.ts +3 -0
  12. package/dist/ai/models/anthropic/index.d.ts.map +1 -0
  13. package/dist/ai/models/anthropic/index.js +112 -0
  14. package/dist/ai/models/anthropic/index.js.map +1 -0
  15. package/dist/ai/models/elevenLabs/generateVoice.d.ts +10 -0
  16. package/dist/ai/models/elevenLabs/generateVoice.d.ts.map +1 -0
  17. package/dist/ai/models/elevenLabs/generateVoice.js +20 -0
  18. package/dist/ai/models/elevenLabs/generateVoice.js.map +1 -0
  19. package/dist/ai/models/elevenLabs/index.d.ts +3 -0
  20. package/dist/ai/models/elevenLabs/index.d.ts.map +1 -0
  21. package/dist/ai/models/elevenLabs/index.js +129 -0
  22. package/dist/ai/models/elevenLabs/index.js.map +1 -0
  23. package/dist/ai/models/elevenLabs/voices.d.ts +4 -0
  24. package/dist/ai/models/elevenLabs/voices.d.ts.map +1 -0
  25. package/dist/ai/models/elevenLabs/voices.js +24 -0
  26. package/dist/ai/models/elevenLabs/voices.js.map +1 -0
  27. package/dist/ai/models/example-prompt-rich-text.md +47 -0
  28. package/dist/ai/models/example.d.ts +73 -0
  29. package/dist/ai/models/example.d.ts.map +1 -0
  30. package/dist/ai/models/example.js +126 -0
  31. package/dist/ai/models/example.js.map +1 -0
  32. package/dist/ai/models/index.d.ts +3 -0
  33. package/dist/ai/models/index.d.ts.map +1 -0
  34. package/dist/ai/models/index.js +11 -0
  35. package/dist/ai/models/index.js.map +1 -0
  36. package/dist/ai/models/openai/generateImage.d.ts +10 -0
  37. package/dist/ai/models/openai/generateImage.d.ts.map +1 -0
  38. package/dist/ai/models/openai/generateImage.js +20 -0
  39. package/dist/ai/models/openai/generateImage.js.map +1 -0
  40. package/dist/ai/models/openai/generateRichText.d.ts +2 -0
  41. package/dist/ai/models/openai/generateRichText.d.ts.map +1 -0
  42. package/dist/ai/models/openai/generateRichText.js +38 -0
  43. package/dist/ai/models/openai/generateRichText.js.map +1 -0
  44. package/dist/ai/models/openai/generateVoice.d.ts +7 -0
  45. package/dist/ai/models/openai/generateVoice.d.ts.map +1 -0
  46. package/dist/ai/models/openai/generateVoice.js +19 -0
  47. package/dist/ai/models/openai/generateVoice.js.map +1 -0
  48. package/dist/ai/models/openai/index.d.ts +3 -0
  49. package/dist/ai/models/openai/index.d.ts.map +1 -0
  50. package/dist/ai/models/openai/index.js +276 -0
  51. package/dist/ai/models/openai/index.js.map +1 -0
  52. package/dist/ai/prompts.d.ts +25 -0
  53. package/dist/ai/prompts.d.ts.map +1 -0
  54. package/dist/ai/prompts.js +214 -0
  55. package/dist/ai/prompts.js.map +1 -0
  56. package/dist/ai/schemas/lexical.schema.d.ts +31 -0
  57. package/dist/ai/schemas/lexical.schema.d.ts.map +1 -0
  58. package/dist/ai/schemas/lexical.schema.js +102 -0
  59. package/dist/ai/schemas/lexical.schema.js.map +1 -0
  60. package/dist/ai/utils/generateFileNameByPrompt.d.ts +2 -0
  61. package/dist/ai/utils/generateFileNameByPrompt.d.ts.map +1 -0
  62. package/dist/ai/utils/generateFileNameByPrompt.js +21 -0
  63. package/dist/ai/utils/generateFileNameByPrompt.js.map +1 -0
  64. package/dist/ai/utils/generateSeedPrompt.d.ts +5 -0
  65. package/dist/ai/utils/generateSeedPrompt.d.ts.map +1 -0
  66. package/dist/ai/utils/generateSeedPrompt.js +23 -0
  67. package/dist/ai/utils/generateSeedPrompt.js.map +1 -0
  68. package/dist/collections/Instructions.d.ts +3 -0
  69. package/dist/collections/Instructions.d.ts.map +1 -0
  70. package/dist/collections/Instructions.js +109 -0
  71. package/dist/collections/Instructions.js.map +1 -0
  72. package/dist/defaults.d.ts +10 -0
  73. package/dist/defaults.d.ts.map +1 -0
  74. package/dist/defaults.js +13 -0
  75. package/dist/defaults.js.map +1 -0
  76. package/dist/endpoints/index.d.ts +3 -0
  77. package/dist/endpoints/index.d.ts.map +1 -0
  78. package/dist/endpoints/index.js +141 -0
  79. package/dist/endpoints/index.js.map +1 -0
  80. package/dist/exports/client.d.ts +3 -0
  81. package/dist/exports/client.d.ts.map +1 -0
  82. package/dist/exports/client.js +4 -0
  83. package/dist/exports/client.js.map +1 -0
  84. package/dist/exports/fields.d.ts +4 -0
  85. package/dist/exports/fields.d.ts.map +1 -0
  86. package/dist/exports/fields.js +5 -0
  87. package/dist/exports/fields.js.map +1 -0
  88. package/dist/exports/types.d.ts +3 -0
  89. package/dist/exports/types.d.ts.map +1 -0
  90. package/dist/exports/types.js +3 -0
  91. package/dist/exports/types.js.map +1 -0
  92. package/dist/fields/ComposeField/ComposeField.d.ts +4 -0
  93. package/dist/fields/ComposeField/ComposeField.d.ts.map +1 -0
  94. package/dist/fields/ComposeField/ComposeField.js +18 -0
  95. package/dist/fields/ComposeField/ComposeField.js.map +1 -0
  96. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts +2 -0
  97. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -0
  98. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +15 -0
  99. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -0
  100. package/dist/fields/LexicalEditor/feature.client.d.ts +2 -0
  101. package/dist/fields/LexicalEditor/feature.client.d.ts.map +1 -0
  102. package/dist/fields/LexicalEditor/feature.client.js +13 -0
  103. package/dist/fields/LexicalEditor/feature.client.js.map +1 -0
  104. package/dist/fields/LexicalEditor/feature.server.d.ts +2 -0
  105. package/dist/fields/LexicalEditor/feature.server.d.ts.map +1 -0
  106. package/dist/fields/LexicalEditor/feature.server.js +12 -0
  107. package/dist/fields/LexicalEditor/feature.server.js.map +1 -0
  108. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +4 -0
  109. package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -0
  110. package/dist/fields/PromptEditorField/PromptEditorField.js +41 -0
  111. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -0
  112. package/dist/fields/SelectField/SelectField.d.ts +10 -0
  113. package/dist/fields/SelectField/SelectField.d.ts.map +1 -0
  114. package/dist/fields/SelectField/SelectField.js +41 -0
  115. package/dist/fields/SelectField/SelectField.js.map +1 -0
  116. package/dist/index.d.ts +10 -0
  117. package/dist/index.d.ts.map +1 -0
  118. package/dist/index.js +10 -0
  119. package/dist/index.js.map +1 -0
  120. package/dist/init.d.ts +4 -0
  121. package/dist/init.d.ts.map +1 -0
  122. package/dist/init.js +81 -0
  123. package/dist/init.js.map +1 -0
  124. package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts +8 -0
  125. package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts.map +1 -0
  126. package/dist/libraries/autocomplete/AutocompleteTextArea.js +437 -0
  127. package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +1 -0
  128. package/dist/libraries/autocomplete/AutocompleteTextArea.module.scss +35 -0
  129. package/dist/libraries/handlebars/asyncHandlebars.d.ts +2 -0
  130. package/dist/libraries/handlebars/asyncHandlebars.d.ts.map +1 -0
  131. package/dist/libraries/handlebars/asyncHandlebars.js +5 -0
  132. package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -0
  133. package/dist/libraries/handlebars/helpers.d.ts +2 -0
  134. package/dist/libraries/handlebars/helpers.d.ts.map +1 -0
  135. package/dist/libraries/handlebars/helpers.js +22 -0
  136. package/dist/libraries/handlebars/helpers.js.map +1 -0
  137. package/dist/libraries/handlebars/helpersMap.d.ts +12 -0
  138. package/dist/libraries/handlebars/helpersMap.d.ts.map +1 -0
  139. package/dist/libraries/handlebars/helpersMap.js +13 -0
  140. package/dist/libraries/handlebars/helpersMap.js.map +1 -0
  141. package/dist/libraries/handlebars/replacePlaceholders.d.ts +2 -0
  142. package/dist/libraries/handlebars/replacePlaceholders.d.ts.map +1 -0
  143. package/dist/libraries/handlebars/replacePlaceholders.js +8 -0
  144. package/dist/libraries/handlebars/replacePlaceholders.js.map +1 -0
  145. package/dist/plugin.d.ts +5 -0
  146. package/dist/plugin.d.ts.map +1 -0
  147. package/dist/plugin.js +121 -0
  148. package/dist/plugin.js.map +1 -0
  149. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +6 -0
  150. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -0
  151. package/dist/providers/InstructionsProvider/InstructionsProvider.js +31 -0
  152. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -0
  153. package/dist/providers/InstructionsProvider/useInstructions.d.ts +4 -0
  154. package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +1 -0
  155. package/dist/providers/InstructionsProvider/useInstructions.js +38 -0
  156. package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -0
  157. package/dist/styles.d.js +2 -0
  158. package/dist/styles.d.js.map +1 -0
  159. package/dist/translations/en.json +4 -0
  160. package/dist/translations/es.json +4 -0
  161. package/dist/translations/fa.json +4 -0
  162. package/dist/translations/fr.json +4 -0
  163. package/dist/translations/index.d.ts +38 -0
  164. package/dist/translations/index.d.ts.map +1 -0
  165. package/dist/translations/index.js +36 -0
  166. package/dist/translations/index.js.map +1 -0
  167. package/dist/translations/pl.json +4 -0
  168. package/dist/translations/ru.json +4 -0
  169. package/dist/translations/translation-schema.json +16 -0
  170. package/dist/translations/uk.json +4 -0
  171. package/dist/types.d.ts +94 -0
  172. package/dist/types.d.ts.map +1 -0
  173. package/dist/types.js +6 -0
  174. package/dist/types.js.map +1 -0
  175. package/dist/ui/Compose/Compose.d.ts +9 -0
  176. package/dist/ui/Compose/Compose.d.ts.map +1 -0
  177. package/dist/ui/Compose/Compose.js +176 -0
  178. package/dist/ui/Compose/Compose.js.map +1 -0
  179. package/dist/ui/Compose/UndoRedoActions.d.ts +4 -0
  180. package/dist/ui/Compose/UndoRedoActions.d.ts.map +1 -0
  181. package/dist/ui/Compose/UndoRedoActions.js +56 -0
  182. package/dist/ui/Compose/UndoRedoActions.js.map +1 -0
  183. package/dist/ui/Compose/compose.module.scss +19 -0
  184. package/dist/ui/Compose/hooks/menu/Item.d.ts +5 -0
  185. package/dist/ui/Compose/hooks/menu/Item.d.ts.map +1 -0
  186. package/dist/ui/Compose/hooks/menu/Item.js +32 -0
  187. package/dist/ui/Compose/hooks/menu/Item.js.map +1 -0
  188. package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts +4 -0
  189. package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts.map +1 -0
  190. package/dist/ui/Compose/hooks/menu/TranslateMenu.js +78 -0
  191. package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -0
  192. package/dist/ui/Compose/hooks/menu/items.d.ts +9 -0
  193. package/dist/ui/Compose/hooks/menu/items.d.ts.map +1 -0
  194. package/dist/ui/Compose/hooks/menu/items.js +12 -0
  195. package/dist/ui/Compose/hooks/menu/items.js.map +1 -0
  196. package/dist/ui/Compose/hooks/menu/itemsMap.d.ts +11 -0
  197. package/dist/ui/Compose/hooks/menu/itemsMap.d.ts.map +1 -0
  198. package/dist/ui/Compose/hooks/menu/itemsMap.js +68 -0
  199. package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -0
  200. package/dist/ui/Compose/hooks/menu/menu.module.scss +109 -0
  201. package/dist/ui/Compose/hooks/menu/useMenu.d.ts +11 -0
  202. package/dist/ui/Compose/hooks/menu/useMenu.d.ts.map +1 -0
  203. package/dist/ui/Compose/hooks/menu/useMenu.js +93 -0
  204. package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -0
  205. package/dist/ui/Compose/hooks/useGenerate.d.ts +11 -0
  206. package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -0
  207. package/dist/ui/Compose/hooks/useGenerate.js +175 -0
  208. package/dist/ui/Compose/hooks/useGenerate.js.map +1 -0
  209. package/dist/ui/Compose/hooks/useHistory.d.ts +9 -0
  210. package/dist/ui/Compose/hooks/useHistory.d.ts.map +1 -0
  211. package/dist/ui/Compose/hooks/useHistory.js +171 -0
  212. package/dist/ui/Compose/hooks/useHistory.js.map +1 -0
  213. package/dist/ui/Icons/Icons.d.ts +45 -0
  214. package/dist/ui/Icons/Icons.d.ts.map +1 -0
  215. package/dist/ui/Icons/Icons.js +154 -0
  216. package/dist/ui/Icons/Icons.js.map +1 -0
  217. package/dist/ui/Icons/LottieAnimation.d.ts +5 -0
  218. package/dist/ui/Icons/LottieAnimation.d.ts.map +1 -0
  219. package/dist/ui/Icons/LottieAnimation.js +100 -0
  220. package/dist/ui/Icons/LottieAnimation.js.map +1 -0
  221. package/dist/ui/Icons/icons.module.css +26 -0
  222. package/dist/utilities/getFieldBySchemaPath.d.ts +3 -0
  223. package/dist/utilities/getFieldBySchemaPath.d.ts.map +1 -0
  224. package/dist/utilities/getFieldBySchemaPath.js +37 -0
  225. package/dist/utilities/getFieldBySchemaPath.js.map +1 -0
  226. package/dist/utilities/getFieldInfo.d.ts +3 -0
  227. package/dist/utilities/getFieldInfo.d.ts.map +1 -0
  228. package/dist/utilities/getFieldInfo.js +14 -0
  229. package/dist/utilities/getFieldInfo.js.map +1 -0
  230. package/dist/utilities/isPluginActivated.d.ts +2 -0
  231. package/dist/utilities/isPluginActivated.d.ts.map +1 -0
  232. package/dist/utilities/isPluginActivated.js +5 -0
  233. package/dist/utilities/isPluginActivated.js.map +1 -0
  234. package/dist/utilities/jsonToZod.d.ts +3 -0
  235. package/dist/utilities/jsonToZod.d.ts.map +1 -0
  236. package/dist/utilities/jsonToZod.js +33 -0
  237. package/dist/utilities/jsonToZod.js.map +1 -0
  238. package/dist/utilities/lexicalToHTML.d.ts +4 -0
  239. package/dist/utilities/lexicalToHTML.d.ts.map +1 -0
  240. package/dist/utilities/lexicalToHTML.js +11 -0
  241. package/dist/utilities/lexicalToHTML.js.map +1 -0
  242. package/dist/utilities/setSafeLexicalState.d.ts +5 -0
  243. package/dist/utilities/setSafeLexicalState.d.ts.map +1 -0
  244. package/dist/utilities/setSafeLexicalState.js +20 -0
  245. package/dist/utilities/setSafeLexicalState.js.map +1 -0
  246. package/dist/utilities/updateFieldsConfig.d.ts +8 -0
  247. package/dist/utilities/updateFieldsConfig.d.ts.map +1 -0
  248. package/dist/utilities/updateFieldsConfig.js +89 -0
  249. package/dist/utilities/updateFieldsConfig.js.map +1 -0
  250. package/package.json +124 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/collections/Instructions.ts"],"sourcesContent":["import type { CollectionConfig, GroupField } from 'payload'\n\nimport { GenerationModels } from '../ai/models/index.js'\nimport { PLUGIN_INSTRUCTIONS_TABLE } from '../defaults.js'\n\nconst groupSettings = GenerationModels.reduce((fields, model) => {\n if (model.settings) {\n fields.push(model.settings)\n }\n return fields\n}, [] as GroupField[])\n\nconst modelOptions = GenerationModels.map((model) => {\n return {\n fields: model.fields,\n label: model.name,\n value: model.id,\n }\n})\n\nexport const Instructions: CollectionConfig = {\n slug: PLUGIN_INSTRUCTIONS_TABLE,\n\n // TODO: Revisit permissions, better if end user can provide this\n access: {\n create: () => true,\n read: () => true,\n update: () => true,\n },\n admin: {\n hidden: true,\n },\n fields: [\n {\n name: 'schema-path',\n type: 'text',\n admin: {\n readOnly: true,\n },\n unique: true,\n },\n {\n name: 'field-type',\n type: 'select',\n admin: {\n readOnly: true,\n },\n defaultValue: 'text',\n label: 'Field type',\n options: [\n {\n label: 'text',\n value: 'text',\n },\n {\n label: 'textarea',\n value: 'textarea',\n },\n {\n label: 'upload',\n value: 'upload',\n },\n {\n label: 'richText',\n value: 'richText',\n },\n ],\n },\n {\n name: 'model-id',\n type: 'select',\n admin: {\n components: {\n Field: {\n clientProps: {\n filterByField: 'field-type',\n options: modelOptions,\n },\n path: '@ai-stack/payloadcms/fields#SelectField',\n },\n },\n },\n label: 'Model',\n options: modelOptions.map((option) => {\n return {\n label: option.label,\n value: option.value,\n }\n }),\n },\n {\n name: 'prompt',\n type: 'textarea',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/fields#PromptEditorField',\n },\n },\n },\n ...groupSettings,\n ],\n hooks: {\n beforeChange: [\n (req) => {\n if (req.data['openai-gpt-object-settings']?.layout?.length === 0) {\n // TODO: why??\n req.data['openai-gpt-object-settings'].layout = ''\n }\n return req.data\n },\n ],\n },\n}\n"],"names":["GenerationModels","PLUGIN_INSTRUCTIONS_TABLE","groupSettings","reduce","fields","model","settings","push","modelOptions","map","label","name","value","id","Instructions","slug","access","create","read","update","admin","hidden","type","readOnly","unique","defaultValue","options","components","Field","clientProps","filterByField","path","option","hooks","beforeChange","req","data","layout","length"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,yBAAyB,QAAQ,iBAAgB;AAE1D,MAAMC,gBAAgBF,iBAAiBG,MAAM,CAAC,CAACC,QAAQC;IACrD,IAAIA,MAAMC,QAAQ,EAAE;QAClBF,OAAOG,IAAI,CAACF,MAAMC,QAAQ;IAC5B;IACA,OAAOF;AACT,GAAG,EAAE;AAEL,MAAMI,eAAeR,iBAAiBS,GAAG,CAAC,CAACJ;IACzC,OAAO;QACLD,QAAQC,MAAMD,MAAM;QACpBM,OAAOL,MAAMM,IAAI;QACjBC,OAAOP,MAAMQ,EAAE;IACjB;AACF;AAEA,OAAO,MAAMC,eAAiC;IAC5CC,MAAMd;IAEN,iEAAiE;IACjEe,QAAQ;QACNC,QAAQ,IAAM;QACdC,MAAM,IAAM;QACZC,QAAQ,IAAM;IAChB;IACAC,OAAO;QACLC,QAAQ;IACV;IACAjB,QAAQ;QACN;YACEO,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLG,UAAU;YACZ;YACAC,QAAQ;QACV;QACA;YACEb,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLG,UAAU;YACZ;YACAE,cAAc;YACdf,OAAO;YACPgB,SAAS;gBACP;oBACEhB,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;gBACA;oBACEF,OAAO;oBACPE,OAAO;gBACT;aACD;QACH;QACA;YACED,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLO,YAAY;oBACVC,OAAO;wBACLC,aAAa;4BACXC,eAAe;4BACfJ,SAASlB;wBACX;wBACAuB,MAAM;oBACR;gBACF;YACF;YACArB,OAAO;YACPgB,SAASlB,aAAaC,GAAG,CAAC,CAACuB;gBACzB,OAAO;oBACLtB,OAAOsB,OAAOtB,KAAK;oBACnBE,OAAOoB,OAAOpB,KAAK;gBACrB;YACF;QACF;QACA;YACED,MAAM;YACNW,MAAM;YACNF,OAAO;gBACLO,YAAY;oBACVC,OAAO;gBACT;YACF;QACF;WACG1B;KACJ;IACD+B,OAAO;QACLC,cAAc;YACZ,CAACC;gBACC,IAAIA,IAAIC,IAAI,CAAC,6BAA6B,EAAEC,QAAQC,WAAW,GAAG;oBAChE,cAAc;oBACdH,IAAIC,IAAI,CAAC,6BAA6B,CAACC,MAAM,GAAG;gBAClD;gBACA,OAAOF,IAAIC,IAAI;YACjB;SACD;IACH;AACF,EAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const PLUGIN_NAME = "plugin-ai";
2
+ export declare const PLUGIN_INSTRUCTIONS_TABLE = "plugin-ai-instructions";
3
+ export declare const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = "plugin-ai-instructions-map";
4
+ export declare const PLUGIN_LEXICAL_EDITOR_FEATURE = "plugin-ai-actions-feature";
5
+ export declare const PLUGIN_API_ENDPOINT_BASE = "/plugin-ai";
6
+ export declare const PLUGIN_API_ENDPOINT_GENERATE = "/plugin-ai/generate";
7
+ export declare const PLUGIN_API_ENDPOINT_GENERATE_UPLOAD = "/plugin-ai/generate/upload";
8
+ export declare const PLUGIN_DEFAULT_OPENAI_MODEL = "gpt-4o-mini";
9
+ export declare const PLUGIN_DEFAULT_ANTHROPIC_MODEL = "claude-3-sonnet-20240229";
10
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,cAAc,CAAA;AACtC,eAAO,MAAM,yBAAyB,2BAAgC,CAAA;AACtE,eAAO,MAAM,8BAA8B,+BAAqC,CAAA;AAChF,eAAO,MAAM,6BAA6B,8BAAmC,CAAA;AAG7E,eAAO,MAAM,wBAAwB,eAAoB,CAAA;AACzD,eAAO,MAAM,4BAA4B,wBAAyC,CAAA;AAClF,eAAO,MAAM,mCAAmC,+BAA2C,CAAA;AAG3F,eAAO,MAAM,2BAA2B,gBAAgB,CAAA;AACxD,eAAO,MAAM,8BAA8B,6BAA6B,CAAA"}
@@ -0,0 +1,13 @@
1
+ export const PLUGIN_NAME = 'plugin-ai';
2
+ export const PLUGIN_INSTRUCTIONS_TABLE = `${PLUGIN_NAME}-instructions`;
3
+ export const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = `${PLUGIN_INSTRUCTIONS_TABLE}-map`;
4
+ export const PLUGIN_LEXICAL_EDITOR_FEATURE = `${PLUGIN_NAME}-actions-feature`;
5
+ // Endpoint defaults
6
+ export const PLUGIN_API_ENDPOINT_BASE = `/${PLUGIN_NAME}`;
7
+ export const PLUGIN_API_ENDPOINT_GENERATE = `${PLUGIN_API_ENDPOINT_BASE}/generate`;
8
+ export const PLUGIN_API_ENDPOINT_GENERATE_UPLOAD = `${PLUGIN_API_ENDPOINT_GENERATE}/upload`;
9
+ // LLM Settings
10
+ export const PLUGIN_DEFAULT_OPENAI_MODEL = `gpt-4o-mini`;
11
+ export const PLUGIN_DEFAULT_ANTHROPIC_MODEL = `claude-3-sonnet-20240229`;
12
+
13
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/defaults.ts"],"sourcesContent":["export const PLUGIN_NAME = 'plugin-ai'\nexport const PLUGIN_INSTRUCTIONS_TABLE = `${PLUGIN_NAME}-instructions`\nexport const PLUGIN_INSTRUCTIONS_MAP_GLOBAL = `${PLUGIN_INSTRUCTIONS_TABLE}-map`\nexport const PLUGIN_LEXICAL_EDITOR_FEATURE = `${PLUGIN_NAME}-actions-feature`\n\n// Endpoint defaults\nexport const PLUGIN_API_ENDPOINT_BASE = `/${PLUGIN_NAME}`\nexport const PLUGIN_API_ENDPOINT_GENERATE = `${PLUGIN_API_ENDPOINT_BASE}/generate`\nexport const PLUGIN_API_ENDPOINT_GENERATE_UPLOAD = `${PLUGIN_API_ENDPOINT_GENERATE}/upload`\n\n// LLM Settings\nexport const PLUGIN_DEFAULT_OPENAI_MODEL = `gpt-4o-mini`\nexport const PLUGIN_DEFAULT_ANTHROPIC_MODEL = `claude-3-sonnet-20240229`\n"],"names":["PLUGIN_NAME","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_INSTRUCTIONS_MAP_GLOBAL","PLUGIN_LEXICAL_EDITOR_FEATURE","PLUGIN_API_ENDPOINT_BASE","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_DEFAULT_OPENAI_MODEL","PLUGIN_DEFAULT_ANTHROPIC_MODEL"],"mappings":"AAAA,OAAO,MAAMA,cAAc,YAAW;AACtC,OAAO,MAAMC,4BAA4B,CAAC,EAAED,YAAY,aAAa,CAAC,CAAA;AACtE,OAAO,MAAME,iCAAiC,CAAC,EAAED,0BAA0B,IAAI,CAAC,CAAA;AAChF,OAAO,MAAME,gCAAgC,CAAC,EAAEH,YAAY,gBAAgB,CAAC,CAAA;AAE7E,oBAAoB;AACpB,OAAO,MAAMI,2BAA2B,CAAC,CAAC,EAAEJ,YAAY,CAAC,CAAA;AACzD,OAAO,MAAMK,+BAA+B,CAAC,EAAED,yBAAyB,SAAS,CAAC,CAAA;AAClF,OAAO,MAAME,sCAAsC,CAAC,EAAED,6BAA6B,OAAO,CAAC,CAAA;AAE3F,eAAe;AACf,OAAO,MAAME,8BAA8B,CAAC,WAAW,CAAC,CAAA;AACxD,OAAO,MAAMC,iCAAiC,CAAC,wBAAwB,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Endpoints } from '../types.js';
2
+ export declare const endpoints: Endpoints;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,aAAa,CAAA;AAsE7D,eAAO,MAAM,SAAS,EAAE,SAsIvB,CAAA"}
@@ -0,0 +1,141 @@
1
+ import { lexicalSchema } from '../ai/schemas/lexical.schema.js';
2
+ import { GenerationModels } from '../ai/models/index.js';
3
+ import { defaultPrompts } from '../ai/prompts.js';
4
+ import { PLUGIN_API_ENDPOINT_GENERATE, PLUGIN_API_ENDPOINT_GENERATE_UPLOAD, PLUGIN_INSTRUCTIONS_TABLE, PLUGIN_NAME } from '../defaults.js';
5
+ import { registerEditorHelper } from '../libraries/handlebars/helpers.js';
6
+ import { handlebarsHelpersMap } from '../libraries/handlebars/helpersMap.js';
7
+ import { replacePlaceholders } from '../libraries/handlebars/replacePlaceholders.js';
8
+ const assignPrompt = async (action, { type, actionParams, context, field, layout, systemPrompt = '', template })=>{
9
+ const prompt = await replacePlaceholders(template, context);
10
+ const toLexicalHTML = type === 'richText' ? handlebarsHelpersMap.toHTML.name : '';
11
+ const assignedPrompts = {
12
+ layout,
13
+ prompt,
14
+ system: systemPrompt
15
+ };
16
+ if (action === 'Compose') {
17
+ return assignedPrompts;
18
+ }
19
+ const { layout: getLayout, system: getSystemPrompt } = defaultPrompts.find((p)=>p.name === action);
20
+ let updatedLayout = layout;
21
+ if (getLayout) {
22
+ updatedLayout = getLayout();
23
+ }
24
+ const system = getSystemPrompt({
25
+ ...actionParams || {},
26
+ prompt,
27
+ systemPrompt
28
+ });
29
+ return {
30
+ layout: updatedLayout,
31
+ // TODO: revisit this toLexicalHTML
32
+ prompt: await replacePlaceholders(`{{${toLexicalHTML} ${field}}}`, context),
33
+ system
34
+ };
35
+ };
36
+ export const endpoints = {
37
+ textarea: {
38
+ handler: async (req)=>{
39
+ const data = await req.json?.();
40
+ const { locale = 'en', options } = data;
41
+ const { action, actionParams, instructionId } = options;
42
+ const contextData = data.doc;
43
+ if (!instructionId) {
44
+ throw new Error(`Instruction ID is required for "${PLUGIN_NAME}" to work, please check your configuration`);
45
+ }
46
+ const instructions = await req.payload.findByID({
47
+ id: instructionId,
48
+ collection: PLUGIN_INSTRUCTIONS_TABLE
49
+ });
50
+ const { collections } = req.payload.config;
51
+ const collection = collections.find((collection)=>collection.slug === PLUGIN_INSTRUCTIONS_TABLE);
52
+ const { editorConfig: { schema: editorSchema = lexicalSchema() } = {} } = collection.custom || {};
53
+ const { prompt: promptTemplate = '' } = instructions;
54
+ const schemaPath = instructions['schema-path'];
55
+ const fieldName = schemaPath?.split('.').pop();
56
+ registerEditorHelper(req.payload, schemaPath);
57
+ const { defaultLocale, locales = [] } = req.payload.config.localization || {};
58
+ const localeData = locales.find((l)=>{
59
+ return l.code === locale;
60
+ });
61
+ const localeInfo = localeData?.label[defaultLocale] || locale;
62
+ //TODO: remove this
63
+ const opt = {
64
+ locale: localeInfo,
65
+ modelId: instructions['model-id']
66
+ };
67
+ const model = GenerationModels.find((model)=>model.id === opt.modelId);
68
+ const settingsName = model.settings?.name;
69
+ const modelOptions = instructions[settingsName];
70
+ const prompts = await assignPrompt(action, {
71
+ type: instructions['field-type'],
72
+ actionParams,
73
+ context: contextData,
74
+ field: fieldName,
75
+ layout: modelOptions.layout,
76
+ systemPrompt: modelOptions.system,
77
+ template: promptTemplate
78
+ });
79
+ console.log('Running handler with prompts:', prompts);
80
+ return model.handler?.(prompts.prompt, {
81
+ ...modelOptions,
82
+ ...opt,
83
+ editorSchema,
84
+ layout: prompts.layout,
85
+ system: prompts.system
86
+ }).catch((error)=>{
87
+ console.error('Error: endpoint - generating text:', error);
88
+ return new Response(JSON.stringify(error.message), {
89
+ status: 500
90
+ });
91
+ });
92
+ },
93
+ method: 'post',
94
+ path: PLUGIN_API_ENDPOINT_GENERATE
95
+ },
96
+ upload: {
97
+ handler: async (req)=>{
98
+ const data = await req.json?.();
99
+ const { options } = data;
100
+ const { instructionId, uploadCollectionSlug } = options;
101
+ const contextData = data.doc;
102
+ let instructions = {
103
+ 'model-id': '',
104
+ prompt: ''
105
+ };
106
+ if (instructionId) {
107
+ // @ts-expect-error
108
+ instructions = await req.payload.findByID({
109
+ id: instructionId,
110
+ collection: PLUGIN_INSTRUCTIONS_TABLE
111
+ });
112
+ }
113
+ const { prompt: promptTemplate = '' } = instructions;
114
+ const schemaPath = instructions['schema-path'];
115
+ registerEditorHelper(req.payload, schemaPath);
116
+ const text = await replacePlaceholders(promptTemplate, contextData);
117
+ const modelId = instructions['model-id'];
118
+ console.log('prompt text:', text);
119
+ const model = GenerationModels.find((model)=>model.id === modelId);
120
+ const settingsName = model.settings?.name;
121
+ const modelOptions = instructions[settingsName] || {};
122
+ console.log('modelOptions', modelOptions);
123
+ const result = await model.handler?.(text, modelOptions);
124
+ const assetData = await req.payload.create({
125
+ collection: uploadCollectionSlug,
126
+ data: result.data,
127
+ file: result.file
128
+ });
129
+ return new Response(JSON.stringify({
130
+ result: {
131
+ id: assetData.id,
132
+ alt: assetData.alt
133
+ }
134
+ }));
135
+ },
136
+ method: 'post',
137
+ path: PLUGIN_API_ENDPOINT_GENERATE_UPLOAD
138
+ }
139
+ };
140
+
141
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/endpoints/index.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport type { ActionMenuItems, Endpoints } from '../types.js'\n\nimport { lexicalSchema } from '../ai/schemas/lexical.schema.js'\nimport { GenerationModels } from '../ai/models/index.js'\nimport { defaultPrompts } from '../ai/prompts.js'\nimport {\n PLUGIN_API_ENDPOINT_GENERATE,\n PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n PLUGIN_INSTRUCTIONS_TABLE,\n PLUGIN_NAME,\n} from '../defaults.js'\nimport { registerEditorHelper } from '../libraries/handlebars/helpers.js'\nimport { handlebarsHelpersMap } from '../libraries/handlebars/helpersMap.js'\nimport { replacePlaceholders } from '../libraries/handlebars/replacePlaceholders.js'\n\nconst assignPrompt = async (\n action: ActionMenuItems,\n {\n type,\n actionParams,\n context,\n field,\n layout,\n systemPrompt = '',\n template,\n }: {\n actionParams: Record<any, any>\n context: object\n field: string\n layout: string\n systemPrompt: string\n template: string\n type: string\n },\n) => {\n const prompt = await replacePlaceholders(template, context)\n const toLexicalHTML = type === 'richText' ? handlebarsHelpersMap.toHTML.name : ''\n const assignedPrompts = {\n layout,\n prompt,\n system: systemPrompt,\n }\n\n if (action === 'Compose') {\n return assignedPrompts\n }\n\n const { layout: getLayout, system: getSystemPrompt } = defaultPrompts.find(\n (p) => p.name === action,\n )\n\n let updatedLayout = layout\n if (getLayout) {\n updatedLayout = getLayout()\n }\n\n const system = getSystemPrompt({\n ...(actionParams || {}),\n prompt,\n systemPrompt,\n })\n\n return {\n layout: updatedLayout,\n // TODO: revisit this toLexicalHTML\n prompt: await replacePlaceholders(`{{${toLexicalHTML} ${field}}}`, context),\n system,\n }\n}\n\nexport const endpoints: Endpoints = {\n textarea: {\n handler: async (req: PayloadRequest) => {\n const data = await req.json?.()\n\n const { locale = 'en', options } = data\n const { action, actionParams, instructionId } = options\n const contextData = data.doc\n\n if (!instructionId) {\n throw new Error(\n `Instruction ID is required for \"${PLUGIN_NAME}\" to work, please check your configuration`,\n )\n }\n\n const instructions = await req.payload.findByID({\n id: instructionId,\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n })\n\n const { collections } = req.payload.config\n const collection = collections.find(\n (collection) => collection.slug === PLUGIN_INSTRUCTIONS_TABLE,\n )\n\n const { editorConfig: { schema: editorSchema = lexicalSchema() } = {} } =\n collection.custom || {}\n\n const { prompt: promptTemplate = '' } = instructions\n\n const schemaPath = instructions['schema-path'] as string\n const fieldName = schemaPath?.split('.').pop()\n\n registerEditorHelper(req.payload, schemaPath)\n\n const { defaultLocale, locales = [] } = req.payload.config.localization || {}\n const localeData = locales.find((l) => {\n return l.code === locale\n })\n\n const localeInfo = localeData?.label[defaultLocale] || locale\n\n //TODO: remove this\n const opt = {\n locale: localeInfo,\n modelId: instructions['model-id'],\n }\n\n const model = GenerationModels.find((model) => model.id === opt.modelId)\n const settingsName = model.settings?.name\n const modelOptions = instructions[settingsName] as {\n layout: string\n system: string\n }\n\n const prompts = await assignPrompt(action, {\n type: instructions['field-type'] as string,\n actionParams,\n context: contextData,\n field: fieldName,\n layout: modelOptions.layout,\n systemPrompt: modelOptions.system,\n template: promptTemplate as string,\n })\n\n console.log('Running handler with prompts:', prompts)\n return model\n .handler?.(prompts.prompt, {\n ...modelOptions,\n ...opt,\n editorSchema,\n layout: prompts.layout,\n system: prompts.system,\n })\n .catch((error) => {\n console.error('Error: endpoint - generating text:', error)\n return new Response(JSON.stringify(error.message), { status: 500 })\n })\n },\n method: 'post',\n path: PLUGIN_API_ENDPOINT_GENERATE,\n },\n upload: {\n handler: async (req: PayloadRequest) => {\n const data = await req.json?.()\n\n const { options } = data\n const { instructionId, uploadCollectionSlug } = options\n const contextData = data.doc\n\n let instructions = { 'model-id': '', prompt: '' }\n\n if (instructionId) {\n // @ts-expect-error\n instructions = await req.payload.findByID({\n id: instructionId,\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n })\n }\n\n const { prompt: promptTemplate = '' } = instructions\n const schemaPath = instructions['schema-path']\n\n registerEditorHelper(req.payload, schemaPath)\n\n const text = await replacePlaceholders(promptTemplate, contextData)\n const modelId = instructions['model-id']\n console.log('prompt text:', text)\n\n const model = GenerationModels.find((model) => model.id === modelId)\n const settingsName = model.settings?.name\n const modelOptions = instructions[settingsName] || {}\n console.log('modelOptions', modelOptions)\n\n const result = await model.handler?.(text, modelOptions)\n\n const assetData = await req.payload.create({\n collection: uploadCollectionSlug,\n data: result.data,\n file: result.file,\n })\n\n return new Response(\n JSON.stringify({\n result: {\n id: assetData.id,\n alt: assetData.alt,\n },\n }),\n )\n },\n method: 'post',\n path: PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n },\n}\n"],"names":["lexicalSchema","GenerationModels","defaultPrompts","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_NAME","registerEditorHelper","handlebarsHelpersMap","replacePlaceholders","assignPrompt","action","type","actionParams","context","field","layout","systemPrompt","template","prompt","toLexicalHTML","toHTML","name","assignedPrompts","system","getLayout","getSystemPrompt","find","p","updatedLayout","endpoints","textarea","handler","req","data","json","locale","options","instructionId","contextData","doc","Error","instructions","payload","findByID","id","collection","collections","config","slug","editorConfig","schema","editorSchema","custom","promptTemplate","schemaPath","fieldName","split","pop","defaultLocale","locales","localization","localeData","l","code","localeInfo","label","opt","modelId","model","settingsName","settings","modelOptions","prompts","console","log","catch","error","Response","JSON","stringify","message","status","method","path","upload","uploadCollectionSlug","text","result","assetData","create","file","alt"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { LexicalEditorFeatureClient } from '../fields/LexicalEditor/feature.client.js';
2
+ export { InstructionsProvider } from '../providers/InstructionsProvider/InstructionsProvider.js';
3
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { LexicalEditorFeatureClient } from '../fields/LexicalEditor/feature.client.js';
2
+ export { InstructionsProvider } from '../providers/InstructionsProvider/InstructionsProvider.js';
3
+
4
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export { LexicalEditorFeatureClient } from '../fields/LexicalEditor/feature.client.js'\nexport { InstructionsProvider } from '../providers/InstructionsProvider/InstructionsProvider.js'\n"],"names":["LexicalEditorFeatureClient","InstructionsProvider"],"mappings":"AAAA,SAASA,0BAA0B,QAAQ,4CAA2C;AACtF,SAASC,oBAAoB,QAAQ,4DAA2D"}
@@ -0,0 +1,4 @@
1
+ export { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js';
2
+ export { SelectField } from '../fields/SelectField/SelectField.js';
3
+ export { ComposeField } from '../fields/ComposeField/ComposeField.js';
4
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/exports/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js';
2
+ export { SelectField } from '../fields/SelectField/SelectField.js';
3
+ export { ComposeField } from '../fields/ComposeField/ComposeField.js';
4
+
5
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exports/fields.ts"],"sourcesContent":["export { PromptEditorField } from '../fields/PromptEditorField/PromptEditorField.js'\nexport { SelectField } from '../fields/SelectField/SelectField.js'\nexport { ComposeField } from '../fields/ComposeField/ComposeField.js'\n"],"names":["PromptEditorField","SelectField","ComposeField"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,mDAAkD;AACpF,SAASC,WAAW,QAAQ,uCAAsC;AAClE,SAASC,YAAY,QAAQ,yCAAwC"}
@@ -0,0 +1,3 @@
1
+ export type { payloadAiPlugin } from '../plugin.ts';
2
+ export type { PluginConfig } from '../types.ts';
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exports/types.ts"],"sourcesContent":["export type { payloadAiPlugin } from '../plugin.ts'\nexport type { PluginConfig } from '../types.ts'\n"],"names":[],"mappings":"AACA,WAA+C"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { FieldDescriptionClientProps } from 'payload';
3
+ export declare const ComposeField: React.FC<FieldDescriptionClientProps>;
4
+ //# sourceMappingURL=ComposeField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeField.d.ts","sourceRoot":"","sources":["../../../src/fields/ComposeField/ComposeField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAErD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAO9D,CAAA"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useFieldProps } from '@payloadcms/ui';
4
+ import React from 'react';
5
+ import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
6
+ import { Compose } from '../../ui/Compose/Compose.js';
7
+ export const ComposeField = (props)=>{
8
+ const { schemaPath } = useFieldProps();
9
+ const { id: instructionId } = useInstructions({
10
+ path: schemaPath
11
+ });
12
+ return /*#__PURE__*/ _jsx(Compose, {
13
+ descriptionProps: props,
14
+ instructionId: instructionId
15
+ });
16
+ };
17
+
18
+ //# sourceMappingURL=ComposeField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/ComposeField/ComposeField.tsx"],"sourcesContent":["'use client'\n\nimport { useFieldProps } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { Compose } from '../../ui/Compose/Compose.js'\nimport { FieldDescriptionClientProps } from 'payload'\n\nexport const ComposeField: React.FC<FieldDescriptionClientProps> = (props) => {\n const { schemaPath } = useFieldProps()\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n return <Compose descriptionProps={props} instructionId={instructionId} />\n}\n"],"names":["useFieldProps","React","useInstructions","Compose","ComposeField","props","schemaPath","id","instructionId","path","descriptionProps"],"mappings":"AAAA;;AAEA,SAASA,aAAa,QAAQ,iBAAgB;AAC9C,OAAOC,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,OAAO,QAAQ,8BAA6B;AAGrD,OAAO,MAAMC,eAAsD,CAACC;IAClE,MAAM,EAAEC,UAAU,EAAE,GAAGN;IACvB,MAAM,EAAEO,IAAIC,aAAa,EAAE,GAAGN,gBAAgB;QAC5CO,MAAMH;IACR;IAEA,qBAAO,KAACH;QAAQO,kBAAkBL;QAAOG,eAAeA;;AAC1D,EAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const ComposeFeatureComponent: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ComposeFeatureComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeFeatureComponent.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/ComposeFeatureComponent.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,+CAQnC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useFieldProps } from '@payloadcms/ui';
3
+ import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
4
+ import { Compose } from '../../ui/Compose/Compose.js';
5
+ export const ComposeFeatureComponent = ()=>{
6
+ const { schemaPath } = useFieldProps();
7
+ const { id: instructionId } = useInstructions({
8
+ path: schemaPath
9
+ });
10
+ return /*#__PURE__*/ _jsx(Compose, {
11
+ instructionId: instructionId
12
+ });
13
+ };
14
+
15
+ //# sourceMappingURL=ComposeFeatureComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/LexicalEditor/ComposeFeatureComponent.tsx"],"sourcesContent":["import { useFieldProps } from '@payloadcms/ui'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { Compose } from '../../ui/Compose/Compose.js'\n\nexport const ComposeFeatureComponent = () => {\n const { schemaPath } = useFieldProps()\n\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n return <Compose instructionId={instructionId} />\n}\n"],"names":["useFieldProps","useInstructions","Compose","ComposeFeatureComponent","schemaPath","id","instructionId","path"],"mappings":";AAAA,SAASA,aAAa,QAAQ,iBAAgB;AAE9C,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,OAAO,QAAQ,8BAA6B;AAErD,OAAO,MAAMC,0BAA0B;IACrC,MAAM,EAAEC,UAAU,EAAE,GAAGJ;IAEvB,MAAM,EAAEK,IAAIC,aAAa,EAAE,GAAGL,gBAAgB;QAC5CM,MAAMH;IACR;IAEA,qBAAO,KAACF;QAAQI,eAAeA;;AACjC,EAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const LexicalEditorFeatureClient: import("@payloadcms/richtext-lexical").FeatureProviderProviderClient<undefined, undefined>;
2
+ //# sourceMappingURL=feature.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/feature.client.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,0BAA0B,4FAOrC,CAAA"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { createClientFeature } from '@payloadcms/richtext-lexical/client';
3
+ import { ComposeFeatureComponent } from './ComposeFeatureComponent.js';
4
+ export const LexicalEditorFeatureClient = createClientFeature({
5
+ plugins: [
6
+ {
7
+ Component: ComposeFeatureComponent,
8
+ position: 'belowContainer'
9
+ }
10
+ ]
11
+ });
12
+
13
+ //# sourceMappingURL=feature.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/LexicalEditor/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { createClientFeature } from '@payloadcms/richtext-lexical/client'\n\nimport { ComposeFeatureComponent } from './ComposeFeatureComponent.js'\n\nexport const LexicalEditorFeatureClient = createClientFeature({\n plugins: [\n {\n Component: ComposeFeatureComponent,\n position: 'belowContainer',\n },\n ],\n})\n"],"names":["createClientFeature","ComposeFeatureComponent","LexicalEditorFeatureClient","plugins","Component","position"],"mappings":"AAAA;AAEA,SAASA,mBAAmB,QAAQ,sCAAqC;AAEzE,SAASC,uBAAuB,QAAQ,+BAA8B;AAEtE,OAAO,MAAMC,6BAA6BF,oBAAoB;IAC5DG,SAAS;QACP;YACEC,WAAWH;YACXI,UAAU;QACZ;KACD;AACH,GAAE"}
@@ -0,0 +1,2 @@
1
+ export declare const PayloadAiPluginLexicalEditorFeature: import("@payloadcms/richtext-lexical").FeatureProviderProviderServer<undefined, undefined, undefined>;
2
+ //# sourceMappingURL=feature.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.server.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/feature.server.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mCAAmC,uGAK9C,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { createServerFeature } from '@payloadcms/richtext-lexical';
2
+ import { PLUGIN_LEXICAL_EDITOR_FEATURE } from '../../defaults.js';
3
+ import { isPluginActivated } from '../../utilities/isPluginActivated.js';
4
+ const isActivated = isPluginActivated();
5
+ export const PayloadAiPluginLexicalEditorFeature = createServerFeature({
6
+ feature: {
7
+ ClientFeature: isActivated ? '@ai-stack/payloadcms/client#LexicalEditorFeatureClient' : null
8
+ },
9
+ key: PLUGIN_LEXICAL_EDITOR_FEATURE
10
+ });
11
+
12
+ //# sourceMappingURL=feature.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/LexicalEditor/feature.server.ts"],"sourcesContent":["import { createServerFeature } from '@payloadcms/richtext-lexical'\n\nimport { PLUGIN_LEXICAL_EDITOR_FEATURE } from '../../defaults.js'\nimport { isPluginActivated } from '../../utilities/isPluginActivated.js'\n\nconst isActivated = isPluginActivated()\n\nexport const PayloadAiPluginLexicalEditorFeature = createServerFeature({\n feature: {\n ClientFeature: isActivated ? '@ai-stack/payloadcms/client#LexicalEditorFeatureClient' : null,\n },\n key: PLUGIN_LEXICAL_EDITOR_FEATURE,\n})\n"],"names":["createServerFeature","PLUGIN_LEXICAL_EDITOR_FEATURE","isPluginActivated","isActivated","PayloadAiPluginLexicalEditorFeature","feature","ClientFeature","key"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,+BAA8B;AAElE,SAASC,6BAA6B,QAAQ,oBAAmB;AACjE,SAASC,iBAAiB,QAAQ,uCAAsC;AAExE,MAAMC,cAAcD;AAEpB,OAAO,MAAME,sCAAsCJ,oBAAoB;IACrEK,SAAS;QACPC,eAAeH,cAAc,2DAA2D;IAC1F;IACAI,KAAKN;AACP,GAAE"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TextareaFieldClientProps } from 'payload';
3
+ export declare const PromptEditorField: React.FC<TextareaFieldClientProps>;
4
+ //# sourceMappingURL=PromptEditorField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptEditorField.d.ts","sourceRoot":"","sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGlD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA4BhE,CAAA"}
@@ -0,0 +1,41 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { FieldLabel, useField, useFieldProps } from '@payloadcms/ui';
4
+ import React from 'react';
5
+ import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
6
+ import { AutocompleteTextField } from '../../libraries/autocomplete/AutocompleteTextArea.js';
7
+ //NOTE: HMR does not work for plugin components anymore, I think it has to do with importMap/ string path
8
+ export const PromptEditorField = (props)=>{
9
+ const { field } = props;
10
+ const { path: pathFromContext } = useFieldProps();
11
+ const { setValue, value } = useField({
12
+ path: pathFromContext
13
+ });
14
+ const { promptEditorSuggestions } = useInstructions({
15
+ path: pathFromContext
16
+ });
17
+ return /*#__PURE__*/ _jsxs("div", {
18
+ className: "field-type textarea",
19
+ children: [
20
+ /*#__PURE__*/ _jsx(FieldLabel, {
21
+ field: field,
22
+ label: field.label
23
+ }),
24
+ /*#__PURE__*/ _jsx(AutocompleteTextField, {
25
+ changeOnSelect: (trigger, selected)=>{
26
+ return trigger + selected + ' }}';
27
+ },
28
+ onChange: (val)=>{
29
+ setValue(val);
30
+ },
31
+ options: promptEditorSuggestions,
32
+ trigger: [
33
+ '{{ '
34
+ ],
35
+ value: value
36
+ })
37
+ ]
38
+ });
39
+ };
40
+
41
+ //# sourceMappingURL=PromptEditorField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"sourcesContent":["'use client'\n\nimport { FieldLabel, useField, useFieldProps } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { AutocompleteTextField } from '../../libraries/autocomplete/AutocompleteTextArea.js'\nimport { TextareaFieldClientProps } from 'payload'\n\n//NOTE: HMR does not work for plugin components anymore, I think it has to do with importMap/ string path\nexport const PromptEditorField: React.FC<TextareaFieldClientProps> = (props) => {\n const { field } = props\n const { path: pathFromContext } = useFieldProps()\n\n const { setValue, value } = useField<string>({\n path: pathFromContext,\n })\n\n const { promptEditorSuggestions } = useInstructions({\n path: pathFromContext,\n })\n\n return (\n <div className=\"field-type textarea\">\n <FieldLabel field={field} label={field.label} />\n <AutocompleteTextField\n changeOnSelect={(trigger, selected) => {\n return trigger + selected + ' }}'\n }}\n onChange={(val: string) => {\n setValue(val)\n }}\n options={promptEditorSuggestions}\n trigger={['{{ ']}\n value={value}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","useField","useFieldProps","React","useInstructions","AutocompleteTextField","PromptEditorField","props","field","path","pathFromContext","setValue","value","promptEditorSuggestions","div","className","label","changeOnSelect","trigger","selected","onChange","val","options"],"mappings":"AAAA;;AAEA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,aAAa,QAAQ,iBAAgB;AACpE,OAAOC,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,qBAAqB,QAAQ,uDAAsD;AAG5F,yGAAyG;AACzG,OAAO,MAAMC,oBAAwD,CAACC;IACpE,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,MAAMC,eAAe,EAAE,GAAGR;IAElC,MAAM,EAAES,QAAQ,EAAEC,KAAK,EAAE,GAAGX,SAAiB;QAC3CQ,MAAMC;IACR;IAEA,MAAM,EAAEG,uBAAuB,EAAE,GAAGT,gBAAgB;QAClDK,MAAMC;IACR;IAEA,qBACE,MAACI;QAAIC,WAAU;;0BACb,KAACf;gBAAWQ,OAAOA;gBAAOQ,OAAOR,MAAMQ,KAAK;;0BAC5C,KAACX;gBACCY,gBAAgB,CAACC,SAASC;oBACxB,OAAOD,UAAUC,WAAW;gBAC9B;gBACAC,UAAU,CAACC;oBACTV,SAASU;gBACX;gBACAC,SAAST;gBACTK,SAAS;oBAAC;iBAAM;gBAChBN,OAAOA;;;;AAIf,EAAC"}
@@ -0,0 +1,10 @@
1
+ import type { SelectFieldClientProps } from 'payload';
2
+ export declare const SelectField: (props: {
3
+ filterByField: string;
4
+ options: {
5
+ fields: string[];
6
+ label: string;
7
+ value: string;
8
+ }[];
9
+ } & SelectFieldClientProps) => import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=SelectField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../../../src/fields/SelectField/SelectField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMnE,eAAO,MAAM,WAAW,UACf;IACL,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC9D,GAAG,sBAAsB,4CAqC3B,CAAA"}
@@ -0,0 +1,41 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { SelectInput, useField, useFieldProps } from '@payloadcms/ui';
4
+ import React, { useEffect, useState } from 'react';
5
+ // Use to filter model options in settings based on field types
6
+ export const SelectField = (props)=>{
7
+ const { field, filterByField, options } = props;
8
+ const { path } = useFieldProps();
9
+ const { value: relatedField } = useField({
10
+ path: filterByField
11
+ });
12
+ const [filterOptions, setFilterOptions] = useState([]);
13
+ useEffect(()=>{
14
+ if (!Array.isArray(options)) return;
15
+ const opts = options.filter((option)=>{
16
+ if (!relatedField || !option.fields) return true;
17
+ if (Array.isArray(option.fields)) {
18
+ return option.fields.includes(relatedField);
19
+ }
20
+ });
21
+ setFilterOptions(opts);
22
+ }, [
23
+ relatedField,
24
+ options
25
+ ]);
26
+ const { setValue, value: selectValue } = useField({
27
+ path
28
+ });
29
+ return /*#__PURE__*/ _jsx(SelectInput, {
30
+ label: field.label,
31
+ name: path,
32
+ onChange: (e)=>{
33
+ setValue(e.value);
34
+ },
35
+ options: filterOptions,
36
+ path: path,
37
+ value: selectValue
38
+ });
39
+ };
40
+
41
+ //# sourceMappingURL=SelectField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/SelectField/SelectField.tsx"],"sourcesContent":["'use client'\n\nimport type { OptionObject, SelectFieldClientProps } from 'payload'\n\nimport { SelectInput, useField, useFieldProps } from '@payloadcms/ui'\nimport React, { useEffect, useState } from 'react'\n\n// Use to filter model options in settings based on field types\nexport const SelectField = (\n props: {\n filterByField: string\n options: { fields: string[]; label: string; value: string }[]\n } & SelectFieldClientProps,\n) => {\n const { field, filterByField, options } = props\n const { path } = useFieldProps()\n const { value: relatedField } = useField<string>({\n path: filterByField,\n })\n\n const [filterOptions, setFilterOptions] = useState<OptionObject[]>([])\n\n useEffect(() => {\n if (!Array.isArray(options)) return\n\n const opts = options.filter((option) => {\n if (!relatedField || !option.fields) return true\n\n if (Array.isArray(option.fields)) {\n return option.fields.includes(relatedField)\n }\n })\n setFilterOptions(opts)\n }, [relatedField, options])\n\n const { setValue, value: selectValue } = useField<string>({ path })\n\n return (\n <SelectInput\n label={field.label}\n name={path}\n onChange={(e: OptionObject) => {\n setValue(e.value)\n }}\n options={filterOptions}\n path={path}\n value={selectValue}\n />\n )\n}\n"],"names":["SelectInput","useField","useFieldProps","React","useEffect","useState","SelectField","props","field","filterByField","options","path","value","relatedField","filterOptions","setFilterOptions","Array","isArray","opts","filter","option","fields","includes","setValue","selectValue","label","name","onChange","e"],"mappings":"AAAA;;AAIA,SAASA,WAAW,EAAEC,QAAQ,EAAEC,aAAa,QAAQ,iBAAgB;AACrE,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,+DAA+D;AAC/D,OAAO,MAAMC,cAAc,CACzBC;IAKA,MAAM,EAAEC,KAAK,EAAEC,aAAa,EAAEC,OAAO,EAAE,GAAGH;IAC1C,MAAM,EAAEI,IAAI,EAAE,GAAGT;IACjB,MAAM,EAAEU,OAAOC,YAAY,EAAE,GAAGZ,SAAiB;QAC/CU,MAAMF;IACR;IAEA,MAAM,CAACK,eAAeC,iBAAiB,GAAGV,SAAyB,EAAE;IAErED,UAAU;QACR,IAAI,CAACY,MAAMC,OAAO,CAACP,UAAU;QAE7B,MAAMQ,OAAOR,QAAQS,MAAM,CAAC,CAACC;YAC3B,IAAI,CAACP,gBAAgB,CAACO,OAAOC,MAAM,EAAE,OAAO;YAE5C,IAAIL,MAAMC,OAAO,CAACG,OAAOC,MAAM,GAAG;gBAChC,OAAOD,OAAOC,MAAM,CAACC,QAAQ,CAACT;YAChC;QACF;QACAE,iBAAiBG;IACnB,GAAG;QAACL;QAAcH;KAAQ;IAE1B,MAAM,EAAEa,QAAQ,EAAEX,OAAOY,WAAW,EAAE,GAAGvB,SAAiB;QAAEU;IAAK;IAEjE,qBACE,KAACX;QACCyB,OAAOjB,MAAMiB,KAAK;QAClBC,MAAMf;QACNgB,UAAU,CAACC;YACTL,SAASK,EAAEhB,KAAK;QAClB;QACAF,SAASI;QACTH,MAAMA;QACNC,OAAOY;;AAGb,EAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license This software is licensed under the MIT License. For commercial use,
3
+ * redistribution, or embedding in proprietary systems, please refer to the
4
+ * COMMERCIAL-LICENSE.md. Unauthorized commercial use or resale of modified versions
5
+ * without appropriate licensing is prohibited.
6
+ */
7
+ export { payloadAiPlugin } from './plugin.js';
8
+ export { PayloadAiPluginLexicalEditorFeature } from './fields/LexicalEditor/feature.server.js';
9
+ export { LexicalBaseNode } from './ai/schemas/lexical.schema.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAA;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license This software is licensed under the MIT License. For commercial use,
3
+ * redistribution, or embedding in proprietary systems, please refer to the
4
+ * COMMERCIAL-LICENSE.md. Unauthorized commercial use or resale of modified versions
5
+ * without appropriate licensing is prohibited.
6
+ */ export { payloadAiPlugin } from './plugin.js';
7
+ export { PayloadAiPluginLexicalEditorFeature } from './fields/LexicalEditor/feature.server.js';
8
+ export { LexicalBaseNode } from './ai/schemas/lexical.schema.js';
9
+
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @license This software is licensed under the MIT License. For commercial use,\n * redistribution, or embedding in proprietary systems, please refer to the\n * COMMERCIAL-LICENSE.md. Unauthorized commercial use or resale of modified versions\n * without appropriate licensing is prohibited.\n */\n\nexport { payloadAiPlugin } from './plugin.js'\nexport { PayloadAiPluginLexicalEditorFeature } from './fields/LexicalEditor/feature.server.js'\nexport { LexicalBaseNode } from './ai/schemas/lexical.schema.js'\n"],"names":["payloadAiPlugin","PayloadAiPluginLexicalEditorFeature","LexicalBaseNode"],"mappings":"AAAA;;;;;CAKC,GAED,SAASA,eAAe,QAAQ,cAAa;AAC7C,SAASC,mCAAmC,QAAQ,2CAA0C;AAC9F,SAASC,eAAe,QAAQ,iCAAgC"}
package/dist/init.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import type { Payload } from 'payload';
2
+ import type { PluginConfig } from './types.js';
3
+ export declare const init: (payload: Payload, fieldSchemaPaths: any, pluginConfig: PluginConfig) => Promise<void>;
4
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAMtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,IAAI,YAAmB,OAAO,uCAAkC,YAAY,kBA2FxF,CAAA"}