@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.
- package/LICENSE.md +21 -0
- package/README.md +137 -0
- package/dist/ai/analyse.d.ts +2 -0
- package/dist/ai/analyse.d.ts.map +1 -0
- package/dist/ai/analyse.js +3 -0
- package/dist/ai/analyse.js.map +1 -0
- package/dist/ai/models/anthropic/generateRichText.d.ts +2 -0
- package/dist/ai/models/anthropic/generateRichText.d.ts.map +1 -0
- package/dist/ai/models/anthropic/generateRichText.js +38 -0
- package/dist/ai/models/anthropic/generateRichText.js.map +1 -0
- package/dist/ai/models/anthropic/index.d.ts +3 -0
- package/dist/ai/models/anthropic/index.d.ts.map +1 -0
- package/dist/ai/models/anthropic/index.js +112 -0
- package/dist/ai/models/anthropic/index.js.map +1 -0
- package/dist/ai/models/elevenLabs/generateVoice.d.ts +10 -0
- package/dist/ai/models/elevenLabs/generateVoice.d.ts.map +1 -0
- package/dist/ai/models/elevenLabs/generateVoice.js +20 -0
- package/dist/ai/models/elevenLabs/generateVoice.js.map +1 -0
- package/dist/ai/models/elevenLabs/index.d.ts +3 -0
- package/dist/ai/models/elevenLabs/index.d.ts.map +1 -0
- package/dist/ai/models/elevenLabs/index.js +129 -0
- package/dist/ai/models/elevenLabs/index.js.map +1 -0
- package/dist/ai/models/elevenLabs/voices.d.ts +4 -0
- package/dist/ai/models/elevenLabs/voices.d.ts.map +1 -0
- package/dist/ai/models/elevenLabs/voices.js +24 -0
- package/dist/ai/models/elevenLabs/voices.js.map +1 -0
- package/dist/ai/models/example-prompt-rich-text.md +47 -0
- package/dist/ai/models/example.d.ts +73 -0
- package/dist/ai/models/example.d.ts.map +1 -0
- package/dist/ai/models/example.js +126 -0
- package/dist/ai/models/example.js.map +1 -0
- package/dist/ai/models/index.d.ts +3 -0
- package/dist/ai/models/index.d.ts.map +1 -0
- package/dist/ai/models/index.js +11 -0
- package/dist/ai/models/index.js.map +1 -0
- package/dist/ai/models/openai/generateImage.d.ts +10 -0
- package/dist/ai/models/openai/generateImage.d.ts.map +1 -0
- package/dist/ai/models/openai/generateImage.js +20 -0
- package/dist/ai/models/openai/generateImage.js.map +1 -0
- package/dist/ai/models/openai/generateRichText.d.ts +2 -0
- package/dist/ai/models/openai/generateRichText.d.ts.map +1 -0
- package/dist/ai/models/openai/generateRichText.js +38 -0
- package/dist/ai/models/openai/generateRichText.js.map +1 -0
- package/dist/ai/models/openai/generateVoice.d.ts +7 -0
- package/dist/ai/models/openai/generateVoice.d.ts.map +1 -0
- package/dist/ai/models/openai/generateVoice.js +19 -0
- package/dist/ai/models/openai/generateVoice.js.map +1 -0
- package/dist/ai/models/openai/index.d.ts +3 -0
- package/dist/ai/models/openai/index.d.ts.map +1 -0
- package/dist/ai/models/openai/index.js +276 -0
- package/dist/ai/models/openai/index.js.map +1 -0
- package/dist/ai/prompts.d.ts +25 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +214 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/schemas/lexical.schema.d.ts +31 -0
- package/dist/ai/schemas/lexical.schema.d.ts.map +1 -0
- package/dist/ai/schemas/lexical.schema.js +102 -0
- package/dist/ai/schemas/lexical.schema.js.map +1 -0
- package/dist/ai/utils/generateFileNameByPrompt.d.ts +2 -0
- package/dist/ai/utils/generateFileNameByPrompt.d.ts.map +1 -0
- package/dist/ai/utils/generateFileNameByPrompt.js +21 -0
- package/dist/ai/utils/generateFileNameByPrompt.js.map +1 -0
- package/dist/ai/utils/generateSeedPrompt.d.ts +5 -0
- package/dist/ai/utils/generateSeedPrompt.d.ts.map +1 -0
- package/dist/ai/utils/generateSeedPrompt.js +23 -0
- package/dist/ai/utils/generateSeedPrompt.js.map +1 -0
- package/dist/collections/Instructions.d.ts +3 -0
- package/dist/collections/Instructions.d.ts.map +1 -0
- package/dist/collections/Instructions.js +109 -0
- package/dist/collections/Instructions.js.map +1 -0
- package/dist/defaults.d.ts +10 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +13 -0
- package/dist/defaults.js.map +1 -0
- package/dist/endpoints/index.d.ts +3 -0
- package/dist/endpoints/index.d.ts.map +1 -0
- package/dist/endpoints/index.js +141 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/exports/client.d.ts +3 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +4 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/fields.d.ts +4 -0
- package/dist/exports/fields.d.ts.map +1 -0
- package/dist/exports/fields.js +5 -0
- package/dist/exports/fields.js.map +1 -0
- package/dist/exports/types.d.ts +3 -0
- package/dist/exports/types.d.ts.map +1 -0
- package/dist/exports/types.js +3 -0
- package/dist/exports/types.js.map +1 -0
- package/dist/fields/ComposeField/ComposeField.d.ts +4 -0
- package/dist/fields/ComposeField/ComposeField.d.ts.map +1 -0
- package/dist/fields/ComposeField/ComposeField.js +18 -0
- package/dist/fields/ComposeField/ComposeField.js.map +1 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts +2 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +15 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -0
- package/dist/fields/LexicalEditor/feature.client.d.ts +2 -0
- package/dist/fields/LexicalEditor/feature.client.d.ts.map +1 -0
- package/dist/fields/LexicalEditor/feature.client.js +13 -0
- package/dist/fields/LexicalEditor/feature.client.js.map +1 -0
- package/dist/fields/LexicalEditor/feature.server.d.ts +2 -0
- package/dist/fields/LexicalEditor/feature.server.d.ts.map +1 -0
- package/dist/fields/LexicalEditor/feature.server.js +12 -0
- package/dist/fields/LexicalEditor/feature.server.js.map +1 -0
- package/dist/fields/PromptEditorField/PromptEditorField.d.ts +4 -0
- package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -0
- package/dist/fields/PromptEditorField/PromptEditorField.js +41 -0
- package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -0
- package/dist/fields/SelectField/SelectField.d.ts +10 -0
- package/dist/fields/SelectField/SelectField.d.ts.map +1 -0
- package/dist/fields/SelectField/SelectField.js +41 -0
- package/dist/fields/SelectField/SelectField.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +4 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +81 -0
- package/dist/init.js.map +1 -0
- package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts +8 -0
- package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts.map +1 -0
- package/dist/libraries/autocomplete/AutocompleteTextArea.js +437 -0
- package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +1 -0
- package/dist/libraries/autocomplete/AutocompleteTextArea.module.scss +35 -0
- package/dist/libraries/handlebars/asyncHandlebars.d.ts +2 -0
- package/dist/libraries/handlebars/asyncHandlebars.d.ts.map +1 -0
- package/dist/libraries/handlebars/asyncHandlebars.js +5 -0
- package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -0
- package/dist/libraries/handlebars/helpers.d.ts +2 -0
- package/dist/libraries/handlebars/helpers.d.ts.map +1 -0
- package/dist/libraries/handlebars/helpers.js +22 -0
- package/dist/libraries/handlebars/helpers.js.map +1 -0
- package/dist/libraries/handlebars/helpersMap.d.ts +12 -0
- package/dist/libraries/handlebars/helpersMap.d.ts.map +1 -0
- package/dist/libraries/handlebars/helpersMap.js +13 -0
- package/dist/libraries/handlebars/helpersMap.js.map +1 -0
- package/dist/libraries/handlebars/replacePlaceholders.d.ts +2 -0
- package/dist/libraries/handlebars/replacePlaceholders.d.ts.map +1 -0
- package/dist/libraries/handlebars/replacePlaceholders.js +8 -0
- package/dist/libraries/handlebars/replacePlaceholders.js.map +1 -0
- package/dist/plugin.d.ts +5 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +121 -0
- package/dist/plugin.js.map +1 -0
- package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +6 -0
- package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -0
- package/dist/providers/InstructionsProvider/InstructionsProvider.js +31 -0
- package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -0
- package/dist/providers/InstructionsProvider/useInstructions.d.ts +4 -0
- package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +1 -0
- package/dist/providers/InstructionsProvider/useInstructions.js +38 -0
- package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -0
- package/dist/styles.d.js +2 -0
- package/dist/styles.d.js.map +1 -0
- package/dist/translations/en.json +4 -0
- package/dist/translations/es.json +4 -0
- package/dist/translations/fa.json +4 -0
- package/dist/translations/fr.json +4 -0
- package/dist/translations/index.d.ts +38 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +36 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/translations/pl.json +4 -0
- package/dist/translations/ru.json +4 -0
- package/dist/translations/translation-schema.json +16 -0
- package/dist/translations/uk.json +4 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/Compose/Compose.d.ts +9 -0
- package/dist/ui/Compose/Compose.d.ts.map +1 -0
- package/dist/ui/Compose/Compose.js +176 -0
- package/dist/ui/Compose/Compose.js.map +1 -0
- package/dist/ui/Compose/UndoRedoActions.d.ts +4 -0
- package/dist/ui/Compose/UndoRedoActions.d.ts.map +1 -0
- package/dist/ui/Compose/UndoRedoActions.js +56 -0
- package/dist/ui/Compose/UndoRedoActions.js.map +1 -0
- package/dist/ui/Compose/compose.module.scss +19 -0
- package/dist/ui/Compose/hooks/menu/Item.d.ts +5 -0
- package/dist/ui/Compose/hooks/menu/Item.d.ts.map +1 -0
- package/dist/ui/Compose/hooks/menu/Item.js +32 -0
- package/dist/ui/Compose/hooks/menu/Item.js.map +1 -0
- package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts +4 -0
- package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts.map +1 -0
- package/dist/ui/Compose/hooks/menu/TranslateMenu.js +78 -0
- package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -0
- package/dist/ui/Compose/hooks/menu/items.d.ts +9 -0
- package/dist/ui/Compose/hooks/menu/items.d.ts.map +1 -0
- package/dist/ui/Compose/hooks/menu/items.js +12 -0
- package/dist/ui/Compose/hooks/menu/items.js.map +1 -0
- package/dist/ui/Compose/hooks/menu/itemsMap.d.ts +11 -0
- package/dist/ui/Compose/hooks/menu/itemsMap.d.ts.map +1 -0
- package/dist/ui/Compose/hooks/menu/itemsMap.js +68 -0
- package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -0
- package/dist/ui/Compose/hooks/menu/menu.module.scss +109 -0
- package/dist/ui/Compose/hooks/menu/useMenu.d.ts +11 -0
- package/dist/ui/Compose/hooks/menu/useMenu.d.ts.map +1 -0
- package/dist/ui/Compose/hooks/menu/useMenu.js +93 -0
- package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -0
- package/dist/ui/Compose/hooks/useGenerate.d.ts +11 -0
- package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -0
- package/dist/ui/Compose/hooks/useGenerate.js +175 -0
- package/dist/ui/Compose/hooks/useGenerate.js.map +1 -0
- package/dist/ui/Compose/hooks/useHistory.d.ts +9 -0
- package/dist/ui/Compose/hooks/useHistory.d.ts.map +1 -0
- package/dist/ui/Compose/hooks/useHistory.js +171 -0
- package/dist/ui/Compose/hooks/useHistory.js.map +1 -0
- package/dist/ui/Icons/Icons.d.ts +45 -0
- package/dist/ui/Icons/Icons.d.ts.map +1 -0
- package/dist/ui/Icons/Icons.js +154 -0
- package/dist/ui/Icons/Icons.js.map +1 -0
- package/dist/ui/Icons/LottieAnimation.d.ts +5 -0
- package/dist/ui/Icons/LottieAnimation.d.ts.map +1 -0
- package/dist/ui/Icons/LottieAnimation.js +100 -0
- package/dist/ui/Icons/LottieAnimation.js.map +1 -0
- package/dist/ui/Icons/icons.module.css +26 -0
- package/dist/utilities/getFieldBySchemaPath.d.ts +3 -0
- package/dist/utilities/getFieldBySchemaPath.d.ts.map +1 -0
- package/dist/utilities/getFieldBySchemaPath.js +37 -0
- package/dist/utilities/getFieldBySchemaPath.js.map +1 -0
- package/dist/utilities/getFieldInfo.d.ts +3 -0
- package/dist/utilities/getFieldInfo.d.ts.map +1 -0
- package/dist/utilities/getFieldInfo.js +14 -0
- package/dist/utilities/getFieldInfo.js.map +1 -0
- package/dist/utilities/isPluginActivated.d.ts +2 -0
- package/dist/utilities/isPluginActivated.d.ts.map +1 -0
- package/dist/utilities/isPluginActivated.js +5 -0
- package/dist/utilities/isPluginActivated.js.map +1 -0
- package/dist/utilities/jsonToZod.d.ts +3 -0
- package/dist/utilities/jsonToZod.d.ts.map +1 -0
- package/dist/utilities/jsonToZod.js +33 -0
- package/dist/utilities/jsonToZod.js.map +1 -0
- package/dist/utilities/lexicalToHTML.d.ts +4 -0
- package/dist/utilities/lexicalToHTML.d.ts.map +1 -0
- package/dist/utilities/lexicalToHTML.js +11 -0
- package/dist/utilities/lexicalToHTML.js.map +1 -0
- package/dist/utilities/setSafeLexicalState.d.ts +5 -0
- package/dist/utilities/setSafeLexicalState.d.ts.map +1 -0
- package/dist/utilities/setSafeLexicalState.js +20 -0
- package/dist/utilities/setSafeLexicalState.js.map +1 -0
- package/dist/utilities/updateFieldsConfig.d.ts +8 -0
- package/dist/utilities/updateFieldsConfig.d.ts.map +1 -0
- package/dist/utilities/updateFieldsConfig.js +89 -0
- package/dist/utilities/updateFieldsConfig.js.map +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/libraries/handlebars/helpers.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB,yCAqBhC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { getFieldInfo } from '../../utilities/getFieldInfo.js';
|
|
2
|
+
import { lexicalToHTML } from '../../utilities/lexicalToHTML.js';
|
|
3
|
+
import { asyncHandlebars } from './asyncHandlebars.js';
|
|
4
|
+
import { handlebarsHelpersMap } from './helpersMap.js';
|
|
5
|
+
export const registerEditorHelper = (payload, schemaPath)=>{
|
|
6
|
+
//TODO: add autocomplete ability using handlebars template on PromptEditorField and include custom helpers in dropdown
|
|
7
|
+
let fieldInfo = getFieldInfo(payload.collections, schemaPath);
|
|
8
|
+
const schemaPathChunks = schemaPath.split('.');
|
|
9
|
+
asyncHandlebars.registerHelper(handlebarsHelpersMap.toHTML.name, async function(content, options) {
|
|
10
|
+
const collectionSlug = schemaPathChunks[0];
|
|
11
|
+
const { ids } = options;
|
|
12
|
+
for (const id of ids){
|
|
13
|
+
//TODO: Find a better way to get schemaPath of defined field in prompt editor
|
|
14
|
+
const path = `${collectionSlug}.${id}`;
|
|
15
|
+
fieldInfo = getFieldInfo(payload.collections, path);
|
|
16
|
+
}
|
|
17
|
+
const html = await lexicalToHTML(content, fieldInfo.editor?.editorConfig);
|
|
18
|
+
return new asyncHandlebars.SafeString(html);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/libraries/handlebars/helpers.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\n\nimport { getFieldInfo } from '../../utilities/getFieldInfo.js'\nimport { lexicalToHTML } from '../../utilities/lexicalToHTML.js'\nimport { asyncHandlebars } from './asyncHandlebars.js'\nimport { handlebarsHelpersMap } from './helpersMap.js'\n\nexport const registerEditorHelper = (payload, schemaPath) => {\n //TODO: add autocomplete ability using handlebars template on PromptEditorField and include custom helpers in dropdown\n\n let fieldInfo = getFieldInfo(payload.collections, schemaPath)\n const schemaPathChunks = schemaPath.split('.')\n\n asyncHandlebars.registerHelper(\n handlebarsHelpersMap.toHTML.name,\n async function (content: SerializedEditorState, options) {\n const collectionSlug = schemaPathChunks[0]\n const { ids } = options\n for (const id of ids) {\n //TODO: Find a better way to get schemaPath of defined field in prompt editor\n const path = `${collectionSlug}.${id}`\n fieldInfo = getFieldInfo(payload.collections, path)\n }\n\n const html = await lexicalToHTML(content, fieldInfo.editor?.editorConfig)\n return new asyncHandlebars.SafeString(html)\n },\n )\n}\n"],"names":["getFieldInfo","lexicalToHTML","asyncHandlebars","handlebarsHelpersMap","registerEditorHelper","payload","schemaPath","fieldInfo","collections","schemaPathChunks","split","registerHelper","toHTML","name","content","options","collectionSlug","ids","id","path","html","editor","editorConfig","SafeString"],"mappings":"AAEA,SAASA,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,aAAa,QAAQ,mCAAkC;AAChE,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,oBAAoB,QAAQ,kBAAiB;AAEtD,OAAO,MAAMC,uBAAuB,CAACC,SAASC;IAC5C,sHAAsH;IAEtH,IAAIC,YAAYP,aAAaK,QAAQG,WAAW,EAAEF;IAClD,MAAMG,mBAAmBH,WAAWI,KAAK,CAAC;IAE1CR,gBAAgBS,cAAc,CAC5BR,qBAAqBS,MAAM,CAACC,IAAI,EAChC,eAAgBC,OAA8B,EAAEC,OAAO;QACrD,MAAMC,iBAAiBP,gBAAgB,CAAC,EAAE;QAC1C,MAAM,EAAEQ,GAAG,EAAE,GAAGF;QAChB,KAAK,MAAMG,MAAMD,IAAK;YACpB,6EAA6E;YAC7E,MAAME,OAAO,CAAC,EAAEH,eAAe,CAAC,EAAEE,GAAG,CAAC;YACtCX,YAAYP,aAAaK,QAAQG,WAAW,EAAEW;QAChD;QAEA,MAAMC,OAAO,MAAMnB,cAAca,SAASP,UAAUc,MAAM,EAAEC;QAC5D,OAAO,IAAIpB,gBAAgBqB,UAAU,CAACH;IACxC;AAEJ,EAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type SupportedHelpers = 'toHTML' | 'toText';
|
|
2
|
+
interface HelperFieldConfig {
|
|
3
|
+
field: string;
|
|
4
|
+
name: string;
|
|
5
|
+
}
|
|
6
|
+
type HandlebarsHelpers = {
|
|
7
|
+
[K in SupportedHelpers]: HelperFieldConfig;
|
|
8
|
+
};
|
|
9
|
+
export declare const handlebarsHelpersMap: HandlebarsHelpers;
|
|
10
|
+
export declare const handlebarsHelpers: string[];
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=helpersMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpersMap.d.ts","sourceRoot":"","sources":["../../../src/libraries/handlebars/helpersMap.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE3C,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,KAAK,iBAAiB,GAAG;KACtB,CAAC,IAAI,gBAAgB,GAAG,iBAAiB;CAC3C,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,iBASlC,CAAA;AAED,eAAO,MAAM,iBAAiB,UAAoC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const handlebarsHelpersMap = {
|
|
2
|
+
toHTML: {
|
|
3
|
+
name: 'toHTML',
|
|
4
|
+
field: 'richText'
|
|
5
|
+
},
|
|
6
|
+
toText: {
|
|
7
|
+
name: 'toText',
|
|
8
|
+
field: '-'
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
export const handlebarsHelpers = Object.keys(handlebarsHelpersMap);
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=helpersMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/libraries/handlebars/helpersMap.ts"],"sourcesContent":["type SupportedHelpers = 'toHTML' | 'toText'\n\ninterface HelperFieldConfig {\n field: string\n name: string\n}\n\ntype HandlebarsHelpers = {\n [K in SupportedHelpers]: HelperFieldConfig\n}\n\nexport const handlebarsHelpersMap: HandlebarsHelpers = {\n toHTML: {\n name: 'toHTML',\n field: 'richText',\n },\n toText: {\n name: 'toText',\n field: '-',\n },\n}\n\nexport const handlebarsHelpers = Object.keys(handlebarsHelpersMap)\n"],"names":["handlebarsHelpersMap","toHTML","name","field","toText","handlebarsHelpers","Object","keys"],"mappings":"AAWA,OAAO,MAAMA,uBAA0C;IACrDC,QAAQ;QACNC,MAAM;QACNC,OAAO;IACT;IACAC,QAAQ;QACNF,MAAM;QACNC,OAAO;IACT;AACF,EAAC;AAED,OAAO,MAAME,oBAAoBC,OAAOC,IAAI,CAACP,sBAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replacePlaceholders.d.ts","sourceRoot":"","sources":["../../../src/libraries/handlebars/replacePlaceholders.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,WAAY,MAAM,UAAU,MAAM,QAEjE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/libraries/handlebars/replacePlaceholders.ts"],"sourcesContent":["import { asyncHandlebars } from './asyncHandlebars.js'\n\nexport const replacePlaceholders = (prompt: string, values: object) => {\n return asyncHandlebars.compile(prompt, { trackIds: true })(values)\n}\n"],"names":["asyncHandlebars","replacePlaceholders","prompt","values","compile","trackIds"],"mappings":"AAAA,SAASA,eAAe,QAAQ,uBAAsB;AAEtD,OAAO,MAAMC,sBAAsB,CAACC,QAAgBC;IAClD,OAAOH,gBAAgBI,OAAO,CAACF,QAAQ;QAAEG,UAAU;IAAK,GAAGF;AAC7D,EAAC"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAKrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAgB9C,QAAA,MAAM,eAAe,iBACJ,YAAY,sBACV,MAAM,KAAG,MAuGzB,CAAA;AAEH,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/plugin.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { deepMerge } from 'payload/shared';
|
|
2
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
3
|
+
import { lexicalSchema } from './ai/schemas/lexical.schema.js';
|
|
4
|
+
import { Instructions } from './collections/Instructions.js';
|
|
5
|
+
import { PLUGIN_INSTRUCTIONS_MAP_GLOBAL, PLUGIN_NAME } from './defaults.js';
|
|
6
|
+
import { endpoints } from './endpoints/index.js';
|
|
7
|
+
import { init } from './init.js';
|
|
8
|
+
import { translations } from './translations/index.js';
|
|
9
|
+
import { isPluginActivated } from './utilities/isPluginActivated.js';
|
|
10
|
+
import { updateFieldsConfig } from './utilities/updateFieldsConfig.js';
|
|
11
|
+
const defaultPluginConfig = {
|
|
12
|
+
generatePromptOnInit: true,
|
|
13
|
+
collections: {}
|
|
14
|
+
};
|
|
15
|
+
const payloadAiPlugin = (pluginConfig)=>(incomingConfig)=>{
|
|
16
|
+
pluginConfig = {
|
|
17
|
+
...defaultPluginConfig,
|
|
18
|
+
...pluginConfig
|
|
19
|
+
};
|
|
20
|
+
const isActivated = isPluginActivated();
|
|
21
|
+
let updatedConfig = {
|
|
22
|
+
...incomingConfig
|
|
23
|
+
};
|
|
24
|
+
let collectionsFieldPathMap = {};
|
|
25
|
+
if (isActivated) {
|
|
26
|
+
// Inject editor schema to config, so that it can be accessed when /textarea endpoint will hit
|
|
27
|
+
const zodLexicalSchema = lexicalSchema(pluginConfig.editorConfig?.nodes);
|
|
28
|
+
if (pluginConfig.debugging) {
|
|
29
|
+
Instructions.admin.hidden = false;
|
|
30
|
+
}
|
|
31
|
+
Instructions.admin.custom = {
|
|
32
|
+
...Instructions.admin.custom || {},
|
|
33
|
+
[PLUGIN_NAME]: {
|
|
34
|
+
editorConfig: {
|
|
35
|
+
// Used in admin client for useObject hook
|
|
36
|
+
schema: zodToJsonSchema(zodLexicalSchema)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
Instructions.custom = {
|
|
41
|
+
...Instructions.custom || {},
|
|
42
|
+
[PLUGIN_NAME]: {
|
|
43
|
+
editorConfig: {
|
|
44
|
+
// Used in textarea endpoint for llm
|
|
45
|
+
schema: zodLexicalSchema
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const collections = [
|
|
50
|
+
...incomingConfig.collections ?? [],
|
|
51
|
+
Instructions
|
|
52
|
+
];
|
|
53
|
+
const { collections: collectionSlugs = [] } = pluginConfig;
|
|
54
|
+
incomingConfig.admin.components.providers = [
|
|
55
|
+
...incomingConfig.admin.components.providers ?? [],
|
|
56
|
+
{
|
|
57
|
+
clientProps: {},
|
|
58
|
+
path: '@ai-stack/payloadcms/client#InstructionsProvider',
|
|
59
|
+
serverProps: {}
|
|
60
|
+
}
|
|
61
|
+
];
|
|
62
|
+
updatedConfig = {
|
|
63
|
+
...incomingConfig,
|
|
64
|
+
collections: collections.map((collection)=>{
|
|
65
|
+
if (collectionSlugs[collection.slug]) {
|
|
66
|
+
const { schemaPathMap, updatedCollectionConfig } = updateFieldsConfig(collection);
|
|
67
|
+
collectionsFieldPathMap = {
|
|
68
|
+
...collectionsFieldPathMap,
|
|
69
|
+
...schemaPathMap
|
|
70
|
+
};
|
|
71
|
+
return updatedCollectionConfig;
|
|
72
|
+
}
|
|
73
|
+
return collection;
|
|
74
|
+
}),
|
|
75
|
+
endpoints: [
|
|
76
|
+
...incomingConfig.endpoints ?? [],
|
|
77
|
+
endpoints.textarea,
|
|
78
|
+
endpoints.upload
|
|
79
|
+
],
|
|
80
|
+
globals: [
|
|
81
|
+
...incomingConfig.globals || [],
|
|
82
|
+
{
|
|
83
|
+
slug: PLUGIN_INSTRUCTIONS_MAP_GLOBAL,
|
|
84
|
+
access: {
|
|
85
|
+
read: ()=>true
|
|
86
|
+
},
|
|
87
|
+
admin: {
|
|
88
|
+
hidden: !pluginConfig.debugging
|
|
89
|
+
},
|
|
90
|
+
fields: [
|
|
91
|
+
{
|
|
92
|
+
name: 'map',
|
|
93
|
+
type: 'json'
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
i18n: {
|
|
99
|
+
...incomingConfig.i18n,
|
|
100
|
+
translations: {
|
|
101
|
+
...deepMerge(translations, incomingConfig.i18n?.translations)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
updatedConfig.onInit = async (payload)=>{
|
|
107
|
+
if (incomingConfig.onInit) await incomingConfig.onInit(payload);
|
|
108
|
+
if (!isActivated) {
|
|
109
|
+
payload.logger.warn(`— AI Plugin: Not activated. Please verify your environment keys.`);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
await init(payload, collectionsFieldPathMap, pluginConfig).catch((error)=>{
|
|
113
|
+
console.error(error);
|
|
114
|
+
payload.logger.error(`— AI Plugin: Initialization Error: ${error}`);
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
return updatedConfig;
|
|
118
|
+
};
|
|
119
|
+
export { payloadAiPlugin };
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { Config } from 'payload'\n\nimport { deepMerge } from 'payload/shared'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\n\nimport type { PluginConfig } from './types.js'\n\nimport { lexicalSchema } from './ai/schemas/lexical.schema.js'\nimport { Instructions } from './collections/Instructions.js'\nimport { PLUGIN_INSTRUCTIONS_MAP_GLOBAL, PLUGIN_NAME } from './defaults.js'\nimport { endpoints } from './endpoints/index.js'\nimport { init } from './init.js'\nimport { translations } from './translations/index.js'\nimport { isPluginActivated } from './utilities/isPluginActivated.js'\nimport { updateFieldsConfig } from './utilities/updateFieldsConfig.js'\n\nconst defaultPluginConfig: PluginConfig = {\n generatePromptOnInit: true,\n collections: {},\n}\n\nconst payloadAiPlugin =\n (pluginConfig: PluginConfig) =>\n (incomingConfig: Config): Config => {\n pluginConfig = { ...defaultPluginConfig, ...pluginConfig }\n const isActivated = isPluginActivated()\n let updatedConfig: Config = { ...incomingConfig }\n let collectionsFieldPathMap = {}\n\n if (isActivated) {\n // Inject editor schema to config, so that it can be accessed when /textarea endpoint will hit\n const zodLexicalSchema = lexicalSchema(pluginConfig.editorConfig?.nodes)\n\n if (pluginConfig.debugging) {\n Instructions.admin.hidden = false\n }\n\n Instructions.admin.custom = {\n ...(Instructions.admin.custom || {}),\n [PLUGIN_NAME]: {\n editorConfig: {\n // Used in admin client for useObject hook\n schema: zodToJsonSchema(zodLexicalSchema),\n },\n },\n }\n\n Instructions.custom = {\n ...(Instructions.custom || {}),\n [PLUGIN_NAME]: {\n editorConfig: {\n // Used in textarea endpoint for llm\n schema: zodLexicalSchema,\n },\n },\n }\n\n const collections = [...(incomingConfig.collections ?? []), Instructions]\n const { collections: collectionSlugs = [] } = pluginConfig\n\n incomingConfig.admin.components.providers = [\n ...(incomingConfig.admin.components.providers ?? []),\n {\n clientProps: {},\n path: '@ai-stack/payloadcms/client#InstructionsProvider',\n serverProps: {},\n },\n ]\n\n updatedConfig = {\n ...incomingConfig,\n collections: collections.map((collection) => {\n if (collectionSlugs[collection.slug]) {\n const { schemaPathMap, updatedCollectionConfig } = updateFieldsConfig(collection)\n collectionsFieldPathMap = {\n ...collectionsFieldPathMap,\n ...schemaPathMap,\n }\n return updatedCollectionConfig\n }\n\n return collection\n }),\n endpoints: [...(incomingConfig.endpoints ?? []), endpoints.textarea, endpoints.upload],\n globals: [\n ...(incomingConfig.globals || []),\n {\n slug: PLUGIN_INSTRUCTIONS_MAP_GLOBAL,\n access: {\n read: () => true,\n },\n admin: {\n hidden: !pluginConfig.debugging,\n },\n fields: [\n {\n name: 'map',\n type: 'json',\n },\n ],\n },\n ],\n i18n: {\n ...incomingConfig.i18n,\n translations: {\n ...deepMerge(translations, incomingConfig.i18n?.translations),\n },\n },\n }\n }\n\n updatedConfig.onInit = async (payload) => {\n if (incomingConfig.onInit) await incomingConfig.onInit(payload)\n\n if (!isActivated) {\n payload.logger.warn(`— AI Plugin: Not activated. Please verify your environment keys.`)\n return\n }\n\n await init(payload, collectionsFieldPathMap, pluginConfig).catch((error) => {\n console.error(error)\n payload.logger.error(`— AI Plugin: Initialization Error: ${error}`)\n })\n }\n\n return updatedConfig\n }\n\nexport { payloadAiPlugin }\n"],"names":["deepMerge","zodToJsonSchema","lexicalSchema","Instructions","PLUGIN_INSTRUCTIONS_MAP_GLOBAL","PLUGIN_NAME","endpoints","init","translations","isPluginActivated","updateFieldsConfig","defaultPluginConfig","generatePromptOnInit","collections","payloadAiPlugin","pluginConfig","incomingConfig","isActivated","updatedConfig","collectionsFieldPathMap","zodLexicalSchema","editorConfig","nodes","debugging","admin","hidden","custom","schema","collectionSlugs","components","providers","clientProps","path","serverProps","map","collection","slug","schemaPathMap","updatedCollectionConfig","textarea","upload","globals","access","read","fields","name","type","i18n","onInit","payload","logger","warn","catch","error","console"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstructionsProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/InstructionsProvider/InstructionsProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6C,MAAM,OAAO,CAAA;AAQjE,eAAO,MAAM,mBAAmB;;EAAgC,CAAA;AAEhE,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAqBxC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, { createContext, useEffect, useState } from 'react';
|
|
4
|
+
import { PLUGIN_INSTRUCTIONS_MAP_GLOBAL } from '../../defaults.js';
|
|
5
|
+
const initialContext = {
|
|
6
|
+
instructions: undefined
|
|
7
|
+
};
|
|
8
|
+
export const InstructionsContext = /*#__PURE__*/ createContext(initialContext);
|
|
9
|
+
export const InstructionsProvider = ({ children })=>{
|
|
10
|
+
const [instructions, setInstructionsState] = useState({});
|
|
11
|
+
// This is here because each field have separate instructions and
|
|
12
|
+
// their ID is needed to edit them for Drawer, so instead of fetching it
|
|
13
|
+
// one by one its map is saved in globals during build
|
|
14
|
+
useEffect(()=>{
|
|
15
|
+
fetch(`/api/globals/${PLUGIN_INSTRUCTIONS_MAP_GLOBAL}`).then((res)=>{
|
|
16
|
+
res.json().then((data)=>{
|
|
17
|
+
setInstructionsState(data.map);
|
|
18
|
+
});
|
|
19
|
+
}).catch((err)=>{
|
|
20
|
+
console.error('InstructionsProvider:', err);
|
|
21
|
+
});
|
|
22
|
+
}, []);
|
|
23
|
+
return /*#__PURE__*/ _jsx(InstructionsContext.Provider, {
|
|
24
|
+
value: {
|
|
25
|
+
instructions
|
|
26
|
+
},
|
|
27
|
+
children: children
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=InstructionsProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/providers/InstructionsProvider/InstructionsProvider.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, useEffect, useState } from 'react'\n\nimport { PLUGIN_INSTRUCTIONS_MAP_GLOBAL } from '../../defaults.js'\n\nconst initialContext = {\n instructions: undefined,\n}\n\nexport const InstructionsContext = createContext(initialContext)\n\nexport const InstructionsProvider: React.FC = ({ children }: { children: React.ReactNode }) => {\n const [instructions, setInstructionsState] = useState({})\n\n // This is here because each field have separate instructions and\n // their ID is needed to edit them for Drawer, so instead of fetching it\n // one by one its map is saved in globals during build\n useEffect(() => {\n fetch(`/api/globals/${PLUGIN_INSTRUCTIONS_MAP_GLOBAL}`)\n .then((res) => {\n res.json().then((data) => {\n setInstructionsState(data.map)\n })\n })\n .catch((err) => {\n console.error('InstructionsProvider:', err)\n })\n }, [])\n\n return (\n <InstructionsContext.Provider value={{ instructions }}>{children}</InstructionsContext.Provider>\n )\n}\n"],"names":["React","createContext","useEffect","useState","PLUGIN_INSTRUCTIONS_MAP_GLOBAL","initialContext","instructions","undefined","InstructionsContext","InstructionsProvider","children","setInstructionsState","fetch","then","res","json","data","map","catch","err","console","error","Provider","value"],"mappings":"AAAA;;AAEA,OAAOA,SAASC,aAAa,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAEjE,SAASC,8BAA8B,QAAQ,oBAAmB;AAElE,MAAMC,iBAAiB;IACrBC,cAAcC;AAChB;AAEA,OAAO,MAAMC,oCAAsBP,cAAcI,gBAAe;AAEhE,OAAO,MAAMI,uBAAiC,CAAC,EAAEC,QAAQ,EAAiC;IACxF,MAAM,CAACJ,cAAcK,qBAAqB,GAAGR,SAAS,CAAC;IAEvD,iEAAiE;IACjE,wEAAwE;IACxE,sDAAsD;IACtDD,UAAU;QACRU,MAAM,CAAC,aAAa,EAAER,+BAA+B,CAAC,EACnDS,IAAI,CAAC,CAACC;YACLA,IAAIC,IAAI,GAAGF,IAAI,CAAC,CAACG;gBACfL,qBAAqBK,KAAKC,GAAG;YAC/B;QACF,GACCC,KAAK,CAAC,CAACC;YACNC,QAAQC,KAAK,CAAC,yBAAyBF;QACzC;IACJ,GAAG,EAAE;IAEL,qBACE,KAACX,oBAAoBc,QAAQ;QAACC,OAAO;YAAEjB;QAAa;kBAAII;;AAE5D,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInstructions.d.ts","sourceRoot":"","sources":["../../../src/providers/InstructionsProvider/useInstructions.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;SAuC3B,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { InstructionsContext } from './InstructionsProvider.js';
|
|
3
|
+
import { handlebarsHelpers, handlebarsHelpersMap } from '../../libraries/handlebars/helpersMap.js';
|
|
4
|
+
export const useInstructions = ({ path })=>{
|
|
5
|
+
const context = useContext(InstructionsContext);
|
|
6
|
+
//Fields are used for autocompletion in PromptTextareaField
|
|
7
|
+
const fields = Object.keys(context.instructions || {}).map((key)=>{
|
|
8
|
+
return key.split('.').slice(1).join('.');
|
|
9
|
+
});
|
|
10
|
+
const promptEditorSuggestions = [
|
|
11
|
+
...fields
|
|
12
|
+
].reduce((acc, f)=>{
|
|
13
|
+
const fieldKey = Object.keys(context.instructions).find((k)=>k.endsWith(f));
|
|
14
|
+
const fieldInfo = context.instructions[fieldKey];
|
|
15
|
+
// Currently, Upload fields are excluded from suggestions
|
|
16
|
+
if (fieldInfo.fieldType === 'upload') {
|
|
17
|
+
return acc;
|
|
18
|
+
}
|
|
19
|
+
const helpers = handlebarsHelpers.filter((h)=>handlebarsHelpersMap[h]?.field === fieldInfo.fieldType);
|
|
20
|
+
if (helpers.length) {
|
|
21
|
+
for (const helper of helpers){
|
|
22
|
+
acc.push(helper + ` ${f}`);
|
|
23
|
+
}
|
|
24
|
+
return acc;
|
|
25
|
+
}
|
|
26
|
+
acc.push(f);
|
|
27
|
+
return acc;
|
|
28
|
+
}, []);
|
|
29
|
+
return {
|
|
30
|
+
...context,
|
|
31
|
+
...context.instructions[path] || {},
|
|
32
|
+
fields,
|
|
33
|
+
map: context.instructions,
|
|
34
|
+
promptEditorSuggestions
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=useInstructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/providers/InstructionsProvider/useInstructions.ts"],"sourcesContent":["import { useContext } from 'react'\n\nimport { InstructionsContext } from './InstructionsProvider.js'\nimport { handlebarsHelpers, handlebarsHelpersMap } from '../../libraries/handlebars/helpersMap.js'\n\nexport const useInstructions = ({ path }) => {\n const context = useContext(InstructionsContext)\n\n //Fields are used for autocompletion in PromptTextareaField\n const fields = Object.keys(context.instructions || {}).map((key) => {\n return key.split('.').slice(1).join('.')\n })\n\n const promptEditorSuggestions = [...fields].reduce((acc, f) => {\n const fieldKey = Object.keys(context.instructions).find((k) => k.endsWith(f))\n const fieldInfo = context.instructions[fieldKey]\n\n // Currently, Upload fields are excluded from suggestions\n if (fieldInfo.fieldType === 'upload') {\n return acc\n }\n\n const helpers = handlebarsHelpers.filter(\n (h) => handlebarsHelpersMap[h]?.field === fieldInfo.fieldType,\n )\n\n if (helpers.length) {\n for (const helper of helpers) {\n acc.push(helper + ` ${f}`)\n }\n return acc\n }\n\n acc.push(f)\n return acc\n }, [])\n\n return {\n ...context,\n ...(context.instructions[path] || {}),\n fields,\n map: context.instructions,\n promptEditorSuggestions,\n }\n}\n"],"names":["useContext","InstructionsContext","handlebarsHelpers","handlebarsHelpersMap","useInstructions","path","context","fields","Object","keys","instructions","map","key","split","slice","join","promptEditorSuggestions","reduce","acc","f","fieldKey","find","k","endsWith","fieldInfo","fieldType","helpers","filter","h","field","length","helper","push"],"mappings":"AAAA,SAASA,UAAU,QAAQ,QAAO;AAElC,SAASC,mBAAmB,QAAQ,4BAA2B;AAC/D,SAASC,iBAAiB,EAAEC,oBAAoB,QAAQ,2CAA0C;AAElG,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,IAAI,EAAE;IACtC,MAAMC,UAAUN,WAAWC;IAE3B,2DAA2D;IAC3D,MAAMM,SAASC,OAAOC,IAAI,CAACH,QAAQI,YAAY,IAAI,CAAC,GAAGC,GAAG,CAAC,CAACC;QAC1D,OAAOA,IAAIC,KAAK,CAAC,KAAKC,KAAK,CAAC,GAAGC,IAAI,CAAC;IACtC;IAEA,MAAMC,0BAA0B;WAAIT;KAAO,CAACU,MAAM,CAAC,CAACC,KAAKC;QACvD,MAAMC,WAAWZ,OAAOC,IAAI,CAACH,QAAQI,YAAY,EAAEW,IAAI,CAAC,CAACC,IAAMA,EAAEC,QAAQ,CAACJ;QAC1E,MAAMK,YAAYlB,QAAQI,YAAY,CAACU,SAAS;QAEhD,yDAAyD;QACzD,IAAII,UAAUC,SAAS,KAAK,UAAU;YACpC,OAAOP;QACT;QAEA,MAAMQ,UAAUxB,kBAAkByB,MAAM,CACtC,CAACC,IAAMzB,oBAAoB,CAACyB,EAAE,EAAEC,UAAUL,UAAUC,SAAS;QAG/D,IAAIC,QAAQI,MAAM,EAAE;YAClB,KAAK,MAAMC,UAAUL,QAAS;gBAC5BR,IAAIc,IAAI,CAACD,SAAS,CAAC,CAAC,EAAEZ,EAAE,CAAC;YAC3B;YACA,OAAOD;QACT;QAEAA,IAAIc,IAAI,CAACb;QACT,OAAOD;IACT,GAAG,EAAE;IAEL,OAAO;QACL,GAAGZ,OAAO;QACV,GAAIA,QAAQI,YAAY,CAACL,KAAK,IAAI,CAAC,CAAC;QACpCE;QACAI,KAAKL,QAAQI,YAAY;QACzBM;IACF;AACF,EAAC"}
|
package/dist/styles.d.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/styles.d.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { NestedKeysStripped } from '@payloadcms/translations';
|
|
2
|
+
export declare const translations: {
|
|
3
|
+
en: {
|
|
4
|
+
$schema: string;
|
|
5
|
+
'ai-plugin': {};
|
|
6
|
+
};
|
|
7
|
+
es: {
|
|
8
|
+
$schema: string;
|
|
9
|
+
'ai-plugin': {};
|
|
10
|
+
};
|
|
11
|
+
fa: {
|
|
12
|
+
$schema: string;
|
|
13
|
+
'ai-plugin': {};
|
|
14
|
+
};
|
|
15
|
+
fr: {
|
|
16
|
+
$schema: string;
|
|
17
|
+
'ai-plugin': {};
|
|
18
|
+
};
|
|
19
|
+
nb: {
|
|
20
|
+
$schema: string;
|
|
21
|
+
'ai-plugin': {};
|
|
22
|
+
};
|
|
23
|
+
pl: {
|
|
24
|
+
$schema: string;
|
|
25
|
+
'ai-plugin': {};
|
|
26
|
+
};
|
|
27
|
+
ru: {
|
|
28
|
+
$schema: string;
|
|
29
|
+
'ai-plugin': {};
|
|
30
|
+
};
|
|
31
|
+
uk: {
|
|
32
|
+
$schema: string;
|
|
33
|
+
'ai-plugin': {};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export type PluginAITranslations = typeof translations.en;
|
|
37
|
+
export type PluginAITranslationKeys = NestedKeysStripped<PluginAITranslations>;
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAElE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,YAAY,CAAC,EAAE,CAAA;AAEzD,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const translations = {
|
|
2
|
+
en: {
|
|
3
|
+
$schema: './translation-schema.json',
|
|
4
|
+
'ai-plugin': {}
|
|
5
|
+
},
|
|
6
|
+
es: {
|
|
7
|
+
$schema: './translation-schema.json',
|
|
8
|
+
'ai-plugin': {}
|
|
9
|
+
},
|
|
10
|
+
fa: {
|
|
11
|
+
$schema: './translation-schema.json',
|
|
12
|
+
'ai-plugin': {}
|
|
13
|
+
},
|
|
14
|
+
fr: {
|
|
15
|
+
$schema: './translation-schema.json',
|
|
16
|
+
'ai-plugin': {}
|
|
17
|
+
},
|
|
18
|
+
nb: {
|
|
19
|
+
$schema: './translation-schema.json',
|
|
20
|
+
'ai-plugin': {}
|
|
21
|
+
},
|
|
22
|
+
pl: {
|
|
23
|
+
$schema: './translation-schema.json',
|
|
24
|
+
'ai-plugin': {}
|
|
25
|
+
},
|
|
26
|
+
ru: {
|
|
27
|
+
$schema: './translation-schema.json',
|
|
28
|
+
'ai-plugin': {}
|
|
29
|
+
},
|
|
30
|
+
uk: {
|
|
31
|
+
$schema: './translation-schema.json',
|
|
32
|
+
'ai-plugin': {}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/translations/index.ts"],"sourcesContent":["import type { NestedKeysStripped } from '@payloadcms/translations'\n\nexport const translations = {\n en: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n es: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n fa: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n fr: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n nb: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n pl: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n ru: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n uk: {\n $schema: './translation-schema.json',\n 'ai-plugin': {},\n },\n}\n\nexport type PluginAITranslations = typeof translations.en\n\nexport type PluginAITranslationKeys = NestedKeysStripped<PluginAITranslations>\n"],"names":["translations","en","$schema","es","fa","fr","nb","pl","ru","uk"],"mappings":"AAEA,OAAO,MAAMA,eAAe;IAC1BC,IAAI;QACFC,SAAS;QACT,aAAa,CAAC;IAChB;IACAC,IAAI;QACFD,SAAS;QACT,aAAa,CAAC;IAChB;IACAE,IAAI;QACFF,SAAS;QACT,aAAa,CAAC;IAChB;IACAG,IAAI;QACFH,SAAS;QACT,aAAa,CAAC;IAChB;IACAI,IAAI;QACFJ,SAAS;QACT,aAAa,CAAC;IAChB;IACAK,IAAI;QACFL,SAAS;QACT,aAAa,CAAC;IAChB;IACAM,IAAI;QACFN,SAAS;QACT,aAAa,CAAC;IAChB;IACAO,IAAI;QACFP,SAAS;QACT,aAAa,CAAC;IAChB;AACF,EAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"properties": {
|
|
6
|
+
"$schema": {
|
|
7
|
+
"type": "string"
|
|
8
|
+
},
|
|
9
|
+
"ai-plugin": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {}
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["ai-plugin"]
|
|
16
|
+
}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { Endpoint, Field, GroupField } from 'payload';
|
|
2
|
+
import { CSSProperties, MouseEventHandler } from 'react';
|
|
3
|
+
import { LexicalBaseNode } from './ai/schemas/lexical.schema.js';
|
|
4
|
+
export interface PluginConfig {
|
|
5
|
+
collections: {
|
|
6
|
+
[key: string]: boolean;
|
|
7
|
+
};
|
|
8
|
+
fields?: Field[];
|
|
9
|
+
globals?: string[];
|
|
10
|
+
interfaceName?: string;
|
|
11
|
+
editorConfig?: {
|
|
12
|
+
nodes: (typeof LexicalBaseNode)[];
|
|
13
|
+
};
|
|
14
|
+
debugging?: boolean;
|
|
15
|
+
generatePromptOnInit?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface GenerationModel {
|
|
18
|
+
fields: string[];
|
|
19
|
+
handler?: (payload: any, options: any) => Promise<any>;
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
output: 'audio' | 'file' | 'image' | 'json' | 'text' | 'video';
|
|
23
|
+
settings?: GroupField;
|
|
24
|
+
supportsPromptOptimization?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface GenerationConfig {
|
|
27
|
+
models: GenerationModel[];
|
|
28
|
+
provider: string;
|
|
29
|
+
}
|
|
30
|
+
export type GenerateTextarea<T = any> = (args: {
|
|
31
|
+
doc: T;
|
|
32
|
+
locale?: string;
|
|
33
|
+
options?: any;
|
|
34
|
+
}) => Promise<string> | string;
|
|
35
|
+
export interface Instructions {
|
|
36
|
+
'collection-slug': string;
|
|
37
|
+
id: string;
|
|
38
|
+
'model-id': string;
|
|
39
|
+
prompt: string;
|
|
40
|
+
}
|
|
41
|
+
export interface Endpoints {
|
|
42
|
+
textarea: Omit<Endpoint, 'root'>;
|
|
43
|
+
upload: Omit<Endpoint, 'root'>;
|
|
44
|
+
}
|
|
45
|
+
export type ActionMenuItems = 'Compose' | 'Expand' | 'Proofread' | 'Rephrase' | 'Settings' | 'Simplify' | 'Summarize' | 'Tone' | 'Translate';
|
|
46
|
+
export type ActionMenuEvents = 'onCompose' | 'onExpand' | 'onProofread' | 'onRephrase' | 'onSettings' | 'onSimplify' | 'onSummarize' | 'onTone' | 'onTranslate';
|
|
47
|
+
export type UseMenuEvents = {
|
|
48
|
+
[key in ActionMenuEvents]?: (data?: unknown) => void;
|
|
49
|
+
};
|
|
50
|
+
export type BaseItemProps<T = any> = {
|
|
51
|
+
children?: React.ReactNode;
|
|
52
|
+
disabled?: boolean;
|
|
53
|
+
hideIcon?: boolean;
|
|
54
|
+
onClick: (data?: unknown) => void;
|
|
55
|
+
onMouseEnter?: MouseEventHandler<T> | undefined;
|
|
56
|
+
onMouseLeave?: MouseEventHandler<T> | undefined;
|
|
57
|
+
style?: CSSProperties | undefined;
|
|
58
|
+
isMenu?: boolean;
|
|
59
|
+
isActive?: boolean;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* This interface was referenced by `Config`'s JSON-Schema
|
|
63
|
+
* via the `definition` "plugin-ai-instructions".
|
|
64
|
+
*/
|
|
65
|
+
export interface PluginAiInstruction {
|
|
66
|
+
id: string;
|
|
67
|
+
'schema-path'?: string | null;
|
|
68
|
+
'field-type'?: ('text' | 'textarea' | 'upload' | 'richText') | null;
|
|
69
|
+
'model-id'?: ('openai-gpt-text' | 'dall-e' | 'tts' | 'openai-gpt-object') | null;
|
|
70
|
+
prompt?: string | null;
|
|
71
|
+
'openai-gpt-text-settings'?: {
|
|
72
|
+
model?: ('gpt-4o' | 'gpt-4-turbo' | 'gpt-4o-mini' | 'gpt-3.5-turbo') | null;
|
|
73
|
+
};
|
|
74
|
+
'dalle-e-settings'?: {
|
|
75
|
+
version?: ('dall-e-3' | 'dall-e-2') | null;
|
|
76
|
+
size?: ('256x256' | '512x512' | '1024x1024' | '1792x1024' | '1024x1792') | null;
|
|
77
|
+
style?: ('vivid' | 'natural') | null;
|
|
78
|
+
'enable-prompt-optimization'?: boolean | null;
|
|
79
|
+
};
|
|
80
|
+
'openai-tts-settings'?: {
|
|
81
|
+
voice?: ('alloy' | 'echo' | 'fable' | 'onyx' | 'nova' | 'shimmer') | null;
|
|
82
|
+
model?: ('tts-1' | 'tts-1-hd') | null;
|
|
83
|
+
response_format?: ('mp3' | 'opus' | 'aac' | 'flac' | 'wav' | 'pcm') | null;
|
|
84
|
+
speed?: number | null;
|
|
85
|
+
};
|
|
86
|
+
'openai-gpt-object-settings'?: {
|
|
87
|
+
model?: ('gpt-4o' | 'gpt-4-turbo' | 'gpt-4o-mini' | 'gpt-4o-2024-08-06') | null;
|
|
88
|
+
system?: string | null;
|
|
89
|
+
layout?: string | null;
|
|
90
|
+
};
|
|
91
|
+
updatedAt: string;
|
|
92
|
+
createdAt: string;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|