@tslock/dynamodb 2.2.1 → 2.3.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.
- package/dist/index.cjs +13 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -21
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -29,25 +29,7 @@ var import_client_dynamodb2 = require("@aws-sdk/client-dynamodb");
|
|
|
29
29
|
|
|
30
30
|
// src/dynamodb-accessor.ts
|
|
31
31
|
var import_client_dynamodb = require("@aws-sdk/client-dynamodb");
|
|
32
|
-
var import_core2 = require("@tslock/core");
|
|
33
|
-
|
|
34
|
-
// src/dynamodb-lock.ts
|
|
35
32
|
var import_core = require("@tslock/core");
|
|
36
|
-
var DynamoDBLock = class extends import_core.AbstractSimpleLock {
|
|
37
|
-
constructor(config, accessor) {
|
|
38
|
-
super(config);
|
|
39
|
-
this.accessor = accessor;
|
|
40
|
-
}
|
|
41
|
-
accessor;
|
|
42
|
-
async doUnlock() {
|
|
43
|
-
await this.accessor.unlock(this.config);
|
|
44
|
-
}
|
|
45
|
-
async doExtend(newConfig) {
|
|
46
|
-
return await this.accessor.extend(newConfig);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// src/dynamodb-accessor.ts
|
|
51
33
|
var DynamoDBAccessor = class {
|
|
52
34
|
constructor(client, tableName, partitionKey, sortKey) {
|
|
53
35
|
this.client = client;
|
|
@@ -67,10 +49,10 @@ var DynamoDBAccessor = class {
|
|
|
67
49
|
return key;
|
|
68
50
|
}
|
|
69
51
|
async lock(config) {
|
|
70
|
-
const now =
|
|
71
|
-
const isoNow =
|
|
72
|
-
const isoLockAtMostUntil =
|
|
73
|
-
const hostname =
|
|
52
|
+
const now = import_core.ClockProvider.now();
|
|
53
|
+
const isoNow = import_core.Utils.toIsoString(now);
|
|
54
|
+
const isoLockAtMostUntil = import_core.Utils.toIsoString((0, import_core.lockAtMostUntil)(config));
|
|
55
|
+
const hostname = import_core.Utils.getHostname();
|
|
74
56
|
try {
|
|
75
57
|
await this.client.send(
|
|
76
58
|
new import_client_dynamodb.UpdateItemCommand({
|
|
@@ -85,17 +67,17 @@ var DynamoDBAccessor = class {
|
|
|
85
67
|
}
|
|
86
68
|
})
|
|
87
69
|
);
|
|
88
|
-
return new
|
|
70
|
+
return new import_core.DelegatingSimpleLock(config, this);
|
|
89
71
|
} catch (e) {
|
|
90
72
|
if (e instanceof import_client_dynamodb.ConditionalCheckFailedException) return void 0;
|
|
91
73
|
throw e;
|
|
92
74
|
}
|
|
93
75
|
}
|
|
94
76
|
async extend(config) {
|
|
95
|
-
const now =
|
|
96
|
-
const isoNow =
|
|
97
|
-
const isoNewLockAtMostUntil =
|
|
98
|
-
const hostname =
|
|
77
|
+
const now = import_core.ClockProvider.now();
|
|
78
|
+
const isoNow = import_core.Utils.toIsoString(now);
|
|
79
|
+
const isoNewLockAtMostUntil = import_core.Utils.toIsoString((0, import_core.lockAtMostUntil)(config));
|
|
80
|
+
const hostname = import_core.Utils.getHostname();
|
|
99
81
|
try {
|
|
100
82
|
await this.client.send(
|
|
101
83
|
new import_client_dynamodb.UpdateItemCommand({
|
|
@@ -110,14 +92,14 @@ var DynamoDBAccessor = class {
|
|
|
110
92
|
}
|
|
111
93
|
})
|
|
112
94
|
);
|
|
113
|
-
return new
|
|
95
|
+
return new import_core.DelegatingSimpleLock(config, this);
|
|
114
96
|
} catch (e) {
|
|
115
97
|
if (e instanceof import_client_dynamodb.ConditionalCheckFailedException) return void 0;
|
|
116
98
|
throw e;
|
|
117
99
|
}
|
|
118
100
|
}
|
|
119
101
|
async unlock(config) {
|
|
120
|
-
const isoUnlock =
|
|
102
|
+
const isoUnlock = import_core.Utils.toIsoString((0, import_core.unlockTime)(config));
|
|
121
103
|
try {
|
|
122
104
|
await this.client.send(
|
|
123
105
|
new import_client_dynamodb.UpdateItemCommand({
|
|
@@ -141,9 +123,9 @@ var DynamoDBAccessor = class {
|
|
|
141
123
|
};
|
|
142
124
|
|
|
143
125
|
// src/dynamodb-lock-provider-options.ts
|
|
144
|
-
var
|
|
126
|
+
var import_core2 = require("@tslock/core");
|
|
145
127
|
function validateOptions(options) {
|
|
146
|
-
if (!options.tableName) throw new
|
|
128
|
+
if (!options.tableName) throw new import_core2.LockException("DynamoDBConfiguration: tableName is required");
|
|
147
129
|
return {
|
|
148
130
|
tableName: options.tableName,
|
|
149
131
|
partitionKey: options.partitionKey ?? "_id",
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/dynamodb-lock-provider.ts","../src/dynamodb-accessor.ts","../src/dynamodb-lock
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/dynamodb-lock-provider.ts","../src/dynamodb-accessor.ts","../src/dynamodb-lock-provider-options.ts"],"sourcesContent":["export { DynamoDBLockProvider } from './dynamodb-lock-provider.js';\nexport type { DynamoDBLockProviderOptions } from './dynamodb-lock-provider-options.js';\n","import { DynamoDBClient } from '@aws-sdk/client-dynamodb';\nimport type { ExtensibleLockProvider, LockConfiguration, SimpleLock } from '@tslock/core';\nimport { DynamoDBAccessor } from './dynamodb-accessor.js';\nimport { type DynamoDBLockProviderOptions, validateOptions } from './dynamodb-lock-provider-options.js';\n\nexport class DynamoDBLockProvider implements ExtensibleLockProvider {\n private readonly accessor: DynamoDBAccessor;\n\n constructor(options: DynamoDBLockProviderOptions) {\n const opts = validateOptions(options);\n this.accessor = new DynamoDBAccessor(\n options.client ?? new DynamoDBClient({}),\n opts.tableName,\n opts.partitionKey,\n opts.sortKey,\n );\n }\n\n async lock(config: LockConfiguration): Promise<SimpleLock | undefined> {\n return this.accessor.lock(config);\n }\n}\n","import type { DynamoDBClient } from '@aws-sdk/client-dynamodb';\nimport { ConditionalCheckFailedException, UpdateItemCommand } from '@aws-sdk/client-dynamodb';\nimport {\n ClockProvider,\n DelegatingSimpleLock,\n type LockConfiguration,\n lockAtMostUntil,\n type SimpleLock,\n Utils,\n unlockTime,\n} from '@tslock/core';\n\nexport class DynamoDBAccessor {\n constructor(\n private readonly client: DynamoDBClient,\n private readonly tableName: string,\n private readonly partitionKey: string,\n private readonly sortKey?: { name: string; value: string },\n ) {}\n\n private buildKey(name: string): Record<string, { S: string }> {\n const key: Record<string, { S: string }> = { [this.partitionKey]: { S: name } };\n if (this.sortKey) {\n key[this.sortKey.name] = { S: this.sortKey.value };\n }\n return key;\n }\n\n async lock(config: LockConfiguration): Promise<SimpleLock | undefined> {\n const now = ClockProvider.now();\n const isoNow = Utils.toIsoString(now);\n const isoLockAtMostUntil = Utils.toIsoString(lockAtMostUntil(config));\n const hostname = Utils.getHostname();\n\n try {\n await this.client.send(\n new UpdateItemCommand({\n TableName: this.tableName,\n Key: this.buildKey(config.name),\n UpdateExpression: 'SET lockUntil = :lockUntil, lockedAt = :lockedAt, lockedBy = :lockedBy',\n ConditionExpression: 'lockUntil <= :lockedAt OR attribute_not_exists(lockUntil)',\n ExpressionAttributeValues: {\n ':lockUntil': { S: isoLockAtMostUntil },\n ':lockedAt': { S: isoNow },\n ':lockedBy': { S: hostname },\n },\n }),\n );\n return new DelegatingSimpleLock(config, this);\n } catch (e) {\n if (e instanceof ConditionalCheckFailedException) return undefined;\n throw e;\n }\n }\n\n async extend(config: LockConfiguration): Promise<SimpleLock | undefined> {\n const now = ClockProvider.now();\n const isoNow = Utils.toIsoString(now);\n const isoNewLockAtMostUntil = Utils.toIsoString(lockAtMostUntil(config));\n const hostname = Utils.getHostname();\n\n try {\n await this.client.send(\n new UpdateItemCommand({\n TableName: this.tableName,\n Key: this.buildKey(config.name),\n UpdateExpression: 'SET lockUntil = :lockUntil',\n ConditionExpression: 'lockedBy = :lockedBy AND lockUntil > :now',\n ExpressionAttributeValues: {\n ':lockUntil': { S: isoNewLockAtMostUntil },\n ':lockedBy': { S: hostname },\n ':now': { S: isoNow },\n },\n }),\n );\n return new DelegatingSimpleLock(config, this);\n } catch (e) {\n if (e instanceof ConditionalCheckFailedException) return undefined;\n throw e;\n }\n }\n\n async unlock(config: LockConfiguration): Promise<void> {\n const isoUnlock = Utils.toIsoString(unlockTime(config));\n\n try {\n await this.client.send(\n new UpdateItemCommand({\n TableName: this.tableName,\n Key: this.buildKey(config.name),\n UpdateExpression: 'SET lockUntil = :unlockTime',\n ConditionExpression: 'attribute_exists(#partitionKey)',\n ExpressionAttributeNames: {\n '#partitionKey': this.partitionKey,\n },\n ExpressionAttributeValues: {\n ':unlockTime': { S: isoUnlock },\n },\n }),\n );\n } catch (e) {\n if (e instanceof ConditionalCheckFailedException) return;\n throw e;\n }\n }\n}\n","import type { DynamoDBClient } from '@aws-sdk/client-dynamodb';\nimport { LockException } from '@tslock/core';\n\nexport interface DynamoDBLockProviderOptions {\n client?: DynamoDBClient;\n tableName: string;\n partitionKey?: string;\n sortKey?: { name: string; value: string };\n}\n\nexport interface ResolvedOptions {\n tableName: string;\n partitionKey: string;\n sortKey?: { name: string; value: string };\n}\n\nexport function validateOptions(options: DynamoDBLockProviderOptions): ResolvedOptions {\n if (!options.tableName) throw new LockException('DynamoDBConfiguration: tableName is required');\n return {\n tableName: options.tableName,\n partitionKey: options.partitionKey ?? '_id',\n sortKey: options.sortKey,\n };\n}\n"],"mappings":"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","names":["import_client_dynamodb","import_core"]}
|
package/dist/index.js
CHANGED
|
@@ -3,25 +3,13 @@ import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
|
|
|
3
3
|
|
|
4
4
|
// src/dynamodb-accessor.ts
|
|
5
5
|
import { ConditionalCheckFailedException, UpdateItemCommand } from "@aws-sdk/client-dynamodb";
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.accessor = accessor;
|
|
14
|
-
}
|
|
15
|
-
accessor;
|
|
16
|
-
async doUnlock() {
|
|
17
|
-
await this.accessor.unlock(this.config);
|
|
18
|
-
}
|
|
19
|
-
async doExtend(newConfig) {
|
|
20
|
-
return await this.accessor.extend(newConfig);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
// src/dynamodb-accessor.ts
|
|
6
|
+
import {
|
|
7
|
+
ClockProvider,
|
|
8
|
+
DelegatingSimpleLock,
|
|
9
|
+
lockAtMostUntil,
|
|
10
|
+
Utils,
|
|
11
|
+
unlockTime
|
|
12
|
+
} from "@tslock/core";
|
|
25
13
|
var DynamoDBAccessor = class {
|
|
26
14
|
constructor(client, tableName, partitionKey, sortKey) {
|
|
27
15
|
this.client = client;
|
|
@@ -59,7 +47,7 @@ var DynamoDBAccessor = class {
|
|
|
59
47
|
}
|
|
60
48
|
})
|
|
61
49
|
);
|
|
62
|
-
return new
|
|
50
|
+
return new DelegatingSimpleLock(config, this);
|
|
63
51
|
} catch (e) {
|
|
64
52
|
if (e instanceof ConditionalCheckFailedException) return void 0;
|
|
65
53
|
throw e;
|
|
@@ -84,7 +72,7 @@ var DynamoDBAccessor = class {
|
|
|
84
72
|
}
|
|
85
73
|
})
|
|
86
74
|
);
|
|
87
|
-
return new
|
|
75
|
+
return new DelegatingSimpleLock(config, this);
|
|
88
76
|
} catch (e) {
|
|
89
77
|
if (e instanceof ConditionalCheckFailedException) return void 0;
|
|
90
78
|
throw e;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/dynamodb-lock-provider.ts","../src/dynamodb-accessor.ts","../src/dynamodb-lock
|
|
1
|
+
{"version":3,"sources":["../src/dynamodb-lock-provider.ts","../src/dynamodb-accessor.ts","../src/dynamodb-lock-provider-options.ts"],"sourcesContent":["import { DynamoDBClient } from '@aws-sdk/client-dynamodb';\nimport type { ExtensibleLockProvider, LockConfiguration, SimpleLock } from '@tslock/core';\nimport { DynamoDBAccessor } from './dynamodb-accessor.js';\nimport { type DynamoDBLockProviderOptions, validateOptions } from './dynamodb-lock-provider-options.js';\n\nexport class DynamoDBLockProvider implements ExtensibleLockProvider {\n private readonly accessor: DynamoDBAccessor;\n\n constructor(options: DynamoDBLockProviderOptions) {\n const opts = validateOptions(options);\n this.accessor = new DynamoDBAccessor(\n options.client ?? new DynamoDBClient({}),\n opts.tableName,\n opts.partitionKey,\n opts.sortKey,\n );\n }\n\n async lock(config: LockConfiguration): Promise<SimpleLock | undefined> {\n return this.accessor.lock(config);\n }\n}\n","import type { DynamoDBClient } from '@aws-sdk/client-dynamodb';\nimport { ConditionalCheckFailedException, UpdateItemCommand } from '@aws-sdk/client-dynamodb';\nimport {\n ClockProvider,\n DelegatingSimpleLock,\n type LockConfiguration,\n lockAtMostUntil,\n type SimpleLock,\n Utils,\n unlockTime,\n} from '@tslock/core';\n\nexport class DynamoDBAccessor {\n constructor(\n private readonly client: DynamoDBClient,\n private readonly tableName: string,\n private readonly partitionKey: string,\n private readonly sortKey?: { name: string; value: string },\n ) {}\n\n private buildKey(name: string): Record<string, { S: string }> {\n const key: Record<string, { S: string }> = { [this.partitionKey]: { S: name } };\n if (this.sortKey) {\n key[this.sortKey.name] = { S: this.sortKey.value };\n }\n return key;\n }\n\n async lock(config: LockConfiguration): Promise<SimpleLock | undefined> {\n const now = ClockProvider.now();\n const isoNow = Utils.toIsoString(now);\n const isoLockAtMostUntil = Utils.toIsoString(lockAtMostUntil(config));\n const hostname = Utils.getHostname();\n\n try {\n await this.client.send(\n new UpdateItemCommand({\n TableName: this.tableName,\n Key: this.buildKey(config.name),\n UpdateExpression: 'SET lockUntil = :lockUntil, lockedAt = :lockedAt, lockedBy = :lockedBy',\n ConditionExpression: 'lockUntil <= :lockedAt OR attribute_not_exists(lockUntil)',\n ExpressionAttributeValues: {\n ':lockUntil': { S: isoLockAtMostUntil },\n ':lockedAt': { S: isoNow },\n ':lockedBy': { S: hostname },\n },\n }),\n );\n return new DelegatingSimpleLock(config, this);\n } catch (e) {\n if (e instanceof ConditionalCheckFailedException) return undefined;\n throw e;\n }\n }\n\n async extend(config: LockConfiguration): Promise<SimpleLock | undefined> {\n const now = ClockProvider.now();\n const isoNow = Utils.toIsoString(now);\n const isoNewLockAtMostUntil = Utils.toIsoString(lockAtMostUntil(config));\n const hostname = Utils.getHostname();\n\n try {\n await this.client.send(\n new UpdateItemCommand({\n TableName: this.tableName,\n Key: this.buildKey(config.name),\n UpdateExpression: 'SET lockUntil = :lockUntil',\n ConditionExpression: 'lockedBy = :lockedBy AND lockUntil > :now',\n ExpressionAttributeValues: {\n ':lockUntil': { S: isoNewLockAtMostUntil },\n ':lockedBy': { S: hostname },\n ':now': { S: isoNow },\n },\n }),\n );\n return new DelegatingSimpleLock(config, this);\n } catch (e) {\n if (e instanceof ConditionalCheckFailedException) return undefined;\n throw e;\n }\n }\n\n async unlock(config: LockConfiguration): Promise<void> {\n const isoUnlock = Utils.toIsoString(unlockTime(config));\n\n try {\n await this.client.send(\n new UpdateItemCommand({\n TableName: this.tableName,\n Key: this.buildKey(config.name),\n UpdateExpression: 'SET lockUntil = :unlockTime',\n ConditionExpression: 'attribute_exists(#partitionKey)',\n ExpressionAttributeNames: {\n '#partitionKey': this.partitionKey,\n },\n ExpressionAttributeValues: {\n ':unlockTime': { S: isoUnlock },\n },\n }),\n );\n } catch (e) {\n if (e instanceof ConditionalCheckFailedException) return;\n throw e;\n }\n }\n}\n","import type { DynamoDBClient } from '@aws-sdk/client-dynamodb';\nimport { LockException } from '@tslock/core';\n\nexport interface DynamoDBLockProviderOptions {\n client?: DynamoDBClient;\n tableName: string;\n partitionKey?: string;\n sortKey?: { name: string; value: string };\n}\n\nexport interface ResolvedOptions {\n tableName: string;\n partitionKey: string;\n sortKey?: { name: string; value: string };\n}\n\nexport function validateOptions(options: DynamoDBLockProviderOptions): ResolvedOptions {\n if (!options.tableName) throw new LockException('DynamoDBConfiguration: tableName is required');\n return {\n tableName: options.tableName,\n partitionKey: options.partitionKey ?? '_id',\n sortKey: options.sortKey,\n };\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tslock/dynamodb",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "TSLock provider for Amazon DynamoDB",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@aws-sdk/client-dynamodb": "^3.0.0",
|
|
26
|
-
"@tslock/core": "2.
|
|
26
|
+
"@tslock/core": "2.3.0"
|
|
27
27
|
},
|
|
28
28
|
"peerDependenciesMeta": {
|
|
29
29
|
"@tslock/core": {
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"tsup": "^8.0.0",
|
|
40
40
|
"vitest": "^4.1.11",
|
|
41
41
|
"@aws-sdk/client-dynamodb": "^3.0.0",
|
|
42
|
-
"@tslock/core": "2.
|
|
43
|
-
"@tslock/test-support": "2.
|
|
42
|
+
"@tslock/core": "2.3.0",
|
|
43
|
+
"@tslock/test-support": "2.3.0"
|
|
44
44
|
},
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|