nodefony 6.9.0 → 6.11.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 (57) hide show
  1. package/CHANGELOG.md +337 -0
  2. package/README.md +2 -5
  3. package/autoloader.es6 +4 -3
  4. package/cli/builder/bundles/users-bundle/Command/usersCommand.js +1 -1
  5. package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +6 -2
  6. package/cli/builder/bundles/users-bundle/Fixtures/users.js +1 -1
  7. package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +4 -0
  8. package/cli/builder/bundles/users-bundle/Resources/graphiql/graphiql.jsx +40 -4
  9. package/cli/builder/bundles/users-bundle/Resources/scss/users.scss +9 -10
  10. package/cli/builder/bundles/users-bundle/Resources/swagger/swagger.js +4 -2
  11. package/cli/builder/bundles/users-bundle/Resources/translations/login.en_en.yml +3 -1
  12. package/cli/builder/bundles/users-bundle/Resources/translations/login.fr_fr.yml +2 -0
  13. package/cli/builder/bundles/users-bundle/Resources/views/documentation/base.html.twig +1 -2
  14. package/cli/builder/bundles/users-bundle/Resources/views/footer.html.twig +2 -4
  15. package/cli/builder/bundles/users-bundle/Resources/views/graphiql/index.html.twig +4 -9
  16. package/cli/builder/bundles/users-bundle/Resources/views/header.html.twig +63 -66
  17. package/cli/builder/bundles/users-bundle/Resources/views/swagger/index.html.twig +4 -12
  18. package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +2 -0
  19. package/cli/builder/bundles/users-bundle/controller/usersController.js +1 -1
  20. package/cli/builder/bundles/users-bundle/package.json +26 -25
  21. package/cli/builder/microService/skeletons/config/pm2.config.js +1 -1
  22. package/cli/builder/microService/skeletons/config/webpack/webpack.config.dev.js +1 -6
  23. package/cli/builder/microService/skeletons/config/webpack/webpack.config.prod.js +1 -6
  24. package/cli/builder/microService/skeletons/config/webpack.config.js +40 -34
  25. package/cli/builder/microService/skeletons/package.json +41 -36
  26. package/cli/builder/microService/skeletons/src/browser/index.css +1 -1
  27. package/cli/builder/microService/skeletons/src/browser/index.js +1 -3
  28. package/cli/builder/microService/skeletons/src/browser/socketio.js +46 -0
  29. package/cli/builder/microService/skeletons/src/node/examples/index.js +12 -52
  30. package/cli/builder/microService/skeletons/src/node/index.js +18 -18
  31. package/cli/builder/microService/skeletons/src/node/services/servers/http.js +9 -1
  32. package/cli/builder/microService/skeletons/src/node/services/servers/https.js +9 -1
  33. package/cli/builder/microService/skeletons/src/node/services/socketio/socketio.js +15 -12
  34. package/cli/builder/microService/skeletons/src/templates/base.html +12 -0
  35. package/cli/builder/microService/skeletons/src/templates/socket.html +23 -0
  36. package/cli/builder/project/skeletons/README.md +2 -5
  37. package/cli/builder/project/skeletons/config/config.js.skeleton +1 -1
  38. package/cli/builder/project/skeletons/package.json.skeleton +7 -7
  39. package/cli/builder/sandbox/skeletons/Resources/js/entry.js +2 -2
  40. package/cli/builder/sandbox/skeletons/Resources/views/base.html.twig +2 -2
  41. package/cli/builder/skeletons/config/nodefony/http-bundle.js +5 -3
  42. package/cli/builder/skeletons/config/nodefony/redis-bundle.js +16 -11
  43. package/cli/builder/skeletons/config/webpack.config.js +4 -4
  44. package/cli/builder/skeletons/package.json +21 -18
  45. package/cli/install/install.js +2 -1
  46. package/cli.es6 +6 -12
  47. package/error.es6 +2 -1
  48. package/kernel/api/graphqlApi.es6 +17 -7
  49. package/kernel/bundle.es6 +1 -1
  50. package/kernel/cliKernel.es6 +1 -1
  51. package/kernel/controllers/controller.es6 +4 -0
  52. package/kernel/kernel.es6 +1 -1
  53. package/kernel/reader.es6 +1 -0
  54. package/kernel/security/secureArea.es6 +3 -1
  55. package/nodefony.es6 +1 -1
  56. package/package.json +37 -37
  57. package/cli/builder/bundles/users-bundle/Resources/views/index.html.twig +0 -19
@@ -12,7 +12,7 @@
12
12
  <link rel="icon" type="image/x-icon" href="/app/favicon.ico"/>
13
13
  {% endblock %}
14
14
  {% block description %}
15
- <meta name="description" content="Node.js full-stack web framework Symfony Like">
15
+ <meta name="description" content="Node.js full-stack web framework">
16
16
  {% endblock %}
17
17
  <title>
18
18
  {% block title %}{{nodefony.name|escape}}{% endblock %}
@@ -28,7 +28,6 @@
28
28
  {% endblock %}
29
29
  {% block body %}{% endblock %}
30
30
  {% block footer %}
31
- {{ render( controller("documentation:documentation:footer" )) }}
32
31
  {% endblock %}
33
32
  {% block javascripts %}
34
33
  <!-- WEBPACK BUNDLE -->
@@ -1,9 +1,7 @@
1
1
  <!-- Footer -->
2
- <footer class="page-footer font-small bg-light fixed-bottom">
3
- <!-- Copyright -->
4
- <div class="text-center py-3">
2
+ <footer class="footer mt-auto py-3 bg-light fixed-bottom">
3
+ <div class="container">
5
4
  <a href="https://github.com/nodefony">{{year|escape}} powered by: nodefony@{{nodefony.version}}</a>
6
5
  </div>
7
- <!-- Copyright -->
8
6
  </footer>
9
7
  <!-- Footer -->
@@ -1,12 +1,11 @@
1
- {% extends '../base.html.twig' %}
2
-
1
+ {% extends '../documentation/base.html.twig' %}
3
2
 
4
3
  {% block title %}{{title|escape}}{% endblock %}
5
4
 
6
5
  {% block stylesheets %}
7
6
  <!-- WEBPACK BUNDLE -->
8
- <link rel="stylesheet" href="/documentation-bundle/assets/css/documentation.css"/>
9
7
  <link rel='stylesheet' href='{{CDN("stylesheet")}}/users-bundle/assets/css/graphiql.css'/>
8
+ {{ parent() }}
10
9
  <style>
11
10
  body {
12
11
  padding: 0;
@@ -21,14 +20,10 @@
21
20
 
22
21
  {% block body %}
23
22
 
24
- {% block header %}
25
- {{ render( controller("users:users:header" )) }}
26
- {% endblock %}
27
-
28
23
  <div class="container-fluid">
29
24
  <div class="row flex-xl-nowrap">
30
25
  {% include '../documentation/navbar.html.twig' %}
31
- <main class="col-12 col-md-9 col-xl-8" style="top: 4rem;">
26
+ <main class="col-12 col-md-9 col-xl-10" style="top: 2px;">
32
27
  <div id="graphiql"></div>
33
28
  </main>
34
29
  </div>
@@ -40,6 +35,6 @@
40
35
 
41
36
  <!-- WEBPACK BUNDLE -->
42
37
  <script src='{{CDN("javascript")}}/users-bundle/assets/js/graphiql.js'></script>
43
- <script type="text/javascript" src="/documentation-bundle/assets/js/documentation.js"></script>
38
+ {{ parent() }}
44
39
 
45
40
  {% endblock %}
@@ -1,29 +1,22 @@
1
1
  {% set user = getUser() %}
2
2
 
3
- <nav class="navbar navbar-expand-lg navbar-light bg-light">
4
- <div class="container-fluid">
5
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#header_nodefony" aria-controls="header_nodefony" aria-expanded="false" aria-label="Toggle navigation">
6
- <span class="navbar-toggler-icon"></span>
7
- </button>
8
- <a class="navbar-brand mr-5" href="/">
3
+ <div class="container-fluid">
4
+ <header class="d-flex flex-wrap align-items-center justify-content-center justify-content-md-between py-3 mb-4 border-bottom">
5
+ <a href="/" class="d-flex align-items-center col-md-3 mb-2 mb-md-0 text-dark text-decoration-none">
9
6
  <img src="/app/images/app-logo.png" width="30" height="30" class="d-inline-block align-top" alt="">
10
- <span class="navbar-text pt-0 pb-0">{{nodefony.name|escape}}</span>
7
+ <span style="color:#0167b8" class="fs-4 nodefony"><h3>{{nodefony.name|escape}}</h3></span>
11
8
  </a>
12
- <div class="collapse navbar-collapse" id="header_nodefony">
13
- <ul class="navbar-nav me-auto ">
14
- {% if urlDoc %}
15
- <li class="nav-item">
16
- <form class="form-inline" action="{{urlDoc}}">
17
- <button class="btn btn-sm btn-outline-secondary" type="submit">Documentation</button>
18
- </form>
19
- </li>
20
- {% endif %}
21
- </ul>
22
9
 
23
- <ul class="navbar-nav">
10
+ <ul class="nav col-12 col-lg-auto me-lg-auto mb-2 justify-content-center mb-md-0">
11
+ {% if urlDoc %}
12
+ <li><a href="{{urlDoc}}" class="btn btn-outline-secondary px-2">Documentation</a></li>
13
+ {% endif %}
14
+ </ul>
15
+
16
+ <form action="{{url('lang')}}" name="formLang" id="formLang" class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3">
17
+ <ul class="nav col-12 col-lg-auto me-lg-auto mb-2 justify-content-center mb-md-0">
24
18
  <li class="nav-item">
25
- <form action="{{url('lang')}}" name="formLang" id="formLang" class="d-flex ml-5">
26
- <div class="input-group input-group-sm" style="top:5px;margin-right:5px">
19
+ <div class="input-group input-group-sm">
27
20
  <label class="input-group-text">{{"lang"| trans("messages") }} : </label>
28
21
  <select class="form-select form-select-sm " name="language" id="language">
29
22
  {% for opt in langs %}
@@ -38,56 +31,60 @@
38
31
  {% endfor %}
39
32
  </select>
40
33
  </div>
41
- </form>
42
34
  </li>
43
- {% if user %}
44
- <li class="nav-link fa fa-user pr-3" style="font-size:x-large">
35
+ </ul>
36
+ </form>
37
+
38
+ {% if user %}
39
+ <div class="dropdown text-end">
40
+ <a href="#" class="d-block link-dark text-decoration-none dropdown-toggle" id="dropdownUser1" data-bs-toggle="dropdown" aria-expanded="false">
45
41
  {% if user.image %}
46
- <img width="32px" height= "32px" class="rounded-circle" src="{{user.image}}" alt="image">
42
+ <img src="https://github.com/mdo.png" alt="mdo" width="32" height="32" class="rounded-circle">
43
+ {% else %}
44
+ <i class="text-large fa fa-user"></i>
47
45
  {% endif %}
48
- </li>
49
- <li class="nav-item dropdown dropstart">
50
- <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="true">
51
- {{user.username}}</a>
52
- <!--a href="" class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-expanded="true">
53
- {{user.username}}
54
- </a-->
55
- <div class="dropdown-menu p-0 mt-5 " aria-labelledby="navbarDropdownMenuLink" style="width: 18rem;">
56
-
57
- <div class="card" style="width: 18rem;">
58
- <div class="card-header">
59
- <h5 class="card-title">Profile</h5>
60
- </div>
61
- <div class="card-body text-center" >
62
- {% if user.image %}
63
- <img width="100px" height="100px"src="{{ user.image|escape }}" alt=""></img>
64
- {% else %}
65
- <img width="100px" height="100px" src="/framework-bundle/images/nodefony-logo.png" alt="nodefony-logo"></img>
66
- {% endif %}
67
- <div class="user-info">
68
- <p>{{"username"|trans("login")}} : {{ user.username|escape }}</p>
69
- <p>{{"surname"|trans("login")}} : <i> {{ user.surname|escape }} </i> </p>
70
- <p>{{"name"|trans("login")}} : <i> {{ user.name|escape }} </i> </p>
71
- </div>
72
- </div>
73
- <div class="card-footer text-muted">
74
- <a href ="{{url("logout")}}" class="card-link">{{"logout"|trans("login")}}</a>
75
- <a href ="{{url("nodefony-user-update",{username:user.username})}}" class="card-link">{{"update"|trans("login")}}</a>
76
- </div>
46
+ </a>
47
+ <ul class="dropdown-menu text-small border-0" aria-labelledby="dropdownUser1">
48
+ <div class="card " style="width: 18rem;height:100%">
49
+ <div class="card-header">
50
+ <h5 class="card-title">Profile</h5>
51
+ </div>
52
+ <div class="card-body text-center" >
53
+ {% if user.image %}
54
+ <img width="100px" height="100px"src="{{ user.image|escape }}" alt=""></img>
55
+ {% else %}
56
+ <img width="100px" height="100px" src="/framework-bundle/images/nodefony-logo.png" alt="nodefony-logo"></img>
57
+ {% endif %}
58
+ <div class="user-info">
59
+ <p>{{"username"|trans("login")}} : {{ user.username|escape }}</p>
60
+ <p>{{"surname"|trans("login")}} : <i> {{ user.surname|escape }} </i> </p>
61
+ <p>{{"name"|trans("login")}} : <i> {{ user.name|escape }} </i> </p>
77
62
  </div>
78
63
  </div>
79
- </li>
80
- {% else %}
81
- <li class="nav-link fa fa-user pr-3" style="font-size:x-large"></li>
82
- <li class="nav-link">
83
- <a href="{{url("login",{type:"secure"})}}"
84
- class="btn btn-sm btn-outline-secondary"
85
- role="button"
86
- aria-pressed="false">
87
- {{"login"|trans("login")}}
88
- </a>
89
- {% endif %}
64
+ <div class="card-footer text-muted">
65
+ <a href ="{{url("logout")}}" class="card-link">{{"logout"|trans("login")}}</a>
66
+ <a href ="{{url("nodefony-user-update",{username:user.username})}}" class="card-link">{{"update"|trans("login")}}</a>
67
+ </div>
68
+ </div>
90
69
  </ul>
91
70
  </div>
92
- </div>
93
- </nav>
71
+ {% else %}
72
+
73
+ <div class=" text-end">
74
+ <a href="{{url("login",{type:"secure"})}}"
75
+ class="btn btn-sm btn-outline-secondary"
76
+ role="button"
77
+ aria-pressed="false">
78
+ {{trans("signin")}}
79
+ </a>
80
+ <a href="{{url("nodefony-user-create")}}"
81
+ class="btn btn-sm btn-outline-primary"
82
+ role="button"
83
+ aria-pressed="false">
84
+ {{trans("signup")}}
85
+ </a>
86
+
87
+ </div>
88
+ {% endif %}
89
+ </header>
90
+ </div>
@@ -1,36 +1,28 @@
1
- {% extends '../base.html.twig' %}
1
+ {% extends '../documentation/base.html.twig' %}
2
2
 
3
3
  {% block title %}{{title|escape}}{% endblock %}
4
4
 
5
5
  {% block stylesheets %}
6
6
  <!-- WEBPACK BUNDLE -->
7
7
  <link rel='stylesheet' href='{{CDN("stylesheet")}}/users-bundle/assets/css/swagger.css'/>
8
- <link rel="stylesheet" href="/documentation-bundle/assets/css/documentation.css"/>
8
+ {{ parent() }}
9
9
  {% endblock %}
10
10
 
11
11
  {% block body %}
12
12
 
13
- {% block header %}
14
- {{ render( controller("users:users:header" )) }}
15
- {% endblock %}
16
-
17
13
  <div class="container-fluid">
18
14
  <div class="row flex-xl-nowrap">
19
15
  {% include '../documentation/navbar.html.twig' %}
20
- <main class="col-12 col-md-9 col-xl-8" style="top: 4rem;">
16
+ <main class="col-12 col-md-9 col-xl-10" style="top:2px">
21
17
  <div id="swagger"></div>
22
18
  </main>
23
19
  </div>
24
20
  </div>
25
21
 
26
- {% block footer %}
27
- {{ render( controller("users:users:footer" )) }}
28
22
  {% endblock %}
29
23
 
30
24
  {% block javascripts %}
31
25
  <!-- WEBPACK BUNDLE -->
32
26
  <script src='{{CDN("javascript")}}/users-bundle/assets/js/swagger.js'></script>
33
- <script type="text/javascript" src="/documentation-bundle/assets/js/documentation.js"></script>
34
- {% endblock %}
35
-
27
+ {{ parent() }}
36
28
  {% endblock %}
@@ -39,6 +39,8 @@ class graphqlController extends nodefony.Controller {
39
39
  }
40
40
  }
41
41
 
42
+ // provides all functions for each API endpoint
43
+
42
44
  async user(field) {
43
45
  return await this.usersService.findOne(field.username);
44
46
  }
@@ -56,7 +56,7 @@ class usersController extends nodefony.Controller {
56
56
 
57
57
  /**
58
58
  * @see Route by Annotaion
59
- * @Method ({ "GET"})
59
+ * @Method ({ "GET", "POST"})
60
60
  * @Route ("/lang", name="lang")
61
61
  */
62
62
  langAction() {
@@ -16,44 +16,45 @@
16
16
  ],
17
17
  "repository": {},
18
18
  "dependencies": {
19
- "@babel/core": "^7.15.8",
20
- "@babel/plugin-proposal-class-properties": "^7.14.5",
19
+ "@babel/core": "7.17.5",
20
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
21
21
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
22
- "@babel/preset-env": "^7.15.8",
23
- "@babel/preset-react": "^7.14.5",
24
- "@popperjs/core": "^2.10.2",
25
- "babel-loader": "^8.2.2",
22
+ "@babel/preset-env": "^7.16.11",
23
+ "@babel/preset-react": "^7.16.7",
24
+ "@popperjs/core": "^2.11.2",
25
+ "@withshepherd/faker": "^5.5.5",
26
+ "babel-loader": "^8.2.3",
26
27
  "babel-register": "^6.26.0",
27
28
  "bootstrap": "^5.1.3",
28
29
  "clean-webpack-plugin": "^4.0.0",
29
30
  "css-hot-loader": "^1.4.4",
30
- "css-loader": "^6.4.0",
31
- "expose-loader": "^3.0.0",
32
- "faker": "^5.5.3",
31
+ "css-loader": "6.6.0",
32
+ "expose-loader": "^3.1.0",
33
33
  "font-awesome": "^4.7.0",
34
- "graphiql": "^1.4.2",
35
- "graphql": "^15.6.1",
36
- "html-webpack-plugin": "^5.3.2",
37
- "imports-loader": "^3.0.0",
34
+ "graphiql": "1.6.0",
35
+ "graphql": "16.3.0",
36
+ "graphql-ws": "5.6.2",
37
+ "html-webpack-plugin": "^5.5.0",
38
+ "imports-loader": "^3.1.1",
38
39
  "jquery": "^3.6.0",
39
- "mini-css-extract-plugin": "^2.4.2",
40
- "mongoose-paginate-v2": "^1.4.2",
41
- "node-sass": "^6.0.1",
40
+ "mini-css-extract-plugin": "^2.5.3",
41
+ "mongoose-paginate-v2": "1.6.2",
42
+ "node-sass": "^7.0.1",
42
43
  "react": "^17.0.2",
43
44
  "react-dom": "^17.0.2",
44
- "sass-loader": "^12.1.0",
45
- "style-loader": "^3.3.0",
45
+ "sass-loader": "12.6.0",
46
+ "style-loader": "^3.3.1",
46
47
  "svg-inline-loader": "^0.8.2",
47
- "swagger-ui": "^3.52.3",
48
- "swagger-ui-dist": "^3.52.3",
49
- "terser-webpack-plugin": "^5.2.4",
50
- "webpack": "^5.58.1",
48
+ "swagger-ui": "4.5.2",
49
+ "swagger-ui-dist": "4.5.2",
50
+ "terser-webpack-plugin": "5.3.1",
51
+ "webpack": "5.69.1",
51
52
  "webpack-merge": "^5.8.0"
52
53
  },
53
54
  "devDependencies": {
54
- "@mapbox/node-pre-gyp": "^1.0.5",
55
- "node-gyp": "^8.2.0",
56
- "sequelize-cli": "^6.2.0"
55
+ "@mapbox/node-pre-gyp": "^1.0.8",
56
+ "node-gyp": "^8.4.1",
57
+ "sequelize-cli": "^6.4.1"
57
58
  },
58
59
  "license": "CECILL-B",
59
60
  "readmeFilename": "README.md",
@@ -3,7 +3,7 @@ const package = require(path.resolve("package.json"));
3
3
  const env = process.env.NODE_ENV;
4
4
  const logName = `${package.name}.log`;
5
5
 
6
- let cpu = require('os').cpus().length;
6
+ let cpu = 2 // require('os').cpus().length;
7
7
  let exec_mode = "cluster";
8
8
  let watch = false;
9
9
  let autorestart =true ;
@@ -1,13 +1,8 @@
1
- const MiniCssExtractPlugin = require("mini-css-extract-plugin");
2
1
 
3
2
  module.exports = {
4
3
  mode: 'development',
5
4
  devtool: 'source-map',
6
5
  plugins: [
7
- new MiniCssExtractPlugin({
8
- fallback: "style-loader",
9
- filename: "./css/[name].css",
10
- allChunks: true
11
- })
6
+
12
7
  ]
13
8
  };
@@ -1,5 +1,4 @@
1
1
  const TerserPlugin = require('terser-webpack-plugin');
2
- const MiniCssExtractPlugin = require("mini-css-extract-plugin");
3
2
 
4
3
  module.exports = {
5
4
  mode: 'production',
@@ -19,11 +18,7 @@ module.exports = {
19
18
  ]
20
19
  },
21
20
  plugins: [
22
- new MiniCssExtractPlugin({
23
- fallback: "style-loader",
24
- filename: "./css/[name].min.css",
25
- allChunks: true
26
- })
21
+
27
22
  ]
28
23
 
29
24
 
@@ -1,9 +1,8 @@
1
1
  const webpack = require('webpack');
2
2
  const path = require('path');
3
3
  const MiniCssExtractPlugin = require("mini-css-extract-plugin");
4
+ const htmlPlugin = require('html-webpack-plugin');
4
5
  const { merge } = require('webpack-merge');
5
- const precss = require('precss');
6
- const autoprefixer = require('autoprefixer');
7
6
 
8
7
  let conf = null;
9
8
  if (process.env.NODE_ENV === "development") {
@@ -19,7 +18,8 @@ module.exports = merge(conf, {
19
18
  * See: http://webpack.github.io/docs/configuration.html#entry
20
19
  */
21
20
  entry: {
22
- App: path.resolve(__dirname, "..", "src", "browser", "index.js")
21
+ app: path.resolve(__dirname, "..", "src", "browser", "index.js"),
22
+ socket: path.resolve(__dirname, "..", "src", "browser", "socketio.js")
23
23
  },
24
24
  target: 'web',
25
25
  //watch: true,
@@ -39,7 +39,7 @@ module.exports = merge(conf, {
39
39
  *
40
40
  * See: http://webpack.github.io/docs/configuration.html#resolve-extensions
41
41
  */
42
- extensions: ['.js', '.es6'],
42
+ extensions: ['.js'],
43
43
 
44
44
  // An array of directory names to be resolved to the current directory
45
45
  modules: ["node_modules"]
@@ -52,52 +52,58 @@ module.exports = merge(conf, {
52
52
  module: {
53
53
  rules: [{
54
54
  // BABEL TRANSCODE
55
- test: new RegExp("\\.es6$|\\.js$|\\.es7$"),
55
+ test: new RegExp("\.js$"),
56
56
  exclude: new RegExp("node_modules"),
57
57
  use: [{
58
58
  loader: 'babel-loader',
59
59
  options: {
60
60
  presets: ['@babel/preset-env']
61
61
  }
62
- }]
62
+ }]
63
63
  }, {
64
- test: /\.(sa|sc|c)ss$/,
65
- use: [
64
+ test: /\.(sa|sc|c)ss$/,
65
+ use: [
66
+ //'css-hot-loader',
66
67
  MiniCssExtractPlugin.loader,
67
- {
68
- loader: "css-loader",
69
- options: {
70
- sourceMap: true
71
- }
72
- }, {
73
- loader: 'resolve-url-loader',
74
- options: {}
75
- }, {
76
- loader: 'postcss-loader', // Run post css actions
68
+ {
69
+ loader: "css-loader",
77
70
  options: {
78
- postcssOptions: {
79
- plugins: [autoprefixer({}), precss({})]
80
- }
71
+ sourceMap: true
81
72
  }
82
73
  }, {
83
- loader: "sass-loader",
84
- options: {
85
- sourceMap: true
86
- }
74
+ loader: "sass-loader",
75
+ options: {
76
+ sourceMap: true
77
+ }
87
78
  }
88
79
  ]
89
80
  }, {
90
- test: /.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
91
- use: [{
92
- loader: 'file-loader',
93
- options: {
94
- name: '[name].[ext]',
95
- outputPath: 'fonts/', // where the fonts will go
96
- }
97
- }]
98
- }]
81
+ test: /.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
82
+ type: 'asset/inline'
83
+ },{
84
+ test: /\.html$/,
85
+ loader: 'html-loader'
86
+ }]
99
87
  },
100
88
  plugins: [
89
+ new MiniCssExtractPlugin({
90
+ filename: "./css/[name].css"
91
+ }),
92
+ new htmlPlugin({
93
+ filename: path.resolve("dist", "index.ejs"),
94
+ template: path.resolve("src", "templates", "base.html"),
95
+ title: conf.name,
96
+ //cache: !dev,
97
+ chunks: ['app'],
98
+ templateParameters: conf
99
+ }),
100
+ new htmlPlugin({
101
+ filename: path.resolve("dist", "socketio.ejs"),
102
+ template: path.resolve("src", "templates", "socket.html"),
103
+ title: conf.name,
104
+ chunks: ['socket'],
105
+ templateParameters: conf
106
+ }),
101
107
  new webpack.DefinePlugin({
102
108
  'process.env': {
103
109
  'NODE_ENV': JSON.stringify(process.env.NODE_ENV),
@@ -10,25 +10,25 @@
10
10
  "cli": "./bin/cli"
11
11
  },
12
12
  "engines": {
13
- "node": ">=10"
13
+ "node": ">=12"
14
14
  },
15
15
  "scripts": {
16
- "nodefony": "nodefony",
17
- "pm2": "pm2",
18
- "install": "env-cmd -e webpack_prod webpack --env production --config config/webpack.config.js; env-cmd -e webpack_dev webpack --env development --config config/webpack.config.js",
16
+ "nodefony": "npx nodefony",
17
+ "pm2": "npx pm2",
18
+ "install": "env-cmd -e webpack_prod webpack --env production --config config/webpack.config.js",
19
19
  "start": "node ./bin/cli",
20
- "dev": "env-cmd -e development pm2 start config/pm2.config.js --only {{name}} --env development --no-daemon",
21
- "dev_debug": "env-cmd -e development_debug pm2 start config/pm2.config.js --only {{name}} --env development --no-daemon",
22
- "prod": "env-cmd -e production pm2 start config/pm2.config.js --env production",
23
- "examples": "env-cmd -e development pm2 start config/pm2.config.js --only examples --env development --no-daemon",
24
- "stop": "pm2 stop {{name}}",
25
- "restart": "pm2 restart {{name}}",
26
- "delete": "pm2 delete {{name}}",
27
- "log": "pm2 logs",
28
- "monit": "pm2 monit",
29
- "status": "pm2 status",
30
- "kill": "pm2 kill",
31
- "webpack": "env-cmd -e webpack_prod webpack --env.production --config config/webpack.config.js; env-cmd -e webpack_dev webpack --env.development --verbose --config config/webpack.config.js",
20
+ "dev": "env-cmd -e development npx pm2 start config/pm2.config.js --only {{name}} --env development --no-daemon",
21
+ "dev_debug": "env-cmd -e development_debug npx pm2 start config/pm2.config.js --only {{name}} --env development --no-daemon",
22
+ "prod": "env-cmd -e webpack_prod webpack --env production --config config/webpack.config.js;env-cmd -e production pm2 start config/pm2.config.js --env production",
23
+ "examples": "env-cmd -e development npx pm2 start config/pm2.config.js --only examples --env development --no-daemon",
24
+ "stop": "npx pm2 stop {{name}}",
25
+ "restart": "npx pm2 restart {{name}}",
26
+ "delete": "npx pm2 delete {{name}}",
27
+ "log": "npx pm2 logs",
28
+ "monit": "npx pm2 monit",
29
+ "status": "npx pm2 status",
30
+ "kill": "npx pm2 kill",
31
+ "webpack": "env-cmd -e webpack_prod webpack --env production --stats verbose --config config/webpack.config.js",
32
32
  "ssl": "./bin/generateCertificates.sh",
33
33
  "test": "env-cmd -e test mocha --require @babel/register --recursive ./tests"
34
34
  },
@@ -39,32 +39,37 @@
39
39
  "microservice"
40
40
  ],
41
41
  "dependencies": {
42
+ "ejs": "^3.1.6",
42
43
  "env-cmd": "^10.1.0",
43
44
  "hello_world": "./src/n-api",
44
- "markdown-it": "^12.0.2",
45
+ "markdown-it": "^12.3.0",
45
46
  "nodefony": "^{{version}}",
46
- "pm2": "^4.5.0",
47
+ "nodefony-client": "^6.0.0",
48
+ "pm2": "^5.1.2",
47
49
  "pm2-logrotate": "^2.7.0",
48
- "socket.io": "^2.3.0",
49
- "socket.io-client": "^2.3.1"
50
+ "serve-static": "^1.14.2",
51
+ "socket.io": "^4.4.0",
52
+ "socket.io-client": "^4.4.0"
50
53
  },
51
54
  "devDependencies": {
52
- "@babel/cli": "^7.12.1",
53
- "@babel/core": "^7.12.3",
54
- "@babel/preset-env": "^7.12.1",
55
- "@babel/register": "^7.12.1",
56
- "babel-loader": "^8.1.0",
57
- "chai": "^4.2.0",
58
- "mini-css-extract-plugin": "^1.2.1",
59
- "mocha": "^8.2.0",
60
- "node-gyp": "^7.1.2",
61
- "node-pre-gyp": "^0.15.0",
62
- "open": "^7.3.0",
63
- "sass-loader": "^10.0.4",
64
- "terser-webpack-plugin": "^5.0.3",
65
- "webpack": "^5.3.1",
66
- "webpack-cli": "^4.1.0",
67
- "webpack-merge": "^5.2.0"
55
+ "@babel/cli": "^7.16.7",
56
+ "@babel/core": "^7.16.7",
57
+ "@babel/preset-env": "^7.16.7",
58
+ "@babel/register": "^7.16.7",
59
+ "@mapbox/node-pre-gyp": "^1.0.8",
60
+ "babel-loader": "^8.2.3",
61
+ "chai": "^4.3.4",
62
+ "html-loader": "^3.0.1",
63
+ "html-webpack-plugin": "^5.5.0",
64
+ "mini-css-extract-plugin": "^2.4.5",
65
+ "mocha": "^9.1.3",
66
+ "node-gyp": "^8.4.1",
67
+ "open": "^8.4.0",
68
+ "sass-loader": "^12.4.0",
69
+ "terser-webpack-plugin": "^5.3.0",
70
+ "webpack": "^5.65.0",
71
+ "webpack-cli": "^4.9.1",
72
+ "webpack-merge": "^5.8.0"
68
73
  },
69
74
  "license": "ISC"
70
75
  }
@@ -1,3 +1,3 @@
1
1
  body {
2
- background-color: blue;
2
+ background-color: white;
3
3
  }
@@ -1,5 +1,4 @@
1
- const nodefony = require("nodefony");
2
- const io = require('socket.io-client');
1
+ const nodefony = require("nodefony-client");
3
2
 
4
3
  import "./index.css";
5
4
  /*
@@ -11,7 +10,6 @@ class App extends nodefony.Service {
11
10
  this.initSyslog();
12
11
  this.log("INIT APP CLIENT");
13
12
  this.log(`Nodefony Client version : ${nodefony.version}`);
14
- this.io = io();
15
13
  }
16
14
  }
17
15