proteum 1.0.0-1 → 1.0.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.
Files changed (51) hide show
  1. package/changelog.md +5 -0
  2. package/client/components/Dialog/index.less +1 -3
  3. package/package.json +3 -69
  4. package/server/app/container/console/index.ts +1 -1
  5. package/templates/composant.tsx +40 -0
  6. package/templates/form.ts +30 -0
  7. package/templates/modal.tsx +47 -0
  8. package/templates/modele.ts +56 -0
  9. package/templates/page.tsx +74 -0
  10. package/templates/route.ts +43 -0
  11. package/templates/service.ts +75 -0
  12. package/tsconfig.common.json +1 -2
  13. package/vscode/copyimportationpath/.eslintrc.json +24 -0
  14. package/vscode/copyimportationpath/.vscodeignore +12 -0
  15. package/vscode/copyimportationpath/CHANGELOG.md +9 -0
  16. package/vscode/copyimportationpath/README.md +3 -0
  17. package/vscode/copyimportationpath/copyimportationpath-0.0.1.vsix +0 -0
  18. package/vscode/copyimportationpath/out/extension.js +206 -0
  19. package/vscode/copyimportationpath/out/extension.js.map +1 -0
  20. package/vscode/copyimportationpath/package-lock.json +4536 -0
  21. package/vscode/copyimportationpath/package.json +86 -0
  22. package/vscode/copyimportationpath/src/extension.ts +300 -0
  23. package/vscode/copyimportationpath/tsconfig.json +22 -0
  24. package/vscode/copyimportationpath/vsc-extension-quickstart.md +42 -0
  25. package/cli/app/config.ts +0 -54
  26. package/cli/app/index.ts +0 -195
  27. package/cli/bin.js +0 -11
  28. package/cli/commands/build.ts +0 -34
  29. package/cli/commands/deploy/app.ts +0 -29
  30. package/cli/commands/deploy/web.ts +0 -60
  31. package/cli/commands/dev.ts +0 -109
  32. package/cli/commands/init.ts +0 -85
  33. package/cli/compiler/client/identite.ts +0 -72
  34. package/cli/compiler/client/index.ts +0 -334
  35. package/cli/compiler/common/babel/index.ts +0 -170
  36. package/cli/compiler/common/babel/plugins/index.ts +0 -0
  37. package/cli/compiler/common/babel/plugins/services.ts +0 -579
  38. package/cli/compiler/common/babel/routes/imports.ts +0 -127
  39. package/cli/compiler/common/babel/routes/routes.ts +0 -1130
  40. package/cli/compiler/common/files/autres.ts +0 -39
  41. package/cli/compiler/common/files/images.ts +0 -35
  42. package/cli/compiler/common/files/style.ts +0 -78
  43. package/cli/compiler/common/index.ts +0 -154
  44. package/cli/compiler/index.ts +0 -532
  45. package/cli/compiler/server/index.ts +0 -211
  46. package/cli/index.ts +0 -189
  47. package/cli/paths.ts +0 -165
  48. package/cli/print.ts +0 -12
  49. package/cli/tsconfig.json +0 -38
  50. package/cli/utils/index.ts +0 -22
  51. package/cli/utils/keyboard.ts +0 -78
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deactivate = exports.activate = void 0;
13
+ const vscode = require("vscode");
14
+ const fs = require('fs');
15
+ const json5 = require('json5');
16
+ const path = require('path');
17
+ var minimatch = require("minimatch");
18
+ function activate(context) {
19
+ const regEntete = /^\/\/\s+([a-z]+)\:\s+(.+)/i;
20
+ const templates = {};
21
+ const dossierTemplates = path.join(context.extensionPath, '../..', 'templates');
22
+ if (!fs.existsSync(dossierTemplates)) {
23
+ console.log("Template folder not existing:", dossierTemplates);
24
+ return;
25
+ }
26
+ //const dossierTemplates = workspace + '/../node_modules/@dopamyn/framework/templates';
27
+ fs.readdir(dossierTemplates, (err, files) => {
28
+ console.log("Lecture de", dossierTemplates, files);
29
+ if (err)
30
+ return console.error(err);
31
+ for (const file of files) {
32
+ const nom = file.substring(0, file.lastIndexOf('.'));
33
+ let content = fs.readFileSync(dossierTemplates + '/' + file, { encoding: 'utf-8' });
34
+ const entete = regEntete.exec(content);
35
+ if (!entete) {
36
+ console.error(file + `: Entete manquante ou au mauvais format.`);
37
+ continue;
38
+ }
39
+ console.log('Template', file, nom, entete[1], entete[2]);
40
+ // Retire l'entete de la template
41
+ content = content.substring(entete[0].length).trim();
42
+ templates[nom] = { content };
43
+ if (entete[1] === 'Glob')
44
+ templates[nom].glob = entete[2];
45
+ else if (entete[1] === 'Regex')
46
+ templates[nom].regex = new RegExp(entete[2]);
47
+ else
48
+ console.error(file + `: Entete inconnue: ` + entete[1]);
49
+ }
50
+ console.log(templates);
51
+ });
52
+ vscode.workspace.onDidCreateFiles((e) => __awaiter(this, void 0, void 0, function* () {
53
+ for (const file of e.files) {
54
+ const importPath = yield getImportPath(file.path);
55
+ const importName = getImportName(importPath, file.path);
56
+ console.log("Fichier créé:", file.path, importPath);
57
+ // Remplacements
58
+ for (const nom in templates) {
59
+ const { glob, regex, content } = templates[nom];
60
+ let match;
61
+ if ((glob && minimatch(file.path, glob)) || (match = regex === null || regex === void 0 ? void 0 : regex.exec(file.path))) {
62
+ const remplacements = Object.assign({ NAMELOWER: importName.toLowerCase(), NAME: importName, ABSPATH: importPath }, ((match === null || match === void 0 ? void 0 : match.groups) || {}));
63
+ console.log("Template:", nom, "Remplacements:", remplacements);
64
+ fs.writeFileSync(file.path, content.replace(new RegExp(Object.keys(remplacements).join('|'), 'g'), (match) => remplacements[match]));
65
+ break;
66
+ }
67
+ }
68
+ }
69
+ }));
70
+ const readTsConfig = (chemin, workspace) => __awaiter(this, void 0, void 0, function* () {
71
+ var _a;
72
+ console.log('Lecture de ' + chemin);
73
+ const rawtsconfig = fs.readFileSync(chemin, { encoding: 'utf-8' });
74
+ const tsconfig = json5.parse(rawtsconfig);
75
+ const paths = (_a = tsconfig.compilerOptions) === null || _a === void 0 ? void 0 : _a.paths;
76
+ if (paths !== undefined) {
77
+ // Les plus specifiques en premiers
78
+ let retour = [];
79
+ for (let alias in paths) {
80
+ let chemin = path.join(workspace, paths[alias][0]);
81
+ const partiel = chemin.endsWith('*');
82
+ if (partiel) {
83
+ // Retire le * à la fin
84
+ chemin = chemin.substring(0, chemin.length - 1);
85
+ alias = alias.substring(0, alias.length - 1);
86
+ }
87
+ retour.push({
88
+ partiel,
89
+ alias,
90
+ chemin
91
+ });
92
+ }
93
+ retour.sort((a, b) => b.chemin.length - a.chemin.length);
94
+ return retour;
95
+ }
96
+ else if (tsconfig.extends !== undefined)
97
+ return yield readTsConfig(path.resolve(path.dirname(chemin), tsconfig.extends), workspace);
98
+ else
99
+ return [];
100
+ });
101
+ const removeExtensions = (fichier, extensions) => {
102
+ for (const extension of extensions) {
103
+ console.log(extension, fichier);
104
+ if (fichier.endsWith('.' + extension)) {
105
+ fichier = fichier.substring(0, fichier.length - extension.length - 1);
106
+ break;
107
+ }
108
+ }
109
+ if (fichier.endsWith('/index'))
110
+ fichier = fichier.substring(0, fichier.length - 6);
111
+ return fichier;
112
+ };
113
+ const getListeAlias = () => __awaiter(this, void 0, void 0, function* () {
114
+ var _b;
115
+ if (!((_b = vscode.workspace.workspaceFolders) === null || _b === void 0 ? void 0 : _b.length)) {
116
+ console.error(`Impossible de récupérer le dossier du workspace actuel`);
117
+ return [];
118
+ }
119
+ const workspace = vscode.workspace.workspaceFolders[0].uri.path;
120
+ const tsconfigs = yield vscode.workspace.findFiles('tsconfig.json');
121
+ if (tsconfigs.length === 0)
122
+ return [];
123
+ return yield readTsConfig(tsconfigs[0].path, workspace);
124
+ });
125
+ const getImportPath = (fichier) => __awaiter(this, void 0, void 0, function* () {
126
+ const listeAlias = yield getListeAlias();
127
+ console.log('fichier =', fichier);
128
+ console.log('listeAlias =', listeAlias);
129
+ for (const alias of listeAlias) {
130
+ // Remplacement prefixe
131
+ if (alias.partiel) {
132
+ if (fichier.startsWith(alias.chemin)) {
133
+ fichier = alias.alias + fichier.substring(alias.chemin.length);
134
+ break;
135
+ }
136
+ // Remplacement complet
137
+ }
138
+ else {
139
+ if (fichier === alias.chemin) {
140
+ fichier = alias.alias;
141
+ break;
142
+ }
143
+ }
144
+ }
145
+ // Vire l'extension
146
+ fichier = removeExtensions(fichier, ['tsx', 'ts', 'js', 'jsx']);
147
+ return fichier;
148
+ });
149
+ const findImportPath = (selectedFile) => __awaiter(this, void 0, void 0, function* () {
150
+ let fichier;
151
+ if (selectedFile)
152
+ fichier = selectedFile.path;
153
+ else {
154
+ if (!vscode.window.activeTextEditor)
155
+ return console.error(`Aucun editeur actif`);
156
+ fichier = vscode.window.activeTextEditor.document.uri.path;
157
+ }
158
+ return yield getImportPath(fichier);
159
+ });
160
+ const getImportName = (importPath, originalPath) => {
161
+ const content = fs.readFileSync(originalPath, { encoding: 'utf-8' });
162
+ const exportdefault = /export default\s+(function|class|new)\s+([a-zA-Z]+)/.exec(content);
163
+ let nomModule;
164
+ if (exportdefault) {
165
+ nomModule = exportdefault[2];
166
+ }
167
+ else {
168
+ const posSlash = importPath.lastIndexOf('/');
169
+ nomModule = importPath.substring(posSlash === -1 ? 0 : posSlash + 1);
170
+ nomModule = nomModule[0].toUpperCase() + nomModule.substring(1);
171
+ }
172
+ return nomModule;
173
+ };
174
+ const copier = (txt) => {
175
+ console.log(txt);
176
+ vscode.env.clipboard.writeText(txt);
177
+ //vscode.window.showInformationMessage('Copied ' + txt);
178
+ };
179
+ context.subscriptions.push(vscode.commands.registerCommand('copyimportationpath.copy', (selected) => __awaiter(this, void 0, void 0, function* () {
180
+ try {
181
+ const fichier = yield findImportPath(selected);
182
+ if (fichier)
183
+ copier(fichier);
184
+ }
185
+ catch (error) {
186
+ vscode.window.showErrorMessage(error.toString());
187
+ console.error(error);
188
+ }
189
+ })), vscode.commands.registerCommand('copyimportationpath.copyStatement', (selected) => __awaiter(this, void 0, void 0, function* () {
190
+ try {
191
+ const importPath = yield findImportPath(selected);
192
+ if (importPath) {
193
+ const importName = getImportName(importPath, selected.path);
194
+ copier(`import ${importName} from '${importPath}';`);
195
+ }
196
+ }
197
+ catch (error) {
198
+ vscode.window.showErrorMessage(error.toString());
199
+ console.error(error);
200
+ }
201
+ })));
202
+ }
203
+ exports.activate = activate;
204
+ function deactivate() { }
205
+ exports.deactivate = deactivate;
206
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}