@rankwrangler/cli 0.14.0 → 0.16.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.
package/dist/CHANGELOG.md CHANGED
@@ -2,6 +2,33 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## v0.16.0 - 2026-11-02
6
+
7
+ ### Added
8
+
9
+ - `product.get` accepts `include: ['variations']` (public API, HTTP client, and MCP
10
+ `rankwrangler_product` get). On request it resolves the Amazon variation family from Catalog
11
+ Items, returns ordered children with theme attributes, and stores the snapshot for 24 hours.
12
+ MerchBase BidBeacon and related agents use this to pick an advertisable child ASIN after the
13
+ Sep 2026 Merch re-parenting. Slow or unfinished enrichment settles as `variations: null` inside
14
+ the shared 20-second enrichment budget; `getMany`, search, and history never trigger it.
15
+
16
+ ## v0.15.0 - 2026-11-01
17
+
18
+ ### Changed
19
+
20
+ - Breaking: a Product's `isMerchListing` is always `true` or `false`. The `unknown` search filter is
21
+ gone from the API, MCP, CLI (`--merch true|false|all`), and Explore.
22
+ - Merch detection reads the two stamps Merch on Demand puts on every listing, its template bullets
23
+ and its package dimensions and weight, and rejects any listing with a UPC, EAN, or GTIN. A variation
24
+ parent without either stamp takes its first variant's verdict.
25
+ - The latest classification wins, so a listing that stops looking like Merch is demoted.
26
+ `merch:reclassify` re-checks every active US Product and drops `--demote` and `--include-merch`.
27
+
28
+ ### Fixed
29
+
30
+ - Third-party apparel whose part numbers resembled Merch design codes is no longer flagged as Merch.
31
+
5
32
  ## v0.14.0 - 2026-10-29
6
33
 
7
34
  ### Changed
@@ -1,7 +1,7 @@
1
1
  import { requireMarketplaceId } from './cli-options.js';
2
2
  export const runProductSearch = async (args, client, config, options, fail) => {
3
3
  const term = args.join(' ').trim();
4
- const merch = choice(options.merch, ['true', 'false', 'unknown', 'all'], 'merch', fail);
4
+ const merch = choice(options.merch, ['true', 'false', 'all'], 'merch', fail);
5
5
  return await client.product.search.query({
6
6
  ...(term ? { term } : {}),
7
7
  marketplaceIds: [requireMarketplaceId(options, config)],
@@ -21,11 +21,7 @@ export const runProductSearch = async (args, client, config, options, fail) => {
21
21
  };
22
22
  }),
23
23
  includeOfficialBrands: options.includeOfficialBrands,
24
- isMerchListing: merch === undefined
25
- ? undefined
26
- : merch === 'unknown' || merch === 'all'
27
- ? merch
28
- : merch === 'true',
24
+ isMerchListing: merch === undefined || merch === 'all' ? merch : merch === 'true',
29
25
  amazonListingStatus: choice(options.listingStatus, ['active', 'deleted', 'all'], 'listingStatus', fail),
30
26
  salesRank: range(options.minBsr, options.maxBsr, 'Bsr', fail),
31
27
  price: range(options.minPrice, options.maxPrice, 'Price', fail),
package/dist/usage.js CHANGED
@@ -59,7 +59,7 @@ export const printUsage = (paths) => {
59
59
  ' --excludeWord <word> Repeat for excluded words',
60
60
  ' --categoryId <N> Repeat for category filters',
61
61
  ' --facet <facet=name> Repeat for facet filters',
62
- ' --merch <value> true,false,unknown,all (default: true)',
62
+ ' --merch <value> true,false,all (default: true)',
63
63
  ' --listingStatus <value> active,deleted,all (default: active)',
64
64
  ' --stage <value> Keyword search: graduated,trial,dropped,untracked,all (default: graduated)',
65
65
  ' --freshness <value> Keyword search: live,needsSync,syncing,all (default: all)',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rankwrangler/cli",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "Official RankWrangler command line interface",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,7 +29,7 @@
29
29
  "provenance": true
30
30
  },
31
31
  "dependencies": {
32
- "@rankwrangler/http-client": "^0.14.0",
32
+ "@rankwrangler/http-client": "^0.16.0",
33
33
  "keytar": "7.9.0"
34
34
  },
35
35
  "devDependencies": {