meridianjs 0.2.4 → 0.2.7

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 (120) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +155 -530
  3. package/dist/analytics/collector.d.ts +16 -0
  4. package/dist/analytics/collector.d.ts.map +1 -1
  5. package/dist/analytics/collector.js +20 -0
  6. package/dist/analytics/collector.js.map +1 -1
  7. package/dist/capabilities/registry.d.ts.map +1 -1
  8. package/dist/capabilities/registry.js +7 -0
  9. package/dist/capabilities/registry.js.map +1 -1
  10. package/dist/core/pipeline.d.ts.map +1 -1
  11. package/dist/core/pipeline.js +18 -1
  12. package/dist/core/pipeline.js.map +1 -1
  13. package/dist/core/types.d.ts +9 -4
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/core/types.js +1 -1
  16. package/dist/core/types.js.map +1 -1
  17. package/dist/generator/index.d.ts +2 -0
  18. package/dist/generator/index.d.ts.map +1 -1
  19. package/dist/generator/index.js +2 -1
  20. package/dist/generator/index.js.map +1 -1
  21. package/dist/generator/openapi-export.d.ts +51 -0
  22. package/dist/generator/openapi-export.d.ts.map +1 -0
  23. package/dist/generator/openapi-export.js +95 -0
  24. package/dist/generator/openapi-export.js.map +1 -0
  25. package/dist/generator/templates.d.ts.map +1 -1
  26. package/dist/generator/templates.js +89 -18
  27. package/dist/generator/templates.js.map +1 -1
  28. package/dist/index.d.ts +7 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +15 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/policies/builtin.d.ts +16 -0
  33. package/dist/policies/builtin.d.ts.map +1 -1
  34. package/dist/policies/builtin.js +92 -0
  35. package/dist/policies/builtin.js.map +1 -1
  36. package/dist/policies/index.d.ts +1 -1
  37. package/dist/policies/index.d.ts.map +1 -1
  38. package/dist/policies/index.js +1 -1
  39. package/dist/policies/index.js.map +1 -1
  40. package/dist/providers/billdesk/adapter.d.ts +36 -0
  41. package/dist/providers/billdesk/adapter.d.ts.map +1 -0
  42. package/dist/providers/billdesk/adapter.js +212 -0
  43. package/dist/providers/billdesk/adapter.js.map +1 -0
  44. package/dist/providers/billdesk/index.d.ts +3 -0
  45. package/dist/providers/billdesk/index.d.ts.map +1 -0
  46. package/dist/providers/billdesk/index.js +3 -0
  47. package/dist/providers/billdesk/index.js.map +1 -0
  48. package/dist/providers/billdesk/pagination.d.ts +15 -0
  49. package/dist/providers/billdesk/pagination.d.ts.map +1 -0
  50. package/dist/providers/billdesk/pagination.js +51 -0
  51. package/dist/providers/billdesk/pagination.js.map +1 -0
  52. package/dist/providers/ccavenue/adapter.d.ts +38 -0
  53. package/dist/providers/ccavenue/adapter.d.ts.map +1 -0
  54. package/dist/providers/ccavenue/adapter.js +181 -0
  55. package/dist/providers/ccavenue/adapter.js.map +1 -0
  56. package/dist/providers/ccavenue/index.d.ts +3 -0
  57. package/dist/providers/ccavenue/index.d.ts.map +1 -0
  58. package/dist/providers/ccavenue/index.js +3 -0
  59. package/dist/providers/ccavenue/index.js.map +1 -0
  60. package/dist/providers/ccavenue/pagination.d.ts +16 -0
  61. package/dist/providers/ccavenue/pagination.d.ts.map +1 -0
  62. package/dist/providers/ccavenue/pagination.js +20 -0
  63. package/dist/providers/ccavenue/pagination.js.map +1 -0
  64. package/dist/providers/datadog/adapter.d.ts +30 -0
  65. package/dist/providers/datadog/adapter.d.ts.map +1 -0
  66. package/dist/providers/datadog/adapter.js +163 -0
  67. package/dist/providers/datadog/adapter.js.map +1 -0
  68. package/dist/providers/datadog/index.d.ts +3 -0
  69. package/dist/providers/datadog/index.d.ts.map +1 -0
  70. package/dist/providers/datadog/index.js +3 -0
  71. package/dist/providers/datadog/index.js.map +1 -0
  72. package/dist/providers/datadog/pagination.d.ts +16 -0
  73. package/dist/providers/datadog/pagination.d.ts.map +1 -0
  74. package/dist/providers/datadog/pagination.js +41 -0
  75. package/dist/providers/datadog/pagination.js.map +1 -0
  76. package/dist/providers/s3/adapter.d.ts +37 -0
  77. package/dist/providers/s3/adapter.d.ts.map +1 -0
  78. package/dist/providers/s3/adapter.js +206 -0
  79. package/dist/providers/s3/adapter.js.map +1 -0
  80. package/dist/providers/s3/index.d.ts +4 -0
  81. package/dist/providers/s3/index.d.ts.map +1 -0
  82. package/dist/providers/s3/index.js +4 -0
  83. package/dist/providers/s3/index.js.map +1 -0
  84. package/dist/providers/s3/pagination.d.ts +18 -0
  85. package/dist/providers/s3/pagination.d.ts.map +1 -0
  86. package/dist/providers/s3/pagination.js +58 -0
  87. package/dist/providers/s3/pagination.js.map +1 -0
  88. package/dist/providers/s3/sigv4.d.ts +29 -0
  89. package/dist/providers/s3/sigv4.d.ts.map +1 -0
  90. package/dist/providers/s3/sigv4.js +101 -0
  91. package/dist/providers/s3/sigv4.js.map +1 -0
  92. package/dist/providers/sentry/adapter.d.ts +29 -0
  93. package/dist/providers/sentry/adapter.d.ts.map +1 -0
  94. package/dist/providers/sentry/adapter.js +154 -0
  95. package/dist/providers/sentry/adapter.js.map +1 -0
  96. package/dist/providers/sentry/index.d.ts +3 -0
  97. package/dist/providers/sentry/index.d.ts.map +1 -0
  98. package/dist/providers/sentry/index.js +3 -0
  99. package/dist/providers/sentry/index.js.map +1 -0
  100. package/dist/providers/sentry/pagination.d.ts +17 -0
  101. package/dist/providers/sentry/pagination.d.ts.map +1 -0
  102. package/dist/providers/sentry/pagination.js +54 -0
  103. package/dist/providers/sentry/pagination.js.map +1 -0
  104. package/dist/public.d.ts +14 -2
  105. package/dist/public.d.ts.map +1 -1
  106. package/dist/public.js +10 -2
  107. package/dist/public.js.map +1 -1
  108. package/dist/schema/monitor.d.ts +14 -1
  109. package/dist/schema/monitor.d.ts.map +1 -1
  110. package/dist/schema/monitor.js +24 -0
  111. package/dist/schema/monitor.js.map +1 -1
  112. package/dist/services/service-client.d.ts +8 -1
  113. package/dist/services/service-client.d.ts.map +1 -1
  114. package/dist/services/service-client.js +87 -0
  115. package/dist/services/service-client.js.map +1 -1
  116. package/dist/upi/index.d.ts +43 -0
  117. package/dist/upi/index.d.ts.map +1 -0
  118. package/dist/upi/index.js +57 -0
  119. package/dist/upi/index.js.map +1 -0
  120. package/package.json +9 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,48 @@ All notable changes to Meridian are documented here.
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.2.5] — Adoption Sprint
8
+
9
+ ### Added
10
+
11
+ **Service Routing — Weighted & Geo**
12
+ - `strategy: "weighted"` — probabilistic load distribution across providers using a `weights` map (e.g. `{ stripe: 70, razorpay: 30 }`)
13
+ - `strategy: "geo"` — region-aware routing via `MERIDIAN_REGION` env var or `defaultRegion`; `regions` maps region names to ordered provider lists
14
+ - Both strategies select a primary provider via `selectIndex()` and failover through remaining providers on retryable errors
15
+
16
+ **Policy Engine — Three New Built-ins**
17
+ - `redact(fields, providers?)` — redacts dot-notation field paths (e.g. `"user.ssn"`) from the request body before it reaches the provider; does not block the request
18
+ - `requireFields(fields, providers?)` — blocks requests missing required body fields; returns `MeridianError` with `category: "validation"`
19
+ - `denyCountries(codes, field?)` — blocks requests where `body.country`, `body.country_code`, or `body.countryCode` matches a denied ISO 3166-1 alpha-2 code
20
+
21
+ **Schema Monitor — Three New Methods**
22
+ - `meridian.schema.diff(provider, endpoint, data)` — returns drift between current data and stored schema baseline
23
+ - `meridian.schema.report(provider)` — returns structured `SchemaReport` with all snapshotted endpoints, field counts, and schemas
24
+ - `meridian.schema.alert(provider, endpoint, data, callback)` — runs drift check and invokes callback with drifts if any are detected; returns the drifts array
25
+
26
+ **Documentation**
27
+ - `docs/payments/` — Stripe/Razorpay/Cashfree unified interface, failover, analytics
28
+ - `docs/llms/` — OpenAI→Anthropic→Gemini failover, production chat endpoints
29
+ - `docs/communications/` — Twilio→MSG91 SMS fallback, email fallback patterns
30
+ - `docs/failover/` — all 7 routing strategies with runnable examples
31
+ - `docs/policies/` — all policy built-ins with fintech compliance example
32
+ - `docs/schema-drift/` — full snapshot→diff→report→alert workflow
33
+ - `docs/transactions/` — saga pattern with multi-step rollback example
34
+
35
+ **Cost Intelligence**
36
+ - `MeridianConfig.providerCosts` — declare per-request cost for each provider (e.g. `{ openai: 0.03, anthropic: 0.01 }`)
37
+ - `meridian.cost(currency?)` — returns `CostReport` with per-provider request counts, cost-per-request, estimated spend, and a total; resets with `analytics.reset()`
38
+ - `CostReport`, `CostEntry` exported from `meridianjs`
39
+
40
+ **Examples**
41
+ - `examples/nextjs-openai-failover/` — Next.js 14 App Router LLM endpoint with failover
42
+ - `examples/express-stripe/` — Express server with pagination, idempotency, health endpoint
43
+ - `examples/nestjs-payments/` — NestJS module with DI, weighted routing, saga transaction
44
+ - `examples/fastify-webhooks/` — Fastify webhook verification with raw body parsing
45
+ - `examples/multi-provider-llm/` — Node.js script demonstrating failover, cheapest routing, drift detection, analytics
46
+
47
+ ---
48
+
7
49
  ## [0.2.4] — Operational Intelligence
8
50
 
9
51
  This release transforms Meridian from an API normalisation SDK into an operational layer for third-party integrations. Every feature below works with zero configuration beyond what you already have.