@spinajs/session-provider-dynamodb 2.0.50 → 2.0.51

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/lib/index.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ import AWS from 'aws-sdk';
2
+ import { SessionProvider, Session, ISession } from '@spinajs/rbac';
3
+ import { Log } from '@spinajs/log';
4
+ export declare class DynamoDbSessionProvider extends SessionProvider {
5
+ protected Log: Log;
6
+ protected Table: string;
7
+ protected AwsConfig: any;
8
+ protected DefaultExpirationTime: number;
9
+ protected ConfigPath: any;
10
+ protected ReadCapacityUnits: any;
11
+ protected WriteCapacityUnits: any;
12
+ protected DynamoDb: AWS.DynamoDB;
13
+ resolve(): Promise<void>;
14
+ protected updateTimeToLive(): Promise<import("aws-sdk/lib/request.js").PromiseResult<AWS.DynamoDB.UpdateTimeToLiveOutput, AWS.AWSError>>;
15
+ protected createSessionTable(): Promise<import("aws-sdk/lib/request.js").PromiseResult<AWS.DynamoDB.CreateTableOutput, AWS.AWSError>>;
16
+ protected checkSessionTable(): Promise<import("aws-sdk/lib/request.js").PromiseResult<AWS.DynamoDB.DescribeTableOutput, AWS.AWSError>>;
17
+ restore(sessionId: string): Promise<Session>;
18
+ delete(sessionId: string): Promise<void>;
19
+ touch(session: ISession): Promise<void>;
20
+ truncate(): Promise<void>;
21
+ protected deleteSessionTable(): Promise<void>;
22
+ save(sessionOrId: string | ISession, data?: object): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,SAAS,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAI3C,qBACa,uBAAwB,SAAQ,eAAe;IAE1D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IAGxB,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;IAGzB,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAGxC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC;IAK1B,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC;IAKjC,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAElC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC;IAGpB,OAAO;IAkBpB,SAAS,CAAC,gBAAgB;IAU1B,SAAS,CAAC,kBAAkB;cAsBZ,iBAAiB;IAYpB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgC5C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxC,KAAK,CAAC,OAAO,EAAE,QAAQ;IAkBvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAMtB,kBAAkB;IAMrB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BhF"}
package/lib/index.js ADDED
@@ -0,0 +1,205 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import AWS from 'aws-sdk';
11
+ import { DateTime } from 'luxon';
12
+ import { SessionProvider, Session } from '@spinajs/rbac';
13
+ import { Injectable } from '@spinajs/di';
14
+ import { Config } from '@spinajs/configuration';
15
+ import { Logger, Log } from '@spinajs/log';
16
+ import { replacer } from '@spinajs/util';
17
+ import _ from 'lodash';
18
+ let DynamoDbSessionProvider = class DynamoDbSessionProvider extends SessionProvider {
19
+ // tslint:disable-next-line: no-empty
20
+ async resolve() {
21
+ AWS.config.update(this.AwsConfig);
22
+ if (this.ConfigPath) {
23
+ AWS.config.loadFromPath(this.ConfigPath);
24
+ }
25
+ else if (this.AwsConfig) {
26
+ AWS.config.update(this.AwsConfig);
27
+ }
28
+ this.DynamoDb = new AWS.DynamoDB({ apiVersion: '2012-08-10' });
29
+ const table = await this.checkSessionTable();
30
+ if (!table) {
31
+ await this.createSessionTable();
32
+ await this.updateTimeToLive();
33
+ }
34
+ }
35
+ updateTimeToLive() {
36
+ return this.DynamoDb.updateTimeToLive({
37
+ TableName: this.Table,
38
+ TimeToLiveSpecification: {
39
+ AttributeName: 'Expiration',
40
+ Enabled: true,
41
+ },
42
+ }).promise();
43
+ }
44
+ createSessionTable() {
45
+ return this.DynamoDb.createTable({
46
+ TableName: this.Table,
47
+ AttributeDefinitions: [
48
+ {
49
+ AttributeName: 'SessionId',
50
+ AttributeType: 'S',
51
+ },
52
+ ],
53
+ KeySchema: [
54
+ {
55
+ AttributeName: 'SessionId',
56
+ KeyType: 'HASH',
57
+ },
58
+ ],
59
+ ProvisionedThroughput: {
60
+ ReadCapacityUnits: this.ReadCapacityUnits,
61
+ WriteCapacityUnits: this.WriteCapacityUnits,
62
+ },
63
+ }).promise();
64
+ }
65
+ async checkSessionTable() {
66
+ try {
67
+ return await this.DynamoDb.describeTable({
68
+ TableName: this.Table,
69
+ }).promise();
70
+ }
71
+ catch (err) {
72
+ if (err.code === 'ResourceNotFoundException') {
73
+ return null;
74
+ }
75
+ }
76
+ }
77
+ async restore(sessionId) {
78
+ const params = {
79
+ TableName: this.Table,
80
+ Key: {
81
+ SessionId: { S: sessionId },
82
+ },
83
+ };
84
+ const result = await this.DynamoDb.getItem(params).promise();
85
+ if (!result.Item) {
86
+ return null;
87
+ }
88
+ else {
89
+ // DynamoDB ttl takes time, sometimes
90
+ // we receive session before ttl mark result as expired
91
+ // and deletes it
92
+ const ttl = parseInt(result.Item.Expiration.N);
93
+ if (ttl < DateTime.now().toMillis()) {
94
+ return null;
95
+ }
96
+ const data = JSON.parse(result.Item.Data.S);
97
+ return new Session({
98
+ Creation: DateTime.fromISO(result.Item.Creation.S),
99
+ Expiration: DateTime.fromMillis(ttl),
100
+ SessionId: result.Item.SessionId.S,
101
+ Data: new Map(Object.entries(data)),
102
+ });
103
+ }
104
+ }
105
+ async delete(sessionId) {
106
+ const params = {
107
+ TableName: this.Table,
108
+ Key: {
109
+ SessionId: { S: sessionId },
110
+ },
111
+ };
112
+ await this.DynamoDb.deleteItem(params).promise();
113
+ }
114
+ async touch(session) {
115
+ const params = {
116
+ TableName: this.Table,
117
+ Key: {
118
+ SessionId: { S: session.SessionId },
119
+ },
120
+ UpdateExpression: 'set Expiration = :e',
121
+ ExpressionAttributeValues: {
122
+ ':e': {
123
+ N: `${session.Expiration.toMillis()}`,
124
+ },
125
+ },
126
+ ReturnValues: 'UPDATED_NEW',
127
+ };
128
+ await this.DynamoDb.updateItem(params).promise();
129
+ }
130
+ async truncate() {
131
+ await this.deleteSessionTable();
132
+ await this.createSessionTable();
133
+ await this.updateTimeToLive();
134
+ }
135
+ async deleteSessionTable() {
136
+ await this.DynamoDb.deleteTable({
137
+ TableName: this.Table,
138
+ }).promise();
139
+ }
140
+ async save(sessionOrId, data) {
141
+ let sId = '';
142
+ let sData = null;
143
+ let sCreationTime = DateTime.now();
144
+ let sExpirationTime = DateTime.now().plus({ minutes: this.DefaultExpirationTime });
145
+ if (_.isString(sessionOrId)) {
146
+ sId = sessionOrId;
147
+ sData = JSON.stringify(data);
148
+ }
149
+ else {
150
+ sId = sessionOrId.SessionId;
151
+ sData = JSON.stringify(Object.fromEntries(sessionOrId.Data), replacer);
152
+ sCreationTime = sessionOrId.Creation;
153
+ sExpirationTime = sessionOrId.Expiration;
154
+ }
155
+ const params = {
156
+ TableName: this.Table,
157
+ Item: {
158
+ SessionId: { S: sId },
159
+ Data: {
160
+ S: sData,
161
+ },
162
+ Creation: { S: sCreationTime.toISO() },
163
+ Expiration: { N: `${sExpirationTime.toMillis()}` },
164
+ },
165
+ };
166
+ await this.DynamoDb.putItem(params).promise();
167
+ }
168
+ };
169
+ __decorate([
170
+ Logger('dynamo-session-store'),
171
+ __metadata("design:type", Log)
172
+ ], DynamoDbSessionProvider.prototype, "Log", void 0);
173
+ __decorate([
174
+ Config('rbac.session.aws.table'),
175
+ __metadata("design:type", String)
176
+ ], DynamoDbSessionProvider.prototype, "Table", void 0);
177
+ __decorate([
178
+ Config('rbac.session.aws.config'),
179
+ __metadata("design:type", Object)
180
+ ], DynamoDbSessionProvider.prototype, "AwsConfig", void 0);
181
+ __decorate([
182
+ Config('rbac.session.expiration'),
183
+ __metadata("design:type", Number)
184
+ ], DynamoDbSessionProvider.prototype, "DefaultExpirationTime", void 0);
185
+ __decorate([
186
+ Config('rbac.session.aws.configPath'),
187
+ __metadata("design:type", Object)
188
+ ], DynamoDbSessionProvider.prototype, "ConfigPath", void 0);
189
+ __decorate([
190
+ Config('rbac.session.aws.readCapacityUnits', {
191
+ defaultValue: 10,
192
+ }),
193
+ __metadata("design:type", Object)
194
+ ], DynamoDbSessionProvider.prototype, "ReadCapacityUnits", void 0);
195
+ __decorate([
196
+ Config('rbac.session.aws.writeCapacityUnits', {
197
+ defaultValue: 10,
198
+ }),
199
+ __metadata("design:type", Object)
200
+ ], DynamoDbSessionProvider.prototype, "WriteCapacityUnits", void 0);
201
+ DynamoDbSessionProvider = __decorate([
202
+ Injectable(SessionProvider)
203
+ ], DynamoDbSessionProvider);
204
+ export { DynamoDbSessionProvider };
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spinajs/session-provider-dynamodb",
3
- "version": "2.0.50",
3
+ "version": "2.0.51",
4
4
  "description": "dynamo db session store",
5
5
  "exports": "./lib/index.js",
6
6
  "type": "module",
@@ -19,8 +19,8 @@
19
19
  "format": "prettier --write \"src/**/*.ts\"",
20
20
  "lint": "eslint -c .eslintrc.cjs --ext .ts src --fix",
21
21
  "preversion": "npm run lint",
22
- "version": "npm run format && git add -A src",
23
- "postinstall": "npm run build"
22
+ "version": "npm run format && git add -A src"
23
+
24
24
  },
25
25
  "files": [
26
26
  "lib/**/*"