@effect/opentelemetry 0.13.0 → 0.14.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.
Files changed (108) hide show
  1. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.mts +2 -0
  2. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.mts.map +1 -0
  3. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.ts +2 -0
  4. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.ts.map +1 -0
  5. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.dev.js +293 -0
  6. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.js +7 -0
  7. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.mjs +5 -0
  8. package/Metrics/dist/effect-opentelemetry-Metrics.cjs.prod.js +293 -0
  9. package/Metrics/dist/effect-opentelemetry-Metrics.esm.js +24 -0
  10. package/Metrics/package.json +4 -0
  11. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.mts +2 -0
  12. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.mts.map +1 -0
  13. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.ts +2 -0
  14. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.ts.map +1 -0
  15. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.dev.js +63 -0
  16. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.js +7 -0
  17. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.mjs +4 -0
  18. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.prod.js +63 -0
  19. package/NodeSdk/dist/effect-opentelemetry-NodeSdk.esm.js +34 -0
  20. package/NodeSdk/package.json +4 -0
  21. package/Resource/dist/effect-opentelemetry-Resource.cjs.d.mts +2 -0
  22. package/Resource/dist/effect-opentelemetry-Resource.cjs.d.mts.map +1 -0
  23. package/Resource/dist/effect-opentelemetry-Resource.cjs.d.ts +2 -0
  24. package/Resource/dist/effect-opentelemetry-Resource.cjs.d.ts.map +1 -0
  25. package/Resource/dist/effect-opentelemetry-Resource.cjs.dev.js +64 -0
  26. package/Resource/dist/effect-opentelemetry-Resource.cjs.js +7 -0
  27. package/Resource/dist/effect-opentelemetry-Resource.cjs.mjs +4 -0
  28. package/Resource/dist/effect-opentelemetry-Resource.cjs.prod.js +64 -0
  29. package/{mjs/Resource.mjs → Resource/dist/effect-opentelemetry-Resource.esm.js} +16 -7
  30. package/Resource/package.json +4 -0
  31. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.mts +2 -0
  32. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.mts.map +1 -0
  33. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.ts +2 -0
  34. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.ts.map +1 -0
  35. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.dev.js +243 -0
  36. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.js +7 -0
  37. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.mjs +10 -0
  38. package/Tracer/dist/effect-opentelemetry-Tracer.cjs.prod.js +243 -0
  39. package/Tracer/dist/effect-opentelemetry-Tracer.esm.js +54 -0
  40. package/Tracer/package.json +4 -0
  41. package/{Metrics.d.ts → dist/declarations/src/Metrics.d.ts} +4 -1
  42. package/dist/declarations/src/Metrics.d.ts.map +1 -0
  43. package/{NodeSdk.d.ts → dist/declarations/src/NodeSdk.d.ts} +1 -1
  44. package/dist/declarations/src/NodeSdk.d.ts.map +1 -0
  45. package/dist/declarations/src/Resource.d.ts.map +1 -0
  46. package/{Tracer.d.ts → dist/declarations/src/Tracer.d.ts} +4 -1
  47. package/dist/declarations/src/Tracer.d.ts.map +1 -0
  48. package/dist/declarations/src/index.d.ts +17 -0
  49. package/dist/declarations/src/index.d.ts.map +1 -0
  50. package/dist/effect-opentelemetry.cjs.d.mts +2 -0
  51. package/dist/effect-opentelemetry.cjs.d.mts.map +1 -0
  52. package/dist/effect-opentelemetry.cjs.d.ts +2 -0
  53. package/dist/effect-opentelemetry.cjs.d.ts.map +1 -0
  54. package/dist/effect-opentelemetry.cjs.dev.js +38 -0
  55. package/dist/effect-opentelemetry.cjs.js +7 -0
  56. package/dist/effect-opentelemetry.cjs.mjs +6 -0
  57. package/dist/effect-opentelemetry.cjs.prod.js +38 -0
  58. package/dist/effect-opentelemetry.esm.js +8 -0
  59. package/{mjs/internal/metrics.mjs → internal/metrics.esm.js} +21 -15
  60. package/{mjs/internal/tracer.mjs → internal/tracer.esm.js} +37 -24
  61. package/package.json +130 -30
  62. package/src/Metrics.ts +2 -2
  63. package/src/NodeSdk.ts +1 -1
  64. package/src/Tracer.ts +2 -2
  65. package/src/internal/metrics.ts +1 -1
  66. package/src/internal/tracer.ts +1 -1
  67. package/Metrics.d.ts.map +0 -1
  68. package/Metrics.js +0 -29
  69. package/Metrics.js.map +0 -1
  70. package/NodeSdk.d.ts.map +0 -1
  71. package/NodeSdk.js +0 -36
  72. package/NodeSdk.js.map +0 -1
  73. package/Resource.d.ts.map +0 -1
  74. package/Resource.js +0 -39
  75. package/Resource.js.map +0 -1
  76. package/Tracer.d.ts.map +0 -1
  77. package/Tracer.js +0 -54
  78. package/Tracer.js.map +0 -1
  79. package/index.d.ts +0 -17
  80. package/index.d.ts.map +0 -1
  81. package/index.js +0 -17
  82. package/index.js.map +0 -1
  83. package/internal/metrics.d.ts +0 -2
  84. package/internal/metrics.d.ts.map +0 -1
  85. package/internal/metrics.js +0 -242
  86. package/internal/metrics.js.map +0 -1
  87. package/internal/tracer.d.ts +0 -2
  88. package/internal/tracer.d.ts.map +0 -1
  89. package/internal/tracer.js +0 -147
  90. package/internal/tracer.js.map +0 -1
  91. package/mjs/Metrics.mjs +0 -20
  92. package/mjs/Metrics.mjs.map +0 -1
  93. package/mjs/NodeSdk.mjs +0 -25
  94. package/mjs/NodeSdk.mjs.map +0 -1
  95. package/mjs/Resource.mjs.map +0 -1
  96. package/mjs/Tracer.mjs +0 -45
  97. package/mjs/Tracer.mjs.map +0 -1
  98. package/mjs/index.mjs +0 -9
  99. package/mjs/index.mjs.map +0 -1
  100. package/mjs/internal/metrics.mjs.map +0 -1
  101. package/mjs/internal/tracer.mjs.map +0 -1
  102. package/tsconfig.base.json +0 -55
  103. package/tsconfig.build.json +0 -10
  104. package/tsconfig.examples.json +0 -11
  105. package/tsconfig.json +0 -8
  106. package/tsconfig.madge.json +0 -12
  107. package/tsconfig.test.json +0 -10
  108. /package/{Resource.d.ts → dist/declarations/src/Resource.d.ts} +0 -0
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var sdkNode = require('@opentelemetry/sdk-node');
6
+ var Effect = require('effect/Effect');
7
+ var Layer = require('effect/Layer');
8
+ var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.dev.js');
9
+ require('@opentelemetry/resources');
10
+ require('@opentelemetry/semantic-conventions');
11
+ require('effect/Context');
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n["default"] = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
32
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
33
+
34
+ /**
35
+ * @since 1.0.0
36
+ */
37
+
38
+ /**
39
+ * @since 1.0.0
40
+ * @category model
41
+ */
42
+
43
+ /**
44
+ * @since 1.0.0
45
+ * @category constructor
46
+ */
47
+ const config = config => config;
48
+
49
+ /**
50
+ * @since 1.0.0
51
+ * @category layer
52
+ */
53
+ const layer = config => Layer__namespace.scopedDiscard(Effect__namespace.acquireRelease(Effect__namespace.flatMap(Effect__namespace.all([config, Resource_dist_effectOpentelemetryResource.Resource]), ([config, resource]) => Effect__namespace.sync(() => {
54
+ const sdk = new sdkNode.NodeSDK({
55
+ ...config,
56
+ resource
57
+ });
58
+ sdk.start();
59
+ return sdk;
60
+ })), sdk => Effect__namespace.promise(() => sdk.shutdown())));
61
+
62
+ exports.config = config;
63
+ exports.layer = layer;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./effect-opentelemetry-NodeSdk.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./effect-opentelemetry-NodeSdk.cjs.dev.js");
7
+ }
@@ -0,0 +1,4 @@
1
+ export {
2
+ config,
3
+ layer
4
+ } from "./effect-opentelemetry-NodeSdk.cjs.js";
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var sdkNode = require('@opentelemetry/sdk-node');
6
+ var Effect = require('effect/Effect');
7
+ var Layer = require('effect/Layer');
8
+ var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.prod.js');
9
+ require('@opentelemetry/resources');
10
+ require('@opentelemetry/semantic-conventions');
11
+ require('effect/Context');
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n["default"] = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
32
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
33
+
34
+ /**
35
+ * @since 1.0.0
36
+ */
37
+
38
+ /**
39
+ * @since 1.0.0
40
+ * @category model
41
+ */
42
+
43
+ /**
44
+ * @since 1.0.0
45
+ * @category constructor
46
+ */
47
+ const config = config => config;
48
+
49
+ /**
50
+ * @since 1.0.0
51
+ * @category layer
52
+ */
53
+ const layer = config => Layer__namespace.scopedDiscard(Effect__namespace.acquireRelease(Effect__namespace.flatMap(Effect__namespace.all([config, Resource_dist_effectOpentelemetryResource.Resource]), ([config, resource]) => Effect__namespace.sync(() => {
54
+ const sdk = new sdkNode.NodeSDK({
55
+ ...config,
56
+ resource
57
+ });
58
+ sdk.start();
59
+ return sdk;
60
+ })), sdk => Effect__namespace.promise(() => sdk.shutdown())));
61
+
62
+ exports.config = config;
63
+ exports.layer = layer;
@@ -0,0 +1,34 @@
1
+ import { NodeSDK } from '@opentelemetry/sdk-node';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Layer from 'effect/Layer';
4
+ import { Resource } from '../../Resource/dist/effect-opentelemetry-Resource.esm.js';
5
+
6
+ /**
7
+ * @since 1.0.0
8
+ */
9
+
10
+ /**
11
+ * @since 1.0.0
12
+ * @category model
13
+ */
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category constructor
18
+ */
19
+ const config = config => config;
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ * @category layer
24
+ */
25
+ const layer = config => Layer.scopedDiscard(Effect.acquireRelease(Effect.flatMap(Effect.all([config, Resource]), ([config, resource]) => Effect.sync(() => {
26
+ const sdk = new NodeSDK({
27
+ ...config,
28
+ resource
29
+ });
30
+ sdk.start();
31
+ return sdk;
32
+ })), sdk => Effect.promise(() => sdk.shutdown())));
33
+
34
+ export { config, layer };
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/effect-opentelemetry-NodeSdk.cjs.js",
3
+ "module": "dist/effect-opentelemetry-NodeSdk.esm.js"
4
+ }
@@ -0,0 +1,2 @@
1
+ export * from "../../dist/declarations/src/Resource.js";
2
+ //# sourceMappingURL=effect-opentelemetry-Resource.cjs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-opentelemetry-Resource.cjs.d.mts","sourceRoot":"","sources":["../../dist/declarations/src/Resource.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "../../dist/declarations/src/Resource";
2
+ //# sourceMappingURL=effect-opentelemetry-Resource.cjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-opentelemetry-Resource.cjs.d.ts","sourceRoot":"","sources":["../../dist/declarations/src/Resource.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Resources = require('@opentelemetry/resources');
6
+ var semanticConventions = require('@opentelemetry/semantic-conventions');
7
+ var Context = require('effect/Context');
8
+ var Layer = require('effect/Layer');
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n["default"] = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var Resources__namespace = /*#__PURE__*/_interopNamespace(Resources);
29
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
30
+
31
+ /**
32
+ * @since 1.0.0
33
+ */
34
+
35
+ /**
36
+ * @since 1.0.0
37
+ * @category identifier
38
+ */
39
+
40
+ /**
41
+ * @since 1.0.0
42
+ * @category tag
43
+ */
44
+ const Resource = /*#__PURE__*/Context.Tag("@effect/opentelemetry/Resource");
45
+
46
+ /**
47
+ * @since 1.0.0
48
+ * @category layer
49
+ */
50
+ const layer = config => {
51
+ const attributes = {
52
+ ...(config.attributes ?? {}),
53
+ [semanticConventions.SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
54
+ [semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_NAME]: "@effect/opentelemetry",
55
+ [semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]: typeof globalThis.document === "undefined" ? semanticConventions.TelemetrySdkLanguageValues.NODEJS : semanticConventions.TelemetrySdkLanguageValues.WEBJS
56
+ };
57
+ if (config.serviceVersion) {
58
+ attributes[semanticConventions.SemanticResourceAttributes.SERVICE_VERSION] = config.serviceVersion;
59
+ }
60
+ return Layer__namespace.succeed(Resource, new Resources__namespace.Resource(attributes));
61
+ };
62
+
63
+ exports.Resource = Resource;
64
+ exports.layer = layer;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./effect-opentelemetry-Resource.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./effect-opentelemetry-Resource.cjs.dev.js");
7
+ }
@@ -0,0 +1,4 @@
1
+ export {
2
+ Resource,
3
+ layer
4
+ } from "./effect-opentelemetry-Resource.cjs.js";
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Resources = require('@opentelemetry/resources');
6
+ var semanticConventions = require('@opentelemetry/semantic-conventions');
7
+ var Context = require('effect/Context');
8
+ var Layer = require('effect/Layer');
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n["default"] = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var Resources__namespace = /*#__PURE__*/_interopNamespace(Resources);
29
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
30
+
31
+ /**
32
+ * @since 1.0.0
33
+ */
34
+
35
+ /**
36
+ * @since 1.0.0
37
+ * @category identifier
38
+ */
39
+
40
+ /**
41
+ * @since 1.0.0
42
+ * @category tag
43
+ */
44
+ const Resource = /*#__PURE__*/Context.Tag("@effect/opentelemetry/Resource");
45
+
46
+ /**
47
+ * @since 1.0.0
48
+ * @category layer
49
+ */
50
+ const layer = config => {
51
+ const attributes = {
52
+ ...(config.attributes ?? {}),
53
+ [semanticConventions.SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
54
+ [semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_NAME]: "@effect/opentelemetry",
55
+ [semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]: typeof globalThis.document === "undefined" ? semanticConventions.TelemetrySdkLanguageValues.NODEJS : semanticConventions.TelemetrySdkLanguageValues.WEBJS
56
+ };
57
+ if (config.serviceVersion) {
58
+ attributes[semanticConventions.SemanticResourceAttributes.SERVICE_VERSION] = config.serviceVersion;
59
+ }
60
+ return Layer__namespace.succeed(Resource, new Resources__namespace.Resource(attributes));
61
+ };
62
+
63
+ exports.Resource = Resource;
64
+ exports.layer = layer;
@@ -1,20 +1,28 @@
1
+ import * as Resources from '@opentelemetry/resources';
2
+ import { SemanticResourceAttributes, TelemetrySdkLanguageValues } from '@opentelemetry/semantic-conventions';
3
+ import { Tag } from 'effect/Context';
4
+ import * as Layer from 'effect/Layer';
5
+
1
6
  /**
2
7
  * @since 1.0.0
3
8
  */
4
- import * as Resources from "@opentelemetry/resources";
5
- import { SemanticResourceAttributes, TelemetrySdkLanguageValues } from "@opentelemetry/semantic-conventions";
6
- import { Tag } from "effect/Context";
7
- import * as Layer from "effect/Layer";
9
+
10
+ /**
11
+ * @since 1.0.0
12
+ * @category identifier
13
+ */
14
+
8
15
  /**
9
16
  * @since 1.0.0
10
17
  * @category tag
11
18
  */
12
- export const Resource = /*#__PURE__*/Tag("@effect/opentelemetry/Resource");
19
+ const Resource = /*#__PURE__*/Tag("@effect/opentelemetry/Resource");
20
+
13
21
  /**
14
22
  * @since 1.0.0
15
23
  * @category layer
16
24
  */
17
- export const layer = config => {
25
+ const layer = config => {
18
26
  const attributes = {
19
27
  ...(config.attributes ?? {}),
20
28
  [SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
@@ -26,4 +34,5 @@ export const layer = config => {
26
34
  }
27
35
  return Layer.succeed(Resource, new Resources.Resource(attributes));
28
36
  };
29
- //# sourceMappingURL=Resource.mjs.map
37
+
38
+ export { Resource, layer };
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/effect-opentelemetry-Resource.cjs.js",
3
+ "module": "dist/effect-opentelemetry-Resource.esm.js"
4
+ }
@@ -0,0 +1,2 @@
1
+ export * from "../../dist/declarations/src/Tracer.js";
2
+ //# sourceMappingURL=effect-opentelemetry-Tracer.cjs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-opentelemetry-Tracer.cjs.d.mts","sourceRoot":"","sources":["../../dist/declarations/src/Tracer.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "../../dist/declarations/src/Tracer";
2
+ //# sourceMappingURL=effect-opentelemetry-Tracer.cjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-opentelemetry-Tracer.cjs.d.ts","sourceRoot":"","sources":["../../dist/declarations/src/Tracer.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,243 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var OtelApi = require('@opentelemetry/api');
6
+ var Cause = require('effect/Cause');
7
+ var Context = require('effect/Context');
8
+ var Effect = require('effect/Effect');
9
+ var FiberRef = require('effect/FiberRef');
10
+ var FiberRefs = require('effect/FiberRefs');
11
+ var Layer = require('effect/Layer');
12
+ var List = require('effect/List');
13
+ var Option = require('effect/Option');
14
+ var Tracer = require('effect/Tracer');
15
+ var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.dev.js');
16
+ require('@opentelemetry/resources');
17
+ require('@opentelemetry/semantic-conventions');
18
+
19
+ function _interopNamespace(e) {
20
+ if (e && e.__esModule) return e;
21
+ var n = Object.create(null);
22
+ if (e) {
23
+ Object.keys(e).forEach(function (k) {
24
+ if (k !== 'default') {
25
+ var d = Object.getOwnPropertyDescriptor(e, k);
26
+ Object.defineProperty(n, k, d.get ? d : {
27
+ enumerable: true,
28
+ get: function () { return e[k]; }
29
+ });
30
+ }
31
+ });
32
+ }
33
+ n["default"] = e;
34
+ return Object.freeze(n);
35
+ }
36
+
37
+ var OtelApi__namespace = /*#__PURE__*/_interopNamespace(OtelApi);
38
+ var Cause__namespace = /*#__PURE__*/_interopNamespace(Cause);
39
+ var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
40
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
41
+ var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
42
+ var FiberRefs__namespace = /*#__PURE__*/_interopNamespace(FiberRefs);
43
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
44
+ var List__namespace = /*#__PURE__*/_interopNamespace(List);
45
+ var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
46
+ var Tracer__namespace = /*#__PURE__*/_interopNamespace(Tracer);
47
+
48
+ /** @internal */
49
+ class OtelSpan {
50
+ _tag = "Span";
51
+ attributes = new Map();
52
+ constructor(contextApi, tracer, name, parent, context, links, startTime) {
53
+ this.name = name;
54
+ this.parent = parent;
55
+ this.context = context;
56
+ this.links = links;
57
+ const active = contextApi.active();
58
+ this.span = tracer.startSpan(name, {
59
+ startTime: nanosToHrTime(startTime),
60
+ links: links.length > 0 ? links.map(link => ({
61
+ context: makeSpanContext(link.span),
62
+ attributes: link.attributes
63
+ })) : undefined
64
+ }, parent._tag === "Some" ? populateContext(active, parent.value, context) : active);
65
+ const spanContext = this.span.spanContext();
66
+ this.spanId = spanContext.spanId;
67
+ this.traceId = spanContext.traceId;
68
+ this.status = {
69
+ _tag: "Started",
70
+ startTime
71
+ };
72
+ }
73
+ attribute(key, value) {
74
+ this.span.setAttribute(key, value);
75
+ this.attributes.set(key, value);
76
+ }
77
+ end(endTime, exit) {
78
+ this.status = {
79
+ _tag: "Ended",
80
+ endTime,
81
+ exit,
82
+ startTime: this.status.startTime
83
+ };
84
+ if (exit._tag === "Success") {
85
+ this.span.setStatus({
86
+ code: OtelApi__namespace.SpanStatusCode.OK
87
+ });
88
+ } else {
89
+ if (Cause__namespace.isInterruptedOnly(exit.cause)) {
90
+ this.span.setStatus({
91
+ code: OtelApi__namespace.SpanStatusCode.OK,
92
+ message: Cause__namespace.pretty(exit.cause)
93
+ });
94
+ this.span.setAttribute("span.label", "⚠︎ Interrupted");
95
+ this.span.setAttribute("status.interrupted", true);
96
+ } else {
97
+ this.span.setStatus({
98
+ code: OtelApi__namespace.SpanStatusCode.ERROR,
99
+ message: Cause__namespace.pretty(exit.cause)
100
+ });
101
+ }
102
+ }
103
+ this.span.end(nanosToHrTime(endTime));
104
+ }
105
+ event(name, startTime, attributes) {
106
+ this.span.addEvent(name, attributes, nanosToHrTime(startTime));
107
+ }
108
+ }
109
+
110
+ /** @internal */
111
+ const OtelTracer$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/OtelTracer");
112
+
113
+ /** @internal */
114
+ const make$1 = /*#__PURE__*/Effect__namespace.map(OtelTracer$1, tracer => Tracer__namespace.make({
115
+ span(name, parent, context, links, startTime) {
116
+ return new OtelSpan(OtelApi__namespace.context, tracer, name, parent, context, links, startTime);
117
+ },
118
+ context(execution, fiber) {
119
+ const currentSpan = Option__namespace.flatMap(FiberRefs__namespace.get(fiber.getFiberRefs(), FiberRef__namespace.currentTracerSpan), List__namespace.head);
120
+ if (currentSpan._tag === "None") {
121
+ return execution();
122
+ }
123
+ return OtelApi__namespace.context.with(populateContext(OtelApi__namespace.context.active(), currentSpan.value), execution);
124
+ }
125
+ }));
126
+
127
+ /** @internal */
128
+
129
+ /** @internal */
130
+ const traceFlagsTag = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/traceFlags");
131
+
132
+ /** @internal */
133
+ const traceStateTag = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/traceState");
134
+
135
+ /** @internal */
136
+ const makeExternalSpan$1 = options => {
137
+ let context = Context__namespace.empty();
138
+ if (options.traceFlags) {
139
+ context = Context__namespace.add(context, traceFlagsTag, options.traceFlags);
140
+ }
141
+ if (typeof options.traceState === "string") {
142
+ context = Option__namespace.match(createTraceState(options.traceState), {
143
+ onNone: () => context,
144
+ onSome: traceState => Context__namespace.add(context, traceStateTag, traceState)
145
+ });
146
+ } else if (options.traceState) {
147
+ context = Context__namespace.add(context, traceStateTag, options.traceState);
148
+ }
149
+ return {
150
+ _tag: "ExternalSpan",
151
+ traceId: options.traceId,
152
+ spanId: options.spanId,
153
+ context
154
+ };
155
+ };
156
+
157
+ /** @internal */
158
+ const currentOtelSpan$1 = /*#__PURE__*/Effect__namespace.map(Effect__namespace.currentSpan, span => Option__namespace.map(Option__namespace.filter(span, span => "span" in span), _ => _.span));
159
+
160
+ /** @internal */
161
+ const layerOtelTracer$1 = /*#__PURE__*/Layer__namespace.effect(OtelTracer$1, /*#__PURE__*/Effect__namespace.flatMap(Resource_dist_effectOpentelemetryResource.Resource, resource => Effect__namespace.sync(() => OtelApi__namespace.trace.getTracer(resource.attributes["service.name"], resource.attributes["service.version"]))));
162
+
163
+ /** @internal */
164
+ const layer$1 = /*#__PURE__*/Layer__namespace.provide(layerOtelTracer$1, /*#__PURE__*/Layer__namespace.unwrapEffect( /*#__PURE__*/Effect__namespace.map(make$1, Effect__namespace.setTracer)));
165
+
166
+ // -------------------------------------------------------------------------------------
167
+ // utils
168
+ // -------------------------------------------------------------------------------------
169
+
170
+ const bigint1e9 = 1_000_000_000n;
171
+ const nanosToHrTime = timestamp => {
172
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
173
+ };
174
+ const createTraceState = /*#__PURE__*/Option__namespace.liftThrowable(OtelApi__namespace.createTraceState);
175
+ const populateContext = (otelContext, span, context) => span instanceof OtelSpan ? OtelApi__namespace.trace.setSpan(otelContext, span.span) : OtelApi__namespace.trace.setSpanContext(otelContext, makeSpanContext(span, context));
176
+ const makeSpanContext = (span, context) => ({
177
+ spanId: span.spanId,
178
+ traceId: span.traceId,
179
+ isRemote: span._tag === "ExternalSpan",
180
+ traceFlags: Option__namespace.getOrElse(context ? extractTraceTag(span, context, traceFlagsTag) : Context__namespace.getOption(span.context, traceFlagsTag), () => OtelApi__namespace.TraceFlags.SAMPLED),
181
+ traceState: Option__namespace.getOrUndefined(context ? extractTraceTag(span, context, traceStateTag) : Context__namespace.getOption(span.context, traceStateTag))
182
+ });
183
+ const extractTraceTag = (parent, context, tag) => Option__namespace.orElse(Context__namespace.getOption(context, tag), () => Context__namespace.getOption(parent.context, tag));
184
+
185
+ /**
186
+ * @since 1.0.0
187
+ */
188
+ /**
189
+ * @since 1.0.0
190
+ * @category constructors
191
+ */
192
+ const make = make$1;
193
+
194
+ /**
195
+ * @since 1.0.0
196
+ * @category constructors
197
+ */
198
+ const makeExternalSpan = makeExternalSpan$1;
199
+
200
+ /**
201
+ * @since 1.0.0
202
+ * @category accessors
203
+ */
204
+ const currentOtelSpan = currentOtelSpan$1;
205
+
206
+ /**
207
+ * @since 1.0.0
208
+ * @category layers
209
+ */
210
+ const layer = layer$1;
211
+
212
+ /**
213
+ * @since 1.0.0
214
+ * @category layers
215
+ */
216
+ const layerOtelTracer = layerOtelTracer$1;
217
+
218
+ /**
219
+ * @since 1.0.0
220
+ * @category tags
221
+ */
222
+ const OtelTracer = OtelTracer$1;
223
+
224
+ /**
225
+ * @since 1.0.0
226
+ * @category tags
227
+ */
228
+ const TraceFlags = traceFlagsTag;
229
+
230
+ /**
231
+ * @since 1.0.0
232
+ * @category tags
233
+ */
234
+ const TraceState = traceStateTag;
235
+
236
+ exports.OtelTracer = OtelTracer;
237
+ exports.TraceFlags = TraceFlags;
238
+ exports.TraceState = TraceState;
239
+ exports.currentOtelSpan = currentOtelSpan;
240
+ exports.layer = layer;
241
+ exports.layerOtelTracer = layerOtelTracer;
242
+ exports.make = make;
243
+ exports.makeExternalSpan = makeExternalSpan;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./effect-opentelemetry-Tracer.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./effect-opentelemetry-Tracer.cjs.dev.js");
7
+ }
@@ -0,0 +1,10 @@
1
+ export {
2
+ OtelTracer,
3
+ TraceFlags,
4
+ TraceState,
5
+ currentOtelSpan,
6
+ layer,
7
+ layerOtelTracer,
8
+ make,
9
+ makeExternalSpan
10
+ } from "./effect-opentelemetry-Tracer.cjs.js";