create-berna-stencil 2.0.15 → 2.2.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 (193) hide show
  1. package/.eleventy.js +5 -27
  2. package/README.md +1 -1
  3. package/_tools/buildJs.js +28 -0
  4. package/_tools/cleanOutput.js +9 -13
  5. package/_tools/modules/updateOutputPath.js +36 -14
  6. package/_tools/modules/updatePage.js +31 -11
  7. package/_tools/res/templates/template.js +3 -11
  8. package/_tools/res/templates/template.ts +13 -0
  9. package/bin/create.js +161 -111
  10. package/docs/Assistant CLI.md +2 -0
  11. package/docs/Creating pages.md +2 -0
  12. package/docs/Javascript.md +30 -37
  13. package/package.json +64 -63
  14. package/src/backend/_core/index.php +10 -1
  15. package/src/backend/_core/init.php +4 -3
  16. package/src/backend/_core/modules/RateLimiter.php +31 -0
  17. package/src/backend/_core/vendor/composer/autoload_static.php +10 -10
  18. package/src/backend/_core/vendor/composer/installed.json +6 -6
  19. package/src/backend/_core/vendor/composer/installed.php +2 -2
  20. package/src/backend/_core/vendor/graham-campbell/result-type/.gitattributes +9 -0
  21. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
  22. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
  23. package/src/backend/_core/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
  24. package/src/backend/_core/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
  25. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +11 -0
  26. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
  27. package/src/backend/_core/vendor/graham-campbell/result-type/CHANGELOG.md +53 -0
  28. package/src/backend/_core/vendor/graham-campbell/result-type/LICENSE +21 -21
  29. package/src/backend/_core/vendor/graham-campbell/result-type/README.md +42 -0
  30. package/src/backend/_core/vendor/graham-campbell/result-type/composer.json +33 -33
  31. package/src/backend/_core/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
  32. package/src/backend/_core/vendor/graham-campbell/result-type/src/Error.php +121 -121
  33. package/src/backend/_core/vendor/graham-campbell/result-type/src/Result.php +69 -69
  34. package/src/backend/_core/vendor/graham-campbell/result-type/src/Success.php +120 -120
  35. package/src/backend/_core/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
  36. package/src/backend/_core/vendor/phpoption/phpoption/.gitattributes +13 -0
  37. package/src/backend/_core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
  38. package/src/backend/_core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
  39. package/src/backend/_core/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
  40. package/src/backend/_core/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
  41. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/static.yml +40 -0
  42. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
  43. package/src/backend/_core/vendor/phpoption/phpoption/LICENSE +200 -200
  44. package/src/backend/_core/vendor/phpoption/phpoption/Makefile +17 -0
  45. package/src/backend/_core/vendor/phpoption/phpoption/README.md +201 -0
  46. package/src/backend/_core/vendor/phpoption/phpoption/composer.json +50 -50
  47. package/src/backend/_core/vendor/phpoption/phpoption/phpstan-baseline.neon +44 -0
  48. package/src/backend/_core/vendor/phpoption/phpoption/phpstan.neon.dist +7 -0
  49. package/src/backend/_core/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
  50. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -175
  51. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -136
  52. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -434
  53. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -169
  54. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +72 -0
  55. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +357 -0
  56. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
  57. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +166 -0
  58. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
  59. package/src/backend/_core/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
  60. package/src/backend/_core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
  61. package/src/backend/_core/vendor/symfony/polyfill-ctype/Ctype.php +232 -232
  62. package/src/backend/_core/vendor/symfony/polyfill-ctype/LICENSE +19 -19
  63. package/src/backend/_core/vendor/symfony/polyfill-ctype/README.md +12 -12
  64. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap.php +50 -50
  65. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -46
  66. package/src/backend/_core/vendor/symfony/polyfill-ctype/composer.json +38 -38
  67. package/src/backend/_core/vendor/symfony/polyfill-mbstring/LICENSE +19 -19
  68. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -1077
  69. package/src/backend/_core/vendor/symfony/polyfill-mbstring/README.md +13 -13
  70. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -119
  71. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -1397
  72. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -5
  73. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -1489
  74. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -171
  75. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -167
  76. package/src/backend/_core/vendor/symfony/polyfill-mbstring/composer.json +39 -39
  77. package/src/backend/_core/vendor/symfony/polyfill-php80/LICENSE +19 -19
  78. package/src/backend/_core/vendor/symfony/polyfill-php80/Php80.php +115 -115
  79. package/src/backend/_core/vendor/symfony/polyfill-php80/PhpToken.php +106 -106
  80. package/src/backend/_core/vendor/symfony/polyfill-php80/README.md +25 -25
  81. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -31
  82. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -16
  83. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -20
  84. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -16
  85. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -16
  86. package/src/backend/_core/vendor/symfony/polyfill-php80/bootstrap.php +42 -42
  87. package/src/backend/_core/vendor/symfony/polyfill-php80/composer.json +37 -37
  88. package/src/backend/_core/vendor/vlucas/phpdotenv/.editorconfig +15 -0
  89. package/src/backend/_core/vendor/vlucas/phpdotenv/.gitattributes +15 -0
  90. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
  91. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
  92. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
  93. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
  94. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +40 -0
  95. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
  96. package/src/backend/_core/vendor/vlucas/phpdotenv/LICENSE +30 -30
  97. package/src/backend/_core/vendor/vlucas/phpdotenv/Makefile +17 -0
  98. package/src/backend/_core/vendor/vlucas/phpdotenv/README.md +370 -0
  99. package/src/backend/_core/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
  100. package/src/backend/_core/vendor/vlucas/phpdotenv/composer.json +60 -60
  101. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +157 -0
  102. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
  103. package/src/backend/_core/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
  104. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -267
  105. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -12
  106. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -12
  107. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -12
  108. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -12
  109. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -12
  110. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -48
  111. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -20
  112. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -65
  113. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -59
  114. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -299
  115. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -58
  116. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -127
  117. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -53
  118. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -19
  119. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -88
  120. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -15
  121. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -89
  122. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -80
  123. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -88
  124. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -85
  125. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -110
  126. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -48
  127. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -64
  128. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -91
  129. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -17
  130. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -104
  131. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -88
  132. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -27
  133. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -107
  134. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -272
  135. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -51
  136. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -44
  137. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -81
  138. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -72
  139. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -141
  140. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -17
  141. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -37
  142. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -112
  143. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -108
  144. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Validator.php +207 -207
  145. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
  146. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
  147. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
  148. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
  149. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
  150. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
  151. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
  152. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
  153. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
  154. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
  155. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
  156. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
  157. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
  158. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
  159. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
  160. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
  161. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
  162. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
  163. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
  164. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
  165. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
  166. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
  167. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
  168. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
  169. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
  170. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
  171. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
  172. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
  173. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
  174. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
  175. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
  176. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
  177. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
  178. package/src/backend/_core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +15 -0
  179. package/src/backend/api/protected/example-protected.php +1 -1
  180. package/src/backend/api/public/example-public.php +1 -1
  181. package/src/backend/config.php +19 -0
  182. package/src/backend/web.config +2 -5
  183. package/src/frontend/.htaccess +4 -1
  184. package/src/frontend/js/modules/exampleModule.js +7 -0
  185. package/src/frontend/js/pages/404.js +3 -11
  186. package/src/frontend/js/pages/homepage.js +3 -11
  187. package/src/frontend/ts/modules/exampleModule.ts +3 -0
  188. package/src/frontend/ts/pages/404.ts +13 -0
  189. package/src/frontend/ts/pages/homepage.ts +13 -0
  190. package/src/frontend/web.config +21 -30
  191. package/src/frontend/js/modules/forms/normalizePhoneNumber.js +0 -42
  192. package/src/frontend/js/modules/forms/textAreaAutoExpand.js +0 -38
  193. package/src/frontend/js/modules/notification.js +0 -39
@@ -1,115 +1,115 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Polyfill\Php80;
13
-
14
- /**
15
- * @author Ion Bazan <ion.bazan@gmail.com>
16
- * @author Nico Oelgart <nicoswd@gmail.com>
17
- * @author Nicolas Grekas <p@tchwork.com>
18
- *
19
- * @internal
20
- */
21
- final class Php80
22
- {
23
- public static function fdiv(float $dividend, float $divisor): float
24
- {
25
- return @($dividend / $divisor);
26
- }
27
-
28
- public static function get_debug_type($value): string
29
- {
30
- switch (true) {
31
- case null === $value: return 'null';
32
- case \is_bool($value): return 'bool';
33
- case \is_string($value): return 'string';
34
- case \is_array($value): return 'array';
35
- case \is_int($value): return 'int';
36
- case \is_float($value): return 'float';
37
- case \is_object($value): break;
38
- case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
39
- default:
40
- if (null === $type = @get_resource_type($value)) {
41
- return 'unknown';
42
- }
43
-
44
- if ('Unknown' === $type) {
45
- $type = 'closed';
46
- }
47
-
48
- return "resource ($type)";
49
- }
50
-
51
- $class = \get_class($value);
52
-
53
- if (false === strpos($class, '@')) {
54
- return $class;
55
- }
56
-
57
- return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
58
- }
59
-
60
- public static function get_resource_id($res): int
61
- {
62
- if (!\is_resource($res) && null === @get_resource_type($res)) {
63
- throw new \TypeError(\sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res)));
64
- }
65
-
66
- return (int) $res;
67
- }
68
-
69
- public static function preg_last_error_msg(): string
70
- {
71
- switch (preg_last_error()) {
72
- case \PREG_INTERNAL_ERROR:
73
- return 'Internal error';
74
- case \PREG_BAD_UTF8_ERROR:
75
- return 'Malformed UTF-8 characters, possibly incorrectly encoded';
76
- case \PREG_BAD_UTF8_OFFSET_ERROR:
77
- return 'The offset did not correspond to the beginning of a valid UTF-8 code point';
78
- case \PREG_BACKTRACK_LIMIT_ERROR:
79
- return 'Backtrack limit exhausted';
80
- case \PREG_RECURSION_LIMIT_ERROR:
81
- return 'Recursion limit exhausted';
82
- case \PREG_JIT_STACKLIMIT_ERROR:
83
- return 'JIT stack limit exhausted';
84
- case \PREG_NO_ERROR:
85
- return 'No error';
86
- default:
87
- return 'Unknown error';
88
- }
89
- }
90
-
91
- public static function str_contains(string $haystack, string $needle): bool
92
- {
93
- return '' === $needle || false !== strpos($haystack, $needle);
94
- }
95
-
96
- public static function str_starts_with(string $haystack, string $needle): bool
97
- {
98
- return 0 === strncmp($haystack, $needle, \strlen($needle));
99
- }
100
-
101
- public static function str_ends_with(string $haystack, string $needle): bool
102
- {
103
- if ('' === $needle || $needle === $haystack) {
104
- return true;
105
- }
106
-
107
- if ('' === $haystack) {
108
- return false;
109
- }
110
-
111
- $needleLength = \strlen($needle);
112
-
113
- return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength);
114
- }
115
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Symfony\Polyfill\Php80;
13
+
14
+ /**
15
+ * @author Ion Bazan <ion.bazan@gmail.com>
16
+ * @author Nico Oelgart <nicoswd@gmail.com>
17
+ * @author Nicolas Grekas <p@tchwork.com>
18
+ *
19
+ * @internal
20
+ */
21
+ final class Php80
22
+ {
23
+ public static function fdiv(float $dividend, float $divisor): float
24
+ {
25
+ return @($dividend / $divisor);
26
+ }
27
+
28
+ public static function get_debug_type($value): string
29
+ {
30
+ switch (true) {
31
+ case null === $value: return 'null';
32
+ case \is_bool($value): return 'bool';
33
+ case \is_string($value): return 'string';
34
+ case \is_array($value): return 'array';
35
+ case \is_int($value): return 'int';
36
+ case \is_float($value): return 'float';
37
+ case \is_object($value): break;
38
+ case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
39
+ default:
40
+ if (null === $type = @get_resource_type($value)) {
41
+ return 'unknown';
42
+ }
43
+
44
+ if ('Unknown' === $type) {
45
+ $type = 'closed';
46
+ }
47
+
48
+ return "resource ($type)";
49
+ }
50
+
51
+ $class = \get_class($value);
52
+
53
+ if (false === strpos($class, '@')) {
54
+ return $class;
55
+ }
56
+
57
+ return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
58
+ }
59
+
60
+ public static function get_resource_id($res): int
61
+ {
62
+ if (!\is_resource($res) && null === @get_resource_type($res)) {
63
+ throw new \TypeError(\sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res)));
64
+ }
65
+
66
+ return (int) $res;
67
+ }
68
+
69
+ public static function preg_last_error_msg(): string
70
+ {
71
+ switch (preg_last_error()) {
72
+ case \PREG_INTERNAL_ERROR:
73
+ return 'Internal error';
74
+ case \PREG_BAD_UTF8_ERROR:
75
+ return 'Malformed UTF-8 characters, possibly incorrectly encoded';
76
+ case \PREG_BAD_UTF8_OFFSET_ERROR:
77
+ return 'The offset did not correspond to the beginning of a valid UTF-8 code point';
78
+ case \PREG_BACKTRACK_LIMIT_ERROR:
79
+ return 'Backtrack limit exhausted';
80
+ case \PREG_RECURSION_LIMIT_ERROR:
81
+ return 'Recursion limit exhausted';
82
+ case \PREG_JIT_STACKLIMIT_ERROR:
83
+ return 'JIT stack limit exhausted';
84
+ case \PREG_NO_ERROR:
85
+ return 'No error';
86
+ default:
87
+ return 'Unknown error';
88
+ }
89
+ }
90
+
91
+ public static function str_contains(string $haystack, string $needle): bool
92
+ {
93
+ return '' === $needle || false !== strpos($haystack, $needle);
94
+ }
95
+
96
+ public static function str_starts_with(string $haystack, string $needle): bool
97
+ {
98
+ return 0 === strncmp($haystack, $needle, \strlen($needle));
99
+ }
100
+
101
+ public static function str_ends_with(string $haystack, string $needle): bool
102
+ {
103
+ if ('' === $needle || $needle === $haystack) {
104
+ return true;
105
+ }
106
+
107
+ if ('' === $haystack) {
108
+ return false;
109
+ }
110
+
111
+ $needleLength = \strlen($needle);
112
+
113
+ return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength);
114
+ }
115
+ }
@@ -1,106 +1,106 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Polyfill\Php80;
13
-
14
- /**
15
- * @author Fedonyuk Anton <info@ensostudio.ru>
16
- *
17
- * @internal
18
- */
19
- class PhpToken implements \Stringable
20
- {
21
- /**
22
- * @var int
23
- */
24
- public $id;
25
-
26
- /**
27
- * @var string
28
- */
29
- public $text;
30
-
31
- /**
32
- * @var -1|positive-int
33
- */
34
- public $line;
35
-
36
- /**
37
- * @var int
38
- */
39
- public $pos;
40
-
41
- /**
42
- * @param -1|positive-int $line
43
- */
44
- public function __construct(int $id, string $text, int $line = -1, int $position = -1)
45
- {
46
- $this->id = $id;
47
- $this->text = $text;
48
- $this->line = $line;
49
- $this->pos = $position;
50
- }
51
-
52
- public function getTokenName(): ?string
53
- {
54
- if ('UNKNOWN' === $name = token_name($this->id)) {
55
- $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text;
56
- }
57
-
58
- return $name;
59
- }
60
-
61
- /**
62
- * @param int|string|array $kind
63
- */
64
- public function is($kind): bool
65
- {
66
- foreach ((array) $kind as $value) {
67
- if (\in_array($value, [$this->id, $this->text], true)) {
68
- return true;
69
- }
70
- }
71
-
72
- return false;
73
- }
74
-
75
- public function isIgnorable(): bool
76
- {
77
- return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true);
78
- }
79
-
80
- public function __toString(): string
81
- {
82
- return (string) $this->text;
83
- }
84
-
85
- /**
86
- * @return list<static>
87
- */
88
- public static function tokenize(string $code, int $flags = 0): array
89
- {
90
- $line = 1;
91
- $position = 0;
92
- $tokens = token_get_all($code, $flags);
93
- foreach ($tokens as $index => $token) {
94
- if (\is_string($token)) {
95
- $id = \ord($token);
96
- $text = $token;
97
- } else {
98
- [$id, $text, $line] = $token;
99
- }
100
- $tokens[$index] = new static($id, $text, $line, $position);
101
- $position += \strlen($text);
102
- }
103
-
104
- return $tokens;
105
- }
106
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Symfony\Polyfill\Php80;
13
+
14
+ /**
15
+ * @author Fedonyuk Anton <info@ensostudio.ru>
16
+ *
17
+ * @internal
18
+ */
19
+ class PhpToken implements \Stringable
20
+ {
21
+ /**
22
+ * @var int
23
+ */
24
+ public $id;
25
+
26
+ /**
27
+ * @var string
28
+ */
29
+ public $text;
30
+
31
+ /**
32
+ * @var -1|positive-int
33
+ */
34
+ public $line;
35
+
36
+ /**
37
+ * @var int
38
+ */
39
+ public $pos;
40
+
41
+ /**
42
+ * @param -1|positive-int $line
43
+ */
44
+ public function __construct(int $id, string $text, int $line = -1, int $position = -1)
45
+ {
46
+ $this->id = $id;
47
+ $this->text = $text;
48
+ $this->line = $line;
49
+ $this->pos = $position;
50
+ }
51
+
52
+ public function getTokenName(): ?string
53
+ {
54
+ if ('UNKNOWN' === $name = token_name($this->id)) {
55
+ $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text;
56
+ }
57
+
58
+ return $name;
59
+ }
60
+
61
+ /**
62
+ * @param int|string|array $kind
63
+ */
64
+ public function is($kind): bool
65
+ {
66
+ foreach ((array) $kind as $value) {
67
+ if (\in_array($value, [$this->id, $this->text], true)) {
68
+ return true;
69
+ }
70
+ }
71
+
72
+ return false;
73
+ }
74
+
75
+ public function isIgnorable(): bool
76
+ {
77
+ return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true);
78
+ }
79
+
80
+ public function __toString(): string
81
+ {
82
+ return (string) $this->text;
83
+ }
84
+
85
+ /**
86
+ * @return list<static>
87
+ */
88
+ public static function tokenize(string $code, int $flags = 0): array
89
+ {
90
+ $line = 1;
91
+ $position = 0;
92
+ $tokens = token_get_all($code, $flags);
93
+ foreach ($tokens as $index => $token) {
94
+ if (\is_string($token)) {
95
+ $id = \ord($token);
96
+ $text = $token;
97
+ } else {
98
+ [$id, $text, $line] = $token;
99
+ }
100
+ $tokens[$index] = new static($id, $text, $line, $position);
101
+ $position += \strlen($text);
102
+ }
103
+
104
+ return $tokens;
105
+ }
106
+ }
@@ -1,25 +1,25 @@
1
- Symfony Polyfill / Php80
2
- ========================
3
-
4
- This component provides features added to PHP 8.0 core:
5
-
6
- - [`Stringable`](https://php.net/stringable) interface
7
- - [`fdiv`](https://php.net/fdiv)
8
- - [`ValueError`](https://php.net/valueerror) class
9
- - [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class
10
- - `FILTER_VALIDATE_BOOL` constant
11
- - [`get_debug_type`](https://php.net/get_debug_type)
12
- - [`PhpToken`](https://php.net/phptoken) class
13
- - [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
14
- - [`str_contains`](https://php.net/str_contains)
15
- - [`str_starts_with`](https://php.net/str_starts_with)
16
- - [`str_ends_with`](https://php.net/str_ends_with)
17
- - [`get_resource_id`](https://php.net/get_resource_id)
18
-
19
- More information can be found in the
20
- [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
21
-
22
- License
23
- =======
24
-
25
- This library is released under the [MIT license](LICENSE).
1
+ Symfony Polyfill / Php80
2
+ ========================
3
+
4
+ This component provides features added to PHP 8.0 core:
5
+
6
+ - [`Stringable`](https://php.net/stringable) interface
7
+ - [`fdiv`](https://php.net/fdiv)
8
+ - [`ValueError`](https://php.net/valueerror) class
9
+ - [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class
10
+ - `FILTER_VALIDATE_BOOL` constant
11
+ - [`get_debug_type`](https://php.net/get_debug_type)
12
+ - [`PhpToken`](https://php.net/phptoken) class
13
+ - [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
14
+ - [`str_contains`](https://php.net/str_contains)
15
+ - [`str_starts_with`](https://php.net/str_starts_with)
16
+ - [`str_ends_with`](https://php.net/str_ends_with)
17
+ - [`get_resource_id`](https://php.net/get_resource_id)
18
+
19
+ More information can be found in the
20
+ [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
21
+
22
+ License
23
+ =======
24
+
25
+ This library is released under the [MIT license](LICENSE).
@@ -1,31 +1,31 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- #[Attribute(Attribute::TARGET_CLASS)]
13
- final class Attribute
14
- {
15
- public const TARGET_CLASS = 1;
16
- public const TARGET_FUNCTION = 2;
17
- public const TARGET_METHOD = 4;
18
- public const TARGET_PROPERTY = 8;
19
- public const TARGET_CLASS_CONSTANT = 16;
20
- public const TARGET_PARAMETER = 32;
21
- public const TARGET_ALL = 63;
22
- public const IS_REPEATABLE = 64;
23
-
24
- /** @var int */
25
- public $flags;
26
-
27
- public function __construct(int $flags = self::TARGET_ALL)
28
- {
29
- $this->flags = $flags;
30
- }
31
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ #[Attribute(Attribute::TARGET_CLASS)]
13
+ final class Attribute
14
+ {
15
+ public const TARGET_CLASS = 1;
16
+ public const TARGET_FUNCTION = 2;
17
+ public const TARGET_METHOD = 4;
18
+ public const TARGET_PROPERTY = 8;
19
+ public const TARGET_CLASS_CONSTANT = 16;
20
+ public const TARGET_PARAMETER = 32;
21
+ public const TARGET_ALL = 63;
22
+ public const IS_REPEATABLE = 64;
23
+
24
+ /** @var int */
25
+ public $flags;
26
+
27
+ public function __construct(int $flags = self::TARGET_ALL)
28
+ {
29
+ $this->flags = $flags;
30
+ }
31
+ }
@@ -1,16 +1,16 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) {
13
- class PhpToken extends Symfony\Polyfill\Php80\PhpToken
14
- {
15
- }
16
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) {
13
+ class PhpToken extends Symfony\Polyfill\Php80\PhpToken
14
+ {
15
+ }
16
+ }
@@ -1,20 +1,20 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- if (\PHP_VERSION_ID < 80000) {
13
- interface Stringable
14
- {
15
- /**
16
- * @return string
17
- */
18
- public function __toString();
19
- }
20
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ if (\PHP_VERSION_ID < 80000) {
13
+ interface Stringable
14
+ {
15
+ /**
16
+ * @return string
17
+ */
18
+ public function __toString();
19
+ }
20
+ }
@@ -1,16 +1,16 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- if (\PHP_VERSION_ID < 80000) {
13
- class UnhandledMatchError extends Error
14
- {
15
- }
16
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ if (\PHP_VERSION_ID < 80000) {
13
+ class UnhandledMatchError extends Error
14
+ {
15
+ }
16
+ }