@caracalai/core 0.1.6-rc.3 → 0.2.0-rc.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.
Files changed (63) hide show
  1. package/dist/audit.d.ts.map +1 -1
  2. package/dist/audit.js +4 -1
  3. package/dist/audit.js.map +1 -1
  4. package/dist/crypto.d.ts +0 -14
  5. package/dist/crypto.d.ts.map +1 -1
  6. package/dist/crypto.js +5 -67
  7. package/dist/crypto.js.map +1 -1
  8. package/dist/errors.d.ts +10 -1
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +16 -0
  11. package/dist/errors.js.map +1 -1
  12. package/dist/index.d.ts +1 -12
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -13
  15. package/dist/index.js.map +1 -1
  16. package/dist/json.d.ts.map +1 -1
  17. package/dist/logging.d.ts.map +1 -1
  18. package/dist/logging.js.map +1 -1
  19. package/package.json +4 -11
  20. package/dist/accountAssertion.d.ts +0 -5
  21. package/dist/accountAssertion.d.ts.map +0 -1
  22. package/dist/accountAssertion.js +0 -62
  23. package/dist/accountAssertion.js.map +0 -1
  24. package/dist/async.d.ts +0 -2
  25. package/dist/async.d.ts.map +0 -1
  26. package/dist/async.js +0 -27
  27. package/dist/async.js.map +0 -1
  28. package/dist/config.d.ts +0 -6
  29. package/dist/config.d.ts.map +0 -1
  30. package/dist/config.js +0 -60
  31. package/dist/config.js.map +0 -1
  32. package/dist/consoleToken.d.ts +0 -3
  33. package/dist/consoleToken.d.ts.map +0 -1
  34. package/dist/consoleToken.js +0 -33
  35. package/dist/consoleToken.js.map +0 -1
  36. package/dist/env.d.ts +0 -5
  37. package/dist/env.d.ts.map +0 -1
  38. package/dist/env.js +0 -28
  39. package/dist/env.js.map +0 -1
  40. package/dist/envfile.d.ts +0 -19
  41. package/dist/envfile.d.ts.map +0 -1
  42. package/dist/envfile.js +0 -167
  43. package/dist/envfile.js.map +0 -1
  44. package/dist/lifecycle.d.ts +0 -17
  45. package/dist/lifecycle.d.ts.map +0 -1
  46. package/dist/lifecycle.js +0 -66
  47. package/dist/lifecycle.js.map +0 -1
  48. package/dist/metrics.d.ts +0 -4
  49. package/dist/metrics.d.ts.map +0 -1
  50. package/dist/metrics.js +0 -43
  51. package/dist/metrics.js.map +0 -1
  52. package/dist/operatorAssertion.d.ts +0 -8
  53. package/dist/operatorAssertion.d.ts.map +0 -1
  54. package/dist/operatorAssertion.js +0 -70
  55. package/dist/operatorAssertion.js.map +0 -1
  56. package/dist/telemetry.d.ts +0 -10
  57. package/dist/telemetry.d.ts.map +0 -1
  58. package/dist/telemetry.js +0 -98
  59. package/dist/telemetry.js.map +0 -1
  60. package/dist/url.d.ts +0 -3
  61. package/dist/url.d.ts.map +0 -1
  62. package/dist/url.js +0 -10
  63. package/dist/url.js.map +0 -1
package/dist/telemetry.js DELETED
@@ -1,98 +0,0 @@
1
- // Copyright (C) 2026 Garudex Labs. All Rights Reserved.
2
- // Caracal, a product of Garudex Labs
3
- //
4
- // OpenTelemetry bootstrap helpers for Node.js services.
5
- import { context, propagation, SpanKind, SpanStatusCode, trace } from '@opentelemetry/api';
6
- import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
7
- import { resourceFromAttributes } from '@opentelemetry/resources';
8
- import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
9
- import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
10
- const spanKey = Symbol('caracal.otel.span');
11
- export function initNodeTelemetry(serviceName, log) {
12
- const endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim();
13
- if (!endpoint)
14
- return async () => { };
15
- const protocol = process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();
16
- if (protocol && protocol !== 'http/protobuf') {
17
- throw new Error(`unsupported OTEL_EXPORTER_OTLP_PROTOCOL ${protocol}`);
18
- }
19
- const provider = new NodeTracerProvider({
20
- resource: resourceFromAttributes(resourceAttributes(serviceName)),
21
- spanProcessors: [new BatchSpanProcessor(new OTLPTraceExporter({ url: traceUrl(endpoint) }))],
22
- });
23
- provider.register();
24
- return async () => {
25
- try {
26
- await provider.shutdown();
27
- }
28
- catch (err) {
29
- log?.error?.('telemetry shutdown failed', { err });
30
- }
31
- };
32
- }
33
- export function instrumentFastifyApp(app, serviceName) {
34
- const tracer = trace.getTracer(serviceName);
35
- app.addHook('onRequest', async (req) => {
36
- const request = req;
37
- const method = request.method ?? 'GET';
38
- const path = String(request.url ?? '/').split('?')[0] || '/';
39
- const parent = propagation.extract(context.active(), normalizeHeaders(request.headers ?? {}));
40
- request[spanKey] = tracer.startSpan(`${method} ${path}`, {
41
- kind: SpanKind.SERVER,
42
- attributes: {
43
- 'http.request.method': method,
44
- 'url.path': path,
45
- },
46
- }, parent);
47
- });
48
- app.addHook('onResponse', async (req, reply) => {
49
- const request = req;
50
- const response = reply;
51
- const span = request[spanKey];
52
- if (!span)
53
- return;
54
- const statusCode = response.statusCode ?? 200;
55
- span.setAttribute('http.response.status_code', statusCode);
56
- if (statusCode >= 500) {
57
- span.setStatus({ code: SpanStatusCode.ERROR });
58
- }
59
- span.end();
60
- });
61
- app.addHook('onError', async (req, _reply, err) => {
62
- const request = req;
63
- const span = request[spanKey];
64
- if (!span)
65
- return;
66
- if (err instanceof Error) {
67
- span.recordException(err);
68
- }
69
- span.setStatus({ code: SpanStatusCode.ERROR });
70
- });
71
- }
72
- function traceUrl(endpoint) {
73
- const trimmed = endpoint.replace(/\/+$/, '');
74
- return trimmed.endsWith('/v1/traces') ? trimmed : `${trimmed}/v1/traces`;
75
- }
76
- function normalizeHeaders(headers) {
77
- const out = {};
78
- for (const [key, value] of Object.entries(headers)) {
79
- if (Array.isArray(value)) {
80
- out[key] = value.join(',');
81
- }
82
- else if (typeof value === 'string') {
83
- out[key] = value;
84
- }
85
- }
86
- return out;
87
- }
88
- function resourceAttributes(serviceName) {
89
- const attrs = { 'service.name': serviceName };
90
- for (const raw of (process.env.OTEL_RESOURCE_ATTRIBUTES ?? '').split(',')) {
91
- const [key, value] = raw.split('=', 2);
92
- if (key?.trim() && value?.trim()) {
93
- attrs[key.trim()] = value.trim();
94
- }
95
- }
96
- return attrs;
97
- }
98
- //# sourceMappingURL=telemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
package/dist/url.d.ts DELETED
@@ -1,3 +0,0 @@
1
- /** Strips the query string (`?…`) from a URL or path fragment. */
2
- export declare function pathOnly(url: string): string;
3
- //# sourceMappingURL=url.d.ts.map
package/dist/url.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAKA,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5C"}
package/dist/url.js DELETED
@@ -1,10 +0,0 @@
1
- // Copyright (C) 2026 Garudex Labs. All Rights Reserved.
2
- // Caracal, a product of Garudex Labs
3
- //
4
- // Minimal URL helpers for server `req.url`-style paths (pathname + optional query).
5
- /** Strips the query string (`?…`) from a URL or path fragment. */
6
- export function pathOnly(url) {
7
- const q = url.indexOf('?');
8
- return q === -1 ? url : url.slice(0, q);
9
- }
10
- //# sourceMappingURL=url.js.map
package/dist/url.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,qCAAqC;AACrC,EAAE;AACF,oFAAoF;AAEpF,kEAAkE;AAClE,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACzC,CAAC"}