nuxt-studio 1.0.0-alpha.0 → 1.0.0-alpha.2
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/README.md +11 -9
- package/dist/app/en-CeGQDKH5.js +7 -0
- package/dist/app/en-D0jd_r21.js +7 -0
- package/dist/app/en-XbfkDcMn.js +7 -0
- package/dist/app/fr-CbcFrmHX.js +7 -0
- package/dist/app/fr-Ct4HO5e1.js +7 -0
- package/dist/app/fr-ILHmVnG9.js +7 -0
- package/dist/app/main.d.ts +83 -33
- package/dist/app/main.js +34187 -30512
- package/dist/app/service-worker.js +29 -5
- package/dist/app/shared-B6H2zqDG.js +8 -0
- package/dist/app/{shared-D04791PA.js → shared-DLETHbvn.js} +2311 -2307
- package/dist/app/{shared-DI6F-ifc.js → shared-Dvm_mWyG.js} +3120 -3132
- package/dist/app/shared.d.ts +1 -20
- package/dist/app/shared.js +2 -4
- package/dist/module/module.d.mts +70 -27
- package/dist/module/module.json +1 -1
- package/dist/module/module.mjs +101 -58
- package/dist/module/runtime/host.dev.js +19 -12
- package/dist/module/runtime/host.js +124 -61
- package/dist/module/runtime/plugins/studio.client.js +1 -1
- package/dist/module/runtime/server/routes/admin.js +11 -2
- package/dist/module/runtime/server/routes/auth/github.get.d.ts +4 -4
- package/dist/module/runtime/server/routes/auth/github.get.js +17 -9
- package/dist/module/runtime/server/routes/auth/gitlab.get.d.ts +55 -0
- package/dist/module/runtime/server/routes/auth/gitlab.get.js +157 -0
- package/dist/module/runtime/server/routes/auth/session.delete.js +2 -1
- package/dist/module/runtime/server/routes/auth/session.get.js +4 -1
- package/dist/module/runtime/server/routes/dev/content/[...path].js +0 -11
- package/dist/module/runtime/server/routes/dev/public/[...path].d.ts +1 -0
- package/dist/module/runtime/server/routes/dev/public/[...path].js +2 -0
- package/dist/module/runtime/types/content.d.ts +6 -0
- package/dist/module/runtime/types/content.js +7 -0
- package/dist/module/runtime/utils/activation.js +16 -5
- package/dist/module/runtime/utils/collection.d.ts +10 -17
- package/dist/module/runtime/utils/collection.js +32 -92
- package/dist/module/runtime/utils/document.d.ts +15 -0
- package/dist/module/runtime/utils/document.js +288 -0
- package/dist/module/runtime/utils/media.d.ts +1 -0
- package/dist/module/runtime/utils/media.js +5 -0
- package/dist/module/runtime/utils/object.d.ts +4 -0
- package/dist/module/runtime/utils/object.js +27 -0
- package/dist/module/runtime/utils/source.d.ts +11 -0
- package/dist/module/runtime/utils/source.js +36 -0
- package/license.md +9 -0
- package/package.json +7 -6
- package/dist/app/shared-R5zYJ3Dl.js +0 -25803
- package/dist/app/utils-DI6F-ifc.js +0 -25774
- package/dist/app/utils.d.ts +0 -22
- package/dist/app/utils.js +0 -6
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Nuxt Studio
|
|
2
2
|
|
|
3
|
-
[](https://npmjs.com/package/nuxt-studio)
|
|
3
|
+
[](https://npmjs.com/package/nuxt-studio)
|
|
4
4
|
[](https://npm.chart.dev/nuxt-studio)
|
|
5
5
|
[](https://npmjs.com/package/nuxt-studio)
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
## ⚠️ Alpha
|
|
9
|
+
## ⚠️ Alpha Version
|
|
10
10
|
|
|
11
11
|
> **Current Status: Alpha Testing**
|
|
12
12
|
>
|
|
@@ -17,13 +17,14 @@
|
|
|
17
17
|
> - ✅ Media management and uploads
|
|
18
18
|
> - ✅ GitHub authentication and publishing workflow
|
|
19
19
|
>
|
|
20
|
-
> **🎨 Visual Editor Coming Soon**
|
|
21
20
|
>
|
|
22
21
|
> Once all file operations and GitHub publishing workflows are tested and stable, we'll release **Phase 2 (Beta)** with the full visual editor for Markdown, Vue components, and medias...
|
|
22
|
+
>
|
|
23
|
+
> Read the [announcement blog post](https://content.nuxt.com/blog/studio-module-alpha) for more details.
|
|
23
24
|
|
|
24
25
|
---
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
Visual edition in production for your [Nuxt Content](https://content.nuxt.com) website.
|
|
27
28
|
|
|
28
29
|
Originally offered as a standalone premium platform at https://nuxt.studio, Studio has evolved into a free, open-source, and self-hostable Nuxt module. Enable your entire team to edit website content right in production.
|
|
29
30
|
|
|
@@ -47,8 +48,9 @@ Originally offered as a standalone premium platform at https://nuxt.studio, Stud
|
|
|
47
48
|
- 🤖 **AI Content Assistant** — Receive smart, AI-powered suggestions to enhance your content creation flow
|
|
48
49
|
- 💡 **Community-driven Features** — Have an idea? [Share your suggestions](https://github.com/nuxt-content/studio/discussions) to shape the future of Nuxt Studio
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
[
|
|
51
|
+
### Resources
|
|
52
|
+
- [📖 Documentation](https://content.nuxt.com/docs/studio/setup)
|
|
53
|
+
- [🎮 Live Demo](https://docus.dev/admin)
|
|
52
54
|
|
|
53
55
|
## Quick Setup
|
|
54
56
|
|
|
@@ -59,7 +61,7 @@ Originally offered as a standalone premium platform at https://nuxt.studio, Stud
|
|
|
59
61
|
Install the module in your Nuxt application with one command:
|
|
60
62
|
|
|
61
63
|
```bash
|
|
62
|
-
npx nuxi module add nuxt-studio
|
|
64
|
+
npx nuxi module add nuxt-studio@alpha
|
|
63
65
|
```
|
|
64
66
|
|
|
65
67
|
Add it to your `nuxt.config` and configure your repository.
|
|
@@ -230,8 +232,8 @@ pnpm lint
|
|
|
230
232
|
## Links
|
|
231
233
|
|
|
232
234
|
- 📖 [Documentation](https://content.nuxt.com/studio)
|
|
233
|
-
- 🐛 [Report a Bug](https://github.com/nuxt-content/studio/issues)
|
|
234
|
-
- 💡 [Feature Request](https://github.com/nuxt-content/studio/
|
|
235
|
+
- 🐛 [Report a Bug](https://github.com/nuxt-content/studio/issues/new)
|
|
236
|
+
- 💡 [Feature Request](https://github.com/nuxt-content/studio/issues/new)
|
|
235
237
|
- 🗨️ [Discussions](https://github.com/nuxt-content/studio/discussions)
|
|
236
238
|
- 🆇 [Twitter](https://x.com/nuxtstudio)
|
|
237
239
|
- 🦋 [Bluesky](https://bsky.app/profile/nuxt.com)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e = { buttons: { edit: "Edit this page", retryPublish: "Retry Publish", reloadApp: "Reload application", reload: "Reload", signOut: "Sign out", review: "Review", publish: "Publish", back: "Back" }, headings: { directories: "Directories", files: "Files", media: "Media" }, tooltips: { toggleStudio: "Toggle Studio", unlinkEditor: "Unlink editor and preview", linkEditor: "Link editor and preview", copiedToClipboard: "Copied to clipboard", copyToClipboard: "Copy to clipboard", publishChanges: "Publish changes", backToContent: "Back to content" }, notifications: { error: { unknown: "An unknown error occurred" } }, publish: { failedTitle: "Publish Failed", summary: "on {branch} of {repo} repository", errorTitle: "Error during {providerName} publish", failedGeneric: "Failed to publish changes" }, review: { title: "Review changes", created: "Created", updated: "Updated", deleted: "Deleted" }, publishSuccess: { title: "Changes Published", summary: "{count} change published on {branch} of {repo} repository | {count} changes published on {branch} of {repo} repository", alertTitleWaiting: "Waiting for deployment...", alertTitleComplete: "Deployment complete", alertDescWaiting: "The website needs to be deployed for changes to be visible in Studio.", alertDescComplete: "A new version of your website has been deployed. Please refresh your app to see changes in Studio." }, newVersionBanner: { title: "New website version detected", description: "A new version of your website has been deployed. Reload the app to see the latest changes.", reloadButton: "Reload" }, footer: { developer_view: "Developer view" }, alert: { mdcFormatting: "Formatting applied to align with MDC syntax standard." }, conflict: { title: "Conflict Detected", repository: "Repository", branch: "Branch", file: "File", description: "The content on {providerName} differs from your website version. Ensure your latest changes are deployed and refresh the page.", websiteVersion: "Website" }, nav: { content: "Content", media: "Media" }, placeholders: { commitMessage: "Commit message", order: "N°", fileName: "File name" }, validation: { commitRequired: "Commit message is required", nameEmpty: "Name cannot be empty", nameEndsWithDot: "Name cannot end with '.'", nameStartsWithSlash: "Name cannot start with '/'", nameExists: "Name already exists" }, media: { altFilePreview: "File preview", altImagePreview: "Image preview", playAudio: "Play Audio", audioTagNotSupported: "Your browser does not support the audio tag.", playVideo: "Play Video", videoTagNotSupported: "Your browser does not support the video tag.", metaWidth: "Width", metaHeight: "Height", metaType: "Type", metaSize: "Size", fileName: "File name", publicPath: "Public path", providerPath: "{providerName} path", markdown: "Markdown" }, aria: { openActions: "Open actions", cancel: "Cancel", submit: "Submit" }, actions: { confirmAction: "Click again to {action}", verbs: { create: "create", delete: "delete", rename: "rename", upload: "upload", duplicate: "duplicate" }, labels: { "create-document": "New file", "create-document-folder": "New folder", "create-media-folder": "New media folder", "rename-item": "Rename", "delete-item": "Delete", "upload-media": "Upload media", "duplicate-item": "Duplicate", "revert-item": "Revert changes", "publish-branch": "Publish branch" }, tooltips: { "revert-item": "Revert changes", "create-document": "Create a new file", "upload-media": "Upload media", "create-document-folder": "Create a new folder", "create-media-folder": "Create a new folder", "rename-item": "Rename file", "duplicate-item": "Duplicate file", "delete-item": "Delete file", "publish-branch": "Publish branch" } }, items: { itemCount: "1 item | {count} items" }, monaco: { headings: { h1: "Heading 1", h2: "Heading 2", h3: "Heading 3" }, styles: { bold: "Bold", italic: "Italic" }, lists: { bulleted: "Bulleted List", numbered: "Numbered List" }, other: { emojis: "Emojis", blockquote: "Blockquote", code: "Code", inlineCode: "Inline Code", link: "Link", image: "Image" }, writeSomething: "Write Something", docs: { path: "Path in project:", props: "Props", slots: "Slots", type: "type", required: "required", default: "default" } } }, t = {
|
|
2
|
+
studio: e
|
|
3
|
+
};
|
|
4
|
+
export {
|
|
5
|
+
t as default,
|
|
6
|
+
e as studio
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e = { buttons: { edit: "Edit this page", retryPublish: "Retry Publish", reloadApp: "Reload application", reload: "Reload", signOut: "Sign out", review: "Review", publish: "Publish", back: "Back" }, headings: { directories: "Directories", files: "Files", media: "Media" }, tooltips: { toggleStudio: "Toggle Studio", unlinkEditor: "Unlink editor and preview", linkEditor: "Link editor and preview", copiedToClipboard: "Copied to clipboard", copyToClipboard: "Copy to clipboard", publishChanges: "Publish changes", backToContent: "Back to content" }, notifications: { error: { unknown: "An unknown error occurred" } }, publish: { failedTitle: "Publish Failed", summary: "on {branch} of {repo} repository", errorTitle: "Error during GitHub publish", failedGeneric: "Failed to publish changes" }, review: { title: "Review changes", created: "Created", updated: "Updated", deleted: "Deleted" }, publishSuccess: { title: "Changes Published", summary: "{count} change published on {branch} of {repo} repository | {count} changes published on {branch} of {repo} repository", alertTitleWaiting: "Waiting for deployment...", alertTitleComplete: "Deployment complete", alertDescWaiting: "The website needs to be deployed for changes to be visible in Studio.", alertDescComplete: "A new version of your website has been deployed. Please refresh your app to see changes in Studio." }, newVersionBanner: { title: "New website version detected", description: "A new version of your website has been deployed. Reload the app to see the latest changes.", reloadButton: "Reload" }, footer: { developer_view: "Developer view" }, alert: { mdcFormatting: "Formatting applied to align with MDC syntax standard." }, conflict: { title: "Conflict Detected", repository: "Repository", branch: "Branch", file: "File", description: "The content on GitHub differs from your website version. Ensure your latest changes are deployed and refresh the page.", githubVersion: "GitHub", websiteVersion: "Website" }, nav: { content: "Content", media: "Media" }, placeholders: { commitMessage: "Commit message", order: "N°", fileName: "File name" }, validation: { commitRequired: "Commit message is required", nameEmpty: "Name cannot be empty", nameEndsWithDot: "Name cannot end with '.'", nameStartsWithSlash: "Name cannot start with '/'", nameExists: "Name already exists" }, media: { altFilePreview: "File preview", altImagePreview: "Image preview", playAudio: "Play Audio", audioTagNotSupported: "Your browser does not support the audio tag.", playVideo: "Play Video", videoTagNotSupported: "Your browser does not support the video tag.", metaWidth: "Width", metaHeight: "Height", metaType: "Type", metaSize: "Size", fileName: "File name", publicPath: "Public path", githubPath: "GitHub path", markdown: "Markdown" }, aria: { openActions: "Open actions", cancel: "Cancel", submit: "Submit" }, actions: { confirmAction: "Click again to {action}", verbs: { create: "create", delete: "delete", rename: "rename", upload: "upload", duplicate: "duplicate" }, labels: { "create-document": "New file", "create-document-folder": "New folder", "create-media-folder": "New media folder", "rename-item": "Rename", "delete-item": "Delete", "upload-media": "Upload media", "duplicate-item": "Duplicate", "revert-item": "Revert changes", "publish-branch": "Publish branch" }, tooltips: { "revert-item": "Revert changes", "create-document": "Create a new file", "upload-media": "Upload media", "create-document-folder": "Create a new folder", "create-media-folder": "Create a new folder", "rename-item": "Rename file", "duplicate-item": "Duplicate file", "delete-item": "Delete file", "publish-branch": "Publish branch" } }, items: { itemCount: "1 item | {count} items" }, monaco: { headings: { h1: "Heading 1", h2: "Heading 2", h3: "Heading 3" }, styles: { bold: "Bold", italic: "Italic" }, lists: { bulleted: "Bulleted List", numbered: "Numbered List" }, other: { emojis: "Emojis", blockquote: "Blockquote", code: "Code", inlineCode: "Inline Code", link: "Link", image: "Image" }, writeSomething: "Write Something", docs: { path: "Path in project:", props: "Props", slots: "Slots", type: "type", required: "required", default: "default" } } }, t = {
|
|
2
|
+
studio: e
|
|
3
|
+
};
|
|
4
|
+
export {
|
|
5
|
+
t as default,
|
|
6
|
+
e as studio
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e = { buttons: { edit: "Edit this page", retryPublish: "Retry Publish", reloadApp: "Reload application", reload: "Reload", signOut: "Sign out", review: "Review", publish: "Publish", back: "Back", backToCode: "Back to code", seeChanges: "See what's changed" }, headings: { directories: "Directories", files: "Files", media: "Media" }, tooltips: { toggleStudio: "Toggle Studio", unlinkEditor: "Unlink editor and preview", linkEditor: "Link editor and preview", copiedToClipboard: "Copied to clipboard", copyToClipboard: "Copy to clipboard", publishChanges: "Publish changes", backToContent: "Back to content" }, notifications: { error: { unknown: "An unknown error occurred" } }, publish: { failedTitle: "Publish Failed", summary: "on {branch} of {repo} repository", errorTitle: "Error during {providerName} publish", failedGeneric: "Failed to publish changes" }, review: { title: "Review changes", created: "Created", updated: "Updated", renamed: "Renamed", deleted: "Deleted" }, publishSuccess: { title: "Changes Published", summary: "{count} change published on {branch} of {repo} repository | {count} changes published on {branch} of {repo} repository", alertTitleWaiting: "Waiting for deployment...", alertTitleComplete: "Deployment complete", alertDescWaiting: "The website needs to be deployed for changes to be visible in Studio.", alertDescComplete: "A new version of your website has been deployed. Please refresh your app to see changes in Studio." }, newVersionBanner: { title: "New website version detected", description: "A new version of your website has been deployed. Reload the app to see the latest changes.", reloadButton: "Reload" }, footer: { developer_view: "Developer view" }, alert: { mdcFormatting: "Formatting applied to align with MDC syntax standard." }, conflict: { title: "Conflict Detected", repository: "Repository", branch: "Branch", file: "File", description: "The content on {providerName} differs from your website version. Ensure your latest changes are deployed and refresh the page.", websiteVersion: "Website" }, nav: { content: "Content", media: "Media" }, placeholders: { commitMessage: "Commit message", order: "N°", fileName: "File name" }, validation: { commitRequired: "Commit message is required", nameEmpty: "Name cannot be empty", nameEndsWithDot: "Name cannot end with '.'", nameStartsWithSlash: "Name cannot start with '/'", nameExists: "Name already exists" }, media: { altFilePreview: "File preview", altImagePreview: "Image preview", playAudio: "Play Audio", audioTagNotSupported: "Your browser does not support the audio tag.", playVideo: "Play Video", videoTagNotSupported: "Your browser does not support the video tag.", metaWidth: "Width", metaHeight: "Height", metaType: "Type", metaSize: "Size", fileName: "File name", publicPath: "Public path", providerPath: "{providerName} path", markdown: "Markdown" }, aria: { openActions: "Open actions", cancel: "Cancel", submit: "Submit" }, actions: { confirmAction: "Click again to {action}", verbs: { create: "create", delete: "delete", rename: "rename", upload: "upload", duplicate: "duplicate" }, labels: { "create-document": "New file", "create-document-folder": "New folder", "create-media-folder": "New media folder", "rename-item": "Rename", "delete-item": "Delete", "upload-media": "Upload media", "duplicate-item": "Duplicate", "revert-item": "Revert changes", "publish-branch": "Publish branch" }, tooltips: { "revert-item": "Revert changes", "create-document": "Create a new file", "upload-media": "Upload media", "create-document-folder": "Create a new folder", "create-media-folder": "Create a new folder", "rename-item": "Rename file", "duplicate-item": "Duplicate file", "delete-item": "Delete file", "publish-branch": "Publish branch" } }, items: { itemCount: "1 item | {count} items" }, monaco: { headings: { h1: "Heading 1", h2: "Heading 2", h3: "Heading 3" }, styles: { bold: "Bold", italic: "Italic" }, lists: { bulleted: "Bulleted List", numbered: "Numbered List" }, other: { emojis: "Emojis", blockquote: "Blockquote", code: "Code", inlineCode: "Inline Code", link: "Link", image: "Image" }, writeSomething: "Write Something", snippets: { title: "title", item1: "Item 1", item2: "Item 2", language: "language", code: "code", link: "link", alt: "alt", src: "src", value: "value" }, docs: { path: "Path in project:", props: "Props", slots: "Slots", type: "type", required: "required", default: "default" } } }, t = {
|
|
2
|
+
studio: e
|
|
3
|
+
};
|
|
4
|
+
export {
|
|
5
|
+
t as default,
|
|
6
|
+
e as studio
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e = { buttons: { edit: "Editer la page", retryPublish: "Réessayer la publication", reloadApp: "Recharger l'application", reload: "Recharger", signOut: "Se déconnecter", review: "Valider", publish: "Publier", back: "Retour", backToCode: "Retour au code", seeChanges: "Voir les changements" }, headings: { directories: "Dossiers", files: "Fichiers", media: "Médias" }, tooltips: { toggleStudio: "Afficher/Masquer le Studio", unlinkEditor: "Délier l'éditeur et l'aperçu", linkEditor: "Lier l'éditeur et l'aperçu", copiedToClipboard: "Copié dans le presse-papiers", copyToClipboard: "Copier dans le presse-papiers", publishChanges: "Publier les changements", backToContent: "Retour au contenu" }, notifications: { error: { unknown: "Une erreur inconnue est survenue" } }, publish: { failedTitle: "Échec de la publication", summary: "sur la branche {branch} du dépôt {repo}", errorTitle: "Erreur lors de la publication sur {providerName}", failedGeneric: "Échec de la publication des changements" }, review: { title: "Changements à valider", created: "Créé", updated: "Modifié", deleted: "Supprimé", renamed: "Renommé" }, publishSuccess: { title: "Changements publiés", summary: "{count} changement publié sur la branche {branch} du dépôt {repo} | {count} changements publiés sur la branche {branch} du dépôt {repo}", alertTitleWaiting: "En attente de déploiement...", alertTitleComplete: "Déploiement terminé", alertDescWaiting: "Le site web doit être déployé pour que les changements soient visibles dans le Studio.", alertDescComplete: "Une nouvelle version de votre site a été déployée. Veuillez rafraîchir l'application pour voir les changements dans le Studio." }, newVersionBanner: { title: "Nouvelle version du site détectée", description: "Une nouvelle version de votre site a été déployée. Rechargez l'application pour voir les derniers changements.", reloadButton: "Recharger" }, footer: { developer_view: "Vue développeur" }, alert: { mdcFormatting: "Formatage appliqué pour s'aligner sur le standard de syntaxe MDC." }, conflict: { title: "Conflit détecté", repository: "Dépôt", branch: "Branche", file: "Fichier", description: "Le contenu sur {providerName} diffère de la version de votre site web. Assurez-vous que vos dernières modifications sont déployées et actualisez la page.", websiteVersion: "Site Web" }, nav: { content: "Contenu", media: "Média" }, placeholders: { commitMessage: "Message de commit", order: "N°", fileName: "Nom du fichier" }, validation: { commitRequired: "Message de commit requis", nameEmpty: "Le nom ne peut pas être vide", nameEndsWithDot: "Le nom ne peut pas se terminer par '.'", nameStartsWithSlash: "Le nom ne peut pas commencer par '/'", nameExists: "Ce nom existe déjà" }, media: { altFilePreview: "Aperçu du fichier", altImagePreview: "Aperçu de l'image", playAudio: "Lire l'audio", audioTagNotSupported: "Votre navigateur ne supporte pas la balise audio.", playVideo: "Lire la vidéo", videoTagNotSupported: "Votre navigateur ne supporte pas la balise vidéo.", metaWidth: "Largeur", metaHeight: "Hauteur", metaType: "Type", metaSize: "Taille", fileName: "Nom du fichier", publicPath: "Chemin public", providerPath: "Chemin {providerName}", markdown: "Markdown" }, aria: { openActions: "Ouvrir les actions", cancel: "Annuler", submit: "Valider" }, actions: { confirmAction: "Cliquez à nouveau pour {action}", verbs: { create: "créer", delete: "supprimer", rename: "renommer", upload: "téléverser", duplicate: "dupliquer" }, labels: { "create-document": "Nouveau fichier", "create-document-folder": "Nouveau dossier", "create-media-folder": "Nouveau dossier média", "rename-item": "Renommer", "delete-item": "Supprimer", "upload-media": "Téléverser un média", "duplicate-item": "Dupliquer", "revert-item": "Annuler les modifications", "publish-branch": "Publier la branche" }, tooltips: { "revert-item": "Annuler les modifications", "create-document": "Créer un nouveau fichier", "upload-media": "Téléverser un média", "create-document-folder": "Créer un nouveau dossier", "create-media-folder": "Créer un nouveau dossier", "rename-item": "Renommer le fichier", "duplicate-item": "Dupliquer le fichier", "delete-item": "Supprimer le fichier", "publish-branch": "Publier la branche" } }, items: { itemCount: "1 élément | {count} éléments" }, monaco: { headings: { h1: "Titre 1", h2: "Titre 2", h3: "Titre 3" }, styles: { bold: "Gras", italic: "Italique" }, lists: { bulleted: "Liste à puces", numbered: "Liste numérotée" }, other: { emojis: "Émojis", blockquote: "Citation", code: "Bloc de code", inlineCode: "Code (en ligne)", link: "Lien", image: "Image" }, writeSomething: "Écrivez quelque chose", snippets: { title: "titre", item1: "Élément 1", item2: "Élément 2", language: "langage", code: "code", link: "lien", alt: "alt", src: "src", value: "valeur" }, docs: { path: "Chemin dans le projet :", props: "Props", slots: "Slots", type: "type", required: "requis", default: "défaut" } } }, i = {
|
|
2
|
+
studio: e
|
|
3
|
+
};
|
|
4
|
+
export {
|
|
5
|
+
i as default,
|
|
6
|
+
e as studio
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e = { buttons: { edit: "Editer la page", retryPublish: "Réessayer la publication", reloadApp: "Recharger l'application", reload: "Recharger", signOut: "Se déconnecter", review: "Valider", publish: "Publier", back: "Retour" }, headings: { directories: "Dossiers", files: "Fichiers", media: "Médias" }, tooltips: { toggleStudio: "Afficher/Masquer le Studio", unlinkEditor: "Délier l'éditeur et l'aperçu", linkEditor: "Lier l'éditeur et l'aperçu", copiedToClipboard: "Copié dans le presse-papiers", copyToClipboard: "Copier dans le presse-papiers", publishChanges: "Publier les changements", backToContent: "Retour au contenu" }, notifications: { error: { unknown: "Une erreur inconnue est survenue" } }, publish: { failedTitle: "Échec de la publication", summary: "sur la branche {branch} du dépôt {repo}", errorTitle: "Erreur lors de la publication sur {providerName}", failedGeneric: "Échec de la publication des changements" }, review: { title: "Changements à valider", created: "Créé", updated: "Modifié", deleted: "Supprimé" }, publishSuccess: { title: "Changements publiés", summary: "{count} changement publié sur la branche {branch} du dépôt {repo} | {count} changements publiés sur la branche {branch} du dépôt {repo}", alertTitleWaiting: "En attente de déploiement...", alertTitleComplete: "Déploiement terminé", alertDescWaiting: "Le site web doit être déployé pour que les changements soient visibles dans le Studio.", alertDescComplete: "Une nouvelle version de votre site a été déployée. Veuillez rafraîchir l'application pour voir les changements dans le Studio." }, newVersionBanner: { title: "Nouvelle version du site détectée", description: "Une nouvelle version de votre site a été déployée. Rechargez l'application pour voir les derniers changements.", reloadButton: "Recharger" }, footer: { developer_view: "Vue développeur" }, alert: { mdcFormatting: "Formatage appliqué pour s'aligner sur le standard de syntaxe MDC." }, conflict: { title: "Conflit détecté", repository: "Dépôt", branch: "Branche", file: "Fichier", description: "Le contenu sur {providerName} diffère de la version de votre site web. Assurez-vous que vos dernières modifications sont déployées et actualisez la page.", websiteVersion: "Site Web" }, nav: { content: "Contenu", media: "Média" }, placeholders: { commitMessage: "Message de commit", order: "N°", fileName: "Nom du fichier" }, validation: { commitRequired: "Message de commit requis", nameEmpty: "Le nom ne peut pas être vide", nameEndsWithDot: "Le nom ne peut pas se terminer par '.'", nameStartsWithSlash: "Le nom ne peut pas commencer par '/'", nameExists: "Ce nom existe déjà" }, media: { altFilePreview: "Aperçu du fichier", altImagePreview: "Aperçu de l'image", playAudio: "Lire l'audio", audioTagNotSupported: "Votre navigateur ne supporte pas la balise audio.", playVideo: "Lire la vidéo", videoTagNotSupported: "Votre navigateur ne supporte pas la balise vidéo.", metaWidth: "Largeur", metaHeight: "Hauteur", metaType: "Type", metaSize: "Taille", fileName: "Nom du fichier", publicPath: "Chemin public", providerPath: "Chemin {providerName}", markdown: "Markdown" }, aria: { openActions: "Ouvrir les actions", cancel: "Annuler", submit: "Valider" }, actions: { confirmAction: "Cliquez à nouveau pour {action}", verbs: { create: "créer", delete: "supprimer", rename: "renommer", upload: "téléverser", duplicate: "dupliquer" }, labels: { "create-document": "Nouveau fichier", "create-document-folder": "Nouveau dossier", "create-media-folder": "Nouveau dossier média", "rename-item": "Renommer", "delete-item": "Supprimer", "upload-media": "Téléverser un média", "duplicate-item": "Dupliquer", "revert-item": "Annuler les modifications", "publish-branch": "Publier la branche" }, tooltips: { "revert-item": "Annuler les modifications", "create-document": "Créer un nouveau fichier", "upload-media": "Téléverser un média", "create-document-folder": "Créer un nouveau dossier", "create-media-folder": "Créer un nouveau dossier", "rename-item": "Renommer le fichier", "duplicate-item": "Dupliquer le fichier", "delete-item": "Supprimer le fichier", "publish-branch": "Publier la branche" } }, items: { itemCount: "1 élément | {count} éléments" }, monaco: { headings: { h1: "Titre 1", h2: "Titre 2", h3: "Titre 3" }, styles: { bold: "Gras", italic: "Italique" }, lists: { bulleted: "Liste à puces", numbered: "Liste numérotée" }, other: { emojis: "Émojis", blockquote: "Citation", code: "Bloc de code", inlineCode: "Code (en ligne)", link: "Lien", image: "Image" }, writeSomething: "Écrivez quelque chose", docs: { path: "Chemin dans le projet :", props: "Props", slots: "Slots", type: "type", required: "requis", default: "défaut" } } }, i = {
|
|
2
|
+
studio: e
|
|
3
|
+
};
|
|
4
|
+
export {
|
|
5
|
+
i as default,
|
|
6
|
+
e as studio
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e = { buttons: { edit: "Editer la page", retryPublish: "Réessayer la publication", reloadApp: "Recharger l'application", reload: "Recharger", signOut: "Se déconnecter", review: "Valider", publish: "Publier", back: "Retour" }, headings: { directories: "Dossiers", files: "Fichiers", media: "Médias" }, tooltips: { toggleStudio: "Afficher/Masquer le Studio", unlinkEditor: "Délier l'éditeur et l'aperçu", linkEditor: "Lier l'éditeur et l'aperçu", copiedToClipboard: "Copié dans le presse-papiers", copyToClipboard: "Copier dans le presse-papiers", publishChanges: "Publier les changements", backToContent: "Retour au contenu" }, notifications: { error: { unknown: "Une erreur inconnue est survenue" } }, publish: { failedTitle: "Échec de la publication", summary: "sur la branche {branch} du dépôt {repo}", errorTitle: "Erreur lors de la publication sur GitHub", failedGeneric: "Échec de la publication des changements" }, review: { title: "Changements à valider", created: "Créé", updated: "Modifié", deleted: "Supprimé" }, publishSuccess: { title: "Changements publiés", summary: "{count} changement publié sur la branche {branch} du dépôt {repo} | {count} changements publiés sur la branche {branch} du dépôt {repo}", alertTitleWaiting: "En attente de déploiement...", alertTitleComplete: "Déploiement terminé", alertDescWaiting: "Le site web doit être déployé pour que les changements soient visibles dans le Studio.", alertDescComplete: "Une nouvelle version de votre site a été déployée. Veuillez rafraîchir l'application pour voir les changements dans le Studio." }, newVersionBanner: { title: "Nouvelle version du site détectée", description: "Une nouvelle version de votre site a été déployée. Rechargez l'application pour voir les derniers changements.", reloadButton: "Recharger" }, footer: { developer_view: "Vue développeur" }, alert: { mdcFormatting: "Formatage appliqué pour s'aligner sur le standard de syntaxe MDC." }, conflict: { title: "Conflit détecté", repository: "Dépôt", branch: "Branche", file: "Fichier", description: "Le contenu sur GitHub diffère de la version de votre site web. Assurez-vous que vos dernières modifications sont déployées et actualisez la page.", githubVersion: "GitHub", websiteVersion: "Site Web" }, nav: { content: "Contenu", media: "Média" }, placeholders: { commitMessage: "Message de commit", order: "N°", fileName: "Nom du fichier" }, validation: { commitRequired: "Message de commit requis", nameEmpty: "Le nom ne peut pas être vide", nameEndsWithDot: "Le nom ne peut pas se terminer par '.'", nameStartsWithSlash: "Le nom ne peut pas commencer par '/'", nameExists: "Ce nom existe déjà" }, media: { altFilePreview: "Aperçu du fichier", altImagePreview: "Aperçu de l'image", playAudio: "Lire l'audio", audioTagNotSupported: "Votre navigateur ne supporte pas la balise audio.", playVideo: "Lire la vidéo", videoTagNotSupported: "Votre navigateur ne supporte pas la balise vidéo.", metaWidth: "Largeur", metaHeight: "Hauteur", metaType: "Type", metaSize: "Taille", fileName: "Nom du fichier", publicPath: "Chemin public", githubPath: "Chemin GitHub", markdown: "Markdown" }, aria: { openActions: "Ouvrir les actions", cancel: "Annuler", submit: "Valider" }, actions: { confirmAction: "Cliquez à nouveau pour {action}", verbs: { create: "créer", delete: "supprimer", rename: "renommer", upload: "téléverser", duplicate: "dupliquer" }, labels: { "create-document": "Nouveau fichier", "create-document-folder": "Nouveau dossier", "create-media-folder": "Nouveau dossier média", "rename-item": "Renommer", "delete-item": "Supprimer", "upload-media": "Téléverser un média", "duplicate-item": "Dupliquer", "revert-item": "Annuler les modifications", "publish-branch": "Publier la branche" }, tooltips: { "revert-item": "Annuler les modifications", "create-document": "Créer un nouveau fichier", "upload-media": "Téléverser un média", "create-document-folder": "Créer un nouveau dossier", "create-media-folder": "Créer un nouveau dossier", "rename-item": "Renommer le fichier", "duplicate-item": "Dupliquer le fichier", "delete-item": "Supprimer le fichier", "publish-branch": "Publier la branche" } }, items: { itemCount: "1 élément | {count} éléments" }, monaco: { headings: { h1: "Titre 1", h2: "Titre 2", h3: "Titre 3" }, styles: { bold: "Gras", italic: "Italique" }, lists: { bulleted: "Liste à puces", numbered: "Liste numérotée" }, other: { emojis: "Émojis", blockquote: "Citation", code: "Bloc de code", inlineCode: "Code (en ligne)", link: "Lien", image: "Image" }, writeSomething: "Écrivez quelque chose", docs: { path: "Chemin dans le projet :", props: "Props", slots: "Slots", type: "type", required: "requis", default: "défaut" } } }, i = {
|
|
2
|
+
studio: e
|
|
3
|
+
};
|
|
4
|
+
export {
|
|
5
|
+
i as default,
|
|
6
|
+
e as studio
|
|
7
|
+
};
|
package/dist/app/main.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export declare enum AudioFileExtension {
|
|
|
28
28
|
|
|
29
29
|
export declare interface BaseItem {
|
|
30
30
|
id: string;
|
|
31
|
+
fsPath?: string;
|
|
31
32
|
extension: string;
|
|
32
33
|
stem: string;
|
|
33
34
|
path?: string;
|
|
@@ -38,6 +39,12 @@ export declare interface CommitFilesOptions extends GitBaseOptions {
|
|
|
38
39
|
message: string;
|
|
39
40
|
}
|
|
40
41
|
|
|
42
|
+
export declare interface CommitResult {
|
|
43
|
+
success: boolean;
|
|
44
|
+
commitSha: string;
|
|
45
|
+
url: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
41
48
|
export declare interface ComponentMeta {
|
|
42
49
|
name: string;
|
|
43
50
|
path: string;
|
|
@@ -49,7 +56,7 @@ export declare interface ComponentMeta {
|
|
|
49
56
|
}
|
|
50
57
|
|
|
51
58
|
export declare interface ContentConflict {
|
|
52
|
-
|
|
59
|
+
remoteContent: string;
|
|
53
60
|
localContent: string;
|
|
54
61
|
}
|
|
55
62
|
|
|
@@ -86,10 +93,9 @@ declare const _default: {};
|
|
|
86
93
|
export default _default;
|
|
87
94
|
|
|
88
95
|
export declare interface DraftItem<T = DatabaseItem | MediaItem> {
|
|
89
|
-
id: string;
|
|
90
96
|
fsPath: string;
|
|
91
97
|
status: DraftStatus;
|
|
92
|
-
|
|
98
|
+
remoteFile?: GitFile;
|
|
93
99
|
original?: T;
|
|
94
100
|
modified?: T;
|
|
95
101
|
/**
|
|
@@ -129,18 +135,22 @@ export declare interface GitBaseOptions {
|
|
|
129
135
|
authorEmail: string;
|
|
130
136
|
}
|
|
131
137
|
|
|
132
|
-
export declare interface
|
|
138
|
+
export declare interface GitFile {
|
|
139
|
+
provider: GitProviderType;
|
|
133
140
|
name: string;
|
|
134
141
|
path: string;
|
|
135
142
|
sha: string;
|
|
136
143
|
size: number;
|
|
137
144
|
url: string;
|
|
145
|
+
content?: string;
|
|
146
|
+
encoding?: 'utf-8' | 'base64';
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export declare interface GithubFile extends GitFile {
|
|
138
150
|
html_url: string;
|
|
139
151
|
git_url: string;
|
|
140
152
|
download_url: string;
|
|
141
153
|
type: string;
|
|
142
|
-
content?: string;
|
|
143
|
-
encoding?: string;
|
|
144
154
|
_links: {
|
|
145
155
|
self: string;
|
|
146
156
|
git: string;
|
|
@@ -148,11 +158,40 @@ export declare interface GithubFile {
|
|
|
148
158
|
};
|
|
149
159
|
}
|
|
150
160
|
|
|
161
|
+
export declare interface GitLabFile extends GitFile {
|
|
162
|
+
file_path: string;
|
|
163
|
+
ref: string;
|
|
164
|
+
blob_id: string;
|
|
165
|
+
commit_id: string;
|
|
166
|
+
last_commit_id: string;
|
|
167
|
+
}
|
|
168
|
+
|
|
151
169
|
export declare interface GitOptions extends GitBaseOptions {
|
|
170
|
+
provider: GitProviderType | null;
|
|
152
171
|
rootDir: string;
|
|
153
172
|
token: string;
|
|
173
|
+
instanceUrl?: string;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export declare interface GitProviderAPI {
|
|
177
|
+
fetchFile(path: string, options?: {
|
|
178
|
+
cached?: boolean;
|
|
179
|
+
}): Promise<GitFile | null>;
|
|
180
|
+
commitFiles(files: RawFile[], message: string): Promise<CommitResult | null>;
|
|
181
|
+
getRepositoryUrl(): string;
|
|
182
|
+
getBranchUrl(): string;
|
|
183
|
+
getCommitUrl(sha: string): string;
|
|
184
|
+
getContentRootDirUrl(): string;
|
|
185
|
+
getRepositoryInfo(): {
|
|
186
|
+
owner: string;
|
|
187
|
+
repo: string;
|
|
188
|
+
branch: string;
|
|
189
|
+
provider: GitProviderType | null;
|
|
190
|
+
};
|
|
154
191
|
}
|
|
155
192
|
|
|
193
|
+
export declare type GitProviderType = 'github' | 'gitlab';
|
|
194
|
+
|
|
156
195
|
export declare enum ImageFileExtension {
|
|
157
196
|
PNG = "png",
|
|
158
197
|
JPG = "jpg",
|
|
@@ -186,11 +225,16 @@ export declare interface RenameFileParams {
|
|
|
186
225
|
}
|
|
187
226
|
|
|
188
227
|
export declare interface Repository {
|
|
189
|
-
provider:
|
|
228
|
+
provider: GitProviderType | null;
|
|
190
229
|
owner: string;
|
|
191
230
|
repo: string;
|
|
192
231
|
branch: string;
|
|
193
232
|
rootDir: string;
|
|
233
|
+
/**
|
|
234
|
+
* Can be used to specify the instance URL for self-hosted GitLab instances.
|
|
235
|
+
* @default 'https://gitlab.com'
|
|
236
|
+
*/
|
|
237
|
+
instanceUrl?: string;
|
|
194
238
|
}
|
|
195
239
|
|
|
196
240
|
export declare interface StudioAction<K extends StudioItemActionId | StudioBranchActionId> {
|
|
@@ -224,6 +268,7 @@ export declare interface StudioHost {
|
|
|
224
268
|
meta: {
|
|
225
269
|
dev: boolean;
|
|
226
270
|
components: () => ComponentMeta[];
|
|
271
|
+
defaultLocale: string;
|
|
227
272
|
};
|
|
228
273
|
on: {
|
|
229
274
|
routeChange: (fn: (to: RouteLocationNormalized, from: RouteLocationNormalized) => void) => void;
|
|
@@ -231,8 +276,9 @@ export declare interface StudioHost {
|
|
|
231
276
|
beforeUnload: (fn: (event: BeforeUnloadEvent) => void) => void;
|
|
232
277
|
colorModeChange: (fn: (colorMode: 'light' | 'dark') => void) => void;
|
|
233
278
|
manifestUpdate: (fn: (id: string) => void) => void;
|
|
234
|
-
documentUpdate: (fn: (
|
|
235
|
-
mediaUpdate: (fn: (
|
|
279
|
+
documentUpdate: (fn: (fsPath: string, type: 'remove' | 'update') => void) => void;
|
|
280
|
+
mediaUpdate: (fn: (fsPath: string, type: 'remove' | 'update') => void) => void;
|
|
281
|
+
requestDocumentEdit: (fn: (fsPath: string) => void) => void;
|
|
236
282
|
};
|
|
237
283
|
ui: {
|
|
238
284
|
colorMode: 'light' | 'dark';
|
|
@@ -244,23 +290,33 @@ export declare interface StudioHost {
|
|
|
244
290
|
};
|
|
245
291
|
repository: Repository;
|
|
246
292
|
document: {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
293
|
+
db: {
|
|
294
|
+
get: (fsPath: string) => Promise<DatabaseItem | undefined>;
|
|
295
|
+
list: () => Promise<DatabaseItem[]>;
|
|
296
|
+
upsert: (fsPath: string, document: DatabaseItem) => Promise<void>;
|
|
297
|
+
create: (fsPath: string, content: string) => Promise<DatabaseItem>;
|
|
298
|
+
delete: (fsPath: string) => Promise<void>;
|
|
299
|
+
};
|
|
300
|
+
utils: {
|
|
301
|
+
areEqual: (document1: DatabaseItem, document2: DatabaseItem) => boolean;
|
|
302
|
+
isMatchingContent: (content: string, document: DatabaseItem) => Promise<boolean>;
|
|
303
|
+
pickReservedKeys: (document: DatabaseItem) => DatabaseItem;
|
|
304
|
+
removeReservedKeys: (document: DatabaseItem) => DatabaseItem;
|
|
305
|
+
detectActives: () => Array<{
|
|
306
|
+
fsPath: string;
|
|
307
|
+
title: string;
|
|
308
|
+
}>;
|
|
309
|
+
};
|
|
310
|
+
generate: {
|
|
311
|
+
documentFromContent: (id: string, content: string) => Promise<DatabaseItem | null>;
|
|
312
|
+
contentFromDocument: (document: DatabaseItem) => Promise<string | null>;
|
|
313
|
+
};
|
|
257
314
|
};
|
|
258
315
|
media: {
|
|
259
|
-
get: (
|
|
260
|
-
getFileSystemPath: (id: string) => string;
|
|
316
|
+
get: (fsPath: string) => Promise<MediaItem>;
|
|
261
317
|
list: () => Promise<MediaItem[]>;
|
|
262
|
-
upsert: (
|
|
263
|
-
delete: (
|
|
318
|
+
upsert: (fsPath: string, media: MediaItem) => Promise<void>;
|
|
319
|
+
delete: (fsPath: string) => Promise<void>;
|
|
264
320
|
};
|
|
265
321
|
user: {
|
|
266
322
|
get: () => StudioUser;
|
|
@@ -291,31 +347,25 @@ export declare interface StudioLocation {
|
|
|
291
347
|
}
|
|
292
348
|
|
|
293
349
|
export declare interface StudioUser {
|
|
294
|
-
|
|
295
|
-
|
|
350
|
+
providerId: string;
|
|
351
|
+
accessToken: string;
|
|
296
352
|
name: string;
|
|
297
353
|
avatar: string;
|
|
298
354
|
email: string;
|
|
299
|
-
provider:
|
|
355
|
+
provider: GitProviderType | 'google';
|
|
300
356
|
}
|
|
301
357
|
|
|
302
358
|
export declare interface TreeItem {
|
|
303
359
|
name: string;
|
|
304
360
|
fsPath: string;
|
|
305
361
|
type: 'file' | 'directory' | 'root';
|
|
306
|
-
prefix:
|
|
307
|
-
collections: string[];
|
|
362
|
+
prefix: string | null;
|
|
308
363
|
status?: TreeStatus;
|
|
309
364
|
routePath?: string;
|
|
310
365
|
children?: TreeItem[];
|
|
311
366
|
hide?: boolean;
|
|
312
367
|
}
|
|
313
368
|
|
|
314
|
-
export declare enum TreeRootId {
|
|
315
|
-
Content = "content",
|
|
316
|
-
Media = "public-assets"
|
|
317
|
-
}
|
|
318
|
-
|
|
319
369
|
export declare enum TreeStatus {
|
|
320
370
|
Deleted = "deleted",
|
|
321
371
|
Created = "created",
|