nodefony 7.0.0-beta.2 → 7.0.0-beta.21

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 (136) hide show
  1. package/CHANGELOG.md +534 -8028
  2. package/README.md +33 -30
  3. package/autoloader.es6 +46 -48
  4. package/builder.es6 +66 -76
  5. package/cli/builder/bundles/bundle.js +57 -63
  6. package/cli/builder/bundles/controller.js +34 -38
  7. package/cli/builder/bundles/users-bundle/Command/fixtureTask.js +11 -12
  8. package/cli/builder/bundles/users-bundle/Command/usersCommand.js +23 -24
  9. package/cli/builder/bundles/users-bundle/Entity/mongoose/userEntity.js +25 -30
  10. package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +42 -31
  11. package/cli/builder/bundles/users-bundle/Fixtures/users.js +24 -26
  12. package/cli/builder/bundles/users-bundle/Fixtures/usersFixtures.js +28 -29
  13. package/cli/builder/bundles/users-bundle/Resources/config/config.js +4 -3
  14. package/cli/builder/bundles/users-bundle/Resources/config/routing.js +2 -2
  15. package/cli/builder/bundles/users-bundle/Resources/config/security.js +9 -8
  16. package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.dev.config.js +3 -3
  17. package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.prod.config.js +4 -3
  18. package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +74 -75
  19. package/cli/builder/bundles/users-bundle/Resources/scss/awesome/font-awesome.config.js +9 -9
  20. package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/login.js +13 -13
  21. package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/users.js +14 -14
  22. package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +13 -15
  23. package/cli/builder/bundles/users-bundle/controller/api/graphql/userResolver.js +29 -29
  24. package/cli/builder/bundles/users-bundle/controller/api/graphql/usertype.js +2 -2
  25. package/cli/builder/bundles/users-bundle/controller/api/openapi/loginApiController.js +34 -36
  26. package/cli/builder/bundles/users-bundle/controller/api/openapi/restUserController.js +32 -36
  27. package/cli/builder/bundles/users-bundle/controller/loginController.js +30 -34
  28. package/cli/builder/bundles/users-bundle/controller/usersController.js +54 -60
  29. package/cli/builder/bundles/users-bundle/package.json +27 -25
  30. package/cli/builder/bundles/users-bundle/pnpm-lock.yaml +4262 -0
  31. package/cli/builder/bundles/users-bundle/readme.md +7 -7
  32. package/cli/builder/bundles/users-bundle/services/usersService.js +97 -102
  33. package/cli/builder/bundles/users-bundle/src/providers/mongoose/userProvider.js +6 -8
  34. package/cli/builder/bundles/users-bundle/src/providers/sequelize/userProvider.js +9 -10
  35. package/cli/builder/bundles/users-bundle/tests/loginTest.js +119 -70
  36. package/cli/builder/bundles/users-bundle/usersBundle.js +2 -3
  37. package/cli/builder/microService/microService.js +139 -141
  38. package/cli/builder/microService/skeletons/package.json +23 -22
  39. package/cli/builder/project/project.js +228 -181
  40. package/cli/builder/project/skeletons/README.md +33 -30
  41. package/cli/builder/project/skeletons/bin/dev-deploy.sh +5 -0
  42. package/cli/builder/project/skeletons/bin/prod-deploy.sh +3 -0
  43. package/cli/builder/project/skeletons/config/config.js.skeleton +1 -0
  44. package/cli/builder/project/skeletons/config/pm2.config.js.skeleton +41 -17
  45. package/cli/builder/project/skeletons/eslintignore.skeleton +15 -0
  46. package/cli/builder/project/skeletons/eslintrc.js.skeleton +97 -0
  47. package/cli/builder/project/skeletons/gitignore.skeleton +1 -0
  48. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.37.entity-user.js +137 -0
  49. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.38.entity-session.js +97 -0
  50. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.39.entity-requests.js +115 -0
  51. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.40.entity-jwts.js +97 -0
  52. package/cli/builder/project/skeletons/migrations/migrations.skeleton.js +0 -2
  53. package/cli/builder/project/skeletons/package.json.twig +70 -0
  54. package/cli/builder/react/reactBuilder.js +59 -65
  55. package/cli/builder/sandbox/sandBoxBuilder.js +132 -134
  56. package/cli/builder/skeletons/app/appKernel.js +120 -2
  57. package/cli/builder/skeletons/config/config.js +1 -1
  58. package/cli/builder/skeletons/config/nodefony/framework-bundle.js +2 -1
  59. package/cli/builder/skeletons/config/nodefony/http-bundle.js +1 -0
  60. package/cli/builder/skeletons/config/nodefony/mongoose-bundle.js +38 -12
  61. package/cli/builder/skeletons/config/nodefony/monitoring-bundle.js +21 -2
  62. package/cli/builder/skeletons/config/nodefony/sequelize-bundle.js +122 -13
  63. package/cli/builder/skeletons/package.json.twig +57 -0
  64. package/cli/builder/skeletons/unittest/testFile.js +44 -45
  65. package/cli/builder/vue/skeletons/vue.config.js +84 -10
  66. package/cli/builder/vue/vueBuilder.js +116 -114
  67. package/cli/generate/generate.es6 +38 -39
  68. package/cli/install/install.js +45 -58
  69. package/cli/sequelize/sequelize.js +50 -39
  70. package/cli/start.js +353 -347
  71. package/cli/tools/pm2.es6 +55 -57
  72. package/cli/tools/tools.es6 +36 -37
  73. package/cli.es6 +280 -228
  74. package/container.es6 +51 -59
  75. package/error.es6 +25 -27
  76. package/fileClass.es6 +53 -55
  77. package/finder/file.es6 +5 -4
  78. package/finder/fileResult.es6 +23 -22
  79. package/finder/finder2.es6 +46 -54
  80. package/finder.es6 +88 -97
  81. package/kernel/annotations/annotations.es6 +44 -46
  82. package/kernel/api/api.es6 +6 -8
  83. package/kernel/api/graphqlApi.es6 +21 -21
  84. package/kernel/api/jsonApi.es6 +40 -45
  85. package/kernel/api/openApi.es6 +9 -11
  86. package/kernel/api/schemas/openApiSchema.js +61 -32
  87. package/kernel/babylon.es6 +31 -38
  88. package/kernel/bundle.es6 +252 -220
  89. package/kernel/cliKernel.es6 +157 -170
  90. package/kernel/command.es6 +17 -20
  91. package/kernel/commands/nodefonyCommand.es6 +111 -58
  92. package/kernel/commands/tasks/bundlesTask.es6 +14 -19
  93. package/kernel/controllers/controller.es6 +167 -180
  94. package/kernel/fixture.es6 +4 -7
  95. package/kernel/injections/injections.es6 +97 -103
  96. package/kernel/kernel.es6 +476 -384
  97. package/kernel/kernelWatcher.es6 +64 -54
  98. package/kernel/orm/entity.es6 +10 -12
  99. package/kernel/orm/orm.es6 +68 -48
  100. package/kernel/reader.es6 +45 -47
  101. package/kernel/security/encoder.es6 +8 -6
  102. package/kernel/security/factories/factory.es6 +34 -37
  103. package/kernel/security/factories/passeportFactory.es6 +13 -14
  104. package/kernel/security/provider.es6 +11 -13
  105. package/kernel/security/providers/chainProvider.es6 +13 -28
  106. package/kernel/security/providers/memoryProvider.es6 +7 -11
  107. package/kernel/security/providers/providerManager.es6 +11 -14
  108. package/kernel/security/providers/userEntityProvider.es6 +7 -8
  109. package/kernel/security/role.es6 +3 -3
  110. package/kernel/security/secureArea.es6 +143 -149
  111. package/kernel/security/tokens/token.es6 +30 -32
  112. package/kernel/security/user.es6 +19 -19
  113. package/kernel/serviceRealTime.es6 +5 -7
  114. package/kernel/services/connectionsService.es6 +20 -22
  115. package/kernel/services/cron/cronService.es6 +14 -16
  116. package/kernel/task.es6 +20 -26
  117. package/kernel/templates.es6 +4 -5
  118. package/kernel/templating/twig.es6 +56 -47
  119. package/kernel/tests/cliTest.js +7 -11
  120. package/kernel/tests/containerTest.js +25 -37
  121. package/kernel/tests/kernelTest.js +9 -16
  122. package/nodefony.es6 +279 -256
  123. package/notificationsCenter.es6 +28 -20
  124. package/package.json +40 -40
  125. package/protocol.es6 +19 -21
  126. package/protocols/bayeux.es6 +35 -38
  127. package/protocols/jsonRpc/jsonrpc.es6 +12 -14
  128. package/result.es6 +11 -12
  129. package/service.es6 +62 -62
  130. package/syslog/pdu.es6 +99 -91
  131. package/syslog/syslog.es6 +101 -102
  132. package/watcher.es6 +21 -20
  133. package/cli/builder/project/skeletons/jshintignore.skeleton +0 -1
  134. package/cli/builder/project/skeletons/jshintrc.skeleton +0 -60
  135. package/cli/builder/project/skeletons/package.json.skeleton +0 -52
  136. package/cli/builder/skeletons/package.json +0 -61
@@ -1,51 +1,36 @@
1
1
  module.exports = class installProject extends nodefony.Builder {
2
-
3
- constructor(cli) {
2
+ constructor (cli) {
4
3
  super(cli);
5
4
  }
6
5
 
7
- log(pci, severity, msgid, msg) {
6
+ log (pci, severity, msgid, msg) {
8
7
  if (!msgid) {
9
8
  msgid = "INSTALLER";
10
9
  }
11
10
  return super.log(pci, severity, msgid, msg);
12
11
  }
13
12
 
14
- async install(cwd = path.resolve(".")) {
15
- return new Promise((resolve, reject) => {
16
- return this.installFramework(cwd)
17
- .then(() => {
18
- return this.cli.packageManager.call(this.cli, ["install"], cwd)
19
- .then(() => {
20
- if (false && nodefony.isCore && process.platform !== "win32") {
21
- return this.npmLink(path.resolve("."), path.resolve("src", "nodefony"))
22
- .catch((e) => {
23
- return reject(e);
24
- });
25
- } else {
26
- return cwd;
27
- }
28
- })
29
- .then(() => {
30
- this.cli.parseNodefonyCommand("install", [cwd]);
31
- return resolve(cwd);
32
- })
33
- .catch((e) => {
34
- return reject(e);
35
- });
36
- });
37
- });
13
+ install (cwd = path.resolve("."), args = [], interactive = false) {
14
+ return this.installFramework(cwd)
15
+ .then(() => this.cli.packageManager(["install"], cwd))
16
+ .then(async () => {
17
+ await this.cli.parseNodefonyCommand("install", [cwd, args, interactive]);
18
+ return cwd;
19
+ })
20
+ .catch((e) => {
21
+ throw e;
22
+ });
38
23
  }
39
24
 
40
- async build(cwd = path.resolve(".")) {
25
+ async build (cwd = path.resolve("."), args = [], interactive = false) {
41
26
  await this.generateCertificates(cwd);
42
27
  return cwd;
43
28
  }
44
29
 
45
- rebuild(cwd = path.resolve(".")) {
30
+ rebuild (cwd = path.resolve("."), args = [], interactive = false) {
46
31
  let cmd = null;
47
32
  switch (nodefony.packageManager) {
48
- case 'yarn':
33
+ case "yarn":
49
34
  cmd = ["install", "--force"];
50
35
  break;
51
36
  default:
@@ -55,16 +40,15 @@ module.exports = class installProject extends nodefony.Builder {
55
40
  this.cli.rm("-rf", path.resolve(cwd, "node_modules"));
56
41
  this.cli.rm("-rf", path.resolve(cwd, "yarn.lock"));
57
42
  this.cli.rm("-rf", path.resolve(cwd, "package-lock.json"));
43
+ this.cli.rm("-rf", path.resolve(cwd, "ppnpm-lock.yaml"));
58
44
  } catch (e) {
59
45
  throw e;
60
46
  }
61
- return this.cli.packageManager.call(this.cli, cmd, cwd, "development")
62
- .then(() => {
63
- return cwd;
64
- });
47
+ return this.cli.packageManager(cmd, cwd, "production")
48
+ .then(() => cwd);
65
49
  }
66
50
 
67
- async npmLink(cwd = path.resolve("."), argv = []) {
51
+ npmLink (cwd = path.resolve("."), argv = []) {
68
52
  return new Promise((resolve, reject) => {
69
53
  let tab = ["link"];
70
54
  if (argv) {
@@ -72,14 +56,14 @@ module.exports = class installProject extends nodefony.Builder {
72
56
  }
73
57
  let cmd = null;
74
58
  try {
75
- this.log("npm link " + argv);
59
+ this.log(`npm link ${argv}`);
76
60
  cmd = this.cli.spawn("npm", tab, {
77
- cwd: cwd,
61
+ cwd,
78
62
  shell: true,
79
63
  stdio: "inherit"
80
64
  }, (code) => {
81
65
  if (code === 1) {
82
- return reject(new Error("nmp link error : " + code));
66
+ return reject(new Error(`nmp link error : ${code}`));
83
67
  }
84
68
  return resolve(cwd);
85
69
  });
@@ -90,23 +74,23 @@ module.exports = class installProject extends nodefony.Builder {
90
74
  });
91
75
  }
92
76
 
93
- async generateCertificates(cwd = path.resolve(".")) {
77
+ generateCertificates (cwd = path.resolve(".")) {
94
78
  return new Promise((resolve, reject) => {
95
79
  try {
96
- let directory = path.resolve(cwd, "config", "certificates");
80
+ const directory = path.resolve(cwd, "config", "certificates");
97
81
  this.log(`Clean certificates in : ${directory}`);
98
82
  this.cli.rm("-rf", directory);
99
83
  this.checkDirectoryExist(directory);
100
84
  this.log(`Generate openssl certificates in : ${directory}`);
101
85
  let cmd = null;
102
86
  cmd = this.cli.spawn("bash", [path.resolve(cwd, "bin", "generateCertificates.sh")], {
103
- //cmd = this.cli.spawn(path.resolve(cwd, "bin", "generateCertificates.sh"), [], {
104
- cwd: cwd,
87
+ // cmd = this.cli.spawn(path.resolve(cwd, "bin", "generateCertificates.sh"), [], {
88
+ cwd,
105
89
  shell: true,
106
90
  stdio: "inherit"
107
91
  }, (code) => {
108
92
  if (code !== 0) {
109
- return reject(new Error("generateCertificates error : " + code));
93
+ return reject(new Error(`generateCertificates error : ${code}`));
110
94
  }
111
95
  return resolve(cwd);
112
96
  });
@@ -116,19 +100,19 @@ module.exports = class installProject extends nodefony.Builder {
116
100
  });
117
101
  }
118
102
 
119
- async installFramework(cwd = path.resolve(".")) {
103
+ installFramework (cwd = path.resolve(".")) {
120
104
  return new Promise((resolve, reject) => {
121
105
  this.log("Create Framework directories");
122
106
  try {
123
- let tmp = path.resolve(cwd, "tmp");
107
+ const tmp = path.resolve(cwd, "tmp");
124
108
  this.checkDirectoryExist(tmp);
125
- let upload = path.resolve(cwd, "tmp", "upload");
109
+ const upload = path.resolve(cwd, "tmp", "upload");
126
110
  this.checkDirectoryExist(upload);
127
- let bin = path.resolve(cwd, "bin");
111
+ const bin = path.resolve(cwd, "bin");
128
112
  this.checkDirectoryExist(bin);
129
- let databases = path.resolve(cwd, "app", "Resources", "databases");
113
+ const databases = path.resolve(cwd, "app", "Resources", "databases");
130
114
  this.checkDirectoryExist(databases);
131
- let web = path.resolve(cwd, "web");
115
+ const web = path.resolve(cwd, "web");
132
116
  this.checkDirectoryExist(web);
133
117
  let js = path.resolve(cwd, "web", "js");
134
118
  this.checkDirectoryExist(js);
@@ -138,7 +122,7 @@ module.exports = class installProject extends nodefony.Builder {
138
122
  this.checkDirectoryExist(images);
139
123
  let fonts = path.resolve(cwd, "web", "fonts");
140
124
  this.checkDirectoryExist(fonts);
141
- let assets = path.resolve(cwd, "web", "assets");
125
+ const assets = path.resolve(cwd, "web", "assets");
142
126
  this.checkDirectoryExist(assets);
143
127
  js = path.resolve(cwd, "web", "assets", "js");
144
128
  this.checkDirectoryExist(js);
@@ -155,7 +139,7 @@ module.exports = class installProject extends nodefony.Builder {
155
139
  });
156
140
  }
157
141
 
158
- checkDirectoryExist(directory) {
142
+ checkDirectoryExist (directory) {
159
143
  if (!this.cli.exists(directory)) {
160
144
  try {
161
145
  this.cli.mkdir(directory);
@@ -166,7 +150,7 @@ module.exports = class installProject extends nodefony.Builder {
166
150
  }
167
151
  }
168
152
 
169
- removeDirectory(directory, recurse) {
153
+ removeDirectory (directory, recurse) {
170
154
  if (this.cli.exists(directory)) {
171
155
  try {
172
156
  if (recurse) {
@@ -181,19 +165,22 @@ module.exports = class installProject extends nodefony.Builder {
181
165
  }
182
166
  }
183
167
 
184
- async clear(cwd = path.resolve(".")) {
168
+ async clear (cwd = path.resolve(".")) {
185
169
  return new Promise((resolve, reject) => {
186
170
  try {
187
- let web = path.resolve(cwd, "web");
171
+ const web = path.resolve(cwd, "web");
188
172
  this.removeDirectory(web, true);
189
- let modules = path.resolve(cwd, "node_modules");
173
+ const modules = path.resolve(cwd, "node_modules");
190
174
  this.removeDirectory(modules, true);
191
- let tmp = path.resolve(cwd, "tmp");
175
+ const tmp = path.resolve(cwd, "tmp");
192
176
  this.removeDirectory(tmp, true);
193
- let npmLock = path.resolve(cwd, "package-lock.json");
177
+ const npmLock = path.resolve(cwd, "package-lock.json");
194
178
  this.removeDirectory(npmLock);
195
- let yarnLock = path.resolve(cwd, "yarn.lock");
179
+ const yarnLock = path.resolve(cwd, "yarn.lock");
196
180
  this.removeDirectory(yarnLock);
181
+ const pnpmLock = path.resolve(cwd, "pnpm-lock.yaml");
182
+ this.removeDirectory(pnpmLock);
183
+
197
184
  return resolve(this.installFramework(cwd));
198
185
  } catch (e) {
199
186
  return reject(e);
@@ -1,18 +1,17 @@
1
1
  module.exports = class sequlizeBuilder extends nodefony.Builder {
2
-
3
- constructor(cli) {
2
+ constructor (cli) {
4
3
  super(cli);
5
4
  this.choices = [];
6
- this.choices.push(`Create Database`);
7
- this.choices.push(`Synchronize`);
8
- this.choices.push(`Migrate`);
9
- this.choices.push(`Migrations Pending`);
10
- this.choices.push(`Migrations Executed`);
5
+ this.choices.push("Create Database");
6
+ this.choices.push("Synchronize");
7
+ this.choices.push("Migrate");
8
+ this.choices.push("Migrations Pending");
9
+ this.choices.push("Migrations Executed");
11
10
  this.choices.push(this.cli.getSeparator());
12
11
  this.choices.push("Quit");
13
12
  }
14
13
 
15
- log(pci, severity, msgid, msg) {
14
+ log (pci, severity, msgid, msg) {
16
15
  try {
17
16
  if (!msgid) {
18
17
  msgid = "Sequelize";
@@ -23,49 +22,49 @@ module.exports = class sequlizeBuilder extends nodefony.Builder {
23
22
  }
24
23
  }
25
24
 
26
- interaction() {
25
+ interaction () {
27
26
  return this.cli.prompt([{
28
- type: 'list',
29
- name: 'command',
30
- message: ' Nodefony CLI : ',
31
- default: 0,
32
- pageSize: this.choices.length,
33
- choices: this.choices,
34
- filter: (val) => {
35
- switch (val) {
36
- case "Create Database":
37
- return "create";
38
- case "Synchronize":
39
- return "sync";
40
- case "Migrate":
41
- return "migrate";
42
- case "Migrations Pending":
43
- return "migrateP";
44
- case "Migrations Executed":
45
- return "migrateE";
46
- case "Delete PM2 Production Project":
47
- return "delete";
48
- case "Quit":
49
- return "quit";
50
- default:
51
- console.log("\n");
52
- this.log(`command not found : ${val}`, "ERROR");
53
- this.cli.terminate(1);
54
- }
27
+ type: "list",
28
+ name: "command",
29
+ message: " Nodefony CLI : ",
30
+ default: 0,
31
+ pageSize: this.choices.length,
32
+ choices: this.choices,
33
+ filter: (val) => {
34
+ switch (val) {
35
+ case "Create Database":
36
+ return "create";
37
+ case "Synchronize":
38
+ return "sync";
39
+ case "Migrate":
40
+ return "migrate";
41
+ case "Migrations Pending":
42
+ return "migrateP";
43
+ case "Migrations Executed":
44
+ return "migrateE";
45
+ case "Delete PM2 Production Project":
46
+ return "delete";
47
+ case "Quit":
48
+ return "quit";
49
+ default:
50
+ console.log("\n");
51
+ this.log(`command not found : ${val}`, "ERROR");
52
+ this.cli.terminate(1);
55
53
  }
56
- }])
54
+ }
55
+ }])
57
56
  .then((response) => {
58
57
  this.start(response);
59
58
  return response;
60
59
  });
61
60
  }
62
61
 
63
- start(response) {
62
+ start (response) {
64
63
  switch (response.command) {
65
64
  case "create":
66
65
  return this.cli.setCommand("sequelize:create:database");
67
66
  case "sync":
68
- return this.cli.setCommand("sequelize:sync");
67
+ return this.sync();
69
68
  case "migrate":
70
69
  return this.cli.setCommand("sequelize:migrate:up");
71
70
  case "migrateP":
@@ -80,4 +79,16 @@ module.exports = class sequlizeBuilder extends nodefony.Builder {
80
79
  }
81
80
  }
82
81
 
82
+ sync () {
83
+ return this.cli.prompt([{
84
+ type: "list",
85
+ name: "sync",
86
+ message: "Synchronize type",
87
+ default: 0,
88
+ pageSize: 3,
89
+ choices: ["sync", "alter", "force"],
90
+ filter: (value) => value
91
+ }])
92
+ .then((response) => this.cli.setCommand("sequelize:sync", [response.sync]));
93
+ }
83
94
  };