@workglow/util 0.0.115 → 0.0.116

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