create-berna-stencil 2.6.1 → 2.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 (213) hide show
  1. package/README.md +6 -1
  2. package/_tools/buildJs.js +28 -0
  3. package/_tools/cleanOutput.js +20 -0
  4. package/bin/create.js +1 -1
  5. package/out/.htaccess +16 -0
  6. package/out/404.html +163 -0
  7. package/out/assets/brand/favicon.svg +37 -0
  8. package/out/assets/brand/logo.svg +37 -0
  9. package/out/backend/.htaccess +7 -0
  10. package/out/backend/_core/composer.json +5 -0
  11. package/out/backend/_core/composer.lock +492 -0
  12. package/out/backend/_core/index.php +148 -0
  13. package/out/backend/_core/init.php +34 -0
  14. package/out/backend/_core/modules/RateLimiter.php +31 -0
  15. package/out/backend/_core/modules/Response.php +49 -0
  16. package/{src → out}/backend/_core/vendor/composer/installed.php +2 -2
  17. package/out/backend/api/protected/example-protected.php +17 -0
  18. package/out/backend/api/public/example-public.php +17 -0
  19. package/out/backend/database/Database.php +24 -0
  20. package/out/backend/database/migrations/create_example_db.sql +1 -0
  21. package/out/backend/web.config +17 -0
  22. package/out/css/fonts/bootstrap-icons.woff +0 -0
  23. package/out/css/fonts/bootstrap-icons.woff2 +0 -0
  24. package/out/css/github-markdown-dark.css +1124 -0
  25. package/out/css/github-markdown-light.css +1124 -0
  26. package/out/css/pages/404.css +21517 -0
  27. package/out/css/pages/homepage.css +21508 -0
  28. package/out/data/site.json +44 -0
  29. package/out/index.html +1147 -0
  30. package/out/js/bootstrap.bundle.min.js +7 -0
  31. package/out/js/pages/js/pages/404.js +6 -0
  32. package/out/js/pages/js/pages/homepage.js +6 -0
  33. package/out/js/pages/ts/pages/404.js +6 -0
  34. package/out/js/pages/ts/pages/homepage.js +6 -0
  35. package/out/llms.txt +14 -0
  36. package/out/robots.txt +4 -0
  37. package/out/sitemap.xml +15 -0
  38. package/out/web.config +27 -0
  39. package/package.json +32 -50
  40. package/src/frontend/data/site.json +44 -44
  41. package/.gitignore +0 -5
  42. package/src/backend/_core/vendor/graham-campbell/result-type/.gitattributes +0 -9
  43. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +0 -132
  44. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +0 -31
  45. package/src/backend/_core/vendor/graham-campbell/result-type/.github/FUNDING.yml +0 -2
  46. package/src/backend/_core/vendor/graham-campbell/result-type/.github/SECURITY.md +0 -14
  47. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +0 -11
  48. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +0 -40
  49. package/src/backend/_core/vendor/phpoption/phpoption/.gitattributes +0 -13
  50. package/src/backend/_core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +0 -132
  51. package/src/backend/_core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +0 -30
  52. package/src/backend/_core/vendor/phpoption/phpoption/.github/FUNDING.yml +0 -2
  53. package/src/backend/_core/vendor/phpoption/phpoption/.github/SECURITY.md +0 -14
  54. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/static.yml +0 -40
  55. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/tests.yml +0 -40
  56. package/src/backend/_core/vendor/vlucas/phpdotenv/.gitattributes +0 -15
  57. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +0 -132
  58. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +0 -30
  59. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +0 -2
  60. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/SECURITY.md +0 -14
  61. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +0 -40
  62. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +0 -70
  63. package/src/backend/config.php +0 -19
  64. /package/{src → out}/backend/_core/vendor/autoload.php +0 -0
  65. /package/{src → out}/backend/_core/vendor/composer/ClassLoader.php +0 -0
  66. /package/{src → out}/backend/_core/vendor/composer/InstalledVersions.php +0 -0
  67. /package/{src → out}/backend/_core/vendor/composer/LICENSE +0 -0
  68. /package/{src → out}/backend/_core/vendor/composer/autoload_classmap.php +0 -0
  69. /package/{src → out}/backend/_core/vendor/composer/autoload_files.php +0 -0
  70. /package/{src → out}/backend/_core/vendor/composer/autoload_namespaces.php +0 -0
  71. /package/{src → out}/backend/_core/vendor/composer/autoload_psr4.php +0 -0
  72. /package/{src → out}/backend/_core/vendor/composer/autoload_real.php +0 -0
  73. /package/{src → out}/backend/_core/vendor/composer/autoload_static.php +0 -0
  74. /package/{src → out}/backend/_core/vendor/composer/installed.json +0 -0
  75. /package/{src → out}/backend/_core/vendor/composer/platform_check.php +0 -0
  76. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/CHANGELOG.md +0 -0
  77. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/LICENSE +0 -0
  78. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/README.md +0 -0
  79. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/composer.json +0 -0
  80. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/phpunit.xml.dist +0 -0
  81. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/src/Error.php +0 -0
  82. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/src/Result.php +0 -0
  83. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/src/Success.php +0 -0
  84. /package/{src → out}/backend/_core/vendor/graham-campbell/result-type/tests/ResultTest.php +0 -0
  85. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/LICENSE +0 -0
  86. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/Makefile +0 -0
  87. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/README.md +0 -0
  88. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/composer.json +0 -0
  89. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/phpstan-baseline.neon +0 -0
  90. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/phpstan.neon.dist +0 -0
  91. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/phpunit.xml.dist +0 -0
  92. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +0 -0
  93. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/src/PhpOption/None.php +0 -0
  94. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Option.php +0 -0
  95. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Some.php +0 -0
  96. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +0 -0
  97. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +0 -0
  98. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +0 -0
  99. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +0 -0
  100. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +0 -0
  101. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/tests/bootstrap.php +0 -0
  102. /package/{src → out}/backend/_core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +0 -0
  103. /package/{src → out}/backend/_core/vendor/symfony/polyfill-ctype/Ctype.php +0 -0
  104. /package/{src → out}/backend/_core/vendor/symfony/polyfill-ctype/LICENSE +0 -0
  105. /package/{src → out}/backend/_core/vendor/symfony/polyfill-ctype/README.md +0 -0
  106. /package/{src → out}/backend/_core/vendor/symfony/polyfill-ctype/bootstrap.php +0 -0
  107. /package/{src → out}/backend/_core/vendor/symfony/polyfill-ctype/bootstrap80.php +0 -0
  108. /package/{src → out}/backend/_core/vendor/symfony/polyfill-ctype/composer.json +0 -0
  109. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/LICENSE +0 -0
  110. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/Mbstring.php +0 -0
  111. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/README.md +0 -0
  112. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +0 -0
  113. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +0 -0
  114. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +0 -0
  115. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +0 -0
  116. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap.php +0 -0
  117. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap80.php +0 -0
  118. /package/{src → out}/backend/_core/vendor/symfony/polyfill-mbstring/composer.json +0 -0
  119. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/LICENSE +0 -0
  120. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/Php80.php +0 -0
  121. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/PhpToken.php +0 -0
  122. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/README.md +0 -0
  123. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +0 -0
  124. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +0 -0
  125. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +0 -0
  126. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +0 -0
  127. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +0 -0
  128. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/bootstrap.php +0 -0
  129. /package/{src → out}/backend/_core/vendor/symfony/polyfill-php80/composer.json +0 -0
  130. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/.editorconfig +0 -0
  131. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/LICENSE +0 -0
  132. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/Makefile +0 -0
  133. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/README.md +0 -0
  134. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/UPGRADING.md +0 -0
  135. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/composer.json +0 -0
  136. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +0 -0
  137. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/phpstan.neon.dist +0 -0
  138. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/phpunit.xml.dist +0 -0
  139. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Dotenv.php +0 -0
  140. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +0 -0
  141. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +0 -0
  142. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +0 -0
  143. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +0 -0
  144. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +0 -0
  145. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +0 -0
  146. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +0 -0
  147. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +0 -0
  148. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +0 -0
  149. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +0 -0
  150. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +0 -0
  151. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +0 -0
  152. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +0 -0
  153. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +0 -0
  154. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Value.php +0 -0
  155. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +0 -0
  156. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +0 -0
  157. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +0 -0
  158. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +0 -0
  159. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +0 -0
  160. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +0 -0
  161. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +0 -0
  162. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +0 -0
  163. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +0 -0
  164. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +0 -0
  165. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +0 -0
  166. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +0 -0
  167. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +0 -0
  168. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +0 -0
  169. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +0 -0
  170. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +0 -0
  171. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +0 -0
  172. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +0 -0
  173. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +0 -0
  174. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +0 -0
  175. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +0 -0
  176. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +0 -0
  177. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Util/Regex.php +0 -0
  178. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Util/Str.php +0 -0
  179. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/src/Validator.php +0 -0
  180. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +0 -0
  181. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +0 -0
  182. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +0 -0
  183. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +0 -0
  184. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +0 -0
  185. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +0 -0
  186. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +0 -0
  187. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +0 -0
  188. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +0 -0
  189. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +0 -0
  190. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +0 -0
  191. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +0 -0
  192. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +0 -0
  193. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +0 -0
  194. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +0 -0
  195. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +0 -0
  196. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +0 -0
  197. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +0 -0
  198. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +0 -0
  199. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +0 -0
  200. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +0 -0
  201. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +0 -0
  202. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +0 -0
  203. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +0 -0
  204. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +0 -0
  205. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +0 -0
  206. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +0 -0
  207. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +0 -0
  208. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +0 -0
  209. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +0 -0
  210. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +0 -0
  211. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +0 -0
  212. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +0 -0
  213. /package/{src → out}/backend/_core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +0 -0
package/README.md CHANGED
@@ -16,7 +16,7 @@ Because it keeps you close to the fundamentals instead of hiding them, you spend
16
16
  - 📁 **Scalable structure** — a clean, opinionated project layout that grows with your needs
17
17
  - 🌍 **Open source** — free to use, free to modify, free to share
18
18
 
19
- ![Version](https://img.shields.io/badge/version-2.6.1-blue)
19
+ ![Version](https://img.shields.io/badge/version-2.6.2-blue)
20
20
  ![License](https://img.shields.io/badge/license-Apache--2.0-blue)
21
21
  ![Eleventy](https://img.shields.io/badge/11ty-v3.1.2-black)
22
22
 
@@ -37,6 +37,11 @@ Because it keeps you close to the fundamentals instead of hiding them, you spend
37
37
  cd your-project
38
38
  ```
39
39
 
40
+ * Install all the node_modules
41
+ ```bash
42
+ npm install
43
+ ```
44
+
40
45
  * Run the command to launch the live server and build the site, then visit localhost:8080:
41
46
  ```bash
42
47
  npm run serve
@@ -0,0 +1,28 @@
1
+ const esbuild = require("esbuild");
2
+ const glob = require("glob");
3
+ const path = require("path");
4
+ const pkg = require("../package.json");
5
+
6
+ const isWatch = process.argv.includes("--watch");
7
+ const outputDir = pkg.outputDir || "out";
8
+
9
+ const jsFiles = glob.sync("src/frontend/js/pages/*.js");
10
+ const tsFiles = glob.sync("src/frontend/ts/pages/*.ts");
11
+ const entryPoints = [...jsFiles, ...tsFiles];
12
+
13
+ if (entryPoints.length === 0) {
14
+ process.exit(0);
15
+ }
16
+
17
+ const options = {
18
+ entryPoints,
19
+ bundle: true,
20
+ outdir: path.join(outputDir, "js/pages"),
21
+ minify: !isWatch,
22
+ };
23
+
24
+ if (isWatch) {
25
+ esbuild.context(options).then(ctx => ctx.watch()).catch(() => process.exit(1));
26
+ } else {
27
+ esbuild.build(options).catch(() => process.exit(1));
28
+ }
@@ -0,0 +1,20 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+
4
+ const PACKAGE_JSON = path.resolve(__dirname, '../package.json');
5
+
6
+ const pkg = JSON.parse(fs.readFileSync(PACKAGE_JSON, 'utf-8'));
7
+
8
+ if (!pkg.outputDir) {
9
+ console.log('(!) outputDir not found in package.json');
10
+ process.exit(1);
11
+ }
12
+
13
+ const outputDir = path.resolve(__dirname, '..', pkg.outputDir);
14
+
15
+ if (fs.existsSync(outputDir)) {
16
+ fs.rmSync(outputDir, { recursive: true, force: true });
17
+ console.log(`(✓) cleaned → ${outputDir}`);
18
+ } else {
19
+ console.log(`(i) nothing to clean → ${outputDir}`);
20
+ }
package/bin/create.js CHANGED
@@ -134,7 +134,7 @@ src/backend/config.php
134
134
 
135
135
  const PROJECT_PACKAGE = {
136
136
  name: path.basename(targetDir),
137
- version: '2.6.1',
137
+ version: '2.6.0',
138
138
  private: true,
139
139
  outputDir: 'out',
140
140
  "scripts": {
package/out/.htaccess ADDED
@@ -0,0 +1,16 @@
1
+ Options -Indexes
2
+ ErrorDocument 404 /404.html
3
+ ErrorDocument 403 /404.html
4
+
5
+ <IfModule mod_rewrite.c>
6
+ RewriteEngine On
7
+ RewriteBase /
8
+
9
+ RewriteRule ^(web\.config|llms\.txt|robots\.txt|sitemap\.xml|\..*)$ /404.html [L,NC]
10
+
11
+ RewriteRule ^api/(.*)$ backend/_core/index.php [QSA,L]
12
+
13
+ RewriteCond %{REQUEST_FILENAME} -f [OR]
14
+ RewriteCond %{REQUEST_FILENAME} -d
15
+ RewriteRule ^ - [L]
16
+ </IfModule>
package/out/404.html ADDED
@@ -0,0 +1,163 @@
1
+ <!-- This is the base of every page that you will create -->
2
+
3
+ <!DOCTYPE html>
4
+ <html lang="en" data-bs-theme="dark">
5
+
6
+ <head>
7
+ <meta charset="UTF-8">
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
+
10
+
11
+ <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+ <link rel="canonical" href="https://yoursite.com/404.html"/>
21
+ <title>404 - Not found</title>
22
+ <meta name="description" content="Site description">
23
+ <meta name="keywords" content="keyword1, keyword2, keyword3">
24
+ <meta name="author" content="Name and surname">
25
+ <meta name="theme-color" content="">
26
+
27
+
28
+ <meta property="og:title" content="404 - Not found">
29
+ <meta property="og:description" content="">
30
+ <meta property="og:type" content="website">
31
+ <meta property="og:url" content="https://yoursite.com/404.html">
32
+ <meta property="og:image" content="https://yoursite.com/assets/brand/logo.svg">
33
+ <meta property="og:site-name" content="NaN">
34
+
35
+
36
+ <meta name="twitter:card" content="summary_large_image">
37
+ <meta name="twitter:title" content="404 - Not found">
38
+ <meta name="twitter:description" content="">
39
+ <meta name="twitter:image" content="https://yoursite.com/assets/brand/logo.svg">
40
+
41
+
42
+
43
+ <script type="application/ld+json">
44
+ {
45
+ "@context": "https://schema.org",
46
+ "@type": "WebPage",
47
+ "name": "404 - Not found",
48
+ "description": "Site description",
49
+ "url": "https://yoursite.com/404.html",
50
+ "author": {
51
+ "@type": "Person",
52
+ "name": "Name and surname"
53
+ },
54
+ "publisher": {
55
+ "@type": "Organization",
56
+ "name": "Site name",
57
+ "logo": {
58
+ "@type": "ImageObject",
59
+ "url": "https://yoursite.com/assets/brand/logo.svg"
60
+ }
61
+ }
62
+ }
63
+ </script>
64
+
65
+
66
+
67
+ <link rel="icon" type="image/svg+xml" href="/assets/brand/favicon.svg">
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <link rel="stylesheet" href="/css/github-markdown-dark.css">
75
+
76
+
77
+
78
+ <link rel="stylesheet" href="/css/pages/404.css"/>
79
+
80
+
81
+
82
+
83
+
84
+
85
+ </head>
86
+
87
+ <body>
88
+
89
+ <header>
90
+ <nav>
91
+ <a class="logo" href="/">
92
+ <img src="/assets/brand/logo.svg" alt="Site title" height="40">
93
+ </a>
94
+ <div class="nav-links">
95
+ <a class="btn" href="/">Homepage</a>
96
+ <a class="btn" href="/example-page">Example page</a>
97
+ </div>
98
+ </nav>
99
+ </header>
100
+
101
+ <main>
102
+
103
+ <!-- !IMPORTANT -->
104
+ <!-- This is the only page that you need to modify statically -->
105
+
106
+ <div class="fade-in not-found">
107
+ <h1>Oops! Page not found</h1>
108
+ <a href="/">Return to homepage</a>
109
+ </div>
110
+
111
+
112
+
113
+
114
+ </main>
115
+
116
+ <footer>
117
+ <div>
118
+ <h6>Site title</h6>
119
+ <p>Site description</p>
120
+ </div>
121
+
122
+ <div>
123
+ <h6>Sitemap</h6>
124
+ <ul>
125
+ <li><a href="/">Homepage</a></li>
126
+ </ul>
127
+ </div>
128
+ <div>
129
+ &copy; 2026 Copyright text
130
+ </div>
131
+ <div>
132
+ <h6>Legal</h6>
133
+ <small>
134
+ <ul>
135
+ <li><a href="">Privacy Policy</a></li>
136
+ <li><a href="">Cookie Policy</a></li>
137
+ <li><a href="">Terms and conditions</a></li>
138
+ </ul>
139
+ </small>
140
+ </div>
141
+ </div>
142
+ </footer>
143
+
144
+
145
+
146
+
147
+ <script src="/js/bootstrap.bundle.min.js" defer></script>
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+ <script src="/js/pages/404.js"></script>
160
+
161
+ </body>
162
+
163
+ </html>
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+
8
+ <g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
9
+ fill="#000000" stroke="none">
10
+ <path d="M4115 4094 c-89 -20 -232 -88 -312 -148 -181 -137 -273 -342 -273
11
+ -604 0 -219 128 -459 353 -664 263 -240 347 -334 403 -451 109 -228 39 -489
12
+ -159 -585 -79 -38 -146 -52 -256 -52 -97 0 -138 10 -192 49 -84 59 -111 136
13
+ -111 311 1 105 6 145 32 250 33 131 47 249 36 295 -16 63 -169 74 -276 20
14
+ -134 -68 -289 -290 -347 -495 -27 -99 -25 -318 6 -425 25 -89 86 -210 133
15
+ -264 94 -107 240 -195 380 -231 421 -105 942 41 1226 345 148 158 218 306 242
16
+ 512 25 217 -30 446 -151 624 -54 80 -191 222 -303 314 -47 39 -85 73 -86 78 0
17
+ 4 8 7 18 7 9 0 54 13 99 29 174 60 304 196 349 366 31 113 9 324 -44 435 -58
18
+ 120 -206 234 -360 276 -84 23 -318 28 -407 8z m348 -407 c82 -41 102 -74 101
19
+ -167 -1 -126 -55 -253 -163 -384 -30 -36 -58 -66 -62 -66 -10 0 -150 149 -200
20
+ 215 -51 67 -102 161 -131 245 l-19 55 51 47 c71 66 143 89 270 85 81 -2 104
21
+ -7 153 -30z"/>
22
+ <path d="M1272 4089 c-123 -17 -291 -64 -406 -115 -240 -105 -461 -289 -527
23
+ -439 -24 -53 -18 -82 17 -91 52 -13 121 8 279 82 280 134 441 180 664 191 275
24
+ 13 500 -56 597 -184 63 -82 78 -142 78 -293 0 -173 -27 -273 -98 -357 -25 -30
25
+ -27 -30 -78 -21 -73 14 -281 4 -347 -17 -136 -42 -183 -165 -100 -259 17 -20
26
+ 54 -45 87 -58 52 -21 74 -23 236 -24 l179 0 29 -35 c16 -19 47 -70 68 -114 50
27
+ -101 71 -217 71 -390 1 -197 -28 -282 -133 -392 -72 -74 -205 -146 -313 -168
28
+ -113 -24 -286 -19 -434 11 -69 14 -130 29 -135 34 -10 10 17 511 35 655 6 44
29
+ 35 192 65 329 116 528 158 835 136 981 -13 79 -24 95 -66 95 -73 0 -183 -92
30
+ -268 -224 -194 -302 -402 -1027 -423 -1473 -3 -65 -8 -136 -11 -159 l-5 -40
31
+ -102 23 c-127 29 -207 30 -230 5 -23 -25 -21 -87 4 -139 39 -80 189 -197 352
32
+ -273 158 -74 446 -163 629 -194 386 -67 797 -21 1081 120 163 81 273 175 363
33
+ 311 103 155 135 295 116 518 -13 158 -40 248 -104 355 -52 87 -182 216 -290
34
+ 286 l-78 51 63 41 c292 190 399 490 296 829 -84 276 -354 466 -751 528 -124
35
+ 20 -444 28 -546 14z"/>
36
+ </g>
37
+ </svg>
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+
8
+ <g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
9
+ fill="#000000" stroke="none">
10
+ <path d="M4115 4094 c-89 -20 -232 -88 -312 -148 -181 -137 -273 -342 -273
11
+ -604 0 -219 128 -459 353 -664 263 -240 347 -334 403 -451 109 -228 39 -489
12
+ -159 -585 -79 -38 -146 -52 -256 -52 -97 0 -138 10 -192 49 -84 59 -111 136
13
+ -111 311 1 105 6 145 32 250 33 131 47 249 36 295 -16 63 -169 74 -276 20
14
+ -134 -68 -289 -290 -347 -495 -27 -99 -25 -318 6 -425 25 -89 86 -210 133
15
+ -264 94 -107 240 -195 380 -231 421 -105 942 41 1226 345 148 158 218 306 242
16
+ 512 25 217 -30 446 -151 624 -54 80 -191 222 -303 314 -47 39 -85 73 -86 78 0
17
+ 4 8 7 18 7 9 0 54 13 99 29 174 60 304 196 349 366 31 113 9 324 -44 435 -58
18
+ 120 -206 234 -360 276 -84 23 -318 28 -407 8z m348 -407 c82 -41 102 -74 101
19
+ -167 -1 -126 -55 -253 -163 -384 -30 -36 -58 -66 -62 -66 -10 0 -150 149 -200
20
+ 215 -51 67 -102 161 -131 245 l-19 55 51 47 c71 66 143 89 270 85 81 -2 104
21
+ -7 153 -30z"/>
22
+ <path d="M1272 4089 c-123 -17 -291 -64 -406 -115 -240 -105 -461 -289 -527
23
+ -439 -24 -53 -18 -82 17 -91 52 -13 121 8 279 82 280 134 441 180 664 191 275
24
+ 13 500 -56 597 -184 63 -82 78 -142 78 -293 0 -173 -27 -273 -98 -357 -25 -30
25
+ -27 -30 -78 -21 -73 14 -281 4 -347 -17 -136 -42 -183 -165 -100 -259 17 -20
26
+ 54 -45 87 -58 52 -21 74 -23 236 -24 l179 0 29 -35 c16 -19 47 -70 68 -114 50
27
+ -101 71 -217 71 -390 1 -197 -28 -282 -133 -392 -72 -74 -205 -146 -313 -168
28
+ -113 -24 -286 -19 -434 11 -69 14 -130 29 -135 34 -10 10 17 511 35 655 6 44
29
+ 35 192 65 329 116 528 158 835 136 981 -13 79 -24 95 -66 95 -73 0 -183 -92
30
+ -268 -224 -194 -302 -402 -1027 -423 -1473 -3 -65 -8 -136 -11 -159 l-5 -40
31
+ -102 23 c-127 29 -207 30 -230 5 -23 -25 -21 -87 4 -139 39 -80 189 -197 352
32
+ -273 158 -74 446 -163 629 -194 386 -67 797 -21 1081 120 163 81 273 175 363
33
+ 311 103 155 135 295 116 518 -13 158 -40 248 -104 355 -52 87 -182 216 -290
34
+ 286 l-78 51 63 41 c292 190 399 490 296 829 -84 276 -354 466 -751 528 -124
35
+ 20 -444 28 -546 14z"/>
36
+ </g>
37
+ </svg>
@@ -0,0 +1,7 @@
1
+ <IfModule mod_rewrite.c>
2
+ RewriteEngine On
3
+ RewriteBase /api/
4
+
5
+ RewriteRule ^_core/index\.php$ - [L]
6
+ RewriteRule ^(.*)$ _core/index.php [QSA,L]
7
+ </IfModule>
@@ -0,0 +1,5 @@
1
+ {
2
+ "require": {
3
+ "vlucas/phpdotenv": "^5.6"
4
+ }
5
+ }