meridianjs 0.2.5 → 0.2.8
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.
- package/README.md +86 -16
- package/dist/capabilities/registry.d.ts.map +1 -1
- package/dist/capabilities/registry.js +7 -0
- package/dist/capabilities/registry.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.js +1 -1
- package/dist/generator/index.d.ts +2 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +2 -1
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/openapi-export.d.ts +51 -0
- package/dist/generator/openapi-export.d.ts.map +1 -0
- package/dist/generator/openapi-export.js +95 -0
- package/dist/generator/openapi-export.js.map +1 -0
- package/dist/generator/templates.d.ts.map +1 -1
- package/dist/generator/templates.js +86 -17
- package/dist/generator/templates.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/billdesk/adapter.d.ts +36 -0
- package/dist/providers/billdesk/adapter.d.ts.map +1 -0
- package/dist/providers/billdesk/adapter.js +212 -0
- package/dist/providers/billdesk/adapter.js.map +1 -0
- package/dist/providers/billdesk/index.d.ts +3 -0
- package/dist/providers/billdesk/index.d.ts.map +1 -0
- package/dist/providers/billdesk/index.js +3 -0
- package/dist/providers/billdesk/index.js.map +1 -0
- package/dist/providers/billdesk/pagination.d.ts +15 -0
- package/dist/providers/billdesk/pagination.d.ts.map +1 -0
- package/dist/providers/billdesk/pagination.js +51 -0
- package/dist/providers/billdesk/pagination.js.map +1 -0
- package/dist/providers/ccavenue/adapter.d.ts +38 -0
- package/dist/providers/ccavenue/adapter.d.ts.map +1 -0
- package/dist/providers/ccavenue/adapter.js +181 -0
- package/dist/providers/ccavenue/adapter.js.map +1 -0
- package/dist/providers/ccavenue/index.d.ts +3 -0
- package/dist/providers/ccavenue/index.d.ts.map +1 -0
- package/dist/providers/ccavenue/index.js +3 -0
- package/dist/providers/ccavenue/index.js.map +1 -0
- package/dist/providers/ccavenue/pagination.d.ts +16 -0
- package/dist/providers/ccavenue/pagination.d.ts.map +1 -0
- package/dist/providers/ccavenue/pagination.js +20 -0
- package/dist/providers/ccavenue/pagination.js.map +1 -0
- package/dist/providers/datadog/adapter.d.ts +30 -0
- package/dist/providers/datadog/adapter.d.ts.map +1 -0
- package/dist/providers/datadog/adapter.js +163 -0
- package/dist/providers/datadog/adapter.js.map +1 -0
- package/dist/providers/datadog/index.d.ts +3 -0
- package/dist/providers/datadog/index.d.ts.map +1 -0
- package/dist/providers/datadog/index.js +3 -0
- package/dist/providers/datadog/index.js.map +1 -0
- package/dist/providers/datadog/pagination.d.ts +16 -0
- package/dist/providers/datadog/pagination.d.ts.map +1 -0
- package/dist/providers/datadog/pagination.js +41 -0
- package/dist/providers/datadog/pagination.js.map +1 -0
- package/dist/providers/googlemaps/adapter.d.ts +17 -0
- package/dist/providers/googlemaps/adapter.d.ts.map +1 -0
- package/dist/providers/googlemaps/adapter.js +154 -0
- package/dist/providers/googlemaps/adapter.js.map +1 -0
- package/dist/providers/googlemaps/pagination.d.ts +17 -0
- package/dist/providers/googlemaps/pagination.d.ts.map +1 -0
- package/dist/providers/googlemaps/pagination.js +36 -0
- package/dist/providers/googlemaps/pagination.js.map +1 -0
- package/dist/providers/s3/adapter.d.ts +37 -0
- package/dist/providers/s3/adapter.d.ts.map +1 -0
- package/dist/providers/s3/adapter.js +206 -0
- package/dist/providers/s3/adapter.js.map +1 -0
- package/dist/providers/s3/index.d.ts +4 -0
- package/dist/providers/s3/index.d.ts.map +1 -0
- package/dist/providers/s3/index.js +4 -0
- package/dist/providers/s3/index.js.map +1 -0
- package/dist/providers/s3/pagination.d.ts +18 -0
- package/dist/providers/s3/pagination.d.ts.map +1 -0
- package/dist/providers/s3/pagination.js +58 -0
- package/dist/providers/s3/pagination.js.map +1 -0
- package/dist/providers/s3/sigv4.d.ts +29 -0
- package/dist/providers/s3/sigv4.d.ts.map +1 -0
- package/dist/providers/s3/sigv4.js +101 -0
- package/dist/providers/s3/sigv4.js.map +1 -0
- package/dist/providers/sentry/adapter.d.ts +29 -0
- package/dist/providers/sentry/adapter.d.ts.map +1 -0
- package/dist/providers/sentry/adapter.js +154 -0
- package/dist/providers/sentry/adapter.js.map +1 -0
- package/dist/providers/sentry/index.d.ts +3 -0
- package/dist/providers/sentry/index.d.ts.map +1 -0
- package/dist/providers/sentry/index.js +3 -0
- package/dist/providers/sentry/index.js.map +1 -0
- package/dist/providers/sentry/pagination.d.ts +17 -0
- package/dist/providers/sentry/pagination.d.ts.map +1 -0
- package/dist/providers/sentry/pagination.js +54 -0
- package/dist/providers/sentry/pagination.js.map +1 -0
- package/dist/public.d.ts +11 -1
- package/dist/public.d.ts.map +1 -1
- package/dist/public.js +9 -1
- package/dist/public.js.map +1 -1
- package/dist/upi/index.d.ts +43 -0
- package/dist/upi/index.d.ts.map +1 -0
- package/dist/upi/index.js +57 -0
- package/dist/upi/index.js.map +1 -0
- package/package.json +29 -6
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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";
|
|
@@ -80,10 +87,13 @@ export type { RequestRecording } from "./debug/index.js";
|
|
|
80
87
|
export { SchemaMonitor } from "./schema/index.js";
|
|
81
88
|
export type { SchemaReport } from "./schema/monitor.js";
|
|
82
89
|
export type { CostReport, CostEntry } from "./analytics/collector.js";
|
|
83
|
-
export { generate } from "./generator/index.js";
|
|
90
|
+
export { generate, generateOpenApiSpec } from "./generator/index.js";
|
|
84
91
|
export type { GeneratorOptions } from "./generator/index.js";
|
|
92
|
+
export type { GenerateOpenApiSpecOptions, HttpMethod, OpenApiDocument, ProviderSpecSource, } from "./generator/index.js";
|
|
85
93
|
export type { Policy, PolicyContext, PolicyDecision } from "./core/types.js";
|
|
86
94
|
export { blockPII, allowedProviders, blockedProviders, readOnly, customPolicy, redact, requireFields, denyCountries, } from "./policies/index.js";
|
|
87
95
|
export { runTransaction, TransactionError } from "./transactions/index.js";
|
|
88
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";
|
|
89
99
|
//# sourceMappingURL=public.d.ts.map
|
package/dist/public.d.ts.map
CHANGED
|
@@ -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";
|
|
85
|
+
export { generate, generateOpenApiSpec } from "./generator/index.js";
|
|
80
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
|
package/dist/public.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level helpers for UPI (Unified Payments Interface) — a uniquely Indian
|
|
3
|
+
* payment primitive layered on top of raw provider adapters (Setu, Decentro,
|
|
4
|
+
* BillDesk, CCAvenue, ...). These helpers operate purely on the UPI URI/VPA
|
|
5
|
+
* formats defined by NPCI; they don't call any provider API.
|
|
6
|
+
*
|
|
7
|
+
* Reference: NPCI UPI Linking Specification (`upi://pay?...` deep links) and
|
|
8
|
+
* the VPA format `<handle>@<psp-handle>`.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Validates a UPI Virtual Payment Address against NPCI's `handle@pspHandle`
|
|
12
|
+
* format. This is a syntactic check — it does not confirm the VPA is
|
|
13
|
+
* registered or resolvable; that requires a live lookup through a provider
|
|
14
|
+
* such as Setu or Decentro.
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateVpa(vpa: string): boolean;
|
|
17
|
+
export interface UpiDeepLinkOptions {
|
|
18
|
+
/** Payee VPA, e.g. "merchant@oksbi" (mapped to the `pa` parameter). */
|
|
19
|
+
vpa: string;
|
|
20
|
+
/** Payee display name (`pn`). */
|
|
21
|
+
payeeName?: string;
|
|
22
|
+
/** Amount in major currency units, e.g. 1000 for ₹1000 (`am`). */
|
|
23
|
+
amount?: number;
|
|
24
|
+
/** ISO 4217 currency code; defaults to "INR" (`cu`). */
|
|
25
|
+
currency?: string;
|
|
26
|
+
/** Transaction note / description shown to the payer (`tn`). */
|
|
27
|
+
note?: string;
|
|
28
|
+
/** Merchant-generated transaction reference (`tr`). */
|
|
29
|
+
transactionRef?: string;
|
|
30
|
+
/** Transaction ID, typically issued by the PSP (`tid`). */
|
|
31
|
+
transactionId?: string;
|
|
32
|
+
/** Merchant category code (`mc`). */
|
|
33
|
+
merchantCode?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Builds a `upi://pay` deep link per NPCI's UPI Linking Specification, suitable
|
|
37
|
+
* for opening a UPI app's payment screen pre-filled with the given details.
|
|
38
|
+
*
|
|
39
|
+
* Throws if `vpa` fails {@link validateVpa} or `amount` is not a positive,
|
|
40
|
+
* finite number — both would produce a deep link that UPI apps reject.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createUpiDeepLink(options: UpiDeepLinkOptions): string;
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upi/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAyBrE"}
|