@agentrhq/webcmd 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/cli-manifest.json +1278 -115
  2. package/clis/bigbasket/add-to-cart.js +82 -0
  3. package/clis/bigbasket/bigbasket.test.js +255 -0
  4. package/clis/bigbasket/cart.js +81 -0
  5. package/clis/bigbasket/category.js +30 -0
  6. package/clis/bigbasket/checkout.js +71 -0
  7. package/clis/bigbasket/location.js +30 -0
  8. package/clis/bigbasket/product.js +79 -0
  9. package/clis/bigbasket/search.js +30 -0
  10. package/clis/bigbasket/utils.js +207 -0
  11. package/clis/blinkit/add-to-cart.js +123 -0
  12. package/clis/blinkit/auth.js +99 -0
  13. package/clis/blinkit/blinkit.test.js +168 -0
  14. package/clis/blinkit/cart.js +34 -0
  15. package/clis/blinkit/checkout.js +32 -0
  16. package/clis/blinkit/location.js +29 -0
  17. package/clis/blinkit/place-order.js +78 -0
  18. package/clis/blinkit/product.js +63 -0
  19. package/clis/blinkit/search.js +89 -0
  20. package/clis/blinkit/utils.js +223 -0
  21. package/clis/district/checkout.js +71 -1
  22. package/clis/practo/appointment.js +21 -0
  23. package/clis/practo/appointments.js +27 -0
  24. package/clis/practo/book-confirm.js +35 -0
  25. package/clis/practo/book-preview.js +24 -0
  26. package/clis/practo/booking-link.js +24 -0
  27. package/clis/practo/cancel.js +29 -0
  28. package/clis/practo/contact.js +21 -0
  29. package/clis/practo/login.js +48 -0
  30. package/clis/practo/practo.test.js +154 -0
  31. package/clis/practo/profile.js +31 -0
  32. package/clis/practo/search.js +30 -0
  33. package/clis/practo/slots.js +19 -0
  34. package/clis/practo/utils.js +374 -0
  35. package/clis/practo/whoami.js +28 -0
  36. package/clis/zepto/add-to-cart.js +53 -0
  37. package/clis/zepto/auth.js +59 -0
  38. package/clis/zepto/cart.js +23 -0
  39. package/clis/zepto/checkout.js +60 -0
  40. package/clis/zepto/location.js +20 -0
  41. package/clis/zepto/place-order.js +47 -0
  42. package/clis/zepto/product.js +52 -0
  43. package/clis/zepto/search.js +30 -0
  44. package/clis/zepto/utils.js +228 -0
  45. package/clis/zepto/zepto.test.js +238 -0
  46. package/dist/src/browser/daemon-lifecycle.d.ts +2 -0
  47. package/dist/src/browser/daemon-lifecycle.js +28 -6
  48. package/dist/src/browser/runtime/local-cloak/session-manager.d.ts +5 -0
  49. package/dist/src/browser/runtime/local-cloak/session-manager.js +116 -2
  50. package/dist/src/browser/runtime/local-cloak/session-manager.test.js +36 -0
  51. package/dist/src/browser.test.js +8 -4
  52. package/dist/src/cli.js +96 -0
  53. package/dist/src/cli.test.js +2 -2
  54. package/dist/src/generate-release-notes-cli.test.js +87 -13
  55. package/dist/src/plugin-catalog.d.ts +46 -0
  56. package/dist/src/plugin-catalog.js +178 -0
  57. package/dist/src/plugin-catalog.test.d.ts +1 -0
  58. package/dist/src/plugin-catalog.test.js +95 -0
  59. package/dist/src/release-notes.d.ts +4 -2
  60. package/dist/src/release-notes.js +67 -20
  61. package/dist/src/release-notes.test.js +67 -9
  62. package/package.json +2 -1
  63. package/plugin-catalog.json +10 -0
  64. package/scripts/generate-release-notes.ts +33 -4
  65. package/skills/webcmd-adapter-author/SKILL.md +9 -0
package/cli-manifest.json CHANGED
@@ -2023,6 +2023,228 @@
2023
2023
  "modulePath": "bbc/topic.js",
2024
2024
  "sourceFile": "bbc/topic.js"
2025
2025
  },
2026
+ {
2027
+ "site": "bigbasket",
2028
+ "name": "add-to-cart",
2029
+ "description": "Add a BigBasket product to cart",
2030
+ "access": "write",
2031
+ "domain": "www.bigbasket.com",
2032
+ "strategy": "cookie",
2033
+ "browser": true,
2034
+ "args": [
2035
+ {
2036
+ "name": "product",
2037
+ "type": "str",
2038
+ "required": true,
2039
+ "positional": true,
2040
+ "help": "Product ID or URL"
2041
+ },
2042
+ {
2043
+ "name": "quantity",
2044
+ "type": "int",
2045
+ "default": 1,
2046
+ "required": false,
2047
+ "help": "Quantity to add (max 20)"
2048
+ }
2049
+ ],
2050
+ "columns": [
2051
+ "ok",
2052
+ "product_id",
2053
+ "quantity",
2054
+ "url",
2055
+ "message"
2056
+ ],
2057
+ "type": "js",
2058
+ "modulePath": "bigbasket/add-to-cart.js",
2059
+ "sourceFile": "bigbasket/add-to-cart.js",
2060
+ "navigateBefore": "https://www.bigbasket.com"
2061
+ },
2062
+ {
2063
+ "site": "bigbasket",
2064
+ "name": "cart",
2065
+ "description": "Read BigBasket cart line items",
2066
+ "access": "read",
2067
+ "domain": "www.bigbasket.com",
2068
+ "strategy": "cookie",
2069
+ "browser": true,
2070
+ "args": [],
2071
+ "columns": [
2072
+ "product_id",
2073
+ "title",
2074
+ "quantity",
2075
+ "price",
2076
+ "line_total",
2077
+ "availability",
2078
+ "url"
2079
+ ],
2080
+ "type": "js",
2081
+ "modulePath": "bigbasket/cart.js",
2082
+ "sourceFile": "bigbasket/cart.js",
2083
+ "navigateBefore": "https://www.bigbasket.com"
2084
+ },
2085
+ {
2086
+ "site": "bigbasket",
2087
+ "name": "category",
2088
+ "description": "Read BigBasket category product cards",
2089
+ "access": "read",
2090
+ "domain": "www.bigbasket.com",
2091
+ "strategy": "cookie",
2092
+ "browser": true,
2093
+ "args": [
2094
+ {
2095
+ "name": "category",
2096
+ "type": "str",
2097
+ "required": true,
2098
+ "positional": true,
2099
+ "help": "Category URL or slug"
2100
+ },
2101
+ {
2102
+ "name": "limit",
2103
+ "type": "int",
2104
+ "default": 20,
2105
+ "required": false,
2106
+ "help": "Maximum products to return (max 50)"
2107
+ }
2108
+ ],
2109
+ "columns": [
2110
+ "rank",
2111
+ "product_id",
2112
+ "title",
2113
+ "brand",
2114
+ "pack_size",
2115
+ "price",
2116
+ "mrp",
2117
+ "discount",
2118
+ "availability",
2119
+ "url"
2120
+ ],
2121
+ "type": "js",
2122
+ "modulePath": "bigbasket/category.js",
2123
+ "sourceFile": "bigbasket/category.js",
2124
+ "navigateBefore": "https://www.bigbasket.com"
2125
+ },
2126
+ {
2127
+ "site": "bigbasket",
2128
+ "name": "checkout",
2129
+ "description": "Open BigBasket checkout review without placing an order",
2130
+ "access": "write",
2131
+ "domain": "www.bigbasket.com",
2132
+ "strategy": "cookie",
2133
+ "browser": true,
2134
+ "args": [],
2135
+ "columns": [
2136
+ "ok",
2137
+ "stage",
2138
+ "cart_total",
2139
+ "address_ready",
2140
+ "delivery_ready",
2141
+ "payment_ready",
2142
+ "next_action",
2143
+ "url"
2144
+ ],
2145
+ "type": "js",
2146
+ "modulePath": "bigbasket/checkout.js",
2147
+ "sourceFile": "bigbasket/checkout.js",
2148
+ "navigateBefore": "https://www.bigbasket.com"
2149
+ },
2150
+ {
2151
+ "site": "bigbasket",
2152
+ "name": "location",
2153
+ "description": "Show the selected BigBasket delivery location",
2154
+ "access": "read",
2155
+ "domain": "www.bigbasket.com",
2156
+ "strategy": "cookie",
2157
+ "browser": true,
2158
+ "args": [],
2159
+ "columns": [
2160
+ "selected",
2161
+ "label",
2162
+ "area",
2163
+ "city",
2164
+ "pincode",
2165
+ "source"
2166
+ ],
2167
+ "type": "js",
2168
+ "modulePath": "bigbasket/location.js",
2169
+ "sourceFile": "bigbasket/location.js",
2170
+ "navigateBefore": "https://www.bigbasket.com"
2171
+ },
2172
+ {
2173
+ "site": "bigbasket",
2174
+ "name": "product",
2175
+ "description": "Read BigBasket product details",
2176
+ "access": "read",
2177
+ "domain": "www.bigbasket.com",
2178
+ "strategy": "cookie",
2179
+ "browser": true,
2180
+ "args": [
2181
+ {
2182
+ "name": "product",
2183
+ "type": "str",
2184
+ "required": true,
2185
+ "positional": true,
2186
+ "help": "Product ID or URL"
2187
+ }
2188
+ ],
2189
+ "columns": [
2190
+ "product_id",
2191
+ "title",
2192
+ "brand",
2193
+ "pack_size",
2194
+ "price",
2195
+ "mrp",
2196
+ "discount",
2197
+ "availability",
2198
+ "delivery",
2199
+ "image_url",
2200
+ "url"
2201
+ ],
2202
+ "type": "js",
2203
+ "modulePath": "bigbasket/product.js",
2204
+ "sourceFile": "bigbasket/product.js",
2205
+ "navigateBefore": "https://www.bigbasket.com"
2206
+ },
2207
+ {
2208
+ "site": "bigbasket",
2209
+ "name": "search",
2210
+ "description": "Search BigBasket products",
2211
+ "access": "read",
2212
+ "domain": "www.bigbasket.com",
2213
+ "strategy": "cookie",
2214
+ "browser": true,
2215
+ "args": [
2216
+ {
2217
+ "name": "query",
2218
+ "type": "str",
2219
+ "required": true,
2220
+ "positional": true,
2221
+ "help": "Search query"
2222
+ },
2223
+ {
2224
+ "name": "limit",
2225
+ "type": "int",
2226
+ "default": 20,
2227
+ "required": false,
2228
+ "help": "Maximum products to return (max 50)"
2229
+ }
2230
+ ],
2231
+ "columns": [
2232
+ "rank",
2233
+ "product_id",
2234
+ "title",
2235
+ "brand",
2236
+ "pack_size",
2237
+ "price",
2238
+ "mrp",
2239
+ "discount",
2240
+ "availability",
2241
+ "url"
2242
+ ],
2243
+ "type": "js",
2244
+ "modulePath": "bigbasket/search.js",
2245
+ "sourceFile": "bigbasket/search.js",
2246
+ "navigateBefore": "https://www.bigbasket.com"
2247
+ },
2026
2248
  {
2027
2249
  "site": "binance",
2028
2250
  "name": "asks",
@@ -2371,80 +2593,369 @@
2371
2593
  "sourceFile": "binance/trades.js"
2372
2594
  },
2373
2595
  {
2374
- "site": "bloomberg",
2375
- "name": "businessweek",
2376
- "description": "Bloomberg Businessweek top stories",
2377
- "access": "read",
2378
- "domain": "www.bloomberg.com",
2379
- "strategy": "public",
2596
+ "site": "blinkit",
2597
+ "name": "add-to-cart",
2598
+ "description": "Add a Blinkit product to cart",
2599
+ "access": "write",
2600
+ "domain": "blinkit.com",
2601
+ "strategy": "cookie",
2380
2602
  "browser": true,
2381
2603
  "args": [
2382
2604
  {
2383
- "name": "limit",
2605
+ "name": "productId",
2606
+ "type": "str",
2607
+ "required": true,
2608
+ "positional": true,
2609
+ "help": "Blinkit product id"
2610
+ },
2611
+ {
2612
+ "name": "quantity",
2384
2613
  "type": "int",
2385
2614
  "default": 1,
2386
2615
  "required": false,
2387
- "help": "Number of stories to return (max 20)"
2616
+ "help": "Quantity to add (default 1, max 12)"
2617
+ },
2618
+ {
2619
+ "name": "lat",
2620
+ "type": "str",
2621
+ "required": false,
2622
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2623
+ },
2624
+ {
2625
+ "name": "lon",
2626
+ "type": "str",
2627
+ "required": false,
2628
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2388
2629
  }
2389
2630
  ],
2390
2631
  "columns": [
2391
- "title",
2392
- "summary",
2393
- "link",
2394
- "mediaLinks"
2632
+ "status",
2633
+ "productId",
2634
+ "quantity",
2635
+ "itemCount",
2636
+ "itemsTotal",
2637
+ "payable",
2638
+ "message"
2395
2639
  ],
2396
2640
  "type": "js",
2397
- "modulePath": "bloomberg/businessweek.js",
2398
- "sourceFile": "bloomberg/businessweek.js"
2641
+ "modulePath": "blinkit/add-to-cart.js",
2642
+ "sourceFile": "blinkit/add-to-cart.js",
2643
+ "navigateBefore": false
2399
2644
  },
2400
2645
  {
2401
- "site": "bloomberg",
2402
- "name": "crypto",
2403
- "description": "Bloomberg Crypto top stories (RSS)",
2646
+ "site": "blinkit",
2647
+ "name": "cart",
2648
+ "description": "Show the current Blinkit cart",
2404
2649
  "access": "read",
2405
- "domain": "feeds.bloomberg.com",
2406
- "strategy": "public",
2407
- "browser": false,
2408
- "args": [
2409
- {
2410
- "name": "limit",
2411
- "type": "int",
2412
- "default": 1,
2413
- "required": false,
2414
- "help": "Number of feed items to return (max 20)"
2415
- }
2416
- ],
2650
+ "domain": "blinkit.com",
2651
+ "strategy": "cookie",
2652
+ "browser": true,
2653
+ "args": [],
2417
2654
  "columns": [
2418
- "title",
2419
- "summary",
2420
- "link",
2421
- "mediaLinks"
2655
+ "status",
2656
+ "productId",
2657
+ "name",
2658
+ "variant",
2659
+ "price",
2660
+ "quantity",
2661
+ "total",
2662
+ "itemCount",
2663
+ "payable",
2664
+ "cartState"
2422
2665
  ],
2423
2666
  "type": "js",
2424
- "modulePath": "bloomberg/crypto.js",
2425
- "sourceFile": "bloomberg/crypto.js"
2667
+ "modulePath": "blinkit/cart.js",
2668
+ "sourceFile": "blinkit/cart.js",
2669
+ "navigateBefore": false
2426
2670
  },
2427
2671
  {
2428
- "site": "bloomberg",
2429
- "name": "economics",
2430
- "description": "Bloomberg Economics top stories (RSS)",
2672
+ "site": "blinkit",
2673
+ "name": "checkout",
2674
+ "description": "Review Blinkit checkout totals and blockers without placing an order",
2431
2675
  "access": "read",
2432
- "domain": "feeds.bloomberg.com",
2433
- "strategy": "public",
2434
- "browser": false,
2676
+ "domain": "blinkit.com",
2677
+ "strategy": "cookie",
2678
+ "browser": true,
2679
+ "args": [],
2680
+ "columns": [
2681
+ "status",
2682
+ "itemCount",
2683
+ "itemsTotal",
2684
+ "deliveryCharge",
2685
+ "handlingCharge",
2686
+ "payable",
2687
+ "cartState",
2688
+ "checkoutBlocked",
2689
+ "validations"
2690
+ ],
2691
+ "type": "js",
2692
+ "modulePath": "blinkit/checkout.js",
2693
+ "sourceFile": "blinkit/checkout.js",
2694
+ "navigateBefore": false,
2695
+ "defaultWindowMode": "foreground"
2696
+ },
2697
+ {
2698
+ "site": "blinkit",
2699
+ "name": "location",
2700
+ "description": "Show the selected Blinkit delivery location",
2701
+ "access": "read",
2702
+ "domain": "blinkit.com",
2703
+ "strategy": "cookie",
2704
+ "browser": true,
2705
+ "args": [],
2706
+ "columns": [
2707
+ "selected",
2708
+ "label",
2709
+ "area",
2710
+ "city",
2711
+ "pincode",
2712
+ "hasCoordinates",
2713
+ "source"
2714
+ ],
2715
+ "type": "js",
2716
+ "modulePath": "blinkit/location.js",
2717
+ "sourceFile": "blinkit/location.js",
2718
+ "navigateBefore": "https://blinkit.com"
2719
+ },
2720
+ {
2721
+ "site": "blinkit",
2722
+ "name": "login",
2723
+ "description": "Open Blinkit login and wait until the browser session is authenticated",
2724
+ "access": "write",
2725
+ "domain": "blinkit.com",
2726
+ "strategy": "cookie",
2727
+ "browser": true,
2435
2728
  "args": [
2436
2729
  {
2437
- "name": "limit",
2730
+ "name": "timeout",
2438
2731
  "type": "int",
2439
- "default": 1,
2732
+ "default": 300,
2440
2733
  "required": false,
2441
- "help": "Number of feed items to return (max 20)"
2734
+ "help": "Maximum seconds to wait for the user to finish login"
2442
2735
  }
2443
2736
  ],
2444
2737
  "columns": [
2445
- "title",
2446
- "summary",
2447
- "link",
2738
+ "status",
2739
+ "logged_in",
2740
+ "phone",
2741
+ "user_id"
2742
+ ],
2743
+ "type": "js",
2744
+ "modulePath": "blinkit/auth.js",
2745
+ "sourceFile": "blinkit/auth.js",
2746
+ "navigateBefore": false,
2747
+ "siteSession": "persistent",
2748
+ "defaultWindowMode": "foreground"
2749
+ },
2750
+ {
2751
+ "site": "blinkit",
2752
+ "name": "place-order",
2753
+ "description": "Submit the visible Blinkit final order/payment action. Requires --confirm.",
2754
+ "access": "write",
2755
+ "domain": "blinkit.com",
2756
+ "strategy": "cookie",
2757
+ "browser": true,
2758
+ "args": [
2759
+ {
2760
+ "name": "confirm",
2761
+ "type": "bool",
2762
+ "default": false,
2763
+ "required": false,
2764
+ "help": "Required acknowledgement that this may place/pay for a real order"
2765
+ }
2766
+ ],
2767
+ "columns": [
2768
+ "status",
2769
+ "confirmed",
2770
+ "itemCount",
2771
+ "payable",
2772
+ "orderId",
2773
+ "url",
2774
+ "message"
2775
+ ],
2776
+ "type": "js",
2777
+ "modulePath": "blinkit/place-order.js",
2778
+ "sourceFile": "blinkit/place-order.js",
2779
+ "navigateBefore": false,
2780
+ "defaultWindowMode": "foreground"
2781
+ },
2782
+ {
2783
+ "site": "blinkit",
2784
+ "name": "product",
2785
+ "description": "Read Blinkit product details for a delivery location",
2786
+ "access": "read",
2787
+ "domain": "blinkit.com",
2788
+ "strategy": "cookie",
2789
+ "browser": true,
2790
+ "args": [
2791
+ {
2792
+ "name": "productId",
2793
+ "type": "str",
2794
+ "required": true,
2795
+ "positional": true,
2796
+ "help": "Blinkit product id"
2797
+ },
2798
+ {
2799
+ "name": "lat",
2800
+ "type": "str",
2801
+ "required": false,
2802
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2803
+ },
2804
+ {
2805
+ "name": "lon",
2806
+ "type": "str",
2807
+ "required": false,
2808
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2809
+ }
2810
+ ],
2811
+ "columns": [
2812
+ "productId",
2813
+ "name",
2814
+ "brand",
2815
+ "variant",
2816
+ "price",
2817
+ "mrp",
2818
+ "currency",
2819
+ "inventory",
2820
+ "available",
2821
+ "imageUrl",
2822
+ "url"
2823
+ ],
2824
+ "type": "js",
2825
+ "modulePath": "blinkit/product.js",
2826
+ "sourceFile": "blinkit/product.js",
2827
+ "navigateBefore": false
2828
+ },
2829
+ {
2830
+ "site": "blinkit",
2831
+ "name": "search",
2832
+ "description": "Search Blinkit products for a delivery location",
2833
+ "access": "read",
2834
+ "domain": "blinkit.com",
2835
+ "strategy": "cookie",
2836
+ "browser": true,
2837
+ "args": [
2838
+ {
2839
+ "name": "query",
2840
+ "type": "str",
2841
+ "required": true,
2842
+ "positional": true,
2843
+ "help": "Search keyword"
2844
+ },
2845
+ {
2846
+ "name": "limit",
2847
+ "type": "int",
2848
+ "default": 20,
2849
+ "required": false,
2850
+ "help": "Max results (max 48)"
2851
+ },
2852
+ {
2853
+ "name": "lat",
2854
+ "type": "str",
2855
+ "required": false,
2856
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2857
+ },
2858
+ {
2859
+ "name": "lon",
2860
+ "type": "str",
2861
+ "required": false,
2862
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2863
+ }
2864
+ ],
2865
+ "columns": [
2866
+ "rank",
2867
+ "productId",
2868
+ "name",
2869
+ "brand",
2870
+ "variant",
2871
+ "price",
2872
+ "mrp",
2873
+ "currency",
2874
+ "inventory",
2875
+ "available",
2876
+ "imageUrl",
2877
+ "url"
2878
+ ],
2879
+ "type": "js",
2880
+ "modulePath": "blinkit/search.js",
2881
+ "sourceFile": "blinkit/search.js",
2882
+ "navigateBefore": false
2883
+ },
2884
+ {
2885
+ "site": "bloomberg",
2886
+ "name": "businessweek",
2887
+ "description": "Bloomberg Businessweek top stories",
2888
+ "access": "read",
2889
+ "domain": "www.bloomberg.com",
2890
+ "strategy": "public",
2891
+ "browser": true,
2892
+ "args": [
2893
+ {
2894
+ "name": "limit",
2895
+ "type": "int",
2896
+ "default": 1,
2897
+ "required": false,
2898
+ "help": "Number of stories to return (max 20)"
2899
+ }
2900
+ ],
2901
+ "columns": [
2902
+ "title",
2903
+ "summary",
2904
+ "link",
2905
+ "mediaLinks"
2906
+ ],
2907
+ "type": "js",
2908
+ "modulePath": "bloomberg/businessweek.js",
2909
+ "sourceFile": "bloomberg/businessweek.js"
2910
+ },
2911
+ {
2912
+ "site": "bloomberg",
2913
+ "name": "crypto",
2914
+ "description": "Bloomberg Crypto top stories (RSS)",
2915
+ "access": "read",
2916
+ "domain": "feeds.bloomberg.com",
2917
+ "strategy": "public",
2918
+ "browser": false,
2919
+ "args": [
2920
+ {
2921
+ "name": "limit",
2922
+ "type": "int",
2923
+ "default": 1,
2924
+ "required": false,
2925
+ "help": "Number of feed items to return (max 20)"
2926
+ }
2927
+ ],
2928
+ "columns": [
2929
+ "title",
2930
+ "summary",
2931
+ "link",
2932
+ "mediaLinks"
2933
+ ],
2934
+ "type": "js",
2935
+ "modulePath": "bloomberg/crypto.js",
2936
+ "sourceFile": "bloomberg/crypto.js"
2937
+ },
2938
+ {
2939
+ "site": "bloomberg",
2940
+ "name": "economics",
2941
+ "description": "Bloomberg Economics top stories (RSS)",
2942
+ "access": "read",
2943
+ "domain": "feeds.bloomberg.com",
2944
+ "strategy": "public",
2945
+ "browser": false,
2946
+ "args": [
2947
+ {
2948
+ "name": "limit",
2949
+ "type": "int",
2950
+ "default": 1,
2951
+ "required": false,
2952
+ "help": "Number of feed items to return (max 20)"
2953
+ }
2954
+ ],
2955
+ "columns": [
2956
+ "title",
2957
+ "summary",
2958
+ "link",
2448
2959
  "mediaLinks"
2449
2960
  ],
2450
2961
  "type": "js",
@@ -15988,129 +16499,549 @@
15988
16499
  "navigateBefore": "https://www.pixiv.net"
15989
16500
  },
15990
16501
  {
15991
- "site": "pixiv",
16502
+ "site": "pixiv",
16503
+ "name": "search",
16504
+ "description": "Search Pixiv illustrations by keyword",
16505
+ "access": "read",
16506
+ "domain": "www.pixiv.net",
16507
+ "strategy": "cookie",
16508
+ "browser": true,
16509
+ "args": [
16510
+ {
16511
+ "name": "query",
16512
+ "type": "str",
16513
+ "required": true,
16514
+ "positional": true,
16515
+ "help": "Search keyword or tag"
16516
+ },
16517
+ {
16518
+ "name": "limit",
16519
+ "type": "int",
16520
+ "default": 20,
16521
+ "required": false,
16522
+ "help": "Number of results"
16523
+ },
16524
+ {
16525
+ "name": "order",
16526
+ "type": "str",
16527
+ "default": "date_d",
16528
+ "required": false,
16529
+ "help": "Sort order",
16530
+ "choices": [
16531
+ "date_d",
16532
+ "date",
16533
+ "popular_d",
16534
+ "popular_male_d",
16535
+ "popular_female_d"
16536
+ ]
16537
+ },
16538
+ {
16539
+ "name": "mode",
16540
+ "type": "str",
16541
+ "default": "all",
16542
+ "required": false,
16543
+ "help": "Search mode",
16544
+ "choices": [
16545
+ "all",
16546
+ "safe",
16547
+ "r18"
16548
+ ]
16549
+ },
16550
+ {
16551
+ "name": "page",
16552
+ "type": "int",
16553
+ "default": 1,
16554
+ "required": false,
16555
+ "help": "Page number"
16556
+ }
16557
+ ],
16558
+ "columns": [
16559
+ "rank",
16560
+ "title",
16561
+ "author",
16562
+ "user_id",
16563
+ "illust_id",
16564
+ "pages",
16565
+ "bookmarks",
16566
+ "tags",
16567
+ "url"
16568
+ ],
16569
+ "type": "js",
16570
+ "modulePath": "pixiv/search.js",
16571
+ "sourceFile": "pixiv/search.js",
16572
+ "navigateBefore": "https://www.pixiv.net"
16573
+ },
16574
+ {
16575
+ "site": "pixiv",
16576
+ "name": "user",
16577
+ "description": "View Pixiv artist profile",
16578
+ "access": "read",
16579
+ "domain": "www.pixiv.net",
16580
+ "strategy": "cookie",
16581
+ "browser": true,
16582
+ "args": [
16583
+ {
16584
+ "name": "uid",
16585
+ "type": "str",
16586
+ "required": true,
16587
+ "positional": true,
16588
+ "help": "Pixiv user ID"
16589
+ }
16590
+ ],
16591
+ "columns": [
16592
+ "user_id",
16593
+ "name",
16594
+ "premium",
16595
+ "following",
16596
+ "illusts",
16597
+ "manga",
16598
+ "novels",
16599
+ "comment",
16600
+ "url"
16601
+ ],
16602
+ "type": "js",
16603
+ "modulePath": "pixiv/user.js",
16604
+ "sourceFile": "pixiv/user.js",
16605
+ "navigateBefore": "https://www.pixiv.net"
16606
+ },
16607
+ {
16608
+ "site": "pixiv",
16609
+ "name": "whoami",
16610
+ "description": "Show the current logged-in pixiv account",
16611
+ "access": "read",
16612
+ "domain": "pixiv.net",
16613
+ "strategy": "cookie",
16614
+ "browser": true,
16615
+ "args": [],
16616
+ "columns": [
16617
+ "logged_in",
16618
+ "site",
16619
+ "user_id",
16620
+ "name"
16621
+ ],
16622
+ "type": "js",
16623
+ "modulePath": "pixiv/auth.js",
16624
+ "sourceFile": "pixiv/auth.js",
16625
+ "navigateBefore": false,
16626
+ "siteSession": "persistent"
16627
+ },
16628
+ {
16629
+ "site": "practo",
16630
+ "name": "appointment",
16631
+ "description": "Show logged-in Practo Drive appointment details",
16632
+ "access": "read",
16633
+ "domain": "drive.practo.com",
16634
+ "strategy": "cookie",
16635
+ "browser": true,
16636
+ "args": [
16637
+ {
16638
+ "name": "appointment_id",
16639
+ "type": "str",
16640
+ "required": true,
16641
+ "positional": true,
16642
+ "help": "Appointment id from `practo appointments`"
16643
+ }
16644
+ ],
16645
+ "columns": [
16646
+ "appointment_id",
16647
+ "status",
16648
+ "summary"
16649
+ ],
16650
+ "type": "js",
16651
+ "modulePath": "practo/appointment.js",
16652
+ "sourceFile": "practo/appointment.js",
16653
+ "navigateBefore": false,
16654
+ "siteSession": "persistent"
16655
+ },
16656
+ {
16657
+ "site": "practo",
16658
+ "name": "appointments",
16659
+ "description": "List logged-in Practo Drive appointments",
16660
+ "access": "read",
16661
+ "domain": "drive.practo.com",
16662
+ "strategy": "cookie",
16663
+ "browser": true,
16664
+ "args": [],
16665
+ "columns": [
16666
+ "appointment_id",
16667
+ "doctor",
16668
+ "practice",
16669
+ "time",
16670
+ "status"
16671
+ ],
16672
+ "type": "js",
16673
+ "modulePath": "practo/appointments.js",
16674
+ "sourceFile": "practo/appointments.js",
16675
+ "navigateBefore": false,
16676
+ "siteSession": "persistent"
16677
+ },
16678
+ {
16679
+ "site": "practo",
16680
+ "name": "book-confirm",
16681
+ "description": "Confirm a Practo clinic visit booking after explicit confirmation",
16682
+ "access": "write",
16683
+ "domain": "www.practo.com",
16684
+ "strategy": "cookie",
16685
+ "browser": true,
16686
+ "args": [
16687
+ {
16688
+ "name": "practice_doctor_id",
16689
+ "type": "str",
16690
+ "required": true,
16691
+ "positional": true,
16692
+ "help": "Practo practice_doctor_id"
16693
+ },
16694
+ {
16695
+ "name": "time",
16696
+ "type": "str",
16697
+ "required": true,
16698
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16699
+ },
16700
+ {
16701
+ "name": "profile-url",
16702
+ "type": "str",
16703
+ "required": false,
16704
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
16705
+ },
16706
+ {
16707
+ "name": "confirm",
16708
+ "type": "boolean",
16709
+ "default": false,
16710
+ "required": false,
16711
+ "help": "Required. Set --confirm true to create the appointment."
16712
+ }
16713
+ ],
16714
+ "columns": [
16715
+ "status",
16716
+ "practice_doctor_id",
16717
+ "time",
16718
+ "url"
16719
+ ],
16720
+ "type": "js",
16721
+ "modulePath": "practo/book-confirm.js",
16722
+ "sourceFile": "practo/book-confirm.js",
16723
+ "navigateBefore": false,
16724
+ "siteSession": "persistent",
16725
+ "defaultWindowMode": "foreground"
16726
+ },
16727
+ {
16728
+ "site": "practo",
16729
+ "name": "book-preview",
16730
+ "description": "Preview Practo booking details for a selected slot without confirming",
16731
+ "access": "read",
16732
+ "domain": "www.practo.com",
16733
+ "strategy": "cookie",
16734
+ "browser": true,
16735
+ "args": [
16736
+ {
16737
+ "name": "practice_doctor_id",
16738
+ "type": "str",
16739
+ "required": true,
16740
+ "positional": true,
16741
+ "help": "Practo practice_doctor_id"
16742
+ },
16743
+ {
16744
+ "name": "time",
16745
+ "type": "str",
16746
+ "required": true,
16747
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16748
+ },
16749
+ {
16750
+ "name": "profile-url",
16751
+ "type": "str",
16752
+ "required": false,
16753
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
16754
+ }
16755
+ ],
16756
+ "columns": [
16757
+ "practice_doctor_id",
16758
+ "time",
16759
+ "amount",
16760
+ "prepaid",
16761
+ "payment_mode",
16762
+ "requires_payment",
16763
+ "confirm_button",
16764
+ "booking_url"
16765
+ ],
16766
+ "type": "js",
16767
+ "modulePath": "practo/book-preview.js",
16768
+ "sourceFile": "practo/book-preview.js",
16769
+ "navigateBefore": false,
16770
+ "siteSession": "persistent"
16771
+ },
16772
+ {
16773
+ "site": "practo",
16774
+ "name": "booking-link",
16775
+ "description": "Build a Practo booking URL for a selected slot without confirming it",
16776
+ "access": "read",
16777
+ "domain": "www.practo.com",
16778
+ "strategy": "cookie",
16779
+ "browser": true,
16780
+ "args": [
16781
+ {
16782
+ "name": "practice_doctor_id",
16783
+ "type": "str",
16784
+ "required": true,
16785
+ "positional": true,
16786
+ "help": "Practo practice_doctor_id"
16787
+ },
16788
+ {
16789
+ "name": "time",
16790
+ "type": "str",
16791
+ "required": true,
16792
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16793
+ },
16794
+ {
16795
+ "name": "profile-url",
16796
+ "type": "str",
16797
+ "required": false,
16798
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
16799
+ }
16800
+ ],
16801
+ "columns": [
16802
+ "practice_doctor_id",
16803
+ "time",
16804
+ "booking_url"
16805
+ ],
16806
+ "type": "js",
16807
+ "modulePath": "practo/booking-link.js",
16808
+ "sourceFile": "practo/booking-link.js",
16809
+ "navigateBefore": false
16810
+ },
16811
+ {
16812
+ "site": "practo",
16813
+ "name": "cancel",
16814
+ "description": "Cancel a logged-in Practo Drive appointment after explicit confirmation",
16815
+ "access": "write",
16816
+ "domain": "drive.practo.com",
16817
+ "strategy": "cookie",
16818
+ "browser": true,
16819
+ "args": [
16820
+ {
16821
+ "name": "appointment_id",
16822
+ "type": "str",
16823
+ "required": true,
16824
+ "positional": true,
16825
+ "help": "Appointment id from `practo appointments`"
16826
+ },
16827
+ {
16828
+ "name": "confirm",
16829
+ "type": "boolean",
16830
+ "default": false,
16831
+ "required": false,
16832
+ "help": "Required. Set --confirm true to cancel the appointment."
16833
+ }
16834
+ ],
16835
+ "columns": [
16836
+ "status",
16837
+ "appointment_id"
16838
+ ],
16839
+ "type": "js",
16840
+ "modulePath": "practo/cancel.js",
16841
+ "sourceFile": "practo/cancel.js",
16842
+ "navigateBefore": false,
16843
+ "siteSession": "persistent",
16844
+ "defaultWindowMode": "foreground"
16845
+ },
16846
+ {
16847
+ "site": "practo",
16848
+ "name": "contact",
16849
+ "description": "Get Practo virtual contact number for a practice_doctor_id",
16850
+ "access": "read",
16851
+ "domain": "www.practo.com",
16852
+ "strategy": "cookie",
16853
+ "browser": true,
16854
+ "args": [
16855
+ {
16856
+ "name": "practice_doctor_id",
16857
+ "type": "str",
16858
+ "required": true,
16859
+ "positional": true,
16860
+ "help": "Practo practice_doctor_id from search results"
16861
+ }
16862
+ ],
16863
+ "columns": [
16864
+ "practice_doctor_id",
16865
+ "phone",
16866
+ "raw"
16867
+ ],
16868
+ "type": "js",
16869
+ "modulePath": "practo/contact.js",
16870
+ "sourceFile": "practo/contact.js",
16871
+ "navigateBefore": false
16872
+ },
16873
+ {
16874
+ "site": "practo",
16875
+ "name": "login",
16876
+ "description": "Open Practo login and wait until the browser session is authenticated",
16877
+ "access": "write",
16878
+ "domain": "www.practo.com",
16879
+ "strategy": "cookie",
16880
+ "browser": true,
16881
+ "args": [
16882
+ {
16883
+ "name": "timeout",
16884
+ "type": "int",
16885
+ "default": 300,
16886
+ "required": false,
16887
+ "help": "Maximum seconds to wait for the user to finish login"
16888
+ }
16889
+ ],
16890
+ "columns": [
16891
+ "status",
16892
+ "logged_in",
16893
+ "site",
16894
+ "name"
16895
+ ],
16896
+ "type": "js",
16897
+ "modulePath": "practo/login.js",
16898
+ "sourceFile": "practo/login.js",
16899
+ "navigateBefore": false,
16900
+ "siteSession": "persistent",
16901
+ "defaultWindowMode": "foreground"
16902
+ },
16903
+ {
16904
+ "site": "practo",
16905
+ "name": "profile",
16906
+ "description": "Read public details from a Practo doctor profile URL",
16907
+ "access": "read",
16908
+ "domain": "www.practo.com",
16909
+ "strategy": "cookie",
16910
+ "browser": true,
16911
+ "args": [
16912
+ {
16913
+ "name": "url",
16914
+ "type": "str",
16915
+ "required": true,
16916
+ "positional": true,
16917
+ "help": "Practo doctor profile URL"
16918
+ }
16919
+ ],
16920
+ "columns": [
16921
+ "name",
16922
+ "specialty",
16923
+ "experience",
16924
+ "fee",
16925
+ "profile_url"
16926
+ ],
16927
+ "type": "js",
16928
+ "modulePath": "practo/profile.js",
16929
+ "sourceFile": "practo/profile.js",
16930
+ "navigateBefore": false
16931
+ },
16932
+ {
16933
+ "site": "practo",
15992
16934
  "name": "search",
15993
- "description": "Search Pixiv illustrations by keyword",
16935
+ "description": "Search Practo doctors by specialty, city, and optional locality",
15994
16936
  "access": "read",
15995
- "domain": "www.pixiv.net",
16937
+ "domain": "www.practo.com",
15996
16938
  "strategy": "cookie",
15997
16939
  "browser": true,
15998
16940
  "args": [
15999
16941
  {
16000
- "name": "query",
16942
+ "name": "specialty",
16001
16943
  "type": "str",
16002
16944
  "required": true,
16003
16945
  "positional": true,
16004
- "help": "Search keyword or tag"
16946
+ "help": "Doctor specialty, e.g. orthopedist or dermatologist"
16005
16947
  },
16006
16948
  {
16007
- "name": "limit",
16008
- "type": "int",
16009
- "default": 20,
16010
- "required": false,
16011
- "help": "Number of results"
16012
- },
16013
- {
16014
- "name": "order",
16949
+ "name": "city",
16015
16950
  "type": "str",
16016
- "default": "date_d",
16951
+ "default": "bangalore",
16017
16952
  "required": false,
16018
- "help": "Sort order",
16019
- "choices": [
16020
- "date_d",
16021
- "date",
16022
- "popular_d",
16023
- "popular_male_d",
16024
- "popular_female_d"
16025
- ]
16953
+ "help": "City, e.g. bangalore"
16026
16954
  },
16027
16955
  {
16028
- "name": "mode",
16956
+ "name": "locality",
16029
16957
  "type": "str",
16030
- "default": "all",
16031
16958
  "required": false,
16032
- "help": "Search mode",
16033
- "choices": [
16034
- "all",
16035
- "safe",
16036
- "r18"
16037
- ]
16959
+ "help": "Optional locality, e.g. indiranagar"
16038
16960
  },
16039
16961
  {
16040
- "name": "page",
16962
+ "name": "limit",
16041
16963
  "type": "int",
16042
- "default": 1,
16964
+ "default": 10,
16043
16965
  "required": false,
16044
- "help": "Page number"
16966
+ "help": "Max doctors to return (1-25)"
16045
16967
  }
16046
16968
  ],
16047
16969
  "columns": [
16048
16970
  "rank",
16049
- "title",
16050
- "author",
16051
- "user_id",
16052
- "illust_id",
16053
- "pages",
16054
- "bookmarks",
16055
- "tags",
16056
- "url"
16971
+ "practice_doctor_id",
16972
+ "doctor_id",
16973
+ "practice_id",
16974
+ "name",
16975
+ "specialty",
16976
+ "experience_years",
16977
+ "locality",
16978
+ "clinic",
16979
+ "fee",
16980
+ "next_available",
16981
+ "profile_url"
16057
16982
  ],
16058
16983
  "type": "js",
16059
- "modulePath": "pixiv/search.js",
16060
- "sourceFile": "pixiv/search.js",
16061
- "navigateBefore": "https://www.pixiv.net"
16984
+ "modulePath": "practo/search.js",
16985
+ "sourceFile": "practo/search.js",
16986
+ "navigateBefore": false
16062
16987
  },
16063
16988
  {
16064
- "site": "pixiv",
16065
- "name": "user",
16066
- "description": "View Pixiv artist profile",
16989
+ "site": "practo",
16990
+ "name": "slots",
16991
+ "description": "List available Practo appointment slots for a practice_doctor_id",
16067
16992
  "access": "read",
16068
- "domain": "www.pixiv.net",
16993
+ "domain": "www.practo.com",
16069
16994
  "strategy": "cookie",
16070
16995
  "browser": true,
16071
16996
  "args": [
16072
16997
  {
16073
- "name": "uid",
16998
+ "name": "practice_doctor_id",
16074
16999
  "type": "str",
16075
17000
  "required": true,
16076
17001
  "positional": true,
16077
- "help": "Pixiv user ID"
17002
+ "help": "Practo practice_doctor_id from search results"
17003
+ },
17004
+ {
17005
+ "name": "limit",
17006
+ "type": "int",
17007
+ "default": 20,
17008
+ "required": false,
17009
+ "help": "Max slots to return (1-25)"
16078
17010
  }
16079
17011
  ],
16080
17012
  "columns": [
16081
- "user_id",
16082
- "name",
16083
- "premium",
16084
- "following",
16085
- "illusts",
16086
- "manga",
16087
- "novels",
16088
- "comment",
16089
- "url"
17013
+ "practice_doctor_id",
17014
+ "time",
17015
+ "available",
17016
+ "amount",
17017
+ "prepaid",
17018
+ "appointment_token"
16090
17019
  ],
16091
17020
  "type": "js",
16092
- "modulePath": "pixiv/user.js",
16093
- "sourceFile": "pixiv/user.js",
16094
- "navigateBefore": "https://www.pixiv.net"
17021
+ "modulePath": "practo/slots.js",
17022
+ "sourceFile": "practo/slots.js",
17023
+ "navigateBefore": false
16095
17024
  },
16096
17025
  {
16097
- "site": "pixiv",
17026
+ "site": "practo",
16098
17027
  "name": "whoami",
16099
- "description": "Show the current logged-in pixiv account",
17028
+ "aliases": [
17029
+ "auth-status"
17030
+ ],
17031
+ "description": "Show whether the current browser session is logged into Practo",
16100
17032
  "access": "read",
16101
- "domain": "pixiv.net",
17033
+ "domain": "www.practo.com",
16102
17034
  "strategy": "cookie",
16103
17035
  "browser": true,
16104
17036
  "args": [],
16105
17037
  "columns": [
16106
17038
  "logged_in",
16107
17039
  "site",
16108
- "user_id",
16109
17040
  "name"
16110
17041
  ],
16111
17042
  "type": "js",
16112
- "modulePath": "pixiv/auth.js",
16113
- "sourceFile": "pixiv/auth.js",
17043
+ "modulePath": "practo/whoami.js",
17044
+ "sourceFile": "practo/whoami.js",
16114
17045
  "navigateBefore": false,
16115
17046
  "siteSession": "persistent"
16116
17047
  },
@@ -26312,6 +27243,238 @@
26312
27243
  "navigateBefore": false,
26313
27244
  "siteSession": "persistent"
26314
27245
  },
27246
+ {
27247
+ "site": "zepto",
27248
+ "name": "add-to-cart",
27249
+ "description": "Add a Zepto product to cart",
27250
+ "access": "write",
27251
+ "domain": "www.zepto.com",
27252
+ "strategy": "cookie",
27253
+ "browser": true,
27254
+ "args": [
27255
+ {
27256
+ "name": "product",
27257
+ "type": "str",
27258
+ "required": true,
27259
+ "positional": true,
27260
+ "help": "Product URL from Zepto search results"
27261
+ },
27262
+ {
27263
+ "name": "quantity",
27264
+ "type": "int",
27265
+ "default": 1,
27266
+ "required": false,
27267
+ "help": "Quantity to add (max 12)"
27268
+ }
27269
+ ],
27270
+ "columns": [
27271
+ "ok",
27272
+ "product_id",
27273
+ "quantity",
27274
+ "item_count",
27275
+ "message"
27276
+ ],
27277
+ "type": "js",
27278
+ "modulePath": "zepto/add-to-cart.js",
27279
+ "sourceFile": "zepto/add-to-cart.js",
27280
+ "navigateBefore": false
27281
+ },
27282
+ {
27283
+ "site": "zepto",
27284
+ "name": "cart",
27285
+ "description": "Read Zepto cart line items",
27286
+ "access": "read",
27287
+ "domain": "www.zepto.com",
27288
+ "strategy": "cookie",
27289
+ "browser": true,
27290
+ "args": [],
27291
+ "columns": [
27292
+ "rank",
27293
+ "product_id",
27294
+ "title",
27295
+ "pack_size",
27296
+ "quantity",
27297
+ "price",
27298
+ "mrp",
27299
+ "availability"
27300
+ ],
27301
+ "type": "js",
27302
+ "modulePath": "zepto/cart.js",
27303
+ "sourceFile": "zepto/cart.js",
27304
+ "navigateBefore": false
27305
+ },
27306
+ {
27307
+ "site": "zepto",
27308
+ "name": "checkout",
27309
+ "description": "Open Zepto checkout review without placing an order",
27310
+ "access": "write",
27311
+ "domain": "www.zepto.com",
27312
+ "strategy": "cookie",
27313
+ "browser": true,
27314
+ "args": [],
27315
+ "columns": [
27316
+ "ok",
27317
+ "stage",
27318
+ "item_count",
27319
+ "next_action",
27320
+ "url"
27321
+ ],
27322
+ "type": "js",
27323
+ "modulePath": "zepto/checkout.js",
27324
+ "sourceFile": "zepto/checkout.js",
27325
+ "navigateBefore": false
27326
+ },
27327
+ {
27328
+ "site": "zepto",
27329
+ "name": "location",
27330
+ "description": "Show the selected Zepto delivery location",
27331
+ "access": "read",
27332
+ "domain": "www.zepto.com",
27333
+ "strategy": "cookie",
27334
+ "browser": true,
27335
+ "args": [],
27336
+ "columns": [
27337
+ "selected",
27338
+ "label",
27339
+ "area",
27340
+ "city",
27341
+ "pincode",
27342
+ "hasCoordinates",
27343
+ "source"
27344
+ ],
27345
+ "type": "js",
27346
+ "modulePath": "zepto/location.js",
27347
+ "sourceFile": "zepto/location.js",
27348
+ "navigateBefore": false
27349
+ },
27350
+ {
27351
+ "site": "zepto",
27352
+ "name": "login",
27353
+ "description": "Open Zepto login and wait until the browser session is authenticated",
27354
+ "access": "write",
27355
+ "domain": "www.zepto.com",
27356
+ "strategy": "cookie",
27357
+ "browser": true,
27358
+ "args": [
27359
+ {
27360
+ "name": "timeout",
27361
+ "type": "int",
27362
+ "default": 300,
27363
+ "required": false,
27364
+ "help": "Maximum seconds to wait for the user to finish login"
27365
+ }
27366
+ ],
27367
+ "columns": [
27368
+ "status",
27369
+ "logged_in",
27370
+ "site"
27371
+ ],
27372
+ "type": "js",
27373
+ "modulePath": "zepto/auth.js",
27374
+ "sourceFile": "zepto/auth.js",
27375
+ "navigateBefore": false,
27376
+ "siteSession": "persistent",
27377
+ "defaultWindowMode": "foreground"
27378
+ },
27379
+ {
27380
+ "site": "zepto",
27381
+ "name": "place-order",
27382
+ "description": "Submit a real Zepto order only when --confirm true is passed",
27383
+ "access": "write",
27384
+ "domain": "www.zepto.com",
27385
+ "strategy": "cookie",
27386
+ "browser": true,
27387
+ "args": [
27388
+ {
27389
+ "name": "confirm",
27390
+ "type": "boolean",
27391
+ "default": false,
27392
+ "required": false,
27393
+ "help": "Required. Set true to submit a real Zepto order/payment action."
27394
+ }
27395
+ ],
27396
+ "columns": [
27397
+ "status",
27398
+ "confirmed",
27399
+ "message"
27400
+ ],
27401
+ "type": "js",
27402
+ "modulePath": "zepto/place-order.js",
27403
+ "sourceFile": "zepto/place-order.js",
27404
+ "navigateBefore": false
27405
+ },
27406
+ {
27407
+ "site": "zepto",
27408
+ "name": "product",
27409
+ "description": "Read Zepto product details",
27410
+ "access": "read",
27411
+ "domain": "www.zepto.com",
27412
+ "strategy": "cookie",
27413
+ "browser": true,
27414
+ "args": [
27415
+ {
27416
+ "name": "product",
27417
+ "type": "str",
27418
+ "required": true,
27419
+ "positional": true,
27420
+ "help": "Product URL from Zepto search results"
27421
+ }
27422
+ ],
27423
+ "columns": [
27424
+ "product_id",
27425
+ "title",
27426
+ "brand",
27427
+ "pack_size",
27428
+ "price",
27429
+ "mrp",
27430
+ "availability",
27431
+ "url"
27432
+ ],
27433
+ "type": "js",
27434
+ "modulePath": "zepto/product.js",
27435
+ "sourceFile": "zepto/product.js",
27436
+ "navigateBefore": false
27437
+ },
27438
+ {
27439
+ "site": "zepto",
27440
+ "name": "search",
27441
+ "description": "Search Zepto products",
27442
+ "access": "read",
27443
+ "domain": "www.zepto.com",
27444
+ "strategy": "cookie",
27445
+ "browser": true,
27446
+ "args": [
27447
+ {
27448
+ "name": "query",
27449
+ "type": "str",
27450
+ "required": true,
27451
+ "positional": true,
27452
+ "help": "Search query"
27453
+ },
27454
+ {
27455
+ "name": "limit",
27456
+ "type": "int",
27457
+ "default": 20,
27458
+ "required": false,
27459
+ "help": "Maximum products to return (max 50)"
27460
+ }
27461
+ ],
27462
+ "columns": [
27463
+ "rank",
27464
+ "product_id",
27465
+ "title",
27466
+ "brand",
27467
+ "pack_size",
27468
+ "price",
27469
+ "mrp",
27470
+ "availability",
27471
+ "url"
27472
+ ],
27473
+ "type": "js",
27474
+ "modulePath": "zepto/search.js",
27475
+ "sourceFile": "zepto/search.js",
27476
+ "navigateBefore": false
27477
+ },
26315
27478
  {
26316
27479
  "site": "zlibrary",
26317
27480
  "name": "info",