@loopress/cli 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,14 +11,14 @@
11
11
  ],
12
12
  "flags": {
13
13
  "only": {
14
- "description": "Only watch these resource types (comma-separated): snippets, api, plugins",
14
+ "description": "Only watch these resource types (comma-separated): snippets, pages, api, plugins",
15
15
  "name": "only",
16
16
  "hasDynamicHelp": false,
17
17
  "multiple": false,
18
18
  "type": "option"
19
19
  },
20
20
  "skip": {
21
- "description": "Skip these resource types (comma-separated): snippets, api, plugins",
21
+ "description": "Skip these resource types (comma-separated): snippets, pages, api, plugins",
22
22
  "name": "skip",
23
23
  "hasDynamicHelp": false,
24
24
  "multiple": false,
@@ -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, SEO, 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, pages, SEO, 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.",
47
47
  "examples": [
48
48
  "$ lps diff",
49
49
  "$ lps diff --env staging",
@@ -84,6 +84,7 @@
84
84
  "acf",
85
85
  "api",
86
86
  "hook",
87
+ "page",
87
88
  "seo",
88
89
  "menu",
89
90
  "option",
@@ -103,6 +104,7 @@
103
104
  "acf",
104
105
  "api",
105
106
  "hook",
107
+ "page",
106
108
  "seo",
107
109
  "menu",
108
110
  "option",
@@ -405,7 +407,7 @@
405
407
  "push": {
406
408
  "aliases": [],
407
409
  "args": {},
408
- "description": "Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, menus, options, and snippets, to WordPress",
410
+ "description": "Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, pages, SEO, menus, options, and snippets, to WordPress",
409
411
  "examples": [
410
412
  "$ lps push",
411
413
  "$ lps push --env staging",
@@ -1413,37 +1415,38 @@
1413
1415
  "rollback.js"
1414
1416
  ]
1415
1417
  },
1416
- "app:list": {
1418
+ "composer:init": {
1417
1419
  "aliases": [],
1418
1420
  "args": {},
1419
- "description": "List single-page apps deployed to WordPress",
1421
+ "description": "Create a composer.json wired to WPackagist for installing WordPress.org plugins and themes",
1420
1422
  "examples": [
1421
- "$ lps app list"
1423
+ "$ lps composer init",
1424
+ "$ lps composer init --dry-run"
1422
1425
  ],
1423
1426
  "flags": {
1424
- "json": {
1425
- "description": "Format output as json.",
1426
- "helpGroup": "GLOBAL",
1427
- "name": "json",
1428
- "allowNo": false,
1429
- "type": "boolean"
1430
- },
1431
1427
  "env": {
1432
1428
  "description": "Target environment by name, overriding the globally active one (lps project switch)",
1433
1429
  "name": "env",
1434
1430
  "hasDynamicHelp": false,
1435
1431
  "multiple": false,
1436
1432
  "type": "option"
1433
+ },
1434
+ "dry-run": {
1435
+ "char": "d",
1436
+ "description": "Show what would change without making changes",
1437
+ "name": "dry-run",
1438
+ "allowNo": false,
1439
+ "type": "boolean"
1437
1440
  }
1438
1441
  },
1439
1442
  "hasDynamicHelp": false,
1440
1443
  "hiddenAliases": [],
1441
- "id": "app:list",
1444
+ "id": "composer:init",
1442
1445
  "pluginAlias": "@loopress/cli",
1443
1446
  "pluginName": "@loopress/cli",
1444
1447
  "pluginType": "core",
1445
1448
  "strict": true,
1446
- "enableJsonFlag": true,
1449
+ "enableJsonFlag": false,
1447
1450
  "dryRunFlag": {
1448
1451
  "dry-run": {
1449
1452
  "char": "d",
@@ -1464,21 +1467,17 @@
1464
1467
  "relativePath": [
1465
1468
  "dist",
1466
1469
  "commands",
1467
- "app",
1468
- "list.js"
1470
+ "composer",
1471
+ "init.js"
1469
1472
  ]
1470
1473
  },
1471
- "app:pull": {
1474
+ "composer:pull": {
1472
1475
  "aliases": [],
1473
- "args": {
1474
- "path": {
1475
- "description": "Path to apps directory (overrides project config)",
1476
- "name": "path"
1477
- }
1478
- },
1479
- "description": "Pull single-page app bundles from WordPress into local files",
1476
+ "args": {},
1477
+ "description": "Pull composer.json and composer.lock from WordPress",
1480
1478
  "examples": [
1481
- "$ lps app pull"
1479
+ "$ lps composer pull",
1480
+ "$ lps composer pull --dry-run"
1482
1481
  ],
1483
1482
  "flags": {
1484
1483
  "json": {
@@ -1501,18 +1500,11 @@
1501
1500
  "name": "dry-run",
1502
1501
  "allowNo": false,
1503
1502
  "type": "boolean"
1504
- },
1505
- "yes": {
1506
- "char": "y",
1507
- "description": "Answer yes to confirmation prompts",
1508
- "name": "yes",
1509
- "allowNo": false,
1510
- "type": "boolean"
1511
1503
  }
1512
1504
  },
1513
1505
  "hasDynamicHelp": false,
1514
1506
  "hiddenAliases": [],
1515
- "id": "app:pull",
1507
+ "id": "composer:pull",
1516
1508
  "pluginAlias": "@loopress/cli",
1517
1509
  "pluginName": "@loopress/cli",
1518
1510
  "pluginType": "core",
@@ -1538,22 +1530,17 @@
1538
1530
  "relativePath": [
1539
1531
  "dist",
1540
1532
  "commands",
1541
- "app",
1533
+ "composer",
1542
1534
  "pull.js"
1543
1535
  ]
1544
1536
  },
1545
- "app:push": {
1537
+ "composer:push": {
1546
1538
  "aliases": [],
1547
- "args": {
1548
- "name": {
1549
- "description": "Push only this app (defaults to every app in the directory)",
1550
- "name": "name"
1551
- }
1552
- },
1553
- "description": "Push built single-page app bundles to WordPress. Each app is an `apps/<name>/` directory holding a loopress.app.json and a built dist/ folder. Only files whose content changed are uploaded.",
1539
+ "args": {},
1540
+ "description": "Push composer.json to WordPress and run Composer to resolve and install dependencies",
1554
1541
  "examples": [
1555
- "$ lps app push",
1556
- "$ lps app push search"
1542
+ "$ lps composer push",
1543
+ "$ lps composer push --dry-run"
1557
1544
  ],
1558
1545
  "flags": {
1559
1546
  "json": {
@@ -1583,11 +1570,17 @@
1583
1570
  "name": "yes",
1584
1571
  "allowNo": false,
1585
1572
  "type": "boolean"
1573
+ },
1574
+ "force": {
1575
+ "description": "Allow downgrades and take over plugins/themes installed outside Loopress",
1576
+ "name": "force",
1577
+ "allowNo": false,
1578
+ "type": "boolean"
1586
1579
  }
1587
1580
  },
1588
1581
  "hasDynamicHelp": false,
1589
1582
  "hiddenAliases": [],
1590
- "id": "app:push",
1583
+ "id": "composer:push",
1591
1584
  "pluginAlias": "@loopress/cli",
1592
1585
  "pluginName": "@loopress/cli",
1593
1586
  "pluginType": "core",
@@ -1597,22 +1590,16 @@
1597
1590
  "relativePath": [
1598
1591
  "dist",
1599
1592
  "commands",
1600
- "app",
1593
+ "composer",
1601
1594
  "push.js"
1602
1595
  ]
1603
1596
  },
1604
- "app:remove": {
1597
+ "app:list": {
1605
1598
  "aliases": [],
1606
- "args": {
1607
- "name": {
1608
- "description": "App to remove from WordPress",
1609
- "name": "name",
1610
- "required": true
1611
- }
1612
- },
1613
- "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.",
1599
+ "args": {},
1600
+ "description": "List single-page apps deployed to WordPress",
1614
1601
  "examples": [
1615
- "$ lps app remove search"
1602
+ "$ lps app list"
1616
1603
  ],
1617
1604
  "flags": {
1618
1605
  "json": {
@@ -1628,25 +1615,11 @@
1628
1615
  "hasDynamicHelp": false,
1629
1616
  "multiple": false,
1630
1617
  "type": "option"
1631
- },
1632
- "dry-run": {
1633
- "char": "d",
1634
- "description": "Show what would change without making changes",
1635
- "name": "dry-run",
1636
- "allowNo": false,
1637
- "type": "boolean"
1638
- },
1639
- "yes": {
1640
- "char": "y",
1641
- "description": "Answer yes to confirmation prompts",
1642
- "name": "yes",
1643
- "allowNo": false,
1644
- "type": "boolean"
1645
1618
  }
1646
1619
  },
1647
1620
  "hasDynamicHelp": false,
1648
1621
  "hiddenAliases": [],
1649
- "id": "app:remove",
1622
+ "id": "app:list",
1650
1623
  "pluginAlias": "@loopress/cli",
1651
1624
  "pluginName": "@loopress/cli",
1652
1625
  "pluginType": "core",
@@ -1673,18 +1646,29 @@
1673
1646
  "dist",
1674
1647
  "commands",
1675
1648
  "app",
1676
- "remove.js"
1649
+ "list.js"
1677
1650
  ]
1678
1651
  },
1679
- "composer:init": {
1652
+ "app:pull": {
1680
1653
  "aliases": [],
1681
- "args": {},
1682
- "description": "Create a composer.json wired to WPackagist for installing WordPress.org plugins and themes",
1654
+ "args": {
1655
+ "path": {
1656
+ "description": "Path to apps directory (overrides project config)",
1657
+ "name": "path"
1658
+ }
1659
+ },
1660
+ "description": "Pull single-page app bundles from WordPress into local files",
1683
1661
  "examples": [
1684
- "$ lps composer init",
1685
- "$ lps composer init --dry-run"
1662
+ "$ lps app pull"
1686
1663
  ],
1687
1664
  "flags": {
1665
+ "json": {
1666
+ "description": "Format output as json.",
1667
+ "helpGroup": "GLOBAL",
1668
+ "name": "json",
1669
+ "allowNo": false,
1670
+ "type": "boolean"
1671
+ },
1688
1672
  "env": {
1689
1673
  "description": "Target environment by name, overriding the globally active one (lps project switch)",
1690
1674
  "name": "env",
@@ -1698,16 +1682,23 @@
1698
1682
  "name": "dry-run",
1699
1683
  "allowNo": false,
1700
1684
  "type": "boolean"
1685
+ },
1686
+ "yes": {
1687
+ "char": "y",
1688
+ "description": "Answer yes to confirmation prompts",
1689
+ "name": "yes",
1690
+ "allowNo": false,
1691
+ "type": "boolean"
1701
1692
  }
1702
1693
  },
1703
1694
  "hasDynamicHelp": false,
1704
1695
  "hiddenAliases": [],
1705
- "id": "composer:init",
1696
+ "id": "app:pull",
1706
1697
  "pluginAlias": "@loopress/cli",
1707
1698
  "pluginName": "@loopress/cli",
1708
1699
  "pluginType": "core",
1709
1700
  "strict": true,
1710
- "enableJsonFlag": false,
1701
+ "enableJsonFlag": true,
1711
1702
  "dryRunFlag": {
1712
1703
  "dry-run": {
1713
1704
  "char": "d",
@@ -1728,17 +1719,22 @@
1728
1719
  "relativePath": [
1729
1720
  "dist",
1730
1721
  "commands",
1731
- "composer",
1732
- "init.js"
1722
+ "app",
1723
+ "pull.js"
1733
1724
  ]
1734
1725
  },
1735
- "composer:pull": {
1726
+ "app:push": {
1736
1727
  "aliases": [],
1737
- "args": {},
1738
- "description": "Pull composer.json and composer.lock from WordPress",
1728
+ "args": {
1729
+ "name": {
1730
+ "description": "Push only this app (defaults to every app in the directory)",
1731
+ "name": "name"
1732
+ }
1733
+ },
1734
+ "description": "Push built single-page app bundles to WordPress. Each app is an `apps/<name>/` directory holding a loopress.app.json and a built dist/ folder. Only files whose content changed are uploaded.",
1739
1735
  "examples": [
1740
- "$ lps composer pull",
1741
- "$ lps composer pull --dry-run"
1736
+ "$ lps app push",
1737
+ "$ lps app push search"
1742
1738
  ],
1743
1739
  "flags": {
1744
1740
  "json": {
@@ -1761,47 +1757,43 @@
1761
1757
  "name": "dry-run",
1762
1758
  "allowNo": false,
1763
1759
  "type": "boolean"
1760
+ },
1761
+ "yes": {
1762
+ "char": "y",
1763
+ "description": "Answer yes to confirmation prompts",
1764
+ "name": "yes",
1765
+ "allowNo": false,
1766
+ "type": "boolean"
1764
1767
  }
1765
1768
  },
1766
1769
  "hasDynamicHelp": false,
1767
1770
  "hiddenAliases": [],
1768
- "id": "composer:pull",
1771
+ "id": "app:push",
1769
1772
  "pluginAlias": "@loopress/cli",
1770
1773
  "pluginName": "@loopress/cli",
1771
1774
  "pluginType": "core",
1772
1775
  "strict": true,
1773
1776
  "enableJsonFlag": true,
1774
- "dryRunFlag": {
1775
- "dry-run": {
1776
- "char": "d",
1777
- "description": "Show what would change without making changes",
1778
- "allowNo": false,
1779
- "type": "boolean"
1780
- }
1781
- },
1782
- "yesFlag": {
1783
- "yes": {
1784
- "char": "y",
1785
- "description": "Answer yes to confirmation prompts",
1786
- "allowNo": false,
1787
- "type": "boolean"
1788
- }
1789
- },
1790
1777
  "isESM": true,
1791
1778
  "relativePath": [
1792
1779
  "dist",
1793
1780
  "commands",
1794
- "composer",
1795
- "pull.js"
1781
+ "app",
1782
+ "push.js"
1796
1783
  ]
1797
1784
  },
1798
- "composer:push": {
1785
+ "app:remove": {
1799
1786
  "aliases": [],
1800
- "args": {},
1801
- "description": "Push composer.json to WordPress and run Composer to resolve and install dependencies",
1787
+ "args": {
1788
+ "name": {
1789
+ "description": "App to remove from WordPress",
1790
+ "name": "name",
1791
+ "required": true
1792
+ }
1793
+ },
1794
+ "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.",
1802
1795
  "examples": [
1803
- "$ lps composer push",
1804
- "$ lps composer push --dry-run"
1796
+ "$ lps app remove search"
1805
1797
  ],
1806
1798
  "flags": {
1807
1799
  "json": {
@@ -1831,43 +1823,53 @@
1831
1823
  "name": "yes",
1832
1824
  "allowNo": false,
1833
1825
  "type": "boolean"
1834
- },
1835
- "force": {
1836
- "description": "Allow downgrades and take over plugins/themes installed outside Loopress",
1837
- "name": "force",
1838
- "allowNo": false,
1839
- "type": "boolean"
1840
1826
  }
1841
1827
  },
1842
1828
  "hasDynamicHelp": false,
1843
1829
  "hiddenAliases": [],
1844
- "id": "composer:push",
1830
+ "id": "app:remove",
1845
1831
  "pluginAlias": "@loopress/cli",
1846
1832
  "pluginName": "@loopress/cli",
1847
1833
  "pluginType": "core",
1848
1834
  "strict": true,
1849
1835
  "enableJsonFlag": true,
1836
+ "dryRunFlag": {
1837
+ "dry-run": {
1838
+ "char": "d",
1839
+ "description": "Show what would change without making changes",
1840
+ "allowNo": false,
1841
+ "type": "boolean"
1842
+ }
1843
+ },
1844
+ "yesFlag": {
1845
+ "yes": {
1846
+ "char": "y",
1847
+ "description": "Answer yes to confirmation prompts",
1848
+ "allowNo": false,
1849
+ "type": "boolean"
1850
+ }
1851
+ },
1850
1852
  "isESM": true,
1851
1853
  "relativePath": [
1852
1854
  "dist",
1853
1855
  "commands",
1854
- "composer",
1855
- "push.js"
1856
+ "app",
1857
+ "remove.js"
1856
1858
  ]
1857
1859
  },
1858
- "hook:diff": {
1860
+ "form:diff": {
1859
1861
  "aliases": [],
1860
1862
  "args": {
1861
1863
  "path": {
1862
- "description": "Path to hooks directory (overrides project config)",
1864
+ "description": "Path to forms directory (overrides project config)",
1863
1865
  "name": "path"
1864
1866
  }
1865
1867
  },
1866
- "description": "Show what differs in hook files between your local files and a WordPress environment, or between two environments",
1868
+ "description": "Show what differs in forms between your local files and a WordPress environment, or between two environments",
1867
1869
  "examples": [
1868
- "$ lps hook diff",
1869
- "$ lps hook diff --env staging",
1870
- "$ lps hook diff --env staging --against production"
1870
+ "$ lps form diff",
1871
+ "$ lps form diff --env staging",
1872
+ "$ lps form diff --env staging --against production"
1871
1873
  ],
1872
1874
  "flags": {
1873
1875
  "json": {
@@ -1894,7 +1896,7 @@
1894
1896
  },
1895
1897
  "hasDynamicHelp": false,
1896
1898
  "hiddenAliases": [],
1897
- "id": "hook:diff",
1899
+ "id": "form:diff",
1898
1900
  "pluginAlias": "@loopress/cli",
1899
1901
  "pluginName": "@loopress/cli",
1900
1902
  "pluginType": "core",
@@ -1928,16 +1930,16 @@
1928
1930
  "relativePath": [
1929
1931
  "dist",
1930
1932
  "commands",
1931
- "hook",
1933
+ "form",
1932
1934
  "diff.js"
1933
1935
  ]
1934
1936
  },
1935
- "hook:list": {
1937
+ "form:list": {
1936
1938
  "aliases": [],
1937
1939
  "args": {},
1938
- "description": "List hook files (actions, filters, cron) from WordPress",
1940
+ "description": "List forms from WordPress",
1939
1941
  "examples": [
1940
- "$ lps hook list"
1942
+ "$ lps form list"
1941
1943
  ],
1942
1944
  "flags": {
1943
1945
  "json": {
@@ -1957,7 +1959,7 @@
1957
1959
  },
1958
1960
  "hasDynamicHelp": false,
1959
1961
  "hiddenAliases": [],
1960
- "id": "hook:list",
1962
+ "id": "form:list",
1961
1963
  "pluginAlias": "@loopress/cli",
1962
1964
  "pluginName": "@loopress/cli",
1963
1965
  "pluginType": "core",
@@ -1983,31 +1985,23 @@
1983
1985
  "relativePath": [
1984
1986
  "dist",
1985
1987
  "commands",
1986
- "hook",
1988
+ "form",
1987
1989
  "list.js"
1988
1990
  ]
1989
1991
  },
1990
- "hook:pull": {
1992
+ "form:pull": {
1991
1993
  "aliases": [],
1992
1994
  "args": {
1993
1995
  "path": {
1994
- "description": "Path to hooks directory (overrides project config)",
1996
+ "description": "Path to forms directory (overrides project config)",
1995
1997
  "name": "path"
1996
1998
  }
1997
1999
  },
1998
- "description": "Pull hook files (actions, filters, cron) from WordPress",
2000
+ "description": "Pull forms from WordPress",
1999
2001
  "examples": [
2000
- "$ lps hook pull",
2001
- "$ lps hook pull --path ./hooks"
2002
+ "$ lps form pull"
2002
2003
  ],
2003
2004
  "flags": {
2004
- "json": {
2005
- "description": "Format output as json.",
2006
- "helpGroup": "GLOBAL",
2007
- "name": "json",
2008
- "allowNo": false,
2009
- "type": "boolean"
2010
- },
2011
2005
  "env": {
2012
2006
  "description": "Target environment by name, overriding the globally active one (lps project switch)",
2013
2007
  "name": "env",
@@ -2032,12 +2026,12 @@
2032
2026
  },
2033
2027
  "hasDynamicHelp": false,
2034
2028
  "hiddenAliases": [],
2035
- "id": "hook:pull",
2029
+ "id": "form:pull",
2036
2030
  "pluginAlias": "@loopress/cli",
2037
2031
  "pluginName": "@loopress/cli",
2038
2032
  "pluginType": "core",
2039
2033
  "strict": true,
2040
- "enableJsonFlag": true,
2034
+ "enableJsonFlag": false,
2041
2035
  "dryRunFlag": {
2042
2036
  "dry-run": {
2043
2037
  "char": "d",
@@ -2058,32 +2052,24 @@
2058
2052
  "relativePath": [
2059
2053
  "dist",
2060
2054
  "commands",
2061
- "hook",
2055
+ "form",
2062
2056
  "pull.js"
2063
2057
  ]
2064
2058
  },
2065
- "hook:push": {
2059
+ "form:push": {
2066
2060
  "aliases": [],
2067
2061
  "args": {
2068
2062
  "path": {
2069
- "description": "Path to hooks directory (overrides project config)",
2063
+ "description": "Path to forms directory (overrides project config)",
2070
2064
  "name": "path"
2071
2065
  }
2072
2066
  },
2073
- "description": "Push hook files (actions, filters, cron) to WordPress",
2067
+ "description": "Push forms to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>.json` convention.",
2074
2068
  "examples": [
2075
- "$ lps hook push",
2076
- "$ lps hook push --path ./hooks",
2077
- "$ lps hook push --prune"
2069
+ "$ lps form push",
2070
+ "$ lps form push --allow-notifications"
2078
2071
  ],
2079
2072
  "flags": {
2080
- "json": {
2081
- "description": "Format output as json.",
2082
- "helpGroup": "GLOBAL",
2083
- "name": "json",
2084
- "allowNo": false,
2085
- "type": "boolean"
2086
- },
2087
2073
  "env": {
2088
2074
  "description": "Target environment by name, overriding the globally active one (lps project switch)",
2089
2075
  "name": "env",
@@ -2105,119 +2091,42 @@
2105
2091
  "allowNo": false,
2106
2092
  "type": "boolean"
2107
2093
  },
2108
- "prune": {
2109
- "description": "Delete server-side hook files not present locally after pushing",
2110
- "name": "prune",
2094
+ "allow-notifications": {
2095
+ "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.",
2096
+ "name": "allow-notifications",
2111
2097
  "allowNo": false,
2112
2098
  "type": "boolean"
2113
2099
  }
2114
2100
  },
2115
2101
  "hasDynamicHelp": false,
2116
2102
  "hiddenAliases": [],
2117
- "id": "hook:push",
2103
+ "id": "form:push",
2118
2104
  "pluginAlias": "@loopress/cli",
2119
2105
  "pluginName": "@loopress/cli",
2120
2106
  "pluginType": "core",
2121
2107
  "strict": true,
2122
- "enableJsonFlag": true,
2123
2108
  "isESM": true,
2124
2109
  "relativePath": [
2125
2110
  "dist",
2126
2111
  "commands",
2127
- "hook",
2112
+ "form",
2128
2113
  "push.js"
2129
2114
  ]
2130
2115
  },
2131
- "hook:rm": {
2132
- "aliases": [],
2133
- "args": {
2134
- "filename": {
2135
- "description": "The hook file to remove, its slug without the .php extension (e.g. \"hello\" or \"invoice-pdf/[order_id]\")",
2136
- "name": "filename",
2137
- "required": true
2138
- }
2139
- },
2140
- "description": "Remove a hook file (action, filter, cron) from WordPress",
2141
- "examples": [
2142
- "$ lps hook rm hello",
2143
- "$ lps hook rm hello --yes"
2144
- ],
2145
- "flags": {
2146
- "json": {
2147
- "description": "Format output as json.",
2148
- "helpGroup": "GLOBAL",
2149
- "name": "json",
2150
- "allowNo": false,
2151
- "type": "boolean"
2152
- },
2153
- "env": {
2154
- "description": "Target environment by name, overriding the globally active one (lps project switch)",
2155
- "name": "env",
2156
- "hasDynamicHelp": false,
2157
- "multiple": false,
2158
- "type": "option"
2159
- },
2160
- "dry-run": {
2161
- "char": "d",
2162
- "description": "Show what would change without making changes",
2163
- "name": "dry-run",
2164
- "allowNo": false,
2165
- "type": "boolean"
2166
- },
2167
- "yes": {
2168
- "char": "y",
2169
- "description": "Answer yes to confirmation prompts",
2170
- "name": "yes",
2171
- "allowNo": false,
2172
- "type": "boolean"
2173
- }
2174
- },
2175
- "hasDynamicHelp": false,
2176
- "hiddenAliases": [],
2177
- "id": "hook:rm",
2178
- "pluginAlias": "@loopress/cli",
2179
- "pluginName": "@loopress/cli",
2180
- "pluginType": "core",
2181
- "strict": true,
2182
- "enableJsonFlag": true,
2183
- "dryRunFlag": {
2184
- "dry-run": {
2185
- "char": "d",
2186
- "description": "Show what would change without making changes",
2187
- "allowNo": false,
2188
- "type": "boolean"
2189
- }
2190
- },
2191
- "yesFlag": {
2192
- "yes": {
2193
- "char": "y",
2194
- "description": "Answer yes to confirmation prompts",
2195
- "allowNo": false,
2196
- "type": "boolean"
2197
- }
2198
- },
2199
- "isESM": true,
2200
- "relativePath": [
2201
- "dist",
2202
- "commands",
2203
- "hook",
2204
- "rm.js"
2205
- ]
2206
- },
2207
- "hook:rollback": {
2116
+ "form:rollback": {
2208
2117
  "aliases": [],
2209
2118
  "args": {
2210
2119
  "path": {
2211
- "description": "Path to hooks directory (overrides project config)",
2120
+ "description": "Path to forms directory (overrides project config)",
2212
2121
  "name": "path"
2213
2122
  }
2214
2123
  },
2215
- "description": "Restore hook files to a snapshot taken automatically before an earlier `lps hook push`",
2124
+ "description": "Restore forms to a snapshot taken automatically before an earlier `lps form push`",
2216
2125
  "examples": [
2217
- "$ lps hook rollback",
2218
- "$ lps hook rollback --list",
2219
- "$ lps hook rollback --to 1732000000000",
2220
- "$ lps hook rollback --dry-run"
2126
+ "$ lps form rollback",
2127
+ "$ lps form rollback --list",
2128
+ "$ lps form rollback --to 1732000000000",
2129
+ "$ lps form rollback --dry-run"
2221
2130
  ],
2222
2131
  "flags": {
2223
2132
  "json": {
@@ -2264,7 +2173,7 @@
2264
2173
  },
2265
2174
  "hasDynamicHelp": false,
2266
2175
  "hiddenAliases": [],
2267
- "id": "hook:rollback",
2176
+ "id": "form:rollback",
2268
2177
  "pluginAlias": "@loopress/cli",
2269
2178
  "pluginName": "@loopress/cli",
2270
2179
  "pluginType": "core",
@@ -2290,23 +2199,23 @@
2290
2199
  "relativePath": [
2291
2200
  "dist",
2292
2201
  "commands",
2293
- "hook",
2202
+ "form",
2294
2203
  "rollback.js"
2295
2204
  ]
2296
2205
  },
2297
- "form:diff": {
2206
+ "hook:diff": {
2298
2207
  "aliases": [],
2299
2208
  "args": {
2300
2209
  "path": {
2301
- "description": "Path to forms directory (overrides project config)",
2210
+ "description": "Path to hooks directory (overrides project config)",
2302
2211
  "name": "path"
2303
2212
  }
2304
2213
  },
2305
- "description": "Show what differs in forms between your local files and a WordPress environment, or between two environments",
2214
+ "description": "Show what differs in hook files between your local files and a WordPress environment, or between two environments",
2306
2215
  "examples": [
2307
- "$ lps form diff",
2308
- "$ lps form diff --env staging",
2309
- "$ lps form diff --env staging --against production"
2216
+ "$ lps hook diff",
2217
+ "$ lps hook diff --env staging",
2218
+ "$ lps hook diff --env staging --against production"
2310
2219
  ],
2311
2220
  "flags": {
2312
2221
  "json": {
@@ -2333,7 +2242,7 @@
2333
2242
  },
2334
2243
  "hasDynamicHelp": false,
2335
2244
  "hiddenAliases": [],
2336
- "id": "form:diff",
2245
+ "id": "hook:diff",
2337
2246
  "pluginAlias": "@loopress/cli",
2338
2247
  "pluginName": "@loopress/cli",
2339
2248
  "pluginType": "core",
@@ -2367,16 +2276,16 @@
2367
2276
  "relativePath": [
2368
2277
  "dist",
2369
2278
  "commands",
2370
- "form",
2279
+ "hook",
2371
2280
  "diff.js"
2372
2281
  ]
2373
2282
  },
2374
- "form:list": {
2283
+ "hook:list": {
2375
2284
  "aliases": [],
2376
2285
  "args": {},
2377
- "description": "List forms from WordPress",
2286
+ "description": "List hook files (actions, filters, cron) from WordPress",
2378
2287
  "examples": [
2379
- "$ lps form list"
2288
+ "$ lps hook list"
2380
2289
  ],
2381
2290
  "flags": {
2382
2291
  "json": {
@@ -2396,7 +2305,7 @@
2396
2305
  },
2397
2306
  "hasDynamicHelp": false,
2398
2307
  "hiddenAliases": [],
2399
- "id": "form:list",
2308
+ "id": "hook:list",
2400
2309
  "pluginAlias": "@loopress/cli",
2401
2310
  "pluginName": "@loopress/cli",
2402
2311
  "pluginType": "core",
@@ -2422,23 +2331,31 @@
2422
2331
  "relativePath": [
2423
2332
  "dist",
2424
2333
  "commands",
2425
- "form",
2334
+ "hook",
2426
2335
  "list.js"
2427
2336
  ]
2428
2337
  },
2429
- "form:pull": {
2338
+ "hook:pull": {
2430
2339
  "aliases": [],
2431
2340
  "args": {
2432
2341
  "path": {
2433
- "description": "Path to forms directory (overrides project config)",
2342
+ "description": "Path to hooks directory (overrides project config)",
2434
2343
  "name": "path"
2435
2344
  }
2436
2345
  },
2437
- "description": "Pull forms from WordPress",
2346
+ "description": "Pull hook files (actions, filters, cron) from WordPress",
2438
2347
  "examples": [
2439
- "$ lps form pull"
2348
+ "$ lps hook pull",
2349
+ "$ lps hook pull --path ./hooks"
2440
2350
  ],
2441
2351
  "flags": {
2352
+ "json": {
2353
+ "description": "Format output as json.",
2354
+ "helpGroup": "GLOBAL",
2355
+ "name": "json",
2356
+ "allowNo": false,
2357
+ "type": "boolean"
2358
+ },
2442
2359
  "env": {
2443
2360
  "description": "Target environment by name, overriding the globally active one (lps project switch)",
2444
2361
  "name": "env",
@@ -2463,12 +2380,12 @@
2463
2380
  },
2464
2381
  "hasDynamicHelp": false,
2465
2382
  "hiddenAliases": [],
2466
- "id": "form:pull",
2383
+ "id": "hook:pull",
2467
2384
  "pluginAlias": "@loopress/cli",
2468
2385
  "pluginName": "@loopress/cli",
2469
2386
  "pluginType": "core",
2470
2387
  "strict": true,
2471
- "enableJsonFlag": false,
2388
+ "enableJsonFlag": true,
2472
2389
  "dryRunFlag": {
2473
2390
  "dry-run": {
2474
2391
  "char": "d",
@@ -2489,24 +2406,98 @@
2489
2406
  "relativePath": [
2490
2407
  "dist",
2491
2408
  "commands",
2492
- "form",
2493
- "pull.js"
2409
+ "hook",
2410
+ "pull.js"
2411
+ ]
2412
+ },
2413
+ "hook:push": {
2414
+ "aliases": [],
2415
+ "args": {
2416
+ "path": {
2417
+ "description": "Path to hooks directory (overrides project config)",
2418
+ "name": "path"
2419
+ }
2420
+ },
2421
+ "description": "Push hook files (actions, filters, cron) to WordPress",
2422
+ "examples": [
2423
+ "$ lps hook push",
2424
+ "$ lps hook push --path ./hooks",
2425
+ "$ lps hook push --prune"
2426
+ ],
2427
+ "flags": {
2428
+ "json": {
2429
+ "description": "Format output as json.",
2430
+ "helpGroup": "GLOBAL",
2431
+ "name": "json",
2432
+ "allowNo": false,
2433
+ "type": "boolean"
2434
+ },
2435
+ "env": {
2436
+ "description": "Target environment by name, overriding the globally active one (lps project switch)",
2437
+ "name": "env",
2438
+ "hasDynamicHelp": false,
2439
+ "multiple": false,
2440
+ "type": "option"
2441
+ },
2442
+ "dry-run": {
2443
+ "char": "d",
2444
+ "description": "Show what would change without making changes",
2445
+ "name": "dry-run",
2446
+ "allowNo": false,
2447
+ "type": "boolean"
2448
+ },
2449
+ "yes": {
2450
+ "char": "y",
2451
+ "description": "Answer yes to confirmation prompts",
2452
+ "name": "yes",
2453
+ "allowNo": false,
2454
+ "type": "boolean"
2455
+ },
2456
+ "prune": {
2457
+ "description": "Delete server-side hook files not present locally after pushing",
2458
+ "name": "prune",
2459
+ "allowNo": false,
2460
+ "type": "boolean"
2461
+ }
2462
+ },
2463
+ "hasDynamicHelp": false,
2464
+ "hiddenAliases": [],
2465
+ "id": "hook:push",
2466
+ "pluginAlias": "@loopress/cli",
2467
+ "pluginName": "@loopress/cli",
2468
+ "pluginType": "core",
2469
+ "strict": true,
2470
+ "enableJsonFlag": true,
2471
+ "isESM": true,
2472
+ "relativePath": [
2473
+ "dist",
2474
+ "commands",
2475
+ "hook",
2476
+ "push.js"
2494
2477
  ]
2495
2478
  },
2496
- "form:push": {
2479
+ "hook:rm": {
2497
2480
  "aliases": [],
2498
2481
  "args": {
2499
- "path": {
2500
- "description": "Path to forms directory (overrides project config)",
2501
- "name": "path"
2482
+ "filename": {
2483
+ "description": "The hook file to remove, its slug without the .php extension (e.g. \"hello\" or \"invoice-pdf/[order_id]\")",
2484
+ "name": "filename",
2485
+ "required": true
2502
2486
  }
2503
2487
  },
2504
- "description": "Push forms to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>.json` convention.",
2488
+ "description": "Remove a hook file (action, filter, cron) from WordPress",
2505
2489
  "examples": [
2506
- "$ lps form push",
2507
- "$ lps form push --allow-notifications"
2490
+ "$ lps hook rm hello",
2491
+ "$ lps hook rm hello --yes"
2508
2492
  ],
2509
2493
  "flags": {
2494
+ "json": {
2495
+ "description": "Format output as json.",
2496
+ "helpGroup": "GLOBAL",
2497
+ "name": "json",
2498
+ "allowNo": false,
2499
+ "type": "boolean"
2500
+ },
2510
2501
  "env": {
2511
2502
  "description": "Target environment by name, overriding the globally active one (lps project switch)",
2512
2503
  "name": "env",
@@ -2527,43 +2518,54 @@
2527
2518
  "name": "yes",
2528
2519
  "allowNo": false,
2529
2520
  "type": "boolean"
2530
- },
2531
- "allow-notifications": {
2532
- "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.",
2533
- "name": "allow-notifications",
2534
- "allowNo": false,
2535
- "type": "boolean"
2536
2521
  }
2537
2522
  },
2538
2523
  "hasDynamicHelp": false,
2539
2524
  "hiddenAliases": [],
2540
- "id": "form:push",
2525
+ "id": "hook:rm",
2541
2526
  "pluginAlias": "@loopress/cli",
2542
2527
  "pluginName": "@loopress/cli",
2543
2528
  "pluginType": "core",
2544
2529
  "strict": true,
2530
+ "enableJsonFlag": true,
2531
+ "dryRunFlag": {
2532
+ "dry-run": {
2533
+ "char": "d",
2534
+ "description": "Show what would change without making changes",
2535
+ "allowNo": false,
2536
+ "type": "boolean"
2537
+ }
2538
+ },
2539
+ "yesFlag": {
2540
+ "yes": {
2541
+ "char": "y",
2542
+ "description": "Answer yes to confirmation prompts",
2543
+ "allowNo": false,
2544
+ "type": "boolean"
2545
+ }
2546
+ },
2545
2547
  "isESM": true,
2546
2548
  "relativePath": [
2547
2549
  "dist",
2548
2550
  "commands",
2549
- "form",
2550
- "push.js"
2551
+ "hook",
2552
+ "rm.js"
2551
2553
  ]
2552
2554
  },
2553
- "form:rollback": {
2555
+ "hook:rollback": {
2554
2556
  "aliases": [],
2555
2557
  "args": {
2556
2558
  "path": {
2557
- "description": "Path to forms directory (overrides project config)",
2559
+ "description": "Path to hooks directory (overrides project config)",
2558
2560
  "name": "path"
2559
2561
  }
2560
2562
  },
2561
- "description": "Restore forms to a snapshot taken automatically before an earlier `lps form push`",
2563
+ "description": "Restore hook files to a snapshot taken automatically before an earlier `lps hook push`",
2562
2564
  "examples": [
2563
- "$ lps form rollback",
2564
- "$ lps form rollback --list",
2565
- "$ lps form rollback --to 1732000000000",
2566
- "$ lps form rollback --dry-run"
2565
+ "$ lps hook rollback",
2566
+ "$ lps hook rollback --list",
2567
+ "$ lps hook rollback --to 1732000000000",
2568
+ "$ lps hook rollback --dry-run"
2567
2569
  ],
2568
2570
  "flags": {
2569
2571
  "json": {
@@ -2610,7 +2612,7 @@
2610
2612
  },
2611
2613
  "hasDynamicHelp": false,
2612
2614
  "hiddenAliases": [],
2613
- "id": "form:rollback",
2615
+ "id": "hook:rollback",
2614
2616
  "pluginAlias": "@loopress/cli",
2615
2617
  "pluginName": "@loopress/cli",
2616
2618
  "pluginType": "core",
@@ -2636,7 +2638,7 @@
2636
2638
  "relativePath": [
2637
2639
  "dist",
2638
2640
  "commands",
2639
- "form",
2641
+ "hook",
2640
2642
  "rollback.js"
2641
2643
  ]
2642
2644
  },
@@ -3505,6 +3507,198 @@
3505
3507
  "rollback.js"
3506
3508
  ]
3507
3509
  },
3510
+ "page:diff": {
3511
+ "aliases": [],
3512
+ "args": {
3513
+ "path": {
3514
+ "description": "Path to pages directory (overrides project config)",
3515
+ "name": "path"
3516
+ }
3517
+ },
3518
+ "description": "Show what differs in static pages between your local files and a WordPress environment, or between two environments",
3519
+ "examples": [
3520
+ "$ lps page diff",
3521
+ "$ lps page diff --env staging",
3522
+ "$ lps page diff --env staging --against production"
3523
+ ],
3524
+ "flags": {
3525
+ "json": {
3526
+ "description": "Format output as json.",
3527
+ "helpGroup": "GLOBAL",
3528
+ "name": "json",
3529
+ "allowNo": false,
3530
+ "type": "boolean"
3531
+ },
3532
+ "env": {
3533
+ "description": "Target environment by name, overriding the globally active one (lps project switch)",
3534
+ "name": "env",
3535
+ "hasDynamicHelp": false,
3536
+ "multiple": false,
3537
+ "type": "option"
3538
+ },
3539
+ "against": {
3540
+ "description": "Compare the primary environment against this second environment instead of against local files",
3541
+ "name": "against",
3542
+ "hasDynamicHelp": false,
3543
+ "multiple": false,
3544
+ "type": "option"
3545
+ }
3546
+ },
3547
+ "hasDynamicHelp": false,
3548
+ "hiddenAliases": [],
3549
+ "id": "page:diff",
3550
+ "pluginAlias": "@loopress/cli",
3551
+ "pluginName": "@loopress/cli",
3552
+ "pluginType": "core",
3553
+ "strict": true,
3554
+ "enableJsonFlag": true,
3555
+ "dryRunFlag": {
3556
+ "dry-run": {
3557
+ "char": "d",
3558
+ "description": "Show what would change without making changes",
3559
+ "allowNo": false,
3560
+ "type": "boolean"
3561
+ }
3562
+ },
3563
+ "yesFlag": {
3564
+ "yes": {
3565
+ "char": "y",
3566
+ "description": "Answer yes to confirmation prompts",
3567
+ "allowNo": false,
3568
+ "type": "boolean"
3569
+ }
3570
+ },
3571
+ "againstFlag": {
3572
+ "against": {
3573
+ "description": "Compare the primary environment against this second environment instead of against local files",
3574
+ "input": [],
3575
+ "multiple": false,
3576
+ "type": "option"
3577
+ }
3578
+ },
3579
+ "isESM": true,
3580
+ "relativePath": [
3581
+ "dist",
3582
+ "commands",
3583
+ "page",
3584
+ "diff.js"
3585
+ ]
3586
+ },
3587
+ "page:list": {
3588
+ "aliases": [],
3589
+ "args": {},
3590
+ "description": "List the static pages managed by Loopress on WordPress",
3591
+ "examples": [
3592
+ "$ lps page list"
3593
+ ],
3594
+ "flags": {
3595
+ "json": {
3596
+ "description": "Format output as json.",
3597
+ "helpGroup": "GLOBAL",
3598
+ "name": "json",
3599
+ "allowNo": false,
3600
+ "type": "boolean"
3601
+ },
3602
+ "env": {
3603
+ "description": "Target environment by name, overriding the globally active one (lps project switch)",
3604
+ "name": "env",
3605
+ "hasDynamicHelp": false,
3606
+ "multiple": false,
3607
+ "type": "option"
3608
+ }
3609
+ },
3610
+ "hasDynamicHelp": false,
3611
+ "hiddenAliases": [],
3612
+ "id": "page:list",
3613
+ "pluginAlias": "@loopress/cli",
3614
+ "pluginName": "@loopress/cli",
3615
+ "pluginType": "core",
3616
+ "strict": true,
3617
+ "enableJsonFlag": true,
3618
+ "dryRunFlag": {
3619
+ "dry-run": {
3620
+ "char": "d",
3621
+ "description": "Show what would change without making changes",
3622
+ "allowNo": false,
3623
+ "type": "boolean"
3624
+ }
3625
+ },
3626
+ "yesFlag": {
3627
+ "yes": {
3628
+ "char": "y",
3629
+ "description": "Answer yes to confirmation prompts",
3630
+ "allowNo": false,
3631
+ "type": "boolean"
3632
+ }
3633
+ },
3634
+ "isESM": true,
3635
+ "relativePath": [
3636
+ "dist",
3637
+ "commands",
3638
+ "page",
3639
+ "list.js"
3640
+ ]
3641
+ },
3642
+ "page:push": {
3643
+ "aliases": [],
3644
+ "args": {
3645
+ "slug": {
3646
+ "description": "Push only this page (its file name without .html). Pushes every page when omitted.",
3647
+ "name": "slug"
3648
+ }
3649
+ },
3650
+ "description": "Push static HTML pages (pages/<slug>.html) to WordPress. The `status` header (draft or publish, draft by default) is applied on every push.",
3651
+ "examples": [
3652
+ "$ lps page push",
3653
+ "$ lps page push legal-notice",
3654
+ "$ lps page push --dry-run"
3655
+ ],
3656
+ "flags": {
3657
+ "json": {
3658
+ "description": "Format output as json.",
3659
+ "helpGroup": "GLOBAL",
3660
+ "name": "json",
3661
+ "allowNo": false,
3662
+ "type": "boolean"
3663
+ },
3664
+ "env": {
3665
+ "description": "Target environment by name, overriding the globally active one (lps project switch)",
3666
+ "name": "env",
3667
+ "hasDynamicHelp": false,
3668
+ "multiple": false,
3669
+ "type": "option"
3670
+ },
3671
+ "dry-run": {
3672
+ "char": "d",
3673
+ "description": "Show what would change without making changes",
3674
+ "name": "dry-run",
3675
+ "allowNo": false,
3676
+ "type": "boolean"
3677
+ },
3678
+ "yes": {
3679
+ "char": "y",
3680
+ "description": "Answer yes to confirmation prompts",
3681
+ "name": "yes",
3682
+ "allowNo": false,
3683
+ "type": "boolean"
3684
+ }
3685
+ },
3686
+ "hasDynamicHelp": false,
3687
+ "hiddenAliases": [],
3688
+ "id": "page:push",
3689
+ "pluginAlias": "@loopress/cli",
3690
+ "pluginName": "@loopress/cli",
3691
+ "pluginType": "core",
3692
+ "strict": true,
3693
+ "enableJsonFlag": true,
3694
+ "isESM": true,
3695
+ "relativePath": [
3696
+ "dist",
3697
+ "commands",
3698
+ "page",
3699
+ "push.js"
3700
+ ]
3701
+ },
3508
3702
  "plugin:add": {
3509
3703
  "aliases": [],
3510
3704
  "args": {
@@ -5337,5 +5531,5 @@
5337
5531
  ]
5338
5532
  }
5339
5533
  },
5340
- "version": "0.25.0"
5534
+ "version": "0.26.0"
5341
5535
  }