@hello-bill/node 1.0.3 → 2.0.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 (45) hide show
  1. package/dist/express/index.d.cts +2 -2
  2. package/dist/express/index.d.ts +2 -2
  3. package/dist/express/index.js +41 -6
  4. package/dist/express/index.js.map +1 -1
  5. package/dist/express/index.mjs +41 -6
  6. package/dist/express/index.mjs.map +1 -1
  7. package/dist/hono/index.d.cts +2 -2
  8. package/dist/hono/index.d.ts +2 -2
  9. package/dist/hono/index.js +40 -15
  10. package/dist/hono/index.js.map +1 -1
  11. package/dist/hono/index.mjs +40 -15
  12. package/dist/hono/index.mjs.map +1 -1
  13. package/dist/{index-BrfG82zs.d.cts → index-D81ftBQo.d.ts} +16 -4
  14. package/dist/{index-EXetQn1f.d.ts → index-lPvEf5hZ.d.cts} +16 -4
  15. package/dist/index.d.cts +4 -4
  16. package/dist/index.d.ts +4 -4
  17. package/dist/index.js +26 -5
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +26 -6
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/koa/index.d.cts +2 -2
  22. package/dist/koa/index.d.ts +2 -2
  23. package/dist/koa/index.js +40 -14
  24. package/dist/koa/index.js.map +1 -1
  25. package/dist/koa/index.mjs +40 -14
  26. package/dist/koa/index.mjs.map +1 -1
  27. package/dist/next/index.d.cts +2 -2
  28. package/dist/next/index.d.ts +2 -2
  29. package/dist/next/index.js +31 -7
  30. package/dist/next/index.js.map +1 -1
  31. package/dist/next/index.mjs +31 -7
  32. package/dist/next/index.mjs.map +1 -1
  33. package/dist/types/index.d.cts +3 -3
  34. package/dist/types/index.d.ts +3 -3
  35. package/dist/types/index.js.map +1 -1
  36. package/dist/types/index.mjs.map +1 -1
  37. package/dist/webhook/index.d.cts +2 -2
  38. package/dist/webhook/index.d.ts +2 -2
  39. package/dist/webhook/index.js +14 -2
  40. package/dist/webhook/index.js.map +1 -1
  41. package/dist/webhook/index.mjs +14 -3
  42. package/dist/webhook/index.mjs.map +1 -1
  43. package/dist/{webhooks-DPpqf7d2.d.cts → webhooks-Cv4e8oXp.d.cts} +3 -2
  44. package/dist/{webhooks-DPpqf7d2.d.ts → webhooks-Cv4e8oXp.d.ts} +3 -2
  45. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { C as CreateHellobillHandlerOptions } from '../index-BrfG82zs.cjs';
2
- import '../webhooks-DPpqf7d2.cjs';
1
+ import { C as CreateHellobillHandlerOptions } from '../index-lPvEf5hZ.cjs';
2
+ import '../webhooks-Cv4e8oXp.cjs';
3
3
 
4
4
  /**
5
5
  * Express adapter for the framework-agnostic SDK core.
@@ -1,5 +1,5 @@
1
- import { C as CreateHellobillHandlerOptions } from '../index-EXetQn1f.js';
2
- import '../webhooks-DPpqf7d2.js';
1
+ import { C as CreateHellobillHandlerOptions } from '../index-D81ftBQo.js';
2
+ import '../webhooks-Cv4e8oXp.js';
3
3
 
4
4
  /**
5
5
  * Express adapter for the framework-agnostic SDK core.
@@ -392,8 +392,16 @@ var InMemoryWebhookDedupeStore = class {
392
392
  };
393
393
 
394
394
  // src/webhook/handler.ts
395
+ var UnknownWebhookEventError = class extends Error {
396
+ code = "webhook.unknown_event_type";
397
+ constructor(eventType) {
398
+ super(`Unhandled webhook event type: ${eventType}`);
399
+ this.name = "UnknownWebhookEventError";
400
+ Object.setPrototypeOf(this, new.target.prototype);
401
+ }
402
+ };
395
403
  function assertNever(x) {
396
- throw new Error(`Unhandled webhook variant: ${JSON.stringify(x)}`);
404
+ throw new UnknownWebhookEventError(x.type ?? JSON.stringify(x));
397
405
  }
398
406
  var noopLogger = {
399
407
  debug: () => {
@@ -558,7 +566,10 @@ function createWebhookHandler(opts) {
558
566
  safeLogger.error("hellobill.webhook.handler_error", {
559
567
  event_id: event.id,
560
568
  event_type: event.type,
561
- message: err.message
569
+ message: err.message,
570
+ // Include the typed error code when present so partners can identify
571
+ // known error classes (e.g. unknown event type) in log aggregation.
572
+ ...err != null && typeof err === "object" && "code" in err ? { code: err.code } : {}
562
573
  });
563
574
  });
564
575
  };
@@ -897,16 +908,25 @@ function createHellobillHandler(opts) {
897
908
  if (!result2) return;
898
909
  passthroughUpstream(res, result2.status, result2.body, result2.requestId, result2.headers);
899
910
  };
900
- const anyvanSlots = async (req, res) => {
911
+ const serviceSlots = async (req, res) => {
901
912
  const rawSession = req.query.session_id ?? req.params?.id;
902
913
  const sessionId = Array.isArray(rawSession) ? rawSession[0] : rawSession;
903
914
  if (!sessionId) {
904
915
  sendError(res, 400, "validation.missing_required_field", "session_id query parameter required");
905
916
  return;
906
917
  }
918
+ const rawService = req.query.service;
919
+ const service = Array.isArray(rawService) ? rawService[0] : rawService;
920
+ if (!service) {
921
+ sendError(res, 400, "validation.missing_required_field", "service query parameter required");
922
+ return;
923
+ }
924
+ const rawProvider = req.query.provider;
925
+ const providerRaw = Array.isArray(rawProvider) ? rawProvider[0] : rawProvider;
926
+ const provider = typeof providerRaw === "string" && providerRaw.trim().length > 0 ? providerRaw.trim() : "any_van";
907
927
  const result2 = await safeCallUpstream(res, {
908
928
  method: "GET",
909
- path: `/partner/sessions/${encodeURIComponent(sessionId)}/anyvan-slots`,
929
+ path: `/partner/sessions/${encodeURIComponent(sessionId)}/service-slots?service=${encodeURIComponent(service)}&provider=${encodeURIComponent(provider)}`,
910
930
  logger
911
931
  });
912
932
  if (!result2) return;
@@ -923,13 +943,28 @@ function createHellobillHandler(opts) {
923
943
  property,
924
944
  sessions: { list: sessionsList, get: sessionsGet },
925
945
  savingsSummary,
926
- anyvanSlots
946
+ serviceSlots
927
947
  };
928
948
  if (webhookHandler !== void 0) {
929
949
  result.webhook = webhookHandler;
930
950
  }
931
951
  return result;
932
952
  }
953
+
954
+ // src/_internal/normalise-headers.ts
955
+ function normaliseHeaders(raw) {
956
+ const out = { ...raw };
957
+ for (const [k, v] of Object.entries(raw)) {
958
+ if (k.toLowerCase() === "hellobill-signature") {
959
+ if (out["x-hellobill-signature"] === void 0) {
960
+ out["x-hellobill-signature"] = v;
961
+ }
962
+ }
963
+ }
964
+ return out;
965
+ }
966
+
967
+ // src/express/index.ts
933
968
  function loadExpress() {
934
969
  try {
935
970
  const req = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)));
@@ -946,7 +981,7 @@ function toHellobillRequest(req) {
946
981
  url: req.url,
947
982
  query: req.query,
948
983
  body: req.body,
949
- headers: req.headers,
984
+ headers: normaliseHeaders(req.headers),
950
985
  params: req.params,
951
986
  rawBody: req.rawBody
952
987
  };