generator-pninja 1.3.0 → 1.5.0
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/generators/app/index.js +41 -5
- package/generators/app/templates/package.json.ejs +23 -22
- package/generators/auth/index.js +9 -0
- package/generators/client/index.js +37 -3
- package/generators/client/react.inc.js +20 -6
- package/generators/client/templates/react/.env.ejs +2 -1
- package/generators/client/templates/react/package-lock.json.ejs +7 -6
- package/generators/client/templates/react/package.json.ejs +1 -1
- package/generators/client/templates/react/public/locales/migrations/am.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ar.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/az.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/bg.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/bn.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ca.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/cs.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/cy.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/da.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/de.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/el.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/en.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/es.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/et.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/eu.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/fa.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/fi.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/fr.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/fy.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ga.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/gl.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/gu.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ha.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/he.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/hi.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/hr.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ht.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/hu.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/hy.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/id.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/is.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/it.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ja.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/kk.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ko.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/lt.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/lv.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/mi.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ms.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/mt.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/nl.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/no.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/om.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/pl.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/pt.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ro.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ru.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/rw.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/sk.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/sl.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/sq.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/sr.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/sv.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/sw.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ta.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/tr.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/uk.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/ur.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/uz.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/vi.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/yo.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/zh.json +43 -0
- package/generators/client/templates/react/public/locales/migrations/zu.json +43 -0
- package/generators/client/templates/react/public/locales/searchReindex/am.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ar.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/az.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/bg.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/bn.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ca.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/cs.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/cy.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/da.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/de.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/el.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/en.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/es.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/et.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/eu.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/fa.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/fi.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/fr.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/fy.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ga.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/gl.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/gu.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ha.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/he.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/hi.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/hr.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ht.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/hu.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/hy.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/id.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/is.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/it.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ja.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/kk.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ko.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/lt.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/lv.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/mi.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ms.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/mt.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/nl.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/no.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/om.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/pl.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/pt.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ro.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ru.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/rw.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/sk.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/sl.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/sq.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/sr.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/sv.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/sw.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ta.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/tr.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/uk.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/ur.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/uz.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/vi.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/yo.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/zh.json +60 -0
- package/generators/client/templates/react/public/locales/searchReindex/zu.json +60 -0
- package/generators/client/templates/react/public/locales/seeder/am.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ar.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/az.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/bg.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/bn.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ca.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/cs.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/cy.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/da.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/de.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/el.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/en.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/es.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/et.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/eu.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/fa.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/fi.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/fr.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/fy.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ga.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/gl.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/gu.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ha.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/he.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/hi.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/hr.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ht.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/hu.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/hy.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/id.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/is.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/it.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ja.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/kk.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ko.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/lt.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/lv.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/mi.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ms.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/mt.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/nl.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/no.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/om.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/pl.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/pt.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ro.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ru.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/rw.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/sk.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/sl.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/sq.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/sr.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/sv.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/sw.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ta.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/tr.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/uk.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/ur.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/uz.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/vi.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/yo.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/zh.json +32 -0
- package/generators/client/templates/react/public/locales/seeder/zu.json +32 -0
- package/generators/client/templates/react/src/App.tsx.ejs +39 -0
- package/generators/client/templates/react/src/components/LangSelect.tsx.ejs +1 -1
- package/generators/client/templates/react/src/components/Menu.tsx.ejs +35 -0
- package/generators/client/templates/react/src/components/Toast.tsx.ejs +3 -3
- package/generators/client/templates/react/src/i18n.js.ejs +1 -1
- package/generators/client/templates/react/src/index.css.ejs +1 -5
- package/generators/client/templates/react/src/pages/admin/Migrations.tsx.ejs +427 -0
- package/generators/client/templates/react/src/pages/search-reindex/SearchReindexList.tsx.ejs +716 -0
- package/generators/client/templates/react/src/pages/seeder/SeederList.tsx.ejs +478 -0
- package/generators/entities/index.js +2 -2
- package/generators/entities/templates/EntityFactory.php.ejs +0 -11
- package/generators/entities/templates/database/seeders/AcRuleSeeder.php.ejs +83 -0
- package/generators/entities/templates/database/seeders/DatabaseSeeder.php.ejs +28 -0
- package/generators/entities/templates/database/seeders/EntitySeeder.php.ejs +30 -0
- package/generators/entities/templates/database/seeders/ManyToManySeeder.php.ejs +20 -0
- package/generators/entities/templates/database/seeders/csv/.gitkeep +0 -0
- package/generators/entities/utils/factories-generator.js +29 -32
- package/generators/entities/utils/routers-generator.js +8 -1
- package/generators/entity/index.js +21 -6
- package/generators/final/templates/README.md.ejs +108 -0
- package/generators/search/index.js +23 -15
- package/generators/server/index.js +26 -10
- package/generators/server/templates/app/Http/Controllers/MigrationsController.php.ejs +56 -0
- package/generators/server/templates/app/Http/Controllers/SearchReindexController.php.ejs +133 -0
- package/generators/server/templates/app/Http/Controllers/SeederController.php.ejs +75 -0
- package/generators/server/templates/app/Http/Middleware/AccessControl.php.ejs +3 -0
- package/generators/server/templates/app/Http/Requests/ReindexRequest.php.ejs +32 -0
- package/generators/server/templates/app/Http/Requests/SeedCsvRequest.php.ejs +13 -0
- package/generators/server/templates/app/Http/Requests/SeedRequest.php.ejs +34 -0
- package/generators/server/templates/app/Jobs/ReindexEntityJob.php.ejs +63 -0
- package/generators/server/templates/app/Jobs/RunMigrationsJob.php.ejs +46 -0
- package/generators/server/templates/app/Jobs/RunSeederJob.php.ejs +43 -0
- package/generators/server/templates/app/Traits/SeederHelpers.php.ejs +56 -0
- package/generators/server/templates/routes/api.php.ejs +39 -2
- package/generators/server/templates/routes/console.php.ejs +1 -1
- package/generators/utils/reserved-words.js +1 -1
- package/package.json +1 -1
- package/generators/entities/templates/DatabaseSeeder.php.ejs +0 -183
- package/generators/entities/templates/app/Http/Middleware/AccessControl.php.ejs +0 -31
- package/generators/entities/templates/app/Http/Middleware/SessionAuth.php.ejs +0 -162
- package/generators/entities/templates/database/seeders/csv/AcRule.csv.ejs +0 -7
- package/generators/entities/templates/routes/api.php.ejs +0 -72
- package/generators/entities/templates/routes/console.php.ejs +0 -15
- package/generators/router/index.js +0 -12
- /package/generators/server/templates/{HandlesApiErrors.php.ejs → app/Traits/HandlesApiErrors.php.ejs} +0 -0
- /package/generators/server/templates/{HandlesUserRoles.php.ejs → app/Traits/HandlesUserRoles.php.ejs} +0 -0
package/generators/app/index.js
CHANGED
|
@@ -12,10 +12,34 @@ const __dirname = path.dirname(__filename);
|
|
|
12
12
|
export default class extends Generator {
|
|
13
13
|
constructor(args, opts) {
|
|
14
14
|
super(args, opts);
|
|
15
|
-
this.option('
|
|
16
|
-
type:
|
|
17
|
-
|
|
15
|
+
this.option('name', {
|
|
16
|
+
type: String,
|
|
17
|
+
description: 'Your project name'
|
|
18
18
|
});
|
|
19
|
+
this.option('dmbs', {
|
|
20
|
+
type: String,
|
|
21
|
+
description: 'Your DBMS'
|
|
22
|
+
});
|
|
23
|
+
this.option('authentication', {
|
|
24
|
+
type: String,
|
|
25
|
+
description: 'The type of authentication to use',
|
|
26
|
+
});
|
|
27
|
+
this.option('clientType', {
|
|
28
|
+
type: String,
|
|
29
|
+
description: 'The type of client to use',
|
|
30
|
+
});
|
|
31
|
+
this.option('nativeLanguage', {
|
|
32
|
+
type: String,
|
|
33
|
+
description: 'The native language of the application',
|
|
34
|
+
});
|
|
35
|
+
this.option('languages', {
|
|
36
|
+
type: String,
|
|
37
|
+
description: 'Additional languages to install (comma separated)',
|
|
38
|
+
});
|
|
39
|
+
this.option('searchEngine', {
|
|
40
|
+
type: String,
|
|
41
|
+
description: 'The search engine to use (database, algolia, elastic, meilisearch, typesense, solr, null)',
|
|
42
|
+
})
|
|
19
43
|
}
|
|
20
44
|
async initializing() {
|
|
21
45
|
hello(this.log, true);
|
|
@@ -31,6 +55,7 @@ export default class extends Generator {
|
|
|
31
55
|
}, {
|
|
32
56
|
fromMain: true,
|
|
33
57
|
env: this.env,
|
|
58
|
+
authentication: this.options.authentication,
|
|
34
59
|
resolved: authGeneratorPath,
|
|
35
60
|
namespace: 'pninja:auth'
|
|
36
61
|
});
|
|
@@ -58,6 +83,9 @@ export default class extends Generator {
|
|
|
58
83
|
}, {
|
|
59
84
|
fromMain: true,
|
|
60
85
|
env: this.env,
|
|
86
|
+
clientType: this.options.clientType,
|
|
87
|
+
nativeLanguage: this.options.nativeLanguage,
|
|
88
|
+
languages: this.options.languages,
|
|
61
89
|
resolved: clientGeneratorPath,
|
|
62
90
|
namespace: 'pninja:client'
|
|
63
91
|
});
|
|
@@ -73,6 +101,7 @@ export default class extends Generator {
|
|
|
73
101
|
fromMain: true,
|
|
74
102
|
env: this.env,
|
|
75
103
|
resolved: searchGeneratorPath,
|
|
104
|
+
searchEngine: this.options.searchEngine,
|
|
76
105
|
namespace: 'pninja:search'
|
|
77
106
|
});
|
|
78
107
|
|
|
@@ -105,18 +134,25 @@ export default class extends Generator {
|
|
|
105
134
|
});
|
|
106
135
|
}
|
|
107
136
|
async prompting() {
|
|
137
|
+
if (this.options.name && this.options.dbms) {
|
|
138
|
+
this.answers = {
|
|
139
|
+
name: this.options.name,
|
|
140
|
+
dbms: this.options.dbms
|
|
141
|
+
};
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
108
144
|
this.answers = await this.prompt([
|
|
109
145
|
{
|
|
110
146
|
type: "input",
|
|
111
147
|
name: "name",
|
|
112
148
|
message: "Your project name",
|
|
113
|
-
default: this.config.get('name') || this.appname // Default to current folder name
|
|
149
|
+
default: this.options.name || this.config.get('name') || this.appname // Default to current folder name
|
|
114
150
|
}, {
|
|
115
151
|
store: true,
|
|
116
152
|
type: "list",
|
|
117
153
|
name: "dbms",
|
|
118
154
|
message: "Your DBMS",
|
|
119
|
-
default: this.config.get('dbms') || 'sqlite',
|
|
155
|
+
default: this.options.dbms || this.config.get('dbms') || 'sqlite',
|
|
120
156
|
choices: [
|
|
121
157
|
{
|
|
122
158
|
name: `SQLite ${colors.dim('(Lightweight, serverless, file-based)')}`,
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"db:seed": "cd server && php artisan db:seed",
|
|
2
|
+
"name": "<%= packageName %>",
|
|
3
|
+
"description": "<%= projectDescription %>",
|
|
4
|
+
"version": "<%= projectVersion %>",
|
|
5
|
+
"author": "<%= authorName %>",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"dependencies": {},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"dev": "concurrently \"npm run server\" \"npm run queue:listen\" \"npm run client\"",
|
|
10
|
+
"client": "cd client && npm i --loglevel=error && npm run dev",
|
|
11
|
+
"dump-server": "cd server && php artisan dump-server",
|
|
12
|
+
"migrate": "cd server && php artisan migrate",
|
|
13
|
+
"migrate:fresh": "cd server && php artisan migrate:fresh",
|
|
14
|
+
"migrate:fresh:seed": "cd server && php artisan migrate:fresh --seed",
|
|
15
|
+
"migrate:seed": "cd server && php artisan migrate --seed",
|
|
16
|
+
"db:seed": "cd server && php artisan db:seed",
|
|
18
17
|
<% if (searchEngine === 'elastic') { -%>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
"elastic:migrate": "cd server && php artisan elastic:migrate",
|
|
19
|
+
"elastic:migrate:reset": "cd server && php artisan elastic:migrate:reset",
|
|
20
|
+
"elastic:migrate:refresh": "cd server && php artisan elastic:migrate:refresh",
|
|
22
21
|
<% } -%>
|
|
23
22
|
<% if (searchEngine === 'meilisearch') { -%>
|
|
24
|
-
|
|
23
|
+
"scout:sync-index-settings": "cd server && php artisan scout:sync-index-settings",
|
|
25
24
|
<% } -%>
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
"seed": "cd server && php artisan db:seed",
|
|
26
|
+
"server": "cd server && php artisan serve",
|
|
27
|
+
"queue:listen": "cd server && php artisan queue:listen",
|
|
28
|
+
"queue:work": "cd server && php artisan queue:work"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
30
31
|
"concurrently": "^9.2.1"
|
package/generators/auth/index.js
CHANGED
|
@@ -14,9 +14,17 @@ export default class AuthGenerator extends Generator {
|
|
|
14
14
|
type: Boolean,
|
|
15
15
|
default: false
|
|
16
16
|
});
|
|
17
|
+
this.option('authentication', {
|
|
18
|
+
type: String,
|
|
19
|
+
description: 'The type of authentication to use',
|
|
20
|
+
});
|
|
17
21
|
}
|
|
18
22
|
|
|
19
23
|
async prompting() {
|
|
24
|
+
if (this.options.authentication) {
|
|
25
|
+
this.answers = { authentication: this.options.authentication };
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
20
28
|
let prompts = [];
|
|
21
29
|
if (this.options["fromMain"]) {
|
|
22
30
|
prompts = [...prompts, ...[{
|
|
@@ -24,6 +32,7 @@ export default class AuthGenerator extends Generator {
|
|
|
24
32
|
type: "list",
|
|
25
33
|
name: "authentication",
|
|
26
34
|
message: `Which ${colors.yellow('*type*')} of authentication would you like to use?`,
|
|
35
|
+
default: this.options.authentication || this.config.get('authentication') || 'keycloak',
|
|
27
36
|
choices: [
|
|
28
37
|
{ name: 'Keycloak', value: 'keycloak' },
|
|
29
38
|
{ name: 'Sanctum', value: 'sanctum', disabled: "Not implemented yet" },
|
|
@@ -12,9 +12,39 @@ export default class AuthGenerator extends Generator {
|
|
|
12
12
|
type: Boolean,
|
|
13
13
|
default: false
|
|
14
14
|
});
|
|
15
|
+
this.option('clientType', {
|
|
16
|
+
type: String,
|
|
17
|
+
description: 'The type of client to use',
|
|
18
|
+
});
|
|
19
|
+
this.option('nativeLanguage', {
|
|
20
|
+
type: String,
|
|
21
|
+
description: 'The native language of the application',
|
|
22
|
+
});
|
|
23
|
+
this.option('languages', {
|
|
24
|
+
type: String,
|
|
25
|
+
description: 'Additional languages to install (comma separated)',
|
|
26
|
+
});
|
|
15
27
|
if (!this.options.fromMain) throw new Error("This generator should not be run directly. Please use the main generator to run this.");
|
|
16
28
|
}
|
|
17
29
|
async prompting() {
|
|
30
|
+
if (this.options.clientType && this.options.nativeLanguage && this.options.languages !== undefined) {
|
|
31
|
+
let languages = [];
|
|
32
|
+
if (this.options.languages === "false") {
|
|
33
|
+
languages = [];
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
languages = this.options.languages
|
|
37
|
+
.split(',')
|
|
38
|
+
.map(l => l.trim())
|
|
39
|
+
.filter(Boolean);
|
|
40
|
+
}
|
|
41
|
+
this.answers = {
|
|
42
|
+
clientType: this.options.clientType,
|
|
43
|
+
nativeLanguage: this.options.nativeLanguage,
|
|
44
|
+
languages
|
|
45
|
+
};
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
18
48
|
let prompts = [];
|
|
19
49
|
if (this.options["fromMain"] || true) {
|
|
20
50
|
prompts = [...prompts, ...[{
|
|
@@ -22,7 +52,7 @@ export default class AuthGenerator extends Generator {
|
|
|
22
52
|
type: "list",
|
|
23
53
|
name: "clientType",
|
|
24
54
|
message: `Which ${colors.yellow('*Framework*')} would you like to use for the client?`,
|
|
25
|
-
default: this.config.get('clientType') || '
|
|
55
|
+
default: this.options.clientType || this.config.get('clientType') || 'react',
|
|
26
56
|
choices: [
|
|
27
57
|
{ name: 'React', value: 'react' },
|
|
28
58
|
{ name: 'Vue', value: 'vue', disabled: "Not implemented yet" },
|
|
@@ -34,14 +64,18 @@ export default class AuthGenerator extends Generator {
|
|
|
34
64
|
type: "list",
|
|
35
65
|
name: "nativeLanguage",
|
|
36
66
|
message: `Please choose the ${colors.yellow('*native language*')} of the application`,
|
|
37
|
-
default: this.config.get('nativeLanguage') || DEFAULT_LANGUAGE,
|
|
67
|
+
default: this.options.nativeLanguage || this.config.get('nativeLanguage') || DEFAULT_LANGUAGE,
|
|
38
68
|
choices: LANGUAGES
|
|
39
69
|
}, {
|
|
40
70
|
store: true,
|
|
41
71
|
type: 'checkbox',
|
|
42
72
|
name: 'languages',
|
|
43
73
|
message: 'Please choose additional languages to install',
|
|
44
|
-
default: this.
|
|
74
|
+
default: this.options['no-languages']
|
|
75
|
+
? []
|
|
76
|
+
: this.options.languages
|
|
77
|
+
? this.options.languages.split(',').map(lang => lang.trim())
|
|
78
|
+
: (this.config.get('languages') || []),
|
|
45
79
|
choices: (answers) => {
|
|
46
80
|
return getAvailableLanguages(answers.nativeLanguage);
|
|
47
81
|
},
|
|
@@ -138,7 +138,7 @@ export async function createReactClient(that) {
|
|
|
138
138
|
|
|
139
139
|
await that.spawn('npm', ['create', 'vite@6.1.1', 'client', '--', '--template', 'react-ts', '--no-install']);
|
|
140
140
|
|
|
141
|
-
that.fs.copyTpl(that.templatePath('react/.env.ejs'), that.destinationPath('client/.env'), {});
|
|
141
|
+
that.fs.copyTpl(that.templatePath('react/.env.ejs'), that.destinationPath('client/.env'), { searchEngine });
|
|
142
142
|
that.fs.copyTpl(that.templatePath('react/.gitignore.ejs'), that.destinationPath('client/.gitignore'), {});
|
|
143
143
|
that.fs.copyTpl(that.templatePath('react/eslint.config.js.ejs'), that.destinationPath('client/eslint.config.js'), {});
|
|
144
144
|
that.fs.copyTpl(that.templatePath('react/index.html.ejs'), that.destinationPath('client/index.html'), { appName });
|
|
@@ -150,9 +150,14 @@ export async function createReactClient(that) {
|
|
|
150
150
|
that.fs.copyTpl(that.templatePath('react/vite.config.ts.ejs'), that.destinationPath('client/vite.config.ts'), {});
|
|
151
151
|
|
|
152
152
|
for (const lang of languages) {
|
|
153
|
-
that.fs.copyTpl(that.templatePath(`react/public/locales/log/${lang}.json`), that.destinationPath(`client/public/locales/${lang}/log.json`)
|
|
154
|
-
that.fs.copyTpl(that.templatePath(`react/public/locales/audit/${lang}.json`), that.destinationPath(`client/public/locales/${lang}/audit.json`)
|
|
153
|
+
that.fs.copyTpl(that.templatePath(`react/public/locales/log/${lang}.json`), that.destinationPath(`client/public/locales/${lang}/log.json`));
|
|
154
|
+
that.fs.copyTpl(that.templatePath(`react/public/locales/audit/${lang}.json`), that.destinationPath(`client/public/locales/${lang}/audit.json`));
|
|
155
|
+
that.fs.copyTpl(that.templatePath(`react/public/locales/seeder/${lang}.json`), that.destinationPath(`client/public/locales/${lang}/seeder.json`));
|
|
156
|
+
that.fs.copyTpl(that.templatePath(`react/public/locales/migrations/${lang}.json`), that.destinationPath(`client/public/locales/${lang}/migrations.json`));
|
|
155
157
|
that.fs.copyTpl(that.templatePath(`react/public/locales/common/${lang}.json.ejs`), that.destinationPath(`client/public/locales/${lang}/common.json`), { appName });
|
|
158
|
+
if (!['null', 'database'].includes(searchEngine)) {
|
|
159
|
+
that.fs.copyTpl(that.templatePath(`react/public/locales/searchReindex/${lang}.json`), that.destinationPath(`client/public/locales/${lang}/searchReindex.json`));
|
|
160
|
+
}
|
|
156
161
|
that.fs.copyTpl(that.templatePath(`react/public/locales/entities/entities.json.ejs`), that.destinationPath(`client/public/locales/${lang}/entities.json`), {
|
|
157
162
|
entities: [AcRule],
|
|
158
163
|
relationships: [],
|
|
@@ -170,10 +175,11 @@ export async function createReactClient(that) {
|
|
|
170
175
|
that.fs.copyTpl(that.templatePath("react/public/fonts/InterVariable.woff2"), that.destinationPath(`client/public/fonts/InterVariable.woff2`));
|
|
171
176
|
|
|
172
177
|
that.fs.copyTpl(that.templatePath("react/src/App.css.ejs"), that.destinationPath(`client/src/App.css`), {});
|
|
173
|
-
that.fs.copyTpl(that.templatePath("react/src/App.tsx.ejs"), that.destinationPath(`client/src/App.tsx`), { entities: [AcRule], to, pluralize });
|
|
178
|
+
that.fs.copyTpl(that.templatePath("react/src/App.tsx.ejs"), that.destinationPath(`client/src/App.tsx`), { entities: [AcRule], to, pluralize, searchEngine });
|
|
174
179
|
that.fs.copyTpl(that.templatePath("react/src/i18n.js.ejs"), that.destinationPath(`client/src/i18n.js`), {
|
|
175
180
|
supportedLngs: JSON.stringify(languages).replaceAll(`"`, `'`),
|
|
176
|
-
fallbackLng: nativeLanguage
|
|
181
|
+
fallbackLng: nativeLanguage,
|
|
182
|
+
searchEngine
|
|
177
183
|
});
|
|
178
184
|
that.fs.copyTpl(that.templatePath("react/src/index.css.ejs"), that.destinationPath(`client/src/index.css`), { navbarStartcolor });
|
|
179
185
|
that.fs.copyTpl(that.templatePath("react/src/main.tsx.ejs"), that.destinationPath(`client/src/main.tsx`), {});
|
|
@@ -232,7 +238,7 @@ export async function createReactClient(that) {
|
|
|
232
238
|
that.fs.copyTpl(that.templatePath("react/src/components/LangSelect.tsx.ejs"), that.destinationPath(`client/src/components/LangSelect.tsx`), { to });
|
|
233
239
|
that.fs.copyTpl(that.templatePath("react/src/components/LoginButton.tsx.ejs"), that.destinationPath(`client/src/components/LoginButton.tsx`), {});
|
|
234
240
|
that.fs.copyTpl(that.templatePath("react/src/components/LogoutButton.tsx.ejs"), that.destinationPath(`client/src/components/LogoutButton.tsx`), {});
|
|
235
|
-
that.fs.copyTpl(that.templatePath("react/src/components/Menu.tsx.ejs"), that.destinationPath(`client/src/components/Menu.tsx`), { appName, entities, to, pluralize, withLangSelect: languages.length > 1 });
|
|
241
|
+
that.fs.copyTpl(that.templatePath("react/src/components/Menu.tsx.ejs"), that.destinationPath(`client/src/components/Menu.tsx`), { appName, entities, to, pluralize, withLangSelect: languages.length > 1, searchEngine });
|
|
236
242
|
that.fs.copyTpl(that.templatePath("react/src/components/LoginRedirector.tsx.ejs"), that.destinationPath(`client/src/components/LoginRedirector.tsx`));
|
|
237
243
|
that.fs.copyTpl(that.templatePath("react/src/components/SearchInput.css"), that.destinationPath(`client/src/components/SearchInput.css`), {});
|
|
238
244
|
that.fs.copyTpl(that.templatePath("react/src/components/SearchInput.tsx.ejs"), that.destinationPath(`client/src/components/SearchInput.tsx`), {});
|
|
@@ -260,6 +266,14 @@ export async function createReactClient(that) {
|
|
|
260
266
|
that.fs.copyTpl(that.templatePath("react/src/pages/errors/Err403.tsx.ejs"), that.destinationPath(`client/src/pages/errors/Err403.tsx`), {});
|
|
261
267
|
that.fs.copyTpl(that.templatePath("react/src/pages/errors/Err404.tsx.ejs"), that.destinationPath(`client/src/pages/errors/Err404.tsx`), {});
|
|
262
268
|
|
|
269
|
+
that.fs.copyTpl(that.templatePath("react/src/pages/seeder/SeederList.tsx.ejs"), that.destinationPath(`client/src/pages/seeder/SeederList.tsx`));
|
|
270
|
+
|
|
271
|
+
that.fs.copyTpl(that.templatePath("react/src/pages/admin/Migrations.tsx.ejs"), that.destinationPath(`client/src/pages/admin/Migrations.tsx`));
|
|
272
|
+
|
|
273
|
+
if (!['null', 'database'].includes(searchEngine)) {
|
|
274
|
+
that.fs.copyTpl(that.templatePath("react/src/pages/search-reindex/SearchReindexList.tsx.ejs"), that.destinationPath(`client/src/pages/search-reindex/SearchReindexList.tsx`), { searchEngine });
|
|
275
|
+
}
|
|
276
|
+
|
|
263
277
|
that.fs.copyTpl(that.templatePath("react/src/pages/server-logs/LogViewer.tsx.ejs"), that.destinationPath(`client/src/pages/server-logs/LogViewer.tsx`), {});
|
|
264
278
|
|
|
265
279
|
that.fs.copyTpl(that.templatePath("react/src/hooks/useAuthState.ts.ejs"), that.destinationPath(`client/src/hooks/useAuthState.ts`), {});
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
VITE_PORT=5173
|
|
1
|
+
VITE_PORT=5173
|
|
2
|
+
VITE_SCOUT_DRIVER=<%- searchEngine %>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@hookform/resolvers": "^4.1.0",
|
|
12
12
|
"@react-keycloak/web": "^3.4.0",
|
|
13
|
-
"axios": "^1.13.
|
|
13
|
+
"axios": "^1.13.5",
|
|
14
14
|
"dayjs": "^1.11.13",
|
|
15
15
|
"detect-browser": "^5.3.0",
|
|
16
16
|
"dotenv": "^16.4.7",
|
|
@@ -3971,12 +3971,13 @@
|
|
|
3971
3971
|
}
|
|
3972
3972
|
},
|
|
3973
3973
|
"node_modules/axios": {
|
|
3974
|
-
"version": "1.13.
|
|
3975
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.
|
|
3976
|
-
"integrity": "sha512-
|
|
3974
|
+
"version": "1.13.5",
|
|
3975
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
|
|
3976
|
+
"integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
|
|
3977
|
+
"license": "MIT",
|
|
3977
3978
|
"dependencies": {
|
|
3978
|
-
"follow-redirects": "^1.15.
|
|
3979
|
-
"form-data": "^4.0.
|
|
3979
|
+
"follow-redirects": "^1.15.11",
|
|
3980
|
+
"form-data": "^4.0.5",
|
|
3980
3981
|
"proxy-from-env": "^1.1.0"
|
|
3981
3982
|
}
|
|
3982
3983
|
},
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "የዳበይስ ማዋል",
|
|
3
|
+
"status": {
|
|
4
|
+
"pending": "እንቆቅልሽ።..",
|
|
5
|
+
"running": "ሂደት",
|
|
6
|
+
"completed": "ተጠናቅቆ",
|
|
7
|
+
"failed": "አልቆይ ከፍ ይዞረ",
|
|
8
|
+
"title": "የማዋል ሁኔታ",
|
|
9
|
+
"description": "የሁሉም ማዋል ሁኔታ አሳይ.",
|
|
10
|
+
"action": "ሁኔታን አሳይ",
|
|
11
|
+
"error": "የማዋል ሁኔታን ማግኘት በስንቀት",
|
|
12
|
+
"refresh": "ምርጥ ሁኔታ ይዘጋጅ"
|
|
13
|
+
},
|
|
14
|
+
"migrate": {
|
|
15
|
+
"title": "የማዋል ማንበብ",
|
|
16
|
+
"description": "ሁሉንም የቆረጥ ዳበይስ ማዋል ያንቀሳቅሱ.",
|
|
17
|
+
"action": "ማዋል",
|
|
18
|
+
"confirm": "እቅፍ በግብአት"
|
|
19
|
+
},
|
|
20
|
+
"rollback": {
|
|
21
|
+
"title": "ተወው",
|
|
22
|
+
"description": "የማዋል መስመር እንደተዘዋወር እንደገና ይደርግ.",
|
|
23
|
+
"action": "ተወው",
|
|
24
|
+
"confirm": "ተመልስ",
|
|
25
|
+
"step": "የአንደኛው ማዋል ባበሬ ይመልስ.",
|
|
26
|
+
"stepPlaceholder": "ግምገማ ያድርግ",
|
|
27
|
+
"stepHint": "የአንደኛው ባበሬ ኑሮ አሳይ."
|
|
28
|
+
},
|
|
29
|
+
"fresh": {
|
|
30
|
+
"title": "አይታል ይህ እንደ ቆርጦ ገድበዋል.",
|
|
31
|
+
"description": "የማዋል ሂደት ተጠናቋል",
|
|
32
|
+
"action": "የማዋል ሂደት ሞተ",
|
|
33
|
+
"confirm": "ማዋል መጀመር ውስጥ እንቀሴ"
|
|
34
|
+
},
|
|
35
|
+
"migrateCompleted": "የአዲስ ማዋል ሂደት ተጠናቋል",
|
|
36
|
+
"migrateFailed": "የአዲስ ማዋል ሂደት ሞተ",
|
|
37
|
+
"migrateError": "የአዲስ ማዋል መጀመር ውስጥ እንቀሴ",
|
|
38
|
+
"freshCompleted": "ተወው ተጠናቀቀ",
|
|
39
|
+
"freshFailed": "በየመጀመር ላይ ችግኝ",
|
|
40
|
+
"freshError": "Error starting fresh migration",
|
|
41
|
+
"rollbackCompleted": "Rollback completed",
|
|
42
|
+
"rollbackError": "Error during rollback"
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "نقل قاعدة البيانات",
|
|
3
|
+
"status": {
|
|
4
|
+
"pending": "قيد الانتظار...",
|
|
5
|
+
"running": "يتم التشغيل",
|
|
6
|
+
"completed": "اكتمل",
|
|
7
|
+
"failed": "فشل",
|
|
8
|
+
"title": "حالة النقل",
|
|
9
|
+
"description": "عرض حالة جميع النقلات.",
|
|
10
|
+
"action": "عرض الحالة",
|
|
11
|
+
"error": "خطأ في استرجاع حالة النقل",
|
|
12
|
+
"refresh": "تحديث الحالة"
|
|
13
|
+
},
|
|
14
|
+
"migrate": {
|
|
15
|
+
"title": "تشغيل النقلات",
|
|
16
|
+
"description": "تشغيل جميع النقلات المعلقة في قاعدة البيانات.",
|
|
17
|
+
"action": "نقل",
|
|
18
|
+
"confirm": "تأكيد الترحيل"
|
|
19
|
+
},
|
|
20
|
+
"rollback": {
|
|
21
|
+
"title": "تراجع",
|
|
22
|
+
"description": "تراجع عن آخر دفعة من النقلات.",
|
|
23
|
+
"action": "تراجع",
|
|
24
|
+
"confirm": "تأكيد التراجع",
|
|
25
|
+
"step": "خطوة",
|
|
26
|
+
"stepPlaceholder": "مثل 1",
|
|
27
|
+
"stepHint": "اترك فارغًا للتراجع عن آخر دفعة"
|
|
28
|
+
},
|
|
29
|
+
"fresh": {
|
|
30
|
+
"title": "نقل جديد",
|
|
31
|
+
"description": "⚠️ حذف جميع الجداول وإعادة تشغيل جميع النقلات. ستفقد جميع البيانات.",
|
|
32
|
+
"action": "نقل جديد",
|
|
33
|
+
"confirm": "تأكيد - ستفقد جميع البيانات"
|
|
34
|
+
},
|
|
35
|
+
"migrateCompleted": "النقل مكتمل",
|
|
36
|
+
"migrateFailed": "النقل فشل",
|
|
37
|
+
"migrateError": "خطأ في بدء النقل",
|
|
38
|
+
"freshCompleted": "النقل الجديد مكتمل",
|
|
39
|
+
"freshFailed": "النقل الجديد فشل",
|
|
40
|
+
"freshError": "خطأ في بدء النقل الجديد",
|
|
41
|
+
"rollbackCompleted": "التراجع مكتمل",
|
|
42
|
+
"rollbackError": "خطأ أثناء التراجع"
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Verilənlər bazası köçürmələri",
|
|
3
|
+
"status": {
|
|
4
|
+
"pending": "Gözləyir...",
|
|
5
|
+
"running": "İşləyir",
|
|
6
|
+
"completed": "Tamamlandı",
|
|
7
|
+
"failed": "Uğursuz",
|
|
8
|
+
"title": "Köçürmə statusu",
|
|
9
|
+
"description": "Bütün köçürmələrin statusunu göstərin.",
|
|
10
|
+
"action": "Statusu göstərin",
|
|
11
|
+
"error": "Köçürmə statusunu əldə edərkən xətası",
|
|
12
|
+
"refresh": "Statusu yenilə"
|
|
13
|
+
},
|
|
14
|
+
"migrate": {
|
|
15
|
+
"title": "Köçürmələri icra edin",
|
|
16
|
+
"description": "Bütün gözləyən verilənlər bazası köçürmələrini icra edin.",
|
|
17
|
+
"action": "Köçür",
|
|
18
|
+
"confirm": "Köçürməni təsdiqlə"
|
|
19
|
+
},
|
|
20
|
+
"rollback": {
|
|
21
|
+
"title": "Geri çevirmək",
|
|
22
|
+
"description": "Son dəstə köçürmələrini geri çevirin.",
|
|
23
|
+
"action": "Geri çevirmək",
|
|
24
|
+
"confirm": "Geri çevirməni təsdiq edin",
|
|
25
|
+
"step": "Addım",
|
|
26
|
+
"stepPlaceholder": "məsələn. 1",
|
|
27
|
+
"stepHint": "Son dəstə geri çevirmək üçün boş buraxın"
|
|
28
|
+
},
|
|
29
|
+
"fresh": {
|
|
30
|
+
"title": "Təzə köçürmə",
|
|
31
|
+
"description": "⚠️ Bütün cədvəlləri silin və bütün köçürmələri yenidən icra edin. Bütün məlumatlar itəcək.",
|
|
32
|
+
"action": "Təzə köçürməni icra edin",
|
|
33
|
+
"confirm": "Təsdiqləyin — bütün məlumatlar itəcək"
|
|
34
|
+
},
|
|
35
|
+
"migrateCompleted": "Köçürmə tamamlandı",
|
|
36
|
+
"migrateFailed": "Köçürmə uğursuz oldu",
|
|
37
|
+
"migrateError": "Köçürməni başlamaqda xətası",
|
|
38
|
+
"freshCompleted": "Təzə köçürmə tamamlandı",
|
|
39
|
+
"freshFailed": "Təzə köçürmə uğursuz oldu",
|
|
40
|
+
"freshError": "Təzə köçürməni başlamaqda xətası",
|
|
41
|
+
"rollbackCompleted": "Geri çevirmə tamamlandı",
|
|
42
|
+
"rollbackError": "Geri çevirmə zamanı xətası"
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Миграции на база данни",
|
|
3
|
+
"status": {
|
|
4
|
+
"pending": "В очакване...",
|
|
5
|
+
"running": "В процес на изпълнение",
|
|
6
|
+
"completed": "Завършено",
|
|
7
|
+
"failed": "Неуспешно",
|
|
8
|
+
"title": "Статус на миграцията",
|
|
9
|
+
"description": "Покажи статуса на всички миграции.",
|
|
10
|
+
"action": "Покажи статус",
|
|
11
|
+
"error": "Грешка при получаване на статус на миграция",
|
|
12
|
+
"refresh": "Обнови статус"
|
|
13
|
+
},
|
|
14
|
+
"migrate": {
|
|
15
|
+
"title": "Изпълни миграции",
|
|
16
|
+
"description": "Изпълни всички изчакващи миграции на база данни.",
|
|
17
|
+
"action": "Мигрирай",
|
|
18
|
+
"confirm": "Потвърдете миграцията"
|
|
19
|
+
},
|
|
20
|
+
"rollback": {
|
|
21
|
+
"title": "Връщане назад",
|
|
22
|
+
"description": "Върни последната партида миграции.",
|
|
23
|
+
"action": "Връщане назад",
|
|
24
|
+
"confirm": "Потвърдете връщането назад",
|
|
25
|
+
"step": "Стъпка",
|
|
26
|
+
"stepPlaceholder": "напр. 1",
|
|
27
|
+
"stepHint": "Оставете празно, за да върнете последната партида"
|
|
28
|
+
},
|
|
29
|
+
"fresh": {
|
|
30
|
+
"title": "Свежа миграция",
|
|
31
|
+
"description": "⚠️ Изтрийте всички таблици и повторно стартирайте всички миграции. Всички данни ще бъдат загубени.",
|
|
32
|
+
"action": "Мигрирайте свежо",
|
|
33
|
+
"confirm": "Потвърдете — всички данни ще бъдат загубени"
|
|
34
|
+
},
|
|
35
|
+
"migrateCompleted": "Миграцията е завършена",
|
|
36
|
+
"migrateFailed": "Миграцията не успя",
|
|
37
|
+
"migrateError": "Грешка при стартиране на миграцията",
|
|
38
|
+
"freshCompleted": "Свежата миграция е завършена",
|
|
39
|
+
"freshFailed": "Свежата миграция не успя",
|
|
40
|
+
"freshError": "Грешка при стартиране на свежата миграция",
|
|
41
|
+
"rollbackCompleted": "Връщането назад е завършено",
|
|
42
|
+
"rollbackError": "Грешка по време на връщането назад"
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "ডেটাবেস মাইগ্রেশন",
|
|
3
|
+
"status": {
|
|
4
|
+
"pending": "অপেক্ষমাণ...",
|
|
5
|
+
"running": "চলছে",
|
|
6
|
+
"completed": "সম্পন্ন",
|
|
7
|
+
"failed": "ব্যর্থ",
|
|
8
|
+
"title": "মাইগ্রেশন অবস্থান",
|
|
9
|
+
"description": "সমস্ত মাইগ্রেশনের অবস্থা দেখান।",
|
|
10
|
+
"action": "অবস্থান দেখান",
|
|
11
|
+
"error": "মাইগ্রেশন অবস্থান পাওয়ার সময় ত্রুটি",
|
|
12
|
+
"refresh": "রিফ্রেশ অবস্থা"
|
|
13
|
+
},
|
|
14
|
+
"migrate": {
|
|
15
|
+
"title": "মাইগ্রেশন চালান",
|
|
16
|
+
"description": "মুলতুবি সমস্ত ডেটাবেস মাইগ্রেশন চালান।",
|
|
17
|
+
"action": "মাইগ্রেট",
|
|
18
|
+
"confirm": "স্থানান্তর নিশ্চিত করুন"
|
|
19
|
+
},
|
|
20
|
+
"rollback": {
|
|
21
|
+
"title": "রোলব্যাক",
|
|
22
|
+
"description": "শেষ ব্যাচের মাইগ্রেশন ফিরিয়ে নিন।",
|
|
23
|
+
"action": "রোলব্যাক",
|
|
24
|
+
"confirm": "রোলব্যাক নিশ্চিত করুন",
|
|
25
|
+
"step": "ধাপ",
|
|
26
|
+
"stepPlaceholder": "যেমন 1",
|
|
27
|
+
"stepHint": "শেষ ব্যাচ ফিরিয়ে নিতে খালি রাখুন"
|
|
28
|
+
},
|
|
29
|
+
"fresh": {
|
|
30
|
+
"title": "ফ্রেশ মাইগ্রেশন",
|
|
31
|
+
"description": "⚠️ সমস্ত টেবিল মুছে ফেলুন এবং সমস্ত মাইগ্রেশন পুনরায় চালান। সমস্ত ডেটা হারিয়ে যাবে।",
|
|
32
|
+
"action": "ফ্রেশ মাইগ্রেট",
|
|
33
|
+
"confirm": "নিশ্চিত করুন — সমস্ত ডেটা হারিয়ে যাবে"
|
|
34
|
+
},
|
|
35
|
+
"migrateCompleted": "মাইগ্রেশন সম্পন্ন",
|
|
36
|
+
"migrateFailed": "মাইগ্রেশন ব্যর্থ হয়েছে",
|
|
37
|
+
"migrateError": "মাইগ্রেশন শুরু করতে ত্রুটি",
|
|
38
|
+
"freshCompleted": "ফ্রেশ মাইগ্রেশন সম্পন্ন",
|
|
39
|
+
"freshFailed": "ফ্রেশ মাইগ্রেশন ব্যর্থ হয়েছে",
|
|
40
|
+
"freshError": "ফ্রেশ মাইগ্রেশন শুরু করতে ত্রুটি",
|
|
41
|
+
"rollbackCompleted": "রোলব্যাক সম্পন্ন",
|
|
42
|
+
"rollbackError": "রোলব্যাক করার সময় ত্রুটি"
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Migrations de la base de dades",
|
|
3
|
+
"status": {
|
|
4
|
+
"pending": "Pendent...",
|
|
5
|
+
"running": "S'executa",
|
|
6
|
+
"completed": "Completat",
|
|
7
|
+
"failed": "Fallat",
|
|
8
|
+
"title": "Estat de la migració",
|
|
9
|
+
"description": "Mostra l'estat de totes les migracions.",
|
|
10
|
+
"action": "Mostra estat",
|
|
11
|
+
"error": "Error en recuperar l'estat de la migració",
|
|
12
|
+
"refresh": "Actualitzar l'estat"
|
|
13
|
+
},
|
|
14
|
+
"migrate": {
|
|
15
|
+
"title": "Executar migracions",
|
|
16
|
+
"description": "Executar totes les migracions pendents de la base de dades.",
|
|
17
|
+
"action": "Migrar",
|
|
18
|
+
"confirm": "Confirmar migració"
|
|
19
|
+
},
|
|
20
|
+
"rollback": {
|
|
21
|
+
"title": "Revertir",
|
|
22
|
+
"description": "Revertir el darrer lot de migracions.",
|
|
23
|
+
"action": "Revertir",
|
|
24
|
+
"confirm": "Confirmar la reversió",
|
|
25
|
+
"step": "Pas",
|
|
26
|
+
"stepPlaceholder": "p.ex. 1",
|
|
27
|
+
"stepHint": "Deixa buit per revertir l'últim lot"
|
|
28
|
+
},
|
|
29
|
+
"fresh": {
|
|
30
|
+
"title": "Migració nova",
|
|
31
|
+
"description": "⚠️ Eliminem totes les taules i tornem a executar totes les migracions. Totes les dades es perdran.",
|
|
32
|
+
"action": "Migrar novament",
|
|
33
|
+
"confirm": "Confirmar — totes les dades es perdran"
|
|
34
|
+
},
|
|
35
|
+
"migrateCompleted": "Migració completada",
|
|
36
|
+
"migrateFailed": "Migració fallida",
|
|
37
|
+
"migrateError": "Error en iniciar la migració",
|
|
38
|
+
"freshCompleted": "Migració nova completada",
|
|
39
|
+
"freshFailed": "Migració nova fallida",
|
|
40
|
+
"freshError": "Error en iniciar la migració nova",
|
|
41
|
+
"rollbackCompleted": "Reversió completada",
|
|
42
|
+
"rollbackError": "Error durant la reversió"
|
|
43
|
+
}
|