@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,"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"}
|
package/dist/defaults.js
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/dist/index.d.ts
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
|
+
*/
|
|
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 @@
|
|
|
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"}
|