@rasputin-ai/core 0.1.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.
- package/dist/announce-deploy/announce-deploy.d.ts +19 -0
- package/dist/announce-deploy/announce-deploy.d.ts.map +1 -0
- package/dist/create-client/create-client-types.d.ts +110 -0
- package/dist/create-client/create-client-types.d.ts.map +1 -0
- package/dist/create-client/create-client.d.ts +9 -0
- package/dist/create-client/create-client.d.ts.map +1 -0
- package/dist/create-client/is-client-enabled.d.ts +5 -0
- package/dist/create-client/is-client-enabled.d.ts.map +1 -0
- package/dist/create-client/resolve-endpoint-urls.d.ts +7 -0
- package/dist/create-client/resolve-endpoint-urls.d.ts.map +1 -0
- package/dist/create-ingest-event/create-ingest-event-types.d.ts +47 -0
- package/dist/create-ingest-event/create-ingest-event-types.d.ts.map +1 -0
- package/dist/create-ingest-event/create-ingest-event.d.ts +9 -0
- package/dist/create-ingest-event/create-ingest-event.d.ts.map +1 -0
- package/dist/create-ingest-event/finalize-resolution.d.ts +4 -0
- package/dist/create-ingest-event/finalize-resolution.d.ts.map +1 -0
- package/dist/detect-release/detect-release.d.ts +13 -0
- package/dist/detect-release/detect-release.d.ts.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1013 -0
- package/dist/normalize-frames/normalize-frames.d.ts +24 -0
- package/dist/normalize-frames/normalize-frames.d.ts.map +1 -0
- package/dist/parse-stack/parse-stack.d.ts +4 -0
- package/dist/parse-stack/parse-stack.d.ts.map +1 -0
- package/dist/parse-stack/raw-frame.d.ts +8 -0
- package/dist/parse-stack/raw-frame.d.ts.map +1 -0
- package/dist/resolve-source-maps/resolve-source-maps.d.ts +7 -0
- package/dist/resolve-source-maps/resolve-source-maps.d.ts.map +1 -0
- package/dist/resolve-source-maps/resolved-frame.d.ts +25 -0
- package/dist/resolve-source-maps/resolved-frame.d.ts.map +1 -0
- package/dist/sdk-meta.d.ts +4 -0
- package/dist/sdk-meta.d.ts.map +1 -0
- package/dist/suppression/compute-burst-key.d.ts +7 -0
- package/dist/suppression/compute-burst-key.d.ts.map +1 -0
- package/dist/suppression/create-suppression.d.ts +12 -0
- package/dist/suppression/create-suppression.d.ts.map +1 -0
- package/dist/suppression/identity-needs-message-template.d.ts +6 -0
- package/dist/suppression/identity-needs-message-template.d.ts.map +1 -0
- package/dist/suppression/parameterize-message.d.ts +2 -0
- package/dist/suppression/parameterize-message.d.ts.map +1 -0
- package/dist/suppression/suppression-types.d.ts +46 -0
- package/dist/suppression/suppression-types.d.ts.map +1 -0
- package/dist/transport/create-transport.d.ts +3 -0
- package/dist/transport/create-transport.d.ts.map +1 -0
- package/dist/transport/send-batch.d.ts +19 -0
- package/dist/transport/send-batch.d.ts.map +1 -0
- package/dist/transport/transport-queue.d.ts +9 -0
- package/dist/transport/transport-queue.d.ts.map +1 -0
- package/dist/transport/transport-types.d.ts +53 -0
- package/dist/transport/transport-types.d.ts.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ResolvedFrame } from '../resolve-source-maps/resolved-frame';
|
|
2
|
+
type NormalizeFramesOptions = {
|
|
3
|
+
/** Runtime project root — stripped to produce repo-relative paths. Default: process.cwd() */
|
|
4
|
+
appRoot?: string;
|
|
5
|
+
};
|
|
6
|
+
export type Frame = {
|
|
7
|
+
generated: {
|
|
8
|
+
file: string;
|
|
9
|
+
line?: number;
|
|
10
|
+
column?: number;
|
|
11
|
+
};
|
|
12
|
+
original?: {
|
|
13
|
+
file: string;
|
|
14
|
+
line?: number;
|
|
15
|
+
column?: number;
|
|
16
|
+
name?: string;
|
|
17
|
+
};
|
|
18
|
+
function?: string;
|
|
19
|
+
in_app: boolean;
|
|
20
|
+
};
|
|
21
|
+
/** Normalize resolved frames: repo-relative paths + in_app (runs after source-map resolution). */
|
|
22
|
+
export declare const normalizeFrames: (frames: ResolvedFrame[], options?: NormalizeFramesOptions) => Frame[];
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=normalize-frames.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-frames.d.ts","sourceRoot":"","sources":["../../src/normalize-frames/normalize-frames.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAE3E,KAAK,sBAAsB,GAAG;IAC7B,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAgDF,kGAAkG;AAClG,eAAO,MAAM,eAAe,GAC3B,QAAQ,aAAa,EAAE,EACvB,UAAS,sBAA2B,KAClC,KAAK,EA2BP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-stack.d.ts","sourceRoot":"","sources":["../../src/parse-stack/parse-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8E5C,mEAAmE;AACnE,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,QAAQ,EAOlD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-frame.d.ts","sourceRoot":"","sources":["../../src/parse-stack/raw-frame.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RawFrame } from '../parse-stack/raw-frame';
|
|
2
|
+
import type { ResolveSourceMapsResult } from './resolved-frame';
|
|
3
|
+
/** Resolve generated frames to original source locations (flush-time, async). */
|
|
4
|
+
export declare const resolveSourceMaps: (frames: RawFrame[]) => Promise<ResolveSourceMapsResult>;
|
|
5
|
+
/** Clears the per-process TraceMap cache (tests). */
|
|
6
|
+
export declare const clearSourceMapCache: () => void;
|
|
7
|
+
//# sourceMappingURL=resolve-source-maps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-source-maps.d.ts","sourceRoot":"","sources":["../../src/resolve-source-maps/resolve-source-maps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAiB,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAgI/E,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,GAAU,QAAQ,QAAQ,EAAE,KAAG,OAAO,CAAC,uBAAuB,CAW3F,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,YAE/B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** A file position before or after source-map resolution. */
|
|
2
|
+
type FramePosition = {
|
|
3
|
+
file: string;
|
|
4
|
+
line?: number;
|
|
5
|
+
column?: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Frame after source-map resolution (Step 2).
|
|
9
|
+
* Pass to `normalizeFrames` for repo-relative paths + `in_app`.
|
|
10
|
+
*/
|
|
11
|
+
export type ResolvedFrame = {
|
|
12
|
+
generated: FramePosition;
|
|
13
|
+
original?: FramePosition & {
|
|
14
|
+
name?: string;
|
|
15
|
+
};
|
|
16
|
+
function?: string;
|
|
17
|
+
};
|
|
18
|
+
export type ResolveSourceMapsResult = {
|
|
19
|
+
frames: ResolvedFrame[];
|
|
20
|
+
resolution: 'exact' | 'none';
|
|
21
|
+
/** True when at least one generated .js frame had no resolvable map. */
|
|
22
|
+
unresolvedGenerated: boolean;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=resolved-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-frame.d.ts","sourceRoot":"","sources":["../../src/resolve-source-maps/resolved-frame.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,KAAK,aAAa,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,wEAAwE;IACxE,mBAAmB,EAAE,OAAO,CAAC;CAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-meta.d.ts","sourceRoot":"","sources":["../src/sdk-meta.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,QAAQ,sBAAsB,CAAC;AAC5C,eAAO,MAAM,WAAW,UAAU,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Frame } from '../normalize-frames/normalize-frames';
|
|
2
|
+
/**
|
|
3
|
+
* In-process burst bucket id — aligned with server fingerprint boundaries.
|
|
4
|
+
* For generic `Error`, includes the same parameterized message template the API uses.
|
|
5
|
+
*/
|
|
6
|
+
export declare const computeBurstKey: (errorType: string, message: string, code: string | null | undefined, frames: Frame[]) => string;
|
|
7
|
+
//# sourceMappingURL=compute-burst-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compute-burst-key.d.ts","sourceRoot":"","sources":["../../src/suppression/compute-burst-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAoBlE;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC3B,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,QAAQ,KAAK,EAAE,KACb,MAOF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CreateSuppressionOptions, IngestSummary, PrepareSummaryFrames, SuppressionDecideInput, SuppressionDecideResult } from './suppression-types';
|
|
2
|
+
/**
|
|
3
|
+
* Local burst suppression (network protection). Burst keys mirror server fingerprint
|
|
4
|
+
* boundaries for generic `Error` via parameterized message templates.
|
|
5
|
+
*/
|
|
6
|
+
export declare const createSuppression: (options?: CreateSuppressionOptions) => {
|
|
7
|
+
decide: (input: SuppressionDecideInput) => SuppressionDecideResult;
|
|
8
|
+
takeSummaries: (now?: number, prepareSummary?: PrepareSummaryFrames) => Promise<IngestSummary[]>;
|
|
9
|
+
/** Test helper — number of active burst buckets. */
|
|
10
|
+
size: () => number;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=create-suppression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-suppression.d.ts","sourceRoot":"","sources":["../../src/suppression/create-suppression.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EAEpB,sBAAsB,EACtB,uBAAuB,EACvB,MAAM,qBAAqB,CAAC;AAyC7B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAS,wBAA6B;oBAmDhD,sBAAsB,KAAG,uBAAuB;mDAiErD,oBAAoB,KACnC,OAAO,CAAC,aAAa,EAAE,CAAC;IA4B1B,oDAAoD;;CAGrD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep in sync with `packages/~core/lib/identity-needs-message-template.ts`.
|
|
3
|
+
* SDK copy — no ~core dependency at publish time.
|
|
4
|
+
*/
|
|
5
|
+
export declare const identityNeedsMessageTemplate: (type: string, code: string | null | undefined) => boolean;
|
|
6
|
+
//# sourceMappingURL=identity-needs-message-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-needs-message-template.d.ts","sourceRoot":"","sources":["../../src/suppression/identity-needs-message-template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACxC,MAAM,MAAM,EACZ,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,KAC7B,OAGF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameterize-message.d.ts","sourceRoot":"","sources":["../../src/suppression/parameterize-message.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,KAAG,MA8BxD,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { FrameResolution, IngestOrigin, IngestStackFrame } from '../create-ingest-event/create-ingest-event-types';
|
|
2
|
+
import type { Frame } from '../normalize-frames/normalize-frames';
|
|
3
|
+
import type { RawFrame } from '../parse-stack/raw-frame';
|
|
4
|
+
/** Count-only ingest payload — identity fields match wire {@link IngestEvent}. */
|
|
5
|
+
export type IngestSummary = {
|
|
6
|
+
count: number;
|
|
7
|
+
window_start: string;
|
|
8
|
+
window_end: string;
|
|
9
|
+
type: string;
|
|
10
|
+
message: string;
|
|
11
|
+
stack_frames: IngestStackFrame[];
|
|
12
|
+
code?: string | null;
|
|
13
|
+
environment: string;
|
|
14
|
+
origin: IngestOrigin;
|
|
15
|
+
resolution?: FrameResolution;
|
|
16
|
+
release?: string | null;
|
|
17
|
+
};
|
|
18
|
+
export type SummaryIdentity = Pick<IngestSummary, 'type' | 'message' | 'stack_frames' | 'origin' | 'code' | 'resolution'>;
|
|
19
|
+
export type SuppressionDecideInput = {
|
|
20
|
+
errorType: string;
|
|
21
|
+
message: string;
|
|
22
|
+
frames: Frame[];
|
|
23
|
+
/** Full parsed stack — re-resolved at flush so summary frames match exemplars. */
|
|
24
|
+
rawFrames?: RawFrame[];
|
|
25
|
+
origin: IngestOrigin;
|
|
26
|
+
code?: string | null;
|
|
27
|
+
environment: string;
|
|
28
|
+
release?: string | null;
|
|
29
|
+
route?: string | null;
|
|
30
|
+
/** Injectable clock for tests. */
|
|
31
|
+
now?: number;
|
|
32
|
+
};
|
|
33
|
+
export type SuppressionDecideResult = {
|
|
34
|
+
action: 'send';
|
|
35
|
+
priority: 'first' | 'repeat';
|
|
36
|
+
} | {
|
|
37
|
+
action: 'suppress';
|
|
38
|
+
};
|
|
39
|
+
export type CreateSuppressionOptions = {
|
|
40
|
+
windowMs?: number;
|
|
41
|
+
capPerWindow?: number;
|
|
42
|
+
/** LRU cap on in-process burst buckets (burstKey), not server fingerprints. */
|
|
43
|
+
maxBurstBuckets?: number;
|
|
44
|
+
};
|
|
45
|
+
export type PrepareSummaryFrames = (raw: RawFrame[]) => Promise<Pick<SummaryIdentity, 'stack_frames' | 'resolution'>>;
|
|
46
|
+
//# sourceMappingURL=suppression-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suppression-types.d.ts","sourceRoot":"","sources":["../../src/suppression/suppression-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CACjC,aAAa,EACb,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CACtE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,kFAAkF;IAClF,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kCAAkC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAChC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE1B,MAAM,MAAM,wBAAwB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAClC,GAAG,EAAE,QAAQ,EAAE,KACX,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-transport.d.ts","sourceRoot":"","sources":["../../src/transport/create-transport.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY3E,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,SA+IjE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IngestEvent } from '../create-ingest-event/create-ingest-event-types';
|
|
2
|
+
import type { IngestSummary } from '../suppression/suppression-types';
|
|
3
|
+
import type { TransportFetch } from './transport-types';
|
|
4
|
+
type SendBatchOptions = {
|
|
5
|
+
ingestUrl: string;
|
|
6
|
+
projectApiKey: string;
|
|
7
|
+
events: IngestEvent[];
|
|
8
|
+
summaries?: IngestSummary[];
|
|
9
|
+
sdkVersion?: string;
|
|
10
|
+
sdkName?: string;
|
|
11
|
+
gzipThresholdBytes: number;
|
|
12
|
+
maxRetries: number;
|
|
13
|
+
fetch: TransportFetch;
|
|
14
|
+
signal?: AbortSignal;
|
|
15
|
+
};
|
|
16
|
+
/** POST `{ events, summaries? }` with Bearer auth, optional gzip, retries on 429/5xx/network. */
|
|
17
|
+
export declare const sendBatch: (options: SendBatchOptions) => Promise<"ok" | "dropped" | "failed">;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=send-batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-batch.d.ts","sourceRoot":"","sources":["../../src/transport/send-batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,gBAAgB,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAkBF,iGAAiG;AACjG,eAAO,MAAM,SAAS,GACrB,SAAS,gBAAgB,KACvB,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,QAAQ,CAoErC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { QueuedEvent } from './transport-types';
|
|
2
|
+
/** Bounded queue — drops lower-priority items first when full. */
|
|
3
|
+
export declare const createQueue: (maxSize: number) => {
|
|
4
|
+
enqueue: (item: QueuedEvent) => void;
|
|
5
|
+
drain: (count: number) => QueuedEvent[];
|
|
6
|
+
size: () => number;
|
|
7
|
+
clear: () => void;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=transport-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-queue.d.ts","sourceRoot":"","sources":["../../src/transport/transport-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAQxE,kEAAkE;AAClE,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM;oBAcnB,WAAW;mBAWZ,MAAM,KAAG,WAAW,EAAE;;;CAU5C,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { IngestEvent } from '../create-ingest-event/create-ingest-event-types';
|
|
2
|
+
import type { RawFrame } from '../parse-stack/raw-frame';
|
|
3
|
+
import type { IngestSummary } from '../suppression/suppression-types';
|
|
4
|
+
/**
|
|
5
|
+
* Drop order when the queue is full: repeat exemplars first, then summaries,
|
|
6
|
+
* protect first-sighting last. Summaries carry tens of thousands of counts in
|
|
7
|
+
* a few hundred bytes — dropping them loses more signal than a repeat exemplar.
|
|
8
|
+
*/
|
|
9
|
+
export type TransportPriority = 'first' | 'repeat' | 'summary';
|
|
10
|
+
export type QueuedEvent = {
|
|
11
|
+
kind: 'event';
|
|
12
|
+
event: IngestEvent;
|
|
13
|
+
priority: 'first' | 'repeat';
|
|
14
|
+
/** Generated frames for flush-time source-map resolution. */
|
|
15
|
+
rawFrames: RawFrame[];
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'summary';
|
|
18
|
+
summary: IngestSummary;
|
|
19
|
+
priority: 'summary';
|
|
20
|
+
};
|
|
21
|
+
export type TransportFetch = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
|
|
22
|
+
export type PrepareQueuedEvent = (item: {
|
|
23
|
+
event: IngestEvent;
|
|
24
|
+
rawFrames: RawFrame[];
|
|
25
|
+
}) => Promise<IngestEvent>;
|
|
26
|
+
export type CreateTransportOptions = {
|
|
27
|
+
/** Real API ingest URL — `POST /ingest` (apps/api post-ingest.handler). */
|
|
28
|
+
ingestUrl: string;
|
|
29
|
+
projectApiKey: string;
|
|
30
|
+
/** When false, enqueue/flush are no-ops. Default true. */
|
|
31
|
+
enabled?: boolean;
|
|
32
|
+
maxQueueSize?: number;
|
|
33
|
+
batchSize?: number;
|
|
34
|
+
flushIntervalMs?: number;
|
|
35
|
+
gzipThresholdBytes?: number;
|
|
36
|
+
maxRetries?: number;
|
|
37
|
+
fetch?: TransportFetch;
|
|
38
|
+
/** Disable process signal / beforeExit hooks (tests). Default true. */
|
|
39
|
+
installSignalHandlers?: boolean;
|
|
40
|
+
/** Rewrite events before send (e.g. source-map resolve + re-normalize). */
|
|
41
|
+
prepareEvent?: PrepareQueuedEvent;
|
|
42
|
+
sdkVersion?: string;
|
|
43
|
+
sdkName?: string;
|
|
44
|
+
};
|
|
45
|
+
export type Transport = {
|
|
46
|
+
enqueue: (event: IngestEvent, priority?: 'first' | 'repeat', rawFrames?: RawFrame[]) => void;
|
|
47
|
+
enqueueSummary: (summary: IngestSummary) => void;
|
|
48
|
+
flush: (timeoutMs?: number) => Promise<void>;
|
|
49
|
+
close: () => Promise<void>;
|
|
50
|
+
/** Test helper */
|
|
51
|
+
size: () => number;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=transport-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-types.d.ts","sourceRoot":"","sources":["../../src/transport/transport-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,WAAW,GACpB;IACA,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,6DAA6D;IAC7D,SAAS,EAAE,QAAQ,EAAE,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,CAC5B,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACvC,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACtB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE3B,MAAM,MAAM,sBAAsB,GAAG;IACpC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC7F,cAAc,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACjD,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB;IAClB,IAAI,EAAE,MAAM,MAAM,CAAC;CACnB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rasputin-ai/core",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": {
|
|
7
|
+
"bun": "./src/index.ts",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "bun ../scripts/build-package.ts .",
|
|
18
|
+
"prepublishOnly": "npm run build && bun ../scripts/check-lockstep-versions.ts",
|
|
19
|
+
"pack:check": "npm run build && npm pack --dry-run",
|
|
20
|
+
"typecheck": "bun ../scripts/generate-sdk-meta.ts . && bunx tsc --noEmit",
|
|
21
|
+
"lint": "biome check .",
|
|
22
|
+
"test": "bun test",
|
|
23
|
+
"build:sourcemap-fixtures": "bun fixtures/sourcemap/build.ts",
|
|
24
|
+
"capture-stacks": "bun fixtures/_gen/capture-stacks.ts && node --experimental-strip-types fixtures/_gen/capture-stacks.ts"
|
|
25
|
+
},
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@sinclair/typebox": "0.34.49",
|
|
31
|
+
"@types/bun": "latest",
|
|
32
|
+
"@types/node": "22.13.10",
|
|
33
|
+
"esbuild": "0.25.12",
|
|
34
|
+
"~core": "workspace:*",
|
|
35
|
+
"typescript": "5"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@jridgewell/trace-mapping": "0.3.31"
|
|
39
|
+
}
|
|
40
|
+
}
|