nibula 1.6.0 → 1.6.2

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 (99) hide show
  1. package/.eleventy.js +82 -81
  2. package/CHANGELOG.md +395 -377
  3. package/LICENSE +169 -169
  4. package/NOTICE +4 -4
  5. package/README.md +110 -110
  6. package/bin/create.js +540 -505
  7. package/bin/delegate.js +58 -57
  8. package/bin/nibula.js +302 -302
  9. package/docs/Assistant CLI.md +65 -65
  10. package/docs/Backend.md +201 -201
  11. package/docs/Components.md +140 -140
  12. package/docs/Creating pages.md +69 -69
  13. package/docs/Deploy.md +210 -210
  14. package/docs/Head and SEO.md +139 -139
  15. package/docs/Javascript.md +126 -126
  16. package/docs/Styling with SCSS.md +141 -139
  17. package/nginx.conf +113 -113
  18. package/package.json +69 -69
  19. package/src/backend/.htaccess +6 -6
  20. package/src/backend/_core/composer.json +5 -5
  21. package/src/backend/_core/composer.lock +492 -492
  22. package/src/backend/_core/index.js +267 -267
  23. package/src/backend/_core/index.php +160 -160
  24. package/src/backend/_core/init.js +52 -52
  25. package/src/backend/_core/init.php +33 -33
  26. package/src/backend/_core/modules/RateLimiter.js +58 -58
  27. package/src/backend/_core/modules/RateLimiter.php +30 -30
  28. package/src/backend/_core/modules/Response.js +59 -59
  29. package/src/backend/_core/modules/Response.php +48 -48
  30. package/src/backend/api/protected/example-protected.js +23 -23
  31. package/src/backend/api/protected/example-protected.php +16 -16
  32. package/src/backend/api/public/example-public.js +24 -24
  33. package/src/backend/api/public/example-public.php +16 -16
  34. package/src/backend/database/Database.js +46 -46
  35. package/src/backend/database/Database.php +23 -23
  36. package/src/backend/example.config.js +37 -37
  37. package/src/backend/example.config.php +37 -37
  38. package/src/backend/package.json +17 -17
  39. package/src/backend/web.config +43 -43
  40. package/src/frontend/.htaccess +51 -51
  41. package/src/frontend/404.njk +17 -17
  42. package/src/frontend/assets/brand/favicon.svg +54 -54
  43. package/src/frontend/assets/brand/logo.svg +54 -54
  44. package/src/frontend/components/global/footer.njk +25 -25
  45. package/src/frontend/components/global/header.njk +6 -6
  46. package/src/frontend/components/welcome.njk +115 -115
  47. package/src/frontend/index.njk +8 -8
  48. package/src/frontend/js/global.js +10 -10
  49. package/src/frontend/js/modules/exampleModule.js +2 -2
  50. package/src/frontend/js/pages/404.js +8 -8
  51. package/src/frontend/js/pages/homepage.js +8 -8
  52. package/src/frontend/layouts/base.njk +135 -136
  53. package/src/frontend/layouts/page-components.njk +13 -13
  54. package/src/frontend/llms.njk +17 -17
  55. package/src/frontend/robots.njk +7 -7
  56. package/src/frontend/scss/_global.scss +46 -46
  57. package/src/frontend/scss/_root.scss +13 -13
  58. package/src/frontend/scss/modules/_animations.scss +24 -24
  59. package/src/frontend/scss/modules/_footer.scss +28 -28
  60. package/src/frontend/scss/modules/_header.scss +26 -26
  61. package/src/frontend/scss/modules/_mobile.scss +29 -29
  62. package/src/frontend/scss/modules/_typography.scss +18 -18
  63. package/src/frontend/scss/modules/frameworks/_bootstrap.scss +109 -109
  64. package/src/frontend/scss/modules/frameworks/_bulma.scss +108 -108
  65. package/src/frontend/scss/modules/frameworks/_foundation.scss +137 -137
  66. package/src/frontend/scss/modules/frameworks/_uikit.scss +109 -109
  67. package/src/frontend/scss/pages/404.scss +27 -27
  68. package/src/frontend/scss/pages/homepage.scss +22 -22
  69. package/src/frontend/sitemap.njk +17 -17
  70. package/src/frontend/ts/global.ts +11 -11
  71. package/src/frontend/ts/modules/exampleModule.ts +2 -2
  72. package/src/frontend/ts/pages/404.ts +8 -8
  73. package/src/frontend/ts/pages/homepage.ts +8 -8
  74. package/src/frontend/web.config +51 -51
  75. package/tools/assistant.js +122 -122
  76. package/tools/buildJs.js +39 -39
  77. package/tools/cleanOutput.js +23 -23
  78. package/tools/cli/prompt.js +40 -40
  79. package/tools/cli/ui.js +87 -87
  80. package/tools/config/messages.json +80 -80
  81. package/tools/config/settings.json +130 -130
  82. package/tools/lib/colors.js +17 -17
  83. package/tools/lib/files.js +75 -75
  84. package/tools/lib/logger.js +22 -22
  85. package/tools/lib/outputPath.js +141 -141
  86. package/tools/lib/pageActions.js +146 -146
  87. package/tools/lib/pageArtifacts.js +46 -46
  88. package/tools/lib/pageComponents.js +88 -88
  89. package/tools/lib/pagesData.js +87 -87
  90. package/tools/lib/paths.js +63 -63
  91. package/tools/lib/project.js +54 -54
  92. package/tools/lib/text.js +47 -47
  93. package/tools/lib/validation.js +40 -40
  94. package/tools/res/templates/template.js +7 -7
  95. package/tools/res/templates/template.njk +8 -8
  96. package/tools/res/templates/template.scss +22 -22
  97. package/tools/res/templates/template.ts +8 -8
  98. package/tsconfig.json +24 -24
  99. package/src/frontend/scss/pages/prova.scss +0 -23
package/.eleventy.js CHANGED
@@ -1,82 +1,83 @@
1
- const esbuild = require("esbuild");
2
- const glob = require("glob");
3
- const Image = require("@11ty/eleventy-img");
4
- const fs = require("fs");
5
- const path = require("path");
6
-
7
- const OUTPUT_DIR = "out";
8
-
9
- module.exports = function (eleventyConfig) {
10
-
11
- function copyRecursiveSync(src, dest) {
12
- if (!fs.existsSync(src)) return;
13
- if (src.includes('.git')) return;
14
- const stat = fs.statSync(src);
15
- if (stat.isDirectory()) {
16
- fs.mkdirSync(dest, { recursive: true });
17
- for (const child of fs.readdirSync(src)) {
18
- copyRecursiveSync(path.join(src, child), path.join(dest, child));
19
- }
20
- } else {
21
- fs.mkdirSync(path.dirname(dest), { recursive: true });
22
- fs.copyFileSync(src, dest);
23
- }
24
- }
25
-
26
- eleventyConfig.on("eleventy.before", () => {
27
- copyRecursiveSync("src/backend", `${OUTPUT_DIR}/backend`);
28
- });
29
-
30
- eleventyConfig.addPassthroughCopy("src/frontend/.htaccess");
31
- eleventyConfig.addPassthroughCopy("src/frontend/web.config");
32
- eleventyConfig.addPassthroughCopy("src/frontend/assets");
33
- eleventyConfig.addPassthroughCopy("src/frontend/robots.txt");
34
-
35
- eleventyConfig.addPassthroughCopy({
36
- "node_modules/bootstrap/dist/js/bootstrap.bundle.min.js": "js/bootstrap.bundle.min.js",
37
- "node_modules/bootstrap-icons/font/fonts": "css/fonts",
38
-
39
- // Foundation
40
- // "node_modules/foundation-sites/dist/js/foundation.min.js": "js/foundation.min.js",
41
-
42
- // UIkit
43
- // "node_modules/uikit/dist/js/uikit.min.js": "js/uikit.min.js",
44
- // "node_modules/uikit/dist/js/uikit-icons.min.js": "js/uikit-icons.min.js",
45
-
46
- // Bulma — CSS only, no JS passthrough needed
47
- });
48
-
49
- eleventyConfig.addShortcode("image", async function (src, alt) {
50
- let metadata = await Image(src, {
51
- widths: [320, 480, 720, 1280, 1920, 2048, 2560, 3840, 4096, 7680],
52
- formats: ["webp", "jpeg"],
53
- outputDir: `${OUTPUT_DIR}/assets/images/`,
54
- urlPath: "/assets/images/",
55
- });
56
-
57
- return Image.generateHTML(metadata, {
58
- alt,
59
- sizes: "(max-width: 768px) 100vw, 50vw",
60
- loading: "lazy",
61
- decoding: "async",
62
- });
63
- });
64
-
65
- eleventyConfig.addWatchTarget("./src/frontend/scss");
66
- eleventyConfig.addWatchTarget("./src/frontend/routes");
67
- eleventyConfig.addWatchTarget("./src/frontend/data");
68
-
69
- eleventyConfig.setServerOptions({
70
- watch: [`${OUTPUT_DIR}/js/**/*.js`]
71
- });
72
-
73
- return {
74
- dir: {
75
- input: "src/frontend",
76
- output: OUTPUT_DIR,
77
- includes: "components",
78
- layouts: "layouts",
79
- data: "data",
80
- },
81
- };
1
+ const esbuild = require("esbuild");
2
+ const glob = require("glob");
3
+ const Image = require("@11ty/eleventy-img");
4
+ const fs = require("fs");
5
+ const path = require("path");
6
+
7
+ const OUTPUT_DIR = "out";
8
+
9
+ module.exports = function (eleventyConfig) {
10
+
11
+ function copyRecursiveSync(src, dest) {
12
+ if (!fs.existsSync(src)) return;
13
+ if (src.includes('.git')) return;
14
+ const stat = fs.statSync(src);
15
+ if (stat.isDirectory()) {
16
+ fs.mkdirSync(dest, { recursive: true });
17
+ for (const child of fs.readdirSync(src)) {
18
+ copyRecursiveSync(path.join(src, child), path.join(dest, child));
19
+ }
20
+ } else {
21
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
22
+ fs.copyFileSync(src, dest);
23
+ }
24
+ }
25
+
26
+ eleventyConfig.on("eleventy.before", () => {
27
+ copyRecursiveSync("src/backend", `${OUTPUT_DIR}/backend`);
28
+ });
29
+
30
+ eleventyConfig.addPassthroughCopy("src/frontend/.htaccess");
31
+ eleventyConfig.addPassthroughCopy("src/frontend/web.config");
32
+ eleventyConfig.addPassthroughCopy("src/frontend/assets");
33
+ eleventyConfig.addPassthroughCopy("src/frontend/robots.txt");
34
+
35
+ eleventyConfig.addPassthroughCopy({
36
+ // Bootstrap
37
+ "node_modules/bootstrap/dist/js/bootstrap.bundle.min.js": "js/bootstrap.bundle.min.js",
38
+ "node_modules/bootstrap-icons/font/fonts": "css/fonts",
39
+
40
+ // Foundation
41
+ // "node_modules/foundation-sites/dist/js/foundation.min.js": "js/foundation.min.js",
42
+
43
+ // UIkit
44
+ // "node_modules/uikit/dist/js/uikit.min.js": "js/uikit.min.js",
45
+ // "node_modules/uikit/dist/js/uikit-icons.min.js": "js/uikit-icons.min.js",
46
+
47
+ // Bulma — CSS only, no JS passthrough needed
48
+ });
49
+
50
+ eleventyConfig.addShortcode("image", async function (src, alt) {
51
+ let metadata = await Image(src, {
52
+ widths: [320, 480, 720, 1280, 1920, 2048, 2560, 3840, 4096, 7680],
53
+ formats: ["webp", "jpeg"],
54
+ outputDir: `${OUTPUT_DIR}/assets/images/`,
55
+ urlPath: "/assets/images/",
56
+ });
57
+
58
+ return Image.generateHTML(metadata, {
59
+ alt,
60
+ sizes: "(max-width: 768px) 100vw, 50vw",
61
+ loading: "lazy",
62
+ decoding: "async",
63
+ });
64
+ });
65
+
66
+ eleventyConfig.addWatchTarget("./src/frontend/scss");
67
+ eleventyConfig.addWatchTarget("./src/frontend/routes");
68
+ eleventyConfig.addWatchTarget("./src/frontend/data");
69
+
70
+ eleventyConfig.setServerOptions({
71
+ watch: [`${OUTPUT_DIR}/js/**/*.js`]
72
+ });
73
+
74
+ return {
75
+ dir: {
76
+ input: "src/frontend",
77
+ output: OUTPUT_DIR,
78
+ includes: "components",
79
+ layouts: "layouts",
80
+ data: "data",
81
+ },
82
+ };
82
83
  };