@workglow/storage 0.1.1 → 0.2.0

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.
Files changed (43) hide show
  1. package/README.md +1 -16
  2. package/dist/browser.js +89 -19
  3. package/dist/browser.js.map +11 -10
  4. package/dist/bun.js +61 -15
  5. package/dist/bun.js.map +14 -13
  6. package/dist/common.d.ts +1 -0
  7. package/dist/common.d.ts.map +1 -1
  8. package/dist/credentials/LazyEncryptedCredentialStore.d.ts +63 -0
  9. package/dist/credentials/LazyEncryptedCredentialStore.d.ts.map +1 -0
  10. package/dist/kv/IKvStorage.d.ts.map +1 -1
  11. package/dist/node.js +61 -15
  12. package/dist/node.js.map +14 -13
  13. package/dist/postgres/browser.d.ts.map +1 -1
  14. package/dist/postgres/node-bun.d.ts.map +1 -1
  15. package/dist/queue/IQueueStorage.d.ts.map +1 -1
  16. package/dist/queue/InMemoryQueueStorage.d.ts.map +1 -1
  17. package/dist/queue/SqliteQueueStorage.d.ts.map +1 -1
  18. package/dist/sqlite/browser.d.ts.map +1 -1
  19. package/dist/sqlite/bun.d.ts.map +1 -1
  20. package/dist/sqlite/node.d.ts.map +1 -1
  21. package/dist/tabular/BaseSqlTabularStorage.d.ts.map +1 -1
  22. package/dist/tabular/BaseTabularStorage.d.ts +2 -2
  23. package/dist/tabular/BaseTabularStorage.d.ts.map +1 -1
  24. package/dist/tabular/IndexedDbTabularStorage.d.ts.map +1 -1
  25. package/dist/tabular/PostgresTabularStorage.d.ts.map +1 -1
  26. package/dist/tabular/SharedInMemoryTabularStorage.d.ts +2 -0
  27. package/dist/tabular/SharedInMemoryTabularStorage.d.ts.map +1 -1
  28. package/dist/tabular/SqliteTabularStorage.d.ts.map +1 -1
  29. package/dist/tabular/StorageError.d.ts +0 -2
  30. package/dist/tabular/StorageError.d.ts.map +1 -1
  31. package/dist/tabular/SupabaseTabularStorage.d.ts.map +1 -1
  32. package/dist/tabular/TabularStorageRegistry.d.ts.map +1 -1
  33. package/dist/vector/InMemoryVectorStorage.d.ts +2 -2
  34. package/dist/vector/InMemoryVectorStorage.d.ts.map +1 -1
  35. package/dist/vector/IndexedDbVectorStorage.d.ts +2 -2
  36. package/dist/vector/IndexedDbVectorStorage.d.ts.map +1 -1
  37. package/dist/vector/PostgresVectorStorage.d.ts +2 -2
  38. package/dist/vector/PostgresVectorStorage.d.ts.map +1 -1
  39. package/dist/vector/SqliteAiVectorStorage.d.ts +2 -2
  40. package/dist/vector/SqliteAiVectorStorage.d.ts.map +1 -1
  41. package/dist/vector/SqliteVectorStorage.d.ts +2 -2
  42. package/dist/vector/SqliteVectorStorage.d.ts.map +1 -1
  43. package/package.json +12 -15
package/dist/bun.js CHANGED
@@ -14,16 +14,10 @@ import { BaseError } from "@workglow/util";
14
14
 
15
15
  class StorageError extends BaseError {
16
16
  static type = "StorageError";
17
- constructor(message) {
18
- super(message);
19
- }
20
17
  }
21
18
 
22
19
  class StorageValidationError extends StorageError {
23
20
  static type = "StorageValidationError";
24
- constructor(message) {
25
- super(message);
26
- }
27
21
  }
28
22
 
29
23
  class StorageEmptyCriteriaError extends StorageValidationError {
@@ -124,14 +118,10 @@ class BaseTabularStorage {
124
118
  }
125
119
  }
126
120
  if (autoGeneratedKeys.length > 1) {
127
- throw new Error(`Multiple auto-generated keys detected: ${autoGeneratedKeys.join(", ")}. ` + `Only the first primary key column can be auto-generated.`);
121
+ throw new Error(`Multiple auto-generated keys detected: ${autoGeneratedKeys.join(", ")}. ` + `At most one primary key column can be auto-generated.`);
128
122
  }
129
123
  if (autoGeneratedKeys.length > 0) {
130
124
  const autoGenKeyName = autoGeneratedKeys[0];
131
- const firstPrimaryKey = String(primaryKeyNames[0]);
132
- if (autoGenKeyName !== firstPrimaryKey) {
133
- throw new Error(`Auto-generated key "${autoGenKeyName}" must be the first primary key column. ` + `Current first primary key is "${firstPrimaryKey}".`);
134
- }
135
125
  this.autoGeneratedKeyName = autoGenKeyName;
136
126
  this.autoGeneratedKeyStrategy = this.determineGenerationStrategy(autoGenKeyName, schema.properties[autoGenKeyName]);
137
127
  }
@@ -1113,12 +1103,11 @@ function hfFeatureToJsonSchema(feature) {
1113
1103
  import {
1114
1104
  createServiceToken as createServiceToken5,
1115
1105
  globalServiceRegistry,
1106
+ registerInputCompactor,
1116
1107
  registerInputResolver
1117
1108
  } from "@workglow/util";
1118
1109
  var TABULAR_REPOSITORIES = createServiceToken5("storage.tabular.repositories");
1119
- if (!globalServiceRegistry.has(TABULAR_REPOSITORIES)) {
1120
- globalServiceRegistry.register(TABULAR_REPOSITORIES, () => new Map, true);
1121
- }
1110
+ globalServiceRegistry.registerIfAbsent(TABULAR_REPOSITORIES, () => new Map, true);
1122
1111
  function getGlobalTabularRepositories() {
1123
1112
  return globalServiceRegistry.get(TABULAR_REPOSITORIES);
1124
1113
  }
@@ -1138,6 +1127,14 @@ function resolveRepositoryFromRegistry(id, format, registry) {
1138
1127
  return repo;
1139
1128
  }
1140
1129
  registerInputResolver("storage:tabular", resolveRepositoryFromRegistry);
1130
+ registerInputCompactor("storage:tabular", (value, _format, registry) => {
1131
+ const repos = registry.has(TABULAR_REPOSITORIES) ? registry.get(TABULAR_REPOSITORIES) : getGlobalTabularRepositories();
1132
+ for (const [id, repo] of repos) {
1133
+ if (repo === value)
1134
+ return id;
1135
+ }
1136
+ return;
1137
+ });
1141
1138
  // src/util/traced.ts
1142
1139
  import { getTelemetryProvider, SpanStatusCode } from "@workglow/util";
1143
1140
  async function traced(spanName, storageName, fn) {
@@ -2237,6 +2234,54 @@ class EncryptedKvCredentialStore {
2237
2234
  await this.kv.deleteAll();
2238
2235
  }
2239
2236
  }
2237
+ // src/credentials/LazyEncryptedCredentialStore.ts
2238
+ class LazyEncryptedCredentialStore {
2239
+ kv;
2240
+ inner;
2241
+ constructor(kv) {
2242
+ this.kv = kv;
2243
+ }
2244
+ get isUnlocked() {
2245
+ return this.inner !== undefined;
2246
+ }
2247
+ unlock(passphrase) {
2248
+ this.inner = new EncryptedKvCredentialStore(this.kv, passphrase);
2249
+ }
2250
+ lock() {
2251
+ this.inner = undefined;
2252
+ }
2253
+ async get(key) {
2254
+ if (!this.inner)
2255
+ return;
2256
+ return this.inner.get(key);
2257
+ }
2258
+ async put(key, value, options) {
2259
+ if (!this.inner) {
2260
+ throw new Error("Credential store is locked. Call unlock() before storing credentials.");
2261
+ }
2262
+ return this.inner.put(key, value, options);
2263
+ }
2264
+ async delete(key) {
2265
+ if (!this.inner)
2266
+ return false;
2267
+ return this.inner.delete(key);
2268
+ }
2269
+ async has(key) {
2270
+ if (!this.inner)
2271
+ return false;
2272
+ return this.inner.has(key);
2273
+ }
2274
+ async keys() {
2275
+ if (!this.inner)
2276
+ return [];
2277
+ return this.inner.keys();
2278
+ }
2279
+ async deleteAll() {
2280
+ if (!this.inner)
2281
+ return;
2282
+ return this.inner.deleteAll();
2283
+ }
2284
+ }
2240
2285
  // src/tabular/FsFolderTabularStorage.ts
2241
2286
  import { createServiceToken as createServiceToken12, getLogger as getLogger3, makeFingerprint as makeFingerprint5, sleep as sleep3, uuid4 as uuid43 } from "@workglow/util";
2242
2287
  import { mkdir, readdir, readFile, rm, writeFile } from "fs/promises";
@@ -8282,6 +8327,7 @@ export {
8282
8327
  POSTGRES_KV_REPOSITORY,
8283
8328
  MEMORY_TABULAR_REPOSITORY,
8284
8329
  MEMORY_KV_REPOSITORY,
8330
+ LazyEncryptedCredentialStore,
8285
8331
  KvViaTabularStorage,
8286
8332
  KvStorage,
8287
8333
  KV_REPOSITORY,
@@ -8320,4 +8366,4 @@ export {
8320
8366
  BaseTabularStorage
8321
8367
  };
8322
8368
 
8323
- //# debugId=962404C01663B8E764756E2164756E21
8369
+ //# debugId=58A5C10FFC88774F64756E2164756E21