@workglow/util 0.0.115 → 0.0.117

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/bun.js CHANGED
@@ -3014,6 +3014,159 @@ async function resolveAuthSecrets(auth, credentialStore) {
3014
3014
  return auth;
3015
3015
  }
3016
3016
  }
3017
+ // src/telemetry/ITelemetryProvider.ts
3018
+ var SpanStatusCode = {
3019
+ UNSET: 0,
3020
+ OK: 1,
3021
+ ERROR: 2
3022
+ };
3023
+
3024
+ // src/telemetry/ConsoleTelemetryProvider.ts
3025
+ class ConsoleSpan {
3026
+ name;
3027
+ startTime;
3028
+ attributes = {};
3029
+ events = [];
3030
+ statusCode = SpanStatusCode.UNSET;
3031
+ statusMessage;
3032
+ constructor(name, options) {
3033
+ this.name = name;
3034
+ this.startTime = performance.now();
3035
+ if (options?.attributes) {
3036
+ this.attributes = { ...options.attributes };
3037
+ }
3038
+ }
3039
+ setAttributes(attributes) {
3040
+ Object.assign(this.attributes, attributes);
3041
+ }
3042
+ addEvent(name, attributes) {
3043
+ this.events.push({ name, attributes });
3044
+ }
3045
+ setStatus(code, message) {
3046
+ this.statusCode = code;
3047
+ this.statusMessage = message;
3048
+ }
3049
+ end() {
3050
+ const duration = performance.now() - this.startTime;
3051
+ const parts = [`[telemetry] ${this.name} (${duration.toFixed(2)}ms)`];
3052
+ const attrKeys = Object.keys(this.attributes);
3053
+ if (attrKeys.length > 0) {
3054
+ parts.push(` attributes: ${JSON.stringify(this.attributes)}`);
3055
+ }
3056
+ for (const event of this.events) {
3057
+ const eventStr = event.attributes ? `${event.name} ${JSON.stringify(event.attributes)}` : event.name;
3058
+ parts.push(` event: ${eventStr}`);
3059
+ }
3060
+ if (this.statusCode === SpanStatusCode.OK) {
3061
+ parts.push(" status: OK");
3062
+ } else if (this.statusCode === SpanStatusCode.ERROR) {
3063
+ parts.push(` status: ERROR${this.statusMessage ? ` - ${this.statusMessage}` : ""}`);
3064
+ }
3065
+ const message = parts.join(`
3066
+ `);
3067
+ if (this.statusCode === SpanStatusCode.ERROR) {
3068
+ console.error(message);
3069
+ } else {
3070
+ console.debug(message);
3071
+ }
3072
+ }
3073
+ }
3074
+
3075
+ class ConsoleTelemetryProvider {
3076
+ isEnabled = true;
3077
+ startSpan(name, options) {
3078
+ return new ConsoleSpan(name, options);
3079
+ }
3080
+ }
3081
+ // src/telemetry/NoopTelemetryProvider.ts
3082
+ var NOOP_SPAN = {
3083
+ setAttributes(_attributes) {},
3084
+ addEvent(_name, _attributes) {},
3085
+ setStatus(_code, _message) {},
3086
+ end() {}
3087
+ };
3088
+
3089
+ class NoopTelemetryProvider {
3090
+ isEnabled = false;
3091
+ startSpan(_name, _options) {
3092
+ return NOOP_SPAN;
3093
+ }
3094
+ }
3095
+ // src/telemetry/OTelTelemetryProvider.ts
3096
+ var STATUS_MAP = {
3097
+ [SpanStatusCode.UNSET]: 0,
3098
+ [SpanStatusCode.OK]: 1,
3099
+ [SpanStatusCode.ERROR]: 2
3100
+ };
3101
+
3102
+ class OTelSpanWrapper {
3103
+ otelSpan;
3104
+ constructor(otelSpan) {
3105
+ this.otelSpan = otelSpan;
3106
+ }
3107
+ setAttributes(attributes) {
3108
+ for (const [key, value] of Object.entries(attributes)) {
3109
+ if (value !== undefined) {
3110
+ this.otelSpan.setAttribute(key, value);
3111
+ }
3112
+ }
3113
+ }
3114
+ addEvent(name, attributes) {
3115
+ const filtered = attributes ? Object.fromEntries(Object.entries(attributes).filter(([, v]) => v !== undefined)) : undefined;
3116
+ this.otelSpan.addEvent(name, filtered);
3117
+ }
3118
+ setStatus(code, message) {
3119
+ this.otelSpan.setStatus({ code: STATUS_MAP[code], message });
3120
+ }
3121
+ end() {
3122
+ this.otelSpan.end();
3123
+ }
3124
+ }
3125
+
3126
+ class OTelTelemetryProvider {
3127
+ tracer;
3128
+ isEnabled = true;
3129
+ constructor(tracer) {
3130
+ this.tracer = tracer;
3131
+ }
3132
+ startSpan(name, options) {
3133
+ const otelOptions = {};
3134
+ if (options?.attributes) {
3135
+ otelOptions.attributes = Object.fromEntries(Object.entries(options.attributes).filter(([, v]) => v !== undefined));
3136
+ }
3137
+ const otelSpan = this.tracer.startSpan(name, otelOptions);
3138
+ return new OTelSpanWrapper(otelSpan);
3139
+ }
3140
+ }
3141
+ // src/telemetry/TelemetryRegistry.ts
3142
+ var TELEMETRY_PROVIDER = createServiceToken("telemetry");
3143
+ function getEnv2(name) {
3144
+ if (typeof process !== "undefined" && process.env) {
3145
+ return process.env[name];
3146
+ }
3147
+ return import.meta.env[name];
3148
+ }
3149
+ function isTruthy2(value) {
3150
+ return value !== undefined && value !== "" && value !== "0" && value !== "false";
3151
+ }
3152
+ function createDefaultTelemetryProvider() {
3153
+ if (getEnv2("TELEMETRY")?.toLowerCase() === "console") {
3154
+ return new ConsoleTelemetryProvider;
3155
+ }
3156
+ if (isTruthy2(getEnv2("DEV")) && getEnv2("NODE_ENV") !== "test" && !isTruthy2(getEnv2("VITEST")) && !isTruthy2(getEnv2("CI"))) {
3157
+ return new ConsoleTelemetryProvider;
3158
+ }
3159
+ return new NoopTelemetryProvider;
3160
+ }
3161
+ if (!globalServiceRegistry.has(TELEMETRY_PROVIDER)) {
3162
+ globalServiceRegistry.register(TELEMETRY_PROVIDER, createDefaultTelemetryProvider, true);
3163
+ }
3164
+ function getTelemetryProvider() {
3165
+ return globalServiceRegistry.get(TELEMETRY_PROVIDER);
3166
+ }
3167
+ function setTelemetryProvider(provider) {
3168
+ globalServiceRegistry.registerInstance(TELEMETRY_PROVIDER, provider);
3169
+ }
3017
3170
  // src/compress/compress.node.ts
3018
3171
  import { promisify } from "util";
3019
3172
  import zlib from "zlib";
@@ -3175,6 +3328,7 @@ export {
3175
3328
  sortObject,
3176
3329
  sleep,
3177
3330
  sha256,
3331
+ setTelemetryProvider,
3178
3332
  setLogger,
3179
3333
  setGlobalCredentialStore,
3180
3334
  serialize,
@@ -3201,6 +3355,7 @@ export {
3201
3355
  hammingDistance,
3202
3356
  globalServiceRegistry,
3203
3357
  globalContainer,
3358
+ getTelemetryProvider,
3204
3359
  getLogger,
3205
3360
  getInputResolvers,
3206
3361
  getGlobalCredentialStore,
@@ -3232,8 +3387,12 @@ export {
3232
3387
  TypedArraySchema,
3233
3388
  TensorType,
3234
3389
  TensorSchema,
3390
+ TELEMETRY_PROVIDER,
3391
+ SpanStatusCode,
3235
3392
  ServiceRegistry,
3393
+ OTelTelemetryProvider,
3236
3394
  NullLogger,
3395
+ NoopTelemetryProvider,
3237
3396
  NodeDoesntExistError,
3238
3397
  NodeAlreadyExistsError,
3239
3398
  LOGGER,
@@ -3248,10 +3407,11 @@ export {
3248
3407
  CycleError,
3249
3408
  CredentialStoreOAuthProvider,
3250
3409
  Container,
3410
+ ConsoleTelemetryProvider,
3251
3411
  ConsoleLogger,
3252
3412
  ChainedCredentialStore,
3253
3413
  CREDENTIAL_STORE,
3254
3414
  BaseError
3255
3415
  };
3256
3416
 
3257
- //# debugId=D6D92D7A74A232E064756E2164756E21
3417
+ //# debugId=8521DA6A86167CBD64756E2164756E21