shop-cli 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +392 -0
  3. package/bin/shop-cli.js +17 -0
  4. package/bin/shop.js +16 -0
  5. package/dist/adminClient.d.ts +34 -0
  6. package/dist/adminClient.js +144 -0
  7. package/dist/cli/client.d.ts +10 -0
  8. package/dist/cli/client.js +56 -0
  9. package/dist/cli/command.d.ts +5 -0
  10. package/dist/cli/command.js +62 -0
  11. package/dist/cli/errors.d.ts +4 -0
  12. package/dist/cli/errors.js +35 -0
  13. package/dist/cli/gid.d.ts +3 -0
  14. package/dist/cli/gid.js +42 -0
  15. package/dist/cli/globalFlags.d.ts +15 -0
  16. package/dist/cli/globalFlags.js +100 -0
  17. package/dist/cli/headers.d.ts +2 -0
  18. package/dist/cli/headers.js +79 -0
  19. package/dist/cli/help/format.d.ts +8 -0
  20. package/dist/cli/help/format.js +78 -0
  21. package/dist/cli/help/registry.d.ts +5 -0
  22. package/dist/cli/help/registry.js +6443 -0
  23. package/dist/cli/help/render.d.ts +8 -0
  24. package/dist/cli/help/render.js +399 -0
  25. package/dist/cli/help/spec.d.ts +39 -0
  26. package/dist/cli/help/spec.js +17 -0
  27. package/dist/cli/input.d.ts +9 -0
  28. package/dist/cli/input.js +104 -0
  29. package/dist/cli/introspection/deprecations.d.ts +1 -0
  30. package/dist/cli/introspection/deprecations.js +83 -0
  31. package/dist/cli/introspection/format.d.ts +6 -0
  32. package/dist/cli/introspection/format.js +63 -0
  33. package/dist/cli/introspection/index.d.ts +14 -0
  34. package/dist/cli/introspection/index.js +89 -0
  35. package/dist/cli/introspection/resources.d.ts +1 -0
  36. package/dist/cli/introspection/resources.js +127 -0
  37. package/dist/cli/output/computedFields.d.ts +39 -0
  38. package/dist/cli/output/computedFields.js +104 -0
  39. package/dist/cli/output.d.ts +37 -0
  40. package/dist/cli/output.js +332 -0
  41. package/dist/cli/parse-command.d.ts +18 -0
  42. package/dist/cli/parse-command.js +109 -0
  43. package/dist/cli/router.d.ts +29 -0
  44. package/dist/cli/router.js +480 -0
  45. package/dist/cli/selection/buildAllSelection.d.ts +13 -0
  46. package/dist/cli/selection/buildAllSelection.js +108 -0
  47. package/dist/cli/selection/graphqlSelection.d.ts +5 -0
  48. package/dist/cli/selection/graphqlSelection.js +301 -0
  49. package/dist/cli/selection/select.d.ts +13 -0
  50. package/dist/cli/selection/select.js +136 -0
  51. package/dist/cli/selection/stripDeprecated.d.ts +2 -0
  52. package/dist/cli/selection/stripDeprecated.js +63 -0
  53. package/dist/cli/suggest.d.ts +5 -0
  54. package/dist/cli/suggest.js +88 -0
  55. package/dist/cli/userErrors.d.ts +4 -0
  56. package/dist/cli/userErrors.js +41 -0
  57. package/dist/cli/verbs/_shared.d.ts +38 -0
  58. package/dist/cli/verbs/_shared.js +181 -0
  59. package/dist/cli/verbs/abandoned-checkouts.d.ts +6 -0
  60. package/dist/cli/verbs/abandoned-checkouts.js +259 -0
  61. package/dist/cli/verbs/app-billing.d.ts +6 -0
  62. package/dist/cli/verbs/app-billing.js +452 -0
  63. package/dist/cli/verbs/apps.d.ts +6 -0
  64. package/dist/cli/verbs/apps.js +296 -0
  65. package/dist/cli/verbs/articles.d.ts +6 -0
  66. package/dist/cli/verbs/articles.js +251 -0
  67. package/dist/cli/verbs/backup.d.ts +6 -0
  68. package/dist/cli/verbs/backup.js +94 -0
  69. package/dist/cli/verbs/blogs.d.ts +6 -0
  70. package/dist/cli/verbs/blogs.js +273 -0
  71. package/dist/cli/verbs/bulk-operations.d.ts +6 -0
  72. package/dist/cli/verbs/bulk-operations.js +272 -0
  73. package/dist/cli/verbs/business-entities.d.ts +6 -0
  74. package/dist/cli/verbs/business-entities.js +102 -0
  75. package/dist/cli/verbs/carrier-services.d.ts +6 -0
  76. package/dist/cli/verbs/carrier-services.js +195 -0
  77. package/dist/cli/verbs/cart-transforms.d.ts +6 -0
  78. package/dist/cli/verbs/cart-transforms.js +141 -0
  79. package/dist/cli/verbs/cash-tracking.d.ts +6 -0
  80. package/dist/cli/verbs/cash-tracking.js +118 -0
  81. package/dist/cli/verbs/catalogs.d.ts +6 -0
  82. package/dist/cli/verbs/catalogs.js +267 -0
  83. package/dist/cli/verbs/channels.d.ts +6 -0
  84. package/dist/cli/verbs/channels.js +120 -0
  85. package/dist/cli/verbs/checkout-branding.d.ts +6 -0
  86. package/dist/cli/verbs/checkout-branding.js +144 -0
  87. package/dist/cli/verbs/checkout-profiles.d.ts +6 -0
  88. package/dist/cli/verbs/checkout-profiles.js +124 -0
  89. package/dist/cli/verbs/collections.d.ts +6 -0
  90. package/dist/cli/verbs/collections.js +620 -0
  91. package/dist/cli/verbs/comments.d.ts +6 -0
  92. package/dist/cli/verbs/comments.js +160 -0
  93. package/dist/cli/verbs/companies.d.ts +6 -0
  94. package/dist/cli/verbs/companies.js +313 -0
  95. package/dist/cli/verbs/company-contacts.d.ts +6 -0
  96. package/dist/cli/verbs/company-contacts.js +318 -0
  97. package/dist/cli/verbs/company-locations.d.ts +6 -0
  98. package/dist/cli/verbs/company-locations.js +467 -0
  99. package/dist/cli/verbs/customer-account-pages.d.ts +6 -0
  100. package/dist/cli/verbs/customer-account-pages.js +97 -0
  101. package/dist/cli/verbs/customer-payment-methods.d.ts +6 -0
  102. package/dist/cli/verbs/customer-payment-methods.js +358 -0
  103. package/dist/cli/verbs/customer-privacy.d.ts +6 -0
  104. package/dist/cli/verbs/customer-privacy.js +167 -0
  105. package/dist/cli/verbs/customer-segments.d.ts +6 -0
  106. package/dist/cli/verbs/customer-segments.js +193 -0
  107. package/dist/cli/verbs/customers.d.ts +6 -0
  108. package/dist/cli/verbs/customers.js +793 -0
  109. package/dist/cli/verbs/delegate-tokens.d.ts +6 -0
  110. package/dist/cli/verbs/delegate-tokens.js +95 -0
  111. package/dist/cli/verbs/delivery-customizations.d.ts +6 -0
  112. package/dist/cli/verbs/delivery-customizations.js +205 -0
  113. package/dist/cli/verbs/delivery-profile-locations.d.ts +6 -0
  114. package/dist/cli/verbs/delivery-profile-locations.js +90 -0
  115. package/dist/cli/verbs/delivery-profiles.d.ts +6 -0
  116. package/dist/cli/verbs/delivery-profiles.js +207 -0
  117. package/dist/cli/verbs/delivery-promises.d.ts +6 -0
  118. package/dist/cli/verbs/delivery-promises.js +262 -0
  119. package/dist/cli/verbs/delivery-settings.d.ts +6 -0
  120. package/dist/cli/verbs/delivery-settings.js +85 -0
  121. package/dist/cli/verbs/discount-nodes.d.ts +6 -0
  122. package/dist/cli/verbs/discount-nodes.js +169 -0
  123. package/dist/cli/verbs/discount-redeem-codes.d.ts +6 -0
  124. package/dist/cli/verbs/discount-redeem-codes.js +102 -0
  125. package/dist/cli/verbs/discount-saved-searches.d.ts +6 -0
  126. package/dist/cli/verbs/discount-saved-searches.js +113 -0
  127. package/dist/cli/verbs/discounts-automatic.d.ts +6 -0
  128. package/dist/cli/verbs/discounts-automatic.js +501 -0
  129. package/dist/cli/verbs/discounts-code.d.ts +6 -0
  130. package/dist/cli/verbs/discounts-code.js +540 -0
  131. package/dist/cli/verbs/disputes.d.ts +6 -0
  132. package/dist/cli/verbs/disputes.js +154 -0
  133. package/dist/cli/verbs/draft-orders.d.ts +6 -0
  134. package/dist/cli/verbs/draft-orders.js +475 -0
  135. package/dist/cli/verbs/events.d.ts +6 -0
  136. package/dist/cli/verbs/events.js +182 -0
  137. package/dist/cli/verbs/file-saved-searches.d.ts +6 -0
  138. package/dist/cli/verbs/file-saved-searches.js +83 -0
  139. package/dist/cli/verbs/files.d.ts +6 -0
  140. package/dist/cli/verbs/files.js +329 -0
  141. package/dist/cli/verbs/finance.d.ts +6 -0
  142. package/dist/cli/verbs/finance.js +115 -0
  143. package/dist/cli/verbs/flow.d.ts +6 -0
  144. package/dist/cli/verbs/flow.js +94 -0
  145. package/dist/cli/verbs/fulfillment-constraint-rules.d.ts +6 -0
  146. package/dist/cli/verbs/fulfillment-constraint-rules.js +139 -0
  147. package/dist/cli/verbs/fulfillment-orders.d.ts +6 -0
  148. package/dist/cli/verbs/fulfillment-orders.js +689 -0
  149. package/dist/cli/verbs/fulfillment-services.d.ts +6 -0
  150. package/dist/cli/verbs/fulfillment-services.js +212 -0
  151. package/dist/cli/verbs/fulfillments.d.ts +6 -0
  152. package/dist/cli/verbs/fulfillments.js +279 -0
  153. package/dist/cli/verbs/gift-cards.d.ts +6 -0
  154. package/dist/cli/verbs/gift-cards.js +359 -0
  155. package/dist/cli/verbs/graphql.d.ts +14 -0
  156. package/dist/cli/verbs/graphql.js +285 -0
  157. package/dist/cli/verbs/inventory-items.d.ts +6 -0
  158. package/dist/cli/verbs/inventory-items.js +164 -0
  159. package/dist/cli/verbs/inventory-shipments.d.ts +6 -0
  160. package/dist/cli/verbs/inventory-shipments.js +276 -0
  161. package/dist/cli/verbs/inventory-transfers.d.ts +6 -0
  162. package/dist/cli/verbs/inventory-transfers.js +396 -0
  163. package/dist/cli/verbs/inventory.d.ts +6 -0
  164. package/dist/cli/verbs/inventory.js +557 -0
  165. package/dist/cli/verbs/locales.d.ts +6 -0
  166. package/dist/cli/verbs/locales.js +61 -0
  167. package/dist/cli/verbs/locations.d.ts +6 -0
  168. package/dist/cli/verbs/locations.js +385 -0
  169. package/dist/cli/verbs/market-localizations.d.ts +6 -0
  170. package/dist/cli/verbs/market-localizations.js +291 -0
  171. package/dist/cli/verbs/market-web-presences.d.ts +6 -0
  172. package/dist/cli/verbs/market-web-presences.js +139 -0
  173. package/dist/cli/verbs/marketing-activities.d.ts +6 -0
  174. package/dist/cli/verbs/marketing-activities.js +353 -0
  175. package/dist/cli/verbs/marketing-events.d.ts +6 -0
  176. package/dist/cli/verbs/marketing-events.js +132 -0
  177. package/dist/cli/verbs/markets.d.ts +6 -0
  178. package/dist/cli/verbs/markets.js +357 -0
  179. package/dist/cli/verbs/menus.d.ts +6 -0
  180. package/dist/cli/verbs/menus.js +251 -0
  181. package/dist/cli/verbs/metafield-definition-tools.d.ts +6 -0
  182. package/dist/cli/verbs/metafield-definition-tools.js +289 -0
  183. package/dist/cli/verbs/metafield-definitions.d.ts +6 -0
  184. package/dist/cli/verbs/metafield-definitions.js +240 -0
  185. package/dist/cli/verbs/metafields.d.ts +6 -0
  186. package/dist/cli/verbs/metafields.js +112 -0
  187. package/dist/cli/verbs/metaobject-definition-tools.d.ts +6 -0
  188. package/dist/cli/verbs/metaobject-definition-tools.js +83 -0
  189. package/dist/cli/verbs/metaobject-definitions.d.ts +6 -0
  190. package/dist/cli/verbs/metaobject-definitions.js +176 -0
  191. package/dist/cli/verbs/metaobjects.d.ts +6 -0
  192. package/dist/cli/verbs/metaobjects.js +306 -0
  193. package/dist/cli/verbs/mobile-platform-applications.d.ts +6 -0
  194. package/dist/cli/verbs/mobile-platform-applications.js +247 -0
  195. package/dist/cli/verbs/order-edit.d.ts +6 -0
  196. package/dist/cli/verbs/order-edit.js +596 -0
  197. package/dist/cli/verbs/orders.d.ts +6 -0
  198. package/dist/cli/verbs/orders.js +853 -0
  199. package/dist/cli/verbs/pages.d.ts +6 -0
  200. package/dist/cli/verbs/pages.js +234 -0
  201. package/dist/cli/verbs/payment-customizations.d.ts +6 -0
  202. package/dist/cli/verbs/payment-customizations.js +193 -0
  203. package/dist/cli/verbs/payment-terms.d.ts +6 -0
  204. package/dist/cli/verbs/payment-terms.js +228 -0
  205. package/dist/cli/verbs/point-of-sale.d.ts +6 -0
  206. package/dist/cli/verbs/point-of-sale.js +57 -0
  207. package/dist/cli/verbs/price-lists.d.ts +6 -0
  208. package/dist/cli/verbs/price-lists.js +426 -0
  209. package/dist/cli/verbs/product-feeds.d.ts +6 -0
  210. package/dist/cli/verbs/product-feeds.js +187 -0
  211. package/dist/cli/verbs/product-variants.d.ts +6 -0
  212. package/dist/cli/verbs/product-variants.js +439 -0
  213. package/dist/cli/verbs/products.d.ts +6 -0
  214. package/dist/cli/verbs/products.js +2309 -0
  215. package/dist/cli/verbs/publications.d.ts +6 -0
  216. package/dist/cli/verbs/publications.js +256 -0
  217. package/dist/cli/verbs/publishables.d.ts +6 -0
  218. package/dist/cli/verbs/publishables.js +73 -0
  219. package/dist/cli/verbs/refunds.d.ts +6 -0
  220. package/dist/cli/verbs/refunds.js +226 -0
  221. package/dist/cli/verbs/resource-feedback.d.ts +6 -0
  222. package/dist/cli/verbs/resource-feedback.js +119 -0
  223. package/dist/cli/verbs/returnable-fulfillments.d.ts +6 -0
  224. package/dist/cli/verbs/returnable-fulfillments.js +102 -0
  225. package/dist/cli/verbs/returns.d.ts +6 -0
  226. package/dist/cli/verbs/returns.js +506 -0
  227. package/dist/cli/verbs/reverse-deliveries.d.ts +6 -0
  228. package/dist/cli/verbs/reverse-deliveries.js +203 -0
  229. package/dist/cli/verbs/reverse-fulfillment-orders.d.ts +6 -0
  230. package/dist/cli/verbs/reverse-fulfillment-orders.js +157 -0
  231. package/dist/cli/verbs/saved-searches.d.ts +6 -0
  232. package/dist/cli/verbs/saved-searches.js +150 -0
  233. package/dist/cli/verbs/script-tags.d.ts +6 -0
  234. package/dist/cli/verbs/script-tags.js +179 -0
  235. package/dist/cli/verbs/segments.d.ts +6 -0
  236. package/dist/cli/verbs/segments.js +343 -0
  237. package/dist/cli/verbs/selling-plan-group-products.d.ts +6 -0
  238. package/dist/cli/verbs/selling-plan-group-products.js +115 -0
  239. package/dist/cli/verbs/selling-plan-groups.d.ts +6 -0
  240. package/dist/cli/verbs/selling-plan-groups.js +230 -0
  241. package/dist/cli/verbs/server-pixels.d.ts +6 -0
  242. package/dist/cli/verbs/server-pixels.js +172 -0
  243. package/dist/cli/verbs/shipping-packages.d.ts +6 -0
  244. package/dist/cli/verbs/shipping-packages.js +107 -0
  245. package/dist/cli/verbs/shop-policies.d.ts +6 -0
  246. package/dist/cli/verbs/shop-policies.js +91 -0
  247. package/dist/cli/verbs/shop-utils.d.ts +6 -0
  248. package/dist/cli/verbs/shop-utils.js +147 -0
  249. package/dist/cli/verbs/shop.d.ts +6 -0
  250. package/dist/cli/verbs/shop.js +177 -0
  251. package/dist/cli/verbs/shopify-functions.d.ts +6 -0
  252. package/dist/cli/verbs/shopify-functions.js +127 -0
  253. package/dist/cli/verbs/shopify-payments.d.ts +6 -0
  254. package/dist/cli/verbs/shopify-payments.js +111 -0
  255. package/dist/cli/verbs/staff.d.ts +6 -0
  256. package/dist/cli/verbs/staff.js +127 -0
  257. package/dist/cli/verbs/staged-uploads.d.ts +6 -0
  258. package/dist/cli/verbs/staged-uploads.js +128 -0
  259. package/dist/cli/verbs/store-credit.d.ts +6 -0
  260. package/dist/cli/verbs/store-credit.js +209 -0
  261. package/dist/cli/verbs/storefront-access-tokens.d.ts +6 -0
  262. package/dist/cli/verbs/storefront-access-tokens.js +183 -0
  263. package/dist/cli/verbs/subscription-billing-cycles.d.ts +6 -0
  264. package/dist/cli/verbs/subscription-billing-cycles.js +391 -0
  265. package/dist/cli/verbs/subscription-billing.d.ts +6 -0
  266. package/dist/cli/verbs/subscription-billing.js +391 -0
  267. package/dist/cli/verbs/subscription-contracts.d.ts +6 -0
  268. package/dist/cli/verbs/subscription-contracts.js +392 -0
  269. package/dist/cli/verbs/subscription-drafts.d.ts +6 -0
  270. package/dist/cli/verbs/subscription-drafts.js +315 -0
  271. package/dist/cli/verbs/tags.d.ts +6 -0
  272. package/dist/cli/verbs/tags.js +73 -0
  273. package/dist/cli/verbs/tax.d.ts +6 -0
  274. package/dist/cli/verbs/tax.js +114 -0
  275. package/dist/cli/verbs/taxonomy.d.ts +6 -0
  276. package/dist/cli/verbs/taxonomy.js +99 -0
  277. package/dist/cli/verbs/tender-transactions.d.ts +6 -0
  278. package/dist/cli/verbs/tender-transactions.js +105 -0
  279. package/dist/cli/verbs/themes.d.ts +6 -0
  280. package/dist/cli/verbs/themes.js +315 -0
  281. package/dist/cli/verbs/translations.d.ts +6 -0
  282. package/dist/cli/verbs/translations.js +221 -0
  283. package/dist/cli/verbs/types.d.ts +4 -0
  284. package/dist/cli/verbs/types.js +224 -0
  285. package/dist/cli/verbs/url-redirects.d.ts +6 -0
  286. package/dist/cli/verbs/url-redirects.js +465 -0
  287. package/dist/cli/verbs/validations.d.ts +6 -0
  288. package/dist/cli/verbs/validations.js +181 -0
  289. package/dist/cli/verbs/web-pixels.d.ts +6 -0
  290. package/dist/cli/verbs/web-pixels.js +145 -0
  291. package/dist/cli/verbs/web-presences.d.ts +6 -0
  292. package/dist/cli/verbs/web-presences.js +186 -0
  293. package/dist/cli/verbs/webhooks.d.ts +6 -0
  294. package/dist/cli/verbs/webhooks.js +336 -0
  295. package/dist/cli/workflows/files/stagedUploads.d.ts +28 -0
  296. package/dist/cli/workflows/files/stagedUploads.js +227 -0
  297. package/dist/cli/workflows/files/stdinFile.d.ts +7 -0
  298. package/dist/cli/workflows/files/stdinFile.js +65 -0
  299. package/dist/cli/workflows/files/urlDownloads.d.ts +14 -0
  300. package/dist/cli/workflows/files/urlDownloads.js +114 -0
  301. package/dist/cli/workflows/files/waitForReady.d.ts +20 -0
  302. package/dist/cli/workflows/files/waitForReady.js +114 -0
  303. package/dist/cli/workflows/inventory/resolveInventoryItemId.d.ts +6 -0
  304. package/dist/cli/workflows/inventory/resolveInventoryItemId.js +59 -0
  305. package/dist/cli/workflows/productVariants/upsert.d.ts +8 -0
  306. package/dist/cli/workflows/productVariants/upsert.js +110 -0
  307. package/dist/cli/workflows/products/metafieldsUpsert.d.ts +6 -0
  308. package/dist/cli/workflows/products/metafieldsUpsert.js +94 -0
  309. package/dist/cli/workflows/products/publishablePublish.d.ts +21 -0
  310. package/dist/cli/workflows/products/publishablePublish.js +131 -0
  311. package/dist/cli/workflows/publications/resolvePublicationId.d.ts +17 -0
  312. package/dist/cli/workflows/publications/resolvePublicationId.js +93 -0
  313. package/dist/cli.d.ts +1 -0
  314. package/dist/cli.js +238 -0
  315. package/dist/defaults.d.ts +2 -0
  316. package/dist/defaults.js +38 -0
  317. package/dist/generated/admin-2026-04/index.d.ts +25 -0
  318. package/dist/generated/admin-2026-04/index.js +70 -0
  319. package/dist/generated/admin-2026-04/runtime/batcher.d.ts +105 -0
  320. package/dist/generated/admin-2026-04/runtime/batcher.js +203 -0
  321. package/dist/generated/admin-2026-04/runtime/createClient.d.ts +17 -0
  322. package/dist/generated/admin-2026-04/runtime/createClient.js +59 -0
  323. package/dist/generated/admin-2026-04/runtime/error.d.ts +18 -0
  324. package/dist/generated/admin-2026-04/runtime/error.js +44 -0
  325. package/dist/generated/admin-2026-04/runtime/fetcher.d.ts +10 -0
  326. package/dist/generated/admin-2026-04/runtime/fetcher.js +104 -0
  327. package/dist/generated/admin-2026-04/runtime/generateGraphqlOperation.d.ts +30 -0
  328. package/dist/generated/admin-2026-04/runtime/generateGraphqlOperation.js +191 -0
  329. package/dist/generated/admin-2026-04/runtime/index.d.ts +11 -0
  330. package/dist/generated/admin-2026-04/runtime/index.js +46 -0
  331. package/dist/generated/admin-2026-04/runtime/linkTypeMap.d.ts +9 -0
  332. package/dist/generated/admin-2026-04/runtime/linkTypeMap.js +142 -0
  333. package/dist/generated/admin-2026-04/runtime/typeSelection.d.ts +28 -0
  334. package/dist/generated/admin-2026-04/runtime/typeSelection.js +17 -0
  335. package/dist/generated/admin-2026-04/runtime/types.d.ts +55 -0
  336. package/dist/generated/admin-2026-04/runtime/types.js +17 -0
  337. package/dist/generated/admin-2026-04/schema.d.ts +102240 -0
  338. package/dist/generated/admin-2026-04/schema.graphql +91596 -0
  339. package/dist/generated/admin-2026-04/schema.js +20322 -0
  340. package/dist/generated/admin-2026-04/types.d.ts +24224 -0
  341. package/dist/generated/admin-2026-04/types.js +62299 -0
  342. package/dist/generated/help/schema-help.d.ts +30 -0
  343. package/dist/generated/help/schema-help.js +61833 -0
  344. package/dist/graphqlValidator.d.ts +17 -0
  345. package/dist/graphqlValidator.js +84 -0
  346. package/dist/index.d.ts +1 -0
  347. package/dist/index.js +23 -0
  348. package/package.json +66 -0
  349. package/schema/2026-04.graphql +61256 -0
  350. package/schema/2026-04.introspection.json +1 -0
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var types_exports = {};
20
+ __export(types_exports, {
21
+ runTypes: () => runTypes
22
+ });
23
+ module.exports = __toCommonJS(types_exports);
24
+ var import_node_util = require("node:util");
25
+ var import_errors = require("../errors");
26
+ var import_schema_help = require("../../generated/help/schema-help");
27
+ var import_command = require("../command");
28
+ const PRIMITIVES = /* @__PURE__ */ new Set(["String", "Int", "Float", "Boolean", "ID", "DateTime", "Date", "JSON", "Decimal", "HTML", "URL", "Money", "UnsignedInt64", "FormattedString", "Color", "UtcOffset", "ARN"]);
29
+ const printHelp = () => {
30
+ const command = (0, import_command.resolveCliCommand)();
31
+ console.log(
32
+ [
33
+ "Explore input types and enums from the Shopify Admin API schema.",
34
+ "",
35
+ "Usage:",
36
+ ` ${command} types <TypeName>`,
37
+ "",
38
+ "Arguments:",
39
+ " TypeName The name of an input type or enum to explore.",
40
+ "",
41
+ "Flags:",
42
+ " --all Show all enum values (for large enums).",
43
+ "",
44
+ "Examples:",
45
+ ` ${command} types ProductBundleComponentInput`,
46
+ ` ${command} types ProductStatus`,
47
+ ` ${command} types CountryCode --all`
48
+ ].join("\n")
49
+ );
50
+ };
51
+ const fuzzyMatch = (needle, haystack) => {
52
+ const lowerNeedle = needle.toLowerCase();
53
+ const lowerHaystack = haystack.toLowerCase();
54
+ let ni = 0;
55
+ for (let hi = 0; hi < lowerHaystack.length && ni < lowerNeedle.length; hi++) {
56
+ if (lowerHaystack[hi] === lowerNeedle[ni]) ni++;
57
+ }
58
+ return ni === lowerNeedle.length;
59
+ };
60
+ const scoreMatch = (query, typeName) => {
61
+ const lowerQuery = query.toLowerCase();
62
+ const lowerType = typeName.toLowerCase();
63
+ if (lowerType === lowerQuery) return 0;
64
+ if (lowerType.startsWith(lowerQuery)) return 1;
65
+ if (lowerType.includes(lowerQuery)) return 2;
66
+ if (fuzzyMatch(query, typeName)) return 3;
67
+ return Infinity;
68
+ };
69
+ const findSuggestions = (query, limit = 5) => {
70
+ const allTypes = [
71
+ ...Object.keys(import_schema_help.inputTypeHelp),
72
+ ...Object.keys(import_schema_help.enumTypeHelp)
73
+ ];
74
+ const scored = allTypes.map((name) => ({ name, score: scoreMatch(query, name) })).filter(({ score }) => score < Infinity).sort((a, b) => a.score - b.score || a.name.localeCompare(b.name)).slice(0, limit);
75
+ return scored.map(({ name }) => name);
76
+ };
77
+ const formatFieldType = (field) => {
78
+ let label = field.typeName;
79
+ if (field.isList) label = `${label}[]`;
80
+ if (field.required) label = `${label}!`;
81
+ return label;
82
+ };
83
+ const collectNestedTypes = (fields, depth, visited) => {
84
+ const result = /* @__PURE__ */ new Map();
85
+ if (depth <= 0) return result;
86
+ for (const field of fields) {
87
+ const typeName = field.typeName;
88
+ if (PRIMITIVES.has(typeName)) continue;
89
+ if (visited.has(typeName)) continue;
90
+ const nestedFields = import_schema_help.inputTypeHelp[typeName];
91
+ if (!nestedFields) continue;
92
+ visited.add(typeName);
93
+ result.set(typeName, nestedFields);
94
+ const deeper = collectNestedTypes(nestedFields, depth - 1, visited);
95
+ for (const [k, v] of deeper) {
96
+ result.set(k, v);
97
+ }
98
+ }
99
+ return result;
100
+ };
101
+ const wrapText = (text, width) => {
102
+ const words = text.split(/\s+/).filter(Boolean);
103
+ if (words.length === 0) return [""];
104
+ const lines = [];
105
+ let line = words[0];
106
+ for (let i = 1; i < words.length; i++) {
107
+ const word = words[i];
108
+ if (line.length + 1 + word.length > width) {
109
+ lines.push(line);
110
+ line = word;
111
+ } else {
112
+ line += ` ${word}`;
113
+ }
114
+ }
115
+ lines.push(line);
116
+ return lines;
117
+ };
118
+ const formatFieldLine = (field, nameWidth, typeWidth, lineIndent, totalWidth = 108) => {
119
+ const name = field.name.padEnd(nameWidth);
120
+ const type = formatFieldType(field).padEnd(typeWidth);
121
+ const required = field.required ? "Required. " : "";
122
+ const desc = field.description ?? "";
123
+ const prefix = `${lineIndent}${name} ${type} `;
124
+ const indent = " ".repeat(prefix.length);
125
+ const descWidth = Math.max(20, totalWidth - prefix.length);
126
+ const normalizedDesc = `${required}${desc}`.split("\n").filter((line) => line.trim() !== "").join(" ");
127
+ const wrappedLines = wrapText(normalizedDesc, descWidth);
128
+ const lines = [`${prefix}${wrappedLines[0]}`];
129
+ for (let i = 1; i < wrappedLines.length; i++) {
130
+ lines.push(`${indent}${wrappedLines[i]}`);
131
+ }
132
+ return lines.join("\n");
133
+ };
134
+ const renderInputType = (typeName, fields, showAll) => {
135
+ const lines = [typeName, "", "Fields:"];
136
+ const nameWidth = Math.max(...fields.map((f) => f.name.length), 4);
137
+ const typeWidth = Math.max(...fields.map((f) => formatFieldType(f).length), 4);
138
+ for (const field of fields) {
139
+ lines.push(formatFieldLine(field, nameWidth, typeWidth, " "));
140
+ }
141
+ const visited = /* @__PURE__ */ new Set([typeName]);
142
+ const nested = collectNestedTypes(fields, 2, visited);
143
+ for (const [nestedName, nestedFields] of nested) {
144
+ lines.push("");
145
+ lines.push(`Type: ${nestedName}`);
146
+ const nestedNameWidth = Math.max(...nestedFields.map((f) => f.name.length), 4);
147
+ const nestedTypeWidth = Math.max(...nestedFields.map((f) => formatFieldType(f).length), 4);
148
+ for (const field of nestedFields) {
149
+ lines.push(formatFieldLine(field, nestedNameWidth, nestedTypeWidth, " "));
150
+ }
151
+ }
152
+ return lines.join("\n");
153
+ };
154
+ const renderEnumType = (typeName, values, showAll) => {
155
+ const lines = [typeName, ""];
156
+ const MAX_INLINE = 10;
157
+ const MAX_EXPANDED = 20;
158
+ if (!showAll && values.length > MAX_EXPANDED) {
159
+ const shown = values.slice(0, MAX_INLINE).map((v) => v.name);
160
+ const remaining = values.length - MAX_INLINE;
161
+ lines.push(`Values: ${shown.join(" | ")} | ... and ${remaining} more`);
162
+ lines.push("");
163
+ lines.push("Use --all to see all values.");
164
+ } else {
165
+ lines.push("Values:");
166
+ const nameWidth = Math.max(...values.map((v) => v.name.length), 4);
167
+ for (const value of values) {
168
+ const name = value.name.padEnd(nameWidth);
169
+ const desc = value.description ?? "";
170
+ const deprecated = value.deprecated ? value.deprecationReason ? `[Deprecated: ${value.deprecationReason}] ` : "[Deprecated] " : "";
171
+ lines.push(` ${name} ${deprecated}${desc}`);
172
+ }
173
+ }
174
+ return lines.join("\n");
175
+ };
176
+ const runTypes = async ({
177
+ verb,
178
+ argv
179
+ }) => {
180
+ if (verb === "help") {
181
+ printHelp();
182
+ return;
183
+ }
184
+ if (argv.includes("--help") || argv.includes("-h") || !verb) {
185
+ printHelp();
186
+ return;
187
+ }
188
+ const parsed = (0, import_node_util.parseArgs)({
189
+ args: argv,
190
+ allowPositionals: true,
191
+ options: {
192
+ all: { type: "boolean" },
193
+ help: { type: "boolean" },
194
+ h: { type: "boolean" }
195
+ }
196
+ });
197
+ const showAll = parsed.values.all ?? false;
198
+ const typeName = verb;
199
+ const inputFields = import_schema_help.inputTypeHelp[typeName];
200
+ if (inputFields) {
201
+ console.log(renderInputType(typeName, inputFields, showAll));
202
+ return;
203
+ }
204
+ const enumValues = import_schema_help.enumTypeHelp[typeName];
205
+ if (enumValues) {
206
+ console.log(renderEnumType(typeName, enumValues, showAll));
207
+ return;
208
+ }
209
+ const suggestions = findSuggestions(typeName);
210
+ const lines = [`Type "${typeName}" not found.`];
211
+ if (suggestions.length > 0) {
212
+ lines.push("");
213
+ lines.push("Did you mean?");
214
+ for (const suggestion of suggestions) {
215
+ lines.push(` ${suggestion}`);
216
+ }
217
+ }
218
+ throw new import_errors.CliError(lines.join("\n"), 2);
219
+ };
220
+ // Annotate the CommonJS export names for ESM import in node:
221
+ 0 && (module.exports = {
222
+ runTypes
223
+ });
224
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ import { type CommandContext } from '../router';
2
+ export declare const runUrlRedirects: ({ ctx, verb, argv, }: {
3
+ ctx: CommandContext;
4
+ verb: string;
5
+ argv: string[];
6
+ }) => Promise<void>;
@@ -0,0 +1,465 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var url_redirects_exports = {};
20
+ __export(url_redirects_exports, {
21
+ runUrlRedirects: () => runUrlRedirects
22
+ });
23
+ module.exports = __toCommonJS(url_redirects_exports);
24
+ var import_errors = require("../errors");
25
+ var import_gid = require("../gid");
26
+ var import_input = require("../input");
27
+ var import_output = require("../output");
28
+ var import_router = require("../router");
29
+ var import_select = require("../selection/select");
30
+ var import_userErrors = require("../userErrors");
31
+ var import_shared = require("./_shared");
32
+ const urlRedirectSummarySelection = {
33
+ id: true,
34
+ path: true,
35
+ target: true
36
+ };
37
+ const urlRedirectFullSelection = {
38
+ ...urlRedirectSummarySelection
39
+ };
40
+ const getUrlRedirectSelection = (view) => {
41
+ if (view === "ids") return { id: true };
42
+ if (view === "full") return urlRedirectFullSelection;
43
+ if (view === "raw") return {};
44
+ return urlRedirectSummarySelection;
45
+ };
46
+ const savedSearchSummarySelection = {
47
+ id: true,
48
+ name: true,
49
+ query: true
50
+ };
51
+ const getSavedSearchSelection = (view) => {
52
+ if (view === "ids") return { id: true };
53
+ if (view === "raw") return {};
54
+ return savedSearchSummarySelection;
55
+ };
56
+ const urlRedirectImportSummarySelection = {
57
+ id: true,
58
+ finished: true,
59
+ count: true,
60
+ createdCount: true,
61
+ updatedCount: true,
62
+ failedCount: true
63
+ };
64
+ const urlRedirectImportFullSelection = {
65
+ ...urlRedirectImportSummarySelection,
66
+ finishedAt: true,
67
+ previewRedirects: { path: true, target: true }
68
+ };
69
+ const getUrlRedirectImportSelection = (view) => {
70
+ if (view === "ids") return { id: true };
71
+ if (view === "full") return urlRedirectImportFullSelection;
72
+ if (view === "raw") return {};
73
+ return urlRedirectImportSummarySelection;
74
+ };
75
+ const runUrlRedirects = async ({
76
+ ctx,
77
+ verb,
78
+ argv
79
+ }) => {
80
+ if (argv.includes("--help") || argv.includes("-h")) {
81
+ console.log(
82
+ [
83
+ "Usage:",
84
+ " shop url-redirects <verb> [flags]",
85
+ "",
86
+ "Verbs:",
87
+ " create|get|list|count|saved-searches|update|delete",
88
+ " import-create|import-submit|import-get",
89
+ " bulk-delete-all|bulk-delete-ids|bulk-delete-saved-search|bulk-delete-search",
90
+ "",
91
+ "Common output flags:",
92
+ " --view summary|ids|full|raw",
93
+ " --select <path> (repeatable; dot paths; adds to base view selection)",
94
+ " --selection <graphql> (selection override; can be @file.gql)"
95
+ ].join("\n")
96
+ );
97
+ return;
98
+ }
99
+ if (verb === "count") {
100
+ const args = (0, import_router.parseStandardArgs)({
101
+ argv,
102
+ extraOptions: { limit: { type: "string" }, "saved-search-id": { type: "string" } }
103
+ });
104
+ const query = args.query;
105
+ const limitRaw = args.limit;
106
+ const savedSearchIdRaw = args["saved-search-id"];
107
+ const limit = limitRaw === void 0 || limitRaw === null || limitRaw === "" ? void 0 : Number(limitRaw);
108
+ if (limit !== void 0 && (!Number.isFinite(limit) || limit <= 0)) {
109
+ throw new import_errors.CliError("--limit must be a positive number", 2);
110
+ }
111
+ const savedSearchId = savedSearchIdRaw ? (0, import_gid.coerceGid)(String(savedSearchIdRaw), "SavedSearch") : void 0;
112
+ const result = await (0, import_router.runQuery)(ctx, {
113
+ urlRedirectsCount: {
114
+ __args: {
115
+ ...query ? { query } : {},
116
+ ...savedSearchId ? { savedSearchId } : {},
117
+ ...limit !== void 0 ? { limit: Math.floor(limit) } : {}
118
+ },
119
+ count: true,
120
+ precision: true
121
+ }
122
+ });
123
+ if (result === void 0) return;
124
+ if (ctx.quiet) return console.log(result.urlRedirectsCount?.count ?? "");
125
+ (0, import_output.printJson)(result.urlRedirectsCount, ctx.format !== "raw");
126
+ return;
127
+ }
128
+ if (verb === "saved-searches") {
129
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
130
+ const first = (0, import_shared.parseFirst)(args.first);
131
+ const after = args.after;
132
+ const reverse = args.reverse;
133
+ const nodeSelection = (0, import_select.resolveSelection)({
134
+ typeName: "SavedSearch",
135
+ view: ctx.view,
136
+ baseSelection: getSavedSearchSelection(ctx.view),
137
+ select: args.select,
138
+ selection: args.selection,
139
+ include: args.include,
140
+ ensureId: ctx.quiet
141
+ });
142
+ const result = await (0, import_router.runQuery)(ctx, {
143
+ urlRedirectSavedSearches: {
144
+ __args: { first, after, reverse },
145
+ pageInfo: { hasNextPage: true, endCursor: true },
146
+ nodes: nodeSelection
147
+ }
148
+ });
149
+ if (result === void 0) return;
150
+ (0, import_output.printConnection)({
151
+ connection: result.urlRedirectSavedSearches,
152
+ format: ctx.format,
153
+ quiet: ctx.quiet,
154
+ nextPageArgs: { base: "shop url-redirects saved-searches", first, reverse: reverse === true }
155
+ });
156
+ return;
157
+ }
158
+ if (verb === "import-create") {
159
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: { url: { type: "string" } } });
160
+ const url = args.url;
161
+ if (!url) throw new import_errors.CliError("Missing --url", 2);
162
+ const result = await (0, import_router.runMutation)(ctx, {
163
+ urlRedirectImportCreate: {
164
+ __args: { url },
165
+ urlRedirectImport: {
166
+ id: true,
167
+ finished: true,
168
+ count: true,
169
+ createdCount: true,
170
+ updatedCount: true,
171
+ failedCount: true,
172
+ finishedAt: true,
173
+ previewRedirects: { path: true, target: true }
174
+ },
175
+ userErrors: { code: true, field: true, message: true }
176
+ }
177
+ });
178
+ if (result === void 0) return;
179
+ (0, import_userErrors.maybeFailOnUserErrors)({ payload: result.urlRedirectImportCreate, failOnUserErrors: ctx.failOnUserErrors });
180
+ if (ctx.quiet) return console.log(result.urlRedirectImportCreate?.urlRedirectImport?.id ?? "");
181
+ (0, import_output.printJson)(result.urlRedirectImportCreate, ctx.format !== "raw");
182
+ return;
183
+ }
184
+ if (verb === "import-submit") {
185
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
186
+ const id = (0, import_shared.requireId)(args.id, "UrlRedirectImport");
187
+ const result = await (0, import_router.runMutation)(ctx, {
188
+ urlRedirectImportSubmit: {
189
+ __args: { id },
190
+ job: { id: true, done: true },
191
+ userErrors: { code: true, field: true, message: true }
192
+ }
193
+ });
194
+ if (result === void 0) return;
195
+ (0, import_userErrors.maybeFailOnUserErrors)({ payload: result.urlRedirectImportSubmit, failOnUserErrors: ctx.failOnUserErrors });
196
+ if (ctx.quiet) return console.log(id ?? "");
197
+ const selection = (0, import_select.resolveSelection)({
198
+ typeName: "UrlRedirectImport",
199
+ view: ctx.view,
200
+ baseSelection: getUrlRedirectImportSelection(ctx.view),
201
+ select: args.select,
202
+ selection: args.selection,
203
+ include: args.include,
204
+ ensureId: true
205
+ });
206
+ const importResult = await (0, import_router.runQuery)(ctx, { urlRedirectImport: { __args: { id }, ...selection } });
207
+ if (importResult === void 0) return;
208
+ (0, import_output.printJson)(
209
+ {
210
+ urlRedirectImport: importResult.urlRedirectImport ?? null,
211
+ job: result.urlRedirectImportSubmit?.job ?? null,
212
+ userErrors: result.urlRedirectImportSubmit?.userErrors ?? []
213
+ },
214
+ ctx.format !== "raw"
215
+ );
216
+ return;
217
+ }
218
+ if (verb === "import-get") {
219
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
220
+ const id = (0, import_shared.requireId)(args.id, "UrlRedirectImport");
221
+ const selection = (0, import_select.resolveSelection)({
222
+ typeName: "UrlRedirectImport",
223
+ view: ctx.view,
224
+ baseSelection: getUrlRedirectImportSelection(ctx.view),
225
+ select: args.select,
226
+ selection: args.selection,
227
+ include: args.include,
228
+ ensureId: ctx.quiet
229
+ });
230
+ const result = await (0, import_router.runQuery)(ctx, { urlRedirectImport: { __args: { id }, ...selection } });
231
+ if (result === void 0) return;
232
+ (0, import_output.printNode)({ node: result.urlRedirectImport, format: ctx.format, quiet: ctx.quiet });
233
+ return;
234
+ }
235
+ if (verb === "bulk-delete-all" || verb === "bulk-delete-ids" || verb === "bulk-delete-saved-search" || verb === "bulk-delete-search") {
236
+ const args = (0, import_router.parseStandardArgs)({
237
+ argv,
238
+ extraOptions: {
239
+ "saved-search-id": { type: "string" },
240
+ search: { type: "string" }
241
+ }
242
+ });
243
+ if (!args.yes) throw new import_errors.CliError("Refusing to delete without --yes", 2);
244
+ if (verb === "bulk-delete-all") {
245
+ const countResult2 = await (0, import_router.runQuery)(ctx, {
246
+ urlRedirectsCount: { count: true, precision: true }
247
+ });
248
+ const result2 = await (0, import_router.runMutation)(ctx, {
249
+ urlRedirectBulkDeleteAll: {
250
+ job: { id: true, done: true },
251
+ userErrors: { field: true, message: true }
252
+ }
253
+ });
254
+ if (result2 === void 0) return;
255
+ (0, import_userErrors.maybeFailOnUserErrors)({ payload: result2.urlRedirectBulkDeleteAll, failOnUserErrors: ctx.failOnUserErrors });
256
+ if (ctx.quiet) return console.log(result2.urlRedirectBulkDeleteAll?.job?.id ?? "");
257
+ (0, import_output.printJson)(
258
+ {
259
+ job: result2.urlRedirectBulkDeleteAll?.job ?? null,
260
+ count: countResult2?.urlRedirectsCount ?? null,
261
+ userErrors: result2.urlRedirectBulkDeleteAll?.userErrors ?? []
262
+ },
263
+ ctx.format !== "raw"
264
+ );
265
+ return;
266
+ }
267
+ if (verb === "bulk-delete-ids") {
268
+ const ids = (0, import_shared.parseIds)(args.ids, "UrlRedirect");
269
+ const result2 = await (0, import_router.runMutation)(ctx, {
270
+ urlRedirectBulkDeleteByIds: {
271
+ __args: { ids },
272
+ job: { id: true, done: true },
273
+ userErrors: { code: true, field: true, message: true }
274
+ }
275
+ });
276
+ if (result2 === void 0) return;
277
+ (0, import_userErrors.maybeFailOnUserErrors)({ payload: result2.urlRedirectBulkDeleteByIds, failOnUserErrors: ctx.failOnUserErrors });
278
+ if (ctx.quiet) return console.log(result2.urlRedirectBulkDeleteByIds?.job?.id ?? "");
279
+ (0, import_output.printJson)(
280
+ {
281
+ job: result2.urlRedirectBulkDeleteByIds?.job ?? null,
282
+ requestedIds: ids,
283
+ requestedCount: ids.length,
284
+ userErrors: result2.urlRedirectBulkDeleteByIds?.userErrors ?? []
285
+ },
286
+ ctx.format !== "raw"
287
+ );
288
+ return;
289
+ }
290
+ if (verb === "bulk-delete-saved-search") {
291
+ const raw = args["saved-search-id"];
292
+ if (!raw) throw new import_errors.CliError("Missing --saved-search-id", 2);
293
+ const savedSearchId = (0, import_gid.coerceGid)(raw, "SavedSearch");
294
+ const countResult2 = await (0, import_router.runQuery)(ctx, {
295
+ urlRedirectsCount: { __args: { savedSearchId }, count: true, precision: true }
296
+ });
297
+ const result2 = await (0, import_router.runMutation)(ctx, {
298
+ urlRedirectBulkDeleteBySavedSearch: {
299
+ __args: { savedSearchId },
300
+ job: { id: true, done: true },
301
+ userErrors: { code: true, field: true, message: true }
302
+ }
303
+ });
304
+ if (result2 === void 0) return;
305
+ (0, import_userErrors.maybeFailOnUserErrors)({
306
+ payload: result2.urlRedirectBulkDeleteBySavedSearch,
307
+ failOnUserErrors: ctx.failOnUserErrors
308
+ });
309
+ if (ctx.quiet) return console.log(result2.urlRedirectBulkDeleteBySavedSearch?.job?.id ?? "");
310
+ (0, import_output.printJson)(
311
+ {
312
+ job: result2.urlRedirectBulkDeleteBySavedSearch?.job ?? null,
313
+ count: countResult2?.urlRedirectsCount ?? null,
314
+ savedSearchId,
315
+ userErrors: result2.urlRedirectBulkDeleteBySavedSearch?.userErrors ?? []
316
+ },
317
+ ctx.format !== "raw"
318
+ );
319
+ return;
320
+ }
321
+ const search = args.search;
322
+ if (!search) throw new import_errors.CliError("Missing --search", 2);
323
+ const countResult = await (0, import_router.runQuery)(ctx, {
324
+ urlRedirectsCount: { __args: { query: search }, count: true, precision: true }
325
+ });
326
+ const result = await (0, import_router.runMutation)(ctx, {
327
+ urlRedirectBulkDeleteBySearch: {
328
+ __args: { search },
329
+ job: { id: true, done: true },
330
+ userErrors: { code: true, field: true, message: true }
331
+ }
332
+ });
333
+ if (result === void 0) return;
334
+ (0, import_userErrors.maybeFailOnUserErrors)({
335
+ payload: result.urlRedirectBulkDeleteBySearch,
336
+ failOnUserErrors: ctx.failOnUserErrors
337
+ });
338
+ if (ctx.quiet) return console.log(result.urlRedirectBulkDeleteBySearch?.job?.id ?? "");
339
+ (0, import_output.printJson)(
340
+ {
341
+ job: result.urlRedirectBulkDeleteBySearch?.job ?? null,
342
+ count: countResult?.urlRedirectsCount ?? null,
343
+ search,
344
+ userErrors: result.urlRedirectBulkDeleteBySearch?.userErrors ?? []
345
+ },
346
+ ctx.format !== "raw"
347
+ );
348
+ return;
349
+ }
350
+ if (verb === "get") {
351
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
352
+ const id = (0, import_shared.requireId)(args.id, "UrlRedirect");
353
+ const selection = (0, import_select.resolveSelection)({
354
+ resource: "url-redirects",
355
+ view: ctx.view,
356
+ baseSelection: getUrlRedirectSelection(ctx.view),
357
+ select: args.select,
358
+ selection: args.selection,
359
+ include: args.include,
360
+ ensureId: ctx.quiet
361
+ });
362
+ const result = await (0, import_router.runQuery)(ctx, { urlRedirect: { __args: { id }, ...selection } });
363
+ if (result === void 0) return;
364
+ (0, import_output.printNode)({ node: result.urlRedirect, format: ctx.format, quiet: ctx.quiet });
365
+ return;
366
+ }
367
+ if (verb === "list") {
368
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
369
+ const first = (0, import_shared.parseFirst)(args.first);
370
+ const after = args.after;
371
+ const query = args.query;
372
+ const reverse = args.reverse;
373
+ const sortKey = args.sort;
374
+ const nodeSelection = (0, import_select.resolveSelection)({
375
+ resource: "url-redirects",
376
+ view: ctx.view,
377
+ baseSelection: getUrlRedirectSelection(ctx.view),
378
+ select: args.select,
379
+ selection: args.selection,
380
+ include: args.include,
381
+ ensureId: ctx.quiet
382
+ });
383
+ const result = await (0, import_router.runQuery)(ctx, {
384
+ urlRedirects: {
385
+ __args: { first, after, query, reverse, sortKey },
386
+ pageInfo: { hasNextPage: true, endCursor: true },
387
+ nodes: nodeSelection
388
+ }
389
+ });
390
+ if (result === void 0) return;
391
+ (0, import_output.printConnection)({
392
+ connection: result.urlRedirects,
393
+ format: ctx.format,
394
+ quiet: ctx.quiet,
395
+ nextPageArgs: (0, import_shared.buildListNextPageArgs)("url-redirects", { first, query, sort: sortKey, reverse })
396
+ });
397
+ return;
398
+ }
399
+ if (verb === "create") {
400
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
401
+ const built = (0, import_input.buildInput)({
402
+ inputArg: args.input,
403
+ setArgs: args.set,
404
+ setJsonArgs: args["set-json"]
405
+ });
406
+ if (!built.used) throw new import_errors.CliError("Missing --input or --set/--set-json", 2);
407
+ const result = await (0, import_router.runMutation)(ctx, {
408
+ urlRedirectCreate: {
409
+ __args: { urlRedirect: built.input },
410
+ urlRedirect: urlRedirectSummarySelection,
411
+ userErrors: { field: true, message: true }
412
+ }
413
+ });
414
+ if (result === void 0) return;
415
+ (0, import_userErrors.maybeFailOnUserErrors)({ payload: result.urlRedirectCreate, failOnUserErrors: ctx.failOnUserErrors });
416
+ if (ctx.quiet) return console.log(result.urlRedirectCreate?.urlRedirect?.id ?? "");
417
+ (0, import_output.printJson)(result.urlRedirectCreate, ctx.format !== "raw");
418
+ return;
419
+ }
420
+ if (verb === "update") {
421
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
422
+ const id = (0, import_shared.requireId)(args.id, "UrlRedirect");
423
+ const built = (0, import_input.buildInput)({
424
+ inputArg: args.input,
425
+ setArgs: args.set,
426
+ setJsonArgs: args["set-json"]
427
+ });
428
+ if (!built.used) throw new import_errors.CliError("Missing --input or --set/--set-json", 2);
429
+ const result = await (0, import_router.runMutation)(ctx, {
430
+ urlRedirectUpdate: {
431
+ __args: { id, urlRedirect: built.input },
432
+ urlRedirect: urlRedirectSummarySelection,
433
+ userErrors: { field: true, message: true }
434
+ }
435
+ });
436
+ if (result === void 0) return;
437
+ (0, import_userErrors.maybeFailOnUserErrors)({ payload: result.urlRedirectUpdate, failOnUserErrors: ctx.failOnUserErrors });
438
+ if (ctx.quiet) return console.log(result.urlRedirectUpdate?.urlRedirect?.id ?? "");
439
+ (0, import_output.printJson)(result.urlRedirectUpdate, ctx.format !== "raw");
440
+ return;
441
+ }
442
+ if (verb === "delete") {
443
+ const args = (0, import_router.parseStandardArgs)({ argv, extraOptions: {} });
444
+ const id = (0, import_shared.requireId)(args.id, "UrlRedirect");
445
+ if (!args.yes) throw new import_errors.CliError("Refusing to delete without --yes", 2);
446
+ const result = await (0, import_router.runMutation)(ctx, {
447
+ urlRedirectDelete: {
448
+ __args: { id },
449
+ deletedUrlRedirectId: true,
450
+ userErrors: { field: true, message: true }
451
+ }
452
+ });
453
+ if (result === void 0) return;
454
+ (0, import_userErrors.maybeFailOnUserErrors)({ payload: result.urlRedirectDelete, failOnUserErrors: ctx.failOnUserErrors });
455
+ if (ctx.quiet) return console.log(result.urlRedirectDelete?.deletedUrlRedirectId ?? "");
456
+ (0, import_output.printJson)(result.urlRedirectDelete, ctx.format !== "raw");
457
+ return;
458
+ }
459
+ throw new import_errors.CliError(`Unknown verb for url-redirects: ${verb}`, 2);
460
+ };
461
+ // Annotate the CommonJS export names for ESM import in node:
462
+ 0 && (module.exports = {
463
+ runUrlRedirects
464
+ });
465
+ //# sourceMappingURL=url-redirects.js.map