proteum 1.0.0 → 1.0.3

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 (70) hide show
  1. package/AGENTS.md +9 -0
  2. package/cli/app/config.ts +61 -0
  3. package/cli/app/index.ts +227 -0
  4. package/cli/bin.js +35 -0
  5. package/cli/commands/build.ts +60 -0
  6. package/cli/commands/deploy/app.ts +29 -0
  7. package/cli/commands/deploy/web.ts +60 -0
  8. package/cli/commands/dev.ts +124 -0
  9. package/cli/commands/init.ts +85 -0
  10. package/cli/commands/refresh.ts +18 -0
  11. package/cli/compiler/client/identite.ts +69 -0
  12. package/cli/compiler/client/index.ts +343 -0
  13. package/cli/compiler/common/babel/index.ts +173 -0
  14. package/cli/compiler/common/babel/plugins/index.ts +0 -0
  15. package/cli/compiler/common/babel/plugins/services.ts +586 -0
  16. package/cli/compiler/common/babel/routes/imports.ts +127 -0
  17. package/cli/compiler/common/babel/routes/routes.ts +1170 -0
  18. package/cli/compiler/common/files/autres.ts +39 -0
  19. package/cli/compiler/common/files/images.ts +42 -0
  20. package/cli/compiler/common/files/style.ts +82 -0
  21. package/cli/compiler/common/index.ts +165 -0
  22. package/cli/compiler/index.ts +585 -0
  23. package/cli/compiler/server/index.ts +220 -0
  24. package/cli/index.ts +213 -0
  25. package/cli/paths.ts +165 -0
  26. package/cli/print.ts +12 -0
  27. package/cli/tsconfig.json +42 -0
  28. package/cli/utils/index.ts +22 -0
  29. package/cli/utils/keyboard.ts +78 -0
  30. package/client/app/index.ts +2 -0
  31. package/client/components/Dialog/Manager.tsx +3 -49
  32. package/client/components/Dialog/index.less +3 -1
  33. package/client/components/index.ts +1 -2
  34. package/client/services/router/index.tsx +6 -16
  35. package/common/errors/index.tsx +12 -31
  36. package/package.json +58 -22
  37. package/server/app/container/config.ts +20 -1
  38. package/server/app/container/console/index.ts +1 -1
  39. package/server/services/auth/index.ts +62 -27
  40. package/server/services/auth/router/request.ts +17 -6
  41. package/server/services/router/http/index.ts +3 -3
  42. package/server/services/router/response/index.ts +1 -1
  43. package/server/services/schema/request.ts +28 -10
  44. package/server/utils/slug.ts +0 -3
  45. package/tsconfig.common.json +2 -1
  46. package/types/global/constants.d.ts +12 -0
  47. package/changelog.md +0 -5
  48. package/client/components/Button.tsx +0 -298
  49. package/client/components/Dialog/card.tsx +0 -208
  50. package/client/data/input.ts +0 -32
  51. package/client/pages/bug.tsx.old +0 -60
  52. package/templates/composant.tsx +0 -40
  53. package/templates/form.ts +0 -30
  54. package/templates/modal.tsx +0 -47
  55. package/templates/modele.ts +0 -56
  56. package/templates/page.tsx +0 -74
  57. package/templates/route.ts +0 -43
  58. package/templates/service.ts +0 -75
  59. package/vscode/copyimportationpath/.eslintrc.json +0 -24
  60. package/vscode/copyimportationpath/.vscodeignore +0 -12
  61. package/vscode/copyimportationpath/CHANGELOG.md +0 -9
  62. package/vscode/copyimportationpath/README.md +0 -3
  63. package/vscode/copyimportationpath/copyimportationpath-0.0.1.vsix +0 -0
  64. package/vscode/copyimportationpath/out/extension.js +0 -206
  65. package/vscode/copyimportationpath/out/extension.js.map +0 -1
  66. package/vscode/copyimportationpath/package-lock.json +0 -4536
  67. package/vscode/copyimportationpath/package.json +0 -86
  68. package/vscode/copyimportationpath/src/extension.ts +0 -300
  69. package/vscode/copyimportationpath/tsconfig.json +0 -22
  70. package/vscode/copyimportationpath/vsc-extension-quickstart.md +0 -42
@@ -1,12 +0,0 @@
1
- .vscode/**
2
- .vscode-test/**
3
- out/test/**
4
-
5
- src/**
6
- .gitignore
7
- .yarnrc
8
- vsc-extension-quickstart.md
9
- **/tsconfig.json
10
- **/.eslintrc.json
11
- **/*.map
12
- **/*.ts
@@ -1,9 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to the "copyimportationpath" extension will be documented in this file.
4
-
5
- Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6
-
7
- ## [Unreleased]
8
-
9
- - Initial release
@@ -1,3 +0,0 @@
1
- # copyimportationpath README
2
-
3
- Hello
@@ -1,206 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}