create-berna-stencil 2.4.3 → 2.5.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 (171) hide show
  1. package/README.md +1 -1
  2. package/bin/create.js +1 -1
  3. package/docs/Backend.md +33 -8
  4. package/nginx.conf +27 -3
  5. package/package.json +1 -1
  6. package/src/backend/_core/index.php +23 -6
  7. package/src/backend/_core/vendor/composer/autoload_static.php +10 -10
  8. package/src/backend/_core/vendor/composer/installed.json +6 -6
  9. package/src/backend/_core/vendor/composer/installed.php +2 -2
  10. package/src/backend/_core/vendor/graham-campbell/result-type/LICENSE +21 -21
  11. package/src/backend/_core/vendor/graham-campbell/result-type/composer.json +33 -33
  12. package/src/backend/_core/vendor/graham-campbell/result-type/src/Error.php +121 -121
  13. package/src/backend/_core/vendor/graham-campbell/result-type/src/Result.php +69 -69
  14. package/src/backend/_core/vendor/graham-campbell/result-type/src/Success.php +120 -120
  15. package/src/backend/_core/vendor/phpoption/phpoption/LICENSE +200 -200
  16. package/src/backend/_core/vendor/phpoption/phpoption/composer.json +50 -50
  17. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -175
  18. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -136
  19. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -434
  20. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -169
  21. package/src/backend/_core/vendor/symfony/polyfill-ctype/Ctype.php +232 -232
  22. package/src/backend/_core/vendor/symfony/polyfill-ctype/LICENSE +19 -19
  23. package/src/backend/_core/vendor/symfony/polyfill-ctype/README.md +12 -12
  24. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap.php +50 -50
  25. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -46
  26. package/src/backend/_core/vendor/symfony/polyfill-ctype/composer.json +38 -38
  27. package/src/backend/_core/vendor/symfony/polyfill-mbstring/LICENSE +19 -19
  28. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -1077
  29. package/src/backend/_core/vendor/symfony/polyfill-mbstring/README.md +13 -13
  30. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -119
  31. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -1397
  32. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -5
  33. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -1489
  34. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -171
  35. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -167
  36. package/src/backend/_core/vendor/symfony/polyfill-mbstring/composer.json +39 -39
  37. package/src/backend/_core/vendor/symfony/polyfill-php80/LICENSE +19 -19
  38. package/src/backend/_core/vendor/symfony/polyfill-php80/Php80.php +115 -115
  39. package/src/backend/_core/vendor/symfony/polyfill-php80/PhpToken.php +106 -106
  40. package/src/backend/_core/vendor/symfony/polyfill-php80/README.md +25 -25
  41. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -31
  42. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -16
  43. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -20
  44. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -16
  45. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -16
  46. package/src/backend/_core/vendor/symfony/polyfill-php80/bootstrap.php +42 -42
  47. package/src/backend/_core/vendor/symfony/polyfill-php80/composer.json +37 -37
  48. package/src/backend/_core/vendor/vlucas/phpdotenv/LICENSE +30 -30
  49. package/src/backend/_core/vendor/vlucas/phpdotenv/composer.json +60 -60
  50. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -267
  51. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -12
  52. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -12
  53. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -12
  54. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -12
  55. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -12
  56. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -48
  57. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -20
  58. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -65
  59. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -59
  60. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -299
  61. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -58
  62. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -127
  63. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -53
  64. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -19
  65. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -88
  66. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -15
  67. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -89
  68. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -80
  69. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -88
  70. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -85
  71. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -110
  72. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -48
  73. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -64
  74. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -91
  75. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -17
  76. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -104
  77. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -88
  78. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -27
  79. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -107
  80. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -272
  81. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -51
  82. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -44
  83. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -81
  84. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -72
  85. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -141
  86. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -17
  87. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -37
  88. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -112
  89. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -108
  90. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Validator.php +207 -207
  91. package/src/backend/config.example.php +13 -4
  92. package/src/frontend/data/site.json +43 -43
  93. package/src/backend/_core/vendor/graham-campbell/result-type/.gitattributes +0 -9
  94. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +0 -132
  95. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +0 -31
  96. package/src/backend/_core/vendor/graham-campbell/result-type/.github/FUNDING.yml +0 -2
  97. package/src/backend/_core/vendor/graham-campbell/result-type/.github/SECURITY.md +0 -14
  98. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +0 -11
  99. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +0 -40
  100. package/src/backend/_core/vendor/graham-campbell/result-type/CHANGELOG.md +0 -53
  101. package/src/backend/_core/vendor/graham-campbell/result-type/README.md +0 -42
  102. package/src/backend/_core/vendor/graham-campbell/result-type/phpunit.xml.dist +0 -13
  103. package/src/backend/_core/vendor/graham-campbell/result-type/tests/ResultTest.php +0 -95
  104. package/src/backend/_core/vendor/phpoption/phpoption/.gitattributes +0 -13
  105. package/src/backend/_core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +0 -132
  106. package/src/backend/_core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +0 -30
  107. package/src/backend/_core/vendor/phpoption/phpoption/.github/FUNDING.yml +0 -2
  108. package/src/backend/_core/vendor/phpoption/phpoption/.github/SECURITY.md +0 -14
  109. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/static.yml +0 -40
  110. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/tests.yml +0 -40
  111. package/src/backend/_core/vendor/phpoption/phpoption/Makefile +0 -17
  112. package/src/backend/_core/vendor/phpoption/phpoption/README.md +0 -201
  113. package/src/backend/_core/vendor/phpoption/phpoption/phpstan-baseline.neon +0 -44
  114. package/src/backend/_core/vendor/phpoption/phpoption/phpstan.neon.dist +0 -7
  115. package/src/backend/_core/vendor/phpoption/phpoption/phpunit.xml.dist +0 -13
  116. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +0 -72
  117. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +0 -357
  118. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +0 -153
  119. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +0 -166
  120. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +0 -194
  121. package/src/backend/_core/vendor/phpoption/phpoption/tests/bootstrap.php +0 -8
  122. package/src/backend/_core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +0 -8
  123. package/src/backend/_core/vendor/vlucas/phpdotenv/.editorconfig +0 -15
  124. package/src/backend/_core/vendor/vlucas/phpdotenv/.gitattributes +0 -15
  125. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +0 -132
  126. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +0 -30
  127. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +0 -2
  128. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/SECURITY.md +0 -14
  129. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +0 -40
  130. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +0 -70
  131. package/src/backend/_core/vendor/vlucas/phpdotenv/Makefile +0 -17
  132. package/src/backend/_core/vendor/vlucas/phpdotenv/README.md +0 -370
  133. package/src/backend/_core/vendor/vlucas/phpdotenv/UPGRADING.md +0 -196
  134. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +0 -157
  135. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan.neon.dist +0 -7
  136. package/src/backend/_core/vendor/vlucas/phpdotenv/phpunit.xml.dist +0 -13
  137. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +0 -387
  138. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +0 -86
  139. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +0 -234
  140. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +0 -40
  141. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +0 -53
  142. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +0 -98
  143. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +0 -57
  144. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +0 -75
  145. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +0 -52
  146. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +0 -75
  147. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +0 -305
  148. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +0 -141
  149. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +0 -479
  150. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +0 -5
  151. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +0 -18
  152. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +0 -33
  153. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +0 -15
  154. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +0 -1
  155. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +0 -1
  156. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +0 -7
  157. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +0 -1
  158. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +0 -17
  159. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +0 -2
  160. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +0 -3
  161. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +0 -14
  162. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +0 -4
  163. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +0 -1
  164. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +0 -15
  165. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +0 -11
  166. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +0 -8
  167. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +0 -2
  168. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +0 -3
  169. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +0 -1
  170. package/src/backend/_core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +0 -15
  171. package/src/backend/config.php +0 -19
@@ -1,48 +1,48 @@
1
- <?php
2
-
3
- declare(strict_types=1);
4
-
5
- namespace Dotenv\Loader;
6
-
7
- use Dotenv\Parser\Entry;
8
- use Dotenv\Parser\Value;
9
- use Dotenv\Repository\RepositoryInterface;
10
-
11
- final class Loader implements LoaderInterface
12
- {
13
- /**
14
- * Load the given entries into the repository.
15
- *
16
- * We'll substitute any nested variables, and send each variable to the
17
- * repository, with the effect of actually mutating the environment.
18
- *
19
- * @param \Dotenv\Repository\RepositoryInterface $repository
20
- * @param \Dotenv\Parser\Entry[] $entries
21
- *
22
- * @return array<string, string|null>
23
- */
24
- public function load(RepositoryInterface $repository, array $entries)
25
- {
26
- /** @var array<string, string|null> */
27
- return \array_reduce($entries, static function (array $vars, Entry $entry) use ($repository) {
28
- $name = $entry->getName();
29
-
30
- $value = $entry->getValue()->map(static function (Value $value) use ($repository) {
31
- return Resolver::resolve($repository, $value);
32
- });
33
-
34
- if ($value->isDefined()) {
35
- $inner = $value->get();
36
- if ($repository->set($name, $inner)) {
37
- return \array_merge($vars, [$name => $inner]);
38
- }
39
- } else {
40
- if ($repository->clear($name)) {
41
- return \array_merge($vars, [$name => null]);
42
- }
43
- }
44
-
45
- return $vars;
46
- }, []);
47
- }
48
- }
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dotenv\Loader;
6
+
7
+ use Dotenv\Parser\Entry;
8
+ use Dotenv\Parser\Value;
9
+ use Dotenv\Repository\RepositoryInterface;
10
+
11
+ final class Loader implements LoaderInterface
12
+ {
13
+ /**
14
+ * Load the given entries into the repository.
15
+ *
16
+ * We'll substitute any nested variables, and send each variable to the
17
+ * repository, with the effect of actually mutating the environment.
18
+ *
19
+ * @param \Dotenv\Repository\RepositoryInterface $repository
20
+ * @param \Dotenv\Parser\Entry[] $entries
21
+ *
22
+ * @return array<string, string|null>
23
+ */
24
+ public function load(RepositoryInterface $repository, array $entries)
25
+ {
26
+ /** @var array<string, string|null> */
27
+ return \array_reduce($entries, static function (array $vars, Entry $entry) use ($repository) {
28
+ $name = $entry->getName();
29
+
30
+ $value = $entry->getValue()->map(static function (Value $value) use ($repository) {
31
+ return Resolver::resolve($repository, $value);
32
+ });
33
+
34
+ if ($value->isDefined()) {
35
+ $inner = $value->get();
36
+ if ($repository->set($name, $inner)) {
37
+ return \array_merge($vars, [$name => $inner]);
38
+ }
39
+ } else {
40
+ if ($repository->clear($name)) {
41
+ return \array_merge($vars, [$name => null]);
42
+ }
43
+ }
44
+
45
+ return $vars;
46
+ }, []);
47
+ }
48
+ }
@@ -1,20 +1,20 @@
1
- <?php
2
-
3
- declare(strict_types=1);
4
-
5
- namespace Dotenv\Loader;
6
-
7
- use Dotenv\Repository\RepositoryInterface;
8
-
9
- interface LoaderInterface
10
- {
11
- /**
12
- * Load the given entries into the repository.
13
- *
14
- * @param \Dotenv\Repository\RepositoryInterface $repository
15
- * @param \Dotenv\Parser\Entry[] $entries
16
- *
17
- * @return array<string, string|null>
18
- */
19
- public function load(RepositoryInterface $repository, array $entries);
20
- }
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dotenv\Loader;
6
+
7
+ use Dotenv\Repository\RepositoryInterface;
8
+
9
+ interface LoaderInterface
10
+ {
11
+ /**
12
+ * Load the given entries into the repository.
13
+ *
14
+ * @param \Dotenv\Repository\RepositoryInterface $repository
15
+ * @param \Dotenv\Parser\Entry[] $entries
16
+ *
17
+ * @return array<string, string|null>
18
+ */
19
+ public function load(RepositoryInterface $repository, array $entries);
20
+ }
@@ -1,65 +1,65 @@
1
- <?php
2
-
3
- declare(strict_types=1);
4
-
5
- namespace Dotenv\Loader;
6
-
7
- use Dotenv\Parser\Value;
8
- use Dotenv\Repository\RepositoryInterface;
9
- use Dotenv\Util\Regex;
10
- use Dotenv\Util\Str;
11
- use PhpOption\Option;
12
-
13
- final class Resolver
14
- {
15
- /**
16
- * This class is a singleton.
17
- *
18
- * @codeCoverageIgnore
19
- *
20
- * @return void
21
- */
22
- private function __construct()
23
- {
24
- //
25
- }
26
-
27
- /**
28
- * Resolve the nested variables in the given value.
29
- *
30
- * Replaces ${varname} patterns in the allowed positions in the variable
31
- * value by an existing environment variable.
32
- *
33
- * @param \Dotenv\Repository\RepositoryInterface $repository
34
- * @param \Dotenv\Parser\Value $value
35
- *
36
- * @return string
37
- */
38
- public static function resolve(RepositoryInterface $repository, Value $value)
39
- {
40
- return \array_reduce($value->getVars(), static function (string $s, int $i) use ($repository) {
41
- return Str::substr($s, 0, $i).self::resolveVariable($repository, Str::substr($s, $i));
42
- }, $value->getChars());
43
- }
44
-
45
- /**
46
- * Resolve a single nested variable.
47
- *
48
- * @param \Dotenv\Repository\RepositoryInterface $repository
49
- * @param string $str
50
- *
51
- * @return string
52
- */
53
- private static function resolveVariable(RepositoryInterface $repository, string $str)
54
- {
55
- return Regex::replaceCallback(
56
- '/\A\${([a-zA-Z0-9_.]+)}/',
57
- static function (array $matches) use ($repository) {
58
- /** @var string */
59
- return Option::fromValue($repository->get($matches[1]))->getOrElse($matches[0]);
60
- },
61
- $str,
62
- 1
63
- )->success()->getOrElse($str);
64
- }
65
- }
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dotenv\Loader;
6
+
7
+ use Dotenv\Parser\Value;
8
+ use Dotenv\Repository\RepositoryInterface;
9
+ use Dotenv\Util\Regex;
10
+ use Dotenv\Util\Str;
11
+ use PhpOption\Option;
12
+
13
+ final class Resolver
14
+ {
15
+ /**
16
+ * This class is a singleton.
17
+ *
18
+ * @codeCoverageIgnore
19
+ *
20
+ * @return void
21
+ */
22
+ private function __construct()
23
+ {
24
+ //
25
+ }
26
+
27
+ /**
28
+ * Resolve the nested variables in the given value.
29
+ *
30
+ * Replaces ${varname} patterns in the allowed positions in the variable
31
+ * value by an existing environment variable.
32
+ *
33
+ * @param \Dotenv\Repository\RepositoryInterface $repository
34
+ * @param \Dotenv\Parser\Value $value
35
+ *
36
+ * @return string
37
+ */
38
+ public static function resolve(RepositoryInterface $repository, Value $value)
39
+ {
40
+ return \array_reduce($value->getVars(), static function (string $s, int $i) use ($repository) {
41
+ return Str::substr($s, 0, $i).self::resolveVariable($repository, Str::substr($s, $i));
42
+ }, $value->getChars());
43
+ }
44
+
45
+ /**
46
+ * Resolve a single nested variable.
47
+ *
48
+ * @param \Dotenv\Repository\RepositoryInterface $repository
49
+ * @param string $str
50
+ *
51
+ * @return string
52
+ */
53
+ private static function resolveVariable(RepositoryInterface $repository, string $str)
54
+ {
55
+ return Regex::replaceCallback(
56
+ '/\A\${([a-zA-Z0-9_.]+)}/',
57
+ static function (array $matches) use ($repository) {
58
+ /** @var string */
59
+ return Option::fromValue($repository->get($matches[1]))->getOrElse($matches[0]);
60
+ },
61
+ $str,
62
+ 1
63
+ )->success()->getOrElse($str);
64
+ }
65
+ }
@@ -1,59 +1,59 @@
1
- <?php
2
-
3
- declare(strict_types=1);
4
-
5
- namespace Dotenv\Parser;
6
-
7
- use PhpOption\Option;
8
-
9
- final class Entry
10
- {
11
- /**
12
- * The entry name.
13
- *
14
- * @var string
15
- */
16
- private $name;
17
-
18
- /**
19
- * The entry value.
20
- *
21
- * @var \Dotenv\Parser\Value|null
22
- */
23
- private $value;
24
-
25
- /**
26
- * Create a new entry instance.
27
- *
28
- * @param string $name
29
- * @param \Dotenv\Parser\Value|null $value
30
- *
31
- * @return void
32
- */
33
- public function __construct(string $name, ?Value $value = null)
34
- {
35
- $this->name = $name;
36
- $this->value = $value;
37
- }
38
-
39
- /**
40
- * Get the entry name.
41
- *
42
- * @return string
43
- */
44
- public function getName()
45
- {
46
- return $this->name;
47
- }
48
-
49
- /**
50
- * Get the entry value.
51
- *
52
- * @return \PhpOption\Option<\Dotenv\Parser\Value>
53
- */
54
- public function getValue()
55
- {
56
- /** @var \PhpOption\Option<\Dotenv\Parser\Value> */
57
- return Option::fromValue($this->value);
58
- }
59
- }
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dotenv\Parser;
6
+
7
+ use PhpOption\Option;
8
+
9
+ final class Entry
10
+ {
11
+ /**
12
+ * The entry name.
13
+ *
14
+ * @var string
15
+ */
16
+ private $name;
17
+
18
+ /**
19
+ * The entry value.
20
+ *
21
+ * @var \Dotenv\Parser\Value|null
22
+ */
23
+ private $value;
24
+
25
+ /**
26
+ * Create a new entry instance.
27
+ *
28
+ * @param string $name
29
+ * @param \Dotenv\Parser\Value|null $value
30
+ *
31
+ * @return void
32
+ */
33
+ public function __construct(string $name, ?Value $value = null)
34
+ {
35
+ $this->name = $name;
36
+ $this->value = $value;
37
+ }
38
+
39
+ /**
40
+ * Get the entry name.
41
+ *
42
+ * @return string
43
+ */
44
+ public function getName()
45
+ {
46
+ return $this->name;
47
+ }
48
+
49
+ /**
50
+ * Get the entry value.
51
+ *
52
+ * @return \PhpOption\Option<\Dotenv\Parser\Value>
53
+ */
54
+ public function getValue()
55
+ {
56
+ /** @var \PhpOption\Option<\Dotenv\Parser\Value> */
57
+ return Option::fromValue($this->value);
58
+ }
59
+ }