trmnl_preview 0.7.1 → 0.8.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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -1
  3. data/README.md +180 -5
  4. data/bin/rake +6 -6
  5. data/bin/trmnlp +1 -0
  6. data/db/data/form_fields.yml +24 -0
  7. data/db/data/framework_versions.yml +72 -0
  8. data/lib/trmnlp/api_client.rb +41 -28
  9. data/lib/trmnlp/app.rb +73 -44
  10. data/lib/trmnlp/browser_pool.rb +82 -0
  11. data/lib/trmnlp/cli.rb +24 -11
  12. data/lib/trmnlp/commands/base.rb +33 -10
  13. data/lib/trmnlp/commands/build.rb +13 -8
  14. data/lib/trmnlp/commands/clone.rb +12 -7
  15. data/lib/trmnlp/commands/init.rb +17 -13
  16. data/lib/trmnlp/commands/lint.rb +42 -0
  17. data/lib/trmnlp/commands/list.rb +40 -0
  18. data/lib/trmnlp/commands/login.rb +28 -13
  19. data/lib/trmnlp/commands/pull.rb +14 -6
  20. data/lib/trmnlp/commands/push.rb +29 -19
  21. data/lib/trmnlp/commands/serve.rb +32 -3
  22. data/lib/trmnlp/commands.rb +3 -1
  23. data/lib/trmnlp/config/app.rb +6 -3
  24. data/lib/trmnlp/config/plugin.rb +56 -14
  25. data/lib/trmnlp/config/project.rb +59 -7
  26. data/lib/trmnlp/config.rb +3 -1
  27. data/lib/trmnlp/context.rb +21 -224
  28. data/lib/trmnlp/errors.rb +15 -0
  29. data/lib/trmnlp/form_field.rb +42 -0
  30. data/lib/trmnlp/framework_version.rb +69 -0
  31. data/lib/trmnlp/image_quantizer.rb +58 -0
  32. data/lib/trmnlp/lint/check.rb +31 -0
  33. data/lib/trmnlp/lint/checks/custom_fields_used.rb +32 -0
  34. data/lib/trmnlp/lint/checks/form_fields_valid.rb +20 -0
  35. data/lib/trmnlp/lint/checks/highcharts_animations_disabled.rb +23 -0
  36. data/lib/trmnlp/lint/checks/highcharts_elements_unique.rb +24 -0
  37. data/lib/trmnlp/lint/checks/image_links_reachable.rb +53 -0
  38. data/lib/trmnlp/lint/checks/layouts_have_content.rb +24 -0
  39. data/lib/trmnlp/lint/checks/limited_inline_styles.rb +26 -0
  40. data/lib/trmnlp/lint/checks/no_async_functions.rb +18 -0
  41. data/lib/trmnlp/lint/checks/no_opacity.rb +19 -0
  42. data/lib/trmnlp/lint/checks/no_size_classes.rb +19 -0
  43. data/lib/trmnlp/lint/checks/title_casing.rb +20 -0
  44. data/lib/trmnlp/lint/checks/title_length.rb +18 -0
  45. data/lib/trmnlp/lint/checks/waits_for_dom_load.rb +23 -0
  46. data/lib/trmnlp/lint/source.rb +42 -0
  47. data/lib/trmnlp/lint.rb +39 -0
  48. data/lib/trmnlp/paths.rb +28 -8
  49. data/lib/trmnlp/poller.rb +105 -0
  50. data/lib/trmnlp/renderer.rb +87 -0
  51. data/lib/trmnlp/reporter.rb +28 -0
  52. data/lib/trmnlp/screen.rb +16 -0
  53. data/lib/trmnlp/screen_generator.rb +11 -217
  54. data/lib/trmnlp/screenshot.rb +96 -0
  55. data/lib/trmnlp/transform_backend/http.rb +107 -0
  56. data/lib/trmnlp/transform_backend/subprocess.rb +130 -0
  57. data/lib/trmnlp/transform_backend/wrapper.rb +113 -0
  58. data/lib/trmnlp/transform_client.rb +47 -0
  59. data/lib/trmnlp/transform_pipeline.rb +65 -0
  60. data/lib/trmnlp/user_data_assembler.rb +96 -0
  61. data/lib/trmnlp/version.rb +1 -1
  62. data/lib/trmnlp/watcher.rb +60 -0
  63. data/lib/trmnlp.rb +6 -10
  64. data/templates/init/bin/trmnlp +1 -1
  65. data/templates/init/src/settings.yml +1 -0
  66. data/templates/init/src/transform.py.example +14 -0
  67. data/trmnl_preview.gemspec +34 -34
  68. data/web/public/index.css +6 -0
  69. data/web/public/index.js +31 -18
  70. data/web/views/index.erb +6 -1
  71. data/web/views/render_html.erb +4 -2
  72. metadata +81 -56
metadata CHANGED
@@ -1,28 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trmnl_preview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rockwell Schrock
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-02-02 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: sinatra
13
+ name: puma
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '4.1'
18
+ version: '8.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '4.1'
25
+ version: '8.0'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rackup
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -38,33 +38,19 @@ dependencies:
38
38
  - !ruby/object:Gem::Version
39
39
  version: '2.2'
40
40
  - !ruby/object:Gem::Dependency
41
- name: puma
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '6.5'
47
- type: :runtime
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '6.5'
54
- - !ruby/object:Gem::Dependency
55
- name: faye-websocket
41
+ name: sinatra
56
42
  requirement: !ruby/object:Gem::Requirement
57
43
  requirements:
58
44
  - - "~>"
59
45
  - !ruby/object:Gem::Version
60
- version: 0.11.3
46
+ version: '4.1'
61
47
  type: :runtime
62
48
  prerelease: false
63
49
  version_requirements: !ruby/object:Gem::Requirement
64
50
  requirements:
65
51
  - - "~>"
66
52
  - !ruby/object:Gem::Version
67
- version: 0.11.3
53
+ version: '4.1'
68
54
  - !ruby/object:Gem::Dependency
69
55
  name: activesupport
70
56
  requirement: !ruby/object:Gem::Requirement
@@ -85,56 +71,56 @@ dependencies:
85
71
  requirements:
86
72
  - - "~>"
87
73
  - !ruby/object:Gem::Version
88
- version: 0.4.0
74
+ version: 0.7.0
89
75
  type: :runtime
90
76
  prerelease: false
91
77
  version_requirements: !ruby/object:Gem::Requirement
92
78
  requirements:
93
79
  - - "~>"
94
80
  - !ruby/object:Gem::Version
95
- version: 0.4.0
81
+ version: 0.7.0
96
82
  - !ruby/object:Gem::Dependency
97
- name: selenium-webdriver
83
+ name: mini_magick
98
84
  requirement: !ruby/object:Gem::Requirement
99
85
  requirements:
100
86
  - - "~>"
101
87
  - !ruby/object:Gem::Version
102
- version: '4.39'
88
+ version: '5.3'
103
89
  type: :runtime
104
90
  prerelease: false
105
91
  version_requirements: !ruby/object:Gem::Requirement
106
92
  requirements:
107
93
  - - "~>"
108
94
  - !ruby/object:Gem::Version
109
- version: '4.39'
95
+ version: '5.3'
110
96
  - !ruby/object:Gem::Dependency
111
- name: mini_magick
97
+ name: selenium-webdriver
112
98
  requirement: !ruby/object:Gem::Requirement
113
99
  requirements:
114
100
  - - "~>"
115
101
  - !ruby/object:Gem::Version
116
- version: 4.12.0
102
+ version: '4.44'
117
103
  type: :runtime
118
104
  prerelease: false
119
105
  version_requirements: !ruby/object:Gem::Requirement
120
106
  requirements:
121
107
  - - "~>"
122
108
  - !ruby/object:Gem::Version
123
- version: 4.12.0
109
+ version: '4.44'
124
110
  - !ruby/object:Gem::Dependency
125
- name: filewatcher
111
+ name: cgi
126
112
  requirement: !ruby/object:Gem::Requirement
127
113
  requirements:
128
114
  - - "~>"
129
115
  - !ruby/object:Gem::Version
130
- version: '2.1'
116
+ version: '0.5'
131
117
  type: :runtime
132
118
  prerelease: false
133
119
  version_requirements: !ruby/object:Gem::Requirement
134
120
  requirements:
135
121
  - - "~>"
136
122
  - !ruby/object:Gem::Version
137
- version: '2.1'
123
+ version: '0.5'
138
124
  - !ruby/object:Gem::Dependency
139
125
  name: faraday
140
126
  requirement: !ruby/object:Gem::Requirement
@@ -164,103 +150,103 @@ dependencies:
164
150
  - !ruby/object:Gem::Version
165
151
  version: '1.1'
166
152
  - !ruby/object:Gem::Dependency
167
- name: xdg
153
+ name: filewatcher
168
154
  requirement: !ruby/object:Gem::Requirement
169
155
  requirements:
170
156
  - - "~>"
171
157
  - !ruby/object:Gem::Version
172
- version: '9.1'
158
+ version: '3.0'
173
159
  type: :runtime
174
160
  prerelease: false
175
161
  version_requirements: !ruby/object:Gem::Requirement
176
162
  requirements:
177
163
  - - "~>"
178
164
  - !ruby/object:Gem::Version
179
- version: '9.1'
165
+ version: '3.0'
180
166
  - !ruby/object:Gem::Dependency
181
- name: rubyzip
167
+ name: oj
182
168
  requirement: !ruby/object:Gem::Requirement
183
169
  requirements:
184
170
  - - "~>"
185
171
  - !ruby/object:Gem::Version
186
- version: 2.3.0
172
+ version: '3.17'
187
173
  type: :runtime
188
174
  prerelease: false
189
175
  version_requirements: !ruby/object:Gem::Requirement
190
176
  requirements:
191
177
  - - "~>"
192
178
  - !ruby/object:Gem::Version
193
- version: 2.3.0
179
+ version: '3.17'
194
180
  - !ruby/object:Gem::Dependency
195
- name: thor
181
+ name: rexml
196
182
  requirement: !ruby/object:Gem::Requirement
197
183
  requirements:
198
184
  - - "~>"
199
185
  - !ruby/object:Gem::Version
200
- version: '1.3'
186
+ version: '3.4'
201
187
  type: :runtime
202
188
  prerelease: false
203
189
  version_requirements: !ruby/object:Gem::Requirement
204
190
  requirements:
205
191
  - - "~>"
206
192
  - !ruby/object:Gem::Version
207
- version: '1.3'
193
+ version: '3.4'
208
194
  - !ruby/object:Gem::Dependency
209
- name: oj
195
+ name: rubyzip
210
196
  requirement: !ruby/object:Gem::Requirement
211
197
  requirements:
212
198
  - - "~>"
213
199
  - !ruby/object:Gem::Version
214
- version: 3.16.9
200
+ version: '3.3'
215
201
  type: :runtime
216
202
  prerelease: false
217
203
  version_requirements: !ruby/object:Gem::Requirement
218
204
  requirements:
219
205
  - - "~>"
220
206
  - !ruby/object:Gem::Version
221
- version: 3.16.9
207
+ version: '3.3'
222
208
  - !ruby/object:Gem::Dependency
223
- name: tzinfo-data
209
+ name: thor
224
210
  requirement: !ruby/object:Gem::Requirement
225
211
  requirements:
226
212
  - - "~>"
227
213
  - !ruby/object:Gem::Version
228
- version: '1.2025'
214
+ version: '1.3'
229
215
  type: :runtime
230
216
  prerelease: false
231
217
  version_requirements: !ruby/object:Gem::Requirement
232
218
  requirements:
233
219
  - - "~>"
234
220
  - !ruby/object:Gem::Version
235
- version: '1.2025'
221
+ version: '1.3'
236
222
  - !ruby/object:Gem::Dependency
237
- name: pathname
223
+ name: tzinfo-data
238
224
  requirement: !ruby/object:Gem::Requirement
239
225
  requirements:
240
226
  - - "~>"
241
227
  - !ruby/object:Gem::Version
242
- version: '0.4'
228
+ version: '1.2025'
243
229
  type: :runtime
244
230
  prerelease: false
245
231
  version_requirements: !ruby/object:Gem::Requirement
246
232
  requirements:
247
233
  - - "~>"
248
234
  - !ruby/object:Gem::Version
249
- version: '0.4'
235
+ version: '1.2025'
250
236
  - !ruby/object:Gem::Dependency
251
- name: rexml
237
+ name: xdg
252
238
  requirement: !ruby/object:Gem::Requirement
253
239
  requirements:
254
240
  - - "~>"
255
241
  - !ruby/object:Gem::Version
256
- version: '3.4'
242
+ version: '10.2'
257
243
  type: :runtime
258
244
  prerelease: false
259
245
  version_requirements: !ruby/object:Gem::Requirement
260
246
  requirements:
261
247
  - - "~>"
262
248
  - !ruby/object:Gem::Version
263
- version: '3.4'
249
+ version: '10.2'
264
250
  description: Automatically rebuild and preview TRNML plugins in multiple views
265
251
  email:
266
252
  - rockwell@schrock.me
@@ -274,15 +260,20 @@ files:
274
260
  - README.md
275
261
  - bin/rake
276
262
  - bin/trmnlp
263
+ - db/data/form_fields.yml
264
+ - db/data/framework_versions.yml
277
265
  - lib/trmnlp.rb
278
266
  - lib/trmnlp/api_client.rb
279
267
  - lib/trmnlp/app.rb
268
+ - lib/trmnlp/browser_pool.rb
280
269
  - lib/trmnlp/cli.rb
281
270
  - lib/trmnlp/commands.rb
282
271
  - lib/trmnlp/commands/base.rb
283
272
  - lib/trmnlp/commands/build.rb
284
273
  - lib/trmnlp/commands/clone.rb
285
274
  - lib/trmnlp/commands/init.rb
275
+ - lib/trmnlp/commands/lint.rb
276
+ - lib/trmnlp/commands/list.rb
286
277
  - lib/trmnlp/commands/login.rb
287
278
  - lib/trmnlp/commands/pull.rb
288
279
  - lib/trmnlp/commands/push.rb
@@ -292,9 +283,41 @@ files:
292
283
  - lib/trmnlp/config/plugin.rb
293
284
  - lib/trmnlp/config/project.rb
294
285
  - lib/trmnlp/context.rb
286
+ - lib/trmnlp/errors.rb
287
+ - lib/trmnlp/form_field.rb
288
+ - lib/trmnlp/framework_version.rb
289
+ - lib/trmnlp/image_quantizer.rb
290
+ - lib/trmnlp/lint.rb
291
+ - lib/trmnlp/lint/check.rb
292
+ - lib/trmnlp/lint/checks/custom_fields_used.rb
293
+ - lib/trmnlp/lint/checks/form_fields_valid.rb
294
+ - lib/trmnlp/lint/checks/highcharts_animations_disabled.rb
295
+ - lib/trmnlp/lint/checks/highcharts_elements_unique.rb
296
+ - lib/trmnlp/lint/checks/image_links_reachable.rb
297
+ - lib/trmnlp/lint/checks/layouts_have_content.rb
298
+ - lib/trmnlp/lint/checks/limited_inline_styles.rb
299
+ - lib/trmnlp/lint/checks/no_async_functions.rb
300
+ - lib/trmnlp/lint/checks/no_opacity.rb
301
+ - lib/trmnlp/lint/checks/no_size_classes.rb
302
+ - lib/trmnlp/lint/checks/title_casing.rb
303
+ - lib/trmnlp/lint/checks/title_length.rb
304
+ - lib/trmnlp/lint/checks/waits_for_dom_load.rb
305
+ - lib/trmnlp/lint/source.rb
295
306
  - lib/trmnlp/paths.rb
307
+ - lib/trmnlp/poller.rb
308
+ - lib/trmnlp/renderer.rb
309
+ - lib/trmnlp/reporter.rb
310
+ - lib/trmnlp/screen.rb
296
311
  - lib/trmnlp/screen_generator.rb
312
+ - lib/trmnlp/screenshot.rb
313
+ - lib/trmnlp/transform_backend/http.rb
314
+ - lib/trmnlp/transform_backend/subprocess.rb
315
+ - lib/trmnlp/transform_backend/wrapper.rb
316
+ - lib/trmnlp/transform_client.rb
317
+ - lib/trmnlp/transform_pipeline.rb
318
+ - lib/trmnlp/user_data_assembler.rb
297
319
  - lib/trmnlp/version.rb
320
+ - lib/trmnlp/watcher.rb
298
321
  - templates/init/.trmnlp.yml
299
322
  - templates/init/bin/trmnlp
300
323
  - templates/init/src/full.liquid
@@ -303,6 +326,7 @@ files:
303
326
  - templates/init/src/quadrant.liquid
304
327
  - templates/init/src/settings.yml
305
328
  - templates/init/src/shared.liquid
329
+ - templates/init/src/transform.py.example
306
330
  - trmnl_preview.gemspec
307
331
  - web/public/highlight/highlight.min.js
308
332
  - web/public/highlight/styles/atom-one-dark.min.css
@@ -318,6 +342,7 @@ metadata:
318
342
  allowed_push_host: https://rubygems.org
319
343
  homepage_uri: https://github.com/usetrmnl/trmnlp
320
344
  source_code_uri: https://github.com/usetrmnl/trmnlp
345
+ rubygems_mfa_required: 'true'
321
346
  rdoc_options: []
322
347
  require_paths:
323
348
  - lib
@@ -325,14 +350,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
325
350
  requirements:
326
351
  - - ">="
327
352
  - !ruby/object:Gem::Version
328
- version: 3.0.0
353
+ version: '3.4'
329
354
  required_rubygems_version: !ruby/object:Gem::Requirement
330
355
  requirements:
331
356
  - - ">="
332
357
  - !ruby/object:Gem::Version
333
358
  version: '0'
334
359
  requirements: []
335
- rubygems_version: 3.6.2
360
+ rubygems_version: 4.0.10
336
361
  specification_version: 4
337
362
  summary: Local web server to preview TRMNL plugins
338
363
  test_files: []