@rasputin-ai/core 0.1.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/announce-deploy/announce-deploy.d.ts +2 -2
- package/dist/announce-deploy/announce-deploy.d.ts.map +1 -1
- package/dist/create-client/create-client-types.d.ts +47 -31
- package/dist/create-client/create-client-types.d.ts.map +1 -1
- package/dist/create-client/create-client.d.ts +1 -1
- package/dist/create-client/create-client.d.ts.map +1 -1
- package/dist/create-client/is-client-enabled.d.ts.map +1 -1
- package/dist/create-client/resolve-endpoint-urls.d.ts +1 -0
- package/dist/create-client/resolve-endpoint-urls.d.ts.map +1 -1
- package/dist/create-ingest-event/create-ingest-event-types.d.ts +6 -2
- package/dist/create-ingest-event/create-ingest-event-types.d.ts.map +1 -1
- package/dist/create-ingest-event/create-ingest-event.d.ts.map +1 -1
- package/dist/create-ingest-event/runtime-execution-state-types.d.ts +87 -0
- package/dist/create-ingest-event/runtime-execution-state-types.d.ts.map +1 -0
- package/dist/create-ingest-event/truncate-ingest-message.d.ts +3 -0
- package/dist/create-ingest-event/truncate-ingest-message.d.ts.map +1 -0
- package/dist/detect-release/detect-release.d.ts +6 -3
- package/dist/detect-release/detect-release.d.ts.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +503 -95
- package/dist/instrumentation-manifest/instrumentation-manifest-types.d.ts +75 -0
- package/dist/instrumentation-manifest/instrumentation-manifest-types.d.ts.map +1 -0
- package/dist/instrumentation-manifest/upload-instrumentation-manifest.d.ts +16 -0
- package/dist/instrumentation-manifest/upload-instrumentation-manifest.d.ts.map +1 -0
- package/dist/normalize-frames/normalize-frames.d.ts +3 -3
- package/dist/normalize-frames/normalize-frames.d.ts.map +1 -1
- package/dist/repo-root/repo-root-from.d.ts +8 -0
- package/dist/repo-root/repo-root-from.d.ts.map +1 -0
- package/dist/repo-root/resolve-repo-root.d.ts +6 -0
- package/dist/repo-root/resolve-repo-root.d.ts.map +1 -0
- package/dist/repo-root/warn-repo-root-setup.d.ts +5 -0
- package/dist/repo-root/warn-repo-root-setup.d.ts.map +1 -0
- package/dist/sdk-meta.d.ts +1 -1
- package/dist/suppression/compute-burst-key.d.ts +0 -4
- package/dist/suppression/compute-burst-key.d.ts.map +1 -1
- package/dist/suppression/create-suppression.d.ts +9 -2
- package/dist/suppression/create-suppression.d.ts.map +1 -1
- package/dist/suppression/identity-needs-message-template.d.ts +3 -1
- package/dist/suppression/identity-needs-message-template.d.ts.map +1 -1
- package/dist/suppression/parameterize-message.d.ts.map +1 -1
- package/dist/suppression/suppression-types.d.ts +2 -2
- package/dist/suppression/suppression-types.d.ts.map +1 -1
- package/dist/transport/create-transport.d.ts.map +1 -1
- package/dist/transport/send-batch.d.ts +1 -0
- package/dist/transport/send-batch.d.ts.map +1 -1
- package/dist/transport/transport-queue.d.ts +7 -0
- package/dist/transport/transport-queue.d.ts.map +1 -1
- package/dist/transport/transport-types.d.ts +17 -4
- package/dist/transport/transport-types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -4,8 +4,8 @@ type AnnounceDeployOptions = {
|
|
|
4
4
|
deployUrl: string;
|
|
5
5
|
projectApiKey: string;
|
|
6
6
|
environment: string;
|
|
7
|
-
/** Commit SHA / release.
|
|
8
|
-
release?: string
|
|
7
|
+
/** Commit SHA / release. Empty when it could not be detected. */
|
|
8
|
+
release?: string;
|
|
9
9
|
/** When false, no-op. Default true. */
|
|
10
10
|
enabled?: boolean;
|
|
11
11
|
fetch?: TransportFetch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announce-deploy.d.ts","sourceRoot":"","sources":["../../src/announce-deploy/announce-deploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,KAAK,qBAAqB,GAAG;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"announce-deploy.d.ts","sourceRoot":"","sources":["../../src/announce-deploy/announce-deploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,KAAK,qBAAqB,GAAG;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAC1B,SAAS,qBAAqB,KAC5B,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,QAAQ,CAyBrC,CAAC"}
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
import type { RequestContext } from '../create-ingest-event/create-ingest-event-types';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* Typical setup — call once at startup, then let the SDK capture errors for you:
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* RasputinInit({
|
|
10
|
-
* projectApiKey: 'rp_…', // from your Rasputin project settings
|
|
11
|
-
* environment: 'production', // e.g. production | staging | preview
|
|
12
|
-
* release: process.env.GIT_SHA, // optional — auto-detected from CI env when omitted
|
|
13
|
-
* });
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export type RasputinOptions = {
|
|
2
|
+
import type { RuntimeExecutionState } from '../create-ingest-event/runtime-execution-state-types';
|
|
3
|
+
import type { TransportFetch, TransportStats } from '../transport/transport-types';
|
|
4
|
+
type RasputinBaseOptions = {
|
|
17
5
|
/** Project API key from the Rasputin dashboard. Required to send events. */
|
|
18
6
|
projectApiKey: string;
|
|
19
7
|
/**
|
|
@@ -22,13 +10,16 @@ export type RasputinOptions = {
|
|
|
22
10
|
*/
|
|
23
11
|
environment: string;
|
|
24
12
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
13
|
+
* Git commit SHA for this deploy. Links errors to a release so you can see
|
|
14
|
+
* what shipped when something broke.
|
|
15
|
+
*
|
|
16
|
+
* Set `RASPUTIN_RELEASE` in your deploy environment and pass:
|
|
17
|
+
* `release: process.env.RASPUTIN_RELEASE!`
|
|
27
18
|
*
|
|
28
|
-
* When
|
|
29
|
-
* `
|
|
19
|
+
* When blank, Rasputin reads `RASPUTIN_RELEASE`, then platform vars
|
|
20
|
+
* (`VERCEL_GIT_COMMIT_SHA`, etc.), then `.git` HEAD. Must be 7–40 hex chars.
|
|
30
21
|
*/
|
|
31
|
-
release
|
|
22
|
+
release: string;
|
|
32
23
|
/**
|
|
33
24
|
* Master on/off switch. When `false`, nothing is captured or sent.
|
|
34
25
|
* Useful for local dev or tests without removing init code.
|
|
@@ -37,17 +28,33 @@ export type RasputinOptions = {
|
|
|
37
28
|
*/
|
|
38
29
|
enabled?: boolean;
|
|
39
30
|
apiUrl?: string;
|
|
40
|
-
/**
|
|
41
|
-
* Root of your app on disk. Stack traces are trimmed to paths relative to this
|
|
42
|
-
* (e.g. `src/routes/users.ts` instead of `/app/src/routes/users.ts`).
|
|
43
|
-
*
|
|
44
|
-
* In a monorepo, pass the **repository root**, not the package directory, so
|
|
45
|
-
* paths line up with GitHub.
|
|
46
|
-
*
|
|
47
|
-
* @default `process.cwd()`
|
|
48
|
-
*/
|
|
49
|
-
repoRoot?: string;
|
|
50
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Options passed to `RasputinInit` / `createClient`.
|
|
34
|
+
*
|
|
35
|
+
* Typical setup — call once at startup, then let the SDK capture errors for you:
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* RasputinInit({
|
|
39
|
+
* projectApiKey: 'rp_…', // from your Rasputin project settings
|
|
40
|
+
* environment: 'production', // e.g. production | staging | preview
|
|
41
|
+
* release: process.env.RASPUTIN_RELEASE!,
|
|
42
|
+
* moduleUrl: import.meta.url, // from the file where you call this
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* Pass `moduleUrl: import.meta.url` from the file where you call this.
|
|
47
|
+
* Rasputin uses it to find your project folder so error paths match your source.
|
|
48
|
+
* If that isn't right (for example in Docker), set `repoRoot` to the folder
|
|
49
|
+
* you open in your editor instead.
|
|
50
|
+
*/
|
|
51
|
+
export type RasputinOptions = RasputinBaseOptions & ({
|
|
52
|
+
repoRoot: string;
|
|
53
|
+
moduleUrl?: string;
|
|
54
|
+
} | {
|
|
55
|
+
moduleUrl: string;
|
|
56
|
+
repoRoot?: string;
|
|
57
|
+
});
|
|
51
58
|
/**
|
|
52
59
|
* Extra context for a captured error.
|
|
53
60
|
* Framework plugins (Elysia, etc.) fill `request` automatically for route failures.
|
|
@@ -58,6 +65,12 @@ export type CaptureContext = {
|
|
|
58
65
|
* a request yourself; omit for background jobs and scripts.
|
|
59
66
|
*/
|
|
60
67
|
request?: RequestContext;
|
|
68
|
+
/** Runtime state supplied by a framework/runtime integration. */
|
|
69
|
+
runtimeState?: RuntimeExecutionState;
|
|
70
|
+
};
|
|
71
|
+
export type RasputinClientStats = {
|
|
72
|
+
/** Process-local transport counters. Cumulative counters reset when the process restarts. */
|
|
73
|
+
transport: TransportStats;
|
|
61
74
|
};
|
|
62
75
|
/**
|
|
63
76
|
* Client returned by `RasputinInit` / `createClient`.
|
|
@@ -98,8 +111,10 @@ export type RasputinClient = {
|
|
|
98
111
|
* After `close`, the client stops sending — create a new client if you restart.
|
|
99
112
|
*/
|
|
100
113
|
close: () => Promise<void>;
|
|
114
|
+
/** Return a cheap, read-only snapshot of process-local operational safety counters. */
|
|
115
|
+
getStats: () => RasputinClientStats;
|
|
101
116
|
};
|
|
102
|
-
/**
|
|
117
|
+
/** Integration configuration shared with official runtime and framework packages. */
|
|
103
118
|
export type CreateClientHooks = {
|
|
104
119
|
fetch?: TransportFetch;
|
|
105
120
|
announceDeploy?: boolean;
|
|
@@ -107,4 +122,5 @@ export type CreateClientHooks = {
|
|
|
107
122
|
sdkVersion?: string;
|
|
108
123
|
sdkName?: string;
|
|
109
124
|
};
|
|
125
|
+
export {};
|
|
110
126
|
//# sourceMappingURL=create-client-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client-types.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-client-types.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnF,KAAK,mBAAmB,GAAG;IAC1B,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;OASG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAChD,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEvF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,iEAAiE;IACjE,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,6FAA6F;IAC7F,SAAS,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B;;;;;;;;OAQG;IACH,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAErE;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;;;OAKG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,mBAAmB,CAAC;CACpC,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CreateClientHooks, RasputinClient, RasputinOptions } from './create-client-types';
|
|
2
|
-
/** Reset per-process warning state
|
|
2
|
+
/** Reset per-process warning state. Not exported from the package entry point. */
|
|
3
3
|
export declare const resetSourceMapWarnings: () => void;
|
|
4
4
|
/**
|
|
5
5
|
* Wire parse → suppress (generated frames) → queue.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAuBhG,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,YAGlC,CAAC;AAaF;;;GAGG;AACH,eAAO,MAAM,YAAY,GACxB,SAAS,eAAe,EACxB,QAAO,iBAAsB,KAC3B,cAwKF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-client-enabled.d.ts","sourceRoot":"","sources":["../../src/create-client/is-client-enabled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,uDAAuD;AACvD,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAG,OACpD,CAAC;AAEzB,eAAO,MAAM,UAAU,QAAO,
|
|
1
|
+
{"version":3,"file":"is-client-enabled.d.ts","sourceRoot":"","sources":["../../src/create-client/is-client-enabled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,uDAAuD;AACvD,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAG,OACpD,CAAC;AAEzB,eAAO,MAAM,UAAU,QAAO,cAa5B,CAAC"}
|
|
@@ -3,5 +3,6 @@ export declare const DEFAULT_API_URL = "https://rasputin-api.fly.dev";
|
|
|
3
3
|
export declare const resolveEndpointUrls: (apiUrl?: string) => {
|
|
4
4
|
ingestUrl: string;
|
|
5
5
|
deployUrl: string;
|
|
6
|
+
instrumentationManifestUrl: string;
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=resolve-endpoint-urls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-endpoint-urls.d.ts","sourceRoot":"","sources":["../../src/create-client/resolve-endpoint-urls.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,eAAe,iCAAiC,CAAC;AAE9D,eAAO,MAAM,mBAAmB,GAAI,eAAwB
|
|
1
|
+
{"version":3,"file":"resolve-endpoint-urls.d.ts","sourceRoot":"","sources":["../../src/create-client/resolve-endpoint-urls.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,eAAe,iCAAiC,CAAC;AAE9D,eAAO,MAAM,mBAAmB,GAAI,eAAwB;;;;CAO3D,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Frame } from '../normalize-frames/normalize-frames';
|
|
2
|
+
import type { RuntimeExecutionState } from './runtime-execution-state-types';
|
|
2
3
|
export type IngestOrigin = 'server' | 'client';
|
|
3
4
|
export type FrameResolution = 'exact' | 'partial' | 'none';
|
|
4
5
|
/** Wire stack frame — matches apps/api ingest StackFrame. */
|
|
@@ -20,12 +21,14 @@ export type IngestEvent = {
|
|
|
20
21
|
origin: IngestOrigin;
|
|
21
22
|
/** Whether stack frames were source-map resolved before send. */
|
|
22
23
|
resolution?: FrameResolution;
|
|
23
|
-
release
|
|
24
|
+
release: string;
|
|
24
25
|
request?: {
|
|
25
26
|
method?: string | null;
|
|
26
27
|
route?: string | null;
|
|
27
28
|
status?: number | null;
|
|
28
29
|
};
|
|
30
|
+
/** Bounded runtime state atomically associated with this error occurrence. */
|
|
31
|
+
runtime_state?: RuntimeExecutionState;
|
|
29
32
|
};
|
|
30
33
|
export type RequestContext = {
|
|
31
34
|
method?: string | null;
|
|
@@ -38,10 +41,11 @@ export type CreateIngestEventInput = {
|
|
|
38
41
|
frames: Frame[];
|
|
39
42
|
environment: string;
|
|
40
43
|
resolution: FrameResolution;
|
|
41
|
-
release
|
|
44
|
+
release: string;
|
|
42
45
|
request?: RequestContext;
|
|
43
46
|
origin: IngestOrigin;
|
|
44
47
|
occurredAt?: Date | string;
|
|
45
48
|
code?: string | null;
|
|
49
|
+
runtimeState?: RuntimeExecutionState;
|
|
46
50
|
};
|
|
47
51
|
//# sourceMappingURL=create-ingest-event-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-ingest-event-types.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/create-ingest-event-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-ingest-event-types.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/create-ingest-event-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG;IACzB,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,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,8EAA8E;IAC9E,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-ingest-event.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/create-ingest-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,gBAAgB,EAEhB,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,gBAAgB,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"create-ingest-event.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/create-ingest-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,gBAAgB,EAEhB,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAgDnC,eAAO,MAAM,mBAAmB,GAAI,QAAQ,KAAK,EAAE,KAAG,gBAAgB,EAIP,CAAC;AAEhE,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,GAC9B,OAAO,WAAW,EAClB,QAAQ,KAAK,EAAE,EACf,YAAY,eAAe,KACzB,WAID,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,GAAI,OAAO,sBAAsB,KAAG,WA4BjE,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire-facing runtime-state types kept inside the standalone SDK package. They mirror the server
|
|
3
|
+
* contract without importing the application's private `~db` graph, allowing the published SDK to
|
|
4
|
+
* remain independently buildable and usable by external projects.
|
|
5
|
+
*/
|
|
6
|
+
export type RuntimeExecutionKind = 'http' | 'serverless' | 'job' | 'scheduled' | 'custom';
|
|
7
|
+
export type RuntimeExecutionRequest = {
|
|
8
|
+
method?: string | null;
|
|
9
|
+
route?: string | null;
|
|
10
|
+
status?: number | null;
|
|
11
|
+
};
|
|
12
|
+
export type RuntimeExecutionMetadata = {
|
|
13
|
+
kind: RuntimeExecutionKind;
|
|
14
|
+
name?: string;
|
|
15
|
+
request?: RuntimeExecutionRequest;
|
|
16
|
+
};
|
|
17
|
+
export type RuntimeFunctionEnterEvent = {
|
|
18
|
+
type: 'function_enter';
|
|
19
|
+
callId: number;
|
|
20
|
+
functionId: string;
|
|
21
|
+
parentCallId?: number;
|
|
22
|
+
timestampMs: number;
|
|
23
|
+
args: unknown[];
|
|
24
|
+
};
|
|
25
|
+
export type RuntimeFunctionExitEvent = {
|
|
26
|
+
type: 'function_exit';
|
|
27
|
+
callId: number;
|
|
28
|
+
timestampMs: number;
|
|
29
|
+
durationMs: number;
|
|
30
|
+
returnValue?: unknown;
|
|
31
|
+
};
|
|
32
|
+
/** Source-mapped origin of the exception represented by a runtime-state throw event. */
|
|
33
|
+
export type RuntimeThrowLocation = {
|
|
34
|
+
file: string;
|
|
35
|
+
function?: string;
|
|
36
|
+
line?: number;
|
|
37
|
+
column?: number;
|
|
38
|
+
inApp: boolean;
|
|
39
|
+
};
|
|
40
|
+
export type RuntimeFunctionThrowEvent = {
|
|
41
|
+
type: 'function_throw';
|
|
42
|
+
callId: number;
|
|
43
|
+
timestampMs: number;
|
|
44
|
+
durationMs: number;
|
|
45
|
+
error?: unknown;
|
|
46
|
+
/** Collector-derived from the occurrence's already-resolved stack before persistence. */
|
|
47
|
+
throwLocation?: RuntimeThrowLocation;
|
|
48
|
+
};
|
|
49
|
+
/** Aggregates successful repeated calls that were intentionally not captured individually. */
|
|
50
|
+
export type RuntimeFunctionCallsSuppressedEvent = {
|
|
51
|
+
type: 'function_calls_suppressed';
|
|
52
|
+
functionId: string;
|
|
53
|
+
parentCallId?: number;
|
|
54
|
+
/** Timestamp of the first suppressed call. */
|
|
55
|
+
timestampMs: number;
|
|
56
|
+
/** Completion timestamp of the most recent suppressed call. */
|
|
57
|
+
lastTimestampMs: number;
|
|
58
|
+
suppressedCallCount: number;
|
|
59
|
+
/** Aggregate wall time of the suppressed calls. */
|
|
60
|
+
totalDurationMs: number;
|
|
61
|
+
};
|
|
62
|
+
export type RuntimeExecutionEvent = RuntimeFunctionEnterEvent | RuntimeFunctionExitEvent | RuntimeFunctionThrowEvent | RuntimeFunctionCallsSuppressedEvent;
|
|
63
|
+
export type RuntimeExecutionRecorderMetrics = {
|
|
64
|
+
/** Cumulative synchronous wall time spent in recorder-owned work for this execution. */
|
|
65
|
+
inlineWallTimeMs: number;
|
|
66
|
+
};
|
|
67
|
+
/** Bounded, redacted execution state captured at the moment an error is reported. */
|
|
68
|
+
export type RuntimeExecutionState = {
|
|
69
|
+
version: 1;
|
|
70
|
+
executionId: string;
|
|
71
|
+
startedAt: string;
|
|
72
|
+
durationMs: number;
|
|
73
|
+
/** Optional for compatibility with runtime states produced by older SDK versions. */
|
|
74
|
+
recorder?: RuntimeExecutionRecorderMetrics;
|
|
75
|
+
execution: RuntimeExecutionMetadata;
|
|
76
|
+
events: RuntimeExecutionEvent[];
|
|
77
|
+
truncated?: {
|
|
78
|
+
eventsDropped: number;
|
|
79
|
+
};
|
|
80
|
+
capture?: {
|
|
81
|
+
completeness: 'partial';
|
|
82
|
+
reason: 'process_memory_budget';
|
|
83
|
+
valuesDropped: number;
|
|
84
|
+
eventsDropped: number;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=runtime-execution-state-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-execution-state-types.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/runtime-execution-state-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate-ingest-message.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/truncate-ingest-message.ts"],"names":[],"mappings":"AAkIA,wFAAwF;AACxF,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,EAAE,iBAA4B,KAAG,MAenF,CAAC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
type DetectReleaseOptions = {
|
|
2
|
-
/** Explicit release (e.g. from RasputinInit). Wins over env when
|
|
3
|
-
release?: string
|
|
2
|
+
/** Explicit release (e.g. from RasputinInit). Wins over env when a valid SHA. */
|
|
3
|
+
release?: string;
|
|
4
4
|
/** Defaults to `process.env` — override in tests. */
|
|
5
5
|
env?: Record<string, string | undefined>;
|
|
6
|
+
/** Directory to probe for `.git` — defaults to `process.cwd()`. Override in tests. */
|
|
7
|
+
cwd?: string;
|
|
6
8
|
};
|
|
7
9
|
/**
|
|
8
10
|
* Resolve the deploy release / commit SHA.
|
|
9
|
-
* Order: explicit option → platform env
|
|
11
|
+
* Order: explicit option → `RASPUTIN_RELEASE` / platform env → `.git` HEAD → undefined (warns).
|
|
12
|
+
* Non-SHA values are skipped with a warning so ancestry checks never see `v1.2.3` or branch names.
|
|
10
13
|
*/
|
|
11
14
|
export declare const detectRelease: (options?: DetectReleaseOptions) => string | undefined;
|
|
12
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-release.d.ts","sourceRoot":"","sources":["../../src/detect-release/detect-release.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect-release.d.ts","sourceRoot":"","sources":["../../src/detect-release/detect-release.ts"],"names":[],"mappings":"AAGA,KAAK,oBAAoB,GAAG;IAC3B,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAkDF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,UAAS,oBAAyB,KAAG,MAAM,GAAG,SAyB3E,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
export { announceDeploy } from './announce-deploy/announce-deploy';
|
|
2
2
|
export { createClient } from './create-client/create-client';
|
|
3
|
-
export type { CaptureContext, RasputinClient, RasputinOptions, } from './create-client/create-client-types';
|
|
3
|
+
export type { CaptureContext, RasputinClient, RasputinClientStats, RasputinOptions, } from './create-client/create-client-types';
|
|
4
4
|
export { isClientEnabled } from './create-client/is-client-enabled';
|
|
5
|
+
export { resolveEndpointUrls } from './create-client/resolve-endpoint-urls';
|
|
5
6
|
export { createIngestEvent } from './create-ingest-event/create-ingest-event';
|
|
6
7
|
export type { RequestContext } from './create-ingest-event/create-ingest-event-types';
|
|
8
|
+
export type { RuntimeExecutionEvent, RuntimeExecutionKind, RuntimeExecutionMetadata, RuntimeExecutionRecorderMetrics, RuntimeExecutionRequest, RuntimeExecutionState, RuntimeFunctionCallsSuppressedEvent, RuntimeFunctionEnterEvent, RuntimeFunctionExitEvent, RuntimeFunctionThrowEvent, RuntimeThrowLocation, } from './create-ingest-event/runtime-execution-state-types';
|
|
7
9
|
export { detectRelease } from './detect-release/detect-release';
|
|
10
|
+
export type { InstrumentationArgIdentifier, InstrumentationManifestCallSite, InstrumentationManifestContent, InstrumentationManifestDestructure, InstrumentationManifestFunction, InstrumentationParamBinding, } from './instrumentation-manifest/instrumentation-manifest-types';
|
|
11
|
+
export { INSTRUMENTATION_MANIFEST_SCHEMA_VERSION } from './instrumentation-manifest/instrumentation-manifest-types';
|
|
12
|
+
export { uploadInstrumentationManifest } from './instrumentation-manifest/upload-instrumentation-manifest';
|
|
8
13
|
export type { Frame } from './normalize-frames/normalize-frames';
|
|
9
14
|
export { normalizeFrames } from './normalize-frames/normalize-frames';
|
|
10
15
|
export { parseStack } from './parse-stack/parse-stack';
|
|
11
16
|
export type { RawFrame } from './parse-stack/raw-frame';
|
|
17
|
+
export { repoRootFrom } from './repo-root/repo-root-from';
|
|
18
|
+
export { resolveRepoRoot } from './repo-root/resolve-repo-root';
|
|
12
19
|
export { resolveSourceMaps } from './resolve-source-maps/resolve-source-maps';
|
|
13
20
|
export type { ResolvedFrame, ResolveSourceMapsResult, } from './resolve-source-maps/resolved-frame';
|
|
14
21
|
export { createSuppression } from './suppression/create-suppression';
|
|
15
22
|
export type { CreateSuppressionOptions, IngestSummary, PrepareSummaryFrames, SummaryIdentity, SuppressionDecideInput, SuppressionDecideResult, } from './suppression/suppression-types';
|
|
16
23
|
export { createTransport } from './transport/create-transport';
|
|
17
|
-
export type { CreateTransportOptions, Transport, TransportPriority, } from './transport/transport-types';
|
|
24
|
+
export type { CreateTransportOptions, Transport, TransportPriority, TransportStats, } from './transport/transport-types';
|
|
18
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EACX,cAAc,EACd,cAAc,EACd,eAAe,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,YAAY,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,YAAY,EACX,aAAa,EACb,uBAAuB,GACvB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EACX,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EACX,sBAAsB,EACtB,SAAS,EACT,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,YAAY,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,YAAY,EACX,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACpB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EACX,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,2BAA2B,GAC3B,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,uCAAuC,EAAE,MAAM,2DAA2D,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,YAAY,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,YAAY,EACX,aAAa,EACb,uBAAuB,GACvB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EACX,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EACX,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,cAAc,GACd,MAAM,6BAA6B,CAAC"}
|