@pipelab/shared 2.0.1-beta.20
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/.turbo/turbo-build.log +41 -0
- package/.turbo/turbo-lint.log +136 -0
- package/CHANGELOG.md +167 -0
- package/LICENSE +110 -0
- package/LICENSE.md +110 -0
- package/README.md +3 -0
- package/dist/index.d.mts +3603 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +43763 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +53 -0
- package/src/apis.ts +191 -0
- package/src/build-history.ts +127 -0
- package/src/config/migrators.ts +308 -0
- package/src/config/projects-definition.ts +25 -0
- package/src/config/projects-types.ts +25 -0
- package/src/config/projects.ts +1 -0
- package/src/config/settings-definition.ts +21 -0
- package/src/config/settings.ts +21 -0
- package/src/config.schema.ts +149 -0
- package/src/database.types.ts +95 -0
- package/src/errors.ts +11 -0
- package/src/evaluator.ts +58 -0
- package/src/fmt.ts +5 -0
- package/src/graph.ts +207 -0
- package/src/i18n/de_DE.json +86 -0
- package/src/i18n/en_US.json +147 -0
- package/src/i18n/es_ES.json +86 -0
- package/src/i18n/fr_FR.json +89 -0
- package/src/i18n/pt_BR.json +86 -0
- package/src/i18n/zh_CN.json +86 -0
- package/src/i18n-utils.ts +10 -0
- package/src/index.ts +51 -0
- package/src/ipc.types.ts +73 -0
- package/src/logger.ts +20 -0
- package/src/migrations/model.ts +1 -0
- package/src/migrations/projects.ts +1 -0
- package/src/migrations/settings.ts +1 -0
- package/src/model.test.ts +214 -0
- package/src/model.ts +233 -0
- package/src/plugins/definitions.ts +472 -0
- package/src/plugins.ts +20 -0
- package/src/quickjs.ts +98 -0
- package/src/save-location.ts +42 -0
- package/src/subscription-errors.ts +87 -0
- package/src/supabase.ts +28 -0
- package/src/tests/helpers.ts +5 -0
- package/src/types.ts +3 -0
- package/src/utils.ts +3 -0
- package/src/validation.ts +16 -0
- package/src/variables.ts +27 -0
- package/src/wasm.d.ts +9 -0
- package/src/websocket.types.ts +186 -0
- package/tsconfig.json +13 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
{
|
|
2
|
+
"settings": {
|
|
3
|
+
"darkTheme": "Dark theme",
|
|
4
|
+
"autosave": "Autosave",
|
|
5
|
+
"autosaveDescription": "When enabled, your changes will be automatically saved as you edit your pipelines.",
|
|
6
|
+
"language": "Language",
|
|
7
|
+
"languageOptions": {
|
|
8
|
+
"en-US": "English",
|
|
9
|
+
"fr-FR": "French",
|
|
10
|
+
"pt-BR": "Portuguese",
|
|
11
|
+
"zh-CN": "Chinese",
|
|
12
|
+
"es-ES": "Spanish",
|
|
13
|
+
"de-DE": "German"
|
|
14
|
+
},
|
|
15
|
+
"tabs": {
|
|
16
|
+
"general": "General",
|
|
17
|
+
"storage": "Storage",
|
|
18
|
+
"integrations": "Integrations",
|
|
19
|
+
"advanced": "Advanced",
|
|
20
|
+
"billing": "Billing"
|
|
21
|
+
},
|
|
22
|
+
"clearTempFolders": "Automatically clean up temporary files",
|
|
23
|
+
"clearTempFoldersDescription": "When enabled, all temporary files created during pipeline execution will be automatically deleted after the pipeline completes. This helps save disk space but you may need to copy artifacts yourself to preserve them.",
|
|
24
|
+
"pipeline-cache-folder": "Pipeline Cache Folder:",
|
|
25
|
+
"enter-or-browse-for-a-folder": "Enter or browse for a folder",
|
|
26
|
+
"browse": "Browse",
|
|
27
|
+
"manage-where-the-app-stores-temporary-and-cache-files": "Manage where the app stores temporary and cache files.",
|
|
28
|
+
"clear-cache": "Clear cache",
|
|
29
|
+
"reset-to-default": "Reset to default",
|
|
30
|
+
"manage-subscription": "Manage Subscription",
|
|
31
|
+
"renewal-date": "Renewal Date",
|
|
32
|
+
"start-date": "Start Date:",
|
|
33
|
+
"cache-cleared-successfully": "Cache cleared successfully",
|
|
34
|
+
"failed-to-clear-cache-error-message": "Failed to clear cache: {0}",
|
|
35
|
+
"failed-to-reset-cache-folder-error-message": "Failed to reset cache folder: {0}",
|
|
36
|
+
"select-cache-folder": "Select Cache Folder",
|
|
37
|
+
"restart-dashboard-tour": "Restart Dashboard Tour",
|
|
38
|
+
"restart-editor-tour": "Restart Editor Tour",
|
|
39
|
+
"tour-reset-success": "Tour has been reset. It will start the next time you visit the page."
|
|
40
|
+
},
|
|
41
|
+
"headers": {
|
|
42
|
+
"dashboard": "Dashboard",
|
|
43
|
+
"scenarios": "Scenarios",
|
|
44
|
+
"editor": "Editor",
|
|
45
|
+
"billing": "Billing",
|
|
46
|
+
"team": "Team"
|
|
47
|
+
},
|
|
48
|
+
"navigation": {
|
|
49
|
+
"build-history": "Build History"
|
|
50
|
+
},
|
|
51
|
+
"base": {
|
|
52
|
+
"close": "Close",
|
|
53
|
+
"save": "Save",
|
|
54
|
+
"run": "Run",
|
|
55
|
+
"cancel": "Cancel",
|
|
56
|
+
"end": "End",
|
|
57
|
+
"delete": "Delete",
|
|
58
|
+
"logs": "Logs",
|
|
59
|
+
"ok": "OK",
|
|
60
|
+
"add": "Add",
|
|
61
|
+
"search": "Search..."
|
|
62
|
+
},
|
|
63
|
+
"editor": {
|
|
64
|
+
"invalid-file-content": "Invalid file content",
|
|
65
|
+
"welcome-back": "Welcome back!",
|
|
66
|
+
"please-log-in-to-run-a-scenario": "Please log in to run a scenario",
|
|
67
|
+
"execution-done": "Execution done",
|
|
68
|
+
"your-project-has-been-executed-successfully": "Your project has been executed successfully",
|
|
69
|
+
"execution-failed": "Execution failed",
|
|
70
|
+
"project-has-encountered-an-error": "Project has encountered an error:",
|
|
71
|
+
"project-saved": "Project saved",
|
|
72
|
+
"your-project-has-be-saved-successfully": "Your project has be saved successfully",
|
|
73
|
+
"view-history": "History",
|
|
74
|
+
"add-plugin": "Add plugin",
|
|
75
|
+
"display-advanced-nodes": "Display advanced nodes"
|
|
76
|
+
},
|
|
77
|
+
"home": {
|
|
78
|
+
"invalid-preset": "Invalid preset",
|
|
79
|
+
"store-project-on-the-cloud": "Store project on the cloud",
|
|
80
|
+
"cloud": "Cloud",
|
|
81
|
+
"store-project-locally": "Store project locally",
|
|
82
|
+
"local": "Local",
|
|
83
|
+
"invalid-number-of-paths-selected": "Invalid number of paths selected",
|
|
84
|
+
"pipelab-project": "Pipelab Project",
|
|
85
|
+
"choose-a-new-path": "Choose a new path",
|
|
86
|
+
"invalid-file-type": "Invalid file type",
|
|
87
|
+
"create-project": "Create project",
|
|
88
|
+
"duplicate-project": "Duplicate project",
|
|
89
|
+
"project-name": "Project Name",
|
|
90
|
+
"new-project": "New Project",
|
|
91
|
+
"new-pipeline": "New pipeline",
|
|
92
|
+
"open": "Open",
|
|
93
|
+
"import": "Import",
|
|
94
|
+
"pipeline-name": "Pipeline Name",
|
|
95
|
+
"your-projects": "Your projects",
|
|
96
|
+
"no-projects-yet": "No projects yet",
|
|
97
|
+
"no-pipelines-yet": "No pipelines yet",
|
|
98
|
+
"delete-project": "Delete project",
|
|
99
|
+
"confirm-delete-project": "Are you sure you want to delete this project? This action cannot be undone.",
|
|
100
|
+
"cannot-delete-project": "Cannot delete project",
|
|
101
|
+
"project-not-empty": "This project contains pipelines. Please delete them first.",
|
|
102
|
+
"transfer": "Transfer",
|
|
103
|
+
"transfer-successful": "Transfer Successful",
|
|
104
|
+
"pipeline-transferred": "Pipeline transferred successfully",
|
|
105
|
+
"select-project": "Select Project",
|
|
106
|
+
"build-history": "Build History",
|
|
107
|
+
"duplicate": "Duplicate",
|
|
108
|
+
"rename-project": "Rename Project",
|
|
109
|
+
"new-project-name": "New Project Name",
|
|
110
|
+
"premium-feature": "This is a premium feature",
|
|
111
|
+
"migrate-warning": "This file type will soon be not supported anymore. Please migrate it using the option from the menu",
|
|
112
|
+
"simple-pipeline": "Simple pipeline",
|
|
113
|
+
"advanced-pipeline": "Advanced pipeline",
|
|
114
|
+
"new-simple-project": "New simple project",
|
|
115
|
+
"new-advanced-project": "New advanced project",
|
|
116
|
+
"store-project-internally": "Store project internally",
|
|
117
|
+
"internal": "Internal",
|
|
118
|
+
"confirm-migration-message": "Are you sure you want to migrate this pipeline to internal storage? This will create a copy in the internal storage managed by Pipelab.",
|
|
119
|
+
"migrate-pipeline": "Migrate Pipeline",
|
|
120
|
+
"migration-success": "Pipeline migrated successfully",
|
|
121
|
+
"migrate-to-internal": "Migrate to Internal"
|
|
122
|
+
},
|
|
123
|
+
"scenarios": {
|
|
124
|
+
"scenarios": "Scenarios"
|
|
125
|
+
},
|
|
126
|
+
"tour": {
|
|
127
|
+
"start-tour": "Start Tour",
|
|
128
|
+
"projects-list-title": "Project Navigator",
|
|
129
|
+
"projects-list-description": "This sidebar shows all your projects. Selecting a project will display its associated pipelines in the main area.",
|
|
130
|
+
"add-project-title": "Create New Project",
|
|
131
|
+
"add-project-description": "Projects help you organize your pipelines by topic or client. Click here to start a fresh project.",
|
|
132
|
+
"new-pipeline-title": "Build a Pipeline",
|
|
133
|
+
"new-pipeline-description": "Ready to automate? Create a new pipeline to start adding logic and blocks.",
|
|
134
|
+
"project-actions-title": "Project Management",
|
|
135
|
+
"project-actions-description": "Use these buttons to rename or delete the currently selected project.",
|
|
136
|
+
"editor-canvas-title": "The Visual Canvas",
|
|
137
|
+
"editor-canvas-description": "This is your workspace. Drag and drop blocks here to define your automation flow from top to bottom.",
|
|
138
|
+
"editor-save-title": "Save Progress",
|
|
139
|
+
"editor-save-description": "Keep your changes safe. We recommend saving frequently, especially after complex logic changes.",
|
|
140
|
+
"editor-run-title": "Test your Automation",
|
|
141
|
+
"editor-run-description": "Click Run to start the execution. Pipelab will process each block and provide real-time feedback.",
|
|
142
|
+
"editor-logs-title": "Execution Logs",
|
|
143
|
+
"editor-logs-description": "The logs window shows exactly what's happening during execution. Great for debugging and monitoring progress.",
|
|
144
|
+
"editor-close-title": "Exit Editor",
|
|
145
|
+
"editor-close-description": "Done for now? Return to the dashboard to manage other projects or pipelines."
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"settings": {
|
|
3
|
+
"darkTheme": "Dark theme",
|
|
4
|
+
"language": "Language",
|
|
5
|
+
"languageOptions": {
|
|
6
|
+
"en-US": "English",
|
|
7
|
+
"fr-FR": "French",
|
|
8
|
+
"pt-BR": "Portuguese",
|
|
9
|
+
"zh-CN": "Chinese",
|
|
10
|
+
"es-ES": "Spanish",
|
|
11
|
+
"de-DE": "German"
|
|
12
|
+
},
|
|
13
|
+
"tabs": {
|
|
14
|
+
"general": "General",
|
|
15
|
+
"storage": "Storage",
|
|
16
|
+
"integrations": "Integrations",
|
|
17
|
+
"advanced": "Advanced",
|
|
18
|
+
"billing": "Billing"
|
|
19
|
+
},
|
|
20
|
+
"clearTempFolders": "Automatically clean up temporary files",
|
|
21
|
+
"clearTempFoldersDescription": "Cuando está habilitado, todos los archivos temporales creados durante la ejecución del pipeline se eliminarán automáticamente después de que el pipeline se complete. Esto ayuda a ahorrar espacio en el disco, pero puede que necesite copiar los artefactos usted mismo para preservarlos.",
|
|
22
|
+
"pipeline-cache-folder": "Pipeline Cache Folder:",
|
|
23
|
+
"enter-or-browse-for-a-folder": "Enter or browse for a folder",
|
|
24
|
+
"browse": "Browse",
|
|
25
|
+
"manage-where-the-app-stores-temporary-and-cache-files": "Manage where the app stores temporary and cache files.",
|
|
26
|
+
"clear-cache": "Clear cache",
|
|
27
|
+
"reset-to-default": "Reset to default",
|
|
28
|
+
"manage-subscription": "Manage Subscription",
|
|
29
|
+
"renewal-date": "Renewal Date",
|
|
30
|
+
"start-date": "Start Date:",
|
|
31
|
+
"cache-cleared-successfully": "Cache cleared successfully",
|
|
32
|
+
"failed-to-clear-cache-error-message": "Failed to clear cache: {0}",
|
|
33
|
+
"failed-to-reset-cache-folder-error-message": "Failed to reset cache folder: {0}",
|
|
34
|
+
"select-cache-folder": "Select Cache Folder"
|
|
35
|
+
},
|
|
36
|
+
"headers": {
|
|
37
|
+
"dashboard": "Dashboard",
|
|
38
|
+
"scenarios": "Scenarios",
|
|
39
|
+
"editor": "Editor",
|
|
40
|
+
"billing": "Billing",
|
|
41
|
+
"team": "Team"
|
|
42
|
+
},
|
|
43
|
+
"base": {
|
|
44
|
+
"close": "Cerrar",
|
|
45
|
+
"save": "Guardar",
|
|
46
|
+
"run": "Ejecutar",
|
|
47
|
+
"cancel": "Cancelar",
|
|
48
|
+
"end": "Fin",
|
|
49
|
+
"delete": "Eliminar",
|
|
50
|
+
"logs": "Registros",
|
|
51
|
+
"ok": "Aceptar",
|
|
52
|
+
"add": "Añadir"
|
|
53
|
+
},
|
|
54
|
+
"editor": {
|
|
55
|
+
"invalid-file-content": "Invalid file content",
|
|
56
|
+
"welcome-back": "Welcome back!",
|
|
57
|
+
"please-log-in-to-run-a-scenario": "Please log in to run a scenario",
|
|
58
|
+
"execution-done": "Execution done",
|
|
59
|
+
"your-project-has-been-executed-successfully": "Your project has been executed successfully",
|
|
60
|
+
"execution-failed": "Execution failed",
|
|
61
|
+
"project-has-encountered-an-error": "Project has encountered an error:",
|
|
62
|
+
"project-saved": "Project saved",
|
|
63
|
+
"your-project-has-be-saved-successfully": "Your project has be saved successfully"
|
|
64
|
+
},
|
|
65
|
+
"home": {
|
|
66
|
+
"invalid-preset": "Invalid preset",
|
|
67
|
+
"store-project-on-the-cloud": "Store project on the cloud",
|
|
68
|
+
"cloud": "Cloud",
|
|
69
|
+
"store-project-locally": "Store project locally",
|
|
70
|
+
"local": "Local",
|
|
71
|
+
"invalid-number-of-paths-selected": "Invalid number of paths selected",
|
|
72
|
+
"pipelab-project": "Pipelab Project",
|
|
73
|
+
"choose-a-new-path": "Choose a new path",
|
|
74
|
+
"invalid-file-type": "Invalid file type",
|
|
75
|
+
"create-project": "Create project",
|
|
76
|
+
"duplicate-project": "Duplicate project",
|
|
77
|
+
"project-name": "Project Name",
|
|
78
|
+
"new-project": "New Project",
|
|
79
|
+
"open": "Open",
|
|
80
|
+
"your-projects": "Your projects",
|
|
81
|
+
"no-projects-yet": "No projects yet"
|
|
82
|
+
},
|
|
83
|
+
"scenarios": {
|
|
84
|
+
"scenarios": "Scenarios"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"settings": {
|
|
3
|
+
"darkTheme": "Thème sombre",
|
|
4
|
+
"language": "Langue",
|
|
5
|
+
"languageOptions": {
|
|
6
|
+
"en-US": "English",
|
|
7
|
+
"fr-FR": "Français",
|
|
8
|
+
"pt-BR": "Portuguese",
|
|
9
|
+
"zh-CN": "Chinese",
|
|
10
|
+
"es-ES": "Spanish",
|
|
11
|
+
"de-DE": "German"
|
|
12
|
+
},
|
|
13
|
+
"tabs": {
|
|
14
|
+
"general": "Général",
|
|
15
|
+
"storage": "Stockage",
|
|
16
|
+
"integrations": "Intégrations",
|
|
17
|
+
"advanced": "Avancé",
|
|
18
|
+
"billing": "Facturation"
|
|
19
|
+
},
|
|
20
|
+
"clearTempFolders": "Nettoyer automatiquement les fichiers temporaires",
|
|
21
|
+
"clearTempFoldersDescription": "Lorsque cette option est activée, tous les fichiers temporaires créés lors de l'exécution du pipeline seront automatiquement supprimés une fois le pipeline terminé. Cela permet d'économiser de l'espace disque, mais vous devrez peut-être copier vous-même des artefacts pour les préserver.",
|
|
22
|
+
"pipeline-cache-folder": "Pipeline Cache Folder:",
|
|
23
|
+
"enter-or-browse-for-a-folder": "Enter or browse for a folder",
|
|
24
|
+
"browse": "Browse",
|
|
25
|
+
"manage-where-the-app-stores-temporary-and-cache-files": "Manage where the app stores temporary and cache files.",
|
|
26
|
+
"clear-cache": "Clear cache",
|
|
27
|
+
"reset-to-default": "Reset to default",
|
|
28
|
+
"manage-subscription": "Manage Subscription",
|
|
29
|
+
"renewal-date": "Renewal Date",
|
|
30
|
+
"start-date": "Start Date:",
|
|
31
|
+
"cache-cleared-successfully": "Cache cleared successfully",
|
|
32
|
+
"failed-to-clear-cache-error-message": "Failed to clear cache: {0}",
|
|
33
|
+
"failed-to-reset-cache-folder-error-message": "Failed to reset cache folder: {0}",
|
|
34
|
+
"select-cache-folder": "Select Cache Folder"
|
|
35
|
+
},
|
|
36
|
+
"headers": {
|
|
37
|
+
"dashboard": "Tableau de bord",
|
|
38
|
+
"scenarios": "Scénarios",
|
|
39
|
+
"editor": "Éditeur",
|
|
40
|
+
"billing": "Facturation",
|
|
41
|
+
"team": "Équipe"
|
|
42
|
+
},
|
|
43
|
+
"base": {
|
|
44
|
+
"close": "Fermer",
|
|
45
|
+
"save": "Enregistrer",
|
|
46
|
+
"run": "Exécuter",
|
|
47
|
+
"cancel": "Annuler",
|
|
48
|
+
"end": "Fin",
|
|
49
|
+
"delete": "Supprimer",
|
|
50
|
+
"logs": "Logs",
|
|
51
|
+
"ok": "OK",
|
|
52
|
+
"add": "Ajouter",
|
|
53
|
+
"search": "Rechercher..."
|
|
54
|
+
},
|
|
55
|
+
"editor": {
|
|
56
|
+
"invalid-file-content": "Contenu du fichier invalide",
|
|
57
|
+
"welcome-back": "Bon retour parmi nous !",
|
|
58
|
+
"please-log-in-to-run-a-scenario": "Veuillez vous connecter pour exécuter un scénario",
|
|
59
|
+
"execution-done": "Exécution terminée",
|
|
60
|
+
"your-project-has-been-executed-successfully": "Votre projet a été exécuté avec succès",
|
|
61
|
+
"execution-failed": "Échec de l'exécution",
|
|
62
|
+
"project-has-encountered-an-error": "Le projet a rencontré une erreur :",
|
|
63
|
+
"project-saved": "Projet enregistré",
|
|
64
|
+
"your-project-has-be-saved-successfully": "Votre projet a été enregistré avec succès",
|
|
65
|
+
"add-plugin": "Ajouter un plugin",
|
|
66
|
+
"display-advanced-nodes": "Afficher les nœuds avancés"
|
|
67
|
+
},
|
|
68
|
+
"home": {
|
|
69
|
+
"invalid-preset": "Préréglage non valide",
|
|
70
|
+
"store-project-on-the-cloud": "Enregistrer le projet en ligne",
|
|
71
|
+
"cloud": "En ligne",
|
|
72
|
+
"store-project-locally": "Enregistrer le projet localement",
|
|
73
|
+
"local": "Local",
|
|
74
|
+
"invalid-number-of-paths-selected": "Nombre non valide de chemins sélectionnés",
|
|
75
|
+
"pipelab-project": "Projet Pipelab",
|
|
76
|
+
"choose-a-new-path": "Choisissez un nouveau chemin",
|
|
77
|
+
"invalid-file-type": "Type de fichier invalide",
|
|
78
|
+
"create-project": "Créer un projet",
|
|
79
|
+
"duplicate-project": "Dupliquer le projet",
|
|
80
|
+
"project-name": "Nom du projet",
|
|
81
|
+
"new-project": "Nouveau projet",
|
|
82
|
+
"open": "Ouvrir",
|
|
83
|
+
"your-projects": "Vos projets",
|
|
84
|
+
"no-projects-yet": "Aucun projet jusqu'à présent"
|
|
85
|
+
},
|
|
86
|
+
"scenarios": {
|
|
87
|
+
"scenarios": "Scénarios"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"settings": {
|
|
3
|
+
"darkTheme": "Tema escuro",
|
|
4
|
+
"language": "Idioma",
|
|
5
|
+
"languageOptions": {
|
|
6
|
+
"en-US": "English",
|
|
7
|
+
"fr-FR": "French",
|
|
8
|
+
"pt-BR": "Portuguese",
|
|
9
|
+
"zh-CN": "Chinese",
|
|
10
|
+
"es-ES": "Spanish",
|
|
11
|
+
"de-DE": "German"
|
|
12
|
+
},
|
|
13
|
+
"tabs": {
|
|
14
|
+
"general": "Geral",
|
|
15
|
+
"storage": "Armazenagem",
|
|
16
|
+
"integrations": "Integrações",
|
|
17
|
+
"advanced": "Avançado",
|
|
18
|
+
"billing": "Pagamento"
|
|
19
|
+
},
|
|
20
|
+
"clearTempFolders": "Automatically clean up temporary files",
|
|
21
|
+
"clearTempFoldersDescription": "When enabled, all temporary files created during pipeline execution will be automatically deleted after the pipeline completes. This helps save disk space but you may need to copy artifacts yourself to preserve them.",
|
|
22
|
+
"pipeline-cache-folder": "Pipeline Cache Folder:",
|
|
23
|
+
"enter-or-browse-for-a-folder": "Enter or browse for a folder",
|
|
24
|
+
"browse": "Browse",
|
|
25
|
+
"manage-where-the-app-stores-temporary-and-cache-files": "Manage where the app stores temporary and cache files.",
|
|
26
|
+
"clear-cache": "Clear cache",
|
|
27
|
+
"reset-to-default": "Reset to default",
|
|
28
|
+
"manage-subscription": "Manage Subscription",
|
|
29
|
+
"renewal-date": "Renewal Date",
|
|
30
|
+
"start-date": "Start Date:",
|
|
31
|
+
"cache-cleared-successfully": "Cache cleared successfully",
|
|
32
|
+
"failed-to-clear-cache-error-message": "Failed to clear cache: {0}",
|
|
33
|
+
"failed-to-reset-cache-folder-error-message": "Failed to reset cache folder: {0}",
|
|
34
|
+
"select-cache-folder": "Select Cache Folder"
|
|
35
|
+
},
|
|
36
|
+
"headers": {
|
|
37
|
+
"dashboard": "Dashboard",
|
|
38
|
+
"scenarios": "Scenarios",
|
|
39
|
+
"editor": "Editor",
|
|
40
|
+
"billing": "Billing",
|
|
41
|
+
"team": "Team"
|
|
42
|
+
},
|
|
43
|
+
"base": {
|
|
44
|
+
"close": "Fechar",
|
|
45
|
+
"save": "Salvar",
|
|
46
|
+
"run": "Executar",
|
|
47
|
+
"cancel": "Cancelar",
|
|
48
|
+
"end": "Fim",
|
|
49
|
+
"delete": "Excluir",
|
|
50
|
+
"logs": "Logs",
|
|
51
|
+
"ok": "OK",
|
|
52
|
+
"add": "Adicionar"
|
|
53
|
+
},
|
|
54
|
+
"editor": {
|
|
55
|
+
"invalid-file-content": "Invalid file content",
|
|
56
|
+
"welcome-back": "Welcome back!",
|
|
57
|
+
"please-log-in-to-run-a-scenario": "Please log in to run a scenario",
|
|
58
|
+
"execution-done": "Execution done",
|
|
59
|
+
"your-project-has-been-executed-successfully": "Your project has been executed successfully",
|
|
60
|
+
"execution-failed": "Execution failed",
|
|
61
|
+
"project-has-encountered-an-error": "Project has encountered an error:",
|
|
62
|
+
"project-saved": "Project saved",
|
|
63
|
+
"your-project-has-be-saved-successfully": "Your project has be saved successfully"
|
|
64
|
+
},
|
|
65
|
+
"home": {
|
|
66
|
+
"invalid-preset": "Invalid preset",
|
|
67
|
+
"store-project-on-the-cloud": "Store project on the cloud",
|
|
68
|
+
"cloud": "Cloud",
|
|
69
|
+
"store-project-locally": "Store project locally",
|
|
70
|
+
"local": "Local",
|
|
71
|
+
"invalid-number-of-paths-selected": "Invalid number of paths selected",
|
|
72
|
+
"pipelab-project": "Pipelab Project",
|
|
73
|
+
"choose-a-new-path": "Choose a new path",
|
|
74
|
+
"invalid-file-type": "Invalid file type",
|
|
75
|
+
"create-project": "Create project",
|
|
76
|
+
"duplicate-project": "Duplicate project",
|
|
77
|
+
"project-name": "Project Name",
|
|
78
|
+
"new-project": "New Project",
|
|
79
|
+
"open": "Open",
|
|
80
|
+
"your-projects": "Your projects",
|
|
81
|
+
"no-projects-yet": "No projects yet"
|
|
82
|
+
},
|
|
83
|
+
"scenarios": {
|
|
84
|
+
"scenarios": "Scenarios"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"settings": {
|
|
3
|
+
"darkTheme": "Dark theme",
|
|
4
|
+
"language": "Language",
|
|
5
|
+
"languageOptions": {
|
|
6
|
+
"en-US": "English",
|
|
7
|
+
"fr-FR": "French",
|
|
8
|
+
"pt-BR": "Portuguese",
|
|
9
|
+
"zh-CN": "Chinese",
|
|
10
|
+
"es-ES": "Spanish",
|
|
11
|
+
"de-DE": "German"
|
|
12
|
+
},
|
|
13
|
+
"tabs": {
|
|
14
|
+
"general": "General",
|
|
15
|
+
"storage": "Storage",
|
|
16
|
+
"integrations": "Integrations",
|
|
17
|
+
"advanced": "Advanced",
|
|
18
|
+
"billing": "Billing"
|
|
19
|
+
},
|
|
20
|
+
"clearTempFolders": "Automatically clean up temporary files",
|
|
21
|
+
"clearTempFoldersDescription": "When enabled, all temporary files created during pipeline execution will be automatically deleted after the pipeline completes. This helps save disk space but you may need to copy artifacts yourself to preserve them.",
|
|
22
|
+
"pipeline-cache-folder": "Pipeline Cache Folder:",
|
|
23
|
+
"enter-or-browse-for-a-folder": "Enter or browse for a folder",
|
|
24
|
+
"browse": "Browse",
|
|
25
|
+
"manage-where-the-app-stores-temporary-and-cache-files": "Manage where the app stores temporary and cache files.",
|
|
26
|
+
"clear-cache": "Clear cache",
|
|
27
|
+
"reset-to-default": "Reset to default",
|
|
28
|
+
"manage-subscription": "Manage Subscription",
|
|
29
|
+
"renewal-date": "Renewal Date",
|
|
30
|
+
"start-date": "Start Date:",
|
|
31
|
+
"cache-cleared-successfully": "Cache cleared successfully",
|
|
32
|
+
"failed-to-clear-cache-error-message": "Failed to clear cache: {0}",
|
|
33
|
+
"failed-to-reset-cache-folder-error-message": "Failed to reset cache folder: {0}",
|
|
34
|
+
"select-cache-folder": "Select Cache Folder"
|
|
35
|
+
},
|
|
36
|
+
"headers": {
|
|
37
|
+
"dashboard": "Dashboard",
|
|
38
|
+
"scenarios": "Scenarios",
|
|
39
|
+
"editor": "Editor",
|
|
40
|
+
"billing": "Billing",
|
|
41
|
+
"team": "Team"
|
|
42
|
+
},
|
|
43
|
+
"base": {
|
|
44
|
+
"close": "关闭",
|
|
45
|
+
"save": "保存",
|
|
46
|
+
"run": "运行",
|
|
47
|
+
"cancel": "取消",
|
|
48
|
+
"end": "结束",
|
|
49
|
+
"delete": "删除",
|
|
50
|
+
"logs": "日志",
|
|
51
|
+
"ok": "确定",
|
|
52
|
+
"add": "添加"
|
|
53
|
+
},
|
|
54
|
+
"editor": {
|
|
55
|
+
"invalid-file-content": "Invalid file content",
|
|
56
|
+
"welcome-back": "Welcome back!",
|
|
57
|
+
"please-log-in-to-run-a-scenario": "Please log in to run a scenario",
|
|
58
|
+
"execution-done": "Execution done",
|
|
59
|
+
"your-project-has-been-executed-successfully": "Your project has been executed successfully",
|
|
60
|
+
"execution-failed": "Execution failed",
|
|
61
|
+
"project-has-encountered-an-error": "Project has encountered an error:",
|
|
62
|
+
"project-saved": "Project saved",
|
|
63
|
+
"your-project-has-be-saved-successfully": "Your project has be saved successfully"
|
|
64
|
+
},
|
|
65
|
+
"home": {
|
|
66
|
+
"invalid-preset": "Invalid preset",
|
|
67
|
+
"store-project-on-the-cloud": "Store project on the cloud",
|
|
68
|
+
"cloud": "Cloud",
|
|
69
|
+
"store-project-locally": "Store project locally",
|
|
70
|
+
"local": "Local",
|
|
71
|
+
"invalid-number-of-paths-selected": "Invalid number of paths selected",
|
|
72
|
+
"pipelab-project": "Pipelab Project",
|
|
73
|
+
"choose-a-new-path": "Choose a new path",
|
|
74
|
+
"invalid-file-type": "Invalid file type",
|
|
75
|
+
"create-project": "Create project",
|
|
76
|
+
"duplicate-project": "Duplicate project",
|
|
77
|
+
"project-name": "Project Name",
|
|
78
|
+
"new-project": "New Project",
|
|
79
|
+
"open": "Open",
|
|
80
|
+
"your-projects": "Your projects",
|
|
81
|
+
"no-projects-yet": "No projects yet"
|
|
82
|
+
},
|
|
83
|
+
"scenarios": {
|
|
84
|
+
"scenarios": "Scenarios"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import en_US from "./i18n/en_US.json";
|
|
2
|
+
import fr_FR from "./i18n/fr_FR.json";
|
|
3
|
+
import pt_BR from "./i18n/pt_BR.json";
|
|
4
|
+
import zh_CN from "./i18n/zh_CN.json";
|
|
5
|
+
import es_ES from "./i18n/es_ES.json";
|
|
6
|
+
import de_DE from "./i18n/de_DE.json";
|
|
7
|
+
|
|
8
|
+
type MessageSchema = typeof en_US;
|
|
9
|
+
export type Locales = "en-US" | "fr-FR" | "pt-BR" | "zh-CN" | "es-ES" | "de-DE";
|
|
10
|
+
export { MessageSchema, en_US, fr_FR, pt_BR, zh_CN, es_ES, de_DE };
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// 1. Critical Migrators - Explicitly imported then exported to satisfy Node.js ESM scanner
|
|
2
|
+
import {
|
|
3
|
+
appSettingsMigrator as _appSettingsMigrator,
|
|
4
|
+
defaultAppSettings as _defaultAppSettings,
|
|
5
|
+
fileRepoMigrations as _fileRepoMigrations,
|
|
6
|
+
defaultFileRepo as _defaultFileRepo,
|
|
7
|
+
savedFileMigrator as _savedFileMigrator,
|
|
8
|
+
configRegistry as _configRegistry,
|
|
9
|
+
} from "./config/migrators";
|
|
10
|
+
|
|
11
|
+
export const appSettingsMigrator = _appSettingsMigrator;
|
|
12
|
+
export const defaultAppSettings = _defaultAppSettings;
|
|
13
|
+
export const fileRepoMigrations = _fileRepoMigrations;
|
|
14
|
+
export const defaultFileRepo = _defaultFileRepo;
|
|
15
|
+
export const savedFileMigrator = _savedFileMigrator;
|
|
16
|
+
export const configRegistry = _configRegistry;
|
|
17
|
+
|
|
18
|
+
// 2. Types
|
|
19
|
+
export type { Migrator } from "./config/migrators";
|
|
20
|
+
|
|
21
|
+
// 3. Core Library exports (Systematic restoration)
|
|
22
|
+
export * from "./apis";
|
|
23
|
+
export * from "./build-history";
|
|
24
|
+
export * from "./config.schema";
|
|
25
|
+
export * from "./database.types";
|
|
26
|
+
export * from "./evaluator";
|
|
27
|
+
export * from "./fmt";
|
|
28
|
+
export * from "./graph";
|
|
29
|
+
export * from "./i18n-utils";
|
|
30
|
+
export * from "./ipc.types";
|
|
31
|
+
export * from "./logger";
|
|
32
|
+
export * from "./model";
|
|
33
|
+
export * from "./plugins";
|
|
34
|
+
export * from "./plugins/definitions"; // <-- RE-ADDED
|
|
35
|
+
export * from "./quickjs";
|
|
36
|
+
export * from "./save-location";
|
|
37
|
+
export * from "./subscription-errors";
|
|
38
|
+
export * from "./supabase";
|
|
39
|
+
export * from "./types";
|
|
40
|
+
export * from "./utils";
|
|
41
|
+
export * from "./validation";
|
|
42
|
+
export * from "./variables";
|
|
43
|
+
export * from "./websocket.types";
|
|
44
|
+
|
|
45
|
+
// 4. Configuration Sub-packages
|
|
46
|
+
export * from "./config/projects-definition"; // <-- RE-ADDED
|
|
47
|
+
export * from "./config/settings-definition"; // <-- RE-ADDED
|
|
48
|
+
export * from "./config/projects-types";
|
|
49
|
+
|
|
50
|
+
// NOTE: We avoid "export * from './config'" to prevent nested re-export circles.
|
|
51
|
+
// All necessary members from the config subfolder are explicitly exported above.
|
package/src/ipc.types.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { Tagged } from "type-fest";
|
|
2
|
+
import type { ILogObjMeta } from "tslog";
|
|
3
|
+
|
|
4
|
+
export type UpdateStatus =
|
|
5
|
+
| "update-available"
|
|
6
|
+
| "update-downloaded"
|
|
7
|
+
| "checking-for-update"
|
|
8
|
+
| "update-not-available"
|
|
9
|
+
| "error";
|
|
10
|
+
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
|
+
export type IpcEvent<TYPE extends string, DATA> = { type: TYPE; data: DATA };
|
|
13
|
+
export type EndEvent<DATA> = {
|
|
14
|
+
type: "end";
|
|
15
|
+
data:
|
|
16
|
+
| {
|
|
17
|
+
type: "success";
|
|
18
|
+
result: DATA;
|
|
19
|
+
}
|
|
20
|
+
| {
|
|
21
|
+
type: "error";
|
|
22
|
+
ipcError: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type IpcDefinition = {
|
|
27
|
+
"dialog:alert": [
|
|
28
|
+
// input
|
|
29
|
+
{ message: string; buttons?: { title: string; value: string }[] },
|
|
30
|
+
EndEvent<{ answer: string }>,
|
|
31
|
+
];
|
|
32
|
+
"dialog:prompt": [
|
|
33
|
+
// input
|
|
34
|
+
{ message: string; buttons?: { title: string; value: string }[] },
|
|
35
|
+
EndEvent<{ answer: string }>,
|
|
36
|
+
];
|
|
37
|
+
"log:message": [
|
|
38
|
+
// input
|
|
39
|
+
ILogObjMeta,
|
|
40
|
+
EndEvent<void>,
|
|
41
|
+
];
|
|
42
|
+
"update:set-status": [
|
|
43
|
+
// input
|
|
44
|
+
{
|
|
45
|
+
status: UpdateStatus;
|
|
46
|
+
},
|
|
47
|
+
EndEvent<void>,
|
|
48
|
+
];
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export type RendererChannels = keyof IpcDefinition;
|
|
52
|
+
export type RendererData<KEY extends RendererChannels> = IpcDefinition[KEY][0];
|
|
53
|
+
export type RendererEvents<KEY extends RendererChannels> = IpcDefinition[KEY][1];
|
|
54
|
+
export type RendererEnd<KEY extends RendererChannels> = Extract<
|
|
55
|
+
IpcDefinition[KEY][1],
|
|
56
|
+
{ type: "end" }
|
|
57
|
+
>["data"];
|
|
58
|
+
|
|
59
|
+
export type RendererMessage = {
|
|
60
|
+
// the channel to communicate
|
|
61
|
+
requestId: RequestId;
|
|
62
|
+
data: any;
|
|
63
|
+
};
|
|
64
|
+
export type RequestId = Tagged<string, "request-id">;
|
|
65
|
+
|
|
66
|
+
export type HandleListenerRendererSendFn<KEY extends RendererChannels> = (
|
|
67
|
+
events: RendererEvents<KEY>,
|
|
68
|
+
) => void;
|
|
69
|
+
|
|
70
|
+
export type HandleListenerRenderer<KEY extends RendererChannels> = (
|
|
71
|
+
event: any,
|
|
72
|
+
data: { value: RendererData<KEY>; send: HandleListenerRendererSendFn<KEY> },
|
|
73
|
+
) => Promise<void>;
|
package/src/logger.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Logger } from "tslog";
|
|
2
|
+
|
|
3
|
+
const createDefaultLogger = () =>
|
|
4
|
+
new Logger({
|
|
5
|
+
minLevel: 3, // INFO
|
|
6
|
+
hideLogPositionForProduction: false,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
let _logger = createDefaultLogger();
|
|
10
|
+
|
|
11
|
+
export const useLogger = () => {
|
|
12
|
+
const attachTransport = (transport: (logObj: unknown) => void) => {
|
|
13
|
+
_logger.attachTransport(transport as any);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
logger: () => _logger,
|
|
18
|
+
attachTransport,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../config/migrators";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../config/migrators";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../config/migrators";
|