s3db.js 19.0.1-next.a0f32580 → 19.0.1-next.c969d2da

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.
@@ -11,7 +11,8 @@ export class PluginStorage {
11
11
  pluginSlug;
12
12
  _lock;
13
13
  _sequence;
14
- constructor(client, pluginSlug) {
14
+ _now;
15
+ constructor(client, pluginSlug, options = {}) {
15
16
  if (!client) {
16
17
  throw new PluginStorageError('PluginStorage requires a client instance', {
17
18
  operation: 'constructor',
@@ -27,6 +28,8 @@ export class PluginStorage {
27
28
  }
28
29
  this.client = client;
29
30
  this.pluginSlug = pluginSlug;
31
+ // Use arrow function to capture Date.now dynamically (enables FakeTimers mocking)
32
+ this._now = options.now ?? (() => Date.now());
30
33
  this._lock = new DistributedLock(this, {
31
34
  keyGenerator: (name) => this.getPluginKey(null, 'locks', name)
32
35
  });
@@ -51,7 +54,7 @@ export class PluginStorage {
51
54
  const { ttl, behavior = 'body-overflow', contentType = 'application/json', ifMatch, ifNoneMatch } = options;
52
55
  const dataToSave = { ...data };
53
56
  if (ttl && typeof ttl === 'number' && ttl > 0) {
54
- dataToSave._expiresAt = Date.now() + (ttl * 1000);
57
+ dataToSave._expiresAt = this._now() + (ttl * 1000);
55
58
  }
56
59
  const { metadata, body } = this._applyBehavior(dataToSave, behavior);
57
60
  const putParams = {
@@ -132,7 +135,7 @@ export class PluginStorage {
132
135
  }
133
136
  const expiresAt = (data._expiresat || data._expiresAt);
134
137
  if (expiresAt) {
135
- if (Date.now() > expiresAt) {
138
+ if (this._now() > expiresAt) {
136
139
  await this.delete(key);
137
140
  return null;
138
141
  }
@@ -261,7 +264,7 @@ export class PluginStorage {
261
264
  if (!expiresAt) {
262
265
  return false;
263
266
  }
264
- return Date.now() > expiresAt;
267
+ return this._now() > expiresAt;
265
268
  }
266
269
  async getTTL(key) {
267
270
  const [ok, , response] = await tryFn(() => this.client.getObject(key));
@@ -289,7 +292,7 @@ export class PluginStorage {
289
292
  if (!expiresAt) {
290
293
  return null;
291
294
  }
292
- const remaining = Math.max(0, expiresAt - Date.now());
295
+ const remaining = Math.max(0, expiresAt - this._now());
293
296
  return Math.floor(remaining / 1000);
294
297
  }
295
298
  async touch(key, additionalSeconds) {
@@ -430,7 +433,7 @@ export class PluginStorage {
430
433
  }
431
434
  // Check expiration
432
435
  const expiresAt = (data._expiresat || data._expiresAt);
433
- if (expiresAt && Date.now() > expiresAt) {
436
+ if (expiresAt && this._now() > expiresAt) {
434
437
  await this.delete(key);
435
438
  return { data: null, version: null };
436
439
  }
@@ -499,7 +502,7 @@ export class PluginStorage {
499
502
  const newValue = currentValue + amount;
500
503
  parsedMetadata.value = newValue;
501
504
  if (options.ttl) {
502
- parsedMetadata._expiresAt = Date.now() + (options.ttl * 1000);
505
+ parsedMetadata._expiresAt = this._now() + (options.ttl * 1000);
503
506
  }
504
507
  const encodedMetadata = {};
505
508
  for (const [metaKey, metaValue] of Object.entries(parsedMetadata)) {
@@ -536,7 +539,7 @@ export class PluginStorage {
536
539
  value: initialValue + increment,
537
540
  name,
538
541
  resourceName,
539
- createdAt: Date.now()
542
+ createdAt: this._now()
540
543
  }, { behavior: 'body-only' });
541
544
  return initialValue;
542
545
  }
@@ -544,7 +547,7 @@ export class PluginStorage {
544
547
  await this.set(valueKey, {
545
548
  ...data,
546
549
  value: currentValue + increment,
547
- updatedAt: Date.now()
550
+ updatedAt: this._now()
548
551
  }, { behavior: 'body-only' });
549
552
  return currentValue;
550
553
  });
@@ -563,13 +566,13 @@ export class PluginStorage {
563
566
  async _withSequenceLock(lockKey, options, callback) {
564
567
  const { ttl = 30, timeout = 5000 } = options;
565
568
  const token = idGenerator();
566
- const startTime = Date.now();
569
+ const startTime = this._now();
567
570
  let attempt = 0;
568
571
  while (true) {
569
572
  const payload = {
570
573
  token,
571
- acquiredAt: Date.now(),
572
- _expiresAt: Date.now() + (ttl * 1000)
574
+ acquiredAt: this._now(),
575
+ _expiresAt: this._now() + (ttl * 1000)
573
576
  };
574
577
  const [ok, err] = await tryFn(() => this.set(lockKey, payload, {
575
578
  behavior: 'body-only',
@@ -589,13 +592,13 @@ export class PluginStorage {
589
592
  if (!isPreconditionFailure(err)) {
590
593
  throw err;
591
594
  }
592
- if (timeout !== undefined && Date.now() - startTime >= timeout) {
595
+ if (timeout !== undefined && this._now() - startTime >= timeout) {
593
596
  return null;
594
597
  }
595
598
  const current = await this.get(lockKey);
596
599
  if (!current)
597
600
  continue;
598
- if (current._expiresAt && Date.now() > current._expiresAt) {
601
+ if (current._expiresAt && this._now() > current._expiresAt) {
599
602
  await tryFn(() => this.delete(lockKey));
600
603
  continue;
601
604
  }
@@ -620,9 +623,9 @@ export class PluginStorage {
620
623
  value,
621
624
  name,
622
625
  resourceName,
623
- createdAt: data?.createdAt || Date.now(),
624
- updatedAt: Date.now(),
625
- resetAt: Date.now()
626
+ createdAt: data?.createdAt || this._now(),
627
+ updatedAt: this._now(),
628
+ resetAt: this._now()
626
629
  }, { behavior: 'body-only' });
627
630
  return true;
628
631
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-storage.js","sourceRoot":"","sources":["../../src/concerns/plugin-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-storage.js","sourceRoot":"","sources":["../../src/concerns/plugin-storage.ts"],"names":[],"mappings":"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"}
package/dist/s3db.cjs CHANGED
@@ -18272,8 +18272,8 @@ class Database extends SafeEventEmitter {
18272
18272
  })();
18273
18273
  this.version = '1';
18274
18274
  this.s3dbVersion = (() => {
18275
- const [ok, , version] = tryFnSync(() => (typeof globalThis['19.0.1-next.a0f32580'] !== 'undefined' && globalThis['19.0.1-next.a0f32580'] !== '19.0.1-next.a0f32580'
18276
- ? globalThis['19.0.1-next.a0f32580']
18275
+ const [ok, , version] = tryFnSync(() => (typeof globalThis['19.0.1-next.c969d2da'] !== 'undefined' && globalThis['19.0.1-next.c969d2da'] !== '19.0.1-next.c969d2da'
18276
+ ? globalThis['19.0.1-next.c969d2da']
18277
18277
  : 'latest'));
18278
18278
  return ok ? version : 'latest';
18279
18279
  })();
@@ -19550,7 +19550,8 @@ class PluginStorage {
19550
19550
  pluginSlug;
19551
19551
  _lock;
19552
19552
  _sequence;
19553
- constructor(client, pluginSlug) {
19553
+ _now;
19554
+ constructor(client, pluginSlug, options = {}) {
19554
19555
  if (!client) {
19555
19556
  throw new PluginStorageError('PluginStorage requires a client instance', {
19556
19557
  operation: 'constructor',
@@ -19566,6 +19567,8 @@ class PluginStorage {
19566
19567
  }
19567
19568
  this.client = client;
19568
19569
  this.pluginSlug = pluginSlug;
19570
+ // Use arrow function to capture Date.now dynamically (enables FakeTimers mocking)
19571
+ this._now = options.now ?? (() => Date.now());
19569
19572
  this._lock = new DistributedLock(this, {
19570
19573
  keyGenerator: (name) => this.getPluginKey(null, 'locks', name)
19571
19574
  });
@@ -19590,7 +19593,7 @@ class PluginStorage {
19590
19593
  const { ttl, behavior = 'body-overflow', contentType = 'application/json', ifMatch, ifNoneMatch } = options;
19591
19594
  const dataToSave = { ...data };
19592
19595
  if (ttl && typeof ttl === 'number' && ttl > 0) {
19593
- dataToSave._expiresAt = Date.now() + (ttl * 1000);
19596
+ dataToSave._expiresAt = this._now() + (ttl * 1000);
19594
19597
  }
19595
19598
  const { metadata, body } = this._applyBehavior(dataToSave, behavior);
19596
19599
  const putParams = {
@@ -19671,7 +19674,7 @@ class PluginStorage {
19671
19674
  }
19672
19675
  const expiresAt = (data._expiresat || data._expiresAt);
19673
19676
  if (expiresAt) {
19674
- if (Date.now() > expiresAt) {
19677
+ if (this._now() > expiresAt) {
19675
19678
  await this.delete(key);
19676
19679
  return null;
19677
19680
  }
@@ -19800,7 +19803,7 @@ class PluginStorage {
19800
19803
  if (!expiresAt) {
19801
19804
  return false;
19802
19805
  }
19803
- return Date.now() > expiresAt;
19806
+ return this._now() > expiresAt;
19804
19807
  }
19805
19808
  async getTTL(key) {
19806
19809
  const [ok, , response] = await tryFn(() => this.client.getObject(key));
@@ -19828,7 +19831,7 @@ class PluginStorage {
19828
19831
  if (!expiresAt) {
19829
19832
  return null;
19830
19833
  }
19831
- const remaining = Math.max(0, expiresAt - Date.now());
19834
+ const remaining = Math.max(0, expiresAt - this._now());
19832
19835
  return Math.floor(remaining / 1000);
19833
19836
  }
19834
19837
  async touch(key, additionalSeconds) {
@@ -19969,7 +19972,7 @@ class PluginStorage {
19969
19972
  }
19970
19973
  // Check expiration
19971
19974
  const expiresAt = (data._expiresat || data._expiresAt);
19972
- if (expiresAt && Date.now() > expiresAt) {
19975
+ if (expiresAt && this._now() > expiresAt) {
19973
19976
  await this.delete(key);
19974
19977
  return { data: null, version: null };
19975
19978
  }
@@ -20038,7 +20041,7 @@ class PluginStorage {
20038
20041
  const newValue = currentValue + amount;
20039
20042
  parsedMetadata.value = newValue;
20040
20043
  if (options.ttl) {
20041
- parsedMetadata._expiresAt = Date.now() + (options.ttl * 1000);
20044
+ parsedMetadata._expiresAt = this._now() + (options.ttl * 1000);
20042
20045
  }
20043
20046
  const encodedMetadata = {};
20044
20047
  for (const [metaKey, metaValue] of Object.entries(parsedMetadata)) {
@@ -20075,7 +20078,7 @@ class PluginStorage {
20075
20078
  value: initialValue + increment,
20076
20079
  name,
20077
20080
  resourceName,
20078
- createdAt: Date.now()
20081
+ createdAt: this._now()
20079
20082
  }, { behavior: 'body-only' });
20080
20083
  return initialValue;
20081
20084
  }
@@ -20083,7 +20086,7 @@ class PluginStorage {
20083
20086
  await this.set(valueKey, {
20084
20087
  ...data,
20085
20088
  value: currentValue + increment,
20086
- updatedAt: Date.now()
20089
+ updatedAt: this._now()
20087
20090
  }, { behavior: 'body-only' });
20088
20091
  return currentValue;
20089
20092
  });
@@ -20102,13 +20105,13 @@ class PluginStorage {
20102
20105
  async _withSequenceLock(lockKey, options, callback) {
20103
20106
  const { ttl = 30, timeout = 5000 } = options;
20104
20107
  const token = idGenerator();
20105
- const startTime = Date.now();
20108
+ const startTime = this._now();
20106
20109
  let attempt = 0;
20107
20110
  while (true) {
20108
20111
  const payload = {
20109
20112
  token,
20110
- acquiredAt: Date.now(),
20111
- _expiresAt: Date.now() + (ttl * 1000)
20113
+ acquiredAt: this._now(),
20114
+ _expiresAt: this._now() + (ttl * 1000)
20112
20115
  };
20113
20116
  const [ok, err] = await tryFn(() => this.set(lockKey, payload, {
20114
20117
  behavior: 'body-only',
@@ -20128,13 +20131,13 @@ class PluginStorage {
20128
20131
  if (!isPreconditionFailure(err)) {
20129
20132
  throw err;
20130
20133
  }
20131
- if (timeout !== undefined && Date.now() - startTime >= timeout) {
20134
+ if (timeout !== undefined && this._now() - startTime >= timeout) {
20132
20135
  return null;
20133
20136
  }
20134
20137
  const current = await this.get(lockKey);
20135
20138
  if (!current)
20136
20139
  continue;
20137
- if (current._expiresAt && Date.now() > current._expiresAt) {
20140
+ if (current._expiresAt && this._now() > current._expiresAt) {
20138
20141
  await tryFn(() => this.delete(lockKey));
20139
20142
  continue;
20140
20143
  }
@@ -20159,9 +20162,9 @@ class PluginStorage {
20159
20162
  value,
20160
20163
  name,
20161
20164
  resourceName,
20162
- createdAt: data?.createdAt || Date.now(),
20163
- updatedAt: Date.now(),
20164
- resetAt: Date.now()
20165
+ createdAt: data?.createdAt || this._now(),
20166
+ updatedAt: this._now(),
20167
+ resetAt: this._now()
20165
20168
  }, { behavior: 'body-only' });
20166
20169
  return true;
20167
20170
  });