shel-neos-schema 1.0.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.
@@ -0,0 +1,83 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JsonSchemaMappingsProjectConfiguration">
4
+ <state>
5
+ <map>
6
+ <entry key="Caches.yaml Schema">
7
+ <value>
8
+ <SchemaInfo>
9
+ <option name="generatedName" value="New Schema" />
10
+ <option name="name" value="Caches.yaml Schema" />
11
+ <option name="relativePathToSchema" value="Caches.Schema.json" />
12
+ <option name="patterns">
13
+ <list>
14
+ <Item>
15
+ <option name="path" value="examples/Caches.yaml" />
16
+ </Item>
17
+ </list>
18
+ </option>
19
+ </SchemaInfo>
20
+ </value>
21
+ </entry>
22
+ <entry key="Neos Migrations (dev)">
23
+ <value>
24
+ <SchemaInfo>
25
+ <option name="name" value="Neos Migrations (dev)" />
26
+ <option name="relativePathToSchema" value="NodeMigration.Schema.json" />
27
+ <option name="schemaVersion" value="JSON Schema 7" />
28
+ <option name="patterns">
29
+ <list>
30
+ <Item>
31
+ <option name="pattern" value="true" />
32
+ <option name="path" value="examples/Version*.yaml" />
33
+ <option name="mappingKind" value="Pattern" />
34
+ </Item>
35
+ </list>
36
+ </option>
37
+ </SchemaInfo>
38
+ </value>
39
+ </entry>
40
+ <entry key="NodeTypes.Presets.Schema (dev)">
41
+ <value>
42
+ <SchemaInfo>
43
+ <option name="generatedName" value="New Schema" />
44
+ <option name="name" value="NodeTypes.Presets.Schema (dev)" />
45
+ <option name="relativePathToSchema" value="NodeTypes.Presets.Schema.json" />
46
+ <option name="schemaVersion" value="JSON Schema 7" />
47
+ <option name="patterns">
48
+ <list>
49
+ <Item>
50
+ <option name="pattern" value="true" />
51
+ <option name="path" value="examples/Settings.Presets.*.yaml" />
52
+ <option name="mappingKind" value="Pattern" />
53
+ </Item>
54
+ <Item>
55
+ <option name="path" value="examples/Settings.Presets.yaml" />
56
+ </Item>
57
+ </list>
58
+ </option>
59
+ </SchemaInfo>
60
+ </value>
61
+ </entry>
62
+ <entry key="NodeTypes.Schema (dev)">
63
+ <value>
64
+ <SchemaInfo>
65
+ <option name="name" value="NodeTypes.Schema (dev)" />
66
+ <option name="relativePathToSchema" value="NodeTypes.Schema.json" />
67
+ <option name="schemaVersion" value="JSON Schema 7" />
68
+ <option name="patterns">
69
+ <list>
70
+ <Item>
71
+ <option name="pattern" value="true" />
72
+ <option name="path" value="examples/NodeTypes.*.yaml" />
73
+ <option name="mappingKind" value="Pattern" />
74
+ </Item>
75
+ </list>
76
+ </option>
77
+ </SchemaInfo>
78
+ </value>
79
+ </entry>
80
+ </map>
81
+ </state>
82
+ </component>
83
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/Shel.Neos.Schema.iml" filepath="$PROJECT_DIR$/.idea/Shel.Neos.Schema.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="EAUltimateProjectSettings">
4
+ <categories>
5
+ <STRICTNESS_CATEGORY_SECURITY enabled="yes" />
6
+ <STRICTNESS_CATEGORY_PROBABLE_BUGS enabled="yes" />
7
+ <STRICTNESS_CATEGORY_PERFORMANCE enabled="yes" />
8
+ <STRICTNESS_CATEGORY_ARCHITECTURE enabled="yes" />
9
+ <STRICTNESS_CATEGORY_CONTROL_FLOW enabled="yes" />
10
+ <STRICTNESS_CATEGORY_LANGUAGE_LEVEL_MIGRATION enabled="yes" />
11
+ <STRICTNESS_CATEGORY_CODE_STYLE enabled="yes" />
12
+ <STRICTNESS_CATEGORY_UNUSED enabled="yes" />
13
+ <STRICTNESS_CATEGORY_PHPUNIT enabled="yes" />
14
+ </categories>
15
+ <settings>
16
+ <ANALYZE_ONLY_MODIFIED_FILES value="no" />
17
+ <PREFER_YODA_COMPARISON_STYLE value="no" />
18
+ </settings>
19
+ </component>
20
+ </project>
package/.idea/php.xml ADDED
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="MessDetectorOptionsConfiguration">
4
+ <option name="transferred" value="true" />
5
+ </component>
6
+ <component name="PHPCSFixerOptionsConfiguration">
7
+ <option name="transferred" value="true" />
8
+ </component>
9
+ <component name="PHPCodeSnifferOptionsConfiguration">
10
+ <option name="highlightLevel" value="WARNING" />
11
+ <option name="transferred" value="true" />
12
+ </component>
13
+ <component name="PhpCodeSniffer">
14
+ <phpcs_settings>
15
+ <phpcs_by_interpreter asDefaultInterpreter="true" interpreter_id="5f413397-bb40-41d0-97f4-ba1c263af7c8" timeout="30000" />
16
+ </phpcs_settings>
17
+ </component>
18
+ <component name="PhpStan">
19
+ <PhpStan_settings>
20
+ <phpstan_by_interpreter asDefaultInterpreter="true" interpreter_id="5f413397-bb40-41d0-97f4-ba1c263af7c8" timeout="60000" />
21
+ </PhpStan_settings>
22
+ </component>
23
+ <component name="PhpStanOptionsConfiguration">
24
+ <option name="transferred" value="true" />
25
+ </component>
26
+ <component name="Psalm">
27
+ <Psalm_settings>
28
+ <psalm_fixer_by_interpreter asDefaultInterpreter="true" interpreter_id="5f413397-bb40-41d0-97f4-ba1c263af7c8" timeout="60000" />
29
+ </Psalm_settings>
30
+ </component>
31
+ <component name="PsalmOptionsConfiguration">
32
+ <option name="transferred" value="true" />
33
+ </component>
34
+ </project>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 22
package/.yarnrc.yml ADDED
@@ -0,0 +1,3 @@
1
+ nodeLinker: node-modules
2
+
3
+ yarnPath: .yarn/releases/yarn-4.6.0.cjs
@@ -0,0 +1,306 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "https://raw.githubusercontent.com/Sebobo/Shel.Neos.Schema/main/Caches.Schema.json",
4
+ "title": "Neos Caching Configuration Schema",
5
+ "type": "object",
6
+ "additionalProperties": {
7
+ "$ref": "#/definitions/cache"
8
+ },
9
+ "definitions": {
10
+ "cache": {
11
+ "type": "object",
12
+ "properties": {
13
+ "frontend": {
14
+ "$ref": "#/definitions/frontend"
15
+ },
16
+ "persistent": {
17
+ "type": "boolean"
18
+ }
19
+ },
20
+ "$ref": "#/definitions/backendWithOptions"
21
+ },
22
+ "frontend": {
23
+ "oneOf": [
24
+ {
25
+ "type": "string",
26
+ "not": {
27
+ "enum": [
28
+ "Neos\\Cache\\Frontend\\StringFrontend",
29
+ "Neos\\Cache\\Frontend\\VariableFrontend",
30
+ "Neos\\Cache\\Frontend\\PhpFrontend",
31
+ "Neos\\Cache\\Frontend\\PhpCapableBackendInterface"
32
+ ]
33
+ }
34
+ },
35
+ {
36
+ "enum": [
37
+ "Neos\\Cache\\Frontend\\StringFrontend",
38
+ "Neos\\Cache\\Frontend\\VariableFrontend",
39
+ "Neos\\Cache\\Frontend\\PhpFrontend",
40
+ "Neos\\Cache\\Frontend\\PhpCapableBackendInterface"
41
+ ]
42
+ }
43
+ ]
44
+ },
45
+ "backendWithOptions": {
46
+ "anyOf": [
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "backend": {
51
+ "type": "string",
52
+ "description": "The qualified classname of the backend implementation",
53
+ "not": {
54
+ "enum": [
55
+ "Neos\\Cache\\Backend\\SimpleFileBackend",
56
+ "Neos\\Cache\\Backend\\FileBackend",
57
+ "Neos\\Cache\\Backend\\PdoBackend",
58
+ "Neos\\Cache\\Backend\\RedisBackend",
59
+ "Neos\\Cache\\Backend\\MemcachedBackend",
60
+ "Neos\\Cache\\Backend\\ApcuBackend",
61
+ "Neos\\Cache\\Backend\\TransientMemoryBackend",
62
+ "Neos\\Cache\\Backend\\NullBackend",
63
+ "Neos\\Cache\\Backend\\MultiBackend",
64
+ "Neos\\Cache\\Backend\\TaggableMultiBackend"
65
+ ]
66
+ }
67
+ },
68
+ "backendOptions": {
69
+ "type": ["object", "array"],
70
+ "description": "Options passed to the backend implementation"
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "type": "object",
76
+ "properties": {
77
+ "backend": {
78
+ "const": "Neos\\Cache\\Backend\\SimpleFileBackend"
79
+ },
80
+ "backendOptions": {
81
+ "type": "object",
82
+ "properties": {
83
+ "cacheDirectory": {
84
+ "type": "string",
85
+ "description": "Full path leading to a custom cache directory.",
86
+ "examples": [
87
+ "/tmp/my-cache-directory/"
88
+ ]
89
+ }
90
+ }
91
+ }
92
+ }
93
+ },
94
+ {
95
+ "type": "object",
96
+ "properties": {
97
+ "backend": {
98
+ "const": "Neos\\Cache\\Backend\\FileBackend"
99
+ },
100
+ "backendOptions": {
101
+ "type": "object",
102
+ "properties": {
103
+ "cacheDirectory": {
104
+ "type": "string",
105
+ "description": "Full path leading to a custom cache directory.",
106
+ "examples": [
107
+ "/tmp/my-cache-directory/"
108
+ ]
109
+ },
110
+ "defaultLifetime": {
111
+ "$ref": "#/definitions/defaultLifetime"
112
+ }
113
+ }
114
+ }
115
+ }
116
+ },
117
+ {
118
+ "type": "object",
119
+ "properties": {
120
+ "backend": {
121
+ "const": "Neos\\Cache\\Backend\\PdoBackend"
122
+ },
123
+ "backendOptions": {
124
+ "type": "object",
125
+ "properties": {
126
+ "dataSourceName": {
127
+ "type": "string",
128
+ "description": "Data source name for connecting to the database.",
129
+ "examples": [
130
+ "mysql:host=localhost;dbname=test;charset=utf8mb4",
131
+ "sqlite:/path/to/sqlite.db",
132
+ "sqlite:memory"
133
+ ]
134
+ },
135
+ "username": {
136
+ "type": "string",
137
+ "description": "Username to use for the database connection."
138
+ },
139
+ "password": {
140
+ "type": "string",
141
+ "description": "Password to use for the database connection."
142
+ },
143
+ "defaultLifetime": {
144
+ "$ref": "#/definitions/defaultLifetime"
145
+ }
146
+ },
147
+ "required": [
148
+ "dataSourceName"
149
+ ]
150
+ }
151
+ }
152
+ },
153
+ {
154
+ "type": "object",
155
+ "properties": {
156
+ "backend": {
157
+ "const": "Neos\\Cache\\Backend\\RedisBackend"
158
+ },
159
+ "backendOptions": {
160
+ "type": "object",
161
+ "properties": {
162
+ "hostname": {
163
+ "type": "string",
164
+ "description": "IP address or name of redis server to connect to.",
165
+ "default": "127.0.0.1"
166
+ },
167
+ "port": {
168
+ "type": "integer",
169
+ "description": "Port of the Redis server.",
170
+ "default": 6379
171
+ },
172
+ "database": {
173
+ "type": "integer",
174
+ "description": "Number of the database to store entries. Each cache should use its own database, otherwise all caches sharing a database are flushed if the flush operation is issued to one of them. Database numbers 0 and 1 are used and flushed by the core unit tests and should not be used if possible.",
175
+ "default": 0
176
+ },
177
+ "password": {
178
+ "type": "string",
179
+ "description": "Password used to connect to the redis instance if the redis server needs authentication. Warning: The password is sent to the redis server in plain text."
180
+ },
181
+ "compressionLevel": {
182
+ "type": "integer",
183
+ "description": "Set gzip compression level to a specific value.",
184
+ "default": 0,
185
+ "minimum": 0,
186
+ "maximum": 9
187
+ },
188
+ "defaultLifetime": {
189
+ "$ref": "#/definitions/defaultLifetime"
190
+ }
191
+ }
192
+ }
193
+ }
194
+ },
195
+ {
196
+ "type": "object",
197
+ "properties": {
198
+ "backend": {
199
+ "const": "Neos\\Cache\\Backend\\MemcachedBackend"
200
+ },
201
+ "backendOptions": {
202
+ "type": "object",
203
+ "properties": {
204
+ "servers": {
205
+ "type": "array",
206
+ "description": "Array of used memcached servers, at least one server must be defined. Each server definition is a string, allowed syntaxes:\n\nhost\n TCP connect to host on memcached default port (usually 11211, defined by PHP ini variable memcache.default_port\n\nhost:port\n TCP connect to host on port\n\ntcp://hostname:port\n Same as above\n\nunix:///path/to/memcached.sock\n Connect to memcached server using unix sockets",
207
+ "x-intellij-html-description": "<p>Array of used memcached servers, at least one server must be defined. Each server definition is a string, allowed syntaxes:<ul><li><strong>hosty</strong><br>TCP connect to host on memcached default port (usually 11211, defined by PHP ini variable memcache.default_port</li><li><strong>host:port</strong><br>TCP connect to host on port</li><li><strong>tcp://hostname:port</strong><br>Same as above</li><li><strong>unix:///path/to/memcached.sock</strong><br>Connect to memcached server using unix sockets</li></ul></p>"
208
+ },
209
+ "compression": {
210
+ "type": "boolean",
211
+ "description": "Enable memcached internal data compression. Can be used to reduce memcached memory consumption but adds additional compression / decompression CPU overhead on the according memcached servers.",
212
+ "default": false
213
+ },
214
+ "defaultLifetime": {
215
+ "$ref": "#/definitions/defaultLifetime"
216
+ }
217
+ },
218
+ "required": [
219
+ "servers"
220
+ ]
221
+ }
222
+ }
223
+ },
224
+ {
225
+ "type": "object",
226
+ "properties": {
227
+ "backend": {
228
+ "const": "Neos\\Cache\\Backend\\ApcuBackend"
229
+ },
230
+ "backendOptions": {
231
+ "type": ["object", "array"]
232
+ }
233
+ }
234
+ },
235
+ {
236
+ "type": "object",
237
+ "properties": {
238
+ "backend": {
239
+ "const": "Neos\\Cache\\Backend\\TransientMemoryBackend"
240
+ },
241
+ "backendOptions": {
242
+ "type": ["object", "array"]
243
+ }
244
+ }
245
+ },
246
+ {
247
+ "type": "object",
248
+ "properties": {
249
+ "backend": {
250
+ "const": "Neos\\Cache\\Backend\\NullBackend"
251
+ },
252
+ "backendOptions": {
253
+ "type": ["object", "array"]
254
+ }
255
+ }
256
+ },
257
+ {
258
+ "type": "object",
259
+ "properties": {
260
+ "backend": {
261
+ "oneOf": [
262
+ {
263
+ "const": "Neos\\Cache\\Backend\\MultiBackend"
264
+ },
265
+ {
266
+ "const": "Neos\\Cache\\Backend\\TaggableMultiBackend"
267
+ }
268
+ ]
269
+ },
270
+ "backendOptions": {
271
+ "type": "object",
272
+ "properties": {
273
+ "setInAllBackends": {
274
+ "type": "boolean",
275
+ "description": "Should values given to the backend be replicated into all configured and available backends? Generally that is desirable for fallback purposes, but to avoid too much duplication at the cost of performance on fallbacks this can be disabled.",
276
+ "default": true
277
+ },
278
+ "backendConfigurations": {
279
+ "type": "array",
280
+ "description": "A list of backends to be used in order of appearance. Each entry in that list should have the keys “backend” and “backendOptions” just as a top level backend configuration.",
281
+ "items": {
282
+ "$ref": "#/definitions/backendWithOptions"
283
+ },
284
+ "default": []
285
+ },
286
+ "debug": {
287
+ "type": "boolean",
288
+ "description": "Switch on debug mode which will throw any errors happening in sub backends. Use this in development to make sure everything works as expected.",
289
+ "default": false
290
+ },
291
+ "defaultLifetime": {
292
+ "$ref": "#/definitions/defaultLifetime"
293
+ }
294
+ }
295
+ }
296
+ }
297
+ }
298
+ ]
299
+ },
300
+ "defaultLifetime": {
301
+ "type": "integer",
302
+ "default": 3600,
303
+ "description": "Default lifetime in seconds of a cache entry if it is not specified for a specific entry on set()"
304
+ }
305
+ }
306
+ }