actionpack 7.0.8.1 → 7.2.2.1

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. checksums.yaml +4 -4
  2. data/CHANGELOG.md +94 -500
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +2 -2
  5. data/lib/abstract_controller/asset_paths.rb +2 -0
  6. data/lib/abstract_controller/base.rb +119 -106
  7. data/lib/abstract_controller/caching/fragments.rb +51 -52
  8. data/lib/abstract_controller/caching.rb +2 -0
  9. data/lib/abstract_controller/callbacks.rb +94 -67
  10. data/lib/abstract_controller/collector.rb +6 -6
  11. data/lib/abstract_controller/deprecator.rb +9 -0
  12. data/lib/abstract_controller/error.rb +2 -0
  13. data/lib/abstract_controller/helpers.rb +121 -91
  14. data/lib/abstract_controller/logger.rb +2 -0
  15. data/lib/abstract_controller/railties/routes_helpers.rb +3 -16
  16. data/lib/abstract_controller/rendering.rb +14 -13
  17. data/lib/abstract_controller/translation.rb +12 -30
  18. data/lib/abstract_controller/url_for.rb +9 -5
  19. data/lib/abstract_controller.rb +8 -0
  20. data/lib/action_controller/api/api_rendering.rb +2 -0
  21. data/lib/action_controller/api.rb +78 -73
  22. data/lib/action_controller/base.rb +199 -141
  23. data/lib/action_controller/caching.rb +16 -11
  24. data/lib/action_controller/deprecator.rb +9 -0
  25. data/lib/action_controller/form_builder.rb +21 -16
  26. data/lib/action_controller/log_subscriber.rb +19 -5
  27. data/lib/action_controller/metal/allow_browser.rb +123 -0
  28. data/lib/action_controller/metal/basic_implicit_render.rb +2 -0
  29. data/lib/action_controller/metal/conditional_get.rb +187 -174
  30. data/lib/action_controller/metal/content_security_policy.rb +26 -25
  31. data/lib/action_controller/metal/cookies.rb +4 -2
  32. data/lib/action_controller/metal/data_streaming.rb +65 -54
  33. data/lib/action_controller/metal/default_headers.rb +6 -2
  34. data/lib/action_controller/metal/etag_with_flash.rb +4 -0
  35. data/lib/action_controller/metal/etag_with_template_digest.rb +18 -14
  36. data/lib/action_controller/metal/exceptions.rb +19 -9
  37. data/lib/action_controller/metal/flash.rb +12 -10
  38. data/lib/action_controller/metal/head.rb +20 -16
  39. data/lib/action_controller/metal/helpers.rb +64 -67
  40. data/lib/action_controller/metal/http_authentication.rb +214 -200
  41. data/lib/action_controller/metal/implicit_render.rb +21 -17
  42. data/lib/action_controller/metal/instrumentation.rb +22 -12
  43. data/lib/action_controller/metal/live.rb +125 -92
  44. data/lib/action_controller/metal/logging.rb +6 -4
  45. data/lib/action_controller/metal/mime_responds.rb +151 -142
  46. data/lib/action_controller/metal/parameter_encoding.rb +34 -32
  47. data/lib/action_controller/metal/params_wrapper.rb +58 -58
  48. data/lib/action_controller/metal/permissions_policy.rb +14 -13
  49. data/lib/action_controller/metal/rate_limiting.rb +62 -0
  50. data/lib/action_controller/metal/redirecting.rb +110 -84
  51. data/lib/action_controller/metal/renderers.rb +50 -49
  52. data/lib/action_controller/metal/rendering.rb +103 -82
  53. data/lib/action_controller/metal/request_forgery_protection.rb +279 -161
  54. data/lib/action_controller/metal/rescue.rb +12 -8
  55. data/lib/action_controller/metal/streaming.rb +174 -132
  56. data/lib/action_controller/metal/strong_parameters.rb +598 -473
  57. data/lib/action_controller/metal/testing.rb +2 -0
  58. data/lib/action_controller/metal/url_for.rb +23 -14
  59. data/lib/action_controller/metal.rb +145 -61
  60. data/lib/action_controller/railtie.rb +25 -9
  61. data/lib/action_controller/railties/helpers.rb +2 -0
  62. data/lib/action_controller/renderer.rb +105 -66
  63. data/lib/action_controller/template_assertions.rb +4 -2
  64. data/lib/action_controller/test_case.rb +157 -128
  65. data/lib/action_controller.rb +17 -3
  66. data/lib/action_dispatch/constants.rb +34 -0
  67. data/lib/action_dispatch/deprecator.rb +9 -0
  68. data/lib/action_dispatch/http/cache.rb +28 -29
  69. data/lib/action_dispatch/http/content_disposition.rb +2 -0
  70. data/lib/action_dispatch/http/content_security_policy.rb +69 -49
  71. data/lib/action_dispatch/http/filter_parameters.rb +27 -12
  72. data/lib/action_dispatch/http/filter_redirect.rb +22 -1
  73. data/lib/action_dispatch/http/headers.rb +23 -21
  74. data/lib/action_dispatch/http/mime_negotiation.rb +37 -48
  75. data/lib/action_dispatch/http/mime_type.rb +60 -30
  76. data/lib/action_dispatch/http/mime_types.rb +5 -1
  77. data/lib/action_dispatch/http/parameters.rb +12 -10
  78. data/lib/action_dispatch/http/permissions_policy.rb +32 -34
  79. data/lib/action_dispatch/http/rack_cache.rb +4 -0
  80. data/lib/action_dispatch/http/request.rb +132 -79
  81. data/lib/action_dispatch/http/response.rb +136 -103
  82. data/lib/action_dispatch/http/upload.rb +19 -15
  83. data/lib/action_dispatch/http/url.rb +75 -73
  84. data/lib/action_dispatch/journey/formatter.rb +19 -6
  85. data/lib/action_dispatch/journey/gtg/builder.rb +4 -3
  86. data/lib/action_dispatch/journey/gtg/simulator.rb +2 -0
  87. data/lib/action_dispatch/journey/gtg/transition_table.rb +10 -8
  88. data/lib/action_dispatch/journey/nfa/dot.rb +2 -0
  89. data/lib/action_dispatch/journey/nodes/node.rb +6 -5
  90. data/lib/action_dispatch/journey/parser.rb +4 -3
  91. data/lib/action_dispatch/journey/parser_extras.rb +2 -0
  92. data/lib/action_dispatch/journey/path/pattern.rb +18 -15
  93. data/lib/action_dispatch/journey/route.rb +12 -9
  94. data/lib/action_dispatch/journey/router/utils.rb +16 -15
  95. data/lib/action_dispatch/journey/router.rb +13 -10
  96. data/lib/action_dispatch/journey/routes.rb +6 -4
  97. data/lib/action_dispatch/journey/scanner.rb +4 -2
  98. data/lib/action_dispatch/journey/visitors.rb +2 -0
  99. data/lib/action_dispatch/journey.rb +2 -0
  100. data/lib/action_dispatch/log_subscriber.rb +25 -0
  101. data/lib/action_dispatch/middleware/actionable_exceptions.rb +7 -6
  102. data/lib/action_dispatch/middleware/assume_ssl.rb +27 -0
  103. data/lib/action_dispatch/middleware/callbacks.rb +4 -0
  104. data/lib/action_dispatch/middleware/cookies.rb +192 -194
  105. data/lib/action_dispatch/middleware/debug_exceptions.rb +36 -27
  106. data/lib/action_dispatch/middleware/debug_locks.rb +18 -13
  107. data/lib/action_dispatch/middleware/debug_view.rb +9 -2
  108. data/lib/action_dispatch/middleware/exception_wrapper.rb +181 -27
  109. data/lib/action_dispatch/middleware/executor.rb +9 -1
  110. data/lib/action_dispatch/middleware/flash.rb +65 -46
  111. data/lib/action_dispatch/middleware/host_authorization.rb +22 -17
  112. data/lib/action_dispatch/middleware/public_exceptions.rb +12 -8
  113. data/lib/action_dispatch/middleware/reloader.rb +9 -5
  114. data/lib/action_dispatch/middleware/remote_ip.rb +88 -83
  115. data/lib/action_dispatch/middleware/request_id.rb +15 -8
  116. data/lib/action_dispatch/middleware/server_timing.rb +8 -6
  117. data/lib/action_dispatch/middleware/session/abstract_store.rb +7 -0
  118. data/lib/action_dispatch/middleware/session/cache_store.rb +14 -7
  119. data/lib/action_dispatch/middleware/session/cookie_store.rb +32 -25
  120. data/lib/action_dispatch/middleware/session/mem_cache_store.rb +9 -3
  121. data/lib/action_dispatch/middleware/show_exceptions.rb +42 -28
  122. data/lib/action_dispatch/middleware/ssl.rb +60 -45
  123. data/lib/action_dispatch/middleware/stack.rb +15 -9
  124. data/lib/action_dispatch/middleware/static.rb +40 -34
  125. data/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb +2 -2
  126. data/lib/action_dispatch/middleware/templates/rescues/_message_and_suggestions.html.erb +4 -4
  127. data/lib/action_dispatch/middleware/templates/rescues/_source.html.erb +8 -1
  128. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb +7 -7
  129. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb +2 -2
  130. data/lib/action_dispatch/middleware/templates/rescues/layout.erb +17 -0
  131. data/lib/action_dispatch/middleware/templates/rescues/missing_exact_template.html.erb +16 -12
  132. data/lib/action_dispatch/middleware/templates/rescues/missing_template.html.erb +1 -1
  133. data/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb +3 -3
  134. data/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb +4 -4
  135. data/lib/action_dispatch/middleware/templates/rescues/unknown_action.html.erb +1 -1
  136. data/lib/action_dispatch/middleware/templates/rescues/unknown_action.text.erb +1 -1
  137. data/lib/action_dispatch/middleware/templates/routes/_route.html.erb +3 -0
  138. data/lib/action_dispatch/middleware/templates/routes/_table.html.erb +47 -38
  139. data/lib/action_dispatch/railtie.rb +12 -4
  140. data/lib/action_dispatch/request/session.rb +39 -27
  141. data/lib/action_dispatch/request/utils.rb +10 -3
  142. data/lib/action_dispatch/routing/endpoint.rb +2 -0
  143. data/lib/action_dispatch/routing/inspector.rb +59 -9
  144. data/lib/action_dispatch/routing/mapper.rb +686 -639
  145. data/lib/action_dispatch/routing/polymorphic_routes.rb +70 -61
  146. data/lib/action_dispatch/routing/redirection.rb +52 -38
  147. data/lib/action_dispatch/routing/route_set.rb +106 -62
  148. data/lib/action_dispatch/routing/routes_proxy.rb +16 -19
  149. data/lib/action_dispatch/routing/url_for.rb +131 -122
  150. data/lib/action_dispatch/routing.rb +152 -150
  151. data/lib/action_dispatch/system_test_case.rb +91 -81
  152. data/lib/action_dispatch/system_testing/browser.rb +27 -19
  153. data/lib/action_dispatch/system_testing/driver.rb +16 -22
  154. data/lib/action_dispatch/system_testing/server.rb +2 -0
  155. data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +53 -31
  156. data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +2 -0
  157. data/lib/action_dispatch/testing/assertion_response.rb +9 -7
  158. data/lib/action_dispatch/testing/assertions/response.rb +36 -26
  159. data/lib/action_dispatch/testing/assertions/routing.rb +203 -95
  160. data/lib/action_dispatch/testing/assertions.rb +5 -1
  161. data/lib/action_dispatch/testing/integration.rb +240 -229
  162. data/lib/action_dispatch/testing/request_encoder.rb +6 -1
  163. data/lib/action_dispatch/testing/test_helpers/page_dump_helper.rb +35 -0
  164. data/lib/action_dispatch/testing/test_process.rb +14 -9
  165. data/lib/action_dispatch/testing/test_request.rb +4 -2
  166. data/lib/action_dispatch/testing/test_response.rb +34 -19
  167. data/lib/action_dispatch.rb +52 -21
  168. data/lib/action_pack/gem_version.rb +5 -3
  169. data/lib/action_pack/version.rb +3 -1
  170. data/lib/action_pack.rb +18 -17
  171. metadata +91 -32
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.8.1
4
+ version: 7.2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-21 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,34 +16,76 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 7.0.8.1
19
+ version: 7.2.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 7.0.8.1
26
+ version: 7.2.2.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: rack
28
+ name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.5
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
32
39
  - !ruby/object:Gem::Version
33
- version: '2.0'
40
+ version: 1.8.5
41
+ - !ruby/object:Gem::Dependency
42
+ name: racc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
34
45
  - - ">="
35
46
  - !ruby/object:Gem::Version
36
- version: 2.2.4
47
+ version: '0'
37
48
  type: :runtime
38
49
  prerelease: false
39
50
  version_requirements: !ruby/object:Gem::Requirement
40
51
  requirements:
41
- - - "~>"
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rack
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
42
60
  - !ruby/object:Gem::Version
43
- version: '2.0'
61
+ version: 2.2.4
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '3.2'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
44
69
  - - ">="
45
70
  - !ruby/object:Gem::Version
46
71
  version: 2.2.4
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.2'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rack-session
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.0.1
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0.1
47
89
  - !ruby/object:Gem::Dependency
48
90
  name: rack-test
49
91
  requirement: !ruby/object:Gem::Requirement
@@ -64,62 +106,70 @@ dependencies:
64
106
  requirements:
65
107
  - - "~>"
66
108
  - !ruby/object:Gem::Version
67
- version: '1.0'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 1.2.0
109
+ version: '1.6'
71
110
  type: :runtime
72
111
  prerelease: false
73
112
  version_requirements: !ruby/object:Gem::Requirement
74
113
  requirements:
75
114
  - - "~>"
76
115
  - !ruby/object:Gem::Version
77
- version: '1.0'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 1.2.0
116
+ version: '1.6'
81
117
  - !ruby/object:Gem::Dependency
82
118
  name: rails-dom-testing
83
119
  requirement: !ruby/object:Gem::Requirement
84
120
  requirements:
85
121
  - - "~>"
86
122
  - !ruby/object:Gem::Version
87
- version: '2.0'
123
+ version: '2.2'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.2'
131
+ - !ruby/object:Gem::Dependency
132
+ name: useragent
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.16'
88
138
  type: :runtime
89
139
  prerelease: false
90
140
  version_requirements: !ruby/object:Gem::Requirement
91
141
  requirements:
92
142
  - - "~>"
93
143
  - !ruby/object:Gem::Version
94
- version: '2.0'
144
+ version: '0.16'
95
145
  - !ruby/object:Gem::Dependency
96
146
  name: actionview
97
147
  requirement: !ruby/object:Gem::Requirement
98
148
  requirements:
99
149
  - - '='
100
150
  - !ruby/object:Gem::Version
101
- version: 7.0.8.1
151
+ version: 7.2.2.1
102
152
  type: :runtime
103
153
  prerelease: false
104
154
  version_requirements: !ruby/object:Gem::Requirement
105
155
  requirements:
106
156
  - - '='
107
157
  - !ruby/object:Gem::Version
108
- version: 7.0.8.1
158
+ version: 7.2.2.1
109
159
  - !ruby/object:Gem::Dependency
110
160
  name: activemodel
111
161
  requirement: !ruby/object:Gem::Requirement
112
162
  requirements:
113
163
  - - '='
114
164
  - !ruby/object:Gem::Version
115
- version: 7.0.8.1
165
+ version: 7.2.2.1
116
166
  type: :development
117
167
  prerelease: false
118
168
  version_requirements: !ruby/object:Gem::Requirement
119
169
  requirements:
120
170
  - - '='
121
171
  - !ruby/object:Gem::Version
122
- version: 7.0.8.1
172
+ version: 7.2.2.1
123
173
  description: Web apps on Rails. Simple, battle-tested conventions for building and
124
174
  testing MVC web applications. Works with any Rack-compatible server.
125
175
  email: david@loudthinking.com
@@ -137,6 +187,7 @@ files:
137
187
  - lib/abstract_controller/caching/fragments.rb
138
188
  - lib/abstract_controller/callbacks.rb
139
189
  - lib/abstract_controller/collector.rb
190
+ - lib/abstract_controller/deprecator.rb
140
191
  - lib/abstract_controller/error.rb
141
192
  - lib/abstract_controller/helpers.rb
142
193
  - lib/abstract_controller/logger.rb
@@ -149,9 +200,11 @@ files:
149
200
  - lib/action_controller/api/api_rendering.rb
150
201
  - lib/action_controller/base.rb
151
202
  - lib/action_controller/caching.rb
203
+ - lib/action_controller/deprecator.rb
152
204
  - lib/action_controller/form_builder.rb
153
205
  - lib/action_controller/log_subscriber.rb
154
206
  - lib/action_controller/metal.rb
207
+ - lib/action_controller/metal/allow_browser.rb
155
208
  - lib/action_controller/metal/basic_implicit_render.rb
156
209
  - lib/action_controller/metal/conditional_get.rb
157
210
  - lib/action_controller/metal/content_security_policy.rb
@@ -173,6 +226,7 @@ files:
173
226
  - lib/action_controller/metal/parameter_encoding.rb
174
227
  - lib/action_controller/metal/params_wrapper.rb
175
228
  - lib/action_controller/metal/permissions_policy.rb
229
+ - lib/action_controller/metal/rate_limiting.rb
176
230
  - lib/action_controller/metal/redirecting.rb
177
231
  - lib/action_controller/metal/renderers.rb
178
232
  - lib/action_controller/metal/rendering.rb
@@ -188,6 +242,8 @@ files:
188
242
  - lib/action_controller/template_assertions.rb
189
243
  - lib/action_controller/test_case.rb
190
244
  - lib/action_dispatch.rb
245
+ - lib/action_dispatch/constants.rb
246
+ - lib/action_dispatch/deprecator.rb
191
247
  - lib/action_dispatch/http/cache.rb
192
248
  - lib/action_dispatch/http/content_disposition.rb
193
249
  - lib/action_dispatch/http/content_security_policy.rb
@@ -224,7 +280,9 @@ files:
224
280
  - lib/action_dispatch/journey/visualizer/fsm.css
225
281
  - lib/action_dispatch/journey/visualizer/fsm.js
226
282
  - lib/action_dispatch/journey/visualizer/index.html.erb
283
+ - lib/action_dispatch/log_subscriber.rb
227
284
  - lib/action_dispatch/middleware/actionable_exceptions.rb
285
+ - lib/action_dispatch/middleware/assume_ssl.rb
228
286
  - lib/action_dispatch/middleware/callbacks.rb
229
287
  - lib/action_dispatch/middleware/cookies.rb
230
288
  - lib/action_dispatch/middleware/debug_exceptions.rb
@@ -299,6 +357,7 @@ files:
299
357
  - lib/action_dispatch/testing/assertions/routing.rb
300
358
  - lib/action_dispatch/testing/integration.rb
301
359
  - lib/action_dispatch/testing/request_encoder.rb
360
+ - lib/action_dispatch/testing/test_helpers/page_dump_helper.rb
302
361
  - lib/action_dispatch/testing/test_process.rb
303
362
  - lib/action_dispatch/testing/test_request.rb
304
363
  - lib/action_dispatch/testing/test_response.rb
@@ -310,12 +369,12 @@ licenses:
310
369
  - MIT
311
370
  metadata:
312
371
  bug_tracker_uri: https://github.com/rails/rails/issues
313
- changelog_uri: https://github.com/rails/rails/blob/v7.0.8.1/actionpack/CHANGELOG.md
314
- documentation_uri: https://api.rubyonrails.org/v7.0.8.1/
372
+ changelog_uri: https://github.com/rails/rails/blob/v7.2.2.1/actionpack/CHANGELOG.md
373
+ documentation_uri: https://api.rubyonrails.org/v7.2.2.1/
315
374
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
316
- source_code_uri: https://github.com/rails/rails/tree/v7.0.8.1/actionpack
375
+ source_code_uri: https://github.com/rails/rails/tree/v7.2.2.1/actionpack
317
376
  rubygems_mfa_required: 'true'
318
- post_install_message:
377
+ post_install_message:
319
378
  rdoc_options: []
320
379
  require_paths:
321
380
  - lib
@@ -323,7 +382,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
323
382
  requirements:
324
383
  - - ">="
325
384
  - !ruby/object:Gem::Version
326
- version: 2.7.0
385
+ version: 3.1.0
327
386
  required_rubygems_version: !ruby/object:Gem::Requirement
328
387
  requirements:
329
388
  - - ">="
@@ -331,8 +390,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
331
390
  version: '0'
332
391
  requirements:
333
392
  - none
334
- rubygems_version: 3.2.22
335
- signing_key:
393
+ rubygems_version: 3.5.22
394
+ signing_key:
336
395
  specification_version: 4
337
396
  summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
338
397
  test_files: []