@workglow/storage 0.0.114 → 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
@@ -1138,6 +1138,102 @@ function resolveRepositoryFromRegistry(id, format, registry) {
1138
1138
  return repo;
1139
1139
  }
1140
1140
  registerInputResolver("storage:tabular", resolveRepositoryFromRegistry);
1141
+ // src/util/traced.ts
1142
+ import { getTelemetryProvider, SpanStatusCode } from "@workglow/util";
1143
+ async function traced(spanName, storageName, fn) {
1144
+ const telemetry = getTelemetryProvider();
1145
+ if (!telemetry.isEnabled)
1146
+ return fn();
1147
+ const span = telemetry.startSpan(spanName, {
1148
+ attributes: { "workglow.storage.name": storageName }
1149
+ });
1150
+ try {
1151
+ const result = await fn();
1152
+ span.setStatus(SpanStatusCode.OK);
1153
+ return result;
1154
+ } catch (err) {
1155
+ span.setStatus(SpanStatusCode.ERROR, err instanceof Error ? err.message : String(err));
1156
+ throw err;
1157
+ } finally {
1158
+ span.end();
1159
+ }
1160
+ }
1161
+
1162
+ // src/tabular/TelemetryTabularStorage.ts
1163
+ class TelemetryTabularStorage {
1164
+ storageName;
1165
+ inner;
1166
+ constructor(storageName, inner) {
1167
+ this.storageName = storageName;
1168
+ this.inner = inner;
1169
+ }
1170
+ put(value) {
1171
+ return traced("workglow.storage.tabular.put", this.storageName, () => this.inner.put(value));
1172
+ }
1173
+ putBulk(values) {
1174
+ return traced("workglow.storage.tabular.putBulk", this.storageName, () => this.inner.putBulk(values));
1175
+ }
1176
+ get(key) {
1177
+ return traced("workglow.storage.tabular.get", this.storageName, () => this.inner.get(key));
1178
+ }
1179
+ delete(key) {
1180
+ return traced("workglow.storage.tabular.delete", this.storageName, () => this.inner.delete(key));
1181
+ }
1182
+ getAll(options) {
1183
+ return traced("workglow.storage.tabular.getAll", this.storageName, () => this.inner.getAll(options));
1184
+ }
1185
+ deleteAll() {
1186
+ return traced("workglow.storage.tabular.deleteAll", this.storageName, () => this.inner.deleteAll());
1187
+ }
1188
+ size() {
1189
+ return traced("workglow.storage.tabular.size", this.storageName, () => this.inner.size());
1190
+ }
1191
+ deleteSearch(criteria) {
1192
+ return traced("workglow.storage.tabular.deleteSearch", this.storageName, () => this.inner.deleteSearch(criteria));
1193
+ }
1194
+ getBulk(offset, limit) {
1195
+ return traced("workglow.storage.tabular.getBulk", this.storageName, () => this.inner.getBulk(offset, limit));
1196
+ }
1197
+ query(criteria, options) {
1198
+ return traced("workglow.storage.tabular.query", this.storageName, () => this.inner.query(criteria, options));
1199
+ }
1200
+ records(pageSize) {
1201
+ return this.inner.records(pageSize);
1202
+ }
1203
+ pages(pageSize) {
1204
+ return this.inner.pages(pageSize);
1205
+ }
1206
+ subscribeToChanges(callback, options) {
1207
+ return this.inner.subscribeToChanges(callback, options);
1208
+ }
1209
+ setupDatabase() {
1210
+ return this.inner.setupDatabase();
1211
+ }
1212
+ destroy() {
1213
+ return this.inner.destroy();
1214
+ }
1215
+ [Symbol.dispose]() {
1216
+ return this.inner[Symbol.dispose]();
1217
+ }
1218
+ [Symbol.asyncDispose]() {
1219
+ return this.inner[Symbol.asyncDispose]();
1220
+ }
1221
+ on(name, fn) {
1222
+ this.inner.on(name, fn);
1223
+ }
1224
+ off(name, fn) {
1225
+ this.inner.off(name, fn);
1226
+ }
1227
+ emit(name, ...args) {
1228
+ this.inner.emit(name, ...args);
1229
+ }
1230
+ once(name, fn) {
1231
+ this.inner.once(name, fn);
1232
+ }
1233
+ waitOn(name) {
1234
+ return this.inner.waitOn(name);
1235
+ }
1236
+ }
1141
1237
  // src/kv/IKvStorage.ts
1142
1238
  var DefaultKeyValueSchema = {
1143
1239
  type: "object",
@@ -1269,6 +1365,54 @@ class InMemoryKvStorage extends KvViaTabularStorage {
1269
1365
  this.tabularRepository = new InMemoryTabularStorage(DefaultKeyValueSchema, DefaultKeyValueKey);
1270
1366
  }
1271
1367
  }
1368
+ // src/kv/TelemetryKvStorage.ts
1369
+ class TelemetryKvStorage {
1370
+ storageName;
1371
+ inner;
1372
+ constructor(storageName, inner) {
1373
+ this.storageName = storageName;
1374
+ this.inner = inner;
1375
+ }
1376
+ put(key, value) {
1377
+ return traced("workglow.storage.kv.put", this.storageName, () => this.inner.put(key, value));
1378
+ }
1379
+ putBulk(items) {
1380
+ return traced("workglow.storage.kv.putBulk", this.storageName, () => this.inner.putBulk(items));
1381
+ }
1382
+ get(key) {
1383
+ return traced("workglow.storage.kv.get", this.storageName, () => this.inner.get(key));
1384
+ }
1385
+ delete(key) {
1386
+ return traced("workglow.storage.kv.delete", this.storageName, () => this.inner.delete(key));
1387
+ }
1388
+ getAll() {
1389
+ return traced("workglow.storage.kv.getAll", this.storageName, () => this.inner.getAll());
1390
+ }
1391
+ deleteAll() {
1392
+ return traced("workglow.storage.kv.deleteAll", this.storageName, () => this.inner.deleteAll());
1393
+ }
1394
+ size() {
1395
+ return traced("workglow.storage.kv.size", this.storageName, () => this.inner.size());
1396
+ }
1397
+ getObjectAsIdString(object) {
1398
+ return this.inner.getObjectAsIdString(object);
1399
+ }
1400
+ on(name, fn) {
1401
+ this.inner.on(name, fn);
1402
+ }
1403
+ off(name, fn) {
1404
+ this.inner.off(name, fn);
1405
+ }
1406
+ emit(name, ...args) {
1407
+ this.inner.emit(name, ...args);
1408
+ }
1409
+ once(name, fn) {
1410
+ this.inner.once(name, fn);
1411
+ }
1412
+ waitOn(name) {
1413
+ return this.inner.waitOn(name);
1414
+ }
1415
+ }
1272
1416
  // src/queue/InMemoryQueueStorage.ts
1273
1417
  import {
1274
1418
  createServiceToken as createServiceToken9,
@@ -1480,6 +1624,60 @@ class InMemoryQueueStorage {
1480
1624
  return this.events.subscribe("change", filteredCallback);
1481
1625
  }
1482
1626
  }
1627
+ // src/queue/TelemetryQueueStorage.ts
1628
+ class TelemetryQueueStorage {
1629
+ storageName;
1630
+ inner;
1631
+ constructor(storageName, inner) {
1632
+ this.storageName = storageName;
1633
+ this.inner = inner;
1634
+ }
1635
+ add(job) {
1636
+ return traced("workglow.storage.queue.add", this.storageName, () => this.inner.add(job));
1637
+ }
1638
+ get(id) {
1639
+ return traced("workglow.storage.queue.get", this.storageName, () => this.inner.get(id));
1640
+ }
1641
+ next(workerId) {
1642
+ return traced("workglow.storage.queue.next", this.storageName, () => this.inner.next(workerId));
1643
+ }
1644
+ peek(status, num) {
1645
+ return traced("workglow.storage.queue.peek", this.storageName, () => this.inner.peek(status, num));
1646
+ }
1647
+ size(status) {
1648
+ return traced("workglow.storage.queue.size", this.storageName, () => this.inner.size(status));
1649
+ }
1650
+ complete(job) {
1651
+ return traced("workglow.storage.queue.complete", this.storageName, () => this.inner.complete(job));
1652
+ }
1653
+ deleteAll() {
1654
+ return traced("workglow.storage.queue.deleteAll", this.storageName, () => this.inner.deleteAll());
1655
+ }
1656
+ outputForInput(input) {
1657
+ return traced("workglow.storage.queue.outputForInput", this.storageName, () => this.inner.outputForInput(input));
1658
+ }
1659
+ abort(id) {
1660
+ return traced("workglow.storage.queue.abort", this.storageName, () => this.inner.abort(id));
1661
+ }
1662
+ getByRunId(runId) {
1663
+ return traced("workglow.storage.queue.getByRunId", this.storageName, () => this.inner.getByRunId(runId));
1664
+ }
1665
+ saveProgress(id, progress, message, details) {
1666
+ return traced("workglow.storage.queue.saveProgress", this.storageName, () => this.inner.saveProgress(id, progress, message, details));
1667
+ }
1668
+ delete(id) {
1669
+ return traced("workglow.storage.queue.delete", this.storageName, () => this.inner.delete(id));
1670
+ }
1671
+ deleteJobsByStatusAndAge(status, olderThanMs) {
1672
+ return traced("workglow.storage.queue.deleteJobsByStatusAndAge", this.storageName, () => this.inner.deleteJobsByStatusAndAge(status, olderThanMs));
1673
+ }
1674
+ setupDatabase() {
1675
+ return this.inner.setupDatabase();
1676
+ }
1677
+ subscribeToChanges(callback, options) {
1678
+ return this.inner.subscribeToChanges(callback, options);
1679
+ }
1680
+ }
1483
1681
  // src/queue-limiter/InMemoryRateLimiterStorage.ts
1484
1682
  import { createServiceToken as createServiceToken10, sleep as sleep2 } from "@workglow/util";
1485
1683
  var IN_MEMORY_RATE_LIMITER_STORAGE = createServiceToken10("ratelimiter.storage.inMemory");
@@ -1933,6 +2131,26 @@ class InMemoryVectorStorage extends InMemoryTabularStorage {
1933
2131
  return topResults;
1934
2132
  }
1935
2133
  }
2134
+ // src/vector/TelemetryVectorStorage.ts
2135
+ class TelemetryVectorStorage extends TelemetryTabularStorage {
2136
+ vectorInner;
2137
+ constructor(storageName, inner) {
2138
+ super(storageName, inner);
2139
+ this.vectorInner = inner;
2140
+ }
2141
+ getVectorDimensions() {
2142
+ return this.vectorInner.getVectorDimensions();
2143
+ }
2144
+ similaritySearch(query, options) {
2145
+ return traced("workglow.storage.vector.similaritySearch", this.storageName, () => this.vectorInner.similaritySearch(query, options));
2146
+ }
2147
+ hybridSearch(query, options) {
2148
+ if (!this.vectorInner.hybridSearch) {
2149
+ throw new Error("hybridSearch is not supported by the underlying storage implementation");
2150
+ }
2151
+ return traced("workglow.storage.vector.hybridSearch", this.storageName, () => this.vectorInner.hybridSearch(query, options));
2152
+ }
2153
+ }
1936
2154
  // src/credentials/EncryptedKvCredentialStore.ts
1937
2155
  import { decrypt, encrypt } from "@workglow/util";
1938
2156
 
@@ -5203,6 +5421,7 @@ class IndexedDbVectorStorage extends IndexedDbTabularStorage {
5203
5421
  }
5204
5422
  }
5205
5423
  export {
5424
+ traced,
5206
5425
  registerTabularRepository,
5207
5426
  isSearchCondition,
5208
5427
  getVectorProperty,
@@ -5211,6 +5430,10 @@ export {
5211
5430
  getGlobalTabularRepositories,
5212
5431
  ensureIndexedDbTable,
5213
5432
  dropIndexedDbTable,
5433
+ TelemetryVectorStorage,
5434
+ TelemetryTabularStorage,
5435
+ TelemetryQueueStorage,
5436
+ TelemetryKvStorage,
5214
5437
  TABULAR_REPOSITORY,
5215
5438
  TABULAR_REPOSITORIES,
5216
5439
  SupabaseTabularStorage,
@@ -5266,4 +5489,4 @@ export {
5266
5489
  BaseTabularStorage
5267
5490
  };
5268
5491
 
5269
- //# debugId=E678A7B863107B3464756E2164756E21
5492
+ //# debugId=73D6D962906C686A64756E2164756E21