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
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Extracts a top-level XML element's text content via a narrow regex match.
3
+ * S3's ListObjectsV2 response is flat enough (no nested elements share these
4
+ * tag names) that a full XML parser isn't warranted here.
5
+ */
6
+ function extractXmlField(xml, tag) {
7
+ const match = xml.match(new RegExp(`<${tag}>([^<]*)</${tag}>`));
8
+ return match?.[1] ?? null;
9
+ }
10
+ /**
11
+ * S3 / R2's `ListObjectsV2` returns XML with `IsTruncated` and, when there are
12
+ * more results, a `NextContinuationToken` — fed back as the `continuation-token`
13
+ * query parameter. The SDK's HTTP layer hands us the raw XML string as the body
14
+ * for non-JSON responses.
15
+ */
16
+ export class S3PaginationStrategy {
17
+ extractCursor(response) {
18
+ const xml = this.bodyAsXml(response);
19
+ if (!xml)
20
+ return null;
21
+ return extractXmlField(xml, "NextContinuationToken");
22
+ }
23
+ extractTotal(response) {
24
+ const xml = this.bodyAsXml(response);
25
+ if (!xml)
26
+ return null;
27
+ const keyCount = extractXmlField(xml, "KeyCount");
28
+ if (keyCount === null)
29
+ return null;
30
+ const parsed = Number.parseInt(keyCount, 10);
31
+ return Number.isNaN(parsed) ? null : parsed;
32
+ }
33
+ hasNext(response) {
34
+ const xml = this.bodyAsXml(response);
35
+ if (!xml)
36
+ return false;
37
+ return extractXmlField(xml, "IsTruncated") === "true";
38
+ }
39
+ buildNextRequest(endpoint, options, cursor) {
40
+ return {
41
+ endpoint,
42
+ options: {
43
+ ...options,
44
+ query: {
45
+ ...options.query,
46
+ "continuation-token": cursor,
47
+ },
48
+ },
49
+ };
50
+ }
51
+ bodyAsXml(response) {
52
+ if (typeof response.body === "string" && response.body.includes("<ListBucketResult")) {
53
+ return response.body;
54
+ }
55
+ return null;
56
+ }
57
+ }
58
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/providers/s3/pagination.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,GAAW;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAC/B,aAAa,CAAC,QAAqB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,CAAC,QAAqB;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,QAAqB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,OAAO,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,MAAM,CAAC;IACxD,CAAC;IAED,gBAAgB,CACd,QAAgB,EAChB,OAAuB,EACvB,MAAc;QAEd,OAAO;YACL,QAAQ;YACR,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,KAAK,EAAE;oBACL,GAAG,OAAO,CAAC,KAAK;oBAChB,oBAAoB,EAAE,MAAM;iBAC7B;aACF;SACF,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,QAAqB;QACrC,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACrF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ export interface SigV4Credentials {
2
+ accessKeyId: string;
3
+ secretAccessKey: string;
4
+ region: string;
5
+ service?: string;
6
+ sessionToken?: string;
7
+ }
8
+ export interface SigV4SignInput {
9
+ method: string;
10
+ url: URL;
11
+ headers: Record<string, string>;
12
+ body?: string;
13
+ credentials: SigV4Credentials;
14
+ /** Override the signing instant — primarily for deterministic tests. */
15
+ date?: Date;
16
+ }
17
+ export interface SigV4SignedRequest {
18
+ headers: Record<string, string>;
19
+ }
20
+ /**
21
+ * Signs a request per AWS Signature Version 4 (the scheme used by S3, R2, and
22
+ * other S3-compatible object stores). Returns the headers to attach — including
23
+ * `Authorization`, `x-amz-date`, `x-amz-content-sha256`, and `host` — that make
24
+ * the request authenticate as the given credentials.
25
+ *
26
+ * Reference: https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
27
+ */
28
+ export declare function signSigV4(input: SigV4SignInput): SigV4SignedRequest;
29
+ //# sourceMappingURL=sigv4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigv4.d.ts","sourceRoot":"","sources":["../../../src/providers/s3/sigv4.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,gBAAgB,CAAC;IAC9B,wEAAwE;IACxE,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AA4DD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,kBAAkB,CAuDnE"}
@@ -0,0 +1,101 @@
1
+ import { createHash, createHmac } from "node:crypto";
2
+ const UNRESERVED = /^[A-Za-z0-9\-_.~]$/;
3
+ /** AWS's "URI encode" — percent-encodes everything outside the unreserved set. */
4
+ function uriEncode(value, encodeSlash = true) {
5
+ let out = "";
6
+ for (const ch of Buffer.from(value, "utf-8")) {
7
+ const c = String.fromCharCode(ch);
8
+ if (UNRESERVED.test(c) || (c === "/" && !encodeSlash)) {
9
+ out += c;
10
+ }
11
+ else {
12
+ out += `%${ch.toString(16).toUpperCase().padStart(2, "0")}`;
13
+ }
14
+ }
15
+ return out;
16
+ }
17
+ function canonicalUri(pathname) {
18
+ if (!pathname || pathname === "")
19
+ return "/";
20
+ return pathname
21
+ .split("/")
22
+ .map((segment) => uriEncode(segment, false))
23
+ .join("/");
24
+ }
25
+ function canonicalQueryString(url) {
26
+ const params = [];
27
+ url.searchParams.forEach((value, key) => params.push([key, value]));
28
+ params.sort(([ak, av], [bk, bv]) => ak === bk ? (av < bv ? -1 : av > bv ? 1 : 0) : ak < bk ? -1 : 1);
29
+ return params.map(([k, v]) => `${uriEncode(k)}=${uriEncode(v)}`).join("&");
30
+ }
31
+ function sha256Hex(data) {
32
+ return createHash("sha256").update(data, "utf-8").digest("hex");
33
+ }
34
+ function hmac(key, data) {
35
+ return createHmac("sha256", key).update(data, "utf-8").digest();
36
+ }
37
+ function signingKey(secretAccessKey, dateStamp, region, service) {
38
+ const kDate = hmac(`AWS4${secretAccessKey}`, dateStamp);
39
+ const kRegion = hmac(kDate, region);
40
+ const kService = hmac(kRegion, service);
41
+ return hmac(kService, "aws4_request");
42
+ }
43
+ function amzDate(date) {
44
+ const iso = date.toISOString().replace(/[:-]|\.\d{3}/g, "");
45
+ return { amzDate: iso, dateStamp: iso.slice(0, 8) };
46
+ }
47
+ /**
48
+ * Signs a request per AWS Signature Version 4 (the scheme used by S3, R2, and
49
+ * other S3-compatible object stores). Returns the headers to attach — including
50
+ * `Authorization`, `x-amz-date`, `x-amz-content-sha256`, and `host` — that make
51
+ * the request authenticate as the given credentials.
52
+ *
53
+ * Reference: https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
54
+ */
55
+ export function signSigV4(input) {
56
+ const { method, url, body, credentials } = input;
57
+ const service = credentials.service ?? "s3";
58
+ const date = input.date ?? new Date();
59
+ const { amzDate: amzDateStr, dateStamp } = amzDate(date);
60
+ const payloadHash = sha256Hex(body ?? "");
61
+ const headers = {
62
+ ...input.headers,
63
+ host: url.host,
64
+ "x-amz-date": amzDateStr,
65
+ "x-amz-content-sha256": payloadHash,
66
+ };
67
+ if (credentials.sessionToken) {
68
+ headers["x-amz-security-token"] = credentials.sessionToken;
69
+ }
70
+ const headerEntries = Object.entries(headers)
71
+ .map(([k, v]) => [k.toLowerCase(), v.trim().replace(/\s+/g, " ")])
72
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
73
+ const canonicalHeaders = headerEntries.map(([k, v]) => `${k}:${v}\n`).join("");
74
+ const signedHeaders = headerEntries.map(([k]) => k).join(";");
75
+ const canonicalRequest = [
76
+ method.toUpperCase(),
77
+ canonicalUri(url.pathname),
78
+ canonicalQueryString(url),
79
+ canonicalHeaders,
80
+ signedHeaders,
81
+ payloadHash,
82
+ ].join("\n");
83
+ const credentialScope = `${dateStamp}/${credentials.region}/${service}/aws4_request`;
84
+ const stringToSign = [
85
+ "AWS4-HMAC-SHA256",
86
+ amzDateStr,
87
+ credentialScope,
88
+ sha256Hex(canonicalRequest),
89
+ ].join("\n");
90
+ const key = signingKey(credentials.secretAccessKey, dateStamp, credentials.region, service);
91
+ const signature = createHmac("sha256", key).update(stringToSign, "utf-8").digest("hex");
92
+ const authorization = `AWS4-HMAC-SHA256 Credential=${credentials.accessKeyId}/${credentialScope}, ` +
93
+ `SignedHeaders=${signedHeaders}, Signature=${signature}`;
94
+ return {
95
+ headers: {
96
+ ...headers,
97
+ Authorization: authorization,
98
+ },
99
+ };
100
+ }
101
+ //# sourceMappingURL=sigv4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigv4.js","sourceRoot":"","sources":["../../../src/providers/s3/sigv4.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { AdapterInput, AuthConfig, AuthToken, BuiltRequest, IdempotencyConfig, NormalizedResponse, PaginationStrategy, ProviderAdapter, RateLimitInfo, RawResponse } from "../../core/types.js";
2
+ import { MeridianError } from "../../core/types.js";
3
+ /**
4
+ * Sentry's REST API (`/api/0/`) authenticates with a bearer auth token
5
+ * (internal integration token or personal API token) and uses RFC 5988
6
+ * `Link`-header cursor pagination. Rate limiting is communicated via 429s
7
+ * with a `Retry-After` header (and, on the SaaS product, `X-Sentry-Rate-Limit-*`).
8
+ */
9
+ export declare class SentryAdapter implements ProviderAdapter {
10
+ private baseUrl;
11
+ constructor(baseUrl?: string);
12
+ buildRequest(input: AdapterInput): BuiltRequest;
13
+ parseResponse(raw: RawResponse): NormalizedResponse;
14
+ parseError(raw: unknown): MeridianError;
15
+ private parseHttpError;
16
+ authStrategy(config: AuthConfig): Promise<AuthToken>;
17
+ rateLimitPolicy(headers: Headers): RateLimitInfo;
18
+ paginationStrategy(): PaginationStrategy;
19
+ getIdempotencyConfig(): IdempotencyConfig;
20
+ /**
21
+ * Verifies a Sentry integration-platform webhook using the `Sentry-Hook-Signature`
22
+ * header — an HMAC-SHA256 digest of the raw request body keyed by the
23
+ * integration's client secret.
24
+ */
25
+ verifyWebhook(payload: string | Buffer, signature: string, secret: string): boolean;
26
+ private createMeridianError;
27
+ private extractRetryAfter;
28
+ }
29
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/sentry/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAyB,aAAa,EAAe,MAAM,qBAAqB,CAAC;AASxF;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,SAA6B;IAIhD,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;IA+B/C,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,kBAAkB;IAOnD,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa;IAkCvC,OAAO,CAAC,cAAc;IAiGhB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAkB1D,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa;IAYhD,kBAAkB,IAAI,kBAAkB;IAIxC,oBAAoB,IAAI,iBAAiB;IAOzC;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAYnF,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -0,0 +1,154 @@
1
+ import { createHmac, timingSafeEqual } from "node:crypto";
2
+ import { parseRetryAfter } from "../../core/header-parser.js";
3
+ import { ResponseNormalizer } from "../../core/normalizer.js";
4
+ import { MeridianError, SDK_VERSION } from "../../core/types.js";
5
+ import { SentryPaginationStrategy } from "./pagination.js";
6
+ /**
7
+ * Sentry's REST API (`/api/0/`) authenticates with a bearer auth token
8
+ * (internal integration token or personal API token) and uses RFC 5988
9
+ * `Link`-header cursor pagination. Rate limiting is communicated via 429s
10
+ * with a `Retry-After` header (and, on the SaaS product, `X-Sentry-Rate-Limit-*`).
11
+ */
12
+ export class SentryAdapter {
13
+ baseUrl;
14
+ constructor(baseUrl = "https://sentry.io/api/0/") {
15
+ this.baseUrl = baseUrl;
16
+ }
17
+ buildRequest(input) {
18
+ const { endpoint, options, authToken, baseUrl } = input;
19
+ const effectiveBaseUrl = baseUrl ?? this.baseUrl;
20
+ const url = new URL(endpoint.replace(/^\//, ""), effectiveBaseUrl);
21
+ if (options.query) {
22
+ for (const [key, value] of Object.entries(options.query)) {
23
+ url.searchParams.set(key, String(value));
24
+ }
25
+ }
26
+ const headers = {
27
+ Authorization: `Bearer ${authToken.token}`,
28
+ "User-Agent": `Meridian-SDK/${SDK_VERSION}`,
29
+ ...options.headers,
30
+ };
31
+ let body;
32
+ const method = options.method ?? "GET";
33
+ if (options.body && method !== "GET" && method !== "HEAD") {
34
+ body = JSON.stringify(options.body);
35
+ headers["Content-Type"] = "application/json";
36
+ }
37
+ const built = { url: url.toString(), method, headers };
38
+ if (body !== undefined) {
39
+ built.body = body;
40
+ }
41
+ return built;
42
+ }
43
+ parseResponse(raw) {
44
+ const rateLimitInfo = this.rateLimitPolicy(raw.headers);
45
+ const paginationStrategy = this.paginationStrategy();
46
+ const paginationInfo = ResponseNormalizer.extractPaginationInfo(raw, paginationStrategy);
47
+ return ResponseNormalizer.normalize(raw, "sentry", rateLimitInfo, paginationInfo, [], "1.0.0");
48
+ }
49
+ parseError(raw) {
50
+ if (raw instanceof Error) {
51
+ const msg = raw.message.toLowerCase();
52
+ if (msg.includes("fetch") ||
53
+ msg.includes("network") ||
54
+ msg.includes("econnreset") ||
55
+ msg.includes("etimedout") ||
56
+ msg.includes("enotfound") ||
57
+ msg.includes("timeout")) {
58
+ return this.createMeridianError("network", true, "Network request failed. Check your connection and try again.", { originalError: raw.message });
59
+ }
60
+ }
61
+ if (typeof raw === "object" &&
62
+ raw !== null &&
63
+ "status" in raw &&
64
+ typeof raw.status === "number") {
65
+ return this.parseHttpError(raw);
66
+ }
67
+ return this.createMeridianError("provider", false, "An unexpected error occurred", { raw });
68
+ }
69
+ parseHttpError(error) {
70
+ const { status, body, headers } = error;
71
+ const errorBody = body;
72
+ const errorMessage = errorBody?.detail ?? errorBody?.error;
73
+ if (status === 401) {
74
+ return this.createMeridianError("auth", false, errorMessage ?? "Authentication failed. Check your Sentry auth token.", { sentryError: errorBody }, undefined, 401);
75
+ }
76
+ if (status === 403) {
77
+ return this.createMeridianError("auth", false, errorMessage ?? "Permission denied. Your auth token lacks the required scopes.", { sentryError: errorBody }, undefined, 403);
78
+ }
79
+ if (status === 404) {
80
+ return this.createMeridianError("validation", false, errorMessage ?? "Resource not found.", { sentryError: errorBody }, undefined, 404);
81
+ }
82
+ if (status === 429) {
83
+ const retryAfter = this.extractRetryAfter(headers);
84
+ return this.createMeridianError("rate_limit", true, errorMessage ?? "Rate limit exceeded. Please wait before retrying.", { retryAfter: retryAfter?.toISOString() }, retryAfter, 429);
85
+ }
86
+ if (status === 400 || status === 422) {
87
+ return this.createMeridianError("validation", false, errorMessage ?? "Request validation failed.", { sentryErrors: errorBody?.errors }, undefined, status);
88
+ }
89
+ if (status >= 500) {
90
+ return this.createMeridianError("provider", true, errorMessage ?? `Sentry API returned error ${status}. This may be temporary.`, { status }, undefined, status);
91
+ }
92
+ if (status >= 400) {
93
+ return this.createMeridianError("validation", false, errorMessage ?? `Request failed with status ${status}.`, { status }, undefined, status);
94
+ }
95
+ return this.createMeridianError("provider", false, `Unexpected response status ${status}.`, { status }, undefined, status);
96
+ }
97
+ async authStrategy(config) {
98
+ const token = config.token ?? config.apiKey;
99
+ if (!token) {
100
+ throw this.createMeridianError("auth", false, "Sentry authentication requires an auth token. Set auth.token (internal integration " +
101
+ "token or personal API token with the appropriate scopes).", {}, undefined, 401);
102
+ }
103
+ return { token };
104
+ }
105
+ rateLimitPolicy(headers) {
106
+ const limit = headers.get("X-Sentry-Rate-Limit-Limit");
107
+ const remaining = headers.get("X-Sentry-Rate-Limit-Remaining");
108
+ const reset = headers.get("X-Sentry-Rate-Limit-Reset");
109
+ return {
110
+ limit: limit ? Number.parseInt(limit, 10) : 40,
111
+ remaining: remaining ? Number.parseInt(remaining, 10) : 40,
112
+ reset: reset ? new Date(Number.parseInt(reset, 10) * 1000) : new Date(Date.now() + 60_000),
113
+ };
114
+ }
115
+ paginationStrategy() {
116
+ return new SentryPaginationStrategy();
117
+ }
118
+ getIdempotencyConfig() {
119
+ return {
120
+ defaultSafeOperations: new Set(["GET", "HEAD", "OPTIONS"]),
121
+ operationOverrides: new Map(),
122
+ };
123
+ }
124
+ /**
125
+ * Verifies a Sentry integration-platform webhook using the `Sentry-Hook-Signature`
126
+ * header — an HMAC-SHA256 digest of the raw request body keyed by the
127
+ * integration's client secret.
128
+ */
129
+ verifyWebhook(payload, signature, secret) {
130
+ const expected = createHmac("sha256", secret).update(payload).digest("hex");
131
+ try {
132
+ const a = Buffer.from(expected);
133
+ const b = Buffer.from(signature);
134
+ if (a.length !== b.length)
135
+ return false;
136
+ return timingSafeEqual(a, b);
137
+ }
138
+ catch {
139
+ return false;
140
+ }
141
+ }
142
+ createMeridianError(category, retryable, message, metadata, retryAfter, status) {
143
+ return new MeridianError(message, category, "sentry", retryable, "", metadata, retryAfter, status);
144
+ }
145
+ extractRetryAfter(headers) {
146
+ if (!headers)
147
+ return undefined;
148
+ const value = headers instanceof Headers
149
+ ? headers.get("retry-after")
150
+ : (Object.entries(headers).find(([k]) => k.toLowerCase() === "retry-after")?.[1] ?? null);
151
+ return parseRetryAfter(value) ?? undefined;
152
+ }
153
+ }
154
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/providers/sentry/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./adapter.js";
2
+ export * from "./pagination.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/sentry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./adapter.js";
2
+ export * from "./pagination.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/sentry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { PaginationStrategy, RawResponse, RequestOptions } from "../../core/types.js";
2
+ /**
3
+ * Sentry uses RFC 5988 `Link` headers for cursor pagination, e.g.
4
+ * <https://sentry.io/api/0/...?&cursor=1234:0:0>; rel="next"; results="true"; cursor="1234:0:0"
5
+ * `results="true"` signals more pages are available; the `cursor` link-param
6
+ * (or the `cursor` query string param on the link URL) carries the next cursor.
7
+ */
8
+ export declare class SentryPaginationStrategy implements PaginationStrategy {
9
+ extractCursor(response: RawResponse): string | null;
10
+ extractTotal(_response: RawResponse): number | null;
11
+ hasNext(response: RawResponse): boolean;
12
+ buildNextRequest(endpoint: string, options: RequestOptions, cursor: string): {
13
+ endpoint: string;
14
+ options: RequestOptions;
15
+ };
16
+ }
17
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/providers/sentry/pagination.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE3F;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAmBnD,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAKnD,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO;IAWvC,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GACb;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE;CAYjD"}
@@ -0,0 +1,54 @@
1
+ import { findLinkByRel, parseLinkHeader } from "../../core/header-parser.js";
2
+ /**
3
+ * Sentry uses RFC 5988 `Link` headers for cursor pagination, e.g.
4
+ * <https://sentry.io/api/0/...?&cursor=1234:0:0>; rel="next"; results="true"; cursor="1234:0:0"
5
+ * `results="true"` signals more pages are available; the `cursor` link-param
6
+ * (or the `cursor` query string param on the link URL) carries the next cursor.
7
+ */
8
+ export class SentryPaginationStrategy {
9
+ extractCursor(response) {
10
+ const linkHeader = response.headers.get("Link");
11
+ if (!linkHeader)
12
+ return null;
13
+ const links = parseLinkHeader(linkHeader);
14
+ const nextLink = findLinkByRel(links, "next");
15
+ if (!nextLink)
16
+ return null;
17
+ if (nextLink.params.cursor) {
18
+ return nextLink.params.cursor;
19
+ }
20
+ try {
21
+ return new URL(nextLink.url).searchParams.get("cursor");
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ extractTotal(_response) {
28
+ // Sentry's list endpoints don't expose a total-count header.
29
+ return null;
30
+ }
31
+ hasNext(response) {
32
+ const linkHeader = response.headers.get("Link");
33
+ if (!linkHeader)
34
+ return false;
35
+ const links = parseLinkHeader(linkHeader);
36
+ const nextLink = findLinkByRel(links, "next");
37
+ if (!nextLink)
38
+ return false;
39
+ return nextLink.params.results !== "false";
40
+ }
41
+ buildNextRequest(endpoint, options, cursor) {
42
+ return {
43
+ endpoint,
44
+ options: {
45
+ ...options,
46
+ query: {
47
+ ...options.query,
48
+ cursor,
49
+ },
50
+ },
51
+ };
52
+ }
53
+ }
54
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/providers/sentry/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG7E;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IACnC,aAAa,CAAC,QAAqB;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,YAAY,CAAC,SAAsB;QACjC,6DAA6D;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,QAAqB;QAC3B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE9B,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC;IAC7C,CAAC;IAED,gBAAgB,CACd,QAAgB,EAChB,OAAuB,EACvB,MAAc;QAEd,OAAO;YACL,QAAQ;YACR,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,KAAK,EAAE;oBACL,GAAG,OAAO,CAAC,KAAK;oBAChB,MAAM;iBACP;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
package/dist/public.d.ts CHANGED
@@ -25,6 +25,9 @@ export { AnthropicAdapter } from "./providers/anthropic/adapter.js";
25
25
  export { OpenAIAdapter } from "./providers/openai/adapter.js";
26
26
  export { StripeAdapter } from "./providers/stripe/adapter.js";
27
27
  export { GitHubAdapter } from "./providers/github/adapter.js";
28
+ export { BilldeskAdapter } from "./providers/billdesk/adapter.js";
29
+ export { CcavenueAdapter, ccavenueDecrypt, ccavenueEncrypt } from "./providers/ccavenue/adapter.js";
30
+ export { DatadogAdapter } from "./providers/datadog/adapter.js";
28
31
  export { RazorpayAdapter } from "./providers/razorpay/adapter.js";
29
32
  export { CashfreeAdapter } from "./providers/cashfree/adapter.js";
30
33
  export { PayuAdapter } from "./providers/payu/adapter.js";
@@ -45,6 +48,7 @@ export { MapmyindiaAdapter } from "./providers/mapmyindia/adapter.js";
45
48
  export { PerfiosAdapter } from "./providers/perfios/adapter.js";
46
49
  export { TwilioAdapter } from "./providers/twilio/adapter.js";
47
50
  export { SendgridAdapter } from "./providers/sendgrid/adapter.js";
51
+ export { SentryAdapter } from "./providers/sentry/adapter.js";
48
52
  export { MailgunAdapter } from "./providers/mailgun/adapter.js";
49
53
  export { VonageAdapter } from "./providers/vonage/adapter.js";
50
54
  export { AdyenAdapter } from "./providers/adyen/adapter.js";
@@ -60,6 +64,9 @@ export { KlarnaAdapter } from "./providers/klarna/adapter.js";
60
64
  export { MistralAdapter } from "./providers/mistral/adapter.js";
61
65
  export { MollieAdapter } from "./providers/mollie/adapter.js";
62
66
  export { ApolloAdapter } from "./providers/apollo/adapter.js";
67
+ export { S3Adapter } from "./providers/s3/adapter.js";
68
+ export { signSigV4 } from "./providers/s3/sigv4.js";
69
+ export type { SigV4Credentials } from "./providers/s3/sigv4.js";
63
70
  export { BoundaryProxyServer } from "./proxy/server.js";
64
71
  export type { ProxyServerOptions } from "./proxy/server.js";
65
72
  export { MemoryStateStorage, RedisStateStorage, UpstashStateStorage } from "./state/index.js";
@@ -78,10 +85,15 @@ export type { ProviderInfo } from "./capabilities/index.js";
78
85
  export { DebugRecorder } from "./debug/index.js";
79
86
  export type { RequestRecording } from "./debug/index.js";
80
87
  export { SchemaMonitor } from "./schema/index.js";
81
- export { generate } from "./generator/index.js";
88
+ export type { SchemaReport } from "./schema/monitor.js";
89
+ export type { CostReport, CostEntry } from "./analytics/collector.js";
90
+ export { generate, generateOpenApiSpec } from "./generator/index.js";
82
91
  export type { GeneratorOptions } from "./generator/index.js";
92
+ export type { GenerateOpenApiSpecOptions, HttpMethod, OpenApiDocument, ProviderSpecSource, } from "./generator/index.js";
83
93
  export type { Policy, PolicyContext, PolicyDecision } from "./core/types.js";
84
- export { blockPII, allowedProviders, blockedProviders, readOnly, customPolicy, } from "./policies/index.js";
94
+ export { blockPII, allowedProviders, blockedProviders, readOnly, customPolicy, redact, requireFields, denyCountries, } from "./policies/index.js";
85
95
  export { runTransaction, TransactionError } from "./transactions/index.js";
86
96
  export type { TransactionStep, TransactionResult } from "./transactions/index.js";
97
+ export { createUpiDeepLink, validateVpa } from "./upi/index.js";
98
+ export type { UpiDeepLinkOptions } from "./upi/index.js";
87
99
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"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"}
package/dist/public.js CHANGED
@@ -20,6 +20,9 @@ export { AnthropicAdapter } from "./providers/anthropic/adapter.js";
20
20
  export { OpenAIAdapter } from "./providers/openai/adapter.js";
21
21
  export { StripeAdapter } from "./providers/stripe/adapter.js";
22
22
  export { GitHubAdapter } from "./providers/github/adapter.js";
23
+ export { BilldeskAdapter } from "./providers/billdesk/adapter.js";
24
+ export { CcavenueAdapter, ccavenueDecrypt, ccavenueEncrypt } from "./providers/ccavenue/adapter.js";
25
+ export { DatadogAdapter } from "./providers/datadog/adapter.js";
23
26
  export { RazorpayAdapter } from "./providers/razorpay/adapter.js";
24
27
  export { CashfreeAdapter } from "./providers/cashfree/adapter.js";
25
28
  export { PayuAdapter } from "./providers/payu/adapter.js";
@@ -40,6 +43,7 @@ export { MapmyindiaAdapter } from "./providers/mapmyindia/adapter.js";
40
43
  export { PerfiosAdapter } from "./providers/perfios/adapter.js";
41
44
  export { TwilioAdapter } from "./providers/twilio/adapter.js";
42
45
  export { SendgridAdapter } from "./providers/sendgrid/adapter.js";
46
+ export { SentryAdapter } from "./providers/sentry/adapter.js";
43
47
  export { MailgunAdapter } from "./providers/mailgun/adapter.js";
44
48
  export { VonageAdapter } from "./providers/vonage/adapter.js";
45
49
  export { AdyenAdapter } from "./providers/adyen/adapter.js";
@@ -55,6 +59,8 @@ export { KlarnaAdapter } from "./providers/klarna/adapter.js";
55
59
  export { MistralAdapter } from "./providers/mistral/adapter.js";
56
60
  export { MollieAdapter } from "./providers/mollie/adapter.js";
57
61
  export { ApolloAdapter } from "./providers/apollo/adapter.js";
62
+ export { S3Adapter } from "./providers/s3/adapter.js";
63
+ export { signSigV4 } from "./providers/s3/sigv4.js";
58
64
  // Claw / agent proxy integration
59
65
  export { BoundaryProxyServer } from "./proxy/server.js";
60
66
  // State storage implementations
@@ -76,8 +82,10 @@ export { DebugRecorder } from "./debug/index.js";
76
82
  // Schema drift monitor
77
83
  export { SchemaMonitor } from "./schema/index.js";
78
84
  // Adapter generator (programmatic API)
79
- export { generate } from "./generator/index.js";
80
- export { blockPII, allowedProviders, blockedProviders, readOnly, customPolicy, } from "./policies/index.js";
85
+ export { generate, generateOpenApiSpec } from "./generator/index.js";
86
+ export { blockPII, allowedProviders, blockedProviders, readOnly, customPolicy, redact, requireFields, denyCountries, } from "./policies/index.js";
81
87
  // Multi-provider transactions
82
88
  export { runTransaction, TransactionError } from "./transactions/index.js";
89
+ // UPI flow helpers
90
+ export { createUpiDeepLink, validateVpa } from "./upi/index.js";
83
91
  //# sourceMappingURL=public.js.map