@loopress/cli 0.21.0 → 0.23.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 (103) hide show
  1. package/README.md +457 -67
  2. package/dist/commands/acf/list.d.ts +2 -2
  3. package/dist/commands/acf/list.js +2 -5
  4. package/dist/commands/acf/pull.js +9 -22
  5. package/dist/commands/acf/push.js +3 -6
  6. package/dist/commands/api/list.js +2 -1
  7. package/dist/commands/api/publish.js +6 -22
  8. package/dist/commands/api/pull.js +12 -17
  9. package/dist/commands/api/push.js +7 -10
  10. package/dist/commands/app/list.d.ts +17 -0
  11. package/dist/commands/app/list.js +35 -0
  12. package/dist/commands/app/pull.d.ts +27 -0
  13. package/dist/commands/app/pull.js +94 -0
  14. package/dist/commands/app/push.d.ts +28 -0
  15. package/dist/commands/app/push.js +130 -0
  16. package/dist/commands/app/remove.d.ts +20 -0
  17. package/dist/commands/app/remove.js +42 -0
  18. package/dist/commands/composer/push.d.ts +1 -0
  19. package/dist/commands/composer/push.js +43 -19
  20. package/dist/commands/dev.js +1 -1
  21. package/dist/commands/doctor.js +2 -1
  22. package/dist/commands/form/list.d.ts +2 -4
  23. package/dist/commands/form/list.js +3 -10
  24. package/dist/commands/form/pull.js +15 -24
  25. package/dist/commands/form/push.js +17 -42
  26. package/dist/commands/init.js +1 -0
  27. package/dist/commands/login.js +6 -2
  28. package/dist/commands/logout.js +2 -1
  29. package/dist/commands/page/pull.js +17 -28
  30. package/dist/commands/page/push.js +27 -52
  31. package/dist/commands/plugin/add.d.ts +1 -0
  32. package/dist/commands/plugin/add.js +18 -8
  33. package/dist/commands/plugin/audit.d.ts +30 -0
  34. package/dist/commands/plugin/audit.js +138 -0
  35. package/dist/commands/plugin/pull.d.ts +1 -1
  36. package/dist/commands/plugin/pull.js +13 -15
  37. package/dist/commands/plugin/push.d.ts +14 -5
  38. package/dist/commands/plugin/push.js +171 -60
  39. package/dist/commands/plugin/status.d.ts +22 -0
  40. package/dist/commands/plugin/status.js +65 -0
  41. package/dist/commands/project/config.js +4 -1
  42. package/dist/commands/project/list.d.ts +16 -1
  43. package/dist/commands/project/list.js +22 -16
  44. package/dist/commands/project/pull.js +3 -2
  45. package/dist/commands/project/push.d.ts +5 -0
  46. package/dist/commands/project/push.js +79 -58
  47. package/dist/commands/promote.d.ts +18 -0
  48. package/dist/commands/promote.js +90 -0
  49. package/dist/commands/pull.d.ts +12 -0
  50. package/dist/commands/pull.js +51 -0
  51. package/dist/commands/push.d.ts +13 -0
  52. package/dist/commands/push.js +57 -0
  53. package/dist/commands/seo/list.d.ts +9 -2
  54. package/dist/commands/seo/list.js +9 -11
  55. package/dist/commands/seo/pull.js +14 -37
  56. package/dist/commands/seo/push.js +24 -48
  57. package/dist/commands/snippet/list.js +2 -1
  58. package/dist/commands/snippet/publish.js +5 -21
  59. package/dist/commands/snippet/pull.js +15 -20
  60. package/dist/commands/snippet/push.js +21 -30
  61. package/dist/commands/theme/add.d.ts +13 -0
  62. package/dist/commands/theme/add.js +35 -0
  63. package/dist/commands/theme/pull.d.ts +21 -0
  64. package/dist/commands/theme/pull.js +37 -0
  65. package/dist/commands/theme/push.d.ts +23 -0
  66. package/dist/commands/theme/push.js +130 -0
  67. package/dist/commands/theme/status.d.ts +20 -0
  68. package/dist/commands/theme/status.js +51 -0
  69. package/dist/commands/validate.d.ts +8 -0
  70. package/dist/commands/validate.js +24 -0
  71. package/dist/lib/app-manifest.d.ts +36 -0
  72. package/dist/lib/app-manifest.js +162 -0
  73. package/dist/lib/base.d.ts +10 -0
  74. package/dist/lib/base.js +56 -22
  75. package/dist/lib/guard-production-push.d.ts +12 -0
  76. package/dist/lib/guard-production-push.js +20 -0
  77. package/dist/lib/load-snippets.js +65 -60
  78. package/dist/lib/local-callback-server.js +9 -4
  79. package/dist/lib/push-command.d.ts +3 -0
  80. package/dist/lib/push-command.js +22 -15
  81. package/dist/lib/put-or-create.d.ts +13 -0
  82. package/dist/lib/put-or-create.js +19 -0
  83. package/dist/lib/readdir-tolerant.d.ts +5 -0
  84. package/dist/lib/readdir-tolerant.js +11 -0
  85. package/dist/lib/resolve-linked-project.d.ts +8 -0
  86. package/dist/lib/resolve-linked-project.js +27 -0
  87. package/dist/lib/validate-local.d.ts +10 -0
  88. package/dist/lib/validate-local.js +183 -0
  89. package/dist/types/plugin.d.ts +1 -0
  90. package/dist/types/project-config.generated.d.ts +11 -1
  91. package/dist/utils/plugin-sync.d.ts +26 -0
  92. package/dist/utils/plugin-sync.js +31 -0
  93. package/dist/utils/plugins.d.ts +15 -2
  94. package/dist/utils/plugins.js +57 -12
  95. package/dist/utils/pluralize.d.ts +1 -0
  96. package/dist/utils/pluralize.js +5 -0
  97. package/dist/utils/themes.d.ts +30 -0
  98. package/dist/utils/themes.js +29 -0
  99. package/dist/utils/version.d.ts +2 -0
  100. package/dist/utils/version.js +21 -0
  101. package/oclif.manifest.json +986 -125
  102. package/package.json +25 -20
  103. package/schemas/project-config.schema.json +22 -4
package/README.md CHANGED
@@ -21,7 +21,7 @@ $ npm install -g @loopress/cli
21
21
  $ lps COMMAND
22
22
  running command...
23
23
  $ lps (--version)
24
- @loopress/cli/0.21.0 linux-x64 node-v24.18.0
24
+ @loopress/cli/0.23.0 linux-x64 node-v24.20.0
25
25
  $ lps --help [COMMAND]
26
26
  USAGE
27
27
  $ lps COMMAND
@@ -54,6 +54,10 @@ report.
54
54
  * [`lps api publish [PATH]`](#lps-api-publish-path)
55
55
  * [`lps api pull [PATH]`](#lps-api-pull-path)
56
56
  * [`lps api push [PATH]`](#lps-api-push-path)
57
+ * [`lps app list`](#lps-app-list)
58
+ * [`lps app pull [PATH]`](#lps-app-pull-path)
59
+ * [`lps app push [NAME]`](#lps-app-push-name)
60
+ * [`lps app remove NAME`](#lps-app-remove-name)
57
61
  * [`lps composer init`](#lps-composer-init)
58
62
  * [`lps composer pull`](#lps-composer-pull)
59
63
  * [`lps composer push`](#lps-composer-push)
@@ -70,8 +74,10 @@ report.
70
74
  * [`lps page pull [PATH]`](#lps-page-pull-path)
71
75
  * [`lps page push [PATH]`](#lps-page-push-path)
72
76
  * [`lps plugin add SLUG`](#lps-plugin-add-slug)
77
+ * [`lps plugin audit`](#lps-plugin-audit)
73
78
  * [`lps plugin pull`](#lps-plugin-pull)
74
79
  * [`lps plugin push`](#lps-plugin-push)
80
+ * [`lps plugin status`](#lps-plugin-status)
75
81
  * [`lps project config`](#lps-project-config)
76
82
  * [`lps project list`](#lps-project-list)
77
83
  * [`lps project pull`](#lps-project-pull)
@@ -79,6 +85,9 @@ report.
79
85
  * [`lps project remove`](#lps-project-remove)
80
86
  * [`lps project rotate`](#lps-project-rotate)
81
87
  * [`lps project switch`](#lps-project-switch)
88
+ * [`lps promote FROM TO`](#lps-promote-from-to)
89
+ * [`lps pull`](#lps-pull)
90
+ * [`lps push`](#lps-push)
82
91
  * [`lps seo list`](#lps-seo-list)
83
92
  * [`lps seo pull [PATH]`](#lps-seo-pull-path)
84
93
  * [`lps seo push [PATH]`](#lps-seo-push-path)
@@ -89,6 +98,11 @@ report.
89
98
  * [`lps status`](#lps-status)
90
99
  * [`lps telemetry disable`](#lps-telemetry-disable)
91
100
  * [`lps telemetry enable`](#lps-telemetry-enable)
101
+ * [`lps theme add SLUG`](#lps-theme-add-slug)
102
+ * [`lps theme pull`](#lps-theme-pull)
103
+ * [`lps theme push`](#lps-theme-push)
104
+ * [`lps theme status`](#lps-theme-status)
105
+ * [`lps validate`](#lps-validate)
92
106
 
93
107
  ## `lps acf list`
94
108
 
@@ -96,13 +110,15 @@ List ACF field groups, post types, taxonomies, and options pages from WordPress
96
110
 
97
111
  ```
98
112
  USAGE
99
- $ lps acf list [--env <value>] [-j] [--type field-groups|post-types|taxonomies|options-pages...]
113
+ $ lps acf list [--json] [--env <value>] [--type field-groups|post-types|taxonomies|options-pages...]
100
114
 
101
115
  FLAGS
102
- -j, --json Output in JSON format
103
- --env=<value> Target environment by name, overriding the globally active one (lps project switch)
104
- --type=<option>... Limit to specific ACF object types
105
- <options: field-groups|post-types|taxonomies|options-pages>
116
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
117
+ --type=<option>... Limit to specific ACF object types
118
+ <options: field-groups|post-types|taxonomies|options-pages>
119
+
120
+ GLOBAL FLAGS
121
+ --json Format output as json.
106
122
 
107
123
  DESCRIPTION
108
124
  List ACF field groups, post types, taxonomies, and options pages from WordPress
@@ -113,7 +129,7 @@ EXAMPLES
113
129
  $ lps acf list --type field-groups
114
130
  ```
115
131
 
116
- _See code: [src/commands/acf/list.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/acf/list.ts)_
132
+ _See code: [src/commands/acf/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/acf/list.ts)_
117
133
 
118
134
  ## `lps acf pull [PATH]`
119
135
 
@@ -142,7 +158,7 @@ EXAMPLES
142
158
  $ lps acf pull --type field-groups
143
159
  ```
144
160
 
145
- _See code: [src/commands/acf/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/acf/pull.ts)_
161
+ _See code: [src/commands/acf/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/acf/pull.ts)_
146
162
 
147
163
  ## `lps acf push [PATH]`
148
164
 
@@ -171,7 +187,7 @@ EXAMPLES
171
187
  $ lps acf push --type field-groups
172
188
  ```
173
189
 
174
- _See code: [src/commands/acf/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/acf/push.ts)_
190
+ _See code: [src/commands/acf/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/acf/push.ts)_
175
191
 
176
192
  ## `lps api list`
177
193
 
@@ -194,7 +210,7 @@ EXAMPLES
194
210
  $ lps api list
195
211
  ```
196
212
 
197
- _See code: [src/commands/api/list.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/api/list.ts)_
213
+ _See code: [src/commands/api/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/list.ts)_
198
214
 
199
215
  ## `lps api publish [PATH]`
200
216
 
@@ -217,7 +233,7 @@ EXAMPLES
217
233
  $ lps api publish --path ./api
218
234
  ```
219
235
 
220
- _See code: [src/commands/api/publish.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/api/publish.ts)_
236
+ _See code: [src/commands/api/publish.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/publish.ts)_
221
237
 
222
238
  ## `lps api pull [PATH]`
223
239
 
@@ -247,7 +263,7 @@ EXAMPLES
247
263
  $ lps api pull --path ./api
248
264
  ```
249
265
 
250
- _See code: [src/commands/api/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/api/pull.ts)_
266
+ _See code: [src/commands/api/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/pull.ts)_
251
267
 
252
268
  ## `lps api push [PATH]`
253
269
 
@@ -277,7 +293,118 @@ EXAMPLES
277
293
  $ lps api push --path ./api
278
294
  ```
279
295
 
280
- _See code: [src/commands/api/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/api/push.ts)_
296
+ _See code: [src/commands/api/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/push.ts)_
297
+
298
+ ## `lps app list`
299
+
300
+ List single-page apps deployed to WordPress
301
+
302
+ ```
303
+ USAGE
304
+ $ lps app list [--json] [--env <value>]
305
+
306
+ FLAGS
307
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
308
+
309
+ GLOBAL FLAGS
310
+ --json Format output as json.
311
+
312
+ DESCRIPTION
313
+ List single-page apps deployed to WordPress
314
+
315
+ EXAMPLES
316
+ $ lps app list
317
+ ```
318
+
319
+ _See code: [src/commands/app/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/list.ts)_
320
+
321
+ ## `lps app pull [PATH]`
322
+
323
+ Pull single-page app bundles from WordPress into local files
324
+
325
+ ```
326
+ USAGE
327
+ $ lps app pull [PATH] [--json] [--env <value>] [-d] [-y]
328
+
329
+ ARGUMENTS
330
+ [PATH] Path to apps directory (overrides project config)
331
+
332
+ FLAGS
333
+ -d, --dry-run Show what would change without making changes
334
+ -y, --yes Answer yes to confirmation prompts
335
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
336
+
337
+ GLOBAL FLAGS
338
+ --json Format output as json.
339
+
340
+ DESCRIPTION
341
+ Pull single-page app bundles from WordPress into local files
342
+
343
+ EXAMPLES
344
+ $ lps app pull
345
+ ```
346
+
347
+ _See code: [src/commands/app/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/pull.ts)_
348
+
349
+ ## `lps app push [NAME]`
350
+
351
+ Push built single-page app bundles to WordPress. Each app is an `apps/<name>/` directory holding a loopress.app.json and a built dist/ folder. Only files whose content changed are uploaded.
352
+
353
+ ```
354
+ USAGE
355
+ $ lps app push [NAME] [--json] [--env <value>] [-d] [-y]
356
+
357
+ ARGUMENTS
358
+ [NAME] Push only this app (defaults to every app in the directory)
359
+
360
+ FLAGS
361
+ -d, --dry-run Show what would change without making changes
362
+ -y, --yes Answer yes to confirmation prompts
363
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
364
+
365
+ GLOBAL FLAGS
366
+ --json Format output as json.
367
+
368
+ DESCRIPTION
369
+ Push built single-page app bundles to WordPress. Each app is an `apps/<name>/` directory holding a loopress.app.json
370
+ and a built dist/ folder. Only files whose content changed are uploaded.
371
+
372
+ EXAMPLES
373
+ $ lps app push
374
+
375
+ $ lps app push search
376
+ ```
377
+
378
+ _See code: [src/commands/app/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/push.ts)_
379
+
380
+ ## `lps app remove NAME`
381
+
382
+ Remove a single-page app from WordPress: deletes its bundle from wp-content/loopress/apps/ and unregisters the shortcode. Local files are left untouched.
383
+
384
+ ```
385
+ USAGE
386
+ $ lps app remove NAME [--json] [--env <value>] [-d] [-y]
387
+
388
+ ARGUMENTS
389
+ NAME App to remove from WordPress
390
+
391
+ FLAGS
392
+ -d, --dry-run Show what would change without making changes
393
+ -y, --yes Answer yes to confirmation prompts
394
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
395
+
396
+ GLOBAL FLAGS
397
+ --json Format output as json.
398
+
399
+ DESCRIPTION
400
+ Remove a single-page app from WordPress: deletes its bundle from wp-content/loopress/apps/ and unregisters the
401
+ shortcode. Local files are left untouched.
402
+
403
+ EXAMPLES
404
+ $ lps app remove search
405
+ ```
406
+
407
+ _See code: [src/commands/app/remove.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/remove.ts)_
281
408
 
282
409
  ## `lps composer init`
283
410
 
@@ -300,7 +427,7 @@ EXAMPLES
300
427
  $ lps composer init --dry-run
301
428
  ```
302
429
 
303
- _See code: [src/commands/composer/init.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/composer/init.ts)_
430
+ _See code: [src/commands/composer/init.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/composer/init.ts)_
304
431
 
305
432
  ## `lps composer pull`
306
433
 
@@ -326,26 +453,27 @@ EXAMPLES
326
453
  $ lps composer pull --dry-run
327
454
  ```
328
455
 
329
- _See code: [src/commands/composer/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/composer/pull.ts)_
456
+ _See code: [src/commands/composer/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/composer/pull.ts)_
330
457
 
331
458
  ## `lps composer push`
332
459
 
333
- Push composer.json and composer.lock to WordPress and run composer install
460
+ Push composer.json (and composer.lock, if present) to WordPress and run Composer
334
461
 
335
462
  ```
336
463
  USAGE
337
- $ lps composer push [--json] [--env <value>] [-d] [-y]
464
+ $ lps composer push [--json] [--env <value>] [-d] [-y] [--force]
338
465
 
339
466
  FLAGS
340
467
  -d, --dry-run Show what would change without making changes
341
468
  -y, --yes Answer yes to confirmation prompts
342
469
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
470
+ --force Allow downgrades and take over plugins/themes installed outside Loopress
343
471
 
344
472
  GLOBAL FLAGS
345
473
  --json Format output as json.
346
474
 
347
475
  DESCRIPTION
348
- Push composer.json and composer.lock to WordPress and run composer install
476
+ Push composer.json (and composer.lock, if present) to WordPress and run Composer
349
477
 
350
478
  EXAMPLES
351
479
  $ lps composer push
@@ -353,7 +481,7 @@ EXAMPLES
353
481
  $ lps composer push --dry-run
354
482
  ```
355
483
 
356
- _See code: [src/commands/composer/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/composer/push.ts)_
484
+ _See code: [src/commands/composer/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/composer/push.ts)_
357
485
 
358
486
  ## `lps dev`
359
487
 
@@ -379,7 +507,7 @@ EXAMPLES
379
507
  $ lps dev --skip=plugins
380
508
  ```
381
509
 
382
- _See code: [src/commands/dev.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/dev.ts)_
510
+ _See code: [src/commands/dev.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/dev.ts)_
383
511
 
384
512
  ## `lps doctor`
385
513
 
@@ -401,7 +529,7 @@ EXAMPLES
401
529
  $ lps doctor --env production
402
530
  ```
403
531
 
404
- _See code: [src/commands/doctor.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/doctor.ts)_
532
+ _See code: [src/commands/doctor.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/doctor.ts)_
405
533
 
406
534
  ## `lps form list`
407
535
 
@@ -409,11 +537,13 @@ List forms from WordPress
409
537
 
410
538
  ```
411
539
  USAGE
412
- $ lps form list [--env <value>] [-j]
540
+ $ lps form list [--json] [--env <value>]
413
541
 
414
542
  FLAGS
415
- -j, --json Output in JSON format
416
- --env=<value> Target environment by name, overriding the globally active one (lps project switch)
543
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
544
+
545
+ GLOBAL FLAGS
546
+ --json Format output as json.
417
547
 
418
548
  DESCRIPTION
419
549
  List forms from WordPress
@@ -422,7 +552,7 @@ EXAMPLES
422
552
  $ lps form list
423
553
  ```
424
554
 
425
- _See code: [src/commands/form/list.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/form/list.ts)_
555
+ _See code: [src/commands/form/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/form/list.ts)_
426
556
 
427
557
  ## `lps form pull [PATH]`
428
558
 
@@ -447,7 +577,7 @@ EXAMPLES
447
577
  $ lps form pull
448
578
  ```
449
579
 
450
- _See code: [src/commands/form/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/form/pull.ts)_
580
+ _See code: [src/commands/form/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/form/pull.ts)_
451
581
 
452
582
  ## `lps form push [PATH]`
453
583
 
@@ -473,7 +603,7 @@ EXAMPLES
473
603
  $ lps form push
474
604
  ```
475
605
 
476
- _See code: [src/commands/form/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/form/push.ts)_
606
+ _See code: [src/commands/form/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/form/push.ts)_
477
607
 
478
608
  ## `lps help [COMMAND]`
479
609
 
@@ -493,7 +623,7 @@ DESCRIPTION
493
623
  Display help for lps.
494
624
  ```
495
625
 
496
- _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/6.2.56/src/commands/help.ts)_
626
+ _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/7.0.0/src/commands/help.ts)_
497
627
 
498
628
  ## `lps init`
499
629
 
@@ -510,7 +640,7 @@ EXAMPLES
510
640
  $ lps init
511
641
  ```
512
642
 
513
- _See code: [src/commands/init.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/init.ts)_
643
+ _See code: [src/commands/init.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/init.ts)_
514
644
 
515
645
  ## `lps login`
516
646
 
@@ -527,7 +657,7 @@ EXAMPLES
527
657
  $ lps login
528
658
  ```
529
659
 
530
- _See code: [src/commands/login.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/login.ts)_
660
+ _See code: [src/commands/login.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/login.ts)_
531
661
 
532
662
  ## `lps logout`
533
663
 
@@ -544,7 +674,7 @@ EXAMPLES
544
674
  $ lps logout
545
675
  ```
546
676
 
547
- _See code: [src/commands/logout.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/logout.ts)_
677
+ _See code: [src/commands/logout.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/logout.ts)_
548
678
 
549
679
  ## `lps page list`
550
680
 
@@ -567,7 +697,7 @@ EXAMPLES
567
697
  $ lps page list
568
698
  ```
569
699
 
570
- _See code: [src/commands/page/list.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/page/list.ts)_
700
+ _See code: [src/commands/page/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/page/list.ts)_
571
701
 
572
702
  ## `lps page pull [PATH]`
573
703
 
@@ -595,7 +725,7 @@ EXAMPLES
595
725
  $ lps page pull
596
726
  ```
597
727
 
598
- _See code: [src/commands/page/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/page/pull.ts)_
728
+ _See code: [src/commands/page/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/page/pull.ts)_
599
729
 
600
730
  ## `lps page push [PATH]`
601
731
 
@@ -623,7 +753,7 @@ EXAMPLES
623
753
  $ lps page push
624
754
  ```
625
755
 
626
- _See code: [src/commands/page/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/page/push.ts)_
756
+ _See code: [src/commands/page/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/page/push.ts)_
627
757
 
628
758
  ## `lps plugin add SLUG`
629
759
 
@@ -631,14 +761,15 @@ Add a WordPress.org plugin to loopress.json
631
761
 
632
762
  ```
633
763
  USAGE
634
- $ lps plugin add SLUG [--env <value>] [-d]
764
+ $ lps plugin add SLUG [--env <value>] [-d] [--version <value>]
635
765
 
636
766
  ARGUMENTS
637
767
  SLUG Plugin slug on WordPress.org
638
768
 
639
769
  FLAGS
640
- -d, --dry-run Show what would change without making changes
641
- --env=<value> Target environment by name, overriding the globally active one (lps project switch)
770
+ -d, --dry-run Show what would change without making changes
771
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
772
+ --version=<value> Exact version to pin (default: "latest", tracked on every push)
642
773
 
643
774
  DESCRIPTION
644
775
  Add a WordPress.org plugin to loopress.json
@@ -646,14 +777,39 @@ DESCRIPTION
646
777
  EXAMPLES
647
778
  $ lps plugin add woocommerce
648
779
 
780
+ $ lps plugin add woocommerce --version 9.4.2
781
+
649
782
  $ lps plugin add contact-form-7 --dry-run
650
783
  ```
651
784
 
652
- _See code: [src/commands/plugin/add.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/plugin/add.ts)_
785
+ _See code: [src/commands/plugin/add.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/add.ts)_
786
+
787
+ ## `lps plugin audit`
788
+
789
+ Check the plugins in loopress.json for known vulnerabilities and health issues
790
+
791
+ ```
792
+ USAGE
793
+ $ lps plugin audit [--json] [--env <value>]
794
+
795
+ FLAGS
796
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
797
+
798
+ GLOBAL FLAGS
799
+ --json Format output as json.
800
+
801
+ DESCRIPTION
802
+ Check the plugins in loopress.json for known vulnerabilities and health issues
803
+
804
+ EXAMPLES
805
+ $ lps plugin audit
806
+ ```
807
+
808
+ _See code: [src/commands/plugin/audit.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/audit.ts)_
653
809
 
654
810
  ## `lps plugin pull`
655
811
 
656
- Pull installed plugins from WordPress into loopress.json
812
+ Pull installed plugins from WordPress into loopress.json, pinned to their live versions
657
813
 
658
814
  ```
659
815
  USAGE
@@ -667,7 +823,7 @@ GLOBAL FLAGS
667
823
  --json Format output as json.
668
824
 
669
825
  DESCRIPTION
670
- Pull installed plugins from WordPress into loopress.json
826
+ Pull installed plugins from WordPress into loopress.json, pinned to their live versions
671
827
 
672
828
  EXAMPLES
673
829
  $ lps plugin pull
@@ -675,34 +831,61 @@ EXAMPLES
675
831
  $ lps plugin pull --dry-run
676
832
  ```
677
833
 
678
- _See code: [src/commands/plugin/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/plugin/pull.ts)_
834
+ _See code: [src/commands/plugin/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/pull.ts)_
679
835
 
680
836
  ## `lps plugin push`
681
837
 
682
- Push plugins to WordPress to match loopress.json
838
+ Install plugins on WordPress to match loopress.json, pinned via Composer + WPackagist
683
839
 
684
840
  ```
685
841
  USAGE
686
- $ lps plugin push [--json] [--env <value>] [-d] [-y]
842
+ $ lps plugin push [--json] [--env <value>] [-d] [-y] [--force] [--prune]
687
843
 
688
844
  FLAGS
689
845
  -d, --dry-run Show what would change without making changes
690
846
  -y, --yes Answer yes to confirmation prompts
691
847
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
848
+ --force Allow downgrades and let Loopress take over plugins installed outside it (replaces their files)
849
+ --prune Deactivate plugins that are active on the site but absent from loopress.json
692
850
 
693
851
  GLOBAL FLAGS
694
852
  --json Format output as json.
695
853
 
696
854
  DESCRIPTION
697
- Push plugins to WordPress to match loopress.json
855
+ Install plugins on WordPress to match loopress.json, pinned via Composer + WPackagist
698
856
 
699
857
  EXAMPLES
700
858
  $ lps plugin push
701
859
 
702
860
  $ lps plugin push --dry-run
861
+
862
+ $ lps plugin push --force --prune
863
+ ```
864
+
865
+ _See code: [src/commands/plugin/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/push.ts)_
866
+
867
+ ## `lps plugin status`
868
+
869
+ Compare the plugins on WordPress against loopress.json and report drift
870
+
871
+ ```
872
+ USAGE
873
+ $ lps plugin status [--json] [--env <value>]
874
+
875
+ FLAGS
876
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
877
+
878
+ GLOBAL FLAGS
879
+ --json Format output as json.
880
+
881
+ DESCRIPTION
882
+ Compare the plugins on WordPress against loopress.json and report drift
883
+
884
+ EXAMPLES
885
+ $ lps plugin status
703
886
  ```
704
887
 
705
- _See code: [src/commands/plugin/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/plugin/push.ts)_
888
+ _See code: [src/commands/plugin/status.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/status.ts)_
706
889
 
707
890
  ## `lps project config`
708
891
 
@@ -720,7 +903,7 @@ EXAMPLES
720
903
  $ lps project config
721
904
  ```
722
905
 
723
- _See code: [src/commands/project/config.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/project/config.ts)_
906
+ _See code: [src/commands/project/config.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/config.ts)_
724
907
 
725
908
  ## `lps project list`
726
909
 
@@ -728,7 +911,10 @@ List configured WordPress projects
728
911
 
729
912
  ```
730
913
  USAGE
731
- $ lps project list
914
+ $ lps project list [--json]
915
+
916
+ GLOBAL FLAGS
917
+ --json Format output as json.
732
918
 
733
919
  DESCRIPTION
734
920
  List configured WordPress projects
@@ -737,7 +923,7 @@ EXAMPLES
737
923
  $ lps project list
738
924
  ```
739
925
 
740
- _See code: [src/commands/project/list.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/project/list.ts)_
926
+ _See code: [src/commands/project/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/list.ts)_
741
927
 
742
928
  ## `lps project pull`
743
929
 
@@ -754,7 +940,7 @@ EXAMPLES
754
940
  $ lps project pull
755
941
  ```
756
942
 
757
- _See code: [src/commands/project/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/project/pull.ts)_
943
+ _See code: [src/commands/project/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/pull.ts)_
758
944
 
759
945
  ## `lps project push`
760
946
 
@@ -774,7 +960,7 @@ EXAMPLES
774
960
  $ lps project push
775
961
  ```
776
962
 
777
- _See code: [src/commands/project/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/project/push.ts)_
963
+ _See code: [src/commands/project/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/push.ts)_
778
964
 
779
965
  ## `lps project remove`
780
966
 
@@ -791,7 +977,7 @@ EXAMPLES
791
977
  $ lps project remove
792
978
  ```
793
979
 
794
- _See code: [src/commands/project/remove.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/project/remove.ts)_
980
+ _See code: [src/commands/project/remove.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/remove.ts)_
795
981
 
796
982
  ## `lps project rotate`
797
983
 
@@ -813,7 +999,7 @@ EXAMPLES
813
999
  $ lps project rotate --env staging
814
1000
  ```
815
1001
 
816
- _See code: [src/commands/project/rotate.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/project/rotate.ts)_
1002
+ _See code: [src/commands/project/rotate.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/rotate.ts)_
817
1003
 
818
1004
  ## `lps project switch`
819
1005
 
@@ -830,7 +1016,87 @@ EXAMPLES
830
1016
  $ lps project switch
831
1017
  ```
832
1018
 
833
- _See code: [src/commands/project/switch.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/project/switch.ts)_
1019
+ _See code: [src/commands/project/switch.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/switch.ts)_
1020
+
1021
+ ## `lps promote FROM TO`
1022
+
1023
+ Copy every tracked resource from one environment to another by pulling from <from> then pushing to <to>. Local tracked files are overwritten with <from> in the process.
1024
+
1025
+ ```
1026
+ USAGE
1027
+ $ lps promote FROM TO [-d] [-y]
1028
+
1029
+ ARGUMENTS
1030
+ FROM Environment to copy the configuration from
1031
+ TO Environment to copy the configuration to
1032
+
1033
+ FLAGS
1034
+ -d, --dry-run Show what would change without making changes
1035
+ -y, --yes Answer yes to confirmation prompts
1036
+
1037
+ DESCRIPTION
1038
+ Copy every tracked resource from one environment to another by pulling from <from> then pushing to <to>. Local tracked
1039
+ files are overwritten with <from> in the process.
1040
+
1041
+ EXAMPLES
1042
+ $ lps promote staging production
1043
+
1044
+ $ lps promote production staging --dry-run
1045
+ ```
1046
+
1047
+ _See code: [src/commands/promote.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/promote.ts)_
1048
+
1049
+ ## `lps pull`
1050
+
1051
+ Pull all content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, from WordPress
1052
+
1053
+ ```
1054
+ USAGE
1055
+ $ lps pull [--env <value>] [-d] [-y]
1056
+
1057
+ FLAGS
1058
+ -d, --dry-run Show what would change without making changes
1059
+ -y, --yes Answer yes to confirmation prompts
1060
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1061
+
1062
+ DESCRIPTION
1063
+ Pull all content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, from WordPress
1064
+
1065
+ EXAMPLES
1066
+ $ lps pull
1067
+
1068
+ $ lps pull --env staging
1069
+
1070
+ $ lps pull --dry-run
1071
+ ```
1072
+
1073
+ _See code: [src/commands/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/pull.ts)_
1074
+
1075
+ ## `lps push`
1076
+
1077
+ Push all local content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, to WordPress
1078
+
1079
+ ```
1080
+ USAGE
1081
+ $ lps push [--env <value>] [-d] [-y]
1082
+
1083
+ FLAGS
1084
+ -d, --dry-run Show what would change without making changes
1085
+ -y, --yes Answer yes to confirmation prompts
1086
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1087
+
1088
+ DESCRIPTION
1089
+ Push all local content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, to WordPress
1090
+
1091
+ EXAMPLES
1092
+ $ lps push
1093
+
1094
+ $ lps push --env staging
1095
+
1096
+ $ lps push --dry-run
1097
+ ```
1098
+
1099
+ _See code: [src/commands/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/push.ts)_
834
1100
 
835
1101
  ## `lps seo list`
836
1102
 
@@ -838,12 +1104,14 @@ List posts with SEO meta, and redirects if supported by the active SEO plugin, o
838
1104
 
839
1105
  ```
840
1106
  USAGE
841
- $ lps seo list [--env <value>] [-j] [--post-type <value>...]
1107
+ $ lps seo list [--json] [--env <value>] [--post-type <value>...]
842
1108
 
843
1109
  FLAGS
844
- -j, --json Output in JSON format
845
- --env=<value> Target environment by name, overriding the globally active one (lps project switch)
846
- --post-type=<value>... Limit to specific post types
1110
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1111
+ --post-type=<value>... Limit to specific post types
1112
+
1113
+ GLOBAL FLAGS
1114
+ --json Format output as json.
847
1115
 
848
1116
  DESCRIPTION
849
1117
  List posts with SEO meta, and redirects if supported by the active SEO plugin, on WordPress
@@ -854,7 +1122,7 @@ EXAMPLES
854
1122
  $ lps seo list --post-type post
855
1123
  ```
856
1124
 
857
- _See code: [src/commands/seo/list.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/seo/list.ts)_
1125
+ _See code: [src/commands/seo/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/seo/list.ts)_
858
1126
 
859
1127
  ## `lps seo pull [PATH]`
860
1128
 
@@ -882,7 +1150,7 @@ EXAMPLES
882
1150
  $ lps seo pull --post-type post --post-type page
883
1151
  ```
884
1152
 
885
- _See code: [src/commands/seo/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/seo/pull.ts)_
1153
+ _See code: [src/commands/seo/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/seo/pull.ts)_
886
1154
 
887
1155
  ## `lps seo push [PATH]`
888
1156
 
@@ -908,7 +1176,7 @@ EXAMPLES
908
1176
  $ lps seo push
909
1177
  ```
910
1178
 
911
- _See code: [src/commands/seo/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/seo/push.ts)_
1179
+ _See code: [src/commands/seo/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/seo/push.ts)_
912
1180
 
913
1181
  ## `lps snippet list`
914
1182
 
@@ -931,7 +1199,7 @@ EXAMPLES
931
1199
  $ lps snippet list
932
1200
  ```
933
1201
 
934
- _See code: [src/commands/snippet/list.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/snippet/list.ts)_
1202
+ _See code: [src/commands/snippet/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/list.ts)_
935
1203
 
936
1204
  ## `lps snippet publish [PATH]`
937
1205
 
@@ -954,7 +1222,7 @@ EXAMPLES
954
1222
  $ lps snippet publish --path ./snippets
955
1223
  ```
956
1224
 
957
- _See code: [src/commands/snippet/publish.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/snippet/publish.ts)_
1225
+ _See code: [src/commands/snippet/publish.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/publish.ts)_
958
1226
 
959
1227
  ## `lps snippet pull [PATH]`
960
1228
 
@@ -984,7 +1252,7 @@ EXAMPLES
984
1252
  $ lps snippet pull --path ./snippets
985
1253
  ```
986
1254
 
987
- _See code: [src/commands/snippet/pull.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/snippet/pull.ts)_
1255
+ _See code: [src/commands/snippet/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/pull.ts)_
988
1256
 
989
1257
  ## `lps snippet push [PATH]`
990
1258
 
@@ -1015,7 +1283,7 @@ EXAMPLES
1015
1283
  $ lps snippet push --path ./snippets
1016
1284
  ```
1017
1285
 
1018
- _See code: [src/commands/snippet/push.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/snippet/push.ts)_
1286
+ _See code: [src/commands/snippet/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/push.ts)_
1019
1287
 
1020
1288
  ## `lps status`
1021
1289
 
@@ -1040,7 +1308,7 @@ EXAMPLES
1040
1308
  $ lps status --env staging
1041
1309
  ```
1042
1310
 
1043
- _See code: [src/commands/status.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/status.ts)_
1311
+ _See code: [src/commands/status.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/status.ts)_
1044
1312
 
1045
1313
  ## `lps telemetry disable`
1046
1314
 
@@ -1057,7 +1325,7 @@ EXAMPLES
1057
1325
  $ lps telemetry disable
1058
1326
  ```
1059
1327
 
1060
- _See code: [src/commands/telemetry/disable.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/telemetry/disable.ts)_
1328
+ _See code: [src/commands/telemetry/disable.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/telemetry/disable.ts)_
1061
1329
 
1062
1330
  ## `lps telemetry enable`
1063
1331
 
@@ -1074,5 +1342,127 @@ EXAMPLES
1074
1342
  $ lps telemetry enable
1075
1343
  ```
1076
1344
 
1077
- _See code: [src/commands/telemetry/enable.ts](https://github.com/loopress/loopress/blob/v0.21.0/src/commands/telemetry/enable.ts)_
1345
+ _See code: [src/commands/telemetry/enable.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/telemetry/enable.ts)_
1346
+
1347
+ ## `lps theme add SLUG`
1348
+
1349
+ Add a WordPress.org theme to loopress.json
1350
+
1351
+ ```
1352
+ USAGE
1353
+ $ lps theme add SLUG [--env <value>] [-d] [--version <value>]
1354
+
1355
+ ARGUMENTS
1356
+ SLUG Theme slug on WordPress.org
1357
+
1358
+ FLAGS
1359
+ -d, --dry-run Show what would change without making changes
1360
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1361
+ --version=<value> Exact version to pin (default: "latest")
1362
+
1363
+ DESCRIPTION
1364
+ Add a WordPress.org theme to loopress.json
1365
+
1366
+ EXAMPLES
1367
+ $ lps theme add generatepress
1368
+
1369
+ $ lps theme add generatepress --version 3.4.0
1370
+ ```
1371
+
1372
+ _See code: [src/commands/theme/add.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/add.ts)_
1373
+
1374
+ ## `lps theme pull`
1375
+
1376
+ Pull installed themes from WordPress into loopress.json, pinned to their live versions
1377
+
1378
+ ```
1379
+ USAGE
1380
+ $ lps theme pull [--json] [--env <value>] [-d]
1381
+
1382
+ FLAGS
1383
+ -d, --dry-run Show what would change without making changes
1384
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1385
+
1386
+ GLOBAL FLAGS
1387
+ --json Format output as json.
1388
+
1389
+ DESCRIPTION
1390
+ Pull installed themes from WordPress into loopress.json, pinned to their live versions
1391
+
1392
+ EXAMPLES
1393
+ $ lps theme pull
1394
+ ```
1395
+
1396
+ _See code: [src/commands/theme/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/pull.ts)_
1397
+
1398
+ ## `lps theme push`
1399
+
1400
+ Install themes on WordPress to match loopress.json (versions only, never switches the active theme)
1401
+
1402
+ ```
1403
+ USAGE
1404
+ $ lps theme push [--json] [--env <value>] [-d] [-y] [--force]
1405
+
1406
+ FLAGS
1407
+ -d, --dry-run Show what would change without making changes
1408
+ -y, --yes Answer yes to confirmation prompts
1409
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1410
+ --force Allow downgrades and take over themes installed outside Loopress
1411
+
1412
+ GLOBAL FLAGS
1413
+ --json Format output as json.
1414
+
1415
+ DESCRIPTION
1416
+ Install themes on WordPress to match loopress.json (versions only, never switches the active theme)
1417
+
1418
+ EXAMPLES
1419
+ $ lps theme push
1420
+
1421
+ $ lps theme push --force
1422
+ ```
1423
+
1424
+ _See code: [src/commands/theme/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/push.ts)_
1425
+
1426
+ ## `lps theme status`
1427
+
1428
+ Compare the themes on WordPress against loopress.json and report version drift
1429
+
1430
+ ```
1431
+ USAGE
1432
+ $ lps theme status [--json] [--env <value>]
1433
+
1434
+ FLAGS
1435
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1436
+
1437
+ GLOBAL FLAGS
1438
+ --json Format output as json.
1439
+
1440
+ DESCRIPTION
1441
+ Compare the themes on WordPress against loopress.json and report version drift
1442
+
1443
+ EXAMPLES
1444
+ $ lps theme status
1445
+ ```
1446
+
1447
+ _See code: [src/commands/theme/status.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/status.ts)_
1448
+
1449
+ ## `lps validate`
1450
+
1451
+ Check local tracked files are well formed and push-ready, without contacting WordPress
1452
+
1453
+ ```
1454
+ USAGE
1455
+ $ lps validate [--json]
1456
+
1457
+ GLOBAL FLAGS
1458
+ --json Format output as json.
1459
+
1460
+ DESCRIPTION
1461
+ Check local tracked files are well formed and push-ready, without contacting WordPress
1462
+
1463
+ EXAMPLES
1464
+ $ lps validate
1465
+ ```
1466
+
1467
+ _See code: [src/commands/validate.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/validate.ts)_
1078
1468
  <!-- commandsstop -->