@casual-simulation/aux-records-aws 3.0.0 → 3.0.5

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.
@@ -1,12 +1,17 @@
1
1
  import { Record, RecordsStore } from '@casual-simulation/aux-records';
2
+ import { RecordKey } from '@casual-simulation/aux-records/RecordsStore';
2
3
  import dynamodb from 'aws-sdk/clients/dynamodb';
3
4
  export declare class DynamoDBRecordsStore implements RecordsStore {
4
5
  private _dynamo;
5
6
  private _tableName;
6
- constructor(dynamo: dynamodb.DocumentClient, tableName: string);
7
+ private _keyTableName;
8
+ constructor(dynamo: dynamodb.DocumentClient, tableName: string, keyTableName: string);
7
9
  getRecordByName(name: string): Promise<Record>;
8
10
  updateRecord(record: Record): Promise<void>;
9
11
  addRecord(record: Record): Promise<void>;
12
+ addRecordKey(key: RecordKey): Promise<void>;
13
+ getRecordKeyByRecordAndHash(recordName: string, hash: string): Promise<RecordKey>;
10
14
  private _getRecord;
15
+ private _getRecordKey;
11
16
  }
12
17
  //# sourceMappingURL=DynamoDBRecordsStore.d.ts.map
@@ -8,9 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  export class DynamoDBRecordsStore {
11
- constructor(dynamo, tableName) {
11
+ constructor(dynamo, tableName, keyTableName) {
12
12
  this._dynamo = dynamo;
13
13
  this._tableName = tableName;
14
+ this._keyTableName = keyTableName;
14
15
  }
15
16
  getRecordByName(name) {
16
17
  return __awaiter(this, void 0, void 0, function* () {
@@ -56,6 +57,30 @@ export class DynamoDBRecordsStore {
56
57
  return yield this.updateRecord(record);
57
58
  });
58
59
  }
60
+ addRecordKey(key) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const existingKey = yield this._getRecordKey(key.recordName, key.secretHash);
63
+ if (!!existingKey) {
64
+ return;
65
+ }
66
+ let update = {
67
+ recordName: key.recordName,
68
+ secretHash: key.secretHash,
69
+ policy: key.policy,
70
+ creatorId: key.creatorId,
71
+ creationTime: Date.now()
72
+ };
73
+ yield this._dynamo.put({
74
+ TableName: this._keyTableName,
75
+ Item: update
76
+ }).promise();
77
+ });
78
+ }
79
+ getRecordKeyByRecordAndHash(recordName, hash) {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ return this._getRecordKey(recordName, hash);
82
+ });
83
+ }
59
84
  _getRecord(name) {
60
85
  return __awaiter(this, void 0, void 0, function* () {
61
86
  const record = yield this._dynamo
@@ -69,5 +94,17 @@ export class DynamoDBRecordsStore {
69
94
  return record.Item;
70
95
  });
71
96
  }
97
+ _getRecordKey(recordName, hash) {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const key = yield this._dynamo.get({
100
+ TableName: this._keyTableName,
101
+ Key: {
102
+ recordName: recordName,
103
+ secretHash: hash
104
+ }
105
+ }).promise();
106
+ return key.Item;
107
+ });
108
+ }
72
109
  }
73
110
  //# sourceMappingURL=DynamoDBRecordsStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamoDBRecordsStore.js","sourceRoot":"","sources":["DynamoDBRecordsStore.ts"],"names":[],"mappings":";;;;;;;;;AAGA,MAAM,OAAO,oBAAoB;IAI7B,YAAY,MAA+B,EAAE,SAAiB;QAC1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAEK,eAAe,CAAC,IAAY;;YAC9B,MAAM,MAAM,GAAiB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO,IAAI,CAAC;aACf;YAED,OAAO;gBACH,IAAI,EAAE,MAAM,CAAC,UAAU;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU;aAChC,CAAC;QACN,CAAC;KAAA;IAEK,YAAY,CAAC,MAAc;;YAC7B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,GAA0B;gBAChC,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,GAAG;aAClB,CAAC;YAEF,IAAI,CAAC,CAAC,EAAE;gBACJ,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;aAC7B;iBAAM;gBACH,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;aACxC;YAED,MAAM,IAAI,CAAC,OAAO;iBACb,GAAG,CAAC;gBACD,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,IAAI,EAAE,MAAM;aACf,CAAC;iBACD,OAAO,EAAE,CAAC;QACnB,CAAC;KAAA;IAEK,SAAS,CAAC,MAAc;;YAC1B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEa,UAAU,CAAC,IAAY;;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO;iBAC5B,GAAG,CAAC;gBACD,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,GAAG,EAAE;oBACD,UAAU,EAAE,IAAI;iBACnB;aACJ,CAAC;iBACD,OAAO,EAAE,CAAC;YAEf,OAAO,MAAM,CAAC,IAAoB,CAAC;QACvC,CAAC;KAAA;CACJ"}
1
+ {"version":3,"file":"DynamoDBRecordsStore.js","sourceRoot":"","sources":["DynamoDBRecordsStore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-records-aws",
3
- "version": "3.0.0",
3
+ "version": "3.0.5",
4
4
  "description": "AWS Store implementations for the CasualOS Records System.",
5
5
  "keywords": [],
6
6
  "author": "Casual Simulation, Inc.",
@@ -38,7 +38,7 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "@casual-simulation/aux-records": "^3.0.0"
41
+ "@casual-simulation/aux-records": "^3.0.5"
42
42
  },
43
- "gitHead": "61191ee46ea40ab2cc79d9d4cb85f5e98cdd7d38"
43
+ "gitHead": "64a1ab80b4fc73db4f190deb874618a6a52394fa"
44
44
  }