fg-tracker-sdk 0.16.0 → 0.16.1

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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog — fg-tracker-sdk
2
2
 
3
+ ## 0.16.1
4
+
5
+ Correção de compatibilidade do `node:http` (CONTRATO.md §16, T119). Nada removido, nenhuma opção nova.
6
+
7
+ - **Node 20.x e 22.0–22.11: chamadas por `node:http`/`node:https` voltam a gerar span `http.client` e a levar `traceparent`.** O SDK abria o span no canal `http.client.request.created`, que o Node só publica a partir do 22.12 (e 23.2). Nesses runtimes, nenhuma chamada do AWS SDK, axios, got, node-fetch 2, gaxios ou web-push aparecia no trace, e o serviço chamado abria outro trace. O `fetch` instrumentado não era afetado.
8
+ - Sem o canal, o mesmo aviso sai de `http.Agent.prototype.addRequest` (dentro do construtor do pedido, no contexto de quem chamou) e de `ClientRequest.prototype._implicitHeader` (pedido sem agente, como o do `ws`, ou agente que reimplementa `addRequest`), ambos antes dos headers. Um span por pedido e o `traceparent` apontando para ele, com as regras de sempre: só dentro de um trace, `propagateTraceTo`/`propagateBaggageTo`, header da aplicação preservado, coletor ignorado e uma chamada AWS = um span (S08).
9
+ - **Decidido uma vez por processo, pelo que o runtime publica**, não pela versão: uma sondagem constrói um `ClientRequest` com um agente que não conecta (sem socket, DNS ou span); se outra biblioteca já assina o canal, o SDK lê o construtor em vez de sondar, para ela não ver o pedido de teste. No Node 22.12+ nada muda: o canal nativo continua sendo o caminho, sem trocar método nenhum.
10
+ - Os dois métodos só são trocados enquanto houver um tracker ativo e voltam aos originais no último `tracker.shutdown()`. Se outra instrumentação embrulhar um deles por cima, o embrulho do SDK fica na cadeia, inerte, para não apagar o dela, e é reaproveitado por um tracker novo.
11
+ - Erro de pedido também no Node sem `http.client.request.error` (antes do 20.17 e do 22.6): o span recebe o erro por `events.errorMonitor`, que só observa (um pedido sem listener de `error` continua lançando). Antes, o span fechava só como `aborted`.
12
+
3
13
  ## 0.16.0
4
14
 
5
15
  Taxa de amostragem no span raiz (CONTRATO.md §4.6, §22). Nada removido e nenhuma opção nova. Retoma o #45 (que propunha a 0.12.0, nunca publicada) e vem depois da 0.15.0 (#58).
package/README.md CHANGED
@@ -253,6 +253,8 @@ O `fetch` cobre quem chama `fetch`. Todo o resto do ecossistema Node continua fa
253
253
 
254
254
  Vale para qualquer cliente, inclusive um que você nem sabe que existe dentro de uma dependência — e não depende de lembrar de envolver cada cliente. A implementação usa [`diagnostics_channel`](https://nodejs.org/api/diagnostics_channel.html), o ponto de observação que o próprio Node publica: nada é substituído por monkeypatch, nada quebra se outra biblioteca instrumentar o mesmo módulo, e a ordem de import não importa.
255
255
 
256
+ O canal que permite pôr o `traceparent` antes do envio (`http.client.request.created`) só existe a partir do Node 22.12 (e 23.2). No Node 20.x e no 22.0–22.11, o SDK (desde a 0.16.1) avisa o mesmo pedido por dois pontos do próprio `node:http` que rodam antes dos headers: `http.Agent.prototype.addRequest` e `ClientRequest.prototype._implicitHeader`. O resultado é o mesmo: um span por chamada, com o `traceparent` apontando para ele, para `http`/`https`, qualquer forma de chamada e `import`/`require`. O SDK decide uma vez por processo, pelo que o runtime realmente publica (uma sondagem que não abre socket nem consulta DNS), e não pela versão. Esses dois métodos só são trocados nesses runtimes, só enquanto houver um tracker ativo, e voltam aos originais no `tracker.shutdown()`. Se outra instrumentação embrulhar `addRequest` por cima, o embrulho do SDK fica na cadeia, inerte, para não apagar o dela.
257
+
256
258
  As regras são as mesmas do `fetch`: span `http.client` com o mesmo nome e `attributes.host`, só dentro de um trace em andamento (um poller de background não vira trace órfão), `traceparent` propagado conforme `propagateTraceTo` e sem tocar num header que o chamador já definiu, 5xx marcando erro no span, e chamadas ao próprio endpoint do FG Tracker ignoradas.
257
259
 
258
260
  Para desligar:
@@ -1 +1 @@
1
- {"version":3,"file":"node-http.d.ts","sourceRoot":"","sources":["../src/node-http.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AA0DjE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,IAAI,CA6FhE"}
1
+ {"version":3,"file":"node-http.d.ts","sourceRoot":"","sources":["../src/node-http.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAoNjE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,IAAI,CAmGhE"}
package/dist/node-http.js CHANGED
@@ -1,10 +1,152 @@
1
- import { subscribe, unsubscribe } from 'node:diagnostics_channel';
2
- import { BAGGAGE_HEADER, TRACEPARENT_HEADER, TRACESTATE_HEADER, traceContextHeaders } from './context.js';
1
+ import { channel, subscribe, unsubscribe } from 'node:diagnostics_channel';
2
+ import { errorMonitor } from 'node:events';
3
+ import http from 'node:http';
4
+ import { als, BAGGAGE_HEADER, TRACEPARENT_HEADER, TRACESTATE_HEADER, traceContextHeaders } from './context.js';
3
5
  import { httpClientSemconv, normalizePath } from './normalize.js';
4
6
  import { shouldPropagate } from './tracker.js';
5
7
  const CREATED = 'http.client.request.created';
6
8
  const RESPONSE = 'http.client.response.finish';
7
9
  const ERROR = 'http.client.request.error';
10
+ let createdPublisher;
11
+ /**
12
+ * O runtime publica `created` no construtor do `ClientRequest`, antes dos headers?
13
+ *
14
+ * Decidido uma vez por processo, pelo que o runtime faz, não pela versão (o 22.11
15
+ * não publica, o 22.12 publica; um backport mudaria a conta) nem por
16
+ * `channel()`/`hasSubscribers`, que dizem se há inscritos, não se alguém publica.
17
+ */
18
+ function publishesCreated() {
19
+ createdPublisher ??= channel(CREATED).hasSubscribers ? constructorPublishesCreated() : probeCreated();
20
+ return createdPublisher;
21
+ }
22
+ /**
23
+ * Sondagem: um `ClientRequest` com um agente que só guarda o pedido. Nenhum
24
+ * socket, DNS ou byte na rede, e o pedido nunca termina. Roda fora de qualquer
25
+ * trace e antes de qualquer tracker deste módulo se inscrever, então não gera
26
+ * span; e só roda sem outros inscritos em `created`, então ninguém mais a vê.
27
+ */
28
+ function probeCreated() {
29
+ let probe;
30
+ let published = false;
31
+ const listener = (message) => {
32
+ if (probe && message.request === probe)
33
+ published = true;
34
+ };
35
+ const agent = { addRequest: (request) => { probe = request; } };
36
+ subscribe(CREATED, listener);
37
+ try {
38
+ als.exit(() => new http.ClientRequest({ agent: agent, host: 'fg-tracker-probe.invalid', path: '/' }));
39
+ }
40
+ catch {
41
+ // Construtor diferente do esperado: os ganchos funcionam em qualquer runtime.
42
+ }
43
+ finally {
44
+ unsubscribe(CREATED, listener);
45
+ }
46
+ return published;
47
+ }
48
+ /**
49
+ * Com outro inscrito em `created`, a sondagem chegaria a ele como um pedido de
50
+ * verdade. Então basta ler o construtor: nos runtimes com o canal, ele contém a
51
+ * publicação (`onClientRequestCreatedChannel.publish`). Se um Node futuro mudar
52
+ * esse nome, a resposta é "não" e os ganchos assumem, o que também funciona.
53
+ */
54
+ function constructorPublishesCreated() {
55
+ try {
56
+ return /CreatedChannel\.publish\(/.test(Function.prototype.toString.call(http.ClientRequest));
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ /* ----------------------------- runtimes sem `created`: aviso antes dos headers */
63
+ const createdListeners = new Set();
64
+ // Um pedido é avisado uma vez só, pelo primeiro dos dois pontos que alcançar.
65
+ const announced = new WeakSet();
66
+ function announceCreated(request) {
67
+ if (createdListeners.size === 0 || typeof request !== 'object' || request === null || announced.has(request))
68
+ return;
69
+ announced.add(request);
70
+ for (const listener of createdListeners) {
71
+ try {
72
+ listener({ request });
73
+ }
74
+ catch {
75
+ // A instrumentação nunca derruba a chamada da aplicação.
76
+ }
77
+ }
78
+ }
79
+ /**
80
+ * Os dois pontos do `node:http` que todo pedido atravessa antes dos headers irem
81
+ * para a rede, nos runtimes sem `created` (código congelado: 20.x, 22.0–22.11):
82
+ *
83
+ * - `Agent.prototype.addRequest`: chamado de dentro do construtor do
84
+ * `ClientRequest`, no mesmo contexto assíncrono de quem chamou, como o
85
+ * `created`. Vale para o agente global, `agent: false`, `new http.Agent()` e o
86
+ * `https.Agent` (que herda o método), por qualquer forma de chamada:
87
+ * `http.request`/`get`, `https.request`/`get`, `new ClientRequest`, imports ESM
88
+ * nomeados ou um `require` desestruturado antes do tracker existir.
89
+ * - `ClientRequest.prototype._implicitHeader`: onde os headers adiados são
90
+ * montados (primeiro `write`, `end` ou `flushHeaders`). Cobre o pedido sem
91
+ * agente (`createConnection`, como o do `ws`) e o agente que reimplementa
92
+ * `addRequest`; nesse caso o contexto é o de quem escreveu no pedido.
93
+ *
94
+ * Header passado como array ou com `expect` é montado no próprio construtor, e
95
+ * então nem o `created` nativo consegue propagar: o span sai, sem `traceparent`.
96
+ */
97
+ const preSendHooks = [
98
+ {
99
+ target: http.Agent.prototype,
100
+ key: 'addRequest',
101
+ wrap: (original) => function addRequest(...args) {
102
+ announceCreated(args[0]);
103
+ return Reflect.apply(original, this, args);
104
+ },
105
+ },
106
+ {
107
+ target: http.ClientRequest.prototype,
108
+ key: '_implicitHeader',
109
+ wrap: (original) => function _implicitHeader(...args) {
110
+ announceCreated(this);
111
+ return Reflect.apply(original, this, args);
112
+ },
113
+ },
114
+ ];
115
+ function listenPreSend(listener) {
116
+ createdListeners.add(listener);
117
+ if (createdListeners.size !== 1)
118
+ return;
119
+ for (const hook of preSendHooks) {
120
+ // Ainda na cadeia de uma ativação anterior (outra instrumentação embrulhou por cima): reaproveita.
121
+ if (hook.wrapper)
122
+ continue;
123
+ const original = hook.target[hook.key];
124
+ if (typeof original !== 'function')
125
+ continue;
126
+ const wrapper = hook.wrap(original);
127
+ try {
128
+ hook.target[hook.key] = wrapper;
129
+ }
130
+ catch {
131
+ continue;
132
+ }
133
+ hook.original = original;
134
+ hook.wrapper = wrapper;
135
+ }
136
+ }
137
+ function unlistenPreSend(listener) {
138
+ if (!createdListeners.delete(listener) || createdListeners.size > 0)
139
+ return;
140
+ for (const hook of preSendHooks) {
141
+ // Só desfaz o que ainda é o topo. Se outra instrumentação embrulhou por cima,
142
+ // tirar o nosso apagaria o dela: o nosso fica na cadeia, inerte sem ouvintes.
143
+ if (!hook.wrapper || hook.target[hook.key] !== hook.wrapper)
144
+ continue;
145
+ hook.target[hook.key] = hook.original;
146
+ hook.original = undefined;
147
+ hook.wrapper = undefined;
148
+ }
149
+ }
8
150
  /**
9
151
  * URL absoluta da requisição. `request.path` traz caminho + query, e o header
10
152
  * `host` traz host + porta — juntos reconstroem a origem sem depender de
@@ -91,12 +233,15 @@ export function instrumentNodeHttp(core) {
91
233
  }
92
234
  }
93
235
  // Rede de segurança: requisição abortada ou destruída sem resposta nem erro
94
- // não pode deixar o span aberto para sempre.
236
+ // não pode deixar o span aberto para sempre. O `errorMonitor` leva o erro ao
237
+ // span onde o Node não publica `http.client.request.error` (antes do 20.17 e
238
+ // do 22.6) e só observa: um pedido sem listener de `error` continua lançando.
95
239
  try {
240
+ request.on(errorMonitor, (error) => finish(request, (open) => open.setError(error)));
96
241
  request.once('close', () => finish(request, (open) => open.setAttribute('aborted', true)));
97
242
  }
98
243
  catch {
99
- // `once` indisponível: o span ainda fecha por `response.finish` ou `error`.
244
+ // `on`/`once` indisponíveis: o span ainda fecha por `response.finish` ou `error`.
100
245
  }
101
246
  };
102
247
  const onResponse = (message) => {
@@ -116,11 +261,18 @@ export function instrumentNodeHttp(core) {
116
261
  return;
117
262
  finish(request, (span) => span.setError(error));
118
263
  };
119
- subscribe(CREATED, onCreated);
264
+ const native = publishesCreated();
265
+ if (native)
266
+ subscribe(CREATED, onCreated);
267
+ else
268
+ listenPreSend(onCreated);
120
269
  subscribe(RESPONSE, onResponse);
121
270
  subscribe(ERROR, onError);
122
271
  return () => {
123
- unsubscribe(CREATED, onCreated);
272
+ if (native)
273
+ unsubscribe(CREATED, onCreated);
274
+ else
275
+ unlistenPreSend(onCreated);
124
276
  unsubscribe(RESPONSE, onResponse);
125
277
  unsubscribe(ERROR, onError);
126
278
  };
@@ -1 +1 @@
1
- {"version":3,"file":"node-http.js","sourceRoot":"","sources":["../src/node-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-http.js","sourceRoot":"","sources":["../src/node-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;AAyCjE,MAAM,OAAO,GAAG,6BAA6B,CAAC;AAC9C,MAAM,QAAQ,GAAG,6BAA6B,CAAC;AAC/C,MAAM,KAAK,GAAG,2BAA2B,CAAC;AAI1C,IAAI,gBAAqC,CAAC;AAE1C;;;;;;GAMG;AACH,SAAS,gBAAgB;IACvB,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;IACtG,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY;IACnB,IAAI,KAAyB,CAAC;IAC9B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAC1C,IAAI,KAAK,IAAK,OAAiC,CAAC,OAAO,KAAK,KAAK;YAAE,SAAS,GAAG,IAAI,CAAC;IACtF,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAA8B,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjI,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;IAChF,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B;IAClC,IAAI,CAAC;QACH,OAAO,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,mFAAmF;AAEnF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;AACpD,8EAA8E;AAC9E,MAAM,SAAS,GAAG,IAAI,OAAO,EAAU,CAAC;AAExC,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IACrH,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAUD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,YAAY,GAAkB;IAClC;QACE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAA+C;QAClE,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACjB,SAAS,UAAU,CAAgB,GAAG,IAAe;YACnD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACJ;IACD;QACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,SAA+C;QAC1E,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACjB,SAAS,eAAe,CAAgB,GAAG,IAAe;YACxD,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACJ;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,QAAyB;IAC9C,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IACxC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,mGAAmG;QACnG,IAAI,IAAI,CAAC,OAAO;YAAE,SAAS;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,SAAS;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAA2C,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAA2C,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAyB;IAChD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO;IAC5E,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,8EAA8E;QAC9E,8EAA8E;QAC9E,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO;YAAE,SAAS;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,OAA0B;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,yEAAyE;IACzE,4EAA4E;IAC5E,yCAAyC;IACzC,MAAM,KAAK,GAAG,IAAI,OAAO,EAAsB,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,KAAiC,EAAQ,EAAE;QAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,kEAAkE;QAClE,iEAAiE;QACjE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAC3C,MAAM,OAAO,GAAI,OAA2C,CAAC,OAAO,CAAC;QACrE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU;YAAE,OAAO;QAChE,gGAAgG;QAChG,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;YAAE,OAAO;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,2EAA2E;QAC3E,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO;QAE7E,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE;YAClG,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;YAC3C,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,iBAAiB,CAAC,GAAG,CAAC;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEzB,gFAAgF;QAChF,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1H,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAE,CAAC,CAAC;gBACpE,IAAI,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC;oBAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC1I,gFAAgF;gBAChF,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;oBAAE,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrK,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,kFAAkF;YACpF,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,IAAI,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7F,CAAC;QAAC,MAAM,CAAC;YACP,kFAAkF;QACpF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAC5C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAwD,CAAC;QACvF,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO;QAClC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;YAC3C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG;gBAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,EAAE,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAQ,EAAE;QACzC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAgD,CAAC;QAC5E,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,IAAI,MAAM;QAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;;QACrC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9B,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE1B,OAAO,GAAG,EAAE;QACV,IAAI,MAAM;YAAE,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;;YACvC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fg-tracker-sdk",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "description": "SDK de instrumentação Node para o FG Tracker (Express, NestJS, Next.js, pg, fetch), tracing distribuído, releases, check-ins de jobs, envio de logs (pino, winston, NestJS Logger) e agregados de infraestrutura (AWS SDK v3, pool de conexões, ECS, Lambda)",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/FORTGROUND/fg-tracker/tree/main/packages/sdk#readme",