@loopress/cli 0.31.0 → 0.32.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 (72) hide show
  1. package/README.md +440 -221
  2. package/dist/commands/acf/diff.d.ts +2 -2
  3. package/dist/commands/acf/diff.js +3 -1
  4. package/dist/commands/acf/list.d.ts +1 -0
  5. package/dist/commands/acf/list.js +2 -1
  6. package/dist/commands/acf/pull.d.ts +1 -0
  7. package/dist/commands/acf/pull.js +2 -1
  8. package/dist/commands/acf/push.d.ts +7 -2
  9. package/dist/commands/acf/push.js +12 -4
  10. package/dist/commands/acf/rollback.d.ts +2 -2
  11. package/dist/commands/acf/rollback.js +3 -1
  12. package/dist/commands/composer/pull.js +1 -1
  13. package/dist/commands/diff.d.ts +1 -0
  14. package/dist/commands/diff.js +13 -2
  15. package/dist/commands/doctor.js +1 -1
  16. package/dist/commands/form/list.js +1 -1
  17. package/dist/commands/form/pull.js +1 -1
  18. package/dist/commands/form/push.d.ts +2 -1
  19. package/dist/commands/form/push.js +2 -2
  20. package/dist/commands/init.js +0 -23
  21. package/dist/commands/menu/push.d.ts +2 -1
  22. package/dist/commands/menu/push.js +1 -1
  23. package/dist/commands/option/push.d.ts +2 -1
  24. package/dist/commands/option/push.js +1 -1
  25. package/dist/commands/page/push.d.ts +4 -1
  26. package/dist/commands/page/push.js +40 -8
  27. package/dist/commands/pattern/push.js +1 -1
  28. package/dist/commands/pattern/rm.js +1 -1
  29. package/dist/commands/plugin/audit.js +1 -1
  30. package/dist/commands/plugin/push.js +1 -1
  31. package/dist/commands/plugin/status.js +1 -1
  32. package/dist/commands/pull.d.ts +1 -1
  33. package/dist/commands/pull.js +22 -10
  34. package/dist/commands/push.d.ts +2 -0
  35. package/dist/commands/push.js +29 -9
  36. package/dist/commands/snippet/list.js +1 -1
  37. package/dist/commands/snippet/pull.js +1 -1
  38. package/dist/commands/snippet/push.d.ts +2 -1
  39. package/dist/commands/snippet/push.js +2 -2
  40. package/dist/commands/theme/pull.js +1 -1
  41. package/dist/commands/theme/push.d.ts +1 -0
  42. package/dist/commands/theme/push.js +3 -3
  43. package/dist/commands/theme/style/push.d.ts +2 -1
  44. package/dist/commands/theme/style/push.js +4 -5
  45. package/dist/commands/theme/template/list.js +1 -1
  46. package/dist/commands/theme/template/push.d.ts +11 -1
  47. package/dist/commands/theme/template/push.js +34 -5
  48. package/dist/commands/theme/version/push.js +1 -1
  49. package/dist/lib/declared-type-command.d.ts +2 -1
  50. package/dist/lib/declared-type-command.js +1 -1
  51. package/dist/lib/diff-command.d.ts +1 -0
  52. package/dist/lib/diff-command.js +10 -2
  53. package/dist/lib/php-files-command.d.ts +3 -1
  54. package/dist/lib/php-files-command.js +34 -19
  55. package/dist/lib/plugin-detection.d.ts +1 -0
  56. package/dist/lib/plugin-detection.js +4 -0
  57. package/dist/lib/push-command.d.ts +17 -0
  58. package/dist/lib/push-command.js +42 -3
  59. package/dist/lib/validate-local.js +12 -5
  60. package/dist/lib/wp-client.d.ts +1 -0
  61. package/dist/lib/wp-client.js +13 -0
  62. package/dist/utils/acf-format.d.ts +5 -0
  63. package/dist/utils/acf-format.js +29 -0
  64. package/dist/utils/php-top-level.d.ts +2 -0
  65. package/dist/utils/php-top-level.js +153 -0
  66. package/dist/utils/resource-dirs.d.ts +1 -0
  67. package/dist/utils/resource-dirs.js +7 -1
  68. package/dist/utils/template-format.d.ts +1 -0
  69. package/dist/utils/theme-styles-format.d.ts +2 -0
  70. package/dist/utils/theme-styles-format.js +32 -4
  71. package/oclif.manifest.json +548 -537
  72. package/package.json +2 -2
@@ -43,7 +43,7 @@
43
43
  "diff": {
44
44
  "aliases": [],
45
45
  "args": {},
46
- "description": "Show what differs between your local tracked files and a WordPress environment, or between two environments. Covers snippets, forms, ACF, API routes, Hooks, templates, template parts, pages, Options, Menus, Theme styles, and Composer. Plugins and themes have their own `lps plugin status` / `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be compared, so it doubles as a CI drift gate.",
46
+ "description": "Show what differs between your local tracked files and a WordPress environment, or between two environments. Covers snippets, forms, ACF, API routes, hooks, templates, template parts, pages, menus, custom post types, taxonomies, post meta, roles, block patterns, options, theme styles, and Composer. Plugins and themes have their own `lps plugin status` / `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be compared, so it doubles as a CI drift gate.",
47
47
  "examples": [
48
48
  "$ lps diff",
49
49
  "$ lps diff --env staging",
@@ -168,7 +168,7 @@
168
168
  "doctor": {
169
169
  "aliases": [],
170
170
  "args": {},
171
- "description": "Diagnose connectivity, plugin and credential problems for the targeted environment",
171
+ "description": "Diagnose connectivity, plugin, credential and hook problems for the targeted environment",
172
172
  "examples": [
173
173
  "$ lps doctor",
174
174
  "$ lps doctor --env production"
@@ -331,7 +331,7 @@
331
331
  "type": "boolean"
332
332
  },
333
333
  "overwrite": {
334
- "description": "Push even over changes made on the site outside Loopress since your last push",
334
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
335
335
  "name": "overwrite",
336
336
  "allowNo": false,
337
337
  "type": "boolean"
@@ -355,7 +355,7 @@
355
355
  "pull": {
356
356
  "aliases": [],
357
357
  "args": {},
358
- "description": "Pull all content, plugins, composer dependencies, post types, taxonomies, post meta, roles, ACF, API routes, hooks, forms, patterns, menus, options, and snippets, from WordPress",
358
+ "description": "Pull every tracked resource from WordPress into local files in one run: composer dependencies, plugins, post types, taxonomies, post meta, roles, ACF, API routes, hooks, forms, patterns, Global Styles, menus, options, and snippets",
359
359
  "examples": [
360
360
  "$ lps pull",
361
361
  "$ lps pull --env staging",
@@ -425,7 +425,7 @@
425
425
  "push": {
426
426
  "aliases": [],
427
427
  "args": {},
428
- "description": "Push all local content, plugins, composer dependencies, post types, taxonomies, post meta, roles, ACF, API routes, hooks, forms, patterns, templates, pages, menus, options, and snippets, to WordPress",
428
+ "description": "Push every local resource to WordPress in one run: plugins, composer dependencies, post types, taxonomies, post meta, roles, ACF, API routes, hooks, forms, patterns, templates and parts, Global Styles, pages, menus, options, and snippets",
429
429
  "examples": [
430
430
  "$ lps push",
431
431
  "$ lps push --env staging",
@@ -461,7 +461,7 @@
461
461
  "type": "boolean"
462
462
  },
463
463
  "overwrite": {
464
- "description": "Push even over changes made on the site outside Loopress since your last push",
464
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
465
465
  "name": "overwrite",
466
466
  "allowNo": false,
467
467
  "type": "boolean"
@@ -590,7 +590,9 @@
590
590
  ]
591
591
  },
592
592
  "acf:diff": {
593
- "aliases": [],
593
+ "aliases": [
594
+ "scf:diff"
595
+ ],
594
596
  "args": {
595
597
  "path": {
596
598
  "description": "Path to ACF directory (overrides project config)",
@@ -667,9 +669,11 @@
667
669
  ]
668
670
  },
669
671
  "acf:list": {
670
- "aliases": [],
672
+ "aliases": [
673
+ "scf:list"
674
+ ],
671
675
  "args": {},
672
- "description": "List ACF field groups, post types, taxonomies, and options pages from WordPress",
676
+ "description": "List ACF field groups, post types, taxonomies, and options pages currently on WordPress",
673
677
  "examples": [
674
678
  "$ lps acf list",
675
679
  "$ lps acf list --type field-groups"
@@ -736,14 +740,16 @@
736
740
  ]
737
741
  },
738
742
  "acf:pull": {
739
- "aliases": [],
743
+ "aliases": [
744
+ "scf:pull"
745
+ ],
740
746
  "args": {
741
747
  "path": {
742
748
  "description": "Path to ACF directory (overrides project config)",
743
749
  "name": "path"
744
750
  }
745
751
  },
746
- "description": "Pull ACF field groups, post types, taxonomies, and options pages from WordPress",
752
+ "description": "Pull ACF field groups, post types, taxonomies, and options pages from WordPress into local files",
747
753
  "examples": [
748
754
  "$ lps acf pull",
749
755
  "$ lps acf pull --type field-groups"
@@ -824,14 +830,16 @@
824
830
  ]
825
831
  },
826
832
  "acf:push": {
827
- "aliases": [],
833
+ "aliases": [
834
+ "scf:push"
835
+ ],
828
836
  "args": {
829
837
  "path": {
830
838
  "description": "Path to ACF directory (overrides project config)",
831
839
  "name": "path"
832
840
  }
833
841
  },
834
- "description": "Push ACF field groups, post types, taxonomies, and options pages to WordPress",
842
+ "description": "Push local ACF field groups, post types, taxonomies, and options pages to WordPress",
835
843
  "examples": [
836
844
  "$ lps acf push",
837
845
  "$ lps acf push --type field-groups"
@@ -852,7 +860,7 @@
852
860
  "type": "option"
853
861
  },
854
862
  "overwrite": {
855
- "description": "Push even over changes made on the site outside Loopress since your last push",
863
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
856
864
  "name": "overwrite",
857
865
  "allowNo": false,
858
866
  "type": "boolean"
@@ -924,7 +932,9 @@
924
932
  ]
925
933
  },
926
934
  "acf:rollback": {
927
- "aliases": [],
935
+ "aliases": [
936
+ "scf:rollback"
937
+ ],
928
938
  "args": {
929
939
  "path": {
930
940
  "description": "Path to ACF directory (overrides project config)",
@@ -1093,7 +1103,7 @@
1093
1103
  "api:list": {
1094
1104
  "aliases": [],
1095
1105
  "args": {},
1096
- "description": "List custom API route files from WordPress",
1106
+ "description": "List custom API route files currently on WordPress",
1097
1107
  "examples": [
1098
1108
  "$ lps api list"
1099
1109
  ],
@@ -1183,7 +1193,7 @@
1183
1193
  "name": "path"
1184
1194
  }
1185
1195
  },
1186
- "description": "Pull custom API route files from WordPress",
1196
+ "description": "Pull custom API route files from WordPress into local files",
1187
1197
  "examples": [
1188
1198
  "$ lps api pull",
1189
1199
  "$ lps api pull --path ./api"
@@ -1258,7 +1268,7 @@
1258
1268
  "name": "path"
1259
1269
  }
1260
1270
  },
1261
- "description": "Push custom API route files to WordPress",
1271
+ "description": "Push local custom API route files to WordPress",
1262
1272
  "examples": [
1263
1273
  "$ lps api push",
1264
1274
  "$ lps api push --path ./api",
@@ -1280,7 +1290,7 @@
1280
1290
  "type": "option"
1281
1291
  },
1282
1292
  "overwrite": {
1283
- "description": "Push even over changes made on the site outside Loopress since your last push",
1293
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
1284
1294
  "name": "overwrite",
1285
1295
  "allowNo": false,
1286
1296
  "type": "boolean"
@@ -1355,7 +1365,7 @@
1355
1365
  "required": true
1356
1366
  }
1357
1367
  },
1358
- "description": "Remove a custom API route file from WordPress",
1368
+ "description": "Remove one custom API route file from WordPress",
1359
1369
  "examples": [
1360
1370
  "$ lps api rm hello",
1361
1371
  "$ lps api remove hello --yes"
@@ -1571,7 +1581,7 @@
1571
1581
  "composer:pull": {
1572
1582
  "aliases": [],
1573
1583
  "args": {},
1574
- "description": "Pull composer.json and composer.lock from WordPress",
1584
+ "description": "Pull composer.json and composer.lock from WordPress into local files",
1575
1585
  "examples": [
1576
1586
  "$ lps composer pull",
1577
1587
  "$ lps composer pull --dry-run"
@@ -1655,7 +1665,7 @@
1655
1665
  "type": "option"
1656
1666
  },
1657
1667
  "overwrite": {
1658
- "description": "Push even over changes made on the site outside Loopress since your last push",
1668
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
1659
1669
  "name": "overwrite",
1660
1670
  "allowNo": false,
1661
1671
  "type": "boolean"
@@ -1878,7 +1888,7 @@
1878
1888
  "type": "option"
1879
1889
  },
1880
1890
  "overwrite": {
1881
- "description": "Push even over changes made on the site outside Loopress since your last push",
1891
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
1882
1892
  "name": "overwrite",
1883
1893
  "allowNo": false,
1884
1894
  "type": "boolean"
@@ -2327,7 +2337,7 @@
2327
2337
  "type": "option"
2328
2338
  },
2329
2339
  "overwrite": {
2330
- "description": "Push even over changes made on the site outside Loopress since your last push",
2340
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
2331
2341
  "name": "overwrite",
2332
2342
  "allowNo": false,
2333
2343
  "type": "boolean"
@@ -2633,7 +2643,7 @@
2633
2643
  "form:list": {
2634
2644
  "aliases": [],
2635
2645
  "args": {},
2636
- "description": "List forms from WordPress",
2646
+ "description": "List forms currently on WordPress",
2637
2647
  "examples": [
2638
2648
  "$ lps form list"
2639
2649
  ],
@@ -2693,7 +2703,7 @@
2693
2703
  "name": "path"
2694
2704
  }
2695
2705
  },
2696
- "description": "Pull forms from WordPress",
2706
+ "description": "Pull forms from WordPress into local files",
2697
2707
  "examples": [
2698
2708
  "$ lps form pull"
2699
2709
  ],
@@ -2767,7 +2777,7 @@
2767
2777
  "name": "path"
2768
2778
  }
2769
2779
  },
2770
- "description": "Push forms to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>.json` convention.",
2780
+ "description": "Push local form files to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>.json` convention.",
2771
2781
  "examples": [
2772
2782
  "$ lps form push",
2773
2783
  "$ lps form push --allow-notifications"
@@ -2788,7 +2798,7 @@
2788
2798
  "type": "option"
2789
2799
  },
2790
2800
  "overwrite": {
2791
- "description": "Push even over changes made on the site outside Loopress since your last push",
2801
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
2792
2802
  "name": "overwrite",
2793
2803
  "allowNo": false,
2794
2804
  "type": "boolean"
@@ -3022,7 +3032,7 @@
3022
3032
  "hook:list": {
3023
3033
  "aliases": [],
3024
3034
  "args": {},
3025
- "description": "List hook files (actions, filters, cron) from WordPress",
3035
+ "description": "List hook files (actions, filters, cron) currently on WordPress",
3026
3036
  "examples": [
3027
3037
  "$ lps hook list"
3028
3038
  ],
@@ -3082,7 +3092,7 @@
3082
3092
  "name": "path"
3083
3093
  }
3084
3094
  },
3085
- "description": "Pull hook files (actions, filters, cron) from WordPress",
3095
+ "description": "Pull hook files (actions, filters, cron) from WordPress into local files",
3086
3096
  "examples": [
3087
3097
  "$ lps hook pull",
3088
3098
  "$ lps hook pull --path ./hooks"
@@ -3157,7 +3167,7 @@
3157
3167
  "name": "path"
3158
3168
  }
3159
3169
  },
3160
- "description": "Push hook files (actions, filters, cron) to WordPress",
3170
+ "description": "Push local hook files (actions, filters, cron) to WordPress",
3161
3171
  "examples": [
3162
3172
  "$ lps hook push",
3163
3173
  "$ lps hook push --path ./hooks",
@@ -3179,7 +3189,7 @@
3179
3189
  "type": "option"
3180
3190
  },
3181
3191
  "overwrite": {
3182
- "description": "Push even over changes made on the site outside Loopress since your last push",
3192
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
3183
3193
  "name": "overwrite",
3184
3194
  "allowNo": false,
3185
3195
  "type": "boolean"
@@ -3254,7 +3264,7 @@
3254
3264
  "required": true
3255
3265
  }
3256
3266
  },
3257
- "description": "Remove a hook file (action, filter, cron) from WordPress",
3267
+ "description": "Remove one hook file (action, filter, cron) from WordPress",
3258
3268
  "examples": [
3259
3269
  "$ lps hook rm hello",
3260
3270
  "$ lps hook remove hello --yes"
@@ -3645,7 +3655,7 @@
3645
3655
  "type": "option"
3646
3656
  },
3647
3657
  "overwrite": {
3648
- "description": "Push even over changes made on the site outside Loopress since your last push",
3658
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
3649
3659
  "name": "overwrite",
3650
3660
  "allowNo": false,
3651
3661
  "type": "boolean"
@@ -4027,7 +4037,7 @@
4027
4037
  "type": "option"
4028
4038
  },
4029
4039
  "overwrite": {
4030
- "description": "Push even over changes made on the site outside Loopress since your last push",
4040
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
4031
4041
  "name": "overwrite",
4032
4042
  "allowNo": false,
4033
4043
  "type": "boolean"
@@ -4570,7 +4580,7 @@
4570
4580
  "type": "option"
4571
4581
  },
4572
4582
  "overwrite": {
4573
- "description": "Push even over changes made on the site outside Loopress since your last push",
4583
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
4574
4584
  "name": "overwrite",
4575
4585
  "allowNo": false,
4576
4586
  "type": "boolean"
@@ -4947,11 +4957,12 @@
4947
4957
  "name": "slug"
4948
4958
  }
4949
4959
  },
4950
- "description": "Push static HTML pages (pages/<slug>.html) to WordPress. The `status` header (draft or publish, draft by default) is applied on every push.",
4960
+ "description": "Push local static HTML pages (pages/<slug>.html) to WordPress, or only one when a slug is given. The `status` header (draft or publish, draft by default) is applied on every push.",
4951
4961
  "examples": [
4952
4962
  "$ lps page push",
4953
4963
  "$ lps page push legal-notice",
4954
- "$ lps page push --dry-run"
4964
+ "$ lps page push --dry-run",
4965
+ "$ lps page push about --overwrite"
4955
4966
  ],
4956
4967
  "flags": {
4957
4968
  "json": {
@@ -4969,7 +4980,7 @@
4969
4980
  "type": "option"
4970
4981
  },
4971
4982
  "overwrite": {
4972
- "description": "Push even over changes made on the site outside Loopress since your last push",
4983
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
4973
4984
  "name": "overwrite",
4974
4985
  "allowNo": false,
4975
4986
  "type": "boolean"
@@ -5027,19 +5038,20 @@
5027
5038
  "push.js"
5028
5039
  ]
5029
5040
  },
5030
- "pattern:diff": {
5041
+ "plugin:add": {
5031
5042
  "aliases": [],
5032
5043
  "args": {
5033
- "path": {
5034
- "description": "Path to patterns directory (overrides project config)",
5035
- "name": "path"
5044
+ "slug": {
5045
+ "description": "Plugin slug on WordPress.org",
5046
+ "name": "slug",
5047
+ "required": true
5036
5048
  }
5037
5049
  },
5038
- "description": "Show what differs in block patterns between your local patterns/ files and a WordPress environment, or between two environments",
5050
+ "description": "Add a WordPress.org plugin to loopress.json",
5039
5051
  "examples": [
5040
- "$ lps pattern diff",
5041
- "$ lps pattern diff --env staging",
5042
- "$ lps pattern diff --env staging --against production"
5052
+ "$ lps plugin add woocommerce",
5053
+ "$ lps plugin add woocommerce --version 9.4.2",
5054
+ "$ lps plugin add contact-form-7 --dry-run"
5043
5055
  ],
5044
5056
  "flags": {
5045
5057
  "json": {
@@ -5056,9 +5068,16 @@
5056
5068
  "multiple": false,
5057
5069
  "type": "option"
5058
5070
  },
5059
- "against": {
5060
- "description": "Compare the primary environment against this second environment instead of against local files",
5061
- "name": "against",
5071
+ "dry-run": {
5072
+ "char": "d",
5073
+ "description": "Show what would change without making changes",
5074
+ "name": "dry-run",
5075
+ "allowNo": false,
5076
+ "type": "boolean"
5077
+ },
5078
+ "version": {
5079
+ "description": "Exact version to pin (default: \"latest\", tracked on every push)",
5080
+ "name": "version",
5062
5081
  "hasDynamicHelp": false,
5063
5082
  "multiple": false,
5064
5083
  "type": "option"
@@ -5066,7 +5085,7 @@
5066
5085
  },
5067
5086
  "hasDynamicHelp": false,
5068
5087
  "hiddenAliases": [],
5069
- "id": "pattern:diff",
5088
+ "id": "plugin:add",
5070
5089
  "pluginAlias": "@loopress/cli",
5071
5090
  "pluginName": "@loopress/cli",
5072
5091
  "pluginType": "core",
@@ -5088,28 +5107,20 @@
5088
5107
  "type": "boolean"
5089
5108
  }
5090
5109
  },
5091
- "againstFlag": {
5092
- "against": {
5093
- "description": "Compare the primary environment against this second environment instead of against local files",
5094
- "input": [],
5095
- "multiple": false,
5096
- "type": "option"
5097
- }
5098
- },
5099
5110
  "isESM": true,
5100
5111
  "relativePath": [
5101
5112
  "dist",
5102
5113
  "commands",
5103
- "pattern",
5104
- "diff.js"
5114
+ "plugin",
5115
+ "add.js"
5105
5116
  ]
5106
5117
  },
5107
- "pattern:list": {
5118
+ "plugin:audit": {
5108
5119
  "aliases": [],
5109
5120
  "args": {},
5110
- "description": "List the block patterns registered on WordPress by Loopress, the theme and plugins (not WordPress core). Only Loopress ones are pulled and pushed.",
5121
+ "description": "Check the plugins in loopress.json for known vulnerabilities (wpvulnerability.net) and health issues",
5111
5122
  "examples": [
5112
- "$ lps pattern list"
5123
+ "$ lps plugin audit"
5113
5124
  ],
5114
5125
  "flags": {
5115
5126
  "json": {
@@ -5129,7 +5140,7 @@
5129
5140
  },
5130
5141
  "hasDynamicHelp": false,
5131
5142
  "hiddenAliases": [],
5132
- "id": "pattern:list",
5143
+ "id": "plugin:audit",
5133
5144
  "pluginAlias": "@loopress/cli",
5134
5145
  "pluginName": "@loopress/cli",
5135
5146
  "pluginType": "core",
@@ -5155,21 +5166,17 @@
5155
5166
  "relativePath": [
5156
5167
  "dist",
5157
5168
  "commands",
5158
- "pattern",
5159
- "list.js"
5169
+ "plugin",
5170
+ "audit.js"
5160
5171
  ]
5161
5172
  },
5162
- "pattern:pull": {
5173
+ "plugin:pull": {
5163
5174
  "aliases": [],
5164
- "args": {
5165
- "path": {
5166
- "description": "Path to the patterns directory (overrides project config)",
5167
- "name": "path"
5168
- }
5169
- },
5170
- "description": "Pull the block patterns Loopress manages on WordPress into patterns/<slug>.html files. Patterns registered by the theme or a plugin are never pulled, see `lps pattern list`.",
5175
+ "args": {},
5176
+ "description": "Pull installed plugins from WordPress into loopress.json (or composer.json), pinned to their live versions. Plugins already tracked are refreshed; new ones are offered as a list to tick, so plugins that only belong on this environment (cache, security, backups) stay out of the project.",
5171
5177
  "examples": [
5172
- "$ lps pattern pull"
5178
+ "$ lps plugin pull",
5179
+ "$ lps plugin pull --env production --plugin query-monitor"
5173
5180
  ],
5174
5181
  "flags": {
5175
5182
  "json": {
@@ -5199,11 +5206,18 @@
5199
5206
  "name": "yes",
5200
5207
  "allowNo": false,
5201
5208
  "type": "boolean"
5209
+ },
5210
+ "plugin": {
5211
+ "description": "Start tracking this installed plugin too, without asking (repeatable)",
5212
+ "name": "plugin",
5213
+ "hasDynamicHelp": false,
5214
+ "multiple": true,
5215
+ "type": "option"
5202
5216
  }
5203
5217
  },
5204
5218
  "hasDynamicHelp": false,
5205
5219
  "hiddenAliases": [],
5206
- "id": "pattern:pull",
5220
+ "id": "plugin:pull",
5207
5221
  "pluginAlias": "@loopress/cli",
5208
5222
  "pluginName": "@loopress/cli",
5209
5223
  "pluginType": "core",
@@ -5229,21 +5243,18 @@
5229
5243
  "relativePath": [
5230
5244
  "dist",
5231
5245
  "commands",
5232
- "pattern",
5246
+ "plugin",
5233
5247
  "pull.js"
5234
5248
  ]
5235
5249
  },
5236
- "pattern:push": {
5250
+ "plugin:push": {
5237
5251
  "aliases": [],
5238
- "args": {
5239
- "path": {
5240
- "description": "Path to the patterns directory (overrides project config)",
5241
- "name": "path"
5242
- }
5243
- },
5244
- "description": "Push local block patterns (patterns/<slug>.html, block markup under a title/categories header) to WordPress, registered as loopress/<slug>. Create or update only, never deletes a pattern (use `lps pattern rm`).",
5252
+ "args": {},
5253
+ "description": "Install WordPress.org plugins on WordPress to match loopress.json (active state included) or composer.json, via Composer + WPackagist",
5245
5254
  "examples": [
5246
- "$ lps pattern push"
5255
+ "$ lps plugin push",
5256
+ "$ lps plugin push --dry-run",
5257
+ "$ lps plugin push --force --prune"
5247
5258
  ],
5248
5259
  "flags": {
5249
5260
  "json": {
@@ -5261,7 +5272,7 @@
5261
5272
  "type": "option"
5262
5273
  },
5263
5274
  "overwrite": {
5264
- "description": "Push even over changes made on the site outside Loopress since your last push",
5275
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
5265
5276
  "name": "overwrite",
5266
5277
  "allowNo": false,
5267
5278
  "type": "boolean"
@@ -5285,11 +5296,29 @@
5285
5296
  "name": "yes",
5286
5297
  "allowNo": false,
5287
5298
  "type": "boolean"
5299
+ },
5300
+ "activate": {
5301
+ "description": "composer.json projects only: activate every plugin it declares. Without it, plugins keep their current state and new ones stay inactive",
5302
+ "name": "activate",
5303
+ "allowNo": false,
5304
+ "type": "boolean"
5305
+ },
5306
+ "force": {
5307
+ "description": "Allow downgrades and let Loopress take over plugins installed outside it (replaces their files)",
5308
+ "name": "force",
5309
+ "allowNo": false,
5310
+ "type": "boolean"
5311
+ },
5312
+ "prune": {
5313
+ "description": "Deactivate plugins that are active on the site but absent from loopress.json (or composer.json)",
5314
+ "name": "prune",
5315
+ "allowNo": false,
5316
+ "type": "boolean"
5288
5317
  }
5289
5318
  },
5290
5319
  "hasDynamicHelp": false,
5291
5320
  "hiddenAliases": [],
5292
- "id": "pattern:push",
5321
+ "id": "plugin:push",
5293
5322
  "pluginAlias": "@loopress/cli",
5294
5323
  "pluginName": "@loopress/cli",
5295
5324
  "pluginType": "core",
@@ -5315,25 +5344,16 @@
5315
5344
  "relativePath": [
5316
5345
  "dist",
5317
5346
  "commands",
5318
- "pattern",
5347
+ "plugin",
5319
5348
  "push.js"
5320
5349
  ]
5321
5350
  },
5322
- "pattern:rm": {
5323
- "aliases": [
5324
- "pattern:remove"
5325
- ],
5326
- "args": {
5327
- "slug": {
5328
- "description": "The pattern slug, its patterns/ file name without .html",
5329
- "name": "slug",
5330
- "required": true
5331
- }
5332
- },
5333
- "description": "Stop registering a Loopress block pattern on WordPress. A wp:pattern reference to it renders nothing, copies already inserted in posts stay.",
5351
+ "plugin:status": {
5352
+ "aliases": [],
5353
+ "args": {},
5354
+ "description": "Compare the plugins on WordPress against loopress.json and report drift (missing, wrong version, inactive, untracked)",
5334
5355
  "examples": [
5335
- "$ lps pattern rm <slug>",
5336
- "$ lps pattern remove <slug> --yes"
5356
+ "$ lps plugin status"
5337
5357
  ],
5338
5358
  "flags": {
5339
5359
  "json": {
@@ -5349,25 +5369,11 @@
5349
5369
  "hasDynamicHelp": false,
5350
5370
  "multiple": false,
5351
5371
  "type": "option"
5352
- },
5353
- "dry-run": {
5354
- "char": "d",
5355
- "description": "Show what would change without making changes",
5356
- "name": "dry-run",
5357
- "allowNo": false,
5358
- "type": "boolean"
5359
- },
5360
- "yes": {
5361
- "char": "y",
5362
- "description": "Answer yes to confirmation prompts",
5363
- "name": "yes",
5364
- "allowNo": false,
5365
- "type": "boolean"
5366
5372
  }
5367
5373
  },
5368
5374
  "hasDynamicHelp": false,
5369
5375
  "hiddenAliases": [],
5370
- "id": "pattern:rm",
5376
+ "id": "plugin:status",
5371
5377
  "pluginAlias": "@loopress/cli",
5372
5378
  "pluginName": "@loopress/cli",
5373
5379
  "pluginType": "core",
@@ -5393,11 +5399,11 @@
5393
5399
  "relativePath": [
5394
5400
  "dist",
5395
5401
  "commands",
5396
- "pattern",
5397
- "rm.js"
5402
+ "plugin",
5403
+ "status.js"
5398
5404
  ]
5399
5405
  },
5400
- "pattern:rollback": {
5406
+ "pattern:diff": {
5401
5407
  "aliases": [],
5402
5408
  "args": {
5403
5409
  "path": {
@@ -5405,12 +5411,11 @@
5405
5411
  "name": "path"
5406
5412
  }
5407
5413
  },
5408
- "description": "Restore block patterns to a snapshot taken automatically before an earlier `lps pattern push`",
5414
+ "description": "Show what differs in block patterns between your local patterns/ files and a WordPress environment, or between two environments",
5409
5415
  "examples": [
5410
- "$ lps pattern rollback",
5411
- "$ lps pattern rollback --list",
5412
- "$ lps pattern rollback --to 1732000000000",
5413
- "$ lps pattern rollback --dry-run"
5416
+ "$ lps pattern diff",
5417
+ "$ lps pattern diff --env staging",
5418
+ "$ lps pattern diff --env staging --against production"
5414
5419
  ],
5415
5420
  "flags": {
5416
5421
  "json": {
@@ -5427,29 +5432,9 @@
5427
5432
  "multiple": false,
5428
5433
  "type": "option"
5429
5434
  },
5430
- "dry-run": {
5431
- "char": "d",
5432
- "description": "Show what would change without making changes",
5433
- "name": "dry-run",
5434
- "allowNo": false,
5435
- "type": "boolean"
5436
- },
5437
- "yes": {
5438
- "char": "y",
5439
- "description": "Answer yes to confirmation prompts",
5440
- "name": "yes",
5441
- "allowNo": false,
5442
- "type": "boolean"
5443
- },
5444
- "list": {
5445
- "description": "List available snapshots instead of rolling back",
5446
- "name": "list",
5447
- "allowNo": false,
5448
- "type": "boolean"
5449
- },
5450
- "to": {
5451
- "description": "Roll back to this snapshot id instead of the most recent one",
5452
- "name": "to",
5435
+ "against": {
5436
+ "description": "Compare the primary environment against this second environment instead of against local files",
5437
+ "name": "against",
5453
5438
  "hasDynamicHelp": false,
5454
5439
  "multiple": false,
5455
5440
  "type": "option"
@@ -5457,7 +5442,7 @@
5457
5442
  },
5458
5443
  "hasDynamicHelp": false,
5459
5444
  "hiddenAliases": [],
5460
- "id": "pattern:rollback",
5445
+ "id": "pattern:diff",
5461
5446
  "pluginAlias": "@loopress/cli",
5462
5447
  "pluginName": "@loopress/cli",
5463
5448
  "pluginType": "core",
@@ -5479,28 +5464,28 @@
5479
5464
  "type": "boolean"
5480
5465
  }
5481
5466
  },
5467
+ "againstFlag": {
5468
+ "against": {
5469
+ "description": "Compare the primary environment against this second environment instead of against local files",
5470
+ "input": [],
5471
+ "multiple": false,
5472
+ "type": "option"
5473
+ }
5474
+ },
5482
5475
  "isESM": true,
5483
5476
  "relativePath": [
5484
5477
  "dist",
5485
5478
  "commands",
5486
5479
  "pattern",
5487
- "rollback.js"
5480
+ "diff.js"
5488
5481
  ]
5489
5482
  },
5490
- "plugin:add": {
5483
+ "pattern:list": {
5491
5484
  "aliases": [],
5492
- "args": {
5493
- "slug": {
5494
- "description": "Plugin slug on WordPress.org",
5495
- "name": "slug",
5496
- "required": true
5497
- }
5498
- },
5499
- "description": "Add a WordPress.org plugin to loopress.json",
5485
+ "args": {},
5486
+ "description": "List the block patterns registered on WordPress by Loopress, the theme and plugins (not WordPress core). Only Loopress ones are pulled and pushed.",
5500
5487
  "examples": [
5501
- "$ lps plugin add woocommerce",
5502
- "$ lps plugin add woocommerce --version 9.4.2",
5503
- "$ lps plugin add contact-form-7 --dry-run"
5488
+ "$ lps pattern list"
5504
5489
  ],
5505
5490
  "flags": {
5506
5491
  "json": {
@@ -5516,25 +5501,11 @@
5516
5501
  "hasDynamicHelp": false,
5517
5502
  "multiple": false,
5518
5503
  "type": "option"
5519
- },
5520
- "dry-run": {
5521
- "char": "d",
5522
- "description": "Show what would change without making changes",
5523
- "name": "dry-run",
5524
- "allowNo": false,
5525
- "type": "boolean"
5526
- },
5527
- "version": {
5528
- "description": "Exact version to pin (default: \"latest\", tracked on every push)",
5529
- "name": "version",
5530
- "hasDynamicHelp": false,
5531
- "multiple": false,
5532
- "type": "option"
5533
5504
  }
5534
5505
  },
5535
5506
  "hasDynamicHelp": false,
5536
5507
  "hiddenAliases": [],
5537
- "id": "plugin:add",
5508
+ "id": "pattern:list",
5538
5509
  "pluginAlias": "@loopress/cli",
5539
5510
  "pluginName": "@loopress/cli",
5540
5511
  "pluginType": "core",
@@ -5560,16 +5531,21 @@
5560
5531
  "relativePath": [
5561
5532
  "dist",
5562
5533
  "commands",
5563
- "plugin",
5564
- "add.js"
5534
+ "pattern",
5535
+ "list.js"
5565
5536
  ]
5566
5537
  },
5567
- "plugin:audit": {
5538
+ "pattern:pull": {
5568
5539
  "aliases": [],
5569
- "args": {},
5570
- "description": "Check the plugins in loopress.json for known vulnerabilities and health issues",
5571
- "examples": [
5572
- "$ lps plugin audit"
5540
+ "args": {
5541
+ "path": {
5542
+ "description": "Path to the patterns directory (overrides project config)",
5543
+ "name": "path"
5544
+ }
5545
+ },
5546
+ "description": "Pull the block patterns Loopress manages on WordPress into patterns/<slug>.html files. Patterns registered by the theme or a plugin are never pulled, see `lps pattern list`.",
5547
+ "examples": [
5548
+ "$ lps pattern pull"
5573
5549
  ],
5574
5550
  "flags": {
5575
5551
  "json": {
@@ -5585,11 +5561,25 @@
5585
5561
  "hasDynamicHelp": false,
5586
5562
  "multiple": false,
5587
5563
  "type": "option"
5564
+ },
5565
+ "dry-run": {
5566
+ "char": "d",
5567
+ "description": "Show what would change without making changes",
5568
+ "name": "dry-run",
5569
+ "allowNo": false,
5570
+ "type": "boolean"
5571
+ },
5572
+ "yes": {
5573
+ "char": "y",
5574
+ "description": "Answer yes to confirmation prompts",
5575
+ "name": "yes",
5576
+ "allowNo": false,
5577
+ "type": "boolean"
5588
5578
  }
5589
5579
  },
5590
5580
  "hasDynamicHelp": false,
5591
5581
  "hiddenAliases": [],
5592
- "id": "plugin:audit",
5582
+ "id": "pattern:pull",
5593
5583
  "pluginAlias": "@loopress/cli",
5594
5584
  "pluginName": "@loopress/cli",
5595
5585
  "pluginType": "core",
@@ -5615,17 +5605,21 @@
5615
5605
  "relativePath": [
5616
5606
  "dist",
5617
5607
  "commands",
5618
- "plugin",
5619
- "audit.js"
5608
+ "pattern",
5609
+ "pull.js"
5620
5610
  ]
5621
5611
  },
5622
- "plugin:pull": {
5612
+ "pattern:push": {
5623
5613
  "aliases": [],
5624
- "args": {},
5625
- "description": "Pull installed plugins from WordPress into loopress.json (or composer.json), pinned to their live versions. Plugins already tracked are refreshed; new ones are offered as a list to tick, so plugins that only belong on this environment (cache, security, backups) stay out of the project.",
5614
+ "args": {
5615
+ "path": {
5616
+ "description": "Path to the patterns directory (overrides project config)",
5617
+ "name": "path"
5618
+ }
5619
+ },
5620
+ "description": "Push local block patterns (patterns/<slug>.html, block markup under a title/categories header) to WordPress, registered as loopress/<slug> and referenced with <!-- wp:pattern {\"slug\":\"loopress/<slug>\"} /-->. Create or update only, never deletes a pattern (use `lps pattern rm`).",
5626
5621
  "examples": [
5627
- "$ lps plugin pull",
5628
- "$ lps plugin pull --env production --plugin query-monitor"
5622
+ "$ lps pattern push"
5629
5623
  ],
5630
5624
  "flags": {
5631
5625
  "json": {
@@ -5642,6 +5636,18 @@
5642
5636
  "multiple": false,
5643
5637
  "type": "option"
5644
5638
  },
5639
+ "overwrite": {
5640
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
5641
+ "name": "overwrite",
5642
+ "allowNo": false,
5643
+ "type": "boolean"
5644
+ },
5645
+ "production-confirmed": {
5646
+ "hidden": true,
5647
+ "name": "production-confirmed",
5648
+ "allowNo": false,
5649
+ "type": "boolean"
5650
+ },
5645
5651
  "dry-run": {
5646
5652
  "char": "d",
5647
5653
  "description": "Show what would change without making changes",
@@ -5655,18 +5661,11 @@
5655
5661
  "name": "yes",
5656
5662
  "allowNo": false,
5657
5663
  "type": "boolean"
5658
- },
5659
- "plugin": {
5660
- "description": "Start tracking this installed plugin too, without asking (repeatable)",
5661
- "name": "plugin",
5662
- "hasDynamicHelp": false,
5663
- "multiple": true,
5664
- "type": "option"
5665
5664
  }
5666
5665
  },
5667
5666
  "hasDynamicHelp": false,
5668
5667
  "hiddenAliases": [],
5669
- "id": "plugin:pull",
5668
+ "id": "pattern:push",
5670
5669
  "pluginAlias": "@loopress/cli",
5671
5670
  "pluginName": "@loopress/cli",
5672
5671
  "pluginType": "core",
@@ -5692,18 +5691,25 @@
5692
5691
  "relativePath": [
5693
5692
  "dist",
5694
5693
  "commands",
5695
- "plugin",
5696
- "pull.js"
5694
+ "pattern",
5695
+ "push.js"
5697
5696
  ]
5698
5697
  },
5699
- "plugin:push": {
5700
- "aliases": [],
5701
- "args": {},
5702
- "description": "Install plugins on WordPress to match loopress.json (or composer.json), via Composer + WPackagist",
5698
+ "pattern:rm": {
5699
+ "aliases": [
5700
+ "pattern:remove"
5701
+ ],
5702
+ "args": {
5703
+ "slug": {
5704
+ "description": "The pattern slug, its patterns/ file name without .html",
5705
+ "name": "slug",
5706
+ "required": true
5707
+ }
5708
+ },
5709
+ "description": "Stop registering a Loopress block pattern on WordPress. A wp:pattern reference to it renders nothing until it is pushed again, copies already inserted in posts stay.",
5703
5710
  "examples": [
5704
- "$ lps plugin push",
5705
- "$ lps plugin push --dry-run",
5706
- "$ lps plugin push --force --prune"
5711
+ "$ lps pattern rm <slug>",
5712
+ "$ lps pattern remove <slug> --yes"
5707
5713
  ],
5708
5714
  "flags": {
5709
5715
  "json": {
@@ -5720,18 +5726,6 @@
5720
5726
  "multiple": false,
5721
5727
  "type": "option"
5722
5728
  },
5723
- "overwrite": {
5724
- "description": "Push even over changes made on the site outside Loopress since your last push",
5725
- "name": "overwrite",
5726
- "allowNo": false,
5727
- "type": "boolean"
5728
- },
5729
- "production-confirmed": {
5730
- "hidden": true,
5731
- "name": "production-confirmed",
5732
- "allowNo": false,
5733
- "type": "boolean"
5734
- },
5735
5729
  "dry-run": {
5736
5730
  "char": "d",
5737
5731
  "description": "Show what would change without making changes",
@@ -5745,29 +5739,11 @@
5745
5739
  "name": "yes",
5746
5740
  "allowNo": false,
5747
5741
  "type": "boolean"
5748
- },
5749
- "activate": {
5750
- "description": "composer.json projects only: activate every plugin it declares. Without it, plugins keep their current state and new ones stay inactive",
5751
- "name": "activate",
5752
- "allowNo": false,
5753
- "type": "boolean"
5754
- },
5755
- "force": {
5756
- "description": "Allow downgrades and let Loopress take over plugins installed outside it (replaces their files)",
5757
- "name": "force",
5758
- "allowNo": false,
5759
- "type": "boolean"
5760
- },
5761
- "prune": {
5762
- "description": "Deactivate plugins that are active on the site but absent from loopress.json (or composer.json)",
5763
- "name": "prune",
5764
- "allowNo": false,
5765
- "type": "boolean"
5766
5742
  }
5767
5743
  },
5768
5744
  "hasDynamicHelp": false,
5769
5745
  "hiddenAliases": [],
5770
- "id": "plugin:push",
5746
+ "id": "pattern:rm",
5771
5747
  "pluginAlias": "@loopress/cli",
5772
5748
  "pluginName": "@loopress/cli",
5773
5749
  "pluginType": "core",
@@ -5793,16 +5769,24 @@
5793
5769
  "relativePath": [
5794
5770
  "dist",
5795
5771
  "commands",
5796
- "plugin",
5797
- "push.js"
5772
+ "pattern",
5773
+ "rm.js"
5798
5774
  ]
5799
5775
  },
5800
- "plugin:status": {
5776
+ "pattern:rollback": {
5801
5777
  "aliases": [],
5802
- "args": {},
5803
- "description": "Compare the plugins on WordPress against loopress.json and report drift",
5778
+ "args": {
5779
+ "path": {
5780
+ "description": "Path to patterns directory (overrides project config)",
5781
+ "name": "path"
5782
+ }
5783
+ },
5784
+ "description": "Restore block patterns to a snapshot taken automatically before an earlier `lps pattern push`",
5804
5785
  "examples": [
5805
- "$ lps plugin status"
5786
+ "$ lps pattern rollback",
5787
+ "$ lps pattern rollback --list",
5788
+ "$ lps pattern rollback --to 1732000000000",
5789
+ "$ lps pattern rollback --dry-run"
5806
5790
  ],
5807
5791
  "flags": {
5808
5792
  "json": {
@@ -5818,11 +5802,38 @@
5818
5802
  "hasDynamicHelp": false,
5819
5803
  "multiple": false,
5820
5804
  "type": "option"
5805
+ },
5806
+ "dry-run": {
5807
+ "char": "d",
5808
+ "description": "Show what would change without making changes",
5809
+ "name": "dry-run",
5810
+ "allowNo": false,
5811
+ "type": "boolean"
5812
+ },
5813
+ "yes": {
5814
+ "char": "y",
5815
+ "description": "Answer yes to confirmation prompts",
5816
+ "name": "yes",
5817
+ "allowNo": false,
5818
+ "type": "boolean"
5819
+ },
5820
+ "list": {
5821
+ "description": "List available snapshots instead of rolling back",
5822
+ "name": "list",
5823
+ "allowNo": false,
5824
+ "type": "boolean"
5825
+ },
5826
+ "to": {
5827
+ "description": "Roll back to this snapshot id instead of the most recent one",
5828
+ "name": "to",
5829
+ "hasDynamicHelp": false,
5830
+ "multiple": false,
5831
+ "type": "option"
5821
5832
  }
5822
5833
  },
5823
5834
  "hasDynamicHelp": false,
5824
5835
  "hiddenAliases": [],
5825
- "id": "plugin:status",
5836
+ "id": "pattern:rollback",
5826
5837
  "pluginAlias": "@loopress/cli",
5827
5838
  "pluginName": "@loopress/cli",
5828
5839
  "pluginType": "core",
@@ -5848,8 +5859,8 @@
5848
5859
  "relativePath": [
5849
5860
  "dist",
5850
5861
  "commands",
5851
- "plugin",
5852
- "status.js"
5862
+ "pattern",
5863
+ "rollback.js"
5853
5864
  ]
5854
5865
  },
5855
5866
  "project:config": {
@@ -6295,7 +6306,7 @@
6295
6306
  "type": "option"
6296
6307
  },
6297
6308
  "overwrite": {
6298
- "description": "Push even over changes made on the site outside Loopress since your last push",
6309
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
6299
6310
  "name": "overwrite",
6300
6311
  "allowNo": false,
6301
6312
  "type": "boolean"
@@ -6601,7 +6612,7 @@
6601
6612
  "snippet:list": {
6602
6613
  "aliases": [],
6603
6614
  "args": {},
6604
- "description": "List snippets from WordPress",
6615
+ "description": "List snippets currently on WordPress",
6605
6616
  "examples": [
6606
6617
  "$ lps snippet list"
6607
6618
  ],
@@ -6691,7 +6702,7 @@
6691
6702
  "name": "path"
6692
6703
  }
6693
6704
  },
6694
- "description": "Pull snippets from WordPress",
6705
+ "description": "Pull snippets from WordPress into local files",
6695
6706
  "examples": [
6696
6707
  "$ lps snippet pull",
6697
6708
  "$ lps snippet pull ./snippets"
@@ -6766,7 +6777,7 @@
6766
6777
  "name": "path"
6767
6778
  }
6768
6779
  },
6769
- "description": "Push snippets to WordPress. Local snippet files created or updated remotely are renamed on disk to the `<id>-<slug>` convention.",
6780
+ "description": "Push local snippet files to WordPress. Local snippet files created or updated remotely are renamed on disk to the `<id>-<slug>` convention.",
6770
6781
  "examples": [
6771
6782
  "$ lps snippet push",
6772
6783
  "$ lps snippet push ./snippets"
@@ -6787,7 +6798,7 @@
6787
6798
  "type": "option"
6788
6799
  },
6789
6800
  "overwrite": {
6790
- "description": "Push even over changes made on the site outside Loopress since your last push",
6801
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
6791
6802
  "name": "overwrite",
6792
6803
  "allowNo": false,
6793
6804
  "type": "boolean"
@@ -6983,19 +6994,19 @@
6983
6994
  "enable.js"
6984
6995
  ]
6985
6996
  },
6986
- "theme:add": {
6997
+ "taxonomy:diff": {
6987
6998
  "aliases": [],
6988
6999
  "args": {
6989
- "slug": {
6990
- "description": "Theme slug on WordPress.org",
6991
- "name": "slug",
6992
- "required": true
7000
+ "path": {
7001
+ "description": "Path to taxonomies directory (overrides project config)",
7002
+ "name": "path"
6993
7003
  }
6994
7004
  },
6995
- "description": "Add a WordPress.org theme to loopress.json",
7005
+ "description": "Show what differs in taxonomies between your local taxonomies/ files and a WordPress environment, or between two environments",
6996
7006
  "examples": [
6997
- "$ lps theme add generatepress",
6998
- "$ lps theme add generatepress --version 3.4.0"
7007
+ "$ lps taxonomy diff",
7008
+ "$ lps taxonomy diff --env staging",
7009
+ "$ lps taxonomy diff --env staging --against production"
6999
7010
  ],
7000
7011
  "flags": {
7001
7012
  "json": {
@@ -7012,16 +7023,9 @@
7012
7023
  "multiple": false,
7013
7024
  "type": "option"
7014
7025
  },
7015
- "dry-run": {
7016
- "char": "d",
7017
- "description": "Show what would change without making changes",
7018
- "name": "dry-run",
7019
- "allowNo": false,
7020
- "type": "boolean"
7021
- },
7022
- "version": {
7023
- "description": "Exact version to pin (default: \"latest\")",
7024
- "name": "version",
7026
+ "against": {
7027
+ "description": "Compare the primary environment against this second environment instead of against local files",
7028
+ "name": "against",
7025
7029
  "hasDynamicHelp": false,
7026
7030
  "multiple": false,
7027
7031
  "type": "option"
@@ -7029,7 +7033,7 @@
7029
7033
  },
7030
7034
  "hasDynamicHelp": false,
7031
7035
  "hiddenAliases": [],
7032
- "id": "theme:add",
7036
+ "id": "taxonomy:diff",
7033
7037
  "pluginAlias": "@loopress/cli",
7034
7038
  "pluginName": "@loopress/cli",
7035
7039
  "pluginType": "core",
@@ -7051,22 +7055,28 @@
7051
7055
  "type": "boolean"
7052
7056
  }
7053
7057
  },
7058
+ "againstFlag": {
7059
+ "against": {
7060
+ "description": "Compare the primary environment against this second environment instead of against local files",
7061
+ "input": [],
7062
+ "multiple": false,
7063
+ "type": "option"
7064
+ }
7065
+ },
7054
7066
  "isESM": true,
7055
7067
  "relativePath": [
7056
7068
  "dist",
7057
7069
  "commands",
7058
- "theme",
7059
- "add.js"
7070
+ "taxonomy",
7071
+ "diff.js"
7060
7072
  ]
7061
7073
  },
7062
- "theme:pull": {
7074
+ "taxonomy:list": {
7063
7075
  "aliases": [],
7064
7076
  "args": {},
7065
- "description": "Pull everything theme related from WordPress: theme versions and Global Styles",
7077
+ "description": "List the taxonomies registered on WordPress, where each comes from (Loopress, WordPress, ACF, CPT UI, a theme or plugin) and the post types it attaches to. Only Loopress ones are pulled and pushed.",
7066
7078
  "examples": [
7067
- "$ lps theme pull",
7068
- "$ lps theme pull --env staging",
7069
- "$ lps theme pull --dry-run"
7079
+ "$ lps taxonomy list"
7070
7080
  ],
7071
7081
  "flags": {
7072
7082
  "json": {
@@ -7082,18 +7092,11 @@
7082
7092
  "hasDynamicHelp": false,
7083
7093
  "multiple": false,
7084
7094
  "type": "option"
7085
- },
7086
- "dry-run": {
7087
- "char": "d",
7088
- "description": "Show what would change without making changes",
7089
- "name": "dry-run",
7090
- "allowNo": false,
7091
- "type": "boolean"
7092
7095
  }
7093
7096
  },
7094
7097
  "hasDynamicHelp": false,
7095
7098
  "hiddenAliases": [],
7096
- "id": "theme:pull",
7099
+ "id": "taxonomy:list",
7097
7100
  "pluginAlias": "@loopress/cli",
7098
7101
  "pluginName": "@loopress/cli",
7099
7102
  "pluginType": "core",
@@ -7119,18 +7122,21 @@
7119
7122
  "relativePath": [
7120
7123
  "dist",
7121
7124
  "commands",
7122
- "theme",
7123
- "pull.js"
7125
+ "taxonomy",
7126
+ "list.js"
7124
7127
  ]
7125
7128
  },
7126
- "theme:push": {
7129
+ "taxonomy:pull": {
7127
7130
  "aliases": [],
7128
- "args": {},
7129
- "description": "Push everything theme related to WordPress: theme versions, templates and parts, then Global Styles",
7131
+ "args": {
7132
+ "path": {
7133
+ "description": "Path to the taxonomies directory (overrides project config)",
7134
+ "name": "path"
7135
+ }
7136
+ },
7137
+ "description": "Pull the taxonomies Loopress manages on WordPress into taxonomies/<slug>.json files, never their terms. Taxonomies registered by a theme or another plugin are never pulled, see `lps taxonomy list`.",
7130
7138
  "examples": [
7131
- "$ lps theme push",
7132
- "$ lps theme push --env staging",
7133
- "$ lps theme push --dry-run"
7139
+ "$ lps taxonomy pull"
7134
7140
  ],
7135
7141
  "flags": {
7136
7142
  "json": {
@@ -7160,17 +7166,11 @@
7160
7166
  "name": "yes",
7161
7167
  "allowNo": false,
7162
7168
  "type": "boolean"
7163
- },
7164
- "force": {
7165
- "description": "Passed to `lps theme version push`",
7166
- "name": "force",
7167
- "allowNo": false,
7168
- "type": "boolean"
7169
7169
  }
7170
7170
  },
7171
7171
  "hasDynamicHelp": false,
7172
7172
  "hiddenAliases": [],
7173
- "id": "theme:push",
7173
+ "id": "taxonomy:pull",
7174
7174
  "pluginAlias": "@loopress/cli",
7175
7175
  "pluginName": "@loopress/cli",
7176
7176
  "pluginType": "core",
@@ -7196,16 +7196,21 @@
7196
7196
  "relativePath": [
7197
7197
  "dist",
7198
7198
  "commands",
7199
- "theme",
7200
- "push.js"
7199
+ "taxonomy",
7200
+ "pull.js"
7201
7201
  ]
7202
7202
  },
7203
- "theme:status": {
7203
+ "taxonomy:push": {
7204
7204
  "aliases": [],
7205
- "args": {},
7206
- "description": "Compare the themes on WordPress against loopress.json and report version drift",
7205
+ "args": {
7206
+ "path": {
7207
+ "description": "Path to the taxonomies directory (overrides project config)",
7208
+ "name": "path"
7209
+ }
7210
+ },
7211
+ "description": "Push local taxonomies (taxonomies/<slug>.json, register_taxonomy() arguments plus \"object_type\") to WordPress. Create or update only, never deletes a taxonomy (use `lps taxonomy rm`), never touches its terms.",
7207
7212
  "examples": [
7208
- "$ lps theme status"
7213
+ "$ lps taxonomy push"
7209
7214
  ],
7210
7215
  "flags": {
7211
7216
  "json": {
@@ -7221,11 +7226,37 @@
7221
7226
  "hasDynamicHelp": false,
7222
7227
  "multiple": false,
7223
7228
  "type": "option"
7229
+ },
7230
+ "overwrite": {
7231
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
7232
+ "name": "overwrite",
7233
+ "allowNo": false,
7234
+ "type": "boolean"
7235
+ },
7236
+ "production-confirmed": {
7237
+ "hidden": true,
7238
+ "name": "production-confirmed",
7239
+ "allowNo": false,
7240
+ "type": "boolean"
7241
+ },
7242
+ "dry-run": {
7243
+ "char": "d",
7244
+ "description": "Show what would change without making changes",
7245
+ "name": "dry-run",
7246
+ "allowNo": false,
7247
+ "type": "boolean"
7248
+ },
7249
+ "yes": {
7250
+ "char": "y",
7251
+ "description": "Answer yes to confirmation prompts",
7252
+ "name": "yes",
7253
+ "allowNo": false,
7254
+ "type": "boolean"
7224
7255
  }
7225
7256
  },
7226
7257
  "hasDynamicHelp": false,
7227
7258
  "hiddenAliases": [],
7228
- "id": "theme:status",
7259
+ "id": "taxonomy:push",
7229
7260
  "pluginAlias": "@loopress/cli",
7230
7261
  "pluginName": "@loopress/cli",
7231
7262
  "pluginType": "core",
@@ -7251,23 +7282,25 @@
7251
7282
  "relativePath": [
7252
7283
  "dist",
7253
7284
  "commands",
7254
- "theme",
7255
- "status.js"
7285
+ "taxonomy",
7286
+ "push.js"
7256
7287
  ]
7257
7288
  },
7258
- "taxonomy:diff": {
7259
- "aliases": [],
7289
+ "taxonomy:rm": {
7290
+ "aliases": [
7291
+ "taxonomy:remove"
7292
+ ],
7260
7293
  "args": {
7261
- "path": {
7262
- "description": "Path to taxonomies directory (overrides project config)",
7263
- "name": "path"
7294
+ "slug": {
7295
+ "description": "The taxonomy slug, its taxonomies/ file name without .json",
7296
+ "name": "slug",
7297
+ "required": true
7264
7298
  }
7265
7299
  },
7266
- "description": "Show what differs in taxonomies between your local taxonomies/ files and a WordPress environment, or between two environments",
7300
+ "description": "Stop registering a Loopress taxonomy on WordPress. Its terms are kept in the database, hidden until the taxonomy is pushed again.",
7267
7301
  "examples": [
7268
- "$ lps taxonomy diff",
7269
- "$ lps taxonomy diff --env staging",
7270
- "$ lps taxonomy diff --env staging --against production"
7302
+ "$ lps taxonomy rm <slug>",
7303
+ "$ lps taxonomy remove <slug> --yes"
7271
7304
  ],
7272
7305
  "flags": {
7273
7306
  "json": {
@@ -7284,17 +7317,24 @@
7284
7317
  "multiple": false,
7285
7318
  "type": "option"
7286
7319
  },
7287
- "against": {
7288
- "description": "Compare the primary environment against this second environment instead of against local files",
7289
- "name": "against",
7290
- "hasDynamicHelp": false,
7291
- "multiple": false,
7292
- "type": "option"
7320
+ "dry-run": {
7321
+ "char": "d",
7322
+ "description": "Show what would change without making changes",
7323
+ "name": "dry-run",
7324
+ "allowNo": false,
7325
+ "type": "boolean"
7326
+ },
7327
+ "yes": {
7328
+ "char": "y",
7329
+ "description": "Answer yes to confirmation prompts",
7330
+ "name": "yes",
7331
+ "allowNo": false,
7332
+ "type": "boolean"
7293
7333
  }
7294
7334
  },
7295
7335
  "hasDynamicHelp": false,
7296
7336
  "hiddenAliases": [],
7297
- "id": "taxonomy:diff",
7337
+ "id": "taxonomy:rm",
7298
7338
  "pluginAlias": "@loopress/cli",
7299
7339
  "pluginName": "@loopress/cli",
7300
7340
  "pluginType": "core",
@@ -7316,28 +7356,28 @@
7316
7356
  "type": "boolean"
7317
7357
  }
7318
7358
  },
7319
- "againstFlag": {
7320
- "against": {
7321
- "description": "Compare the primary environment against this second environment instead of against local files",
7322
- "input": [],
7323
- "multiple": false,
7324
- "type": "option"
7325
- }
7326
- },
7327
7359
  "isESM": true,
7328
7360
  "relativePath": [
7329
7361
  "dist",
7330
7362
  "commands",
7331
7363
  "taxonomy",
7332
- "diff.js"
7364
+ "rm.js"
7333
7365
  ]
7334
7366
  },
7335
- "taxonomy:list": {
7367
+ "taxonomy:rollback": {
7336
7368
  "aliases": [],
7337
- "args": {},
7338
- "description": "List the taxonomies registered on WordPress, where each comes from (Loopress, WordPress, ACF, CPT UI, a theme or plugin) and the post types it attaches to. Only Loopress ones are pulled and pushed.",
7369
+ "args": {
7370
+ "path": {
7371
+ "description": "Path to taxonomies directory (overrides project config)",
7372
+ "name": "path"
7373
+ }
7374
+ },
7375
+ "description": "Restore taxonomies to a snapshot taken automatically before an earlier `lps taxonomy push`",
7339
7376
  "examples": [
7340
- "$ lps taxonomy list"
7377
+ "$ lps taxonomy rollback",
7378
+ "$ lps taxonomy rollback --list",
7379
+ "$ lps taxonomy rollback --to 1732000000000",
7380
+ "$ lps taxonomy rollback --dry-run"
7341
7381
  ],
7342
7382
  "flags": {
7343
7383
  "json": {
@@ -7353,11 +7393,38 @@
7353
7393
  "hasDynamicHelp": false,
7354
7394
  "multiple": false,
7355
7395
  "type": "option"
7396
+ },
7397
+ "dry-run": {
7398
+ "char": "d",
7399
+ "description": "Show what would change without making changes",
7400
+ "name": "dry-run",
7401
+ "allowNo": false,
7402
+ "type": "boolean"
7403
+ },
7404
+ "yes": {
7405
+ "char": "y",
7406
+ "description": "Answer yes to confirmation prompts",
7407
+ "name": "yes",
7408
+ "allowNo": false,
7409
+ "type": "boolean"
7410
+ },
7411
+ "list": {
7412
+ "description": "List available snapshots instead of rolling back",
7413
+ "name": "list",
7414
+ "allowNo": false,
7415
+ "type": "boolean"
7416
+ },
7417
+ "to": {
7418
+ "description": "Roll back to this snapshot id instead of the most recent one",
7419
+ "name": "to",
7420
+ "hasDynamicHelp": false,
7421
+ "multiple": false,
7422
+ "type": "option"
7356
7423
  }
7357
7424
  },
7358
7425
  "hasDynamicHelp": false,
7359
7426
  "hiddenAliases": [],
7360
- "id": "taxonomy:list",
7427
+ "id": "taxonomy:rollback",
7361
7428
  "pluginAlias": "@loopress/cli",
7362
7429
  "pluginName": "@loopress/cli",
7363
7430
  "pluginType": "core",
@@ -7384,20 +7451,22 @@
7384
7451
  "dist",
7385
7452
  "commands",
7386
7453
  "taxonomy",
7387
- "list.js"
7454
+ "rollback.js"
7388
7455
  ]
7389
7456
  },
7390
- "taxonomy:pull": {
7457
+ "theme:add": {
7391
7458
  "aliases": [],
7392
7459
  "args": {
7393
- "path": {
7394
- "description": "Path to the taxonomies directory (overrides project config)",
7395
- "name": "path"
7460
+ "slug": {
7461
+ "description": "Theme slug on WordPress.org",
7462
+ "name": "slug",
7463
+ "required": true
7396
7464
  }
7397
7465
  },
7398
- "description": "Pull the taxonomies Loopress manages on WordPress into taxonomies/<slug>.json files, never their terms. Taxonomies registered by a theme or another plugin are never pulled, see `lps taxonomy list`.",
7466
+ "description": "Add a WordPress.org theme to loopress.json",
7399
7467
  "examples": [
7400
- "$ lps taxonomy pull"
7468
+ "$ lps theme add generatepress",
7469
+ "$ lps theme add generatepress --version 3.4.0"
7401
7470
  ],
7402
7471
  "flags": {
7403
7472
  "json": {
@@ -7421,17 +7490,17 @@
7421
7490
  "allowNo": false,
7422
7491
  "type": "boolean"
7423
7492
  },
7424
- "yes": {
7425
- "char": "y",
7426
- "description": "Answer yes to confirmation prompts",
7427
- "name": "yes",
7428
- "allowNo": false,
7429
- "type": "boolean"
7493
+ "version": {
7494
+ "description": "Exact version to pin (default: \"latest\")",
7495
+ "name": "version",
7496
+ "hasDynamicHelp": false,
7497
+ "multiple": false,
7498
+ "type": "option"
7430
7499
  }
7431
7500
  },
7432
7501
  "hasDynamicHelp": false,
7433
7502
  "hiddenAliases": [],
7434
- "id": "taxonomy:pull",
7503
+ "id": "theme:add",
7435
7504
  "pluginAlias": "@loopress/cli",
7436
7505
  "pluginName": "@loopress/cli",
7437
7506
  "pluginType": "core",
@@ -7457,21 +7526,18 @@
7457
7526
  "relativePath": [
7458
7527
  "dist",
7459
7528
  "commands",
7460
- "taxonomy",
7461
- "pull.js"
7529
+ "theme",
7530
+ "add.js"
7462
7531
  ]
7463
7532
  },
7464
- "taxonomy:push": {
7533
+ "theme:pull": {
7465
7534
  "aliases": [],
7466
- "args": {
7467
- "path": {
7468
- "description": "Path to the taxonomies directory (overrides project config)",
7469
- "name": "path"
7470
- }
7471
- },
7472
- "description": "Push local taxonomies (taxonomies/<slug>.json, register_taxonomy() arguments plus \"object_type\") to WordPress. Create or update only, never deletes a taxonomy (use `lps taxonomy rm`), never touches its terms.",
7535
+ "args": {},
7536
+ "description": "Pull everything theme related from WordPress: theme versions into loopress.json, then Global Styles into a local file",
7473
7537
  "examples": [
7474
- "$ lps taxonomy push"
7538
+ "$ lps theme pull",
7539
+ "$ lps theme pull --env staging",
7540
+ "$ lps theme pull --dry-run"
7475
7541
  ],
7476
7542
  "flags": {
7477
7543
  "json": {
@@ -7488,36 +7554,17 @@
7488
7554
  "multiple": false,
7489
7555
  "type": "option"
7490
7556
  },
7491
- "overwrite": {
7492
- "description": "Push even over changes made on the site outside Loopress since your last push",
7493
- "name": "overwrite",
7494
- "allowNo": false,
7495
- "type": "boolean"
7496
- },
7497
- "production-confirmed": {
7498
- "hidden": true,
7499
- "name": "production-confirmed",
7500
- "allowNo": false,
7501
- "type": "boolean"
7502
- },
7503
7557
  "dry-run": {
7504
7558
  "char": "d",
7505
7559
  "description": "Show what would change without making changes",
7506
7560
  "name": "dry-run",
7507
7561
  "allowNo": false,
7508
7562
  "type": "boolean"
7509
- },
7510
- "yes": {
7511
- "char": "y",
7512
- "description": "Answer yes to confirmation prompts",
7513
- "name": "yes",
7514
- "allowNo": false,
7515
- "type": "boolean"
7516
7563
  }
7517
7564
  },
7518
7565
  "hasDynamicHelp": false,
7519
7566
  "hiddenAliases": [],
7520
- "id": "taxonomy:push",
7567
+ "id": "theme:pull",
7521
7568
  "pluginAlias": "@loopress/cli",
7522
7569
  "pluginName": "@loopress/cli",
7523
7570
  "pluginType": "core",
@@ -7543,25 +7590,18 @@
7543
7590
  "relativePath": [
7544
7591
  "dist",
7545
7592
  "commands",
7546
- "taxonomy",
7547
- "push.js"
7593
+ "theme",
7594
+ "pull.js"
7548
7595
  ]
7549
7596
  },
7550
- "taxonomy:rm": {
7551
- "aliases": [
7552
- "taxonomy:remove"
7553
- ],
7554
- "args": {
7555
- "slug": {
7556
- "description": "The taxonomy slug, its taxonomies/ file name without .json",
7557
- "name": "slug",
7558
- "required": true
7559
- }
7560
- },
7561
- "description": "Stop registering a Loopress taxonomy on WordPress. Its terms are kept in the database, hidden until the taxonomy is pushed again.",
7597
+ "theme:push": {
7598
+ "aliases": [],
7599
+ "args": {},
7600
+ "description": "Push everything theme related to WordPress: theme versions from loopress.json, then block templates and parts, then Global Styles. Never switches the active theme.",
7562
7601
  "examples": [
7563
- "$ lps taxonomy rm <slug>",
7564
- "$ lps taxonomy remove <slug> --yes"
7602
+ "$ lps theme push",
7603
+ "$ lps theme push --env staging",
7604
+ "$ lps theme push --dry-run"
7565
7605
  ],
7566
7606
  "flags": {
7567
7607
  "json": {
@@ -7591,11 +7631,17 @@
7591
7631
  "name": "yes",
7592
7632
  "allowNo": false,
7593
7633
  "type": "boolean"
7634
+ },
7635
+ "force": {
7636
+ "description": "Passed to `lps theme version push`",
7637
+ "name": "force",
7638
+ "allowNo": false,
7639
+ "type": "boolean"
7594
7640
  }
7595
7641
  },
7596
7642
  "hasDynamicHelp": false,
7597
7643
  "hiddenAliases": [],
7598
- "id": "taxonomy:rm",
7644
+ "id": "theme:push",
7599
7645
  "pluginAlias": "@loopress/cli",
7600
7646
  "pluginName": "@loopress/cli",
7601
7647
  "pluginType": "core",
@@ -7621,24 +7667,16 @@
7621
7667
  "relativePath": [
7622
7668
  "dist",
7623
7669
  "commands",
7624
- "taxonomy",
7625
- "rm.js"
7670
+ "theme",
7671
+ "push.js"
7626
7672
  ]
7627
7673
  },
7628
- "taxonomy:rollback": {
7674
+ "theme:status": {
7629
7675
  "aliases": [],
7630
- "args": {
7631
- "path": {
7632
- "description": "Path to taxonomies directory (overrides project config)",
7633
- "name": "path"
7634
- }
7635
- },
7636
- "description": "Restore taxonomies to a snapshot taken automatically before an earlier `lps taxonomy push`",
7676
+ "args": {},
7677
+ "description": "Compare the themes on WordPress against loopress.json and report version drift",
7637
7678
  "examples": [
7638
- "$ lps taxonomy rollback",
7639
- "$ lps taxonomy rollback --list",
7640
- "$ lps taxonomy rollback --to 1732000000000",
7641
- "$ lps taxonomy rollback --dry-run"
7679
+ "$ lps theme status"
7642
7680
  ],
7643
7681
  "flags": {
7644
7682
  "json": {
@@ -7654,38 +7692,11 @@
7654
7692
  "hasDynamicHelp": false,
7655
7693
  "multiple": false,
7656
7694
  "type": "option"
7657
- },
7658
- "dry-run": {
7659
- "char": "d",
7660
- "description": "Show what would change without making changes",
7661
- "name": "dry-run",
7662
- "allowNo": false,
7663
- "type": "boolean"
7664
- },
7665
- "yes": {
7666
- "char": "y",
7667
- "description": "Answer yes to confirmation prompts",
7668
- "name": "yes",
7669
- "allowNo": false,
7670
- "type": "boolean"
7671
- },
7672
- "list": {
7673
- "description": "List available snapshots instead of rolling back",
7674
- "name": "list",
7675
- "allowNo": false,
7676
- "type": "boolean"
7677
- },
7678
- "to": {
7679
- "description": "Roll back to this snapshot id instead of the most recent one",
7680
- "name": "to",
7681
- "hasDynamicHelp": false,
7682
- "multiple": false,
7683
- "type": "option"
7684
7695
  }
7685
7696
  },
7686
7697
  "hasDynamicHelp": false,
7687
7698
  "hiddenAliases": [],
7688
- "id": "taxonomy:rollback",
7699
+ "id": "theme:status",
7689
7700
  "pluginAlias": "@loopress/cli",
7690
7701
  "pluginName": "@loopress/cli",
7691
7702
  "pluginType": "core",
@@ -7711,8 +7722,8 @@
7711
7722
  "relativePath": [
7712
7723
  "dist",
7713
7724
  "commands",
7714
- "taxonomy",
7715
- "rollback.js"
7725
+ "theme",
7726
+ "status.js"
7716
7727
  ]
7717
7728
  },
7718
7729
  "theme:style:diff": {
@@ -7889,7 +7900,7 @@
7889
7900
  "type": "option"
7890
7901
  },
7891
7902
  "overwrite": {
7892
- "description": "Push even over changes made on the site outside Loopress since your last push",
7903
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
7893
7904
  "name": "overwrite",
7894
7905
  "allowNo": false,
7895
7906
  "type": "boolean"
@@ -8039,12 +8050,14 @@
8039
8050
  "rollback.js"
8040
8051
  ]
8041
8052
  },
8042
- "theme:version:pull": {
8053
+ "theme:template:diff": {
8043
8054
  "aliases": [],
8044
8055
  "args": {},
8045
- "description": "Pull installed themes from WordPress into loopress.json, pinned to their live versions",
8056
+ "description": "Show what differs in block templates and parts between your local files and a WordPress environment, or between two environments. Templates and parts edited in the Site Editor show up too.",
8046
8057
  "examples": [
8047
- "$ lps theme version pull"
8058
+ "$ lps theme template diff",
8059
+ "$ lps theme template diff --env staging",
8060
+ "$ lps theme template diff --env staging --against production"
8048
8061
  ],
8049
8062
  "flags": {
8050
8063
  "json": {
@@ -8061,17 +8074,17 @@
8061
8074
  "multiple": false,
8062
8075
  "type": "option"
8063
8076
  },
8064
- "dry-run": {
8065
- "char": "d",
8066
- "description": "Show what would change without making changes",
8067
- "name": "dry-run",
8068
- "allowNo": false,
8069
- "type": "boolean"
8077
+ "against": {
8078
+ "description": "Compare the primary environment against this second environment instead of against local files",
8079
+ "name": "against",
8080
+ "hasDynamicHelp": false,
8081
+ "multiple": false,
8082
+ "type": "option"
8070
8083
  }
8071
8084
  },
8072
8085
  "hasDynamicHelp": false,
8073
8086
  "hiddenAliases": [],
8074
- "id": "theme:version:pull",
8087
+ "id": "theme:template:diff",
8075
8088
  "pluginAlias": "@loopress/cli",
8076
8089
  "pluginName": "@loopress/cli",
8077
8090
  "pluginType": "core",
@@ -8093,22 +8106,29 @@
8093
8106
  "type": "boolean"
8094
8107
  }
8095
8108
  },
8109
+ "againstFlag": {
8110
+ "against": {
8111
+ "description": "Compare the primary environment against this second environment instead of against local files",
8112
+ "input": [],
8113
+ "multiple": false,
8114
+ "type": "option"
8115
+ }
8116
+ },
8096
8117
  "isESM": true,
8097
8118
  "relativePath": [
8098
8119
  "dist",
8099
8120
  "commands",
8100
8121
  "theme",
8101
- "version",
8102
- "pull.js"
8122
+ "template",
8123
+ "diff.js"
8103
8124
  ]
8104
8125
  },
8105
- "theme:version:push": {
8126
+ "theme:template:list": {
8106
8127
  "aliases": [],
8107
8128
  "args": {},
8108
- "description": "Install themes on WordPress to match loopress.json (versions only, never switches the active theme)",
8129
+ "description": "Show the Loopress child theme of the active block theme: whether it is active, its templates and parts, and those edited in the Site Editor",
8109
8130
  "examples": [
8110
- "$ lps theme version push",
8111
- "$ lps theme version push --force"
8131
+ "$ lps theme template list"
8112
8132
  ],
8113
8133
  "flags": {
8114
8134
  "json": {
@@ -8124,43 +8144,11 @@
8124
8144
  "hasDynamicHelp": false,
8125
8145
  "multiple": false,
8126
8146
  "type": "option"
8127
- },
8128
- "overwrite": {
8129
- "description": "Push even over changes made on the site outside Loopress since your last push",
8130
- "name": "overwrite",
8131
- "allowNo": false,
8132
- "type": "boolean"
8133
- },
8134
- "production-confirmed": {
8135
- "hidden": true,
8136
- "name": "production-confirmed",
8137
- "allowNo": false,
8138
- "type": "boolean"
8139
- },
8140
- "dry-run": {
8141
- "char": "d",
8142
- "description": "Show what would change without making changes",
8143
- "name": "dry-run",
8144
- "allowNo": false,
8145
- "type": "boolean"
8146
- },
8147
- "yes": {
8148
- "char": "y",
8149
- "description": "Answer yes to confirmation prompts",
8150
- "name": "yes",
8151
- "allowNo": false,
8152
- "type": "boolean"
8153
- },
8154
- "force": {
8155
- "description": "Allow downgrades and take over themes installed outside Loopress",
8156
- "name": "force",
8157
- "allowNo": false,
8158
- "type": "boolean"
8159
8147
  }
8160
8148
  },
8161
8149
  "hasDynamicHelp": false,
8162
8150
  "hiddenAliases": [],
8163
- "id": "theme:version:push",
8151
+ "id": "theme:template:list",
8164
8152
  "pluginAlias": "@loopress/cli",
8165
8153
  "pluginName": "@loopress/cli",
8166
8154
  "pluginType": "core",
@@ -8187,18 +8175,17 @@
8187
8175
  "dist",
8188
8176
  "commands",
8189
8177
  "theme",
8190
- "version",
8191
- "push.js"
8178
+ "template",
8179
+ "list.js"
8192
8180
  ]
8193
8181
  },
8194
- "theme:template:diff": {
8182
+ "theme:template:push": {
8195
8183
  "aliases": [],
8196
8184
  "args": {},
8197
- "description": "Show what differs in block templates and parts between your local files and a WordPress environment, or between two environments. Templates and parts edited in the Site Editor show up too.",
8185
+ "description": "Push block templates (theme/templates/<slug>.html), template parts (theme/parts/<slug>.html) and the theme CSS (theme/css/style.css, theme/blocks/<namespace>/<block>.css, bundled with esbuild) as the files of a child theme of the active block theme, <parent>-loopress. The child mirrors the project: files removed locally are removed from it. It is never activated for you.",
8198
8186
  "examples": [
8199
- "$ lps theme template diff",
8200
- "$ lps theme template diff --env staging",
8201
- "$ lps theme template diff --env staging --against production"
8187
+ "$ lps theme template push",
8188
+ "$ lps theme template push --dry-run"
8202
8189
  ],
8203
8190
  "flags": {
8204
8191
  "json": {
@@ -8215,17 +8202,36 @@
8215
8202
  "multiple": false,
8216
8203
  "type": "option"
8217
8204
  },
8218
- "against": {
8219
- "description": "Compare the primary environment against this second environment instead of against local files",
8220
- "name": "against",
8221
- "hasDynamicHelp": false,
8222
- "multiple": false,
8223
- "type": "option"
8205
+ "overwrite": {
8206
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
8207
+ "name": "overwrite",
8208
+ "allowNo": false,
8209
+ "type": "boolean"
8210
+ },
8211
+ "production-confirmed": {
8212
+ "hidden": true,
8213
+ "name": "production-confirmed",
8214
+ "allowNo": false,
8215
+ "type": "boolean"
8216
+ },
8217
+ "dry-run": {
8218
+ "char": "d",
8219
+ "description": "Show what would change without making changes",
8220
+ "name": "dry-run",
8221
+ "allowNo": false,
8222
+ "type": "boolean"
8223
+ },
8224
+ "yes": {
8225
+ "char": "y",
8226
+ "description": "Answer yes to confirmation prompts",
8227
+ "name": "yes",
8228
+ "allowNo": false,
8229
+ "type": "boolean"
8224
8230
  }
8225
8231
  },
8226
8232
  "hasDynamicHelp": false,
8227
8233
  "hiddenAliases": [],
8228
- "id": "theme:template:diff",
8234
+ "id": "theme:template:push",
8229
8235
  "pluginAlias": "@loopress/cli",
8230
8236
  "pluginName": "@loopress/cli",
8231
8237
  "pluginType": "core",
@@ -8247,29 +8253,21 @@
8247
8253
  "type": "boolean"
8248
8254
  }
8249
8255
  },
8250
- "againstFlag": {
8251
- "against": {
8252
- "description": "Compare the primary environment against this second environment instead of against local files",
8253
- "input": [],
8254
- "multiple": false,
8255
- "type": "option"
8256
- }
8257
- },
8258
8256
  "isESM": true,
8259
8257
  "relativePath": [
8260
8258
  "dist",
8261
8259
  "commands",
8262
8260
  "theme",
8263
8261
  "template",
8264
- "diff.js"
8262
+ "push.js"
8265
8263
  ]
8266
8264
  },
8267
- "theme:template:list": {
8265
+ "theme:version:pull": {
8268
8266
  "aliases": [],
8269
8267
  "args": {},
8270
- "description": "Show the Loopress child theme of the active block theme: its templates, parts, and those edited in the Site Editor",
8268
+ "description": "Pull installed themes from WordPress into loopress.json, pinned to their live versions",
8271
8269
  "examples": [
8272
- "$ lps theme template list"
8270
+ "$ lps theme version pull"
8273
8271
  ],
8274
8272
  "flags": {
8275
8273
  "json": {
@@ -8285,11 +8283,18 @@
8285
8283
  "hasDynamicHelp": false,
8286
8284
  "multiple": false,
8287
8285
  "type": "option"
8286
+ },
8287
+ "dry-run": {
8288
+ "char": "d",
8289
+ "description": "Show what would change without making changes",
8290
+ "name": "dry-run",
8291
+ "allowNo": false,
8292
+ "type": "boolean"
8288
8293
  }
8289
8294
  },
8290
8295
  "hasDynamicHelp": false,
8291
8296
  "hiddenAliases": [],
8292
- "id": "theme:template:list",
8297
+ "id": "theme:version:pull",
8293
8298
  "pluginAlias": "@loopress/cli",
8294
8299
  "pluginName": "@loopress/cli",
8295
8300
  "pluginType": "core",
@@ -8316,17 +8321,17 @@
8316
8321
  "dist",
8317
8322
  "commands",
8318
8323
  "theme",
8319
- "template",
8320
- "list.js"
8324
+ "version",
8325
+ "pull.js"
8321
8326
  ]
8322
8327
  },
8323
- "theme:template:push": {
8328
+ "theme:version:push": {
8324
8329
  "aliases": [],
8325
8330
  "args": {},
8326
- "description": "Push block templates (theme/templates/<slug>.html), template parts (theme/parts/<slug>.html) and the theme CSS (theme/css/style.css, theme/blocks/<namespace>/<block>.css, bundled with esbuild) as the files of a child theme of the active block theme, <parent>-loopress. The child mirrors the project: files removed locally are removed from it. It is never activated for you.",
8331
+ "description": "Install WordPress.org themes on WordPress to match loopress.json, via Composer + WPackagist (versions only, never switches the active theme)",
8327
8332
  "examples": [
8328
- "$ lps theme template push",
8329
- "$ lps theme template push --dry-run"
8333
+ "$ lps theme version push",
8334
+ "$ lps theme version push --force"
8330
8335
  ],
8331
8336
  "flags": {
8332
8337
  "json": {
@@ -8344,7 +8349,7 @@
8344
8349
  "type": "option"
8345
8350
  },
8346
8351
  "overwrite": {
8347
- "description": "Push even over changes made on the site outside Loopress since your last push",
8352
+ "description": "Push even over changes made on the site outside Loopress since your last push. Pages: also take over a same-slug page Loopress did not create",
8348
8353
  "name": "overwrite",
8349
8354
  "allowNo": false,
8350
8355
  "type": "boolean"
@@ -8368,11 +8373,17 @@
8368
8373
  "name": "yes",
8369
8374
  "allowNo": false,
8370
8375
  "type": "boolean"
8376
+ },
8377
+ "force": {
8378
+ "description": "Allow downgrades and take over themes installed outside Loopress",
8379
+ "name": "force",
8380
+ "allowNo": false,
8381
+ "type": "boolean"
8371
8382
  }
8372
8383
  },
8373
8384
  "hasDynamicHelp": false,
8374
8385
  "hiddenAliases": [],
8375
- "id": "theme:template:push",
8386
+ "id": "theme:version:push",
8376
8387
  "pluginAlias": "@loopress/cli",
8377
8388
  "pluginName": "@loopress/cli",
8378
8389
  "pluginType": "core",
@@ -8399,10 +8410,10 @@
8399
8410
  "dist",
8400
8411
  "commands",
8401
8412
  "theme",
8402
- "template",
8413
+ "version",
8403
8414
  "push.js"
8404
8415
  ]
8405
8416
  }
8406
8417
  },
8407
- "version": "0.31.0"
8418
+ "version": "0.32.1"
8408
8419
  }