chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:32:57 +08:00
commit cd420f9332
4811 changed files with 884702 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# Redis
This is a simple package that is used to return a valid Redis client and provides an error callback. It will log and swallow errors if they're not handled.
+17
View File
@@ -0,0 +1,17 @@
{
"name": "@internal/tracing",
"private": true,
"version": "0.0.1",
"main": "./src/index.ts",
"types": "./src/index.ts",
"type": "module",
"dependencies": {
"@opentelemetry/api": "1.9.1",
"@opentelemetry/api-logs": "0.218.0",
"@opentelemetry/semantic-conventions": "^1.41.1",
"@trigger.dev/core": "workspace:*"
},
"scripts": {
"typecheck": "tsc --noEmit"
}
}
+154
View File
@@ -0,0 +1,154 @@
import {
type Meter,
context,
metrics,
propagation,
ROOT_CONTEXT,
SpanKind,
SpanStatusCode,
trace,
ValueType,
type Attributes,
type Context,
type Counter,
type Gauge,
type Histogram,
type Meter as MeterType,
type MetricOptions,
type ObservableCounter,
type ObservableGauge,
type ObservableResult,
type ObservableUpDownCounter,
type Span,
type SpanOptions,
type Tracer,
type UpDownCounter,
} from "@opentelemetry/api";
import { type Logger, SeverityNumber } from "@opentelemetry/api-logs";
import { flattenAttributes } from "@trigger.dev/core/v3/utils/flattenAttributes";
export * from "@opentelemetry/semantic-conventions";
export type {
Attributes,
Counter,
Gauge,
Histogram,
MeterType as Meter,
MetricOptions,
ObservableCounter,
ObservableGauge,
ObservableResult,
ObservableUpDownCounter,
Span,
SpanOptions,
Tracer,
UpDownCounter,
};
export {
context,
metrics,
propagation,
ROOT_CONTEXT,
SpanKind,
SpanStatusCode,
trace,
ValueType,
type Context,
};
export function getTracer(name: string): Tracer {
return trace.getTracer(name);
}
export function getMeter(name: string): Meter {
return metrics.getMeter(name);
}
export async function startSpan<T>(
tracer: Tracer | undefined,
name: string,
fn: (span: Span) => Promise<T>,
options?: SpanOptions
): Promise<T> {
tracer ??= getTracer("default");
return tracer.startActiveSpan(name, options ?? {}, async (span) => {
try {
return await fn(span);
} catch (error) {
if (error instanceof Error) {
span.recordException(error);
} else if (typeof error === "string") {
span.recordException(new Error(error));
} else {
span.recordException(new Error(String(error)));
}
span.setStatus({
code: SpanStatusCode.ERROR,
message: error instanceof Error ? error.message : String(error),
});
throw error;
} finally {
span.end();
}
});
}
export function recordSpanError(span: Span, error: Error) {
span.recordException(error);
span.setStatus({
code: SpanStatusCode.ERROR,
message: error.message,
});
}
export async function emitDebugLog(
logger: Logger,
message: string,
params: Record<string, unknown> = {}
) {
logger.emit({
severityNumber: SeverityNumber.DEBUG,
body: message,
attributes: { ...flattenAttributes(params, "params") },
});
}
export async function emitInfoLog(
logger: Logger,
message: string,
params: Record<string, unknown> = {}
) {
logger.emit({
severityNumber: SeverityNumber.INFO,
body: message,
attributes: { ...flattenAttributes(params, "params") },
});
}
export async function emitErrorLog(
logger: Logger,
message: string,
params: Record<string, unknown> = {}
) {
logger.emit({
severityNumber: SeverityNumber.ERROR,
body: message,
attributes: { ...flattenAttributes(params, "params") },
});
}
export async function emitWarnLog(
logger: Logger,
message: string,
params: Record<string, unknown> = {}
) {
logger.emit({
severityNumber: SeverityNumber.WARN,
body: message,
attributes: { ...flattenAttributes(params, "params") },
});
}
+23
View File
@@ -0,0 +1,23 @@
{
"compilerOptions": {
"target": "ES2019",
"lib": ["ES2019", "DOM", "DOM.Iterable", "DOM.AsyncIterable"],
"module": "Node16",
"moduleResolution": "Node16",
"moduleDetection": "force",
"verbatimModuleSyntax": false,
"types": ["vitest/globals"],
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"preserveWatchOutput": true,
"skipLibCheck": true,
"noEmit": true,
"strict": true,
"paths": {
"@trigger.dev/core": ["../../packages/core/src/index"],
"@trigger.dev/core/*": ["../../packages/core/src/*"]
}
},
"exclude": ["node_modules"]
}