@loopress/cli 0.32.1 → 0.32.2

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.
@@ -1522,38 +1522,37 @@
1522
1522
  "rollback.js"
1523
1523
  ]
1524
1524
  },
1525
- "composer:init": {
1525
+ "app:list": {
1526
1526
  "aliases": [],
1527
1527
  "args": {},
1528
- "description": "Create a composer.json wired to WPackagist for installing WordPress.org plugins and themes",
1528
+ "description": "List single-page apps deployed to WordPress",
1529
1529
  "examples": [
1530
- "$ lps composer init",
1531
- "$ lps composer init --dry-run"
1530
+ "$ lps app list"
1532
1531
  ],
1533
1532
  "flags": {
1533
+ "json": {
1534
+ "description": "Format output as json.",
1535
+ "helpGroup": "GLOBAL",
1536
+ "name": "json",
1537
+ "allowNo": false,
1538
+ "type": "boolean"
1539
+ },
1534
1540
  "env": {
1535
1541
  "description": "Target environment by name (default: \"local\", or the project's only environment)",
1536
1542
  "name": "env",
1537
1543
  "hasDynamicHelp": false,
1538
1544
  "multiple": false,
1539
1545
  "type": "option"
1540
- },
1541
- "dry-run": {
1542
- "char": "d",
1543
- "description": "Show what would change without making changes",
1544
- "name": "dry-run",
1545
- "allowNo": false,
1546
- "type": "boolean"
1547
1546
  }
1548
1547
  },
1549
1548
  "hasDynamicHelp": false,
1550
1549
  "hiddenAliases": [],
1551
- "id": "composer:init",
1550
+ "id": "app:list",
1552
1551
  "pluginAlias": "@loopress/cli",
1553
1552
  "pluginName": "@loopress/cli",
1554
1553
  "pluginType": "core",
1555
1554
  "strict": true,
1556
- "enableJsonFlag": false,
1555
+ "enableJsonFlag": true,
1557
1556
  "dryRunFlag": {
1558
1557
  "dry-run": {
1559
1558
  "char": "d",
@@ -1574,17 +1573,21 @@
1574
1573
  "relativePath": [
1575
1574
  "dist",
1576
1575
  "commands",
1577
- "composer",
1578
- "init.js"
1576
+ "app",
1577
+ "list.js"
1579
1578
  ]
1580
1579
  },
1581
- "composer:pull": {
1580
+ "app:pull": {
1582
1581
  "aliases": [],
1583
- "args": {},
1584
- "description": "Pull composer.json and composer.lock from WordPress into local files",
1582
+ "args": {
1583
+ "path": {
1584
+ "description": "Path to apps directory (overrides project config)",
1585
+ "name": "path"
1586
+ }
1587
+ },
1588
+ "description": "Pull single-page app bundles from WordPress into local files",
1585
1589
  "examples": [
1586
- "$ lps composer pull",
1587
- "$ lps composer pull --dry-run"
1590
+ "$ lps app pull"
1588
1591
  ],
1589
1592
  "flags": {
1590
1593
  "json": {
@@ -1607,11 +1610,18 @@
1607
1610
  "name": "dry-run",
1608
1611
  "allowNo": false,
1609
1612
  "type": "boolean"
1613
+ },
1614
+ "yes": {
1615
+ "char": "y",
1616
+ "description": "Answer yes to confirmation prompts",
1617
+ "name": "yes",
1618
+ "allowNo": false,
1619
+ "type": "boolean"
1610
1620
  }
1611
1621
  },
1612
1622
  "hasDynamicHelp": false,
1613
1623
  "hiddenAliases": [],
1614
- "id": "composer:pull",
1624
+ "id": "app:pull",
1615
1625
  "pluginAlias": "@loopress/cli",
1616
1626
  "pluginName": "@loopress/cli",
1617
1627
  "pluginType": "core",
@@ -1637,17 +1647,23 @@
1637
1647
  "relativePath": [
1638
1648
  "dist",
1639
1649
  "commands",
1640
- "composer",
1650
+ "app",
1641
1651
  "pull.js"
1642
1652
  ]
1643
1653
  },
1644
- "composer:push": {
1654
+ "app:push": {
1645
1655
  "aliases": [],
1646
- "args": {},
1647
- "description": "Push composer.json to WordPress and run Composer to resolve and install dependencies",
1656
+ "args": {
1657
+ "name": {
1658
+ "description": "Push only this app (defaults to every app in the directory)",
1659
+ "name": "name"
1660
+ }
1661
+ },
1662
+ "description": "Build and push single-page app bundles to WordPress. Each app is an `apps/<name>/` directory holding a loopress.app.json and a dist/ folder. When the app has a package.json with a `build` script, it runs first (use --no-build to skip it). Only files whose content changed are uploaded.",
1648
1663
  "examples": [
1649
- "$ lps composer push",
1650
- "$ lps composer push --dry-run"
1664
+ "$ lps app push",
1665
+ "$ lps app push search",
1666
+ "$ lps app push --no-build"
1651
1667
  ],
1652
1668
  "flags": {
1653
1669
  "json": {
@@ -1676,6 +1692,12 @@
1676
1692
  "allowNo": false,
1677
1693
  "type": "boolean"
1678
1694
  },
1695
+ "build": {
1696
+ "description": "Run the app's package.json build script before pushing",
1697
+ "name": "build",
1698
+ "allowNo": true,
1699
+ "type": "boolean"
1700
+ },
1679
1701
  "dry-run": {
1680
1702
  "char": "d",
1681
1703
  "description": "Show what would change without making changes",
@@ -1689,17 +1711,11 @@
1689
1711
  "name": "yes",
1690
1712
  "allowNo": false,
1691
1713
  "type": "boolean"
1692
- },
1693
- "force": {
1694
- "description": "Allow downgrades and take over plugins/themes installed outside Loopress",
1695
- "name": "force",
1696
- "allowNo": false,
1697
- "type": "boolean"
1698
1714
  }
1699
1715
  },
1700
1716
  "hasDynamicHelp": false,
1701
1717
  "hiddenAliases": [],
1702
- "id": "composer:push",
1718
+ "id": "app:push",
1703
1719
  "pluginAlias": "@loopress/cli",
1704
1720
  "pluginName": "@loopress/cli",
1705
1721
  "pluginType": "core",
@@ -1725,16 +1741,22 @@
1725
1741
  "relativePath": [
1726
1742
  "dist",
1727
1743
  "commands",
1728
- "composer",
1744
+ "app",
1729
1745
  "push.js"
1730
1746
  ]
1731
1747
  },
1732
- "app:list": {
1748
+ "app:remove": {
1733
1749
  "aliases": [],
1734
- "args": {},
1735
- "description": "List single-page apps deployed to WordPress",
1750
+ "args": {
1751
+ "name": {
1752
+ "description": "App to remove from WordPress",
1753
+ "name": "name",
1754
+ "required": true
1755
+ }
1756
+ },
1757
+ "description": "Remove a single-page app from WordPress: deletes its bundle from wp-content/loopress/apps/ and unregisters the shortcode. Local files are left untouched.",
1736
1758
  "examples": [
1737
- "$ lps app list"
1759
+ "$ lps app remove search"
1738
1760
  ],
1739
1761
  "flags": {
1740
1762
  "json": {
@@ -1750,11 +1772,25 @@
1750
1772
  "hasDynamicHelp": false,
1751
1773
  "multiple": false,
1752
1774
  "type": "option"
1775
+ },
1776
+ "dry-run": {
1777
+ "char": "d",
1778
+ "description": "Show what would change without making changes",
1779
+ "name": "dry-run",
1780
+ "allowNo": false,
1781
+ "type": "boolean"
1782
+ },
1783
+ "yes": {
1784
+ "char": "y",
1785
+ "description": "Answer yes to confirmation prompts",
1786
+ "name": "yes",
1787
+ "allowNo": false,
1788
+ "type": "boolean"
1753
1789
  }
1754
1790
  },
1755
1791
  "hasDynamicHelp": false,
1756
1792
  "hiddenAliases": [],
1757
- "id": "app:list",
1793
+ "id": "app:remove",
1758
1794
  "pluginAlias": "@loopress/cli",
1759
1795
  "pluginName": "@loopress/cli",
1760
1796
  "pluginType": "core",
@@ -1781,29 +1817,18 @@
1781
1817
  "dist",
1782
1818
  "commands",
1783
1819
  "app",
1784
- "list.js"
1820
+ "remove.js"
1785
1821
  ]
1786
1822
  },
1787
- "app:pull": {
1823
+ "composer:init": {
1788
1824
  "aliases": [],
1789
- "args": {
1790
- "path": {
1791
- "description": "Path to apps directory (overrides project config)",
1792
- "name": "path"
1793
- }
1794
- },
1795
- "description": "Pull single-page app bundles from WordPress into local files",
1825
+ "args": {},
1826
+ "description": "Create a composer.json wired to WPackagist for installing WordPress.org plugins and themes",
1796
1827
  "examples": [
1797
- "$ lps app pull"
1828
+ "$ lps composer init",
1829
+ "$ lps composer init --dry-run"
1798
1830
  ],
1799
1831
  "flags": {
1800
- "json": {
1801
- "description": "Format output as json.",
1802
- "helpGroup": "GLOBAL",
1803
- "name": "json",
1804
- "allowNo": false,
1805
- "type": "boolean"
1806
- },
1807
1832
  "env": {
1808
1833
  "description": "Target environment by name (default: \"local\", or the project's only environment)",
1809
1834
  "name": "env",
@@ -1817,23 +1842,16 @@
1817
1842
  "name": "dry-run",
1818
1843
  "allowNo": false,
1819
1844
  "type": "boolean"
1820
- },
1821
- "yes": {
1822
- "char": "y",
1823
- "description": "Answer yes to confirmation prompts",
1824
- "name": "yes",
1825
- "allowNo": false,
1826
- "type": "boolean"
1827
1845
  }
1828
1846
  },
1829
1847
  "hasDynamicHelp": false,
1830
1848
  "hiddenAliases": [],
1831
- "id": "app:pull",
1849
+ "id": "composer:init",
1832
1850
  "pluginAlias": "@loopress/cli",
1833
1851
  "pluginName": "@loopress/cli",
1834
1852
  "pluginType": "core",
1835
1853
  "strict": true,
1836
- "enableJsonFlag": true,
1854
+ "enableJsonFlag": false,
1837
1855
  "dryRunFlag": {
1838
1856
  "dry-run": {
1839
1857
  "char": "d",
@@ -1854,23 +1872,17 @@
1854
1872
  "relativePath": [
1855
1873
  "dist",
1856
1874
  "commands",
1857
- "app",
1858
- "pull.js"
1875
+ "composer",
1876
+ "init.js"
1859
1877
  ]
1860
1878
  },
1861
- "app:push": {
1879
+ "composer:pull": {
1862
1880
  "aliases": [],
1863
- "args": {
1864
- "name": {
1865
- "description": "Push only this app (defaults to every app in the directory)",
1866
- "name": "name"
1867
- }
1868
- },
1869
- "description": "Build and push single-page app bundles to WordPress. Each app is an `apps/<name>/` directory holding a loopress.app.json and a dist/ folder. When the app has a package.json with a `build` script, it runs first (use --no-build to skip it). Only files whose content changed are uploaded.",
1881
+ "args": {},
1882
+ "description": "Pull composer.json and composer.lock from WordPress into local files",
1870
1883
  "examples": [
1871
- "$ lps app push",
1872
- "$ lps app push search",
1873
- "$ lps app push --no-build"
1884
+ "$ lps composer pull",
1885
+ "$ lps composer pull --dry-run"
1874
1886
  ],
1875
1887
  "flags": {
1876
1888
  "json": {
@@ -1887,42 +1899,17 @@
1887
1899
  "multiple": false,
1888
1900
  "type": "option"
1889
1901
  },
1890
- "overwrite": {
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",
1892
- "name": "overwrite",
1893
- "allowNo": false,
1894
- "type": "boolean"
1895
- },
1896
- "production-confirmed": {
1897
- "hidden": true,
1898
- "name": "production-confirmed",
1899
- "allowNo": false,
1900
- "type": "boolean"
1901
- },
1902
- "build": {
1903
- "description": "Run the app's package.json build script before pushing",
1904
- "name": "build",
1905
- "allowNo": true,
1906
- "type": "boolean"
1907
- },
1908
1902
  "dry-run": {
1909
1903
  "char": "d",
1910
1904
  "description": "Show what would change without making changes",
1911
1905
  "name": "dry-run",
1912
1906
  "allowNo": false,
1913
1907
  "type": "boolean"
1914
- },
1915
- "yes": {
1916
- "char": "y",
1917
- "description": "Answer yes to confirmation prompts",
1918
- "name": "yes",
1919
- "allowNo": false,
1920
- "type": "boolean"
1921
1908
  }
1922
1909
  },
1923
1910
  "hasDynamicHelp": false,
1924
1911
  "hiddenAliases": [],
1925
- "id": "app:push",
1912
+ "id": "composer:pull",
1926
1913
  "pluginAlias": "@loopress/cli",
1927
1914
  "pluginName": "@loopress/cli",
1928
1915
  "pluginType": "core",
@@ -1948,22 +1935,17 @@
1948
1935
  "relativePath": [
1949
1936
  "dist",
1950
1937
  "commands",
1951
- "app",
1952
- "push.js"
1938
+ "composer",
1939
+ "pull.js"
1953
1940
  ]
1954
1941
  },
1955
- "app:remove": {
1942
+ "composer:push": {
1956
1943
  "aliases": [],
1957
- "args": {
1958
- "name": {
1959
- "description": "App to remove from WordPress",
1960
- "name": "name",
1961
- "required": true
1962
- }
1963
- },
1964
- "description": "Remove a single-page app from WordPress: deletes its bundle from wp-content/loopress/apps/ and unregisters the shortcode. Local files are left untouched.",
1944
+ "args": {},
1945
+ "description": "Push composer.json to WordPress and run Composer to resolve and install dependencies",
1965
1946
  "examples": [
1966
- "$ lps app remove search"
1947
+ "$ lps composer push",
1948
+ "$ lps composer push --dry-run"
1967
1949
  ],
1968
1950
  "flags": {
1969
1951
  "json": {
@@ -1980,6 +1962,18 @@
1980
1962
  "multiple": false,
1981
1963
  "type": "option"
1982
1964
  },
1965
+ "overwrite": {
1966
+ "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",
1967
+ "name": "overwrite",
1968
+ "allowNo": false,
1969
+ "type": "boolean"
1970
+ },
1971
+ "production-confirmed": {
1972
+ "hidden": true,
1973
+ "name": "production-confirmed",
1974
+ "allowNo": false,
1975
+ "type": "boolean"
1976
+ },
1983
1977
  "dry-run": {
1984
1978
  "char": "d",
1985
1979
  "description": "Show what would change without making changes",
@@ -1993,11 +1987,17 @@
1993
1987
  "name": "yes",
1994
1988
  "allowNo": false,
1995
1989
  "type": "boolean"
1990
+ },
1991
+ "force": {
1992
+ "description": "Allow downgrades and take over plugins/themes installed outside Loopress",
1993
+ "name": "force",
1994
+ "allowNo": false,
1995
+ "type": "boolean"
1996
1996
  }
1997
1997
  },
1998
1998
  "hasDynamicHelp": false,
1999
1999
  "hiddenAliases": [],
2000
- "id": "app:remove",
2000
+ "id": "composer:push",
2001
2001
  "pluginAlias": "@loopress/cli",
2002
2002
  "pluginName": "@loopress/cli",
2003
2003
  "pluginType": "core",
@@ -2023,8 +2023,8 @@
2023
2023
  "relativePath": [
2024
2024
  "dist",
2025
2025
  "commands",
2026
- "app",
2027
- "remove.js"
2026
+ "composer",
2027
+ "push.js"
2028
2028
  ]
2029
2029
  },
2030
2030
  "content:copy": {
@@ -2563,19 +2563,19 @@
2563
2563
  "rollback.js"
2564
2564
  ]
2565
2565
  },
2566
- "form:diff": {
2566
+ "hook:diff": {
2567
2567
  "aliases": [],
2568
2568
  "args": {
2569
2569
  "path": {
2570
- "description": "Path to forms directory (overrides project config)",
2570
+ "description": "Path to hooks directory (overrides project config)",
2571
2571
  "name": "path"
2572
2572
  }
2573
2573
  },
2574
- "description": "Show what differs in forms between your local files and a WordPress environment, or between two environments",
2574
+ "description": "Show what differs in hook files between your local files and a WordPress environment, or between two environments",
2575
2575
  "examples": [
2576
- "$ lps form diff",
2577
- "$ lps form diff --env staging",
2578
- "$ lps form diff --env staging --against production"
2576
+ "$ lps hook diff",
2577
+ "$ lps hook diff --env staging",
2578
+ "$ lps hook diff --env staging --against production"
2579
2579
  ],
2580
2580
  "flags": {
2581
2581
  "json": {
@@ -2602,7 +2602,7 @@
2602
2602
  },
2603
2603
  "hasDynamicHelp": false,
2604
2604
  "hiddenAliases": [],
2605
- "id": "form:diff",
2605
+ "id": "hook:diff",
2606
2606
  "pluginAlias": "@loopress/cli",
2607
2607
  "pluginName": "@loopress/cli",
2608
2608
  "pluginType": "core",
@@ -2636,16 +2636,16 @@
2636
2636
  "relativePath": [
2637
2637
  "dist",
2638
2638
  "commands",
2639
- "form",
2639
+ "hook",
2640
2640
  "diff.js"
2641
2641
  ]
2642
2642
  },
2643
- "form:list": {
2643
+ "hook:list": {
2644
2644
  "aliases": [],
2645
2645
  "args": {},
2646
- "description": "List forms currently on WordPress",
2646
+ "description": "List hook files (actions, filters, cron) currently on WordPress",
2647
2647
  "examples": [
2648
- "$ lps form list"
2648
+ "$ lps hook list"
2649
2649
  ],
2650
2650
  "flags": {
2651
2651
  "json": {
@@ -2665,7 +2665,7 @@
2665
2665
  },
2666
2666
  "hasDynamicHelp": false,
2667
2667
  "hiddenAliases": [],
2668
- "id": "form:list",
2668
+ "id": "hook:list",
2669
2669
  "pluginAlias": "@loopress/cli",
2670
2670
  "pluginName": "@loopress/cli",
2671
2671
  "pluginType": "core",
@@ -2691,21 +2691,22 @@
2691
2691
  "relativePath": [
2692
2692
  "dist",
2693
2693
  "commands",
2694
- "form",
2694
+ "hook",
2695
2695
  "list.js"
2696
2696
  ]
2697
2697
  },
2698
- "form:pull": {
2698
+ "hook:pull": {
2699
2699
  "aliases": [],
2700
2700
  "args": {
2701
2701
  "path": {
2702
- "description": "Path to forms directory (overrides project config)",
2702
+ "description": "Path to hooks directory (overrides project config)",
2703
2703
  "name": "path"
2704
2704
  }
2705
2705
  },
2706
- "description": "Pull forms from WordPress into local files",
2706
+ "description": "Pull hook files (actions, filters, cron) from WordPress into local files",
2707
2707
  "examples": [
2708
- "$ lps form pull"
2708
+ "$ lps hook pull",
2709
+ "$ lps hook pull --path ./hooks"
2709
2710
  ],
2710
2711
  "flags": {
2711
2712
  "json": {
@@ -2739,7 +2740,7 @@
2739
2740
  },
2740
2741
  "hasDynamicHelp": false,
2741
2742
  "hiddenAliases": [],
2742
- "id": "form:pull",
2743
+ "id": "hook:pull",
2743
2744
  "pluginAlias": "@loopress/cli",
2744
2745
  "pluginName": "@loopress/cli",
2745
2746
  "pluginType": "core",
@@ -2765,22 +2766,23 @@
2765
2766
  "relativePath": [
2766
2767
  "dist",
2767
2768
  "commands",
2768
- "form",
2769
+ "hook",
2769
2770
  "pull.js"
2770
2771
  ]
2771
2772
  },
2772
- "form:push": {
2773
+ "hook:push": {
2773
2774
  "aliases": [],
2774
2775
  "args": {
2775
2776
  "path": {
2776
- "description": "Path to forms directory (overrides project config)",
2777
+ "description": "Path to hooks directory (overrides project config)",
2777
2778
  "name": "path"
2778
2779
  }
2779
2780
  },
2780
- "description": "Push local form files to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>.json` convention.",
2781
+ "description": "Push local hook files (actions, filters, cron) to WordPress",
2781
2782
  "examples": [
2782
- "$ lps form push",
2783
- "$ lps form push --allow-notifications"
2783
+ "$ lps hook push",
2784
+ "$ lps hook push --path ./hooks",
2785
+ "$ lps hook push --prune"
2784
2786
  ],
2785
2787
  "flags": {
2786
2788
  "json": {
@@ -2823,16 +2825,16 @@
2823
2825
  "allowNo": false,
2824
2826
  "type": "boolean"
2825
2827
  },
2826
- "allow-notifications": {
2827
- "description": "Also push each form's notification and confirmation settings (recipients, sender, messages). Off by default: the server keeps its own so a stray push can't redirect submissions.",
2828
- "name": "allow-notifications",
2828
+ "prune": {
2829
+ "description": "Delete server-side hook files not present locally after pushing",
2830
+ "name": "prune",
2829
2831
  "allowNo": false,
2830
2832
  "type": "boolean"
2831
2833
  }
2832
2834
  },
2833
2835
  "hasDynamicHelp": false,
2834
2836
  "hiddenAliases": [],
2835
- "id": "form:push",
2837
+ "id": "hook:push",
2836
2838
  "pluginAlias": "@loopress/cli",
2837
2839
  "pluginName": "@loopress/cli",
2838
2840
  "pluginType": "core",
@@ -2858,24 +2860,102 @@
2858
2860
  "relativePath": [
2859
2861
  "dist",
2860
2862
  "commands",
2861
- "form",
2863
+ "hook",
2862
2864
  "push.js"
2863
2865
  ]
2864
2866
  },
2865
- "form:rollback": {
2867
+ "hook:rm": {
2868
+ "aliases": [
2869
+ "hook:remove"
2870
+ ],
2871
+ "args": {
2872
+ "filename": {
2873
+ "description": "The hook file to remove, its slug without the .php extension (e.g. \"hello\" or \"invoice-pdf/[order_id]\")",
2874
+ "name": "filename",
2875
+ "required": true
2876
+ }
2877
+ },
2878
+ "description": "Remove one hook file (action, filter, cron) from WordPress",
2879
+ "examples": [
2880
+ "$ lps hook rm hello",
2881
+ "$ lps hook remove hello --yes"
2882
+ ],
2883
+ "flags": {
2884
+ "json": {
2885
+ "description": "Format output as json.",
2886
+ "helpGroup": "GLOBAL",
2887
+ "name": "json",
2888
+ "allowNo": false,
2889
+ "type": "boolean"
2890
+ },
2891
+ "env": {
2892
+ "description": "Target environment by name (default: \"local\", or the project's only environment)",
2893
+ "name": "env",
2894
+ "hasDynamicHelp": false,
2895
+ "multiple": false,
2896
+ "type": "option"
2897
+ },
2898
+ "dry-run": {
2899
+ "char": "d",
2900
+ "description": "Show what would change without making changes",
2901
+ "name": "dry-run",
2902
+ "allowNo": false,
2903
+ "type": "boolean"
2904
+ },
2905
+ "yes": {
2906
+ "char": "y",
2907
+ "description": "Answer yes to confirmation prompts",
2908
+ "name": "yes",
2909
+ "allowNo": false,
2910
+ "type": "boolean"
2911
+ }
2912
+ },
2913
+ "hasDynamicHelp": false,
2914
+ "hiddenAliases": [],
2915
+ "id": "hook:rm",
2916
+ "pluginAlias": "@loopress/cli",
2917
+ "pluginName": "@loopress/cli",
2918
+ "pluginType": "core",
2919
+ "strict": true,
2920
+ "enableJsonFlag": true,
2921
+ "dryRunFlag": {
2922
+ "dry-run": {
2923
+ "char": "d",
2924
+ "description": "Show what would change without making changes",
2925
+ "allowNo": false,
2926
+ "type": "boolean"
2927
+ }
2928
+ },
2929
+ "yesFlag": {
2930
+ "yes": {
2931
+ "char": "y",
2932
+ "description": "Answer yes to confirmation prompts",
2933
+ "allowNo": false,
2934
+ "type": "boolean"
2935
+ }
2936
+ },
2937
+ "isESM": true,
2938
+ "relativePath": [
2939
+ "dist",
2940
+ "commands",
2941
+ "hook",
2942
+ "rm.js"
2943
+ ]
2944
+ },
2945
+ "hook:rollback": {
2866
2946
  "aliases": [],
2867
2947
  "args": {
2868
2948
  "path": {
2869
- "description": "Path to forms directory (overrides project config)",
2949
+ "description": "Path to hooks directory (overrides project config)",
2870
2950
  "name": "path"
2871
2951
  }
2872
2952
  },
2873
- "description": "Restore forms to a snapshot taken automatically before an earlier `lps form push`",
2953
+ "description": "Restore hook files to a snapshot taken automatically before an earlier `lps hook push`",
2874
2954
  "examples": [
2875
- "$ lps form rollback",
2876
- "$ lps form rollback --list",
2877
- "$ lps form rollback --to 1732000000000",
2878
- "$ lps form rollback --dry-run"
2955
+ "$ lps hook rollback",
2956
+ "$ lps hook rollback --list",
2957
+ "$ lps hook rollback --to 1732000000000",
2958
+ "$ lps hook rollback --dry-run"
2879
2959
  ],
2880
2960
  "flags": {
2881
2961
  "json": {
@@ -2922,7 +3002,7 @@
2922
3002
  },
2923
3003
  "hasDynamicHelp": false,
2924
3004
  "hiddenAliases": [],
2925
- "id": "form:rollback",
3005
+ "id": "hook:rollback",
2926
3006
  "pluginAlias": "@loopress/cli",
2927
3007
  "pluginName": "@loopress/cli",
2928
3008
  "pluginType": "core",
@@ -2948,23 +3028,23 @@
2948
3028
  "relativePath": [
2949
3029
  "dist",
2950
3030
  "commands",
2951
- "form",
3031
+ "hook",
2952
3032
  "rollback.js"
2953
3033
  ]
2954
3034
  },
2955
- "hook:diff": {
3035
+ "form:diff": {
2956
3036
  "aliases": [],
2957
3037
  "args": {
2958
3038
  "path": {
2959
- "description": "Path to hooks directory (overrides project config)",
3039
+ "description": "Path to forms directory (overrides project config)",
2960
3040
  "name": "path"
2961
3041
  }
2962
3042
  },
2963
- "description": "Show what differs in hook files between your local files and a WordPress environment, or between two environments",
3043
+ "description": "Show what differs in forms between your local files and a WordPress environment, or between two environments",
2964
3044
  "examples": [
2965
- "$ lps hook diff",
2966
- "$ lps hook diff --env staging",
2967
- "$ lps hook diff --env staging --against production"
3045
+ "$ lps form diff",
3046
+ "$ lps form diff --env staging",
3047
+ "$ lps form diff --env staging --against production"
2968
3048
  ],
2969
3049
  "flags": {
2970
3050
  "json": {
@@ -2991,7 +3071,7 @@
2991
3071
  },
2992
3072
  "hasDynamicHelp": false,
2993
3073
  "hiddenAliases": [],
2994
- "id": "hook:diff",
3074
+ "id": "form:diff",
2995
3075
  "pluginAlias": "@loopress/cli",
2996
3076
  "pluginName": "@loopress/cli",
2997
3077
  "pluginType": "core",
@@ -3025,16 +3105,16 @@
3025
3105
  "relativePath": [
3026
3106
  "dist",
3027
3107
  "commands",
3028
- "hook",
3108
+ "form",
3029
3109
  "diff.js"
3030
3110
  ]
3031
3111
  },
3032
- "hook:list": {
3112
+ "form:list": {
3033
3113
  "aliases": [],
3034
3114
  "args": {},
3035
- "description": "List hook files (actions, filters, cron) currently on WordPress",
3115
+ "description": "List forms currently on WordPress",
3036
3116
  "examples": [
3037
- "$ lps hook list"
3117
+ "$ lps form list"
3038
3118
  ],
3039
3119
  "flags": {
3040
3120
  "json": {
@@ -3054,7 +3134,7 @@
3054
3134
  },
3055
3135
  "hasDynamicHelp": false,
3056
3136
  "hiddenAliases": [],
3057
- "id": "hook:list",
3137
+ "id": "form:list",
3058
3138
  "pluginAlias": "@loopress/cli",
3059
3139
  "pluginName": "@loopress/cli",
3060
3140
  "pluginType": "core",
@@ -3080,22 +3160,21 @@
3080
3160
  "relativePath": [
3081
3161
  "dist",
3082
3162
  "commands",
3083
- "hook",
3163
+ "form",
3084
3164
  "list.js"
3085
3165
  ]
3086
3166
  },
3087
- "hook:pull": {
3167
+ "form:pull": {
3088
3168
  "aliases": [],
3089
3169
  "args": {
3090
3170
  "path": {
3091
- "description": "Path to hooks directory (overrides project config)",
3171
+ "description": "Path to forms directory (overrides project config)",
3092
3172
  "name": "path"
3093
3173
  }
3094
3174
  },
3095
- "description": "Pull hook files (actions, filters, cron) from WordPress into local files",
3175
+ "description": "Pull forms from WordPress into local files",
3096
3176
  "examples": [
3097
- "$ lps hook pull",
3098
- "$ lps hook pull --path ./hooks"
3177
+ "$ lps form pull"
3099
3178
  ],
3100
3179
  "flags": {
3101
3180
  "json": {
@@ -3129,7 +3208,7 @@
3129
3208
  },
3130
3209
  "hasDynamicHelp": false,
3131
3210
  "hiddenAliases": [],
3132
- "id": "hook:pull",
3211
+ "id": "form:pull",
3133
3212
  "pluginAlias": "@loopress/cli",
3134
3213
  "pluginName": "@loopress/cli",
3135
3214
  "pluginType": "core",
@@ -3155,23 +3234,22 @@
3155
3234
  "relativePath": [
3156
3235
  "dist",
3157
3236
  "commands",
3158
- "hook",
3237
+ "form",
3159
3238
  "pull.js"
3160
3239
  ]
3161
3240
  },
3162
- "hook:push": {
3241
+ "form:push": {
3163
3242
  "aliases": [],
3164
3243
  "args": {
3165
3244
  "path": {
3166
- "description": "Path to hooks directory (overrides project config)",
3245
+ "description": "Path to forms directory (overrides project config)",
3167
3246
  "name": "path"
3168
3247
  }
3169
3248
  },
3170
- "description": "Push local hook files (actions, filters, cron) to WordPress",
3249
+ "description": "Push local form files to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>.json` convention.",
3171
3250
  "examples": [
3172
- "$ lps hook push",
3173
- "$ lps hook push --path ./hooks",
3174
- "$ lps hook push --prune"
3251
+ "$ lps form push",
3252
+ "$ lps form push --allow-notifications"
3175
3253
  ],
3176
3254
  "flags": {
3177
3255
  "json": {
@@ -3214,16 +3292,16 @@
3214
3292
  "allowNo": false,
3215
3293
  "type": "boolean"
3216
3294
  },
3217
- "prune": {
3218
- "description": "Delete server-side hook files not present locally after pushing",
3219
- "name": "prune",
3295
+ "allow-notifications": {
3296
+ "description": "Also push each form's notification and confirmation settings (recipients, sender, messages). Off by default: the server keeps its own so a stray push can't redirect submissions.",
3297
+ "name": "allow-notifications",
3220
3298
  "allowNo": false,
3221
3299
  "type": "boolean"
3222
3300
  }
3223
3301
  },
3224
3302
  "hasDynamicHelp": false,
3225
3303
  "hiddenAliases": [],
3226
- "id": "hook:push",
3304
+ "id": "form:push",
3227
3305
  "pluginAlias": "@loopress/cli",
3228
3306
  "pluginName": "@loopress/cli",
3229
3307
  "pluginType": "core",
@@ -3249,25 +3327,24 @@
3249
3327
  "relativePath": [
3250
3328
  "dist",
3251
3329
  "commands",
3252
- "hook",
3330
+ "form",
3253
3331
  "push.js"
3254
3332
  ]
3255
3333
  },
3256
- "hook:rm": {
3257
- "aliases": [
3258
- "hook:remove"
3259
- ],
3334
+ "form:rollback": {
3335
+ "aliases": [],
3260
3336
  "args": {
3261
- "filename": {
3262
- "description": "The hook file to remove, its slug without the .php extension (e.g. \"hello\" or \"invoice-pdf/[order_id]\")",
3263
- "name": "filename",
3264
- "required": true
3337
+ "path": {
3338
+ "description": "Path to forms directory (overrides project config)",
3339
+ "name": "path"
3265
3340
  }
3266
3341
  },
3267
- "description": "Remove one hook file (action, filter, cron) from WordPress",
3342
+ "description": "Restore forms to a snapshot taken automatically before an earlier `lps form push`",
3268
3343
  "examples": [
3269
- "$ lps hook rm hello",
3270
- "$ lps hook remove hello --yes"
3344
+ "$ lps form rollback",
3345
+ "$ lps form rollback --list",
3346
+ "$ lps form rollback --to 1732000000000",
3347
+ "$ lps form rollback --dry-run"
3271
3348
  ],
3272
3349
  "flags": {
3273
3350
  "json": {
@@ -3297,11 +3374,24 @@
3297
3374
  "name": "yes",
3298
3375
  "allowNo": false,
3299
3376
  "type": "boolean"
3377
+ },
3378
+ "list": {
3379
+ "description": "List available snapshots instead of rolling back",
3380
+ "name": "list",
3381
+ "allowNo": false,
3382
+ "type": "boolean"
3383
+ },
3384
+ "to": {
3385
+ "description": "Roll back to this snapshot id instead of the most recent one",
3386
+ "name": "to",
3387
+ "hasDynamicHelp": false,
3388
+ "multiple": false,
3389
+ "type": "option"
3300
3390
  }
3301
3391
  },
3302
3392
  "hasDynamicHelp": false,
3303
3393
  "hiddenAliases": [],
3304
- "id": "hook:rm",
3394
+ "id": "form:rollback",
3305
3395
  "pluginAlias": "@loopress/cli",
3306
3396
  "pluginName": "@loopress/cli",
3307
3397
  "pluginType": "core",
@@ -3327,113 +3417,23 @@
3327
3417
  "relativePath": [
3328
3418
  "dist",
3329
3419
  "commands",
3330
- "hook",
3331
- "rm.js"
3420
+ "form",
3421
+ "rollback.js"
3332
3422
  ]
3333
3423
  },
3334
- "hook:rollback": {
3424
+ "menu:diff": {
3335
3425
  "aliases": [],
3336
3426
  "args": {
3337
3427
  "path": {
3338
- "description": "Path to hooks directory (overrides project config)",
3428
+ "description": "Path to menus directory (overrides project config)",
3339
3429
  "name": "path"
3340
3430
  }
3341
3431
  },
3342
- "description": "Restore hook files to a snapshot taken automatically before an earlier `lps hook push`",
3432
+ "description": "Show what differs in nav menus and the active theme menu locations between your local files and a WordPress environment, or between two environments",
3343
3433
  "examples": [
3344
- "$ lps hook rollback",
3345
- "$ lps hook rollback --list",
3346
- "$ lps hook rollback --to 1732000000000",
3347
- "$ lps hook rollback --dry-run"
3348
- ],
3349
- "flags": {
3350
- "json": {
3351
- "description": "Format output as json.",
3352
- "helpGroup": "GLOBAL",
3353
- "name": "json",
3354
- "allowNo": false,
3355
- "type": "boolean"
3356
- },
3357
- "env": {
3358
- "description": "Target environment by name (default: \"local\", or the project's only environment)",
3359
- "name": "env",
3360
- "hasDynamicHelp": false,
3361
- "multiple": false,
3362
- "type": "option"
3363
- },
3364
- "dry-run": {
3365
- "char": "d",
3366
- "description": "Show what would change without making changes",
3367
- "name": "dry-run",
3368
- "allowNo": false,
3369
- "type": "boolean"
3370
- },
3371
- "yes": {
3372
- "char": "y",
3373
- "description": "Answer yes to confirmation prompts",
3374
- "name": "yes",
3375
- "allowNo": false,
3376
- "type": "boolean"
3377
- },
3378
- "list": {
3379
- "description": "List available snapshots instead of rolling back",
3380
- "name": "list",
3381
- "allowNo": false,
3382
- "type": "boolean"
3383
- },
3384
- "to": {
3385
- "description": "Roll back to this snapshot id instead of the most recent one",
3386
- "name": "to",
3387
- "hasDynamicHelp": false,
3388
- "multiple": false,
3389
- "type": "option"
3390
- }
3391
- },
3392
- "hasDynamicHelp": false,
3393
- "hiddenAliases": [],
3394
- "id": "hook:rollback",
3395
- "pluginAlias": "@loopress/cli",
3396
- "pluginName": "@loopress/cli",
3397
- "pluginType": "core",
3398
- "strict": true,
3399
- "enableJsonFlag": true,
3400
- "dryRunFlag": {
3401
- "dry-run": {
3402
- "char": "d",
3403
- "description": "Show what would change without making changes",
3404
- "allowNo": false,
3405
- "type": "boolean"
3406
- }
3407
- },
3408
- "yesFlag": {
3409
- "yes": {
3410
- "char": "y",
3411
- "description": "Answer yes to confirmation prompts",
3412
- "allowNo": false,
3413
- "type": "boolean"
3414
- }
3415
- },
3416
- "isESM": true,
3417
- "relativePath": [
3418
- "dist",
3419
- "commands",
3420
- "hook",
3421
- "rollback.js"
3422
- ]
3423
- },
3424
- "menu:diff": {
3425
- "aliases": [],
3426
- "args": {
3427
- "path": {
3428
- "description": "Path to menus directory (overrides project config)",
3429
- "name": "path"
3430
- }
3431
- },
3432
- "description": "Show what differs in nav menus and the active theme menu locations between your local files and a WordPress environment, or between two environments",
3433
- "examples": [
3434
- "$ lps menu diff",
3435
- "$ lps menu diff --env staging",
3436
- "$ lps menu diff --env staging --against production"
3434
+ "$ lps menu diff",
3435
+ "$ lps menu diff --env staging",
3436
+ "$ lps menu diff --env staging --against production"
3437
3437
  ],
3438
3438
  "flags": {
3439
3439
  "json": {
@@ -5038,20 +5038,19 @@
5038
5038
  "push.js"
5039
5039
  ]
5040
5040
  },
5041
- "plugin:add": {
5041
+ "pattern:diff": {
5042
5042
  "aliases": [],
5043
5043
  "args": {
5044
- "slug": {
5045
- "description": "Plugin slug on WordPress.org",
5046
- "name": "slug",
5047
- "required": true
5044
+ "path": {
5045
+ "description": "Path to patterns directory (overrides project config)",
5046
+ "name": "path"
5048
5047
  }
5049
5048
  },
5050
- "description": "Add a WordPress.org plugin to loopress.json",
5049
+ "description": "Show what differs in block patterns between your local patterns/ files and a WordPress environment, or between two environments",
5051
5050
  "examples": [
5052
- "$ lps plugin add woocommerce",
5053
- "$ lps plugin add woocommerce --version 9.4.2",
5054
- "$ lps plugin add contact-form-7 --dry-run"
5051
+ "$ lps pattern diff",
5052
+ "$ lps pattern diff --env staging",
5053
+ "$ lps pattern diff --env staging --against production"
5055
5054
  ],
5056
5055
  "flags": {
5057
5056
  "json": {
@@ -5068,16 +5067,9 @@
5068
5067
  "multiple": false,
5069
5068
  "type": "option"
5070
5069
  },
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",
5070
+ "against": {
5071
+ "description": "Compare the primary environment against this second environment instead of against local files",
5072
+ "name": "against",
5081
5073
  "hasDynamicHelp": false,
5082
5074
  "multiple": false,
5083
5075
  "type": "option"
@@ -5085,7 +5077,7 @@
5085
5077
  },
5086
5078
  "hasDynamicHelp": false,
5087
5079
  "hiddenAliases": [],
5088
- "id": "plugin:add",
5080
+ "id": "pattern:diff",
5089
5081
  "pluginAlias": "@loopress/cli",
5090
5082
  "pluginName": "@loopress/cli",
5091
5083
  "pluginType": "core",
@@ -5107,20 +5099,28 @@
5107
5099
  "type": "boolean"
5108
5100
  }
5109
5101
  },
5102
+ "againstFlag": {
5103
+ "against": {
5104
+ "description": "Compare the primary environment against this second environment instead of against local files",
5105
+ "input": [],
5106
+ "multiple": false,
5107
+ "type": "option"
5108
+ }
5109
+ },
5110
5110
  "isESM": true,
5111
5111
  "relativePath": [
5112
5112
  "dist",
5113
5113
  "commands",
5114
- "plugin",
5115
- "add.js"
5114
+ "pattern",
5115
+ "diff.js"
5116
5116
  ]
5117
5117
  },
5118
- "plugin:audit": {
5118
+ "pattern:list": {
5119
5119
  "aliases": [],
5120
5120
  "args": {},
5121
- "description": "Check the plugins in loopress.json for known vulnerabilities (wpvulnerability.net) and health issues",
5121
+ "description": "List the block patterns registered on WordPress by Loopress, the theme and plugins (not WordPress core). Only Loopress ones are pulled and pushed.",
5122
5122
  "examples": [
5123
- "$ lps plugin audit"
5123
+ "$ lps pattern list"
5124
5124
  ],
5125
5125
  "flags": {
5126
5126
  "json": {
@@ -5140,7 +5140,7 @@
5140
5140
  },
5141
5141
  "hasDynamicHelp": false,
5142
5142
  "hiddenAliases": [],
5143
- "id": "plugin:audit",
5143
+ "id": "pattern:list",
5144
5144
  "pluginAlias": "@loopress/cli",
5145
5145
  "pluginName": "@loopress/cli",
5146
5146
  "pluginType": "core",
@@ -5166,17 +5166,21 @@
5166
5166
  "relativePath": [
5167
5167
  "dist",
5168
5168
  "commands",
5169
- "plugin",
5170
- "audit.js"
5169
+ "pattern",
5170
+ "list.js"
5171
5171
  ]
5172
5172
  },
5173
- "plugin:pull": {
5173
+ "pattern:pull": {
5174
5174
  "aliases": [],
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.",
5175
+ "args": {
5176
+ "path": {
5177
+ "description": "Path to the patterns directory (overrides project config)",
5178
+ "name": "path"
5179
+ }
5180
+ },
5181
+ "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`.",
5177
5182
  "examples": [
5178
- "$ lps plugin pull",
5179
- "$ lps plugin pull --env production --plugin query-monitor"
5183
+ "$ lps pattern pull"
5180
5184
  ],
5181
5185
  "flags": {
5182
5186
  "json": {
@@ -5206,18 +5210,11 @@
5206
5210
  "name": "yes",
5207
5211
  "allowNo": false,
5208
5212
  "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"
5216
5213
  }
5217
5214
  },
5218
5215
  "hasDynamicHelp": false,
5219
5216
  "hiddenAliases": [],
5220
- "id": "plugin:pull",
5217
+ "id": "pattern:pull",
5221
5218
  "pluginAlias": "@loopress/cli",
5222
5219
  "pluginName": "@loopress/cli",
5223
5220
  "pluginType": "core",
@@ -5243,18 +5240,21 @@
5243
5240
  "relativePath": [
5244
5241
  "dist",
5245
5242
  "commands",
5246
- "plugin",
5243
+ "pattern",
5247
5244
  "pull.js"
5248
5245
  ]
5249
5246
  },
5250
- "plugin:push": {
5247
+ "pattern:push": {
5251
5248
  "aliases": [],
5252
- "args": {},
5253
- "description": "Install WordPress.org plugins on WordPress to match loopress.json (active state included) or composer.json, via Composer + WPackagist",
5249
+ "args": {
5250
+ "path": {
5251
+ "description": "Path to the patterns directory (overrides project config)",
5252
+ "name": "path"
5253
+ }
5254
+ },
5255
+ "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`).",
5254
5256
  "examples": [
5255
- "$ lps plugin push",
5256
- "$ lps plugin push --dry-run",
5257
- "$ lps plugin push --force --prune"
5257
+ "$ lps pattern push"
5258
5258
  ],
5259
5259
  "flags": {
5260
5260
  "json": {
@@ -5296,29 +5296,11 @@
5296
5296
  "name": "yes",
5297
5297
  "allowNo": false,
5298
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"
5317
5299
  }
5318
5300
  },
5319
5301
  "hasDynamicHelp": false,
5320
5302
  "hiddenAliases": [],
5321
- "id": "plugin:push",
5303
+ "id": "pattern:push",
5322
5304
  "pluginAlias": "@loopress/cli",
5323
5305
  "pluginName": "@loopress/cli",
5324
5306
  "pluginType": "core",
@@ -5344,16 +5326,25 @@
5344
5326
  "relativePath": [
5345
5327
  "dist",
5346
5328
  "commands",
5347
- "plugin",
5329
+ "pattern",
5348
5330
  "push.js"
5349
5331
  ]
5350
5332
  },
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)",
5333
+ "pattern:rm": {
5334
+ "aliases": [
5335
+ "pattern:remove"
5336
+ ],
5337
+ "args": {
5338
+ "slug": {
5339
+ "description": "The pattern slug, its patterns/ file name without .html",
5340
+ "name": "slug",
5341
+ "required": true
5342
+ }
5343
+ },
5344
+ "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.",
5355
5345
  "examples": [
5356
- "$ lps plugin status"
5346
+ "$ lps pattern rm <slug>",
5347
+ "$ lps pattern remove <slug> --yes"
5357
5348
  ],
5358
5349
  "flags": {
5359
5350
  "json": {
@@ -5369,11 +5360,25 @@
5369
5360
  "hasDynamicHelp": false,
5370
5361
  "multiple": false,
5371
5362
  "type": "option"
5363
+ },
5364
+ "dry-run": {
5365
+ "char": "d",
5366
+ "description": "Show what would change without making changes",
5367
+ "name": "dry-run",
5368
+ "allowNo": false,
5369
+ "type": "boolean"
5370
+ },
5371
+ "yes": {
5372
+ "char": "y",
5373
+ "description": "Answer yes to confirmation prompts",
5374
+ "name": "yes",
5375
+ "allowNo": false,
5376
+ "type": "boolean"
5372
5377
  }
5373
5378
  },
5374
5379
  "hasDynamicHelp": false,
5375
5380
  "hiddenAliases": [],
5376
- "id": "plugin:status",
5381
+ "id": "pattern:rm",
5377
5382
  "pluginAlias": "@loopress/cli",
5378
5383
  "pluginName": "@loopress/cli",
5379
5384
  "pluginType": "core",
@@ -5399,11 +5404,11 @@
5399
5404
  "relativePath": [
5400
5405
  "dist",
5401
5406
  "commands",
5402
- "plugin",
5403
- "status.js"
5407
+ "pattern",
5408
+ "rm.js"
5404
5409
  ]
5405
5410
  },
5406
- "pattern:diff": {
5411
+ "pattern:rollback": {
5407
5412
  "aliases": [],
5408
5413
  "args": {
5409
5414
  "path": {
@@ -5411,11 +5416,12 @@
5411
5416
  "name": "path"
5412
5417
  }
5413
5418
  },
5414
- "description": "Show what differs in block patterns between your local patterns/ files and a WordPress environment, or between two environments",
5419
+ "description": "Restore block patterns to a snapshot taken automatically before an earlier `lps pattern push`",
5415
5420
  "examples": [
5416
- "$ lps pattern diff",
5417
- "$ lps pattern diff --env staging",
5418
- "$ lps pattern diff --env staging --against production"
5421
+ "$ lps pattern rollback",
5422
+ "$ lps pattern rollback --list",
5423
+ "$ lps pattern rollback --to 1732000000000",
5424
+ "$ lps pattern rollback --dry-run"
5419
5425
  ],
5420
5426
  "flags": {
5421
5427
  "json": {
@@ -5432,9 +5438,29 @@
5432
5438
  "multiple": false,
5433
5439
  "type": "option"
5434
5440
  },
5435
- "against": {
5436
- "description": "Compare the primary environment against this second environment instead of against local files",
5437
- "name": "against",
5441
+ "dry-run": {
5442
+ "char": "d",
5443
+ "description": "Show what would change without making changes",
5444
+ "name": "dry-run",
5445
+ "allowNo": false,
5446
+ "type": "boolean"
5447
+ },
5448
+ "yes": {
5449
+ "char": "y",
5450
+ "description": "Answer yes to confirmation prompts",
5451
+ "name": "yes",
5452
+ "allowNo": false,
5453
+ "type": "boolean"
5454
+ },
5455
+ "list": {
5456
+ "description": "List available snapshots instead of rolling back",
5457
+ "name": "list",
5458
+ "allowNo": false,
5459
+ "type": "boolean"
5460
+ },
5461
+ "to": {
5462
+ "description": "Roll back to this snapshot id instead of the most recent one",
5463
+ "name": "to",
5438
5464
  "hasDynamicHelp": false,
5439
5465
  "multiple": false,
5440
5466
  "type": "option"
@@ -5442,7 +5468,7 @@
5442
5468
  },
5443
5469
  "hasDynamicHelp": false,
5444
5470
  "hiddenAliases": [],
5445
- "id": "pattern:diff",
5471
+ "id": "pattern:rollback",
5446
5472
  "pluginAlias": "@loopress/cli",
5447
5473
  "pluginName": "@loopress/cli",
5448
5474
  "pluginType": "core",
@@ -5464,28 +5490,28 @@
5464
5490
  "type": "boolean"
5465
5491
  }
5466
5492
  },
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
- },
5475
5493
  "isESM": true,
5476
5494
  "relativePath": [
5477
5495
  "dist",
5478
5496
  "commands",
5479
5497
  "pattern",
5480
- "diff.js"
5498
+ "rollback.js"
5481
5499
  ]
5482
5500
  },
5483
- "pattern:list": {
5501
+ "plugin:add": {
5484
5502
  "aliases": [],
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.",
5503
+ "args": {
5504
+ "slug": {
5505
+ "description": "Plugin slug on WordPress.org",
5506
+ "name": "slug",
5507
+ "required": true
5508
+ }
5509
+ },
5510
+ "description": "Add a WordPress.org plugin to loopress.json",
5487
5511
  "examples": [
5488
- "$ lps pattern list"
5512
+ "$ lps plugin add woocommerce",
5513
+ "$ lps plugin add woocommerce --version 9.4.2",
5514
+ "$ lps plugin add contact-form-7 --dry-run"
5489
5515
  ],
5490
5516
  "flags": {
5491
5517
  "json": {
@@ -5501,11 +5527,25 @@
5501
5527
  "hasDynamicHelp": false,
5502
5528
  "multiple": false,
5503
5529
  "type": "option"
5530
+ },
5531
+ "dry-run": {
5532
+ "char": "d",
5533
+ "description": "Show what would change without making changes",
5534
+ "name": "dry-run",
5535
+ "allowNo": false,
5536
+ "type": "boolean"
5537
+ },
5538
+ "version": {
5539
+ "description": "Exact version to pin (default: \"latest\", tracked on every push)",
5540
+ "name": "version",
5541
+ "hasDynamicHelp": false,
5542
+ "multiple": false,
5543
+ "type": "option"
5504
5544
  }
5505
5545
  },
5506
5546
  "hasDynamicHelp": false,
5507
5547
  "hiddenAliases": [],
5508
- "id": "pattern:list",
5548
+ "id": "plugin:add",
5509
5549
  "pluginAlias": "@loopress/cli",
5510
5550
  "pluginName": "@loopress/cli",
5511
5551
  "pluginType": "core",
@@ -5531,21 +5571,16 @@
5531
5571
  "relativePath": [
5532
5572
  "dist",
5533
5573
  "commands",
5534
- "pattern",
5535
- "list.js"
5574
+ "plugin",
5575
+ "add.js"
5536
5576
  ]
5537
5577
  },
5538
- "pattern:pull": {
5578
+ "plugin:audit": {
5539
5579
  "aliases": [],
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`.",
5580
+ "args": {},
5581
+ "description": "Check the plugins in loopress.json for known vulnerabilities (wpvulnerability.net) and health issues",
5547
5582
  "examples": [
5548
- "$ lps pattern pull"
5583
+ "$ lps plugin audit"
5549
5584
  ],
5550
5585
  "flags": {
5551
5586
  "json": {
@@ -5561,25 +5596,11 @@
5561
5596
  "hasDynamicHelp": false,
5562
5597
  "multiple": false,
5563
5598
  "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"
5578
5599
  }
5579
5600
  },
5580
5601
  "hasDynamicHelp": false,
5581
5602
  "hiddenAliases": [],
5582
- "id": "pattern:pull",
5603
+ "id": "plugin:audit",
5583
5604
  "pluginAlias": "@loopress/cli",
5584
5605
  "pluginName": "@loopress/cli",
5585
5606
  "pluginType": "core",
@@ -5605,21 +5626,17 @@
5605
5626
  "relativePath": [
5606
5627
  "dist",
5607
5628
  "commands",
5608
- "pattern",
5609
- "pull.js"
5629
+ "plugin",
5630
+ "audit.js"
5610
5631
  ]
5611
5632
  },
5612
- "pattern:push": {
5633
+ "plugin:pull": {
5613
5634
  "aliases": [],
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`).",
5635
+ "args": {},
5636
+ "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.",
5621
5637
  "examples": [
5622
- "$ lps pattern push"
5638
+ "$ lps plugin pull",
5639
+ "$ lps plugin pull --env production --plugin query-monitor"
5623
5640
  ],
5624
5641
  "flags": {
5625
5642
  "json": {
@@ -5636,18 +5653,6 @@
5636
5653
  "multiple": false,
5637
5654
  "type": "option"
5638
5655
  },
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
- },
5651
5656
  "dry-run": {
5652
5657
  "char": "d",
5653
5658
  "description": "Show what would change without making changes",
@@ -5661,11 +5666,18 @@
5661
5666
  "name": "yes",
5662
5667
  "allowNo": false,
5663
5668
  "type": "boolean"
5669
+ },
5670
+ "plugin": {
5671
+ "description": "Start tracking this installed plugin too, without asking (repeatable)",
5672
+ "name": "plugin",
5673
+ "hasDynamicHelp": false,
5674
+ "multiple": true,
5675
+ "type": "option"
5664
5676
  }
5665
5677
  },
5666
5678
  "hasDynamicHelp": false,
5667
5679
  "hiddenAliases": [],
5668
- "id": "pattern:push",
5680
+ "id": "plugin:pull",
5669
5681
  "pluginAlias": "@loopress/cli",
5670
5682
  "pluginName": "@loopress/cli",
5671
5683
  "pluginType": "core",
@@ -5691,25 +5703,18 @@
5691
5703
  "relativePath": [
5692
5704
  "dist",
5693
5705
  "commands",
5694
- "pattern",
5695
- "push.js"
5706
+ "plugin",
5707
+ "pull.js"
5696
5708
  ]
5697
5709
  },
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.",
5710
+ "plugin:push": {
5711
+ "aliases": [],
5712
+ "args": {},
5713
+ "description": "Install WordPress.org plugins on WordPress to match loopress.json (active state included) or composer.json, via Composer + WPackagist",
5710
5714
  "examples": [
5711
- "$ lps pattern rm <slug>",
5712
- "$ lps pattern remove <slug> --yes"
5715
+ "$ lps plugin push",
5716
+ "$ lps plugin push --dry-run",
5717
+ "$ lps plugin push --force --prune"
5713
5718
  ],
5714
5719
  "flags": {
5715
5720
  "json": {
@@ -5726,6 +5731,18 @@
5726
5731
  "multiple": false,
5727
5732
  "type": "option"
5728
5733
  },
5734
+ "overwrite": {
5735
+ "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",
5736
+ "name": "overwrite",
5737
+ "allowNo": false,
5738
+ "type": "boolean"
5739
+ },
5740
+ "production-confirmed": {
5741
+ "hidden": true,
5742
+ "name": "production-confirmed",
5743
+ "allowNo": false,
5744
+ "type": "boolean"
5745
+ },
5729
5746
  "dry-run": {
5730
5747
  "char": "d",
5731
5748
  "description": "Show what would change without making changes",
@@ -5739,11 +5756,29 @@
5739
5756
  "name": "yes",
5740
5757
  "allowNo": false,
5741
5758
  "type": "boolean"
5759
+ },
5760
+ "activate": {
5761
+ "description": "composer.json projects only: activate every plugin it declares. Without it, plugins keep their current state and new ones stay inactive",
5762
+ "name": "activate",
5763
+ "allowNo": false,
5764
+ "type": "boolean"
5765
+ },
5766
+ "force": {
5767
+ "description": "Allow downgrades and let Loopress take over plugins installed outside it (replaces their files)",
5768
+ "name": "force",
5769
+ "allowNo": false,
5770
+ "type": "boolean"
5771
+ },
5772
+ "prune": {
5773
+ "description": "Deactivate plugins that are active on the site but absent from loopress.json (or composer.json)",
5774
+ "name": "prune",
5775
+ "allowNo": false,
5776
+ "type": "boolean"
5742
5777
  }
5743
5778
  },
5744
5779
  "hasDynamicHelp": false,
5745
5780
  "hiddenAliases": [],
5746
- "id": "pattern:rm",
5781
+ "id": "plugin:push",
5747
5782
  "pluginAlias": "@loopress/cli",
5748
5783
  "pluginName": "@loopress/cli",
5749
5784
  "pluginType": "core",
@@ -5769,24 +5804,16 @@
5769
5804
  "relativePath": [
5770
5805
  "dist",
5771
5806
  "commands",
5772
- "pattern",
5773
- "rm.js"
5807
+ "plugin",
5808
+ "push.js"
5774
5809
  ]
5775
5810
  },
5776
- "pattern:rollback": {
5811
+ "plugin:status": {
5777
5812
  "aliases": [],
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`",
5813
+ "args": {},
5814
+ "description": "Compare the plugins on WordPress against loopress.json and report drift (missing, wrong version, inactive, untracked)",
5785
5815
  "examples": [
5786
- "$ lps pattern rollback",
5787
- "$ lps pattern rollback --list",
5788
- "$ lps pattern rollback --to 1732000000000",
5789
- "$ lps pattern rollback --dry-run"
5816
+ "$ lps plugin status"
5790
5817
  ],
5791
5818
  "flags": {
5792
5819
  "json": {
@@ -5802,38 +5829,11 @@
5802
5829
  "hasDynamicHelp": false,
5803
5830
  "multiple": false,
5804
5831
  "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"
5832
5832
  }
5833
5833
  },
5834
5834
  "hasDynamicHelp": false,
5835
5835
  "hiddenAliases": [],
5836
- "id": "pattern:rollback",
5836
+ "id": "plugin:status",
5837
5837
  "pluginAlias": "@loopress/cli",
5838
5838
  "pluginName": "@loopress/cli",
5839
5839
  "pluginType": "core",
@@ -5859,8 +5859,8 @@
5859
5859
  "relativePath": [
5860
5860
  "dist",
5861
5861
  "commands",
5862
- "pattern",
5863
- "rollback.js"
5862
+ "plugin",
5863
+ "status.js"
5864
5864
  ]
5865
5865
  },
5866
5866
  "project:config": {
@@ -6532,19 +6532,19 @@
6532
6532
  "rollback.js"
6533
6533
  ]
6534
6534
  },
6535
- "snippet:diff": {
6535
+ "taxonomy:diff": {
6536
6536
  "aliases": [],
6537
6537
  "args": {
6538
6538
  "path": {
6539
- "description": "Path to snippets directory (overrides project config)",
6539
+ "description": "Path to taxonomies directory (overrides project config)",
6540
6540
  "name": "path"
6541
6541
  }
6542
6542
  },
6543
- "description": "Show what differs in snippets between your local files and a WordPress environment, or between two environments",
6543
+ "description": "Show what differs in taxonomies between your local taxonomies/ files and a WordPress environment, or between two environments",
6544
6544
  "examples": [
6545
- "$ lps snippet diff",
6546
- "$ lps snippet diff --env staging",
6547
- "$ lps snippet diff --env staging --against production"
6545
+ "$ lps taxonomy diff",
6546
+ "$ lps taxonomy diff --env staging",
6547
+ "$ lps taxonomy diff --env staging --against production"
6548
6548
  ],
6549
6549
  "flags": {
6550
6550
  "json": {
@@ -6571,7 +6571,7 @@
6571
6571
  },
6572
6572
  "hasDynamicHelp": false,
6573
6573
  "hiddenAliases": [],
6574
- "id": "snippet:diff",
6574
+ "id": "taxonomy:diff",
6575
6575
  "pluginAlias": "@loopress/cli",
6576
6576
  "pluginName": "@loopress/cli",
6577
6577
  "pluginType": "core",
@@ -6605,16 +6605,16 @@
6605
6605
  "relativePath": [
6606
6606
  "dist",
6607
6607
  "commands",
6608
- "snippet",
6608
+ "taxonomy",
6609
6609
  "diff.js"
6610
6610
  ]
6611
6611
  },
6612
- "snippet:list": {
6612
+ "taxonomy:list": {
6613
6613
  "aliases": [],
6614
6614
  "args": {},
6615
- "description": "List snippets currently on WordPress",
6615
+ "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.",
6616
6616
  "examples": [
6617
- "$ lps snippet list"
6617
+ "$ lps taxonomy list"
6618
6618
  ],
6619
6619
  "flags": {
6620
6620
  "json": {
@@ -6634,7 +6634,7 @@
6634
6634
  },
6635
6635
  "hasDynamicHelp": false,
6636
6636
  "hiddenAliases": [],
6637
- "id": "snippet:list",
6637
+ "id": "taxonomy:list",
6638
6638
  "pluginAlias": "@loopress/cli",
6639
6639
  "pluginName": "@loopress/cli",
6640
6640
  "pluginType": "core",
@@ -6660,52 +6660,95 @@
6660
6660
  "relativePath": [
6661
6661
  "dist",
6662
6662
  "commands",
6663
- "snippet",
6663
+ "taxonomy",
6664
6664
  "list.js"
6665
6665
  ]
6666
6666
  },
6667
- "snippet:publish": {
6667
+ "taxonomy:pull": {
6668
6668
  "aliases": [],
6669
6669
  "args": {
6670
6670
  "path": {
6671
- "description": "Path to snippets directory (overrides project config)",
6671
+ "description": "Path to the taxonomies directory (overrides project config)",
6672
6672
  "name": "path"
6673
6673
  }
6674
6674
  },
6675
- "description": "Publish snippets to your Loopress account so they can be deployed to other projects. Does not touch any WordPress site.",
6675
+ "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`.",
6676
6676
  "examples": [
6677
- "$ lps snippet publish",
6678
- "$ lps snippet publish ./snippets"
6677
+ "$ lps taxonomy pull"
6679
6678
  ],
6680
- "flags": {},
6679
+ "flags": {
6680
+ "json": {
6681
+ "description": "Format output as json.",
6682
+ "helpGroup": "GLOBAL",
6683
+ "name": "json",
6684
+ "allowNo": false,
6685
+ "type": "boolean"
6686
+ },
6687
+ "env": {
6688
+ "description": "Target environment by name (default: \"local\", or the project's only environment)",
6689
+ "name": "env",
6690
+ "hasDynamicHelp": false,
6691
+ "multiple": false,
6692
+ "type": "option"
6693
+ },
6694
+ "dry-run": {
6695
+ "char": "d",
6696
+ "description": "Show what would change without making changes",
6697
+ "name": "dry-run",
6698
+ "allowNo": false,
6699
+ "type": "boolean"
6700
+ },
6701
+ "yes": {
6702
+ "char": "y",
6703
+ "description": "Answer yes to confirmation prompts",
6704
+ "name": "yes",
6705
+ "allowNo": false,
6706
+ "type": "boolean"
6707
+ }
6708
+ },
6681
6709
  "hasDynamicHelp": false,
6682
6710
  "hiddenAliases": [],
6683
- "id": "snippet:publish",
6711
+ "id": "taxonomy:pull",
6684
6712
  "pluginAlias": "@loopress/cli",
6685
6713
  "pluginName": "@loopress/cli",
6686
6714
  "pluginType": "core",
6687
6715
  "strict": true,
6688
- "enableJsonFlag": false,
6716
+ "enableJsonFlag": true,
6717
+ "dryRunFlag": {
6718
+ "dry-run": {
6719
+ "char": "d",
6720
+ "description": "Show what would change without making changes",
6721
+ "allowNo": false,
6722
+ "type": "boolean"
6723
+ }
6724
+ },
6725
+ "yesFlag": {
6726
+ "yes": {
6727
+ "char": "y",
6728
+ "description": "Answer yes to confirmation prompts",
6729
+ "allowNo": false,
6730
+ "type": "boolean"
6731
+ }
6732
+ },
6689
6733
  "isESM": true,
6690
6734
  "relativePath": [
6691
6735
  "dist",
6692
6736
  "commands",
6693
- "snippet",
6694
- "publish.js"
6737
+ "taxonomy",
6738
+ "pull.js"
6695
6739
  ]
6696
6740
  },
6697
- "snippet:pull": {
6741
+ "taxonomy:push": {
6698
6742
  "aliases": [],
6699
6743
  "args": {
6700
6744
  "path": {
6701
- "description": "Path to snippets directory (overrides project config)",
6745
+ "description": "Path to the taxonomies directory (overrides project config)",
6702
6746
  "name": "path"
6703
6747
  }
6704
6748
  },
6705
- "description": "Pull snippets from WordPress into local files",
6749
+ "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.",
6706
6750
  "examples": [
6707
- "$ lps snippet pull",
6708
- "$ lps snippet pull ./snippets"
6751
+ "$ lps taxonomy push"
6709
6752
  ],
6710
6753
  "flags": {
6711
6754
  "json": {
@@ -6722,6 +6765,18 @@
6722
6765
  "multiple": false,
6723
6766
  "type": "option"
6724
6767
  },
6768
+ "overwrite": {
6769
+ "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",
6770
+ "name": "overwrite",
6771
+ "allowNo": false,
6772
+ "type": "boolean"
6773
+ },
6774
+ "production-confirmed": {
6775
+ "hidden": true,
6776
+ "name": "production-confirmed",
6777
+ "allowNo": false,
6778
+ "type": "boolean"
6779
+ },
6725
6780
  "dry-run": {
6726
6781
  "char": "d",
6727
6782
  "description": "Show what would change without making changes",
@@ -6739,7 +6794,7 @@
6739
6794
  },
6740
6795
  "hasDynamicHelp": false,
6741
6796
  "hiddenAliases": [],
6742
- "id": "snippet:pull",
6797
+ "id": "taxonomy:push",
6743
6798
  "pluginAlias": "@loopress/cli",
6744
6799
  "pluginName": "@loopress/cli",
6745
6800
  "pluginType": "core",
@@ -6765,22 +6820,25 @@
6765
6820
  "relativePath": [
6766
6821
  "dist",
6767
6822
  "commands",
6768
- "snippet",
6769
- "pull.js"
6823
+ "taxonomy",
6824
+ "push.js"
6770
6825
  ]
6771
6826
  },
6772
- "snippet:push": {
6773
- "aliases": [],
6827
+ "taxonomy:rm": {
6828
+ "aliases": [
6829
+ "taxonomy:remove"
6830
+ ],
6774
6831
  "args": {
6775
- "path": {
6776
- "description": "Path to snippets directory (overrides project config)",
6777
- "name": "path"
6832
+ "slug": {
6833
+ "description": "The taxonomy slug, its taxonomies/ file name without .json",
6834
+ "name": "slug",
6835
+ "required": true
6778
6836
  }
6779
6837
  },
6780
- "description": "Push local snippet files to WordPress. Local snippet files created or updated remotely are renamed on disk to the `<id>-<slug>` convention.",
6838
+ "description": "Stop registering a Loopress taxonomy on WordPress. Its terms are kept in the database, hidden until the taxonomy is pushed again.",
6781
6839
  "examples": [
6782
- "$ lps snippet push",
6783
- "$ lps snippet push ./snippets"
6840
+ "$ lps taxonomy rm <slug>",
6841
+ "$ lps taxonomy remove <slug> --yes"
6784
6842
  ],
6785
6843
  "flags": {
6786
6844
  "json": {
@@ -6797,18 +6855,6 @@
6797
6855
  "multiple": false,
6798
6856
  "type": "option"
6799
6857
  },
6800
- "overwrite": {
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",
6802
- "name": "overwrite",
6803
- "allowNo": false,
6804
- "type": "boolean"
6805
- },
6806
- "production-confirmed": {
6807
- "hidden": true,
6808
- "name": "production-confirmed",
6809
- "allowNo": false,
6810
- "type": "boolean"
6811
- },
6812
6858
  "dry-run": {
6813
6859
  "char": "d",
6814
6860
  "description": "Show what would change without making changes",
@@ -6826,7 +6872,7 @@
6826
6872
  },
6827
6873
  "hasDynamicHelp": false,
6828
6874
  "hiddenAliases": [],
6829
- "id": "snippet:push",
6875
+ "id": "taxonomy:rm",
6830
6876
  "pluginAlias": "@loopress/cli",
6831
6877
  "pluginName": "@loopress/cli",
6832
6878
  "pluginType": "core",
@@ -6852,24 +6898,24 @@
6852
6898
  "relativePath": [
6853
6899
  "dist",
6854
6900
  "commands",
6855
- "snippet",
6856
- "push.js"
6901
+ "taxonomy",
6902
+ "rm.js"
6857
6903
  ]
6858
6904
  },
6859
- "snippet:rollback": {
6905
+ "taxonomy:rollback": {
6860
6906
  "aliases": [],
6861
6907
  "args": {
6862
6908
  "path": {
6863
- "description": "Path to snippets directory (overrides project config)",
6909
+ "description": "Path to taxonomies directory (overrides project config)",
6864
6910
  "name": "path"
6865
6911
  }
6866
6912
  },
6867
- "description": "Restore snippets to a snapshot taken automatically before an earlier `lps snippet push`",
6913
+ "description": "Restore taxonomies to a snapshot taken automatically before an earlier `lps taxonomy push`",
6868
6914
  "examples": [
6869
- "$ lps snippet rollback",
6870
- "$ lps snippet rollback --list",
6871
- "$ lps snippet rollback --to 1732000000000",
6872
- "$ lps snippet rollback --dry-run"
6915
+ "$ lps taxonomy rollback",
6916
+ "$ lps taxonomy rollback --list",
6917
+ "$ lps taxonomy rollback --to 1732000000000",
6918
+ "$ lps taxonomy rollback --dry-run"
6873
6919
  ],
6874
6920
  "flags": {
6875
6921
  "json": {
@@ -6916,7 +6962,7 @@
6916
6962
  },
6917
6963
  "hasDynamicHelp": false,
6918
6964
  "hiddenAliases": [],
6919
- "id": "snippet:rollback",
6965
+ "id": "taxonomy:rollback",
6920
6966
  "pluginAlias": "@loopress/cli",
6921
6967
  "pluginName": "@loopress/cli",
6922
6968
  "pluginType": "core",
@@ -6942,71 +6988,23 @@
6942
6988
  "relativePath": [
6943
6989
  "dist",
6944
6990
  "commands",
6945
- "snippet",
6991
+ "taxonomy",
6946
6992
  "rollback.js"
6947
6993
  ]
6948
6994
  },
6949
- "telemetry:disable": {
6950
- "aliases": [],
6951
- "args": {},
6952
- "description": "Disable error reporting to Sentry",
6953
- "examples": [
6954
- "$ lps telemetry disable"
6955
- ],
6956
- "flags": {},
6957
- "hasDynamicHelp": false,
6958
- "hiddenAliases": [],
6959
- "id": "telemetry:disable",
6960
- "pluginAlias": "@loopress/cli",
6961
- "pluginName": "@loopress/cli",
6962
- "pluginType": "core",
6963
- "strict": true,
6964
- "enableJsonFlag": false,
6965
- "isESM": true,
6966
- "relativePath": [
6967
- "dist",
6968
- "commands",
6969
- "telemetry",
6970
- "disable.js"
6971
- ]
6972
- },
6973
- "telemetry:enable": {
6974
- "aliases": [],
6975
- "args": {},
6976
- "description": "Enable error reporting to Sentry",
6977
- "examples": [
6978
- "$ lps telemetry enable"
6979
- ],
6980
- "flags": {},
6981
- "hasDynamicHelp": false,
6982
- "hiddenAliases": [],
6983
- "id": "telemetry:enable",
6984
- "pluginAlias": "@loopress/cli",
6985
- "pluginName": "@loopress/cli",
6986
- "pluginType": "core",
6987
- "strict": true,
6988
- "enableJsonFlag": false,
6989
- "isESM": true,
6990
- "relativePath": [
6991
- "dist",
6992
- "commands",
6993
- "telemetry",
6994
- "enable.js"
6995
- ]
6996
- },
6997
- "taxonomy:diff": {
6995
+ "snippet:diff": {
6998
6996
  "aliases": [],
6999
6997
  "args": {
7000
6998
  "path": {
7001
- "description": "Path to taxonomies directory (overrides project config)",
6999
+ "description": "Path to snippets directory (overrides project config)",
7002
7000
  "name": "path"
7003
7001
  }
7004
7002
  },
7005
- "description": "Show what differs in taxonomies between your local taxonomies/ files and a WordPress environment, or between two environments",
7003
+ "description": "Show what differs in snippets between your local files and a WordPress environment, or between two environments",
7006
7004
  "examples": [
7007
- "$ lps taxonomy diff",
7008
- "$ lps taxonomy diff --env staging",
7009
- "$ lps taxonomy diff --env staging --against production"
7005
+ "$ lps snippet diff",
7006
+ "$ lps snippet diff --env staging",
7007
+ "$ lps snippet diff --env staging --against production"
7010
7008
  ],
7011
7009
  "flags": {
7012
7010
  "json": {
@@ -7033,7 +7031,7 @@
7033
7031
  },
7034
7032
  "hasDynamicHelp": false,
7035
7033
  "hiddenAliases": [],
7036
- "id": "taxonomy:diff",
7034
+ "id": "snippet:diff",
7037
7035
  "pluginAlias": "@loopress/cli",
7038
7036
  "pluginName": "@loopress/cli",
7039
7037
  "pluginType": "core",
@@ -7067,16 +7065,16 @@
7067
7065
  "relativePath": [
7068
7066
  "dist",
7069
7067
  "commands",
7070
- "taxonomy",
7068
+ "snippet",
7071
7069
  "diff.js"
7072
7070
  ]
7073
7071
  },
7074
- "taxonomy:list": {
7072
+ "snippet:list": {
7075
7073
  "aliases": [],
7076
7074
  "args": {},
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.",
7075
+ "description": "List snippets currently on WordPress",
7078
7076
  "examples": [
7079
- "$ lps taxonomy list"
7077
+ "$ lps snippet list"
7080
7078
  ],
7081
7079
  "flags": {
7082
7080
  "json": {
@@ -7096,7 +7094,7 @@
7096
7094
  },
7097
7095
  "hasDynamicHelp": false,
7098
7096
  "hiddenAliases": [],
7099
- "id": "taxonomy:list",
7097
+ "id": "snippet:list",
7100
7098
  "pluginAlias": "@loopress/cli",
7101
7099
  "pluginName": "@loopress/cli",
7102
7100
  "pluginType": "core",
@@ -7122,95 +7120,52 @@
7122
7120
  "relativePath": [
7123
7121
  "dist",
7124
7122
  "commands",
7125
- "taxonomy",
7123
+ "snippet",
7126
7124
  "list.js"
7127
7125
  ]
7128
7126
  },
7129
- "taxonomy:pull": {
7127
+ "snippet:publish": {
7130
7128
  "aliases": [],
7131
7129
  "args": {
7132
7130
  "path": {
7133
- "description": "Path to the taxonomies directory (overrides project config)",
7131
+ "description": "Path to snippets directory (overrides project config)",
7134
7132
  "name": "path"
7135
7133
  }
7136
7134
  },
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`.",
7135
+ "description": "Publish snippets to your Loopress account so they can be deployed to other projects. Does not touch any WordPress site.",
7138
7136
  "examples": [
7139
- "$ lps taxonomy pull"
7137
+ "$ lps snippet publish",
7138
+ "$ lps snippet publish ./snippets"
7140
7139
  ],
7141
- "flags": {
7142
- "json": {
7143
- "description": "Format output as json.",
7144
- "helpGroup": "GLOBAL",
7145
- "name": "json",
7146
- "allowNo": false,
7147
- "type": "boolean"
7148
- },
7149
- "env": {
7150
- "description": "Target environment by name (default: \"local\", or the project's only environment)",
7151
- "name": "env",
7152
- "hasDynamicHelp": false,
7153
- "multiple": false,
7154
- "type": "option"
7155
- },
7156
- "dry-run": {
7157
- "char": "d",
7158
- "description": "Show what would change without making changes",
7159
- "name": "dry-run",
7160
- "allowNo": false,
7161
- "type": "boolean"
7162
- },
7163
- "yes": {
7164
- "char": "y",
7165
- "description": "Answer yes to confirmation prompts",
7166
- "name": "yes",
7167
- "allowNo": false,
7168
- "type": "boolean"
7169
- }
7170
- },
7140
+ "flags": {},
7171
7141
  "hasDynamicHelp": false,
7172
7142
  "hiddenAliases": [],
7173
- "id": "taxonomy:pull",
7143
+ "id": "snippet:publish",
7174
7144
  "pluginAlias": "@loopress/cli",
7175
7145
  "pluginName": "@loopress/cli",
7176
7146
  "pluginType": "core",
7177
7147
  "strict": true,
7178
- "enableJsonFlag": true,
7179
- "dryRunFlag": {
7180
- "dry-run": {
7181
- "char": "d",
7182
- "description": "Show what would change without making changes",
7183
- "allowNo": false,
7184
- "type": "boolean"
7185
- }
7186
- },
7187
- "yesFlag": {
7188
- "yes": {
7189
- "char": "y",
7190
- "description": "Answer yes to confirmation prompts",
7191
- "allowNo": false,
7192
- "type": "boolean"
7193
- }
7194
- },
7148
+ "enableJsonFlag": false,
7195
7149
  "isESM": true,
7196
7150
  "relativePath": [
7197
7151
  "dist",
7198
7152
  "commands",
7199
- "taxonomy",
7200
- "pull.js"
7153
+ "snippet",
7154
+ "publish.js"
7201
7155
  ]
7202
7156
  },
7203
- "taxonomy:push": {
7157
+ "snippet:pull": {
7204
7158
  "aliases": [],
7205
7159
  "args": {
7206
7160
  "path": {
7207
- "description": "Path to the taxonomies directory (overrides project config)",
7161
+ "description": "Path to snippets directory (overrides project config)",
7208
7162
  "name": "path"
7209
7163
  }
7210
7164
  },
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.",
7165
+ "description": "Pull snippets from WordPress into local files",
7212
7166
  "examples": [
7213
- "$ lps taxonomy push"
7167
+ "$ lps snippet pull",
7168
+ "$ lps snippet pull ./snippets"
7214
7169
  ],
7215
7170
  "flags": {
7216
7171
  "json": {
@@ -7227,18 +7182,6 @@
7227
7182
  "multiple": false,
7228
7183
  "type": "option"
7229
7184
  },
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
7185
  "dry-run": {
7243
7186
  "char": "d",
7244
7187
  "description": "Show what would change without making changes",
@@ -7256,7 +7199,7 @@
7256
7199
  },
7257
7200
  "hasDynamicHelp": false,
7258
7201
  "hiddenAliases": [],
7259
- "id": "taxonomy:push",
7202
+ "id": "snippet:pull",
7260
7203
  "pluginAlias": "@loopress/cli",
7261
7204
  "pluginName": "@loopress/cli",
7262
7205
  "pluginType": "core",
@@ -7282,25 +7225,22 @@
7282
7225
  "relativePath": [
7283
7226
  "dist",
7284
7227
  "commands",
7285
- "taxonomy",
7286
- "push.js"
7228
+ "snippet",
7229
+ "pull.js"
7287
7230
  ]
7288
7231
  },
7289
- "taxonomy:rm": {
7290
- "aliases": [
7291
- "taxonomy:remove"
7292
- ],
7232
+ "snippet:push": {
7233
+ "aliases": [],
7293
7234
  "args": {
7294
- "slug": {
7295
- "description": "The taxonomy slug, its taxonomies/ file name without .json",
7296
- "name": "slug",
7297
- "required": true
7235
+ "path": {
7236
+ "description": "Path to snippets directory (overrides project config)",
7237
+ "name": "path"
7298
7238
  }
7299
7239
  },
7300
- "description": "Stop registering a Loopress taxonomy on WordPress. Its terms are kept in the database, hidden until the taxonomy is pushed again.",
7240
+ "description": "Push local snippet files to WordPress. Local snippet files created or updated remotely are renamed on disk to the `<id>-<slug>` convention.",
7301
7241
  "examples": [
7302
- "$ lps taxonomy rm <slug>",
7303
- "$ lps taxonomy remove <slug> --yes"
7242
+ "$ lps snippet push",
7243
+ "$ lps snippet push ./snippets"
7304
7244
  ],
7305
7245
  "flags": {
7306
7246
  "json": {
@@ -7317,6 +7257,18 @@
7317
7257
  "multiple": false,
7318
7258
  "type": "option"
7319
7259
  },
7260
+ "overwrite": {
7261
+ "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",
7262
+ "name": "overwrite",
7263
+ "allowNo": false,
7264
+ "type": "boolean"
7265
+ },
7266
+ "production-confirmed": {
7267
+ "hidden": true,
7268
+ "name": "production-confirmed",
7269
+ "allowNo": false,
7270
+ "type": "boolean"
7271
+ },
7320
7272
  "dry-run": {
7321
7273
  "char": "d",
7322
7274
  "description": "Show what would change without making changes",
@@ -7334,7 +7286,7 @@
7334
7286
  },
7335
7287
  "hasDynamicHelp": false,
7336
7288
  "hiddenAliases": [],
7337
- "id": "taxonomy:rm",
7289
+ "id": "snippet:push",
7338
7290
  "pluginAlias": "@loopress/cli",
7339
7291
  "pluginName": "@loopress/cli",
7340
7292
  "pluginType": "core",
@@ -7360,24 +7312,24 @@
7360
7312
  "relativePath": [
7361
7313
  "dist",
7362
7314
  "commands",
7363
- "taxonomy",
7364
- "rm.js"
7315
+ "snippet",
7316
+ "push.js"
7365
7317
  ]
7366
7318
  },
7367
- "taxonomy:rollback": {
7319
+ "snippet:rollback": {
7368
7320
  "aliases": [],
7369
7321
  "args": {
7370
7322
  "path": {
7371
- "description": "Path to taxonomies directory (overrides project config)",
7323
+ "description": "Path to snippets directory (overrides project config)",
7372
7324
  "name": "path"
7373
7325
  }
7374
7326
  },
7375
- "description": "Restore taxonomies to a snapshot taken automatically before an earlier `lps taxonomy push`",
7327
+ "description": "Restore snippets to a snapshot taken automatically before an earlier `lps snippet push`",
7376
7328
  "examples": [
7377
- "$ lps taxonomy rollback",
7378
- "$ lps taxonomy rollback --list",
7379
- "$ lps taxonomy rollback --to 1732000000000",
7380
- "$ lps taxonomy rollback --dry-run"
7329
+ "$ lps snippet rollback",
7330
+ "$ lps snippet rollback --list",
7331
+ "$ lps snippet rollback --to 1732000000000",
7332
+ "$ lps snippet rollback --dry-run"
7381
7333
  ],
7382
7334
  "flags": {
7383
7335
  "json": {
@@ -7424,7 +7376,7 @@
7424
7376
  },
7425
7377
  "hasDynamicHelp": false,
7426
7378
  "hiddenAliases": [],
7427
- "id": "taxonomy:rollback",
7379
+ "id": "snippet:rollback",
7428
7380
  "pluginAlias": "@loopress/cli",
7429
7381
  "pluginName": "@loopress/cli",
7430
7382
  "pluginType": "core",
@@ -7450,10 +7402,58 @@
7450
7402
  "relativePath": [
7451
7403
  "dist",
7452
7404
  "commands",
7453
- "taxonomy",
7405
+ "snippet",
7454
7406
  "rollback.js"
7455
7407
  ]
7456
7408
  },
7409
+ "telemetry:disable": {
7410
+ "aliases": [],
7411
+ "args": {},
7412
+ "description": "Disable error reporting to Sentry",
7413
+ "examples": [
7414
+ "$ lps telemetry disable"
7415
+ ],
7416
+ "flags": {},
7417
+ "hasDynamicHelp": false,
7418
+ "hiddenAliases": [],
7419
+ "id": "telemetry:disable",
7420
+ "pluginAlias": "@loopress/cli",
7421
+ "pluginName": "@loopress/cli",
7422
+ "pluginType": "core",
7423
+ "strict": true,
7424
+ "enableJsonFlag": false,
7425
+ "isESM": true,
7426
+ "relativePath": [
7427
+ "dist",
7428
+ "commands",
7429
+ "telemetry",
7430
+ "disable.js"
7431
+ ]
7432
+ },
7433
+ "telemetry:enable": {
7434
+ "aliases": [],
7435
+ "args": {},
7436
+ "description": "Enable error reporting to Sentry",
7437
+ "examples": [
7438
+ "$ lps telemetry enable"
7439
+ ],
7440
+ "flags": {},
7441
+ "hasDynamicHelp": false,
7442
+ "hiddenAliases": [],
7443
+ "id": "telemetry:enable",
7444
+ "pluginAlias": "@loopress/cli",
7445
+ "pluginName": "@loopress/cli",
7446
+ "pluginType": "core",
7447
+ "strict": true,
7448
+ "enableJsonFlag": false,
7449
+ "isESM": true,
7450
+ "relativePath": [
7451
+ "dist",
7452
+ "commands",
7453
+ "telemetry",
7454
+ "enable.js"
7455
+ ]
7456
+ },
7457
7457
  "theme:add": {
7458
7458
  "aliases": [],
7459
7459
  "args": {
@@ -8415,5 +8415,5 @@
8415
8415
  ]
8416
8416
  }
8417
8417
  },
8418
- "version": "0.32.1"
8418
+ "version": "0.32.2"
8419
8419
  }