fg-tracker-sdk 0.9.0 → 0.11.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/CHANGELOG.md +36 -0
- package/README.md +83 -10
- package/dist/context.d.ts +16 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +27 -0
- package/dist/context.js.map +1 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +34 -5
- package/dist/database.js.map +1 -1
- package/dist/exit-hooks.d.ts +23 -0
- package/dist/exit-hooks.d.ts.map +1 -0
- package/dist/exit-hooks.js +88 -0
- package/dist/exit-hooks.js.map +1 -0
- package/dist/express.js +2 -2
- package/dist/express.js.map +1 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetch.js +16 -8
- package/dist/fetch.js.map +1 -1
- package/dist/global-errors.d.ts +8 -5
- package/dist/global-errors.d.ts.map +1 -1
- package/dist/global-errors.js +59 -10
- package/dist/global-errors.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -7
- package/dist/index.js.map +1 -1
- package/dist/infra/aggregator.d.ts +5 -0
- package/dist/infra/aggregator.d.ts.map +1 -1
- package/dist/infra/aggregator.js.map +1 -1
- package/dist/infra/aws.d.ts +45 -3
- package/dist/infra/aws.d.ts.map +1 -1
- package/dist/infra/aws.js +419 -29
- package/dist/infra/aws.js.map +1 -1
- package/dist/infra/lambda.d.ts +19 -0
- package/dist/infra/lambda.d.ts.map +1 -1
- package/dist/infra/lambda.js +63 -10
- package/dist/infra/lambda.js.map +1 -1
- package/dist/infra/messaging.d.ts +133 -0
- package/dist/infra/messaging.d.ts.map +1 -0
- package/dist/infra/messaging.js +366 -0
- package/dist/infra/messaging.js.map +1 -0
- package/dist/logs/shipper.d.ts +5 -4
- package/dist/logs/shipper.d.ts.map +1 -1
- package/dist/logs/shipper.js +170 -52
- package/dist/logs/shipper.js.map +1 -1
- package/dist/logs/types.d.ts +18 -2
- package/dist/logs/types.d.ts.map +1 -1
- package/dist/next.js +2 -2
- package/dist/next.js.map +1 -1
- package/dist/node-http.d.ts.map +1 -1
- package/dist/node-http.js +7 -3
- package/dist/node-http.js.map +1 -1
- package/dist/normalize.d.ts +32 -0
- package/dist/normalize.d.ts.map +1 -1
- package/dist/normalize.js +165 -10
- package/dist/normalize.js.map +1 -1
- package/dist/pg.d.ts +8 -3
- package/dist/pg.d.ts.map +1 -1
- package/dist/pg.js +512 -41
- package/dist/pg.js.map +1 -1
- package/dist/scrub.d.ts +5 -0
- package/dist/scrub.d.ts.map +1 -1
- package/dist/scrub.js +17 -1
- package/dist/scrub.js.map +1 -1
- package/dist/tracker.d.ts +109 -7
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +502 -95
- package/dist/tracker.js.map +1 -1
- package/dist/transport.d.ts +115 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +323 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +61 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -1
package/dist/scrub.js
CHANGED
|
@@ -29,6 +29,22 @@ export function scrubAttributes(attributes, fields) {
|
|
|
29
29
|
export function matchesAny(value, patterns) {
|
|
30
30
|
if (!patterns || patterns.length === 0)
|
|
31
31
|
return false;
|
|
32
|
-
return patterns.some((pattern) => (pattern instanceof RegExp ? pattern
|
|
32
|
+
return patterns.some((pattern) => (pattern instanceof RegExp ? testPattern(pattern, value) : value.includes(pattern)));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* `RegExp.test` sem depender de estado: com flag `g` ou `y`, `test` começa em `lastIndex` e o
|
|
36
|
+
* avança, e a mesma regra alternaria entre casar e não casar a cada chamada.
|
|
37
|
+
*/
|
|
38
|
+
export function testPattern(pattern, value) {
|
|
39
|
+
if (!pattern.global && !pattern.sticky)
|
|
40
|
+
return pattern.test(value);
|
|
41
|
+
const previous = pattern.lastIndex;
|
|
42
|
+
pattern.lastIndex = 0;
|
|
43
|
+
try {
|
|
44
|
+
return pattern.test(value);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
pattern.lastIndex = previous;
|
|
48
|
+
}
|
|
33
49
|
}
|
|
34
50
|
//# sourceMappingURL=scrub.js.map
|
package/dist/scrub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../src/scrub.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY;IAChF,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa;CAC3H,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AACrC,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAAgB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5L,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,MAAgB,EAAE,KAAK,GAAG,CAAC;IACpE,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9H,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAmC,EAAE,MAAgB;IACnF,OAAO,UAAU,CAAC,UAAU,EAAE,MAAM,CAA4B,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,QAAyC;IACjF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../src/scrub.ts"],"names":[],"mappings":"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"}
|
package/dist/tracker.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type SpanContext } from './context.js';
|
|
2
|
+
import { type ExitParticipant } from './exit-hooks.js';
|
|
2
3
|
import { InfraAggregator } from './infra/aggregator.js';
|
|
4
|
+
import { type Compression } from './transport.js';
|
|
3
5
|
import type { ActiveSpan, PropagationTargets, SamplingContext, Span, SpanError, SpanKind, TrackerOptions, UserRef } from './types.js';
|
|
4
6
|
export interface ResolvedOptions {
|
|
5
7
|
apiKey: string;
|
|
@@ -20,6 +22,14 @@ export interface ResolvedOptions {
|
|
|
20
22
|
enabled: boolean;
|
|
21
23
|
debug: boolean;
|
|
22
24
|
fetch: typeof globalThis.fetch;
|
|
25
|
+
maxQueueBytes: number;
|
|
26
|
+
maxBatchBytes: number;
|
|
27
|
+
requestTimeoutMs: number;
|
|
28
|
+
shutdownTimeoutMs: number;
|
|
29
|
+
compression: Compression;
|
|
30
|
+
exitHooks: boolean;
|
|
31
|
+
sendUnsampledErrors: boolean;
|
|
32
|
+
respectUpstreamSampling: boolean;
|
|
23
33
|
infraEnabled: boolean;
|
|
24
34
|
infraIdleIntervalMs: number;
|
|
25
35
|
autoSpanMinDurationMs: number;
|
|
@@ -36,20 +46,50 @@ export declare function shouldPropagate(targets: PropagationTargets, url: URL):
|
|
|
36
46
|
* Núcleo do tracker: constrói spans, mantém a fila e faz o envio em lote.
|
|
37
47
|
* As integrações (express, pg, next, fetch) ficam em arquivos separados e só
|
|
38
48
|
* usam `startSpan` / `runInSpan`.
|
|
49
|
+
*
|
|
50
|
+
* Envio (CONTRATO.md §4.3): lotes limitados por bytes (`maxBatchBytes`) e por 1000 spans, uma
|
|
51
|
+
* requisição por vez, timeout de 10 s, backoff exponencial com jitter e `Retry-After` em
|
|
52
|
+
* rede/408/429/5xx, 413 divide o lote, outro 4xx descarta. Spans recusados num 202 parcial não
|
|
53
|
+
* são reenviados (a recusa se repetiria); agregados de infra em `retryableIds` voltam para a fila.
|
|
39
54
|
*/
|
|
40
|
-
export declare class TrackerCore {
|
|
55
|
+
export declare class TrackerCore implements ExitParticipant {
|
|
41
56
|
readonly options: ResolvedOptions;
|
|
42
57
|
private queue;
|
|
58
|
+
private queueBytes;
|
|
43
59
|
private timer;
|
|
44
60
|
private flushing;
|
|
45
61
|
private warnedFailure;
|
|
62
|
+
private warnedRejected;
|
|
46
63
|
private stopped;
|
|
64
|
+
/** Prazo do encerramento em andamento (epoch ms): nenhum envio passa dele. */
|
|
65
|
+
/** Prazos de encerramento ativos; vale o menor (`deadline`). */
|
|
66
|
+
private readonly deadlines;
|
|
67
|
+
private get deadline();
|
|
68
|
+
/** Spans descartados por limite de fila ou por 4xx desde o último aviso. */
|
|
69
|
+
dropped: number;
|
|
70
|
+
private readonly sender;
|
|
71
|
+
/** Teto atual do corpo: começa em `maxBatchBytes` e cai pela metade a cada 413. */
|
|
72
|
+
private batchBytes;
|
|
73
|
+
/** Teto de itens por lote: só cai quando um 413 chega com o teto de bytes já no mínimo. */
|
|
74
|
+
private batchItems;
|
|
75
|
+
/** Enfileiramentos desde a última tentativa de envio na saída do processo. */
|
|
76
|
+
private enqueuedSinceExit;
|
|
77
|
+
private readonly unregisterExit;
|
|
78
|
+
/**
|
|
79
|
+
* Raízes locais (por `spanId`) de traces não amostrados em que um descendente falhou: quando
|
|
80
|
+
* fecham, também são enviadas (`sendUnsampledErrors`). A chave é a raiz, não o trace: duas
|
|
81
|
+
* requisições do mesmo trace distribuído têm raízes locais diferentes.
|
|
82
|
+
*/
|
|
83
|
+
private readonly keptRoots;
|
|
47
84
|
/** Spans ainda abertos, por spanId — permite `currentSpan()` a partir do contexto assíncrono. */
|
|
48
85
|
private readonly active;
|
|
49
86
|
/** Agregados de infra (nunca amostrados); `null` quando `infra.enabled === false`. */
|
|
50
87
|
readonly infra: InfraAggregator | null;
|
|
51
88
|
/** Agregados já fechados aguardando envio (retentativa após falha). */
|
|
52
89
|
private infraPending;
|
|
90
|
+
/** Identidade dos agregados deste processo: `<emissor>:<sequência>` (dedupe no servidor). */
|
|
91
|
+
private readonly emitterId;
|
|
92
|
+
private infraSeq;
|
|
53
93
|
/** A janela de infra venceu: o próximo flush fecha o agregador e envia junto dos spans. */
|
|
54
94
|
private infraDue;
|
|
55
95
|
private infraTimer;
|
|
@@ -63,16 +103,23 @@ export declare class TrackerCore {
|
|
|
63
103
|
private readonly eventLoop;
|
|
64
104
|
constructor(options: TrackerOptions);
|
|
65
105
|
get enabled(): boolean;
|
|
106
|
+
/** Spans aguardando envio. */
|
|
107
|
+
get queueSize(): number;
|
|
108
|
+
get exitTimeoutMs(): number;
|
|
66
109
|
currentContext(): SpanContext | undefined;
|
|
67
110
|
/** Cria um span; o pai é o contexto assíncrono atual, salvo se `parent` for informado. */
|
|
68
111
|
startSpan(kind: SpanKind, name: string, attributes?: Record<string, unknown>, parent?: SpanContext | null): ActiveSpanImpl;
|
|
112
|
+
/** Raiz local de um span ainda aberto (sobe pelos pais abertos); senão o próprio id. */
|
|
113
|
+
private localRootOf;
|
|
69
114
|
private decorate;
|
|
70
115
|
/** `ignoreTransactions` → nunca; `tracesSampler` → fração/boolean; senão `tracesSampleRate`. */
|
|
71
|
-
decideSampling(context: SamplingContext): boolean;
|
|
116
|
+
decideSampling(context: SamplingContext, exclusionChecked?: boolean): boolean;
|
|
72
117
|
/**
|
|
73
118
|
* Continua um trace recebido de outro serviço: mesmo `traceId`, mas o span nasce como
|
|
74
119
|
* raiz local (`parentSpanId` null) e guarda o pai remoto em `attributes.remoteParentSpanId`,
|
|
75
|
-
* para as métricas por requisição continuarem contando este serviço.
|
|
120
|
+
* para as métricas por requisição continuarem contando este serviço. Não herda o contexto
|
|
121
|
+
* assíncrono atual: cada mensagem de um lote tem o próprio pai remoto.
|
|
122
|
+
* A flag `00` do `traceparent` vale aqui, salvo `respectUpstreamSampling: false`.
|
|
76
123
|
*/
|
|
77
124
|
startRemoteRoot(kind: SpanKind, name: string, attributes: Record<string, unknown>, remote: SpanContext): ActiveSpanImpl;
|
|
78
125
|
/**
|
|
@@ -94,6 +141,8 @@ export declare class TrackerCore {
|
|
|
94
141
|
traceHeaders(): Record<string, string>;
|
|
95
142
|
/** Chamado por ActiveSpanImpl.end(): amostragem, ignoreErrors, scrubbing e beforeSend. */
|
|
96
143
|
finishSpan(span: ActiveSpanImpl, payload: Span): void;
|
|
144
|
+
private isFailure;
|
|
145
|
+
private keepRoot;
|
|
97
146
|
/**
|
|
98
147
|
* Registra um span que já terminou, sem ter existido um `ActiveSpanImpl`
|
|
99
148
|
* durante a execução.
|
|
@@ -117,13 +166,41 @@ export declare class TrackerCore {
|
|
|
117
166
|
/** Executa `fn` com `span` como contexto pai das operações internas. */
|
|
118
167
|
runInSpan<T>(span: ActiveSpanImpl, fn: () => T): T;
|
|
119
168
|
enqueue(span: Span): void;
|
|
169
|
+
/** Acima dos limites (spans ou bytes), descarta os mais antigos para não crescer sem limite. */
|
|
170
|
+
private trimQueue;
|
|
120
171
|
/**
|
|
121
172
|
* Envia a fila. `includeInfra` (default `true`) também fecha a janela de infra e envia os
|
|
122
173
|
* agregados no mesmo lote; o timer de spans chama com `false` para respeitar a janela de 60 s/5 s.
|
|
174
|
+
* Não espera o backoff: em backoff, volta na hora e o próximo flush tenta.
|
|
123
175
|
*/
|
|
124
176
|
flush(includeInfra?: boolean): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Envia o que der até `deadline`, sem esperar backoff (fim de invocação da Lambda). Aborta a
|
|
179
|
+
* requisição em andamento no prazo: nada fica pendurado no congelamento do ambiente.
|
|
180
|
+
*/
|
|
181
|
+
flushUntil(deadline: number): Promise<void>;
|
|
125
182
|
private hasInfraToSend;
|
|
126
|
-
|
|
183
|
+
/**
|
|
184
|
+
* Laço de envio. `waitBackoff` (encerramento) espera o backoff enquanto couber no prazo;
|
|
185
|
+
* sem ele, uma falha devolve o lote à fila e encerra o laço.
|
|
186
|
+
*/
|
|
187
|
+
private drain;
|
|
188
|
+
/**
|
|
189
|
+
* Monta o próximo lote: agregados (até 500) e depois spans (até 1000), todos dentro do teto de
|
|
190
|
+
* bytes e do teto de itens (este só cai depois de 413 com o teto de bytes no mínimo). Sempre leva
|
|
191
|
+
* pelo menos um item.
|
|
192
|
+
*/
|
|
193
|
+
private takeBatch;
|
|
194
|
+
/** Aplica o resultado do envio. Devolve `false` quando o lote voltou para a fila (backoff). */
|
|
195
|
+
private handleResult;
|
|
196
|
+
/** Devolve o lote para a frente da fila (os limites de memória continuam valendo). */
|
|
197
|
+
private requeue;
|
|
198
|
+
/**
|
|
199
|
+
* 202 da ingestão: `live`/`liveIntervalMs` (infra ao vivo), spans recusados (não reenvia: a
|
|
200
|
+
* recusa se repetiria) e agregados de infra com falha transitória (`retryableIds`, reenvia só
|
|
201
|
+
* esses). Devolve `true` quando algum agregado voltou para a fila.
|
|
202
|
+
*/
|
|
203
|
+
private readIngestResponse;
|
|
127
204
|
private pushInfraPending;
|
|
128
205
|
/** Mesma política dos spans: acima do limite, descarta os agregados mais antigos. */
|
|
129
206
|
private trimInfraPending;
|
|
@@ -137,9 +214,22 @@ export declare class TrackerCore {
|
|
|
137
214
|
onShutdown(dispose: () => void): () => void;
|
|
138
215
|
/** POST autenticado na API (ingest, check-ins, releases). Devolve a resposta ou `null` em falha de rede. */
|
|
139
216
|
post(path: string, body: unknown, timeoutMs?: number): Promise<Response | null>;
|
|
140
|
-
private send;
|
|
141
217
|
warnOnce(message: string): void;
|
|
142
|
-
|
|
218
|
+
hasPendingForExit(): boolean;
|
|
219
|
+
/** Saída do processo sem `shutdown()` (`beforeExit`, SIGTERM/SIGINT): envia com prazo, sem parar o tracker. */
|
|
220
|
+
flushForExit(deadline: number): Promise<void>;
|
|
221
|
+
/**
|
|
222
|
+
* Envia tudo o que der até `deadline`, esperando backoff/`Retry-After` quando cabe no prazo.
|
|
223
|
+
* A requisição em andamento é abortada no prazo.
|
|
224
|
+
*/
|
|
225
|
+
private sendUntil;
|
|
226
|
+
/**
|
|
227
|
+
* Para os timers e envia o que restou em até `timeoutMs` (default `shutdownTimeoutMs`, 10 s).
|
|
228
|
+
* Com a API muda ou fora, volta no prazo; o que não saiu é descartado (e contado em `dropped`).
|
|
229
|
+
*/
|
|
230
|
+
shutdown(options?: {
|
|
231
|
+
timeoutMs?: number;
|
|
232
|
+
}): Promise<void>;
|
|
143
233
|
}
|
|
144
234
|
export declare function userAttributes(user: UserRef | null): Record<string, unknown>;
|
|
145
235
|
export declare class ActiveSpanImpl implements ActiveSpan {
|
|
@@ -149,6 +239,10 @@ export declare class ActiveSpanImpl implements ActiveSpan {
|
|
|
149
239
|
readonly parentSpanId: string | null;
|
|
150
240
|
readonly kind: SpanKind;
|
|
151
241
|
readonly sampled: boolean;
|
|
242
|
+
/** Trace excluído por `ignoreTransactions`: nunca enviado (nem com `sendUnsampledErrors`). */
|
|
243
|
+
readonly ignored: boolean;
|
|
244
|
+
/** `spanId` da raiz local deste ramo (o próprio, quando o span é raiz local). */
|
|
245
|
+
readonly localRootId: string;
|
|
152
246
|
name: string;
|
|
153
247
|
method: string | null;
|
|
154
248
|
route: string | null;
|
|
@@ -158,8 +252,16 @@ export declare class ActiveSpanImpl implements ActiveSpan {
|
|
|
158
252
|
private readonly startedAt;
|
|
159
253
|
private readonly startedPerf;
|
|
160
254
|
private ended;
|
|
161
|
-
|
|
255
|
+
/** `tracestate` herdado do serviço a montante (repassado na propagação). */
|
|
256
|
+
traceState?: string;
|
|
257
|
+
constructor(core: TrackerCore, traceId: string, spanId: string, parentSpanId: string | null, kind: SpanKind, name: string, attributes: Record<string, unknown>, sampled?: boolean,
|
|
258
|
+
/** Trace excluído por `ignoreTransactions`: nunca enviado (nem com `sendUnsampledErrors`). */
|
|
259
|
+
ignored?: boolean,
|
|
260
|
+
/** `spanId` da raiz local deste ramo (o próprio, quando o span é raiz local). */
|
|
261
|
+
localRootId?: string);
|
|
162
262
|
setAttribute(key: string, value: unknown): void;
|
|
263
|
+
/** Contexto deste span para o `AsyncLocalStorage` e para a propagação. */
|
|
264
|
+
context(): SpanContext;
|
|
163
265
|
setError(err: unknown): void;
|
|
164
266
|
setUser(user: UserRef | null): void;
|
|
165
267
|
end(): void;
|
package/dist/tracker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
|