@spinajs/session-provider-dynamodb 2.0.179 → 2.0.181

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/mjs/index.js CHANGED
@@ -1,205 +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 };
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
205
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}