@rackbops/docket-types 0.15.0 → 0.17.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.
Files changed (66) hide show
  1. package/README.md +12 -7
  2. package/dist/extract.d.ts +33 -3
  3. package/dist/extract.d.ts.map +1 -1
  4. package/dist/extract.js +118 -9
  5. package/dist/extract.js.map +1 -1
  6. package/dist/index.d.ts +9 -7
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +9 -7
  9. package/dist/index.js.map +1 -1
  10. package/dist/money.d.ts +12 -1
  11. package/dist/money.d.ts.map +1 -1
  12. package/dist/money.js +22 -2
  13. package/dist/money.js.map +1 -1
  14. package/dist/price.d.ts +9 -2
  15. package/dist/price.d.ts.map +1 -1
  16. package/dist/price.js +23 -5
  17. package/dist/price.js.map +1 -1
  18. package/dist/reminder.d.ts +4 -1
  19. package/dist/reminder.d.ts.map +1 -1
  20. package/dist/reminder.js +7 -3
  21. package/dist/reminder.js.map +1 -1
  22. package/dist/renewal.d.ts +2 -1
  23. package/dist/renewal.d.ts.map +1 -1
  24. package/dist/renewal.js.map +1 -1
  25. package/dist/research-answer.d.ts.map +1 -1
  26. package/dist/research-answer.js +12 -3
  27. package/dist/research-answer.js.map +1 -1
  28. package/dist/research-sources.d.ts.map +1 -1
  29. package/dist/research-sources.js +6 -3
  30. package/dist/research-sources.js.map +1 -1
  31. package/dist/research.d.ts +1 -4
  32. package/dist/research.d.ts.map +1 -1
  33. package/dist/research.js +5 -19
  34. package/dist/research.js.map +1 -1
  35. package/dist/retry.d.ts +26 -0
  36. package/dist/retry.d.ts.map +1 -0
  37. package/dist/retry.js +30 -0
  38. package/dist/retry.js.map +1 -0
  39. package/dist/scout.d.ts +5 -1
  40. package/dist/scout.d.ts.map +1 -1
  41. package/dist/scout.js +13 -21
  42. package/dist/scout.js.map +1 -1
  43. package/dist/want-ebay.d.ts +3 -3
  44. package/dist/want-ebay.d.ts.map +1 -1
  45. package/dist/want-ebay.js +8 -17
  46. package/dist/want-ebay.js.map +1 -1
  47. package/dist/want-shopify.d.ts +5 -2
  48. package/dist/want-shopify.d.ts.map +1 -1
  49. package/dist/want-shopify.js +9 -21
  50. package/dist/want-shopify.js.map +1 -1
  51. package/dist/want-sources.d.ts +23 -4
  52. package/dist/want-sources.d.ts.map +1 -1
  53. package/dist/want-sources.js +38 -17
  54. package/dist/want-sources.js.map +1 -1
  55. package/dist/want-text.d.ts +19 -0
  56. package/dist/want-text.d.ts.map +1 -0
  57. package/dist/want-text.js +41 -0
  58. package/dist/want-text.js.map +1 -0
  59. package/dist/wantjudge.d.ts.map +1 -1
  60. package/dist/wantjudge.js +26 -34
  61. package/dist/wantjudge.js.map +1 -1
  62. package/dist/wantlist.d.ts +31 -1
  63. package/dist/wantlist.d.ts.map +1 -1
  64. package/dist/wantlist.js +93 -26
  65. package/dist/wantlist.js.map +1 -1
  66. package/package.json +2 -2
package/dist/scout.d.ts CHANGED
@@ -105,7 +105,11 @@ export interface ScoutItem {
105
105
  price?: string;
106
106
  url: string;
107
107
  }
108
- /** The key an item is remembered by: a digest of its URL without the fragment. */
108
+ /**
109
+ * The key an item is remembered by: a digest of its URL without the fragment or the per-view
110
+ * parameters the want sources drop (`utm_*`, the click ids; docket#64), so one item linked two
111
+ * ways is one item. A URL with none of them keys as it always did.
112
+ */
109
113
  export declare function itemKey(url: string): string;
110
114
  /** The state as stored, or a fresh one; anything unreadable in it is dropped. */
111
115
  export declare function scoutState(value: unknown): ScoutState;
@@ -1 +1 @@
1
- {"version":3,"file":"scout.d.ts","sourceRoot":"","sources":["../src/scout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scout.d.ts","sourceRoot":"","sources":["../src/scout.ts"],"names":[],"mappings":"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"}
package/dist/scout.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { createHash } from "node:crypto";
2
- import { clean, DEFAULT_ALLOWED_TOOLS, DEFAULT_DISALLOWED_TOOLS, defineTaskType, } from "@rackbops/docket-core";
3
- import { AUTH_RETRY_MS, MAX_TRIES } from "./research.js";
2
+ import { clean, DEFAULT_ALLOWED_TOOLS, DEFAULT_DISALLOWED_TOOLS, defineTaskType, FOLLOW_UP_PREFIX, } from "@rackbops/docket-core";
4
3
  import { fitMessage, safeUrl } from "./research-answer.js";
4
+ import { retryOutcome } from "./retry.js";
5
+ import { withoutPerView } from "./want-sources.js";
5
6
  /**
6
7
  * Category 1, the interest scout (plan 1.2 row 1; E9, rackbops-bot-plugins#83): a recurring model
7
8
  * run that looks on the web for things a person would find interesting, through a gift lens, and
@@ -83,10 +84,13 @@ export const SCOUT_SCHEMA = {
83
84
  function isObj(v) {
84
85
  return typeof v === "object" && v !== null && !Array.isArray(v);
85
86
  }
86
- /** The key an item is remembered by: a digest of its URL without the fragment. */
87
+ /**
88
+ * The key an item is remembered by: a digest of its URL without the fragment or the per-view
89
+ * parameters the want sources drop (`utm_*`, the click ids; docket#64), so one item linked two
90
+ * ways is one item. A URL with none of them keys as it always did.
91
+ */
87
92
  export function itemKey(url) {
88
- const u = new URL(url);
89
- u.hash = "";
93
+ const u = withoutPerView(new URL(url));
90
94
  return createHash("sha256").update(u.toString()).digest("hex").slice(0, 32);
91
95
  }
92
96
  /** The state as stored, or a fresh one; anything unreadable in it is dropped. */
@@ -195,13 +199,6 @@ export function renderScout(title, items, shortfall, repeats) {
195
199
  lines.push("", `Fewer than ${MIN_ITEMS}: ${shortfall}`);
196
200
  return fitMessage(lines);
197
201
  }
198
- const RETRIED = new Set([
199
- "schema_miss",
200
- "malformed",
201
- "timeout",
202
- "error",
203
- "auth_failed",
204
- ]);
205
202
  const SAID = {
206
203
  auth_failed: "the runner could not sign in",
207
204
  turn_cap: "it needed more steps than one run is allowed",
@@ -214,14 +211,9 @@ const SAID = {
214
211
  function failed(ctx, state, kind, detail) {
215
212
  const failures = state.failures + 1;
216
213
  const summary = clean(`scout ${kind} (try ${failures}): ${detail}`, 300, true);
217
- if (RETRIED.has(kind) && failures < MAX_TRIES) {
218
- const wait = kind === "auth_failed" ? AUTH_RETRY_MS : 0;
219
- return {
220
- state: { ...state, failures },
221
- followUp: wait > 0 ? { at: new Date(ctx.now.getTime() + wait).toISOString() } : {},
222
- summary,
223
- };
224
- }
214
+ const retry = retryOutcome(kind, failures, ctx.now);
215
+ if (retry)
216
+ return { state: { ...state, failures }, followUp: retry.followUp, summary };
225
217
  const narrower = kind === "turn_cap" || kind === "budget_cap" ? " Fewer or narrower interests may help." : "";
226
218
  return {
227
219
  // The next scheduled run starts with a clean count.
@@ -302,7 +294,7 @@ export const scout = defineTaskType({
302
294
  async finish(ctx, result) {
303
295
  const stored = scoutState(ctx.state);
304
296
  // Only a retry (a follow-up) carries the count on: a scheduled run starts its own.
305
- const state = ctx.occurrence.dedupeKey.startsWith("followup:")
297
+ const state = ctx.occurrence.dedupeKey.startsWith(FOLLOW_UP_PREFIX)
306
298
  ? stored
307
299
  : { ...stored, failures: 0 };
308
300
  if (result.kind !== "success")
package/dist/scout.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scout.js","sourceRoot":"","sources":["../src/scout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scout.js","sourceRoot":"","sources":["../src/scout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACL,KAAK,EACL,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EAGd,gBAAgB,GAKjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAU,CAAA;AAGlF,4HAA4H;AAC5H,MAAM,CAAC,MAAM,SAAS,GAAmC;IACvD,OAAO,EACL,0FAA0F;IAC5F,QAAQ,EAAE,oFAAoF;IAC9F,WAAW,EAAE,sCAAsC;IACnD,SAAS,EAAE,8DAA8D;CAC1E,CAAA;AAyBD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAClC,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;AAC5B,kDAAkD;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAA;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAA;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAA;AAE1B,2EAA2E;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAA;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAA;AAEvC,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC5B,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAC9B,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAM,eAAe,GAAG,GAAG,CAAA;AAE3B,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACxB;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC;aAC9C;YACD,QAAQ,EAAE,SAAS;SACpB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sDAAsD;SACpE;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACX,CAAA;AAUV,SAAS,KAAK,CAAC,CAAU;IACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACtC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC7E,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;IACpD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;SAC7F,KAAK,CAAC,CAAC,SAAS,CAAC,CAAA;IACpB,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AAC5B,CAAC;AAED,yFAAyF;AACzF,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;IAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAC7E,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAmB;IACxC,OAAQ,MAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACtF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAmB,EAAE,KAAiB;IAC7D,MAAM,GAAG,GACP,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QACxD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC;QACxC,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAChG,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAA;IACxD,MAAM,MAAM,GAAG;QACb,oGACE,GAAG,CAAC,CAAC,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC,CAAC,YACtC,mBAAmB,SAAS,gBAAgB,SAAS,0DAA0D;YAC7G,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,6EAA6E;YAC5G,WAAW,SAAS,iFAAiF;QACvG,EAAE;QACF,cAAc,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC/C,SAAS,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG;QACrC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,wFAAwF,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3H,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,EAAE;QACF,6GAA6G;YAC3G,+GAA+G;YAC/G,sFAAsF;KACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,OAAO;QACL,MAAM;QACN,UAAU,EAAE,YAAkD;QAC9D,YAAY,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACxC,eAAe,EAAE,CAAC,GAAG,wBAAwB,CAAC;QAC9C,QAAQ,EAAE,eAAe;QACzB,YAAY,EAAE,oBAAoB;QAClC,SAAS,EAAE,gBAAgB;KAC5B,CAAA;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7D,MAAM,KAAK,GAAgB,EAAE,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,SAAQ;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACxC,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3F,KAAK,CAAC,IAAI,CAAC;YACT,KAAK;YACL,QAAQ,EACN,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACxF,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5E,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG;SACJ,CAAC,CAAA;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,MAAK;IACvC,CAAC;IACD,MAAM,SAAS,GACb,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1F,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAC7B,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,KAA2B,EAC3B,SAAiB,EACjB,OAAe;IAEf,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACpB,KAAK,CAAC,IAAI,CACR,OAAO,GAAG,CAAC;YACT,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,wBAAwB,CAC7B,CAAA;;QACE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;IAC5E,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChF,IAAI,IAAI,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACtF,wDAAwD;QACxD,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,SAAS,KAAK,SAAS,EAAE,CAAC,CAAA;IACzD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,IAAI,GAAiE;IACzE,WAAW,EAAE,8BAA8B;IAC3C,QAAQ,EAAE,8CAA8C;IACxD,UAAU,EAAE,sCAAsC;IAClD,WAAW,EAAE,yCAAyC;IACtD,SAAS,EAAE,yCAAyC;IACpD,OAAO,EAAE,kBAAkB;IAC3B,KAAK,EAAE,gBAAgB;CACxB,CAAA;AAED,SAAS,MAAM,CACb,GAA4B,EAC5B,KAAiB,EACjB,IAA+B,EAC/B,MAAc;IAEd,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,QAAQ,MAAM,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IACnD,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;IACtF,MAAM,QAAQ,GACZ,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9F,OAAO;QACL,oDAAoD;QACpD,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;QAChC,MAAM,EAAE;YACN,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,uCAAuC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,kCAAkC,QAAQ,EAAE;SACjK;QACD,OAAO;KACR,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAA4B,EAAE,KAAiB,EAAE,MAAe;IAChF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,0CAA0C,CAAC,CAAA;IAC/F,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,MAAM,KAAK,GAAuC,EAAE,CAAA;IACpD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,CAAA;YACT,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IAC3B,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAc,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC;QAC3E,MAAM,EAAE,IAAI,CAAC,GAAG;QAChB,GAAG;QACH,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;KACtB,CAAC,CAAC,CAAA;IACH,OAAO;QACL,KAAK,EAAE;YACL,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CACzF,CAAC,SAAS,CACX;YACD,QAAQ,EAAE,CAAC;SACZ;QACD,MAAM,EAAE;YACN,IAAI,EAAE,WAAW,CACf,GAAG,CAAC,IAAI,CAAC,KAAK,EACd,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACxB,MAAM,CAAC,SAAS,EAChB,OAAO,CACR;SACF;QACD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,eAAe,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;KAClK,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAc;IAC/C,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,yCAAyC;gBACtD,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,4DAA4D;gBACzE,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,mCAAmC;gBAChD,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,QAAQ;aACf;YACD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;SACtF;KACF;IACD,KAAK,CAAC,OAAO,CAAC,GAA4B;QACxC,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAA4B,EAAE,MAAiB;QAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACpC,mFAAmF;QACnF,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC;YACjE,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;QAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACpF,OAAO,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACtD,CAAC;CACF,CAAC,CAAA"}
@@ -43,9 +43,9 @@ export interface EbaySearch {
43
43
  /**
44
44
  * The request for a search: the words as sent (cut at a word, like Shopify's), newest first, at
45
45
  * most `EBAY_LIMIT`, and at or under the top price. eBay US prices in USD, so the price filter is
46
- * sent only for a watch in USD (or naming no currency); a watch in another currency gets no filter,
47
- * and the type's own limits drop what is not in its currency. The filter is in whole units with
48
- * decimals. Pure.
46
+ * sent only for a watch in USD (or naming no valid currency, `currencyCode`); a watch in another
47
+ * currency gets no filter here, and the want-list type never searches for one (`pollWant` answers
48
+ * it with a miss the owner hears, docket#41). The filter is in whole units with decimals. Pure.
49
49
  */
50
50
  export declare function ebayRequest(s: EbaySearch): EbayRequest;
51
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"want-ebay.d.ts","sourceRoot":"","sources":["../src/want-ebay.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,OAAO,EAEZ,KAAK,MAAM,EAGZ,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,gBAAgB,uCAAuC,CAAA;AACpE,eAAO,MAAM,gBAAgB,YAAY,CAAA;AACzC,eAAO,MAAM,aAAa,QAAQ,CAAA;AAClC,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAK1C,uHAAuH;AACvH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,gBAAgB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,WAAW,EAAE,OAAO,gBAAgB,CAAA;CACrC;AAED,sJAAsJ;AACtJ,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAE7F,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAkBtD;AAyCD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAsCvE;AAED,oIAAoI;AACpI,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAuBrD"}
1
+ {"version":3,"file":"want-ebay.d.ts","sourceRoot":"","sources":["../src/want-ebay.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,OAAO,EAGZ,KAAK,MAAM,EAGZ,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,gBAAgB,uCAAuC,CAAA;AACpE,eAAO,MAAM,gBAAgB,YAAY,CAAA;AACzC,eAAO,MAAM,aAAa,QAAQ,CAAA;AAClC,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAE1C,uHAAuH;AACvH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,gBAAgB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,WAAW,EAAE,OAAO,gBAAgB,CAAA;CACrC;AAED,sJAAsJ;AACtJ,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAE7F,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAiBtD;AAsCD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAsCvE;AAED,oIAAoI;AACpI,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAoBrD"}
package/dist/want-ebay.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { clean } from "@rackbops/docket-core";
2
+ import { currencyCode, minorUnits } from "./money.js";
2
3
  import { safeUrl } from "./research-answer.js";
3
- import { matchesWords, minorUnits, searchWords, shopifyQuery } from "./want-shopify.js";
4
- import { isEbayHost, MAX_LISTINGS, SourceMiss, SourceUnavailableError, } from "./want-sources.js";
4
+ import { matchesWords, searchWords, shopifyQuery } from "./want-shopify.js";
5
+ import { CONDITION_CHARS, checkSearchStatus, isEbayHost, isObj, MAX_LISTINGS, SELLER_CHARS, SourceMiss, TITLE_CHARS, } from "./want-sources.js";
5
6
  /**
6
7
  * The eBay source (Rod, 2026-10-20, "Build it" on the eBay Browse API card): listings from eBay's
7
8
  * own Browse API, `GET /buy/browse/v1/item_summary/search` (developer.ebay.com, read 2026-10-20),
@@ -27,19 +28,15 @@ export const EBAY_MARKETPLACE = "EBAY_US";
27
28
  export const EBAY_CURRENCY = "USD";
28
29
  export const EBAY_LIMIT = 50;
29
30
  export const EBAY_ATTRIBUTION = "via eBay";
30
- const TITLE_CHARS = 150;
31
- const CONDITION_CHARS = 40;
32
- const SELLER_CHARS = 80;
33
31
  /**
34
32
  * The request for a search: the words as sent (cut at a word, like Shopify's), newest first, at
35
33
  * most `EBAY_LIMIT`, and at or under the top price. eBay US prices in USD, so the price filter is
36
- * sent only for a watch in USD (or naming no currency); a watch in another currency gets no filter,
37
- * and the type's own limits drop what is not in its currency. The filter is in whole units with
38
- * decimals. Pure.
34
+ * sent only for a watch in USD (or naming no valid currency, `currencyCode`); a watch in another
35
+ * currency gets no filter here, and the want-list type never searches for one (`pollWant` answers
36
+ * it with a miss the owner hears, docket#41). The filter is in whole units with decimals. Pure.
39
37
  */
40
38
  export function ebayRequest(s) {
41
- const asked = (s.currency ?? "").trim().toUpperCase();
42
- const currency = asked === "" ? EBAY_CURRENCY : asked;
39
+ const currency = currencyCode(s.currency) ?? EBAY_CURRENCY;
43
40
  const params = {
44
41
  q: shopifyQuery(s.query),
45
42
  limit: String(EBAY_LIMIT),
@@ -54,7 +51,6 @@ export function ebayRequest(s) {
54
51
  }
55
52
  return { path: EBAY_SEARCH_PATH, params, marketplace: EBAY_MARKETPLACE };
56
53
  }
57
- const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
58
54
  /** eBay's `{ value, currency }`, value a decimal string: as a number and a code; null without both. */
59
55
  function amountOf(v) {
60
56
  if (!isObj(v))
@@ -164,12 +160,7 @@ export function ebaySource(browse) {
164
160
  throw new SourceMiss(`eBay could not be searched: ${clean(err instanceof Error ? err.message : String(err), 200, true)}`, { cause: err });
165
161
  }
166
162
  // Keys eBay refuses, or an app without Browse access: no later look succeeds until someone acts.
167
- if (status === 401 || status === 403)
168
- throw new SourceUnavailableError("eBay refused the app's keys");
169
- if (status === 429 || status >= 500)
170
- throw new SourceMiss(`eBay is busy (HTTP ${status})`);
171
- if (status !== 200)
172
- throw new SourceMiss(`eBay answered HTTP ${status}`);
163
+ checkSearchStatus(status, "eBay", "eBay refused the app's keys");
173
164
  return parseEbayAnswer(body, target);
174
165
  },
175
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"want-ebay.js","sourceRoot":"","sources":["../src/want-ebay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"want-ebay.js","sourceRoot":"","sources":["../src/want-ebay.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { minorUnits } from "./money.js";
1
2
  import { type Listing, type SearchLimits, type Source } from "./want-sources.js";
2
3
  /**
3
4
  * The Shopify source (Rod, 2026-10-19: "add Shopify to watches, daily"): new copies in stock at
@@ -52,12 +53,14 @@ export interface ShopifySearch extends SearchLimits {
52
53
  /** The request for a search: in stock, at or under the top price (minor units, rounded down), in USD unless the watch names a valid three-letter code. Pure. */
53
54
  export declare function shopifyRequest(s: ShopifySearch): ShopifyRequest;
54
55
  export declare function shopifyQuery(query: string): string;
56
+ /** Letters and digits, lower-cased, accents folded (an accented "e" matches a plain one). */
57
+ export declare function wordsOf(text: string): string[];
55
58
  /** The words a title must hold: those of the query as sent, in any order. */
56
59
  export declare function searchWords(query: string): string[];
57
60
  /** Whether `title` holds every one of `words` as a whole word. Pure. */
58
61
  export declare function matchesWords(title: string, words: readonly string[]): boolean;
59
- /** How many minor units make one of `currency` (100 for USD, 1 for JPY, 1000 for KWD). */
60
- export declare function minorUnits(currency: string): number;
62
+ /** Re-exported from `money.ts`, its home since docket#61, for callers that import it from here. */
63
+ export { minorUnits };
61
64
  /**
62
65
  * The listings in one search answer (Firecrawl's body): each product whose title holds every word
63
66
  * of `query`, and in it each variant that is available, new or unmarked, with an address -- titled
@@ -1 +1 @@
1
- {"version":3,"file":"want-shopify.d.ts","sourceRoot":"","sources":["../src/want-shopify.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,YAAY,EACjB,KAAK,MAAM,EAGZ,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,gBAAgB,YAAY,CAAA;AACzC,eAAO,MAAM,kBAAkB,2BAA2B,CAAA;AAC1D,0EAA0E;AAC1E,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,aAAa,KAAK,CAAA;AAC/B,eAAO,MAAM,eAAe,OAAO,CAAA;AACnC,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AACrC,eAAO,MAAM,mBAAmB,gBAAgB,CAAA;AAKhD,8IAA8I;AAC9I,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,gBAAgB,CAAA;IACjC,UAAU,EAAE,OAAO,kBAAkB,CAAA;IACrC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAA;KACtD,CAAA;CACF;AAED,mHAAmH;AACnH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAEnG,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,gKAAgK;AAChK,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,CAiB/D;AAOD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAaD,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAG7E;AAuBD,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnD;AAoBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAqD1E;AAED,uIAAuI;AACvI,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA0B3D"}
1
+ {"version":3,"file":"want-shopify.d.ts","sourceRoot":"","sources":["../src/want-shopify.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAA;AAErD,OAAO,EAIL,KAAK,OAAO,EAGZ,KAAK,YAAY,EACjB,KAAK,MAAM,EAGZ,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,gBAAgB,YAAY,CAAA;AACzC,eAAO,MAAM,kBAAkB,2BAA2B,CAAA;AAC1D,0EAA0E;AAC1E,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,aAAa,KAAK,CAAA;AAC/B,eAAO,MAAM,eAAe,OAAO,CAAA;AACnC,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AACrC,eAAO,MAAM,mBAAmB,gBAAgB,CAAA;AAGhD,8IAA8I;AAC9I,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,gBAAgB,CAAA;IACjC,UAAU,EAAE,OAAO,kBAAkB,CAAA;IACrC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAA;KACtD,CAAA;CACF;AAED,mHAAmH;AACnH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAEnG,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,gKAAgK;AAChK,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,CAgB/D;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,6FAA6F;AAC7F,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ9C;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAG7E;AAiBD,mGAAmG;AACnG,OAAO,EAAE,UAAU,EAAE,CAAA;AAoBrB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAqD1E;AAED,uIAAuI;AACvI,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsB3D"}
@@ -1,6 +1,7 @@
1
1
  import { clean } from "@rackbops/docket-core";
2
+ import { currencyCode, minorUnits } from "./money.js";
2
3
  import { safeUrl } from "./research-answer.js";
3
- import { MAX_LISTINGS, SourceMiss, SourceUnavailableError, } from "./want-sources.js";
4
+ import { checkSearchStatus, isObj, MAX_LISTINGS, SELLER_CHARS, SourceMiss, TITLE_CHARS, } from "./want-sources.js";
4
5
  /**
5
6
  * The Shopify source (Rod, 2026-10-19: "add Shopify to watches, daily"): new copies in stock at
6
7
  * Shopify stores, from Shopify's catalog search as Firecrawl's Alexandria runs it -- provider
@@ -27,12 +28,9 @@ export const SHOPIFY_COUNTRY = "US";
27
28
  export const SHOPIFY_CURRENCY = "USD";
28
29
  export const SHOPIFY_ATTRIBUTION = "via Shopify";
29
30
  const MAX_VARIANTS = 20;
30
- const TITLE_CHARS = 150;
31
- const SELLER_CHARS = 80;
32
31
  /** The request for a search: in stock, at or under the top price (minor units, rounded down), in USD unless the watch names a valid three-letter code. Pure. */
33
32
  export function shopifyRequest(s) {
34
- const asked = (s.currency ?? "").trim().toUpperCase();
35
- const currency = /^[A-Z]{3}$/.test(asked) ? asked : SHOPIFY_CURRENCY;
33
+ const currency = currencyCode(s.currency) ?? SHOPIFY_CURRENCY;
36
34
  const filters = { available: true };
37
35
  if (s.maxPrice !== undefined && Number.isFinite(s.maxPrice) && s.maxPrice >= 0)
38
36
  filters.price = { max: Math.floor(s.maxPrice * minorUnits(currency) + 1e-6) };
@@ -48,7 +46,6 @@ export function shopifyRequest(s) {
48
46
  },
49
47
  };
50
48
  }
51
- const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
52
49
  /** The words as sent to Shopify: one line, at most `QUERY_CHARS` and cut at a word, never with an ellipsis. */
53
50
  const QUERY_CHARS = 200;
54
51
  export function shopifyQuery(query) {
@@ -60,7 +57,7 @@ export function shopifyQuery(query) {
60
57
  return (space > 0 ? cut.slice(0, space) : line.slice(0, QUERY_CHARS)).trim();
61
58
  }
62
59
  /** Letters and digits, lower-cased, accents folded (an accented "e" matches a plain one). */
63
- function wordsOf(text) {
60
+ export function wordsOf(text) {
64
61
  return (text
65
62
  .normalize("NFKD")
66
63
  .replace(/\p{M}+/gu, "")
@@ -95,14 +92,8 @@ function listingUrl(raw) {
95
92
  u.searchParams.delete(key);
96
93
  return safeUrl(u.toString());
97
94
  }
98
- /** ISO 4217 currencies whose minor unit is not a hundredth: none (JPY, KRW, ...) or a thousandth (KWD, ...). */
99
- const ZERO_DECIMAL = new Set("BIF CLP DJF GNF ISK JPY KMF KRW PYG RWF UGX UYI VND VUV XAF XOF XPF".split(" "));
100
- const THREE_DECIMAL = new Set("BHD IQD JOD KWD LYD OMR TND".split(" "));
101
- /** How many minor units make one of `currency` (100 for USD, 1 for JPY, 1000 for KWD). */
102
- export function minorUnits(currency) {
103
- const c = currency.toUpperCase();
104
- return ZERO_DECIMAL.has(c) ? 1 : THREE_DECIMAL.has(c) ? 1000 : 100;
105
- }
95
+ /** Re-exported from `money.ts`, its home since docket#61, for callers that import it from here. */
96
+ export { minorUnits };
106
97
  /** A price object `{ amount, currency }` in minor units, as a value and a code; null without both. */
107
98
  function priceOf(v) {
108
99
  if (!isObj(v))
@@ -208,12 +199,9 @@ export function shopifySource(scrape) {
208
199
  throw new SourceMiss(`Shopify could not be searched: ${clean(err instanceof Error ? err.message : String(err), 200, true)}`, { cause: err });
209
200
  }
210
201
  // A bad key, or no credits left: no later look succeeds until someone acts.
211
- if (status === 401 || status === 402 || status === 403)
212
- throw new SourceUnavailableError(status === 402 ? "the Firecrawl account is out of credits" : "Firecrawl refused the key");
213
- if (status === 429 || status >= 500)
214
- throw new SourceMiss(`Firecrawl is busy (HTTP ${status})`);
215
- if (status !== 200)
216
- throw new SourceMiss(`Firecrawl answered HTTP ${status}`);
202
+ checkSearchStatus(status, "Firecrawl", "Firecrawl refused the key", {
203
+ 402: "the Firecrawl account is out of credits",
204
+ });
217
205
  return parseShopifyAnswer(body, target);
218
206
  },
219
207
  };
@@ -1 +1 @@
1
- {"version":3,"file":"want-shopify.js","sourceRoot":"","sources":["../src/want-shopify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"want-shopify.js","sourceRoot":"","sources":["../src/want-shopify.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,17 @@ export declare class SourceUnavailableError extends SourceMiss {
56
56
  name: string;
57
57
  }
58
58
  export declare const MAX_LISTINGS = 100;
59
+ /** The longest listing title, condition and seller kept, for every source (docket#68). */
60
+ export declare const TITLE_CHARS = 150;
61
+ export declare const CONDITION_CHARS = 40;
62
+ export declare const SELLER_CHARS = 80;
63
+ /**
64
+ * What a search source's HTTP status means, for every source that searches through the host
65
+ * (docket#68): 401 and 403, and any status in `unavailable`, are a `SourceUnavailableError` (no
66
+ * later look succeeds until someone acts); 429 and 5xx are `who` being busy; anything else but
67
+ * 200 is a plain miss. Returns on 200.
68
+ */
69
+ export declare function checkSearchStatus(status: number, who: string, refused: string, unavailable?: Readonly<Record<number, string>>): void;
59
70
  /** The key a listing is remembered by: a digest of its id, so the state stays small whatever the URLs. */
60
71
  export declare function listingKey(id: string): string;
61
72
  /**
@@ -65,15 +76,23 @@ export declare function listingKey(id: string): string;
65
76
  * A host's Fetch adapter must honour it and strip it.
66
77
  */
67
78
  export declare const NEVER_EBAY = "x-tracker-never-ebay";
68
- /** eBay's own hosts (and its short links). */
79
+ /**
80
+ * eBay's own hosts (and its short links), as a hostname with no trailing dot. The one pattern for
81
+ * eBay: `isEbayHost` and research's `BARRED_SITES` both test it.
82
+ */
83
+ export declare const EBAY_HOST: RegExp;
84
+ /** eBay's own hosts (and its short links). A fully qualified `ebay.com.` is eBay too. */
69
85
  export declare function isEbayHost(host: string): boolean;
86
+ export type Json = Record<string, unknown>;
87
+ export declare const isObj: (v: unknown) => v is Json;
88
+ /** Drops `u`'s fragment and its per-view parameters (`PER_VIEW`), in place; returns it. */
89
+ export declare function withoutPerView(u: URL): URL;
70
90
  /**
71
91
  * The listings in a page's JSON-LD: each `ItemList`'s elements (a `ListItem`'s `item`, or the
72
92
  * element itself) and each standalone product, in page order, without repeats. A product with no
73
- * address of its own is the page itself (a product page). Pure.
93
+ * address of its own is the page itself (a product page). Also how many `ItemList`s the page
94
+ * declares: an empty one is a search with no results, not an unreadable page. Pure.
74
95
  */
75
- export declare function listingsFromJsonLd(html: string, pageUrl: string): Listing[];
76
- /** `listingsFromJsonLd`, and how many `ItemList`s the page declares: an empty one is a search with no results, not an unreadable page. */
77
96
  export declare function readListings(html: string, pageUrl: string): {
78
97
  listings: Listing[];
79
98
  lists: number;
@@ -1 +1 @@
1
- {"version":3,"file":"want-sources.d.ts","sourceRoot":"","sources":["../src/want-sources.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAIzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,OAAO;IACtB,8FAA8F;IAC9F,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AACpE,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAAgD,CAAA;AAE1F,qJAAqJ;AACrJ,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,QAAQ,CAAA;IACZ,0FAA0F;IAC1F,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;CAC5F;AAED,4GAA4G;AAC5G,qBAAa,UAAW,SAAQ,KAAK;IAC1B,IAAI,SAAe;CAC7B;AAED,+GAA+G;AAC/G,qBAAa,sBAAuB,SAAQ,UAAU;IAC3C,IAAI,SAA2B;CACzC;AAED,eAAO,MAAM,YAAY,MAAM,CAAA;AAM/B,0GAA0G;AAC1G,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,yBAAyB,CAAA;AAEhD,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAkFD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAE3E;AAED,0IAA0I;AAC1I,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuCxC;AAED,+FAA+F;AAC/F,eAAO,MAAM,UAAU,EAAE,MAsBxB,CAAA;AAiBD,qFAAqF;AACrF,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI,CA4B/D;AAED,8FAA8F;AAC9F,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAA;AAEtE;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAsBnD"}
1
+ {"version":3,"file":"want-sources.d.ts","sourceRoot":"","sources":["../src/want-sources.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,25 @@ export class SourceUnavailableError extends SourceMiss {
12
12
  name = "SourceUnavailableError";
13
13
  }
14
14
  export const MAX_LISTINGS = 100;
15
- const TITLE_CHARS = 150;
16
- const CONDITION_CHARS = 40;
17
- const SELLER_CHARS = 80;
15
+ /** The longest listing title, condition and seller kept, for every source (docket#68). */
16
+ export const TITLE_CHARS = 150;
17
+ export const CONDITION_CHARS = 40;
18
+ export const SELLER_CHARS = 80;
19
+ /**
20
+ * What a search source's HTTP status means, for every source that searches through the host
21
+ * (docket#68): 401 and 403, and any status in `unavailable`, are a `SourceUnavailableError` (no
22
+ * later look succeeds until someone acts); 429 and 5xx are `who` being busy; anything else but
23
+ * 200 is a plain miss. Returns on 200.
24
+ */
25
+ export function checkSearchStatus(status, who, refused, unavailable = {}) {
26
+ const said = unavailable[status] ?? (status === 401 || status === 403 ? refused : undefined);
27
+ if (said !== undefined)
28
+ throw new SourceUnavailableError(said);
29
+ if (status === 429 || status >= 500)
30
+ throw new SourceMiss(`${who} is busy (HTTP ${status})`);
31
+ if (status !== 200)
32
+ throw new SourceMiss(`${who} answered HTTP ${status}`);
33
+ }
18
34
  const MAX_DEPTH = 8;
19
35
  /** The key a listing is remembered by: a digest of its id, so the state stays small whatever the URLs. */
20
36
  export function listingKey(id) {
@@ -27,11 +43,16 @@ export function listingKey(id) {
27
43
  * A host's Fetch adapter must honour it and strip it.
28
44
  */
29
45
  export const NEVER_EBAY = "x-tracker-never-ebay";
30
- /** eBay's own hosts (and its short links). */
46
+ /**
47
+ * eBay's own hosts (and its short links), as a hostname with no trailing dot. The one pattern for
48
+ * eBay: `isEbayHost` and research's `BARRED_SITES` both test it.
49
+ */
50
+ export const EBAY_HOST = /(^|\.)ebay\.[a-z]{2,3}(\.[a-z]{2})?$/i;
51
+ /** eBay's own hosts (and its short links). A fully qualified `ebay.com.` is eBay too. */
31
52
  export function isEbayHost(host) {
32
- return /(^|\.)ebay\.[a-z]{2,3}(\.[a-z]{2})?$/i.test(host.replace(/\.$/, ""));
53
+ return EBAY_HOST.test(host.replace(/\.$/, ""));
33
54
  }
34
- const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
55
+ export const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
35
56
  function typesOf(node) {
36
57
  const t = node["@type"];
37
58
  const all = Array.isArray(t) ? t : [t];
@@ -73,16 +94,19 @@ function firstOffer(offers) {
73
94
  * keeps one id from poll to poll and is not sent again as new.
74
95
  */
75
96
  const PER_VIEW = /^(utm_[a-z]+|_pos|_sid|_ss|_psq|srsltid|gclid|gbraid|wbraid|fbclid|msclkid|mc_cid|mc_eid|pf_rd_[a-z]+|pd_rd_[a-z]+)$/i;
97
+ /** Drops `u`'s fragment and its per-view parameters (`PER_VIEW`), in place; returns it. */
98
+ export function withoutPerView(u) {
99
+ u.hash = "";
100
+ for (const key of [...u.searchParams.keys()])
101
+ if (PER_VIEW.test(key))
102
+ u.searchParams.delete(key);
103
+ return u;
104
+ }
76
105
  function absolute(raw, base) {
77
106
  if (typeof raw !== "string" || raw.trim() === "")
78
107
  return null;
79
108
  try {
80
- const u = new URL(raw.trim(), base);
81
- u.hash = "";
82
- for (const key of [...u.searchParams.keys()])
83
- if (PER_VIEW.test(key))
84
- u.searchParams.delete(key);
85
- return safeUrl(u.toString());
109
+ return safeUrl(withoutPerView(new URL(raw.trim(), base)).toString());
86
110
  }
87
111
  catch {
88
112
  return null;
@@ -111,12 +135,9 @@ function listingOf(node, base, fallbackUrl) {
111
135
  /**
112
136
  * The listings in a page's JSON-LD: each `ItemList`'s elements (a `ListItem`'s `item`, or the
113
137
  * element itself) and each standalone product, in page order, without repeats. A product with no
114
- * address of its own is the page itself (a product page). Pure.
138
+ * address of its own is the page itself (a product page). Also how many `ItemList`s the page
139
+ * declares: an empty one is a search with no results, not an unreadable page. Pure.
115
140
  */
116
- export function listingsFromJsonLd(html, pageUrl) {
117
- return readListings(html, pageUrl).listings;
118
- }
119
- /** `listingsFromJsonLd`, and how many `ItemList`s the page declares: an empty one is a search with no results, not an unreadable page. */
120
141
  export function readListings(html, pageUrl) {
121
142
  let lists = 0;
122
143
  const out = [];