@interfere/node 0.0.1-canary.5 → 0.1.0-canary.6

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/init.cjs CHANGED
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const require_internal_env=require("./internal/env.cjs"),require_internal_global_handlers=require("./internal/global-handlers.cjs"),require_internal_release_slug=require("./internal/release-slug.cjs"),require_internal_url=require("./internal/url.cjs"),require_internal_version=require("./internal/version.cjs");let _interfere_constants_api=require("@interfere/constants/api"),_interfere_types_releases_slug=require("@interfere/types/releases/slug"),_opentelemetry_context_async_hooks=require("@opentelemetry/context-async-hooks"),_opentelemetry_exporter_trace_otlp_http=require("@opentelemetry/exporter-trace-otlp-http"),_opentelemetry_resources=require("@opentelemetry/resources"),_opentelemetry_sdk_trace_base=require("@opentelemetry/sdk-trace-base"),_opentelemetry_sdk_trace_node=require("@opentelemetry/sdk-trace-node"),provider=null;function init(options={}){if(provider)return;let debug=options.debug??process.env.INTERFERE_DEBUG===`1`,env=require_internal_env.readInterfereEnv();if(!env.publicKey){console.warn(`[interfere] INTERFERE_PUBLIC_KEY not set; SDK disabled`);return}let releaseSlug=env.forceEnable?_interfere_types_releases_slug.LOCAL_DEV_RELEASE_SLUG:require_internal_release_slug.resolveReleaseSlug().slug;releaseSlug||console.warn(`[interfere] No release slug resolved — the collector will reject spans. Add a postbuild script to your package.json:
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const require_internal_env=require("./internal/env.cjs"),require_internal_global_handlers=require("./internal/global-handlers.cjs"),require_internal_release_slug=require("./internal/release-slug.cjs"),require_internal_url=require("./internal/url.cjs"),require_internal_version=require("./internal/version.cjs");let _interfere_constants_api=require("@interfere/constants/api"),_interfere_types_releases_slug=require("@interfere/types/releases/slug"),_interfere_types_sdk_runtime=require("@interfere/types/sdk/runtime"),_opentelemetry_context_async_hooks=require("@opentelemetry/context-async-hooks"),_opentelemetry_exporter_trace_otlp_http=require("@opentelemetry/exporter-trace-otlp-http"),_opentelemetry_resources=require("@opentelemetry/resources"),_opentelemetry_sdk_trace_base=require("@opentelemetry/sdk-trace-base"),_opentelemetry_sdk_trace_node=require("@opentelemetry/sdk-trace-node"),provider=null;function init(options={}){if(provider)return;let debug=options.debug??process.env.INTERFERE_DEBUG===`1`,env=require_internal_env.readInterfereEnv();if(!env.publicKey){console.warn(`[interfere] INTERFERE_PUBLIC_KEY not set; SDK disabled`);return}let environment=(0,_interfere_types_sdk_runtime.resolveEnvironment)({explicit:options.environment,env:process.env}),releaseSlug=env.forceEnable?_interfere_types_releases_slug.LOCAL_DEV_RELEASE_SLUG:require_internal_release_slug.resolveReleaseSlug().slug;releaseSlug||console.warn(`[interfere] No release slug resolved — the collector will reject spans. Add a postbuild script to your package.json:
2
2
  "postbuild": "interfere sourcemaps upload ./dist"
3
- and set INTERFERE_API_KEY in your CI environment. See https://interfere.com/docs/nest#releases`);let serviceName=options.serviceName??process.env.OTEL_SERVICE_NAME??`node-app`,resource=(0,_opentelemetry_resources.resourceFromAttributes)({"service.name":serviceName,...options.serviceNamespace?{"service.namespace":options.serviceNamespace}:{},"deployment.environment.name":env.nodeEnvironment??`unknown`,"telemetry.sdk.language":`nodejs`,"interfere.sdk.name":`@interfere/node`,"interfere.sdk.version":require_internal_version.PRODUCER_VERSION,...releaseSlug?{"release.slug":releaseSlug}:{}}),exporter=new _opentelemetry_exporter_trace_otlp_http.OTLPTraceExporter({url:require_internal_url.withPublicKey(`${env.apiUrl}${_interfere_constants_api.API_PATHS.SINK}`,env.publicKey),headers:{"user-agent":require_internal_version.PRODUCER_VERSION,"x-interfere-producer-version":require_internal_version.PRODUCER_VERSION,...env.forceEnable?{"x-interfere-force-enable":`1`}:{}}});if(debug){let orig=exporter.export.bind(exporter);exporter.export=(spans,cb)=>{let t=Date.now();orig(spans,result=>{let ms=Date.now()-t;if(result.code===0)console.log(`[interfere] export: ${spans.length} spans (${ms}ms)`);else{let err=result.error,status=err?.code?` ${err.code}`:``,body=err?.data??err?.message??`unknown error`;console.warn(`[interfere] export failed:${status} ${body} (${ms}ms, ${spans.length} spans dropped)`)}cb(result)})}}if(provider=new _opentelemetry_sdk_trace_node.NodeTracerProvider({resource,spanProcessors:[new _opentelemetry_sdk_trace_base.BatchSpanProcessor(exporter)]}),provider.register({contextManager:new _opentelemetry_context_async_hooks.AsyncLocalStorageContextManager().enable()}),require_internal_global_handlers.installGlobalHandlers({captureUncaughtException:options.captureUncaughtException??!0,captureUnhandledRejection:options.captureUnhandledRejection??!0,flush}),debug){let endpoint=require_internal_url.withPublicKey(`${env.apiUrl}${_interfere_constants_api.API_PATHS.SINK}`,env.publicKey);console.log(`[interfere] init: service=${serviceName}, env=${env.nodeEnvironment??`unknown`}, endpoint=${endpoint}`),releaseSlug&&console.log(`[interfere] release.slug=${releaseSlug}`)}}async function close(){provider&&=(require_internal_global_handlers.uninstallGlobalHandlers(),await provider.shutdown(),null)}async function flush(){provider&&await provider.forceFlush()}exports.close=close,exports.flush=flush,exports.init=init;
3
+ and set INTERFERE_API_KEY in your CI environment. See https://interfere.com/docs/nest#releases`);let serviceName=options.serviceName??process.env.OTEL_SERVICE_NAME??`node-app`,resource=(0,_opentelemetry_resources.resourceFromAttributes)({"service.name":serviceName,...options.serviceNamespace?{"service.namespace":options.serviceNamespace}:{},"deployment.environment.name":environment,"telemetry.sdk.language":`nodejs`,"interfere.sdk.name":`@interfere/node`,"interfere.sdk.version":require_internal_version.PRODUCER_VERSION,...releaseSlug?{"release.slug":releaseSlug}:{}}),exporter=new _opentelemetry_exporter_trace_otlp_http.OTLPTraceExporter({url:require_internal_url.withPublicKey(`${env.apiUrl}${_interfere_constants_api.API_PATHS.SINK}`,env.publicKey),headers:{"user-agent":require_internal_version.PRODUCER_VERSION,"x-interfere-producer-version":require_internal_version.PRODUCER_VERSION,...env.forceEnable?{"x-interfere-force-enable":`1`}:{}}});if(debug){let orig=exporter.export.bind(exporter);exporter.export=(spans,cb)=>{let t=Date.now();orig(spans,result=>{let ms=Date.now()-t;if(result.code===0)console.log(`[interfere] export: ${spans.length} spans (${ms}ms)`);else{let err=result.error,status=err?.code?` ${err.code}`:``,body=err?.data??err?.message??`unknown error`;console.warn(`[interfere] export failed:${status} ${body} (${ms}ms, ${spans.length} spans dropped)`)}cb(result)})}}if(provider=new _opentelemetry_sdk_trace_node.NodeTracerProvider({resource,spanProcessors:[new _opentelemetry_sdk_trace_base.BatchSpanProcessor(exporter)]}),provider.register({contextManager:new _opentelemetry_context_async_hooks.AsyncLocalStorageContextManager().enable()}),require_internal_global_handlers.installGlobalHandlers({captureUncaughtException:options.captureUncaughtException??!0,captureUnhandledRejection:options.captureUnhandledRejection??!0,flush}),debug){let endpoint=require_internal_url.withPublicKey(`${env.apiUrl}${_interfere_constants_api.API_PATHS.SINK}`,env.publicKey);console.log(`[interfere] init: service=${serviceName}, env=${environment}, endpoint=${endpoint}`),releaseSlug&&console.log(`[interfere] release.slug=${releaseSlug}`)}}async function close(){provider&&=(require_internal_global_handlers.uninstallGlobalHandlers(),await provider.shutdown(),null)}async function flush(){provider&&await provider.forceFlush()}exports.close=close,exports.flush=flush,exports.init=init;
package/dist/init.d.cts CHANGED
@@ -18,6 +18,14 @@ interface InitOptions {
18
18
  * errors). Also activatable via `INTERFERE_DEBUG=1`. Default `false`.
19
19
  */
20
20
  readonly debug?: boolean;
21
+ /**
22
+ * Deployment environment label (e.g. `production`, `staging`, `preview`).
23
+ * Highest-precedence source; falls back to `INTERFERE_ENVIRONMENT`, then
24
+ * `VERCEL_ENV`, then `NODE_ENV`, then `development`. Free-form — the
25
+ * collector accepts any label and only filters known-local ones
26
+ * (`development`/`local`/`test`) per surface config.
27
+ */
28
+ readonly environment?: string;
21
29
  /**
22
30
  * Sets the OTel `service.name` resource attribute — the identity spans
23
31
  * are grouped by in the dashboard. Defaults to `OTEL_SERVICE_NAME` env
package/dist/init.d.mts CHANGED
@@ -18,6 +18,14 @@ interface InitOptions {
18
18
  * errors). Also activatable via `INTERFERE_DEBUG=1`. Default `false`.
19
19
  */
20
20
  readonly debug?: boolean;
21
+ /**
22
+ * Deployment environment label (e.g. `production`, `staging`, `preview`).
23
+ * Highest-precedence source; falls back to `INTERFERE_ENVIRONMENT`, then
24
+ * `VERCEL_ENV`, then `NODE_ENV`, then `development`. Free-form — the
25
+ * collector accepts any label and only filters known-local ones
26
+ * (`development`/`local`/`test`) per surface config.
27
+ */
28
+ readonly environment?: string;
21
29
  /**
22
30
  * Sets the OTel `service.name` resource attribute — the identity spans
23
31
  * are grouped by in the dashboard. Defaults to `OTEL_SERVICE_NAME` env
package/dist/init.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import{readInterfereEnv}from"./internal/env.mjs";import{installGlobalHandlers,uninstallGlobalHandlers}from"./internal/global-handlers.mjs";import{resolveReleaseSlug}from"./internal/release-slug.mjs";import{withPublicKey}from"./internal/url.mjs";import{PRODUCER_VERSION}from"./internal/version.mjs";import{API_PATHS}from"@interfere/constants/api";import{LOCAL_DEV_RELEASE_SLUG}from"@interfere/types/releases/slug";import{AsyncLocalStorageContextManager}from"@opentelemetry/context-async-hooks";import{OTLPTraceExporter}from"@opentelemetry/exporter-trace-otlp-http";import{resourceFromAttributes}from"@opentelemetry/resources";import{BatchSpanProcessor}from"@opentelemetry/sdk-trace-base";import{NodeTracerProvider}from"@opentelemetry/sdk-trace-node";let provider=null;function init(options={}){if(provider)return;let debug=options.debug??process.env.INTERFERE_DEBUG===`1`,env=readInterfereEnv();if(!env.publicKey){console.warn(`[interfere] INTERFERE_PUBLIC_KEY not set; SDK disabled`);return}let releaseSlug=env.forceEnable?LOCAL_DEV_RELEASE_SLUG:resolveReleaseSlug().slug;releaseSlug||console.warn(`[interfere] No release slug resolved — the collector will reject spans. Add a postbuild script to your package.json:
1
+ import{readInterfereEnv}from"./internal/env.mjs";import{installGlobalHandlers,uninstallGlobalHandlers}from"./internal/global-handlers.mjs";import{resolveReleaseSlug}from"./internal/release-slug.mjs";import{withPublicKey}from"./internal/url.mjs";import{PRODUCER_VERSION}from"./internal/version.mjs";import{API_PATHS}from"@interfere/constants/api";import{LOCAL_DEV_RELEASE_SLUG}from"@interfere/types/releases/slug";import{resolveEnvironment}from"@interfere/types/sdk/runtime";import{AsyncLocalStorageContextManager}from"@opentelemetry/context-async-hooks";import{OTLPTraceExporter}from"@opentelemetry/exporter-trace-otlp-http";import{resourceFromAttributes}from"@opentelemetry/resources";import{BatchSpanProcessor}from"@opentelemetry/sdk-trace-base";import{NodeTracerProvider}from"@opentelemetry/sdk-trace-node";let provider=null;function init(options={}){if(provider)return;let debug=options.debug??process.env.INTERFERE_DEBUG===`1`,env=readInterfereEnv();if(!env.publicKey){console.warn(`[interfere] INTERFERE_PUBLIC_KEY not set; SDK disabled`);return}let environment=resolveEnvironment({explicit:options.environment,env:process.env}),releaseSlug=env.forceEnable?LOCAL_DEV_RELEASE_SLUG:resolveReleaseSlug().slug;releaseSlug||console.warn(`[interfere] No release slug resolved — the collector will reject spans. Add a postbuild script to your package.json:
2
2
  "postbuild": "interfere sourcemaps upload ./dist"
3
- and set INTERFERE_API_KEY in your CI environment. See https://interfere.com/docs/nest#releases`);let serviceName=options.serviceName??process.env.OTEL_SERVICE_NAME??`node-app`,resource=resourceFromAttributes({"service.name":serviceName,...options.serviceNamespace?{"service.namespace":options.serviceNamespace}:{},"deployment.environment.name":env.nodeEnvironment??`unknown`,"telemetry.sdk.language":`nodejs`,"interfere.sdk.name":`@interfere/node`,"interfere.sdk.version":PRODUCER_VERSION,...releaseSlug?{"release.slug":releaseSlug}:{}}),exporter=new OTLPTraceExporter({url:withPublicKey(`${env.apiUrl}${API_PATHS.SINK}`,env.publicKey),headers:{"user-agent":PRODUCER_VERSION,"x-interfere-producer-version":PRODUCER_VERSION,...env.forceEnable?{"x-interfere-force-enable":`1`}:{}}});if(debug){let orig=exporter.export.bind(exporter);exporter.export=(spans,cb)=>{let t=Date.now();orig(spans,result=>{let ms=Date.now()-t;if(result.code===0)console.log(`[interfere] export: ${spans.length} spans (${ms}ms)`);else{let err=result.error,status=err?.code?` ${err.code}`:``,body=err?.data??err?.message??`unknown error`;console.warn(`[interfere] export failed:${status} ${body} (${ms}ms, ${spans.length} spans dropped)`)}cb(result)})}}if(provider=new NodeTracerProvider({resource,spanProcessors:[new BatchSpanProcessor(exporter)]}),provider.register({contextManager:new AsyncLocalStorageContextManager().enable()}),installGlobalHandlers({captureUncaughtException:options.captureUncaughtException??!0,captureUnhandledRejection:options.captureUnhandledRejection??!0,flush}),debug){let endpoint=withPublicKey(`${env.apiUrl}${API_PATHS.SINK}`,env.publicKey);console.log(`[interfere] init: service=${serviceName}, env=${env.nodeEnvironment??`unknown`}, endpoint=${endpoint}`),releaseSlug&&console.log(`[interfere] release.slug=${releaseSlug}`)}}async function close(){provider&&=(uninstallGlobalHandlers(),await provider.shutdown(),null)}async function flush(){provider&&await provider.forceFlush()}export{close,flush,init};
3
+ and set INTERFERE_API_KEY in your CI environment. See https://interfere.com/docs/nest#releases`);let serviceName=options.serviceName??process.env.OTEL_SERVICE_NAME??`node-app`,resource=resourceFromAttributes({"service.name":serviceName,...options.serviceNamespace?{"service.namespace":options.serviceNamespace}:{},"deployment.environment.name":environment,"telemetry.sdk.language":`nodejs`,"interfere.sdk.name":`@interfere/node`,"interfere.sdk.version":PRODUCER_VERSION,...releaseSlug?{"release.slug":releaseSlug}:{}}),exporter=new OTLPTraceExporter({url:withPublicKey(`${env.apiUrl}${API_PATHS.SINK}`,env.publicKey),headers:{"user-agent":PRODUCER_VERSION,"x-interfere-producer-version":PRODUCER_VERSION,...env.forceEnable?{"x-interfere-force-enable":`1`}:{}}});if(debug){let orig=exporter.export.bind(exporter);exporter.export=(spans,cb)=>{let t=Date.now();orig(spans,result=>{let ms=Date.now()-t;if(result.code===0)console.log(`[interfere] export: ${spans.length} spans (${ms}ms)`);else{let err=result.error,status=err?.code?` ${err.code}`:``,body=err?.data??err?.message??`unknown error`;console.warn(`[interfere] export failed:${status} ${body} (${ms}ms, ${spans.length} spans dropped)`)}cb(result)})}}if(provider=new NodeTracerProvider({resource,spanProcessors:[new BatchSpanProcessor(exporter)]}),provider.register({contextManager:new AsyncLocalStorageContextManager().enable()}),installGlobalHandlers({captureUncaughtException:options.captureUncaughtException??!0,captureUnhandledRejection:options.captureUnhandledRejection??!0,flush}),debug){let endpoint=withPublicKey(`${env.apiUrl}${API_PATHS.SINK}`,env.publicKey);console.log(`[interfere] init: service=${serviceName}, env=${environment}, endpoint=${endpoint}`),releaseSlug&&console.log(`[interfere] release.slug=${releaseSlug}`)}}async function close(){provider&&=(uninstallGlobalHandlers(),await provider.shutdown(),null)}async function flush(){provider&&await provider.forceFlush()}export{close,flush,init};
4
4
  //# sourceMappingURL=init.mjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let _interfere_constants_api=require("@interfere/constants/api"),_interfere_types_sdk_env=require("@interfere/types/sdk/env"),_interfere_types_sdk_runtime=require("@interfere/types/sdk/runtime");function isEnabledInEnvironment(){return!0}function readInterfereEnv(){let nodeEnvironment=(0,_interfere_types_sdk_runtime.normalizeEnv)(process.env.NODE_ENV);return{apiUrl:(0,_interfere_types_sdk_env.parseEnvValue)(process.env.INTERFERE_API_URL)??_interfere_constants_api.API_URL,forceEnable:process.env.INTERFERE_FORCE_ENABLE===`1`,nodeEnvironment,publicKey:(0,_interfere_types_sdk_env.parseEnvValue)(process.env.INTERFERE_PUBLIC_KEY)}}exports.isEnabledInEnvironment=isEnabledInEnvironment,exports.readInterfereEnv=readInterfereEnv;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let _interfere_constants_api=require("@interfere/constants/api"),_interfere_types_sdk_env=require("@interfere/types/sdk/env");function isEnabledInEnvironment(){return!0}function readInterfereEnv(){return{apiUrl:(0,_interfere_types_sdk_env.parseEnvValue)(process.env.INTERFERE_API_URL)??_interfere_constants_api.API_URL,forceEnable:process.env.INTERFERE_FORCE_ENABLE===`1`,publicKey:(0,_interfere_types_sdk_env.parseEnvValue)(process.env.INTERFERE_PUBLIC_KEY)}}exports.isEnabledInEnvironment=isEnabledInEnvironment,exports.readInterfereEnv=readInterfereEnv;
@@ -1,10 +1,7 @@
1
- import { Env } from "@interfere/types/sdk/runtime";
2
-
3
1
  //#region src/internal/env.d.ts
4
2
  interface InterfereEnv {
5
3
  readonly apiUrl: string;
6
4
  readonly forceEnable: boolean;
7
- readonly nodeEnvironment: Env;
8
5
  readonly publicKey: string | null;
9
6
  }
10
7
  /**
@@ -1,10 +1,7 @@
1
- import { Env } from "@interfere/types/sdk/runtime";
2
-
3
1
  //#region src/internal/env.d.ts
4
2
  interface InterfereEnv {
5
3
  readonly apiUrl: string;
6
4
  readonly forceEnable: boolean;
7
- readonly nodeEnvironment: Env;
8
5
  readonly publicKey: string | null;
9
6
  }
10
7
  /**
@@ -1,2 +1,2 @@
1
- import{API_URL}from"@interfere/constants/api";import{parseEnvValue}from"@interfere/types/sdk/env";import{normalizeEnv}from"@interfere/types/sdk/runtime";function isEnabledInEnvironment(){return!0}function readInterfereEnv(){let nodeEnvironment=normalizeEnv(process.env.NODE_ENV);return{apiUrl:parseEnvValue(process.env.INTERFERE_API_URL)??API_URL,forceEnable:process.env.INTERFERE_FORCE_ENABLE===`1`,nodeEnvironment,publicKey:parseEnvValue(process.env.INTERFERE_PUBLIC_KEY)}}export{isEnabledInEnvironment,readInterfereEnv};
1
+ import{API_URL}from"@interfere/constants/api";import{parseEnvValue}from"@interfere/types/sdk/env";function isEnabledInEnvironment(){return!0}function readInterfereEnv(){return{apiUrl:parseEnvValue(process.env.INTERFERE_API_URL)??API_URL,forceEnable:process.env.INTERFERE_FORCE_ENABLE===`1`,publicKey:parseEnvValue(process.env.INTERFERE_PUBLIC_KEY)}}export{isEnabledInEnvironment,readInterfereEnv};
2
2
  //# sourceMappingURL=env.mjs.map
package/dist/package.cjs CHANGED
@@ -1 +1 @@
1
- var name=`@interfere/node`,version=`0.0.1-canary.5`;Object.defineProperty(exports,"name",{enumerable:!0,get:function(){return name}}),Object.defineProperty(exports,"version",{enumerable:!0,get:function(){return version}});
1
+ var name=`@interfere/node`,version=`0.1.0-canary.6`;Object.defineProperty(exports,"name",{enumerable:!0,get:function(){return name}}),Object.defineProperty(exports,"version",{enumerable:!0,get:function(){return version}});
package/dist/package.mjs CHANGED
@@ -1,2 +1,2 @@
1
- var name=`@interfere/node`,version=`0.0.1-canary.5`;export{name,version};
1
+ var name=`@interfere/node`,version=`0.1.0-canary.6`;export{name,version};
2
2
  //# sourceMappingURL=package.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interfere/node",
3
- "version": "0.0.1-canary.5",
3
+ "version": "0.1.0-canary.6",
4
4
  "license": "MIT",
5
5
  "description": "Node.js SDK for Interfere. Error tracking and OTel instrumentation for any Node server.",
6
6
  "keywords": [
@@ -17,7 +17,7 @@
17
17
  "author": "Interfere <support@interfere.com> (https://interfere.com)",
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git+https://github.com/interfere-inc/interfere.git",
20
+ "url": "git+https://interfere.ghe.com/interfere/interfere.git",
21
21
  "directory": "src/packages/public/node"
22
22
  },
23
23
  "files": [
@@ -73,11 +73,11 @@
73
73
  "scripts": {
74
74
  "build": "tsdown",
75
75
  "test": "vitest run --passWithNoTests",
76
- "typecheck": "tsc --noEmit --incremental"
76
+ "typecheck": "tsc --noEmit"
77
77
  },
78
78
  "dependencies": {
79
79
  "@interfere/constants": "^9.0.2-canary.0",
80
- "@interfere/types": "^9.0.3-canary.0",
80
+ "@interfere/types": "^9.0.3-canary.1",
81
81
  "@opentelemetry/api": "^1.9.1",
82
82
  "@opentelemetry/context-async-hooks": "^2.7.1",
83
83
  "@opentelemetry/exporter-trace-otlp-http": "^0.218.0",
@@ -90,9 +90,9 @@
90
90
  "@interfere/test-utils": "^9.0.0",
91
91
  "@interfere/typescript-config": "^9.0.0",
92
92
  "@types/node": "^24.12.0",
93
- "@vitest/coverage-v8": "^4.1.6",
94
- "tsdown": "^0.22.0",
93
+ "@vitest/coverage-v8": "4.1.8",
94
+ "tsdown": "0.22.1",
95
95
  "typescript": "^6.0.3",
96
- "vitest": "^4.1.6"
96
+ "vitest": "4.1.8"
97
97
  }
98
98
  }