hookwright 1.2.1 → 1.2.2

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 (3) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +12 -6
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -142,7 +142,7 @@ Adding one is a single file in `src/providers/` exporting `buildPayload`, `sign`
142
142
  ```bash
143
143
  npm install
144
144
  npm run dev # esbuild watch
145
- npm test # 187 tests, no network required
145
+ npm test # 190 tests, no network required
146
146
  npm start # build + run
147
147
  ```
148
148
 
package/dist/cli.js CHANGED
@@ -24,7 +24,7 @@ var init_package = __esm({
24
24
  "package.json"() {
25
25
  package_default = {
26
26
  name: "hookwright",
27
- version: "1.2.1",
27
+ version: "1.2.2",
28
28
  description: "Build real, signed e-commerce webhooks from a live Shopify catalogue \u2014 interactive terminal UI, no backend",
29
29
  keywords: [
30
30
  "webhook",
@@ -776,6 +776,9 @@ var EVENTS = [
776
776
  { eventName: "orders/create", type: "nitro_orders_create", label: "Order Created", selection: "cart", subject: "ordered items" },
777
777
  { eventName: "orders/updated", type: "nitro_orders_updated", label: "Order Updated", selection: "cart", subject: "ordered items" }
778
778
  ];
779
+ function eventFromPayload(payload) {
780
+ return payload?.eventName;
781
+ }
779
782
  function selectionFor(eventName) {
780
783
  return EVENTS.find((e) => e.eventName === eventName)?.selection ?? "cart";
781
784
  }
@@ -1061,6 +1064,7 @@ var nitro_default = {
1061
1064
  editableFields: editableFields3,
1062
1065
  editableFieldsFor,
1063
1066
  selectionFor,
1067
+ eventFromPayload,
1064
1068
  buildPayload: buildPayload3,
1065
1069
  sign: sign3,
1066
1070
  webhookUrl: webhookUrl3,
@@ -1773,10 +1777,11 @@ async function checkImages(payload, { timeoutMs = 1e4 } = {}) {
1773
1777
  }));
1774
1778
  }
1775
1779
  async function runAll({ payload, body, provider, config, checkImageUrls = true, checkEndpoint = true, eventName }) {
1776
- const checks = [checkGate(payload, provider, eventName), checkRoundTrip(body), checkPhone(payload), checkAllowedPhone(payload, config)];
1780
+ const event = eventName ?? (provider.eventFromPayload ? provider.eventFromPayload(payload) : void 0);
1781
+ const checks = [checkGate(payload, provider, event), checkRoundTrip(body), checkPhone(payload), checkAllowedPhone(payload, config)];
1777
1782
  if (checkImageUrls) checks.push(...await checkImages(payload));
1778
1783
  if (checkEndpoint) checks.push(await checkEndpointExists(provider.webhookUrl(config)));
1779
- const fields = eventName && provider.fieldMapFor ? provider.fieldMapFor(eventName) : provider.fieldMap;
1784
+ const fields = event && provider.fieldMapFor ? provider.fieldMapFor(event) : provider.fieldMap;
1780
1785
  const cov = coverage(payload, fields);
1781
1786
  const missing = cov.filter((c2) => c2.status === "MISSING");
1782
1787
  checks.push({
@@ -1918,7 +1923,8 @@ async function buildPayload4({ cfg, providerId = "cashfree-occ", items = [], dis
1918
1923
  };
1919
1924
  const file = savePayload({ provider: provider.id, payload, body, meta });
1920
1925
  audit("payload.built", { provider: provider.id, valid: report.ok, file });
1921
- return { provider, payload, body, report, file, meta, summary };
1926
+ const record = { provider: provider.id, payload, body, meta };
1927
+ return { provider, payload, body, report, file, meta, summary, record };
1922
1928
  }
1923
1929
 
1924
1930
  // src/core/send.mjs
@@ -2356,7 +2362,7 @@ function Build({ config, providerId = "cashfree-occ", onDone }) {
2356
2362
  };
2357
2363
  const doSend = () => {
2358
2364
  setStep(STEP.SENDING);
2359
- dispatch({ cfg: config, record: { provider: built.provider.id, payload: built.payload, body: built.body } }).then((result) => {
2365
+ dispatch({ cfg: config, record: built.record }).then((result) => {
2360
2366
  setSendResult(result);
2361
2367
  setStep(STEP.RESULT);
2362
2368
  }).catch((err) => {
@@ -3586,7 +3592,7 @@ async function cmdBuild(args, config) {
3586
3592
  async function cmdSend(args, config, built) {
3587
3593
  const bad = requireConfig(config);
3588
3594
  if (bad) return bad;
3589
- let record = built ? { provider: built.provider.id, payload: built.payload, body: built.body } : null;
3595
+ let record = built?.record ?? null;
3590
3596
  if (!record && typeof args.flags.file === "string") record = loadPayload(args.flags.file);
3591
3597
  if (!record) record = loadLast();
3592
3598
  if (!record) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hookwright",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Build real, signed e-commerce webhooks from a live Shopify catalogue — interactive terminal UI, no backend",
5
5
  "keywords": [
6
6
  "webhook",