cmp-aws-database 1.1.106 → 1.1.107-dev.1
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/README.md +228 -10
- package/dist/base-dao.d.ts +2 -1
- package/dist/base-dao.js +22 -11
- package/dist/config/database-factory.d.ts +12 -0
- package/dist/config/database-factory.js +43 -0
- package/dist/config/environment-config.d.ts +38 -0
- package/dist/config/environment-config.js +133 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.js +21 -0
- package/dist/config/table-names.d.ts +100 -0
- package/dist/config/table-names.js +125 -0
- package/dist/customer-user/tier-referral/tier-referral-model.js +2 -2
- package/index.js +6 -0
- package/package.json +12 -2
- package/dist/customer-user/order-module/payment/paymet-dao.d.ts +0 -6
- package/dist/customer-user/order-module/payment/paymet-dao.js +0 -8
package/README.md
CHANGED
|
@@ -1,14 +1,232 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Craft My Plate Database Package
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A comprehensive, environment-aware database package for the Craft My Plate application ecosystem. This package provides DynamoDB-based data access with automatic environment configuration.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## 🚀 Features
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **Environment-Aware Configuration**: Automatically adapts to development, staging, production, and test environments
|
|
8
|
+
- **Dynamic Table Naming**: Environment-specific table prefixes (dev-, staging-, test-)
|
|
9
|
+
- **Feature Flags**: Environment-specific feature toggles (parallel processing, caching, etc.)
|
|
10
|
+
- **TypeScript Support**: Full TypeScript definitions and type safety
|
|
11
|
+
- **AWS CDK Integration**: Infrastructure as Code for database tables
|
|
12
|
+
- **Comprehensive DAO Layer**: Generic data access objects with environment-specific optimizations
|
|
8
13
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
## 📦 Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install cmp-aws-database
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 🎯 Quick Start
|
|
21
|
+
|
|
22
|
+
### Basic Usage
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import {
|
|
26
|
+
envManager,
|
|
27
|
+
TABLE_NAMES,
|
|
28
|
+
UserModel,
|
|
29
|
+
userDAO
|
|
30
|
+
} from 'cmp-aws-database';
|
|
31
|
+
|
|
32
|
+
// Check current environment
|
|
33
|
+
console.log('Environment:', envManager.getEnvironment());
|
|
34
|
+
|
|
35
|
+
// Use environment-aware table names
|
|
36
|
+
const userTableName = TABLE_NAMES.USER;
|
|
37
|
+
|
|
38
|
+
// Create and save a user
|
|
39
|
+
const user = new UserModel();
|
|
40
|
+
user.userId = 'user123';
|
|
41
|
+
user.email = 'test@example.com';
|
|
42
|
+
|
|
43
|
+
const savedUser = await userDAO.save(user, { userSub: 'auth-user-123' });
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Environment Configuration
|
|
47
|
+
|
|
48
|
+
The package automatically detects the environment based on `NODE_ENV` or `ENVIRONMENT` variables:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Development
|
|
52
|
+
export NODE_ENV=development
|
|
53
|
+
|
|
54
|
+
# Staging
|
|
55
|
+
export NODE_ENV=staging
|
|
56
|
+
|
|
57
|
+
# Production
|
|
58
|
+
export NODE_ENV=production
|
|
59
|
+
|
|
60
|
+
# Test
|
|
61
|
+
export NODE_ENV=test
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 🌍 Environment-Specific Behavior
|
|
65
|
+
|
|
66
|
+
### Development Environment
|
|
67
|
+
- **Database**: Local DynamoDB (http://localhost:8000)
|
|
68
|
+
- **Table Prefix**: `dev-`
|
|
69
|
+
- **Features**: Sequential processing, no caching
|
|
70
|
+
- **Logging**: Debug level
|
|
71
|
+
|
|
72
|
+
### Staging Environment
|
|
73
|
+
- **Database**: AWS DynamoDB
|
|
74
|
+
- **Table Prefix**: `staging-`
|
|
75
|
+
- **Features**: Parallel processing, caching enabled
|
|
76
|
+
- **Logging**: Info level
|
|
77
|
+
|
|
78
|
+
### Production Environment
|
|
79
|
+
- **Database**: AWS DynamoDB
|
|
80
|
+
- **Table Prefix**: None (empty)
|
|
81
|
+
- **Features**: Parallel processing, caching enabled
|
|
82
|
+
- **Logging**: Warn level
|
|
83
|
+
|
|
84
|
+
### Test Environment
|
|
85
|
+
- **Database**: Local DynamoDB (http://localhost:8000)
|
|
86
|
+
- **Table Prefix**: `test-`
|
|
87
|
+
- **Features**: Sequential processing, no caching
|
|
88
|
+
- **Logging**: Error level
|
|
89
|
+
|
|
90
|
+
## 📚 Available Models and DAOs
|
|
91
|
+
|
|
92
|
+
### Customer User Models
|
|
93
|
+
- `UserModel` / `userDAO`
|
|
94
|
+
- `OrderModel` / `orderDao`
|
|
95
|
+
- `CartModel` / `cartDAO`
|
|
96
|
+
- `WalletModel` / `walletDao`
|
|
97
|
+
- `PaymentModel` / `paymentDao`
|
|
98
|
+
- And many more...
|
|
99
|
+
|
|
100
|
+
### Internal User Models
|
|
101
|
+
- `InternalUserModel` / `internalUserDao`
|
|
102
|
+
- `ActivityLogsModel` / `activityLogsDao`
|
|
103
|
+
- `QuotationsModel` / `quotationsDao`
|
|
104
|
+
|
|
105
|
+
## 🔧 Advanced Usage
|
|
106
|
+
|
|
107
|
+
### Environment-Specific Features
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { envManager } from 'cmp-aws-database';
|
|
111
|
+
|
|
112
|
+
const config = envManager.getConfig();
|
|
113
|
+
|
|
114
|
+
// Check if parallel processing is enabled
|
|
115
|
+
if (config.features.enableParallelProcessing) {
|
|
116
|
+
await userDAO.parallelBatchGet(users);
|
|
117
|
+
} else {
|
|
118
|
+
await userDAO.batchGet(users);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Check if caching is enabled
|
|
122
|
+
if (config.features.enableCaching) {
|
|
123
|
+
// Implement caching logic
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Custom Table Names
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { TableNameManager } from 'cmp-aws-database';
|
|
131
|
+
|
|
132
|
+
const customTableName = TableNameManager.getTableName('MyCustomTable');
|
|
133
|
+
// Returns: dev-MyCustomTable, staging-MyCustomTable, or MyCustomTable
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Environment Override (Testing)
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
import { envManager } from 'cmp-aws-database';
|
|
140
|
+
|
|
141
|
+
// Override environment for testing
|
|
142
|
+
envManager.setEnvironment('test');
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 🏗️ Infrastructure
|
|
146
|
+
|
|
147
|
+
### CDK Stack Deployment
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
import { CustomerAppDbStack, InternalUserDbStack } from 'cmp-aws-database';
|
|
151
|
+
|
|
152
|
+
// Deploy customer app database
|
|
153
|
+
const customerStack = new CustomerAppDbStack(app, 'CustomerAppDbStack');
|
|
154
|
+
|
|
155
|
+
// Deploy internal user database
|
|
156
|
+
const internalStack = new InternalUserDbStack(app, 'InternalUserDbStack');
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Available Tables
|
|
160
|
+
|
|
161
|
+
The package includes pre-configured tables for:
|
|
162
|
+
- User management
|
|
163
|
+
- Order processing
|
|
164
|
+
- Payment handling
|
|
165
|
+
- Inventory management
|
|
166
|
+
- Analytics and reporting
|
|
167
|
+
- And much more...
|
|
168
|
+
|
|
169
|
+
## 🔍 Debugging
|
|
170
|
+
|
|
171
|
+
### Environment Information
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
import { envManager } from 'cmp-aws-database';
|
|
175
|
+
|
|
176
|
+
console.log('Current environment:', envManager.getEnvironment());
|
|
177
|
+
console.log('Database config:', envManager.getDatabaseConfig());
|
|
178
|
+
console.log('Features enabled:', envManager.getConfig().features);
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Table Name Resolution
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
import { TABLE_NAMES, BASE_TABLE_NAMES } from 'cmp-aws-database';
|
|
185
|
+
|
|
186
|
+
console.log('Environment-aware table names:', TABLE_NAMES);
|
|
187
|
+
console.log('Base table names:', BASE_TABLE_NAMES);
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## 📋 Migration Guide
|
|
191
|
+
|
|
192
|
+
### From Hardcoded Configuration
|
|
193
|
+
|
|
194
|
+
**Before:**
|
|
195
|
+
```typescript
|
|
196
|
+
const tableName = 'UserTable';
|
|
197
|
+
const client = new DynamoDB({ maxAttempts: 10 });
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**After:**
|
|
201
|
+
```typescript
|
|
202
|
+
import { TABLE_NAMES, DatabaseFactory } from 'cmp-aws-database';
|
|
203
|
+
|
|
204
|
+
const tableName = TABLE_NAMES.USER;
|
|
205
|
+
const client = DatabaseFactory.getDynamoDBClient();
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## 🤝 Contributing
|
|
209
|
+
|
|
210
|
+
1. Fork the repository
|
|
211
|
+
2. Create a feature branch
|
|
212
|
+
3. Make your changes
|
|
213
|
+
4. Add tests for new functionality
|
|
214
|
+
5. Submit a pull request
|
|
215
|
+
|
|
216
|
+
## 📄 License
|
|
217
|
+
|
|
218
|
+
Apache-2.0
|
|
219
|
+
|
|
220
|
+
## 🆘 Support
|
|
221
|
+
|
|
222
|
+
- **Issues**: [GitHub Issues](https://github.com/Surajpatel24-craftmyplate/craft-my-plate-database/issues)
|
|
223
|
+
- **Documentation**: [Package Documentation](https://github.com/Surajpatel24-craftmyplate/craft-my-plate-database#readme)
|
|
224
|
+
|
|
225
|
+
## 🔄 Version History
|
|
226
|
+
|
|
227
|
+
- **1.1.107**: Current version with environment-aware configuration
|
|
228
|
+
- **Previous versions**: Legacy hardcoded configuration
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
**Note**: This package is designed to work seamlessly across different environments while maintaining the same API. The environment-specific behavior is handled internally, so your application code remains consistent across all environments.
|
package/dist/base-dao.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { DynamoDB } from '@aws-sdk/client-dynamodb';
|
|
1
2
|
import { DataMapper, ParallelScanOptions, ParallelScanWorkerOptions, QueryOptions, ReadConsistency, ScanOptions } from '@nova-odm/mapper';
|
|
2
3
|
import { ZeroArgumentsConstructor } from '@nova-odm/marshaller';
|
|
3
4
|
import { ConditionExpression, ConditionExpressionPredicate } from '@nova-odm/expressions';
|
|
4
5
|
import { BaseModel } from './base-model';
|
|
5
|
-
export declare const dynamoDB:
|
|
6
|
+
export declare const dynamoDB: DynamoDB;
|
|
6
7
|
export declare const mapper: DataMapper;
|
|
7
8
|
export declare class GenericDAO<T extends BaseModel> {
|
|
8
9
|
batchUpdate(items: T[], batchSize?: number, authContext?: any): Promise<T[]>;
|
package/dist/base-dao.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GenericDAO = exports.mapper = exports.dynamoDB = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.mapper = new mapper_1.DataMapper({ client: exports.dynamoDB });
|
|
4
|
+
const database_factory_1 = require("./config/database-factory");
|
|
5
|
+
const environment_config_1 = require("./config/environment-config");
|
|
6
|
+
// Use environment-aware database instances
|
|
7
|
+
exports.dynamoDB = database_factory_1.DatabaseFactory.getDynamoDBClient();
|
|
8
|
+
exports.mapper = database_factory_1.DatabaseFactory.getDataMapper();
|
|
10
9
|
class GenericDAO {
|
|
11
10
|
async batchUpdate(items, batchSize = 100, authContext) {
|
|
12
11
|
let success = 0, totalToUpdate = items.length;
|
|
@@ -132,9 +131,12 @@ class GenericDAO {
|
|
|
132
131
|
async delete(item) {
|
|
133
132
|
return await exports.mapper.delete(item, { returnValues: "ALL_OLD" });
|
|
134
133
|
}
|
|
135
|
-
async get(item, readConsistency
|
|
134
|
+
async get(item, readConsistency) {
|
|
135
|
+
// Use environment-specific read consistency if not provided
|
|
136
|
+
const config = environment_config_1.envManager.getDatabaseConfig();
|
|
137
|
+
const consistency = readConsistency || config.readConsistency;
|
|
136
138
|
const res = await exports.mapper.get(item, {
|
|
137
|
-
readConsistency:
|
|
139
|
+
readConsistency: consistency
|
|
138
140
|
});
|
|
139
141
|
return res;
|
|
140
142
|
}
|
|
@@ -159,16 +161,25 @@ class GenericDAO {
|
|
|
159
161
|
}
|
|
160
162
|
return deleteItems;
|
|
161
163
|
}
|
|
162
|
-
async batchGet(items, readConsistency
|
|
164
|
+
async batchGet(items, readConsistency) {
|
|
165
|
+
// Use environment-specific read consistency if not provided
|
|
166
|
+
const config = environment_config_1.envManager.getDatabaseConfig();
|
|
167
|
+
const consistency = readConsistency || config.readConsistency;
|
|
163
168
|
let getItems = [];
|
|
164
169
|
for await (const item of exports.mapper.batchGet(items, {
|
|
165
|
-
readConsistency:
|
|
170
|
+
readConsistency: consistency
|
|
166
171
|
})) {
|
|
167
172
|
getItems.push(item);
|
|
168
173
|
}
|
|
169
174
|
return getItems;
|
|
170
175
|
}
|
|
171
176
|
async parallelBatchGet(inputItems, batchSize = 1000, maxConcurrentSegments = 20, readConsistency) {
|
|
177
|
+
// Check if parallel processing is enabled for this environment
|
|
178
|
+
const config = environment_config_1.envManager.getConfig();
|
|
179
|
+
if (!config.features.enableParallelProcessing) {
|
|
180
|
+
console.warn('Parallel processing is disabled for this environment. Using sequential processing.');
|
|
181
|
+
return this.batchGet(inputItems, readConsistency);
|
|
182
|
+
}
|
|
172
183
|
let startTime = Date.now();
|
|
173
184
|
let items = [];
|
|
174
185
|
items = items.concat(inputItems);
|
|
@@ -242,4 +253,4 @@ class GenericDAO {
|
|
|
242
253
|
}
|
|
243
254
|
}
|
|
244
255
|
exports.GenericDAO = GenericDAO;
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9EO0FBQ3BELDZDQU8wQjtBQU1iLFFBQUEsUUFBUSxHQUFHLElBQUksMEJBQVEsQ0FBQztJQUNqQyxXQUFXLEVBQUUsRUFBRTtDQUNsQixDQUFRLENBQUE7QUFDSSxRQUFBLE1BQU0sR0FBRyxJQUFJLG1CQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsZ0JBQVEsRUFBRSxDQUFDLENBQUM7QUFFM0QsTUFBYSxVQUFVO0lBQ25CLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBVSxFQUFFLFNBQVMsR0FBRyxHQUFHLEVBQUUsV0FBaUI7UUFDNUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFBO1FBQzdDLElBQUksV0FBVyxHQUFRLEVBQUUsQ0FBQTtRQUN6QixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFBO1lBQ2pCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQ3RDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUM1RCxJQUFJLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckIsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUMvQixPQUFPLElBQUksQ0FBQyxDQUFBO29CQUNaLFdBQVcsQ0FBQyxJQUFJLENBQUMs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Q0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUE7SUFDcEIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQXFCO1FBQzlCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDM0UsQ0FBQztDQUNKO0FBclFELGdDQXFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtb0RCIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJztcbmltcG9ydCB7XG4gICAgRGF0YU1hcHBlcixcbiAgICBQYXJhbGxlbFNjYW5PcHRpb25zLFxuICAgIFBhcmFsbGVsU2Nhbldvcmtlck9wdGlvbnMsXG4gICAgUXVlcnlPcHRpb25zLFxuICAgIFJlYWRDb25zaXN0ZW5jeSxcbiAgICBTY2FuT3B0aW9uc1xufSBmcm9tICdAbm92YS1vZG0vbWFwcGVyJztcbmltcG9ydCB7IFplcm9Bcmd1bWVudHNDb25zdHJ1Y3RvciB9IGZyb20gJ0Bub3ZhLW9kbS9tYXJzaGFsbGVyJztcbmltcG9ydCB7IENvbmRpdGlvbkV4cHJlc3Npb24sIENvbmRpdGlvbkV4cHJlc3Npb25QcmVkaWNhdGUgfSBmcm9tICdAbm92YS1vZG0vZXhwcmVzc2lvbnMnO1xuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSAnLi9iYXNlLW1vZGVsJztcblxuXG5leHBvcnQgY29uc3QgZHluYW1vREIgPSBuZXcgRHluYW1vREIoe1xuICAgIG1heEF0dGVtcHRzOiAxMFxufSkgYXMgYW55XG5leHBvcnQgY29uc3QgbWFwcGVyID0gbmV3IERhdGFNYXBwZXIoeyBjbGllbnQ6IGR5bmFtb0RCIH0pO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJpY0RBTzxUIGV4dGVuZHMgQmFzZU1vZGVsPiB7XG4gICAgYXN5bmMgYmF0Y2hVcGRhdGUoaXRlbXM6IFRbXSwgYmF0Y2hTaXplID0gMTAwLCBhdXRoQ29udGV4dD86IGFueSk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gMCwgdG90YWxUb1VwZGF0ZSA9IGl0ZW1zLmxlbmd0aFxuICAgICAgICBsZXQgdXBkYXRlSXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIHdoaWxlIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgcHJvbWlzZXMgPSBbXVxuICAgICAgICAgICAgbGV0IGJhdGNoID0gaXRlbXMuc3BsaWNlKDAsIGJhdGNoU2l6ZSlcbiAgICAgICAgICAgIHByb21pc2VzID0gYmF0Y2gubWFwKGl0ZW0gPT4gdGhpcy51cGRhdGUoaXRlbSwgYXV0aENvbnRleHQpKVxuICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQocHJvbWlzZXMpXG4gICAgICAgICAgICByZXN1bHRzLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PSBcImZ1bGZpbGxlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgKz0gMVxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtcy5wdXNoKHJlc3VsdC52YWx1ZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7c3VjY2Vzc30vJHt0b3RhbFRvVXBkYXRlfWApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVwZGF0ZUl0ZW1zXG4gICAgfVxuXG4gICAgYXN5bmMgcGFyYWxsZWxCYXRjaFB1dChpbnB1dEl0ZW1zOiBUW10sIGJhdGNoU2l6ZTogbnVtYmVyID0gMTAwMCwgbWF4Q29uY3VycmVudFNlZ21lbnRzOiBudW1iZXIgPSAyMCwgYXV0aENvbnRleHQ/OiBhbnkpOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICBsZXQgaXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KGlucHV0SXRlbXMpXG4gICAgICAgIGl0ZW1zID0gaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaXRlbS5jcmVhdGVkX3RpbWUgPSBuZXcgRGF0ZSgpXG4gICAgICAgICAgICBpdGVtLmNyZWF0ZWRfdXNlciA9IGF1dGhDb250ZXh0LnVzZXJTdWJcbiAgICAgICAgICAgIHJldHVybiBpdGVtXG4gICAgICAgIH0pXG4gICAgICAgIGxldCBtYXhTZWdtZW50czogVFtdW11bXSA9IFtdXG4gICAgICAgIGxldCBwdXRJdGVtczogVFtdID0gW11cbiAgICAgICAgd2hpbGUgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBiYXRjaCA9IGl0ZW1zLnNwbGljZSgwLCBiYXRjaFNpemUgKiBtYXhDb25jdXJyZW50U2VnbWVudHMpXG4gICAgICAgICAgICBsZXQgc2VnbWVudDogVFtdW10gPSBbXVxuICAgICAgICAgICAgd2hpbGUgKGJhdGNoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBzZWdtZW50LnB1c2goYmF0Y2guc3BsaWNlKDAsIGJhdGNoU2l6ZSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXhTZWdtZW50cy5wdXNoKHNlZ21lbnQpXG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBzZWdtZW50IG9mIG1heFNlZ21lbnRzKSB7XG4gICAgICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICAgICAgbGV0IHByb21pc2VzOiBQcm9taXNlPFRbXT5bXSA9IFtdXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgYmF0Y2ggbGVuZ3RoID0gJHtzZWdtZW50Lmxlbmd0aH1gKVxuICAgICAgICAgICAgZm9yIChjb25zdCBiYXRjaCBvZiBzZWdtZW50KSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmJhdGNoUHV0KGJhdGNoLCBhdXRoQ29udGV4dC51c2VyU3ViKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic2VnbWVudCBjb21wbGV0ZVwiKVxuICAgICAgICAgICAgcmVzdWx0LmZvckVhY2goKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHB1dEl0ZW1zID0gcHV0SXRlbXMuY29uY2F0KHJlcylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdGltZSBmb3Igc2VnbWVudCBwdXQgJHtEYXRlLm5vdygpIC0gc3RhcnRUaW1lfWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coYHRvdGFsIHRpbWUgZm9yIGNvbXBsZXRlIHBhcmFsbGVsIHB1dCAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9YClcbiAgICAgICAgcmV0dXJuIHB1dEl0ZW1zXG4gICAgfVxuXG4gICAgYXN5bmMgcGFyYWxsZWxCYXRjaERlbGV0ZShpbnB1dEl0ZW1zOiBUW10sIGJhdGNoU2l6ZTogbnVtYmVyID0gMTAwMCwgbWF4Q29uY3VycmVudFNlZ21lbnRzOiBudW1iZXIgPSAyMCk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpXG4gICAgICAgIGxldCBpdGVtczogVFtdID0gW11cbiAgICAgICAgaXRlbXMgPSBpdGVtcy5jb25jYXQoaW5wdXRJdGVtcylcbiAgICAgICAgbGV0IG1heFNlZ21lbnRzOiBUW11bXVtdID0gW11cbiAgICAgICAgbGV0IHB1dEl0ZW1zOiBUW10gPSBbXVxuICAgICAgICB3aGlsZSAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGJhdGNoID0gaXRlbXMuc3BsaWNlKDAsIGJhdGNoU2l6ZSAqIG1heENvbmN1cnJlbnRTZWdtZW50cylcbiAgICAgICAgICAgIGxldCBzZWdtZW50OiBUW11bXSA9IFtdXG4gICAgICAgICAgICB3aGlsZSAoYmF0Y2gubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHNlZ21lbnQucHVzaChiYXRjaC5zcGxpY2UoMCwgYmF0Y2hTaXplKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1heFNlZ21lbnRzLnB1c2goc2VnbWVudClcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgbWF4U2VnbWVudHMpIHtcbiAgICAgICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpXG4gICAgICAgICAgICBsZXQgcHJvbWlzZXM6IFByb21pc2U8VFtdPltdID0gW11cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBiYXRjaCBsZW5ndGggPSAke3NlZ21lbnQubGVuZ3RofWApXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGJhdGNoIG9mIHNlZ21lbnQpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuYmF0Y2hEZWxldGUoYmF0Y2gpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJzZWdtZW50IGNvbXBsZXRlXCIpXG4gICAgICAgICAgICByZXN1bHQuZm9yRWFjaCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgcHV0SXRlbXMgPSBwdXRJdGVtcy5jb25jYXQocmVzKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGB0aW1lIGZvciBzZWdtZW50IGRlbGV0ZSAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhgdG90YWwgdGltZSBmb3IgY29tcGxldGUgcGFyYWxsZWwgZGVsZXRlICR7RGF0ZS5ub3coKSAtIHN0YXJ0VGltZX1gKVxuICAgICAgICByZXR1cm4gcHV0SXRlbXNcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGhhcyB0byBiZSB1c2VkIG9ubHkgaW4gdGhlIHNjcmlwdHMuXG4gICAgICogXG4gICAgICogQHBhcmFtIHZhbHVlQ29uc3RydWN0b3IgdGhlIG1vZGVsIGNsYXNzXG4gICAgICovXG4gICAgYXN5bmMgcGFyYWxsZWxTY2FuKHZhbHVlQ29uc3RydWN0b3I6IFplcm9Bcmd1bWVudHNDb25zdHJ1Y3RvcjxUPiwgb3B0aW9ucz86IFBhcmFsbGVsU2Nhbk9wdGlvbnMpOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICBsZXQgaXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlbSBvZiBtYXBwZXIucGFyYWxsZWxTY2FuKHZhbHVlQ29uc3RydWN0b3IsIDQsIG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoICUgMTAwMDAwID09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJlYWQgMTAwS1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtc1xuICAgIH1cblxuICAgIGFzeW5jIHNjYW4odmFsdWVDb25zdHJ1Y3RvcjogWmVyb0FyZ3VtZW50c0NvbnN0cnVjdG9yPFQ+LCBvcHRpb25zPzogU2Nhbk9wdGlvbnMgfCBQYXJhbGxlbFNjYW5Xb3JrZXJPcHRpb25zKTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgbGV0IGl0ZW1zOiBUW10gPSBbXVxuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgbWFwcGVyLnNjYW4odmFsdWVDb25zdHJ1Y3Rvciwgb3B0aW9ucykpIHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXNcbiAgICB9XG5cbiAgICBhc3luYyBzYXZlKGl0ZW06IFQsIGF1dGhDb250ZXh0PzogYW55KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGl0ZW0uY3JlYXRlZF90aW1lID0gbmV3IERhdGUoKVxuICAgICAgICBpdGVtLmNyZWF0ZWRfdXNlciA9IGF1dGhDb250ZXh0LnVzZXJTdWJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgbWFwcGVyLnB1dChpdGVtKVxuICAgICAgICByZXR1cm4gcmVzXG4gICAgfVxuXG4gICAgYXN5bmMgdXBkYXRlKGl0ZW06IFQsIGF1dGhDb250ZXh0PzogYW55KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGl0ZW0udXBkYXRlZF90aW1lID0gbmV3IERhdGUoKVxuICAgICAgICBpdGVtLnVwZGF0ZWRfdXNlciA9IGF1dGhDb250ZXh0LnVzZXJTdWJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgbWFwcGVyLnVwZGF0ZShpdGVtLCB7XG4gICAgICAgICAgICBvbk1pc3Npbmc6IFwic2tpcFwiXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICBhc3luYyBkZWxldGUoaXRlbTogVCk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgbWFwcGVyLmRlbGV0ZShpdGVtLCB7IHJldHVyblZhbHVlczogXCJBTExfT0xEXCIgfSlcbiAgICB9XG5cbiAgICBhc3luYyBnZXQoaXRlbTogVCwgcmVhZENvbnNpc3RlbmN5OiBSZWFkQ29uc2lzdGVuY3kgPSBcImV2ZW50dWFsXCIpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgbWFwcGVyLmdldChpdGVtLCB7XG4gICAgICAgICAgICByZWFkQ29uc2lzdGVuY3k6IHJlYWRDb25zaXN0ZW5jeVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gcmVzXG4gICAgfVxuXG4gICAgYXN5bmMgYmF0Y2hQdXQoaXRlbXM6IFRbXSwgYXV0aENvbnRleHQ/OiBhbnkpOiBQcm9taXNlPFRbXT4ge1xuXG4gICAgICAgIGxldCBmaW5hbEl0ZW1zOiBUW10gPSBbXVxuICAgICAgICBpdGVtcyA9IGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY3JlYXRlZF90aW1lID0gbmV3IERhdGUoKVxuICAgICAgICAgICAgaXRlbS5jcmVhdGVkX3VzZXIgPSBhdXRoQ29udGV4dC51c2VyU3ViXG4gICAgICAgICAgICByZXR1cm4gaXRlbVxuICAgICAgICB9KVxuICAgICAgICAvLyBjb25zb2xlLmxvZyggXCJpdGVtOlwiLCBpdGVtcyApXG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlbSBvZiBtYXBwZXIuYmF0Y2hQdXQoaXRlbXMpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhpdGVtKVxuICAgICAgICAgICAgZmluYWxJdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbmFsSXRlbXNcbiAgICB9XG5cbiAgICBhc3luYyBiYXRjaERlbGV0ZShpdGVtczogVFtdKTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgbGV0IGRlbGV0ZUl0ZW1zOiBUW10gPSBbXVxuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgbWFwcGVyLmJhdGNoRGVsZXRlKGl0ZW1zKSkge1xuICAgICAgICAgICAgZGVsZXRlSXRlbXMucHVzaChpdGVtKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWxldGVJdGVtc1xuICAgIH1cblxuICAgIGFzeW5jIGJhdGNoR2V0KGl0ZW1zOiBUW10sIHJlYWRDb25zaXN0ZW5jeTogUmVhZENvbnNpc3RlbmN5ID0gXCJldmVudHVhbFwiKTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgbGV0IGdldEl0ZW1zOiBUW10gPSBbXVxuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgbWFwcGVyLmJhdGNoR2V0KGl0ZW1zLCB7XG4gICAgICAgICAgICByZWFkQ29uc2lzdGVuY3k6IHJlYWRDb25zaXN0ZW5jeVxuICAgICAgICB9KSkge1xuICAgICAgICAgICAgZ2V0SXRlbXMucHVzaChpdGVtKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRJdGVtc1xuICAgIH1cblxuICAgIGFzeW5jIHBhcmFsbGVsQmF0Y2hHZXQoaW5wdXRJdGVtczogVFtdLCBiYXRjaFNpemU6IG51bWJlciA9IDEwMDAsIG1heENvbmN1cnJlbnRTZWdtZW50czogbnVtYmVyID0gMjAsIHJlYWRDb25zaXN0ZW5jeT86IFJlYWRDb25zaXN0ZW5jeSk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpXG4gICAgICAgIGxldCBpdGVtczogVFtdID0gW11cbiAgICAgICAgaXRlbXMgPSBpdGVtcy5jb25jYXQoaW5wdXRJdGVtcylcbiAgICAgICAgbGV0IG1heFNlZ21lbnRzOiBUW11bXVtdID0gW11cbiAgICAgICAgbGV0IHJlc3VsdEl0ZW1zOiBUW10gPSBbXVxuICAgICAgICB3aGlsZSAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGJhdGNoID0gaXRlbXMuc3BsaWNlKDAsIGJhdGNoU2l6ZSAqIG1heENvbmN1cnJlbnRTZWdtZW50cylcbiAgICAgICAgICAgIGxldCBzZWdtZW50OiBUW11bXSA9IFtdXG4gICAgICAgICAgICB3aGlsZSAoYmF0Y2gubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHNlZ21lbnQucHVzaChiYXRjaC5zcGxpY2UoMCwgYmF0Y2hTaXplKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1heFNlZ21lbnRzLnB1c2goc2VnbWVudClcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgbWF4U2VnbWVudHMpIHtcbiAgICAgICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpXG4gICAgICAgICAgICBsZXQgcHJvbWlzZXM6IFByb21pc2U8VFtdPltdID0gW11cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBiYXRjaCBsZW5ndGggPSAke3NlZ21lbnQubGVuZ3RofWApXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGJhdGNoIG9mIHNlZ21lbnQpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuYmF0Y2hHZXQoYmF0Y2gsIHJlYWRDb25zaXN0ZW5jeSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInNlZ21lbnQgY29tcGxldGVcIilcbiAgICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHRJdGVtcyA9IHJlc3VsdEl0ZW1zLmNvbmNhdChyZXMpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc29sZS5sb2coYHRpbWUgZm9yIHNlZ21lbnQgZ2V0ICR7RGF0ZS5ub3coKSAtIHN0YXJ0VGltZX1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKGB0b3RhbCB0aW1lIGZvciBjb21wbGV0ZSBwYXJhbGxlbCBnZXQgJHtEYXRlLm5vdygpIC0gc3RhcnRUaW1lfWApXG4gICAgICAgIHJldHVybiByZXN1bHRJdGVtc1xuICAgIH1cbiAgICBhc3luYyBwYXJhbGxlbFF1ZXJ5KFxuICAgICAgICB2YWx1ZUNvbnN0cnVjdG9yOiBaZXJvQXJndW1lbnRzQ29uc3RydWN0b3I8VD4sXG4gICAgICAgIGtleUNvbmRpdGlvbnM6IEFycmF5PENvbmRpdGlvbkV4cHJlc3Npb24gfCB7IFtwcm9wZXJ0eU5hbWU6IHN0cmluZ106IENvbmRpdGlvbkV4cHJlc3Npb25QcmVkaWNhdGUgfCBhbnkgfT4sXG4gICAgICAgIG1heENvbmN1cnJlbnRDYWxsczogbnVtYmVyID0gMjAsXG4gICAgICAgIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMsXG5cbiAgICApOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpXG4gICAgICAgIGNvbnN0IHJlc3VsdHM6IFRbXSA9IFtdXG4gICAgICAgIHdoaWxlIChrZXlDb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRDb25kaXRpb25zID0ga2V5Q29uZGl0aW9ucy5zcGxpY2UoMCwgbWF4Q29uY3VycmVudENhbGxzKVxuICAgICAgICAgICAgY29uc3QgcXVlcnlQcm9taXNlcyA9IHNlZ21lbnRDb25kaXRpb25zLm1hcCgoa2V5Q29uZGl0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUXVlcnkodmFsdWVDb25zdHJ1Y3Rvciwga2V5Q29uZGl0aW9uLCBvcHRpb25zKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBxdWVyeVJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChxdWVyeVByb21pc2VzKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHF1ZXJ5UmVzdWx0IG9mIHF1ZXJ5UmVzdWx0cykge1xuICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCguLi5xdWVyeVJlc3VsdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhgdG90YWwgdGltZSBmb3IgY29tcGxldGUgcGFyYWxsZWwgcXVlcnkgJHtEYXRlLm5vdygpIC0gc3RhcnRUaW1lfWApXG4gICAgICAgIHJldHVybiByZXN1bHRzXG4gICAgfVxuICAgIHByaXZhdGUgYXN5bmMgY3VzdG9tUXVlcnkoXG4gICAgICAgIHZhbHVlQ29uc3RydWN0b3I6IFplcm9Bcmd1bWVudHNDb25zdHJ1Y3RvcjxUPixcbiAgICAgICAga2V5Q29uZGl0aW9uczogQ29uZGl0aW9uRXhwcmVzc2lvbiB8IHsgW3Byb3BlcnR5TmFtZTogc3RyaW5nXTogQ29uZGl0aW9uRXhwcmVzc2lvblByZWRpY2F0ZSB8IGFueSB9LFxuICAgICAgICBvcHRpb25zPzogUXVlcnlPcHRpb25zXG4gICAgKTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICBjb25zdCBpdGVtczogVFtdID0gW11cblxuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgbWFwcGVyLnF1ZXJ5KHZhbHVlQ29uc3RydWN0b3IsIGtleUNvbmRpdGlvbnMsIG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coYHRvdGFsIHRpbWUgZm9yIGNvbXBsZXRlIHF1ZXJ5ICR7RGF0ZS5ub3coKSAtIHN0YXJ0VGltZX1gKVxuXG4gICAgICAgIHJldHVybiBpdGVtc1xuICAgIH1cbiAgICBkZWNvZGUoY29udGludWF0aW9uVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoY29udGludWF0aW9uVG9rZW4pIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RFdmFsdWF0ZWRLZXkgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKGNvbnRpbnVhdGlvblRva2VuLCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0ZjgnKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJJbmNvbWluZyBMYXN0IEV2YWx1YXRlZCBLZXkgXCIgKyBsYXN0RXZhbHVhdGVkS2V5KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEV2YWx1YXRlZEtleTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvblRva2VuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGFzeW5jIGVuY29kZShsYXN0RXZhbHVhdGVkS2V5OiBhbnkpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkobGFzdEV2YWx1YXRlZEtleSkpLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgIH1cbn0iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsZ0VBQTREO0FBQzVELG9FQUF5RDtBQUV6RCwyQ0FBMkM7QUFDOUIsUUFBQSxRQUFRLEdBQUcsa0NBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0FBQy9DLFFBQUEsTUFBTSxHQUFHLGtDQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7QUFFdEQsTUFBYSxVQUFVO0lBQ25CLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBVSxFQUFFLFNBQVMsR0FBRyxHQUFHLEVBQUUsV0FBaUI7UUFDNUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFBO1FBQzdDLElBQUksV0FBVyxHQUFRLEVBQUUsQ0FBQTtRQUN6QixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFBO1lBQ2pCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQ3RDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUM1RCxJQUFJLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckIsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUMvQixPQUFPLElBQUksQ0FBQyxDQUFBO29CQUNaLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNsQyxDQUFD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SUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFFdEUsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztJQUNELE1BQU0sQ0FBQyxpQkFBcUM7UUFDeEMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQztnQkFDRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDN0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMvRCxPQUFPLGdCQUFnQixDQUFDO1lBQzVCLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFxQjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzNFLENBQUM7Q0FDSjtBQXBSRCxnQ0FvUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbW9EQiB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYic7XG5pbXBvcnQge1xuICAgIERhdGFNYXBwZXIsXG4gICAgUGFyYWxsZWxTY2FuT3B0aW9ucyxcbiAgICBQYXJhbGxlbFNjYW5Xb3JrZXJPcHRpb25zLFxuICAgIFF1ZXJ5T3B0aW9ucyxcbiAgICBSZWFkQ29uc2lzdGVuY3ksXG4gICAgU2Nhbk9wdGlvbnNcbn0gZnJvbSAnQG5vdmEtb2RtL21hcHBlcic7XG5pbXBvcnQgeyBaZXJvQXJndW1lbnRzQ29uc3RydWN0b3IgfSBmcm9tICdAbm92YS1vZG0vbWFyc2hhbGxlcic7XG5pbXBvcnQgeyBDb25kaXRpb25FeHByZXNzaW9uLCBDb25kaXRpb25FeHByZXNzaW9uUHJlZGljYXRlIH0gZnJvbSAnQG5vdmEtb2RtL2V4cHJlc3Npb25zJztcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRhYmFzZUZhY3RvcnkgfSBmcm9tICcuL2NvbmZpZy9kYXRhYmFzZS1mYWN0b3J5JztcbmltcG9ydCB7IGVudk1hbmFnZXIgfSBmcm9tICcuL2NvbmZpZy9lbnZpcm9ubWVudC1jb25maWcnO1xuXG4vLyBVc2UgZW52aXJvbm1lbnQtYXdhcmUgZGF0YWJhc2UgaW5zdGFuY2VzXG5leHBvcnQgY29uc3QgZHluYW1vREIgPSBEYXRhYmFzZUZhY3RvcnkuZ2V0RHluYW1vREJDbGllbnQoKTtcbmV4cG9ydCBjb25zdCBtYXBwZXIgPSBEYXRhYmFzZUZhY3RvcnkuZ2V0RGF0YU1hcHBlcigpO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJpY0RBTzxUIGV4dGVuZHMgQmFzZU1vZGVsPiB7XG4gICAgYXN5bmMgYmF0Y2hVcGRhdGUoaXRlbXM6IFRbXSwgYmF0Y2hTaXplID0gMTAwLCBhdXRoQ29udGV4dD86IGFueSk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gMCwgdG90YWxUb1VwZGF0ZSA9IGl0ZW1zLmxlbmd0aFxuICAgICAgICBsZXQgdXBkYXRlSXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIHdoaWxlIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgcHJvbWlzZXMgPSBbXVxuICAgICAgICAgICAgbGV0IGJhdGNoID0gaXRlbXMuc3BsaWNlKDAsIGJhdGNoU2l6ZSlcbiAgICAgICAgICAgIHByb21pc2VzID0gYmF0Y2gubWFwKGl0ZW0gPT4gdGhpcy51cGRhdGUoaXRlbSwgYXV0aENvbnRleHQpKVxuICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQocHJvbWlzZXMpXG4gICAgICAgICAgICByZXN1bHRzLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PSBcImZ1bGZpbGxlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgKz0gMVxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtcy5wdXNoKHJlc3VsdC52YWx1ZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7c3VjY2Vzc30vJHt0b3RhbFRvVXBkYXRlfWApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVwZGF0ZUl0ZW1zXG4gICAgfVxuXG4gICAgYXN5bmMgcGFyYWxsZWxCYXRjaFB1dChpbnB1dEl0ZW1zOiBUW10sIGJhdGNoU2l6ZTogbnVtYmVyID0gMTAwMCwgbWF4Q29uY3VycmVudFNlZ21lbnRzOiBudW1iZXIgPSAyMCwgYXV0aENvbnRleHQ/OiBhbnkpOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICBsZXQgaXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KGlucHV0SXRlbXMpXG4gICAgICAgIGl0ZW1zID0gaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaXRlbS5jcmVhdGVkX3RpbWUgPSBuZXcgRGF0ZSgpXG4gICAgICAgICAgICBpdGVtLmNyZWF0ZWRfdXNlciA9IGF1dGhDb250ZXh0LnVzZXJTdWJcbiAgICAgICAgICAgIHJldHVybiBpdGVtXG4gICAgICAgIH0pXG4gICAgICAgIGxldCBtYXhTZWdtZW50czogVFtdW11bXSA9IFtdXG4gICAgICAgIGxldCBwdXRJdGVtczogVFtdID0gW11cbiAgICAgICAgd2hpbGUgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBiYXRjaCA9IGl0ZW1zLnNwbGljZSgwLCBiYXRjaFNpemUgKiBtYXhDb25jdXJyZW50U2VnbWVudHMpXG4gICAgICAgICAgICBsZXQgc2VnbWVudDogVFtdW10gPSBbXVxuICAgICAgICAgICAgd2hpbGUgKGJhdGNoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBzZWdtZW50LnB1c2goYmF0Y2guc3BsaWNlKDAsIGJhdGNoU2l6ZSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXhTZWdtZW50cy5wdXNoKHNlZ21lbnQpXG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBzZWdtZW50IG9mIG1heFNlZ21lbnRzKSB7XG4gICAgICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICAgICAgbGV0IHByb21pc2VzOiBQcm9taXNlPFRbXT5bXSA9IFtdXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgYmF0Y2ggbGVuZ3RoID0gJHtzZWdtZW50Lmxlbmd0aH1gKVxuICAgICAgICAgICAgZm9yIChjb25zdCBiYXRjaCBvZiBzZWdtZW50KSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmJhdGNoUHV0KGJhdGNoLCBhdXRoQ29udGV4dC51c2VyU3ViKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic2VnbWVudCBjb21wbGV0ZVwiKVxuICAgICAgICAgICAgcmVzdWx0LmZvckVhY2goKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHB1dEl0ZW1zID0gcHV0SXRlbXMuY29uY2F0KHJlcylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdGltZSBmb3Igc2VnbWVudCBwdXQgJHtEYXRlLm5vdygpIC0gc3RhcnRUaW1lfWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coYHRvdGFsIHRpbWUgZm9yIGNvbXBsZXRlIHBhcmFsbGVsIHB1dCAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9YClcbiAgICAgICAgcmV0dXJuIHB1dEl0ZW1zXG4gICAgfVxuXG4gICAgYXN5bmMgcGFyYWxsZWxCYXRjaERlbGV0ZShpbnB1dEl0ZW1zOiBUW10sIGJhdGNoU2l6ZTogbnVtYmVyID0gMTAwMCwgbWF4Q29uY3VycmVudFNlZ21lbnRzOiBudW1iZXIgPSAyMCk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpXG4gICAgICAgIGxldCBpdGVtczogVFtdID0gW11cbiAgICAgICAgaXRlbXMgPSBpdGVtcy5jb25jYXQoaW5wdXRJdGVtcylcbiAgICAgICAgbGV0IG1heFNlZ21lbnRzOiBUW11bXVtdID0gW11cbiAgICAgICAgbGV0IHB1dEl0ZW1zOiBUW10gPSBbXVxuICAgICAgICB3aGlsZSAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGJhdGNoID0gaXRlbXMuc3BsaWNlKDAsIGJhdGNoU2l6ZSAqIG1heENvbmN1cnJlbnRTZWdtZW50cylcbiAgICAgICAgICAgIGxldCBzZWdtZW50OiBUW11bXSA9IFtdXG4gICAgICAgICAgICB3aGlsZSAoYmF0Y2gubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHNlZ21lbnQucHVzaChiYXRjaC5zcGxpY2UoMCwgYmF0Y2hTaXplKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1heFNlZ21lbnRzLnB1c2goc2VnbWVudClcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgbWF4U2VnbWVudHMpIHtcbiAgICAgICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpXG4gICAgICAgICAgICBsZXQgcHJvbWlzZXM6IFByb21pc2U8VFtdPltdID0gW11cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBiYXRjaCBsZW5ndGggPSAke3NlZ21lbnQubGVuZ3RofWApXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGJhdGNoIG9mIHNlZ21lbnQpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuYmF0Y2hEZWxldGUoYmF0Y2gpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJzZWdtZW50IGNvbXBsZXRlXCIpXG4gICAgICAgICAgICByZXN1bHQuZm9yRWFjaCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgcHV0SXRlbXMgPSBwdXRJdGVtcy5jb25jYXQocmVzKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGB0aW1lIGZvciBzZWdtZW50IGRlbGV0ZSAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhgdG90YWwgdGltZSBmb3IgY29tcGxldGUgcGFyYWxsZWwgZGVsZXRlICR7RGF0ZS5ub3coKSAtIHN0YXJ0VGltZX1gKVxuICAgICAgICByZXR1cm4gcHV0SXRlbXNcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGhhcyB0byBiZSB1c2VkIG9ubHkgaW4gdGhlIHNjcmlwdHMuXG4gICAgICogXG4gICAgICogQHBhcmFtIHZhbHVlQ29uc3RydWN0b3IgdGhlIG1vZGVsIGNsYXNzXG4gICAgICovXG4gICAgYXN5bmMgcGFyYWxsZWxTY2FuKHZhbHVlQ29uc3RydWN0b3I6IFplcm9Bcmd1bWVudHNDb25zdHJ1Y3RvcjxUPiwgb3B0aW9ucz86IFBhcmFsbGVsU2Nhbk9wdGlvbnMpOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICBsZXQgaXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlbSBvZiBtYXBwZXIucGFyYWxsZWxTY2FuKHZhbHVlQ29uc3RydWN0b3IsIDQsIG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoICUgMTAwMDAwID09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJlYWQgMTAwS1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtc1xuICAgIH1cblxuICAgIGFzeW5jIHNjYW4odmFsdWVDb25zdHJ1Y3RvcjogWmVyb0FyZ3VtZW50c0NvbnN0cnVjdG9yPFQ+LCBvcHRpb25zPzogU2Nhbk9wdGlvbnMgfCBQYXJhbGxlbFNjYW5Xb3JrZXJPcHRpb25zKTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgbGV0IGl0ZW1zOiBUW10gPSBbXVxuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgbWFwcGVyLnNjYW4odmFsdWVDb25zdHJ1Y3Rvciwgb3B0aW9ucykpIHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goaXRlbSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXNcbiAgICB9XG5cbiAgICBhc3luYyBzYXZlKGl0ZW06IFQsIGF1dGhDb250ZXh0PzogYW55KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGl0ZW0uY3JlYXRlZF90aW1lID0gbmV3IERhdGUoKVxuICAgICAgICBpdGVtLmNyZWF0ZWRfdXNlciA9IGF1dGhDb250ZXh0LnVzZXJTdWJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgbWFwcGVyLnB1dChpdGVtKVxuICAgICAgICByZXR1cm4gcmVzXG4gICAgfVxuXG4gICAgYXN5bmMgdXBkYXRlKGl0ZW06IFQsIGF1dGhDb250ZXh0PzogYW55KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGl0ZW0udXBkYXRlZF90aW1lID0gbmV3IERhdGUoKVxuICAgICAgICBpdGVtLnVwZGF0ZWRfdXNlciA9IGF1dGhDb250ZXh0LnVzZXJTdWJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgbWFwcGVyLnVwZGF0ZShpdGVtLCB7XG4gICAgICAgICAgICBvbk1pc3Npbmc6IFwic2tpcFwiXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICBhc3luYyBkZWxldGUoaXRlbTogVCk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgbWFwcGVyLmRlbGV0ZShpdGVtLCB7IHJldHVyblZhbHVlczogXCJBTExfT0xEXCIgfSlcbiAgICB9XG5cbiAgICBhc3luYyBnZXQoaXRlbTogVCwgcmVhZENvbnNpc3RlbmN5PzogUmVhZENvbnNpc3RlbmN5KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIC8vIFVzZSBlbnZpcm9ubWVudC1zcGVjaWZpYyByZWFkIGNvbnNpc3RlbmN5IGlmIG5vdCBwcm92aWRlZFxuICAgICAgICBjb25zdCBjb25maWcgPSBlbnZNYW5hZ2VyLmdldERhdGFiYXNlQ29uZmlnKCk7XG4gICAgICAgIGNvbnN0IGNvbnNpc3RlbmN5ID0gcmVhZENvbnNpc3RlbmN5IHx8IGNvbmZpZy5yZWFkQ29uc2lzdGVuY3k7XG5cbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgbWFwcGVyLmdldChpdGVtLCB7XG4gICAgICAgICAgICByZWFkQ29uc2lzdGVuY3k6IGNvbnNpc3RlbmN5XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICBhc3luYyBiYXRjaFB1dChpdGVtczogVFtdLCBhdXRoQ29udGV4dD86IGFueSk6IFByb21pc2U8VFtdPiB7XG5cbiAgICAgICAgbGV0IGZpbmFsSXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGl0ZW1zID0gaXRlbXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaXRlbS5jcmVhdGVkX3RpbWUgPSBuZXcgRGF0ZSgpXG4gICAgICAgICAgICBpdGVtLmNyZWF0ZWRfdXNlciA9IGF1dGhDb250ZXh0LnVzZXJTdWJcbiAgICAgICAgICAgIHJldHVybiBpdGVtXG4gICAgICAgIH0pXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCBcIml0ZW06XCIsIGl0ZW1zIClcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBpdGVtIG9mIG1hcHBlci5iYXRjaFB1dChpdGVtcykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGl0ZW0pXG4gICAgICAgICAgICBmaW5hbEl0ZW1zLnB1c2goaXRlbSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmluYWxJdGVtc1xuICAgIH1cblxuICAgIGFzeW5jIGJhdGNoRGVsZXRlKGl0ZW1zOiBUW10pOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICBsZXQgZGVsZXRlSXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlbSBvZiBtYXBwZXIuYmF0Y2hEZWxldGUoaXRlbXMpKSB7XG4gICAgICAgICAgICBkZWxldGVJdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlbGV0ZUl0ZW1zXG4gICAgfVxuXG4gICAgYXN5bmMgYmF0Y2hHZXQoaXRlbXM6IFRbXSwgcmVhZENvbnNpc3RlbmN5PzogUmVhZENvbnNpc3RlbmN5KTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgLy8gVXNlIGVudmlyb25tZW50LXNwZWNpZmljIHJlYWQgY29uc2lzdGVuY3kgaWYgbm90IHByb3ZpZGVkXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGVudk1hbmFnZXIuZ2V0RGF0YWJhc2VDb25maWcoKTtcbiAgICAgICAgY29uc3QgY29uc2lzdGVuY3kgPSByZWFkQ29uc2lzdGVuY3kgfHwgY29uZmlnLnJlYWRDb25zaXN0ZW5jeTtcblxuICAgICAgICBsZXQgZ2V0SXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlbSBvZiBtYXBwZXIuYmF0Y2hHZXQoaXRlbXMsIHtcbiAgICAgICAgICAgIHJlYWRDb25zaXN0ZW5jeTogY29uc2lzdGVuY3lcbiAgICAgICAgfSkpIHtcbiAgICAgICAgICAgIGdldEl0ZW1zLnB1c2goaXRlbSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0SXRlbXNcbiAgICB9XG5cbiAgICBhc3luYyBwYXJhbGxlbEJhdGNoR2V0KGlucHV0SXRlbXM6IFRbXSwgYmF0Y2hTaXplOiBudW1iZXIgPSAxMDAwLCBtYXhDb25jdXJyZW50U2VnbWVudHM6IG51bWJlciA9IDIwLCByZWFkQ29uc2lzdGVuY3k/OiBSZWFkQ29uc2lzdGVuY3kpOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICAvLyBDaGVjayBpZiBwYXJhbGxlbCBwcm9jZXNzaW5nIGlzIGVuYWJsZWQgZm9yIHRoaXMgZW52aXJvbm1lbnRcbiAgICAgICAgY29uc3QgY29uZmlnID0gZW52TWFuYWdlci5nZXRDb25maWcoKTtcbiAgICAgICAgaWYgKCFjb25maWcuZmVhdHVyZXMuZW5hYmxlUGFyYWxsZWxQcm9jZXNzaW5nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1BhcmFsbGVsIHByb2Nlc3NpbmcgaXMgZGlzYWJsZWQgZm9yIHRoaXMgZW52aXJvbm1lbnQuIFVzaW5nIHNlcXVlbnRpYWwgcHJvY2Vzc2luZy4nKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhdGNoR2V0KGlucHV0SXRlbXMsIHJlYWRDb25zaXN0ZW5jeSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICBsZXQgaXRlbXM6IFRbXSA9IFtdXG4gICAgICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KGlucHV0SXRlbXMpXG4gICAgICAgIGxldCBtYXhTZWdtZW50czogVFtdW11bXSA9IFtdXG4gICAgICAgIGxldCByZXN1bHRJdGVtczogVFtdID0gW11cbiAgICAgICAgd2hpbGUgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBiYXRjaCA9IGl0ZW1zLnNwbGljZSgwLCBiYXRjaFNpemUgKiBtYXhDb25jdXJyZW50U2VnbWVudHMpXG4gICAgICAgICAgICBsZXQgc2VnbWVudDogVFtdW10gPSBbXVxuICAgICAgICAgICAgd2hpbGUgKGJhdGNoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBzZWdtZW50LnB1c2goYmF0Y2guc3BsaWNlKDAsIGJhdGNoU2l6ZSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXhTZWdtZW50cy5wdXNoKHNlZ21lbnQpXG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBzZWdtZW50IG9mIG1heFNlZ21lbnRzKSB7XG4gICAgICAgICAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICAgICAgbGV0IHByb21pc2VzOiBQcm9taXNlPFRbXT5bXSA9IFtdXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgYmF0Y2ggbGVuZ3RoID0gJHtzZWdtZW50Lmxlbmd0aH1gKVxuICAgICAgICAgICAgZm9yIChjb25zdCBiYXRjaCBvZiBzZWdtZW50KSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmJhdGNoR2V0KGJhdGNoLCByZWFkQ29uc2lzdGVuY3kpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJzZWdtZW50IGNvbXBsZXRlXCIpXG4gICAgICAgICAgICByZXN1bHQuZm9yRWFjaCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0SXRlbXMgPSByZXN1bHRJdGVtcy5jb25jYXQocmVzKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGB0aW1lIGZvciBzZWdtZW50IGdldCAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhgdG90YWwgdGltZSBmb3IgY29tcGxldGUgcGFyYWxsZWwgZ2V0ICR7RGF0ZS5ub3coKSAtIHN0YXJ0VGltZX1gKVxuICAgICAgICByZXR1cm4gcmVzdWx0SXRlbXNcbiAgICB9XG4gICAgYXN5bmMgcGFyYWxsZWxRdWVyeShcbiAgICAgICAgdmFsdWVDb25zdHJ1Y3RvcjogWmVyb0FyZ3VtZW50c0NvbnN0cnVjdG9yPFQ+LFxuICAgICAgICBrZXlDb25kaXRpb25zOiBBcnJheTxDb25kaXRpb25FeHByZXNzaW9uIHwgeyBbcHJvcGVydHlOYW1lOiBzdHJpbmddOiBDb25kaXRpb25FeHByZXNzaW9uUHJlZGljYXRlIHwgYW55IH0+LFxuICAgICAgICBtYXhDb25jdXJyZW50Q2FsbHM6IG51bWJlciA9IDIwLFxuICAgICAgICBvcHRpb25zPzogUXVlcnlPcHRpb25zLFxuXG4gICAgKTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgICAgICBjb25zdCByZXN1bHRzOiBUW10gPSBbXVxuICAgICAgICB3aGlsZSAoa2V5Q29uZGl0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBzZWdtZW50Q29uZGl0aW9ucyA9IGtleUNvbmRpdGlvbnMuc3BsaWNlKDAsIG1heENvbmN1cnJlbnRDYWxscylcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UHJvbWlzZXMgPSBzZWdtZW50Q29uZGl0aW9ucy5tYXAoKGtleUNvbmRpdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmN1c3RvbVF1ZXJ5KHZhbHVlQ29uc3RydWN0b3IsIGtleUNvbmRpdGlvbiwgb3B0aW9ucylcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3QgcXVlcnlSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocXVlcnlQcm9taXNlcylcblxuICAgICAgICAgICAgZm9yIChjb25zdCBxdWVyeVJlc3VsdCBvZiBxdWVyeVJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goLi4ucXVlcnlSZXN1bHQpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coYHRvdGFsIHRpbWUgZm9yIGNvbXBsZXRlIHBhcmFsbGVsIHF1ZXJ5ICR7RGF0ZS5ub3coKSAtIHN0YXJ0VGltZX1gKVxuICAgICAgICByZXR1cm4gcmVzdWx0c1xuICAgIH1cbiAgICBwcml2YXRlIGFzeW5jIGN1c3RvbVF1ZXJ5KFxuICAgICAgICB2YWx1ZUNvbnN0cnVjdG9yOiBaZXJvQXJndW1lbnRzQ29uc3RydWN0b3I8VD4sXG4gICAgICAgIGtleUNvbmRpdGlvbnM6IENvbmRpdGlvbkV4cHJlc3Npb24gfCB7IFtwcm9wZXJ0eU5hbWU6IHN0cmluZ106IENvbmRpdGlvbkV4cHJlc3Npb25QcmVkaWNhdGUgfCBhbnkgfSxcbiAgICAgICAgb3B0aW9ucz86IFF1ZXJ5T3B0aW9uc1xuICAgICk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KClcbiAgICAgICAgY29uc3QgaXRlbXM6IFRbXSA9IFtdXG5cbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBpdGVtIG9mIG1hcHBlci5xdWVyeSh2YWx1ZUNvbnN0cnVjdG9yLCBrZXlDb25kaXRpb25zLCBvcHRpb25zKSkge1xuICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKGB0b3RhbCB0aW1lIGZvciBjb21wbGV0ZSBxdWVyeSAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9YClcblxuICAgICAgICByZXR1cm4gaXRlbXNcbiAgICB9XG4gICAgZGVjb2RlKGNvbnRpbnVhdGlvblRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGNvbnRpbnVhdGlvblRva2VuKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBsYXN0RXZhbHVhdGVkS2V5ID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShjb250aW51YXRpb25Ub2tlbiwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGY4JykpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSW5jb21pbmcgTGFzdCBFdmFsdWF0ZWQgS2V5IFwiICsgbGFzdEV2YWx1YXRlZEtleSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RFdmFsdWF0ZWRLZXk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb250aW51YXRpb25Ub2tlbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBhc3luYyBlbmNvZGUobGFzdEV2YWx1YXRlZEtleTogYW55KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGxhc3RFdmFsdWF0ZWRLZXkpKS50b1N0cmluZygnYmFzZTY0JylcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DynamoDB } from '@aws-sdk/client-dynamodb';
|
|
2
|
+
import { DataMapper } from '@nova-odm/mapper';
|
|
3
|
+
export declare class DatabaseFactory {
|
|
4
|
+
private static dynamoDBInstance;
|
|
5
|
+
private static mapperInstance;
|
|
6
|
+
static getDynamoDBClient(): DynamoDB;
|
|
7
|
+
static getDataMapper(): DataMapper;
|
|
8
|
+
static getTableName(baseTableName: string): string;
|
|
9
|
+
static resetInstances(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare const dynamoDB: DynamoDB;
|
|
12
|
+
export declare const mapper: DataMapper;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapper = exports.dynamoDB = exports.DatabaseFactory = void 0;
|
|
4
|
+
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
5
|
+
const mapper_1 = require("@nova-odm/mapper");
|
|
6
|
+
const environment_config_1 = require("./environment-config");
|
|
7
|
+
class DatabaseFactory {
|
|
8
|
+
static getDynamoDBClient() {
|
|
9
|
+
if (!DatabaseFactory.dynamoDBInstance) {
|
|
10
|
+
const config = environment_config_1.envManager.getDatabaseConfig();
|
|
11
|
+
const dynamoConfig = {
|
|
12
|
+
region: config.region,
|
|
13
|
+
maxAttempts: config.maxAttempts
|
|
14
|
+
};
|
|
15
|
+
// Add endpoint for local development
|
|
16
|
+
if (config.endpoint) {
|
|
17
|
+
dynamoConfig.endpoint = config.endpoint;
|
|
18
|
+
}
|
|
19
|
+
DatabaseFactory.dynamoDBInstance = new client_dynamodb_1.DynamoDB(dynamoConfig);
|
|
20
|
+
}
|
|
21
|
+
return DatabaseFactory.dynamoDBInstance;
|
|
22
|
+
}
|
|
23
|
+
static getDataMapper() {
|
|
24
|
+
if (!DatabaseFactory.mapperInstance) {
|
|
25
|
+
const client = DatabaseFactory.getDynamoDBClient();
|
|
26
|
+
DatabaseFactory.mapperInstance = new mapper_1.DataMapper({ client });
|
|
27
|
+
}
|
|
28
|
+
return DatabaseFactory.mapperInstance;
|
|
29
|
+
}
|
|
30
|
+
static getTableName(baseTableName) {
|
|
31
|
+
const config = environment_config_1.envManager.getDatabaseConfig();
|
|
32
|
+
return `${config.tablePrefix}${baseTableName}`;
|
|
33
|
+
}
|
|
34
|
+
static resetInstances() {
|
|
35
|
+
DatabaseFactory.dynamoDBInstance = undefined;
|
|
36
|
+
DatabaseFactory.mapperInstance = undefined;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.DatabaseFactory = DatabaseFactory;
|
|
40
|
+
// Export singleton instances for backward compatibility
|
|
41
|
+
exports.dynamoDB = DatabaseFactory.getDynamoDBClient();
|
|
42
|
+
exports.mapper = DatabaseFactory.getDataMapper();
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvZGF0YWJhc2UtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBb0Q7QUFDcEQsNkNBQThDO0FBQzlDLDZEQUFrRTtBQUVsRSxNQUFhLGVBQWU7SUFJakIsTUFBTSxDQUFDLGlCQUFpQjtRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsK0JBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBRTlDLE1BQU0sWUFBWSxHQUFRO2dCQUN0QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ3JCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVzthQUNsQyxDQUFDO1lBRUYscUNBQXFDO1lBQ3JDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixZQUFZLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDNUMsQ0FBQztZQUVELGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLDBCQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDLGdCQUFnQixDQUFDO0lBQzVDLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYTtRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ25ELGVBQWUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxtQkFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxlQUFlLENBQUMsY0FBYyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQXFCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLCtCQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWM7UUFDeEIsZUFBZSxDQUFDLGdCQUFnQixHQUFHLFNBQWdCLENBQUM7UUFDcEQsZUFBZSxDQUFDLGNBQWMsR0FBRyxTQUFnQixDQUFDO0lBQ3RELENBQUM7Q0FDSjtBQTFDRCwwQ0EwQ0M7QUFFRCx3REFBd0Q7QUFDM0MsUUFBQSxRQUFRLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixFQUFFLENBQUM7QUFDL0MsUUFBQSxNQUFNLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1vREIgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZHluYW1vZGInO1xuaW1wb3J0IHsgRGF0YU1hcHBlciB9IGZyb20gJ0Bub3ZhLW9kbS9tYXBwZXInO1xuaW1wb3J0IHsgZW52TWFuYWdlciwgRGF0YWJhc2VDb25maWcgfSBmcm9tICcuL2Vudmlyb25tZW50LWNvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZUZhY3Rvcnkge1xuICAgIHByaXZhdGUgc3RhdGljIGR5bmFtb0RCSW5zdGFuY2U6IER5bmFtb0RCO1xuICAgIHByaXZhdGUgc3RhdGljIG1hcHBlckluc3RhbmNlOiBEYXRhTWFwcGVyO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXREeW5hbW9EQkNsaWVudCgpOiBEeW5hbW9EQiB7XG4gICAgICAgIGlmICghRGF0YWJhc2VGYWN0b3J5LmR5bmFtb0RCSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGVudk1hbmFnZXIuZ2V0RGF0YWJhc2VDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3QgZHluYW1vQ29uZmlnOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcucmVnaW9uLFxuICAgICAgICAgICAgICAgIG1heEF0dGVtcHRzOiBjb25maWcubWF4QXR0ZW1wdHNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIEFkZCBlbmRwb2ludCBmb3IgbG9jYWwgZGV2ZWxvcG1lbnRcbiAgICAgICAgICAgIGlmIChjb25maWcuZW5kcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBkeW5hbW9Db25maWcuZW5kcG9pbnQgPSBjb25maWcuZW5kcG9pbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIERhdGFiYXNlRmFjdG9yeS5keW5hbW9EQkluc3RhbmNlID0gbmV3IER5bmFtb0RCKGR5bmFtb0NvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gRGF0YWJhc2VGYWN0b3J5LmR5bmFtb0RCSW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXREYXRhTWFwcGVyKCk6IERhdGFNYXBwZXIge1xuICAgICAgICBpZiAoIURhdGFiYXNlRmFjdG9yeS5tYXBwZXJJbnN0YW5jZSkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gRGF0YWJhc2VGYWN0b3J5LmdldER5bmFtb0RCQ2xpZW50KCk7XG4gICAgICAgICAgICBEYXRhYmFzZUZhY3RvcnkubWFwcGVySW5zdGFuY2UgPSBuZXcgRGF0YU1hcHBlcih7IGNsaWVudCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBEYXRhYmFzZUZhY3RvcnkubWFwcGVySW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRUYWJsZU5hbWUoYmFzZVRhYmxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gZW52TWFuYWdlci5nZXREYXRhYmFzZUNvbmZpZygpO1xuICAgICAgICByZXR1cm4gYCR7Y29uZmlnLnRhYmxlUHJlZml4fSR7YmFzZVRhYmxlTmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVzZXRJbnN0YW5jZXMoKTogdm9pZCB7XG4gICAgICAgIERhdGFiYXNlRmFjdG9yeS5keW5hbW9EQkluc3RhbmNlID0gdW5kZWZpbmVkIGFzIGFueTtcbiAgICAgICAgRGF0YWJhc2VGYWN0b3J5Lm1hcHBlckluc3RhbmNlID0gdW5kZWZpbmVkIGFzIGFueTtcbiAgICB9XG59XG5cbi8vIEV4cG9ydCBzaW5nbGV0b24gaW5zdGFuY2VzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG5leHBvcnQgY29uc3QgZHluYW1vREIgPSBEYXRhYmFzZUZhY3RvcnkuZ2V0RHluYW1vREJDbGllbnQoKTtcbmV4cG9ydCBjb25zdCBtYXBwZXIgPSBEYXRhYmFzZUZhY3RvcnkuZ2V0RGF0YU1hcHBlcigpO1xuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type Environment = 'DEV' | 'PRODDEBUG' | 'PROD' | 'test';
|
|
2
|
+
export interface DatabaseConfig {
|
|
3
|
+
region: string;
|
|
4
|
+
endpoint?: string;
|
|
5
|
+
maxAttempts: number;
|
|
6
|
+
tablePrefix: string;
|
|
7
|
+
enableLogging: boolean;
|
|
8
|
+
readConsistency: 'eventual' | 'strong';
|
|
9
|
+
}
|
|
10
|
+
export interface EnvironmentConfig {
|
|
11
|
+
environment: Environment;
|
|
12
|
+
database: DatabaseConfig;
|
|
13
|
+
features: {
|
|
14
|
+
enableParallelProcessing: boolean;
|
|
15
|
+
enableBatchOperations: boolean;
|
|
16
|
+
enableCaching: boolean;
|
|
17
|
+
};
|
|
18
|
+
monitoring: {
|
|
19
|
+
enableMetrics: boolean;
|
|
20
|
+
logLevel: 'debug' | 'info' | 'warn' | 'error';
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare class EnvironmentManager {
|
|
24
|
+
private static instance;
|
|
25
|
+
private currentConfig;
|
|
26
|
+
private constructor();
|
|
27
|
+
static getInstance(): EnvironmentManager;
|
|
28
|
+
private loadEnvironmentConfig;
|
|
29
|
+
getConfig(): EnvironmentConfig;
|
|
30
|
+
getDatabaseConfig(): DatabaseConfig;
|
|
31
|
+
getEnvironment(): Environment;
|
|
32
|
+
isDEV(): boolean;
|
|
33
|
+
isPROD(): boolean;
|
|
34
|
+
isPRODDEBUG(): boolean;
|
|
35
|
+
isTest(): boolean;
|
|
36
|
+
setEnvironment(environment: Environment): void;
|
|
37
|
+
}
|
|
38
|
+
export declare const envManager: EnvironmentManager;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.envManager = exports.EnvironmentManager = void 0;
|
|
4
|
+
// Environment-specific configurations
|
|
5
|
+
const environmentConfigs = {
|
|
6
|
+
DEV: {
|
|
7
|
+
environment: 'DEV',
|
|
8
|
+
database: {
|
|
9
|
+
region: 'us-east-1',
|
|
10
|
+
endpoint: 'http://localhost:8000', // Local DynamoDB
|
|
11
|
+
maxAttempts: 3,
|
|
12
|
+
tablePrefix: 'dev-',
|
|
13
|
+
enableLogging: true,
|
|
14
|
+
readConsistency: 'eventual'
|
|
15
|
+
},
|
|
16
|
+
features: {
|
|
17
|
+
enableParallelProcessing: false,
|
|
18
|
+
enableBatchOperations: true,
|
|
19
|
+
enableCaching: false
|
|
20
|
+
},
|
|
21
|
+
monitoring: {
|
|
22
|
+
enableMetrics: false,
|
|
23
|
+
logLevel: 'debug'
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
PRODDEBUG: {
|
|
27
|
+
environment: 'PRODDEBUG',
|
|
28
|
+
database: {
|
|
29
|
+
region: 'us-east-1',
|
|
30
|
+
maxAttempts: 5,
|
|
31
|
+
tablePrefix: 'proddebug-',
|
|
32
|
+
enableLogging: true,
|
|
33
|
+
readConsistency: 'eventual'
|
|
34
|
+
},
|
|
35
|
+
features: {
|
|
36
|
+
enableParallelProcessing: true,
|
|
37
|
+
enableBatchOperations: true,
|
|
38
|
+
enableCaching: true
|
|
39
|
+
},
|
|
40
|
+
monitoring: {
|
|
41
|
+
enableMetrics: true,
|
|
42
|
+
logLevel: 'info'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
PROD: {
|
|
46
|
+
environment: 'PROD',
|
|
47
|
+
database: {
|
|
48
|
+
region: 'us-east-1',
|
|
49
|
+
maxAttempts: 10,
|
|
50
|
+
tablePrefix: '',
|
|
51
|
+
enableLogging: false,
|
|
52
|
+
readConsistency: 'strong'
|
|
53
|
+
},
|
|
54
|
+
features: {
|
|
55
|
+
enableParallelProcessing: true,
|
|
56
|
+
enableBatchOperations: true,
|
|
57
|
+
enableCaching: true
|
|
58
|
+
},
|
|
59
|
+
monitoring: {
|
|
60
|
+
enableMetrics: true,
|
|
61
|
+
logLevel: 'warn'
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
test: {
|
|
65
|
+
environment: 'test',
|
|
66
|
+
database: {
|
|
67
|
+
region: 'us-east-1',
|
|
68
|
+
endpoint: 'http://localhost:8000',
|
|
69
|
+
maxAttempts: 1,
|
|
70
|
+
tablePrefix: 'test-',
|
|
71
|
+
enableLogging: false,
|
|
72
|
+
readConsistency: 'eventual'
|
|
73
|
+
},
|
|
74
|
+
features: {
|
|
75
|
+
enableParallelProcessing: false,
|
|
76
|
+
enableBatchOperations: false,
|
|
77
|
+
enableCaching: false
|
|
78
|
+
},
|
|
79
|
+
monitoring: {
|
|
80
|
+
enableMetrics: false,
|
|
81
|
+
logLevel: 'error'
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
class EnvironmentManager {
|
|
86
|
+
constructor() {
|
|
87
|
+
this.currentConfig = this.loadEnvironmentConfig();
|
|
88
|
+
}
|
|
89
|
+
static getInstance() {
|
|
90
|
+
if (!EnvironmentManager.instance) {
|
|
91
|
+
EnvironmentManager.instance = new EnvironmentManager();
|
|
92
|
+
}
|
|
93
|
+
return EnvironmentManager.instance;
|
|
94
|
+
}
|
|
95
|
+
loadEnvironmentConfig() {
|
|
96
|
+
// Priority order: NODE_ENV -> ENVIRONMENT -> default to DEV
|
|
97
|
+
const env = (process.env.NODE_ENV || process.env.ENVIRONMENT || 'DEV');
|
|
98
|
+
if (!environmentConfigs[env]) {
|
|
99
|
+
console.warn(`Unknown environment: ${env}. Falling back to DEV.`);
|
|
100
|
+
return environmentConfigs.DEV;
|
|
101
|
+
}
|
|
102
|
+
return environmentConfigs[env];
|
|
103
|
+
}
|
|
104
|
+
getConfig() {
|
|
105
|
+
return this.currentConfig;
|
|
106
|
+
}
|
|
107
|
+
getDatabaseConfig() {
|
|
108
|
+
return this.currentConfig.database;
|
|
109
|
+
}
|
|
110
|
+
getEnvironment() {
|
|
111
|
+
return this.currentConfig.environment;
|
|
112
|
+
}
|
|
113
|
+
isDEV() {
|
|
114
|
+
return this.currentConfig.environment === 'DEV';
|
|
115
|
+
}
|
|
116
|
+
isPROD() {
|
|
117
|
+
return this.currentConfig.environment === 'PROD';
|
|
118
|
+
}
|
|
119
|
+
isPRODDEBUG() {
|
|
120
|
+
return this.currentConfig.environment === 'PRODDEBUG';
|
|
121
|
+
}
|
|
122
|
+
isTest() {
|
|
123
|
+
return this.currentConfig.environment === 'test';
|
|
124
|
+
}
|
|
125
|
+
// Method to override environment at runtime (useful for testing)
|
|
126
|
+
setEnvironment(environment) {
|
|
127
|
+
this.currentConfig = environmentConfigs[environment];
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.EnvironmentManager = EnvironmentManager;
|
|
131
|
+
// Export singleton instance
|
|
132
|
+
exports.envManager = EnvironmentManager.getInstance();
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9lbnZpcm9ubWVudC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUJBLHNDQUFzQztBQUN0QyxNQUFNLGtCQUFrQixHQUEyQztJQUMvRCxHQUFHLEVBQUU7UUFDRCxXQUFXLEVBQUUsS0FBSztRQUNsQixRQUFRLEVBQUU7WUFDTixNQUFNLEVBQUUsV0FBVztZQUNuQixRQUFRLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCO1lBQ3BELFdBQVcsRUFBRSxDQUFDO1lBQ2QsV0FBVyxFQUFFLE1BQU07WUFDbkIsYUFBYSxFQUFFLElBQUk7WUFDbkIsZUFBZSxFQUFFLFVBQVU7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTix3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLHFCQUFxQixFQUFFLElBQUk7WUFDM0IsYUFBYSxFQUFFLEtBQUs7U0FDdkI7UUFDRCxVQUFVLEVBQUU7WUFDUixhQUFhLEVBQUUsS0FBSztZQUNwQixRQUFRLEVBQUUsT0FBTztTQUNwQjtLQUNKO0lBQ0QsU0FBUyxFQUFFO1FBQ1AsV0FBVyxFQUFFLFdBQVc7UUFDeEIsUUFBUSxFQUFFO1lBQ04sTUFBTSxFQUFFLFdBQVc7WUFDbkIsV0FBVyxFQUFFLENBQUM7WUFDZCxXQUFXLEVBQUUsWUFBWTtZQUN6QixhQUFhLEVBQUUsSUFBSTtZQUNuQixlQUFlLEVBQUUsVUFBVTtTQUM5QjtRQUNELFFBQVEsRUFBRTtZQUNOLHdCQUF3QixFQUFFLElBQUk7WUFDOUIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixhQUFhLEVBQUUsSUFBSTtTQUN0QjtRQUNELFVBQVUsRUFBRTtZQUNSLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFFBQVEsRUFBRSxNQUFNO1NBQ25CO0tBQ0o7SUFDRCxJQUFJLEVBQUU7UUFDRixXQUFXLEVBQUUsTUFBTTtRQUNuQixRQUFRLEVBQUU7WUFDTixNQUFN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LEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEVudmlyb25tZW50ID0gJ0RFVicgfCAnUFJPRERFQlVHJyB8ICdQUk9EJyB8ICd0ZXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUNvbmZpZyB7XG4gICAgcmVnaW9uOiBzdHJpbmc7XG4gICAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gICAgbWF4QXR0ZW1wdHM6IG51bWJlcjtcbiAgICB0YWJsZVByZWZpeDogc3RyaW5nO1xuICAgIGVuYWJsZUxvZ2dpbmc6IGJvb2xlYW47XG4gICAgcmVhZENvbnNpc3RlbmN5OiAnZXZlbnR1YWwnIHwgJ3N0cm9uZyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRDb25maWcge1xuICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcbiAgICBkYXRhYmFzZTogRGF0YWJhc2VDb25maWc7XG4gICAgZmVhdHVyZXM6IHtcbiAgICAgICAgZW5hYmxlUGFyYWxsZWxQcm9jZXNzaW5nOiBib29sZWFuO1xuICAgICAgICBlbmFibGVCYXRjaE9wZXJhdGlvbnM6IGJvb2xlYW47XG4gICAgICAgIGVuYWJsZUNhY2hpbmc6IGJvb2xlYW47XG4gICAgfTtcbiAgICBtb25pdG9yaW5nOiB7XG4gICAgICAgIGVuYWJsZU1ldHJpY3M6IGJvb2xlYW47XG4gICAgICAgIGxvZ0xldmVsOiAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJztcbiAgICB9O1xufVxuXG4vLyBFbnZpcm9ubWVudC1zcGVjaWZpYyBjb25maWd1cmF0aW9uc1xuY29uc3QgZW52aXJvbm1lbnRDb25maWdzOiBSZWNvcmQ8RW52aXJvbm1lbnQsIEVudmlyb25tZW50Q29uZmlnPiA9IHtcbiAgICBERVY6IHtcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdERVYnLFxuICAgICAgICBkYXRhYmFzZToge1xuICAgICAgICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICAgICAgICAgIGVuZHBvaW50OiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJywgLy8gTG9jYWwgRHluYW1vREJcbiAgICAgICAgICAgIG1heEF0dGVtcHRzOiAzLFxuICAgICAgICAgICAgdGFibGVQcmVmaXg6ICdkZXYtJyxcbiAgICAgICAgICAgIGVuYWJsZUxvZ2dpbmc6IHRydWUsXG4gICAgICAgICAgICByZWFkQ29uc2lzdGVuY3k6ICdldmVudHVhbCdcbiAgICAgICAgfSxcbiAgICAgICAgZmVhdHVyZXM6IHtcbiAgICAgICAgICAgIGVuYWJsZVBhcmFsbGVsUHJvY2Vzc2luZzogZmFsc2UsXG4gICAgICAgICAgICBlbmFibGVCYXRjaE9wZXJhdGlvbnM6IHRydWUsXG4gICAgICAgICAgICBlbmFibGVDYWNoaW5nOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBtb25pdG9yaW5nOiB7XG4gICAgICAgICAgICBlbmFibGVNZXRyaWNzOiBmYWxzZSxcbiAgICAgICAgICAgIGxvZ0xldmVsOiAnZGVidWcnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFBST0RERUJVRzoge1xuICAgICAgICBlbnZpcm9ubWVudDogJ1BST0RERUJVRycsXG4gICAgICAgIGRhdGFiYXNlOiB7XG4gICAgICAgICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgICAgICAgICAgbWF4QXR0ZW1wdHM6IDUsXG4gICAgICAgICAgICB0YWJsZVByZWZpeDogJ3Byb2RkZWJ1Zy0nLFxuICAgICAgICAgICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcbiAgICAgICAgICAgIHJlYWRDb25zaXN0ZW5jeTogJ2V2ZW50dWFsJ1xuICAgICAgICB9LFxuICAgICAgICBmZWF0dXJlczoge1xuICAgICAgICAgICAgZW5hYmxlUGFyYWxsZWxQcm9jZXNzaW5nOiB0cnVlLFxuICAgICAgICAgICAgZW5hYmxlQmF0Y2hPcGVyYXRpb25zOiB0cnVlLFxuICAgICAgICAgICAgZW5hYmxlQ2FjaGluZzogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBtb25pdG9yaW5nOiB7XG4gICAgICAgICAgICBlbmFibGVNZXRyaWNzOiB0cnVlLFxuICAgICAgICAgICAgbG9nTGV2ZWw6ICdpbmZvJ1xuICAgICAgICB9XG4gICAgfSxcbiAgICBQUk9EOiB7XG4gICAgICAgIGVudmlyb25tZW50OiAnUFJPRCcsXG4gICAgICAgIGRhdGFiYXNlOiB7XG4gICAgICAgICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgICAgICAgICAgbWF4QXR0ZW1wdHM6IDEwLFxuICAgICAgICAgICAgdGFibGVQcmVmaXg6ICcnLFxuICAgICAgICAgICAgZW5hYmxlTG9nZ2luZzogZmFsc2UsXG4gICAgICAgICAgICByZWFkQ29uc2lzdGVuY3k6ICdzdHJvbmcnXG4gICAgICAgIH0sXG4gICAgICAgIGZlYXR1cmVzOiB7XG4gICAgICAgICAgICBlbmFibGVQYXJhbGxlbFByb2Nlc3Npbmc6IHRydWUsXG4gICAgICAgICAgICBlbmFibGVCYXRjaE9wZXJhdGlvbnM6IHRydWUsXG4gICAgICAgICAgICBlbmFibGVDYWNoaW5nOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIG1vbml0b3Jpbmc6IHtcbiAgICAgICAgICAgIGVuYWJsZU1ldHJpY3M6IHRydWUsXG4gICAgICAgICAgICBsb2dMZXZlbDogJ3dhcm4nXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHRlc3Q6IHtcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgICAgZGF0YWJhc2U6IHtcbiAgICAgICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICAgICAgICBlbmRwb2ludDogJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMCcsXG4gICAgICAgICAgICBtYXhBdHRlbXB0czogMSxcbiAgICAgICAgICAgIHRhYmxlUHJlZml4OiAndGVzdC0nLFxuICAgICAgICAgICAgZW5hYmxlTG9nZ2luZzogZmFsc2UsXG4gICAgICAgICAgICByZWFkQ29uc2lzdGVuY3k6ICdldmVudHVhbCdcbiAgICAgICAgfSxcbiAgICAgICAgZmVhdHVyZXM6IHtcbiAgICAgICAgICAgIGVuYWJsZVBhcmFsbGVsUHJvY2Vzc2luZzogZmFsc2UsXG4gICAgICAgICAgICBlbmFibGVCYXRjaE9wZXJhdGlvbnM6IGZhbHNlLFxuICAgICAgICAgICAgZW5hYmxlQ2FjaGluZzogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgbW9uaXRvcmluZzoge1xuICAgICAgICAgICAgZW5hYmxlTWV0cmljczogZmFsc2UsXG4gICAgICAgICAgICBsb2dMZXZlbDogJ2Vycm9yJ1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50TWFuYWdlciB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U6IEVudmlyb25tZW50TWFuYWdlcjtcbiAgICBwcml2YXRlIGN1cnJlbnRDb25maWc6IEVudmlyb25tZW50Q29uZmlnO1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50Q29uZmlnID0gdGhpcy5sb2FkRW52aXJvbm1lbnRDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEluc3RhbmNlKCk6IEVudmlyb25tZW50TWFuYWdlciB7XG4gICAgICAgIGlmICghRW52aXJvbm1lbnRNYW5hZ2VyLmluc3RhbmNlKSB7XG4gICAgICAgICAgICBFbnZpcm9ubWVudE1hbmFnZXIuaW5zdGFuY2UgPSBuZXcgRW52aXJvbm1lbnRNYW5hZ2VyKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50TWFuYWdlci5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRFbnZpcm9ubWVudENvbmZpZygpOiBFbnZpcm9ubWVudENvbmZpZyB7XG4gICAgICAgIC8vIFByaW9yaXR5IG9yZGVyOiBOT0RFX0VOViAtPiBFTlZJUk9OTUVOVCAtPiBkZWZhdWx0IHRvIERFVlxuICAgICAgICBjb25zdCBlbnYgPSAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlQgfHwgJ0RFVicpIGFzIEVudmlyb25tZW50O1xuXG4gICAgICAgIGlmICghZW52aXJvbm1lbnRDb25maWdzW2Vudl0pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBlbnZpcm9ubWVudDogJHtlbnZ9LiBGYWxsaW5nIGJhY2sgdG8gREVWLmApO1xuICAgICAgICAgICAgcmV0dXJuIGVudmlyb25tZW50Q29uZmlncy5ERVY7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZW52aXJvbm1lbnRDb25maWdzW2Vudl07XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmZpZygpOiBFbnZpcm9ubWVudENvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRDb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERhdGFiYXNlQ29uZmlnKCk6IERhdGFiYXNlQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudENvbmZpZy5kYXRhYmFzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RW52aXJvbm1lbnQoKTogRW52aXJvbm1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Q29uZmlnLmVudmlyb25tZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RFVigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudENvbmZpZy5lbnZpcm9ubWVudCA9PT0gJ0RFVic7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUFJPRCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudENvbmZpZy5lbnZpcm9ubWVudCA9PT0gJ1BST0QnO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1BST0RERUJVRygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudENvbmZpZy5lbnZpcm9ubWVudCA9PT0gJ1BST0RERUJVRyc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVGVzdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudENvbmZpZy5lbnZpcm9ubWVudCA9PT0gJ3Rlc3QnO1xuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBvdmVycmlkZSBlbnZpcm9ubWVudCBhdCBydW50aW1lICh1c2VmdWwgZm9yIHRlc3RpbmcpXG4gICAgcHVibGljIHNldEVudmlyb25tZW50KGVudmlyb25tZW50OiBFbnZpcm9ubWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb25maWcgPSBlbnZpcm9ubWVudENvbmZpZ3NbZW52aXJvbm1lbnRdO1xuICAgIH1cbn1cblxuLy8gRXhwb3J0IHNpbmdsZXRvbiBpbnN0YW5jZVxuZXhwb3J0IGNvbnN0IGVudk1hbmFnZXIgPSBFbnZpcm9ubWVudE1hbmFnZXIuZ2V0SW5zdGFuY2UoKTtcbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Export all configuration modules
|
|
18
|
+
__exportStar(require("./environment-config"), exports);
|
|
19
|
+
__exportStar(require("./database-factory"), exports);
|
|
20
|
+
__exportStar(require("./table-names"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsdURBQXFDO0FBQ3JDLHFEQUFtQztBQUNuQyxnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnQgYWxsIGNvbmZpZ3VyYXRpb24gbW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhYmFzZS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtbmFtZXMnO1xuIl19
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export declare const BASE_TABLE_NAMES: {
|
|
2
|
+
readonly APP_FEEDBACK: "AppFeedbackTable";
|
|
3
|
+
readonly LSQ_CRM: "LsqCrmTable";
|
|
4
|
+
readonly CUTLERY: "CutleryTable";
|
|
5
|
+
readonly ITEM_ACCOMPANIMENTS: "ItemAccompanimentsTable";
|
|
6
|
+
readonly CUISINE: "CuisineTable";
|
|
7
|
+
readonly TIER_DETAILS: "TierDetailsTable";
|
|
8
|
+
readonly USER_ORDER_SUMMARY: "UserOrderSummaryTable";
|
|
9
|
+
readonly TIER_REFERRAL: "TierReferralTable";
|
|
10
|
+
readonly USER_ADDRESS_REQUEST: "UserAddressRequestTable";
|
|
11
|
+
readonly COMMON_FEEDBACK: "CommonFeedbackTable";
|
|
12
|
+
readonly GUEST_FEEDBACK: "GuestFeedbackTable";
|
|
13
|
+
readonly COUNTER: "CounterTable";
|
|
14
|
+
readonly REQUEST_INVOICE: "RequestInvoiceTable";
|
|
15
|
+
readonly PLATTER_SEARCH_EVENTS: "PlatterSearchEventsTable";
|
|
16
|
+
readonly ORDER_REVIEW_FEEDBACK: "OrderReviewFeedbackTable";
|
|
17
|
+
readonly CATERING_REQUEST: "CateringRequestTable";
|
|
18
|
+
readonly ORDER: "OrderTable";
|
|
19
|
+
readonly ORDER_ADDRESS: "OrderAddressTable";
|
|
20
|
+
readonly ORDER_REVIEW: "OrderReviewTable";
|
|
21
|
+
readonly PAYMENT: "PaymentTable";
|
|
22
|
+
readonly PLATE_ORDER: "PlateOrderTable";
|
|
23
|
+
readonly TRACKING: "TrackingTable";
|
|
24
|
+
readonly USER_ADDRESS: "UserAddressTable";
|
|
25
|
+
readonly ADD_ONS: "AddOnsTable";
|
|
26
|
+
readonly BANK_DETAILS: "BankDetailsTable";
|
|
27
|
+
readonly CART: "CartTable";
|
|
28
|
+
readonly CART_CATEGORIES: "CartCategoriesTable";
|
|
29
|
+
readonly CATEGORY: "CategoryTable";
|
|
30
|
+
readonly CATERING: "CateringTable";
|
|
31
|
+
readonly CONTENT: "ContentTable";
|
|
32
|
+
readonly COUPONS: "CouponsTable";
|
|
33
|
+
readonly DEFAULT_PLATTER: "DefaultPlatterTable";
|
|
34
|
+
readonly DEFAULT_PLATTER_CATEGORIES: "DefaultPlatterCategoriesTable";
|
|
35
|
+
readonly DEFAULT_PLATTER_ITEMS: "DefaultPlatterItemsTable";
|
|
36
|
+
readonly EVENT_EXECUTIVES: "EventExecutivesTable";
|
|
37
|
+
readonly ITEMS: "ItemsTable";
|
|
38
|
+
readonly LEAD: "LeadTable";
|
|
39
|
+
readonly OCCASION: "OccasionTable";
|
|
40
|
+
readonly REFERRAL_CONTENT: "ReferralContentTable";
|
|
41
|
+
readonly USER: "UserTable";
|
|
42
|
+
readonly WALLET: "WalletTable";
|
|
43
|
+
readonly WALLET_TRANSACTION: "WalletTransactionTable";
|
|
44
|
+
readonly WITHDRAWN: "WithdrawnTable";
|
|
45
|
+
readonly INTERNAL_USER: "InternalUserTable";
|
|
46
|
+
readonly ACTIVITY_LOGS: "ActivityLogsTable";
|
|
47
|
+
readonly QUOTATIONS: "QuotationsTable";
|
|
48
|
+
};
|
|
49
|
+
export declare class TableNameManager {
|
|
50
|
+
static getTableName(baseTableName: string): string;
|
|
51
|
+
static getAllTableNames(): Record<string, string>;
|
|
52
|
+
}
|
|
53
|
+
export declare const TABLE_NAMES: {
|
|
54
|
+
readonly APP_FEEDBACK: string;
|
|
55
|
+
readonly LSQ_CRM: string;
|
|
56
|
+
readonly CUTLERY: string;
|
|
57
|
+
readonly ITEM_ACCOMPANIMENTS: string;
|
|
58
|
+
readonly CUISINE: string;
|
|
59
|
+
readonly TIER_DETAILS: string;
|
|
60
|
+
readonly USER_ORDER_SUMMARY: string;
|
|
61
|
+
readonly TIER_REFERRAL: string;
|
|
62
|
+
readonly USER_ADDRESS_REQUEST: string;
|
|
63
|
+
readonly COMMON_FEEDBACK: string;
|
|
64
|
+
readonly GUEST_FEEDBACK: string;
|
|
65
|
+
readonly COUNTER: string;
|
|
66
|
+
readonly REQUEST_INVOICE: string;
|
|
67
|
+
readonly PLATTER_SEARCH_EVENTS: string;
|
|
68
|
+
readonly ORDER_REVIEW_FEEDBACK: string;
|
|
69
|
+
readonly CATERING_REQUEST: string;
|
|
70
|
+
readonly ORDER: string;
|
|
71
|
+
readonly ORDER_ADDRESS: string;
|
|
72
|
+
readonly ORDER_REVIEW: string;
|
|
73
|
+
readonly PAYMENT: string;
|
|
74
|
+
readonly PLATE_ORDER: string;
|
|
75
|
+
readonly TRACKING: string;
|
|
76
|
+
readonly USER_ADDRESS: string;
|
|
77
|
+
readonly ADD_ONS: string;
|
|
78
|
+
readonly BANK_DETAILS: string;
|
|
79
|
+
readonly CART: string;
|
|
80
|
+
readonly CART_CATEGORIES: string;
|
|
81
|
+
readonly CATEGORY: string;
|
|
82
|
+
readonly CATERING: string;
|
|
83
|
+
readonly CONTENT: string;
|
|
84
|
+
readonly COUPONS: string;
|
|
85
|
+
readonly DEFAULT_PLATTER: string;
|
|
86
|
+
readonly DEFAULT_PLATTER_CATEGORIES: string;
|
|
87
|
+
readonly DEFAULT_PLATTER_ITEMS: string;
|
|
88
|
+
readonly EVENT_EXECUTIVES: string;
|
|
89
|
+
readonly ITEMS: string;
|
|
90
|
+
readonly LEAD: string;
|
|
91
|
+
readonly OCCASION: string;
|
|
92
|
+
readonly REFERRAL_CONTENT: string;
|
|
93
|
+
readonly USER: string;
|
|
94
|
+
readonly WALLET: string;
|
|
95
|
+
readonly WALLET_TRANSACTION: string;
|
|
96
|
+
readonly WITHDRAWN: string;
|
|
97
|
+
readonly INTERNAL_USER: string;
|
|
98
|
+
readonly ACTIVITY_LOGS: string;
|
|
99
|
+
readonly QUOTATIONS: string;
|
|
100
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TABLE_NAMES = exports.TableNameManager = exports.BASE_TABLE_NAMES = void 0;
|
|
4
|
+
const database_factory_1 = require("./database-factory");
|
|
5
|
+
// Base table names (without environment prefix)
|
|
6
|
+
exports.BASE_TABLE_NAMES = {
|
|
7
|
+
// Customer App Tables
|
|
8
|
+
APP_FEEDBACK: 'AppFeedbackTable',
|
|
9
|
+
LSQ_CRM: 'LsqCrmTable',
|
|
10
|
+
CUTLERY: 'CutleryTable',
|
|
11
|
+
ITEM_ACCOMPANIMENTS: 'ItemAccompanimentsTable',
|
|
12
|
+
CUISINE: 'CuisineTable',
|
|
13
|
+
TIER_DETAILS: 'TierDetailsTable',
|
|
14
|
+
USER_ORDER_SUMMARY: 'UserOrderSummaryTable',
|
|
15
|
+
TIER_REFERRAL: 'TierReferralTable',
|
|
16
|
+
USER_ADDRESS_REQUEST: 'UserAddressRequestTable',
|
|
17
|
+
COMMON_FEEDBACK: 'CommonFeedbackTable',
|
|
18
|
+
GUEST_FEEDBACK: 'GuestFeedbackTable',
|
|
19
|
+
COUNTER: 'CounterTable',
|
|
20
|
+
REQUEST_INVOICE: 'RequestInvoiceTable',
|
|
21
|
+
PLATTER_SEARCH_EVENTS: 'PlatterSearchEventsTable',
|
|
22
|
+
ORDER_REVIEW_FEEDBACK: 'OrderReviewFeedbackTable',
|
|
23
|
+
CATERING_REQUEST: 'CateringRequestTable',
|
|
24
|
+
// Order Module Tables
|
|
25
|
+
ORDER: 'OrderTable',
|
|
26
|
+
ORDER_ADDRESS: 'OrderAddressTable',
|
|
27
|
+
ORDER_REVIEW: 'OrderReviewTable',
|
|
28
|
+
PAYMENT: 'PaymentTable',
|
|
29
|
+
PLATE_ORDER: 'PlateOrderTable',
|
|
30
|
+
TRACKING: 'TrackingTable',
|
|
31
|
+
USER_ADDRESS: 'UserAddressTable',
|
|
32
|
+
// Other Customer Tables
|
|
33
|
+
ADD_ONS: 'AddOnsTable',
|
|
34
|
+
BANK_DETAILS: 'BankDetailsTable',
|
|
35
|
+
CART: 'CartTable',
|
|
36
|
+
CART_CATEGORIES: 'CartCategoriesTable',
|
|
37
|
+
CATEGORY: 'CategoryTable',
|
|
38
|
+
CATERING: 'CateringTable',
|
|
39
|
+
CONTENT: 'ContentTable',
|
|
40
|
+
COUPONS: 'CouponsTable',
|
|
41
|
+
DEFAULT_PLATTER: 'DefaultPlatterTable',
|
|
42
|
+
DEFAULT_PLATTER_CATEGORIES: 'DefaultPlatterCategoriesTable',
|
|
43
|
+
DEFAULT_PLATTER_ITEMS: 'DefaultPlatterItemsTable',
|
|
44
|
+
EVENT_EXECUTIVES: 'EventExecutivesTable',
|
|
45
|
+
ITEMS: 'ItemsTable',
|
|
46
|
+
LEAD: 'LeadTable',
|
|
47
|
+
OCCASION: 'OccasionTable',
|
|
48
|
+
REFERRAL_CONTENT: 'ReferralContentTable',
|
|
49
|
+
USER: 'UserTable',
|
|
50
|
+
WALLET: 'WalletTable',
|
|
51
|
+
WALLET_TRANSACTION: 'WalletTransactionTable',
|
|
52
|
+
WITHDRAWN: 'WithdrawnTable',
|
|
53
|
+
// Internal User Tables
|
|
54
|
+
INTERNAL_USER: 'InternalUserTable',
|
|
55
|
+
ACTIVITY_LOGS: 'ActivityLogsTable',
|
|
56
|
+
QUOTATIONS: 'QuotationsTable'
|
|
57
|
+
};
|
|
58
|
+
// Environment-aware table name getter
|
|
59
|
+
class TableNameManager {
|
|
60
|
+
static getTableName(baseTableName) {
|
|
61
|
+
return database_factory_1.DatabaseFactory.getTableName(baseTableName);
|
|
62
|
+
}
|
|
63
|
+
static getAllTableNames() {
|
|
64
|
+
const tableNames = {};
|
|
65
|
+
Object.entries(exports.BASE_TABLE_NAMES).forEach(([key, value]) => {
|
|
66
|
+
tableNames[key] = this.getTableName(value);
|
|
67
|
+
});
|
|
68
|
+
return tableNames;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.TableNameManager = TableNameManager;
|
|
72
|
+
// Export environment-aware table names
|
|
73
|
+
exports.TABLE_NAMES = {
|
|
74
|
+
// Customer App Tables
|
|
75
|
+
APP_FEEDBACK: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.APP_FEEDBACK),
|
|
76
|
+
LSQ_CRM: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.LSQ_CRM),
|
|
77
|
+
CUTLERY: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CUTLERY),
|
|
78
|
+
ITEM_ACCOMPANIMENTS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ITEM_ACCOMPANIMENTS),
|
|
79
|
+
CUISINE: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CUISINE),
|
|
80
|
+
TIER_DETAILS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.TIER_DETAILS),
|
|
81
|
+
USER_ORDER_SUMMARY: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.USER_ORDER_SUMMARY),
|
|
82
|
+
TIER_REFERRAL: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.TIER_REFERRAL),
|
|
83
|
+
USER_ADDRESS_REQUEST: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.USER_ADDRESS_REQUEST),
|
|
84
|
+
COMMON_FEEDBACK: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.COMMON_FEEDBACK),
|
|
85
|
+
GUEST_FEEDBACK: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.GUEST_FEEDBACK),
|
|
86
|
+
COUNTER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.COUNTER),
|
|
87
|
+
REQUEST_INVOICE: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.REQUEST_INVOICE),
|
|
88
|
+
PLATTER_SEARCH_EVENTS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.PLATTER_SEARCH_EVENTS),
|
|
89
|
+
ORDER_REVIEW_FEEDBACK: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER_REVIEW_FEEDBACK),
|
|
90
|
+
CATERING_REQUEST: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CATERING_REQUEST),
|
|
91
|
+
// Order Module Tables
|
|
92
|
+
ORDER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER),
|
|
93
|
+
ORDER_ADDRESS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER_ADDRESS),
|
|
94
|
+
ORDER_REVIEW: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER_REVIEW),
|
|
95
|
+
PAYMENT: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.PAYMENT),
|
|
96
|
+
PLATE_ORDER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.PLATE_ORDER),
|
|
97
|
+
TRACKING: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.TRACKING),
|
|
98
|
+
USER_ADDRESS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.USER_ADDRESS),
|
|
99
|
+
// Other Customer Tables
|
|
100
|
+
ADD_ONS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ADD_ONS),
|
|
101
|
+
BANK_DETAILS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.BANK_DETAILS),
|
|
102
|
+
CART: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CART),
|
|
103
|
+
CART_CATEGORIES: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CART_CATEGORIES),
|
|
104
|
+
CATEGORY: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CATEGORY),
|
|
105
|
+
CATERING: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CATERING),
|
|
106
|
+
CONTENT: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CONTENT),
|
|
107
|
+
COUPONS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.COUPONS),
|
|
108
|
+
DEFAULT_PLATTER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.DEFAULT_PLATTER),
|
|
109
|
+
DEFAULT_PLATTER_CATEGORIES: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.DEFAULT_PLATTER_CATEGORIES),
|
|
110
|
+
DEFAULT_PLATTER_ITEMS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.DEFAULT_PLATTER_ITEMS),
|
|
111
|
+
EVENT_EXECUTIVES: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.EVENT_EXECUTIVES),
|
|
112
|
+
ITEMS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ITEMS),
|
|
113
|
+
LEAD: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.LEAD),
|
|
114
|
+
OCCASION: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.OCCASION),
|
|
115
|
+
REFERRAL_CONTENT: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.REFERRAL_CONTENT),
|
|
116
|
+
USER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.USER),
|
|
117
|
+
WALLET: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.WALLET),
|
|
118
|
+
WALLET_TRANSACTION: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.WALLET_TRANSACTION),
|
|
119
|
+
WITHDRAWN: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.WITHDRAWN),
|
|
120
|
+
// Internal User Tables
|
|
121
|
+
INTERNAL_USER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.INTERNAL_USER),
|
|
122
|
+
ACTIVITY_LOGS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ACTIVITY_LOGS),
|
|
123
|
+
QUOTATIONS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.QUOTATIONS)
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3RhYmxlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRDtBQUVyRCxnREFBZ0Q7QUFDbkMsUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixPQUFPLEVBQUUsY0FBYztJQUN2QixtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxvQkFBb0IsRUFBRSx5QkFBeUI7SUFDL0MsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxnQkFBZ0IsRUFBRSxzQkFBc0I7SUFFeEMsc0JBQXNCO0lBQ3RCLEtBQUssRUFBRSxZQUFZO0lBQ25CLGFBQWEsRUFBRSxtQkFBbUI7SUFDbEMsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsY0FBYztJQUN2QixXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFlBQVksRUFBRSxrQkFBa0I7SUFFaEMsd0JBQXdCO0lBQ3hCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsSUFBSSxFQUFFLFdBQVc7SUFDakIsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxRQUFRLEVBQUUsZUFBZTtJQUN6QixRQUFRLEVBQUUsZUFBZTtJQUN6QixPQUFPLEVBQUUsY0FBYztJQUN2QixPQUFP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YUFBYSxDQUFDO0lBQzVFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsVUFBVSxDQUFDO0NBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhYmFzZUZhY3RvcnkgfSBmcm9tICcuL2RhdGFiYXNlLWZhY3RvcnknO1xuXG4vLyBCYXNlIHRhYmxlIG5hbWVzICh3aXRob3V0IGVudmlyb25tZW50IHByZWZpeClcbmV4cG9ydCBjb25zdCBCQVNFX1RBQkxFX05BTUVTID0ge1xuICAgIC8vIEN1c3RvbWVyIEFwcCBUYWJsZXNcbiAgICBBUFBfRkVFREJBQ0s6ICdBcHBGZWVkYmFja1RhYmxlJyxcbiAgICBMU1FfQ1JNOiAnTHNxQ3JtVGFibGUnLFxuICAgIENVVExFUlk6ICdDdXRsZXJ5VGFibGUnLFxuICAgIElURU1fQUNDT01QQU5JTUVOVFM6ICdJdGVtQWNjb21wYW5pbWVudHNUYWJsZScsXG4gICAgQ1VJU0lORTogJ0N1aXNpbmVUYWJsZScsXG4gICAgVElFUl9ERVRBSUxTOiAnVGllckRldGFpbHNUYWJsZScsXG4gICAgVVNFUl9PUkRFUl9TVU1NQVJZOiAnVXNlck9yZGVyU3VtbWFyeVRhYmxlJyxcbiAgICBUSUVSX1JFRkVSUkFMOiAnVGllclJlZmVycmFsVGFibGUnLFxuICAgIFVTRVJfQUREUkVTU19SRVFVRVNUOiAnVXNlckFkZHJlc3NSZXF1ZXN0VGFibGUnLFxuICAgIENPTU1PTl9GRUVEQkFDSzogJ0NvbW1vbkZlZWRiYWNrVGFibGUnLFxuICAgIEdVRVNUX0ZFRURCQUNLOiAnR3Vlc3RGZWVkYmFja1RhYmxlJyxcbiAgICBDT1VOVEVSOiAnQ291bnRlclRhYmxlJyxcbiAgICBSRVFVRVNUX0lOVk9JQ0U6ICdSZXF1ZXN0SW52b2ljZVRhYmxlJyxcbiAgICBQTEFUVEVSX1NFQVJDSF9FVkVOVFM6ICdQbGF0dGVyU2VhcmNoRXZlbnRzVGFibGUnLFxuICAgIE9SREVSX1JFVklFV19GRUVEQkFDSzogJ09yZGVyUmV2aWV3RmVlZGJhY2tUYWJsZScsXG4gICAgQ0FURVJJTkdfUkVRVUVTVDogJ0NhdGVyaW5nUmVxdWVzdFRhYmxlJyxcblxuICAgIC8vIE9yZGVyIE1vZHVsZSBUYWJsZXNcbiAgICBPUkRFUjogJ09yZGVyVGFibGUnLFxuICAgIE9SREVSX0FERFJFU1M6ICdPcmRlckFkZHJlc3NUYWJsZScsXG4gICAgT1JERVJfUkVWSUVXOiAnT3JkZXJSZXZpZXdUYWJsZScsXG4gICAgUEFZTUVOVDogJ1BheW1lbnRUYWJsZScsXG4gICAgUExBVEVfT1JERVI6ICdQbGF0ZU9yZGVyVGFibGUnLFxuICAgIFRSQUNLSU5HOiAnVHJhY2tpbmdUYWJsZScsXG4gICAgVVNFUl9BRERSRVNTOiAnVXNlckFkZHJlc3NUYWJsZScsXG5cbiAgICAvLyBPdGhlciBDdXN0b21lciBUYWJsZXNcbiAgICBBRERfT05TOiAnQWRkT25zVGFibGUnLFxuICAgIEJBTktfREVUQUlMUzogJ0JhbmtEZXRhaWxzVGFibGUnLFxuICAgIENBUlQ6ICdDYXJ0VGFibGUnLFxuICAgIENBUlRfQ0FURUdPUklFUzogJ0NhcnRDYXRlZ29yaWVzVGFibGUnLFxuICAgIENBVEVHT1JZOiAnQ2F0ZWdvcnlUYWJsZScsXG4gICAgQ0FURVJJTkc6ICdDYXRlcmluZ1RhYmxlJyxcbiAgICBDT05URU5UOiAnQ29udGVudFRhYmxlJyxcbiAgICBDT1VQT05TOiAnQ291cG9uc1RhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVI6ICdEZWZhdWx0UGxhdHRlclRhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUzogJ0RlZmF1bHRQbGF0dGVyQ2F0ZWdvcmllc1RhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVJfSVRFTVM6ICdEZWZhdWx0UGxhdHRlckl0ZW1zVGFibGUnLFxuICAgIEVWRU5UX0VYRUNVVElWRVM6ICdFdmVudEV4ZWN1dGl2ZXNUYWJsZScsXG4gICAgSVRFTVM6ICdJdGVtc1RhYmxlJyxcbiAgICBMRUFEOiAnTGVhZFRhYmxlJyxcbiAgICBPQ0NBU0lPTjogJ09jY2FzaW9uVGFibGUnLFxuICAgIFJFRkVSUkFMX0NPTlRFTlQ6ICdSZWZlcnJhbENvbnRlbnRUYWJsZScsXG4gICAgVVNFUjogJ1VzZXJUYWJsZScsXG4gICAgV0FMTEVUOiAnV2FsbGV0VGFibGUnLFxuICAgIFdBTExFVF9UUkFOU0FDVElPTjogJ1dhbGxldFRyYW5zYWN0aW9uVGFibGUnLFxuICAgIFdJVEhEUkFXTjogJ1dpdGhkcmF3blRhYmxlJyxcblxuICAgIC8vIEludGVybmFsIFVzZXIgVGFibGVzXG4gICAgSU5URVJOQUxfVVNFUjogJ0ludGVybmFsVXNlclRhYmxlJyxcbiAgICBBQ1RJVklUWV9MT0dTOiAnQWN0aXZpdHlMb2dzVGFibGUnLFxuICAgIFFVT1RBVElPTlM6ICdRdW90YXRpb25zVGFibGUnXG59IGFzIGNvbnN0O1xuXG4vLyBFbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lIGdldHRlclxuZXhwb3J0IGNsYXNzIFRhYmxlTmFtZU1hbmFnZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBEYXRhYmFzZUZhY3RvcnkuZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QWxsVGFibGVOYW1lcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKEJBU0VfVEFCTEVfTkFNRVMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgdGFibGVOYW1lc1trZXldID0gdGhpcy5nZXRUYWJsZU5hbWUodmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGFibGVOYW1lcztcbiAgICB9XG59XG5cbi8vIEV4cG9ydCBlbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lc1xuZXhwb3J0IGNvbnN0IFRBQkxFX05BTUVTID0ge1xuICAgIC8vIEN1c3RvbWVyIEFwcCBUYWJsZXNcbiAgICBBUFBfRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQVBQX0ZFRURCQUNLKSxcbiAgICBMU1FfQ1JNOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxTUV9DUk0pLFxuICAgIENVVExFUlk6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ1VUTEVSWSksXG4gICAgSVRFTV9BQ0NPTVBBTklNRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JVEVNX0FDQ09NUEFOSU1FTlRTKSxcbiAgICBDVUlTSU5FOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNVSVNJTkUpLFxuICAgIFRJRVJfREVUQUlMUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5USUVSX0RFVEFJTFMpLFxuICAgIFVTRVJfT1JERVJfU1VNTUFSWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX09SREVSX1NVTU1BUlkpLFxuICAgIFRJRVJfUkVGRVJSQUw6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVElFUl9SRUZFUlJBTCksXG4gICAgVVNFUl9BRERSRVNTX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9BRERSRVNTX1JFUVVFU1QpLFxuICAgIENPTU1PTl9GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT01NT05fRkVFREJBQ0spLFxuICAgIEdVRVNUX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkdVRVNUX0ZFRURCQUNLKSxcbiAgICBDT1VOVEVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVU5URVIpLFxuICAgIFJFUVVFU1RfSU5WT0lDRTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5SRVFVRVNUX0lOVk9JQ0UpLFxuICAgIFBMQVRURVJfU0VBUkNIX0VWRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QTEFUVEVSX1NFQVJDSF9FVkVOVFMpLFxuICAgIE9SREVSX1JFVklFV19GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9SRVZJRVdfRkVFREJBQ0spLFxuICAgIENBVEVSSU5HX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FURVJJTkdfUkVRVUVTVCksXG5cbiAgICAvLyBPcmRlciBNb2R1bGUgVGFibGVzXG4gICAgT1JERVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuT1JERVIpLFxuICAgIE9SREVSX0FERFJFU1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuT1JERVJfQUREUkVTUyksXG4gICAgT1JERVJfUkVWSUVXOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSX1JFVklFVyksXG4gICAgUEFZTUVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QQVlNRU5UKSxcbiAgICBQTEFURV9PUkRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QTEFURV9PUkRFUiksXG4gICAgVFJBQ0tJTkc6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVFJBQ0tJTkcpLFxuICAgIFVTRVJfQUREUkVTUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX0FERFJFU1MpLFxuXG4gICAgLy8gT3RoZXIgQ3VzdG9tZXIgVGFibGVzXG4gICAgQUREX09OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BRERfT05TKSxcbiAgICBCQU5LX0RFVEFJTFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQkFOS19ERVRBSUxTKSxcbiAgICBDQVJUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBUlQpLFxuICAgIENBUlRfQ0FURUdPUklFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVJUX0NBVEVHT1JJRVMpLFxuICAgIENBVEVHT1JZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBVEVHT1JZKSxcbiAgICBDQVRFUklORzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFUklORyksXG4gICAgQ09OVEVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT05URU5UKSxcbiAgICBDT1VQT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVVBPTlMpLFxuICAgIERFRkFVTFRfUExBVFRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5ERUZBVUxUX1BMQVRURVIpLFxuICAgIERFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkRFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTKSxcbiAgICBERUZBVUxUX1BMQVRURVJfSVRFTVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuREVGQVVMVF9QTEFUVEVSX0lURU1TKSxcbiAgICBFVkVOVF9FWEVDVVRJVkVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkVWRU5UX0VYRUNVVElWRVMpLFxuICAgIElURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklURU1TKSxcbiAgICBMRUFEOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxFQUQpLFxuICAgIE9DQ0FTSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9DQ0FTSU9OKSxcbiAgICBSRUZFUlJBTF9DT05URU5UOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlJFRkVSUkFMX0NPTlRFTlQpLFxuICAgIFVTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUiksXG4gICAgV0FMTEVUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVCksXG4gICAgV0FMTEVUX1RSQU5TQUNUSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVF9UUkFOU0FDVElPTiksXG4gICAgV0lUSERSQVdOOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldJVEhEUkFXTiksXG5cbiAgICAvLyBJbnRlcm5hbCBVc2VyIFRhYmxlc1xuICAgIElOVEVSTkFMX1VTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSU5URVJOQUxfVVNFUiksXG4gICAgQUNUSVZJVFlfTE9HUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BQ1RJVklUWV9MT0dTKSxcbiAgICBRVU9UQVRJT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlFVT1RBVElPTlMpXG59IGFzIGNvbnN0O1xuIl19
|
|
@@ -22,7 +22,7 @@ __decorate([
|
|
|
22
22
|
(0, annotations_1.attribute)()
|
|
23
23
|
], TierRefererModel.prototype, "referralName", void 0);
|
|
24
24
|
__decorate([
|
|
25
|
-
(0, annotations_1.attribute)()
|
|
25
|
+
(0, annotations_1.attribute)({ indexKeyConfigurations: { "sentToIndex": "HASH" }, type: 'String' })
|
|
26
26
|
], TierRefererModel.prototype, "sentTo", void 0);
|
|
27
27
|
__decorate([
|
|
28
28
|
(0, annotations_1.attribute)()
|
|
@@ -36,4 +36,4 @@ __decorate([
|
|
|
36
36
|
exports.TierRefererModel = TierRefererModel = __decorate([
|
|
37
37
|
(0, annotations_1.table)("TierReferralTable")
|
|
38
38
|
], TierRefererModel);
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllci1yZWZlcnJhbC1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b21lci11c2VyL3RpZXItcmVmZXJyYWwvdGllci1yZWZlcnJhbC1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1REFBK0U7QUFDL0UsaURBQTZDO0FBR3RDLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWlCLFNBQVEsc0JBQVM7Q0FxQjlDLENBQUE7QUFyQlksNENBQWdCO0FBRXpCO0lBREMsSUFBQSxrQ0FBb0IsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzt3REFDbEI7QUFHdkI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0RBQ2xFO0FBR2Y7SUFEQyxJQUFBLHVCQUFTLEdBQUU7c0RBQ1U7QUFHdEI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0RBQ2xFO0FBR2Y7SUFEQyxJQUFBLHVCQUFTLEdBQUU7Z0RBQ0c7QUFHZjtJQURDLElBQUEsdUJBQVMsR0FBRTtzREFDUztBQUdyQjtJQURDLElBQUEsdUJBQVMsRUFBQyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3FEQUNsRTsyQkFwQlgsZ0JBQWdCO0lBRDVCLElBQUEsbUJBQUssRUFBQyxtQkFBbUIsQ0FBQztHQUNkLGdCQUFnQixDQXFCNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdHRyaWJ1dGUsIGF1dG9HZW5lcmF0ZWRIYXNoS2V5LCB0YWJsZSB9IGZyb20gXCJAbm92YS1vZG0vYW5ub3RhdGlvbnNcIjtcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XG5cbkB0YWJsZShcIlRpZXJSZWZlcnJhbFRhYmxlXCIpXG5leHBvcnQgY2xhc3MgVGllclJlZmVyZXJNb2RlbCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgQGF1dG9HZW5lcmF0ZWRIYXNoS2V5KHsgdHlwZTogJ1N0cmluZycgfSlcbiAgICB0aWVyUmVmZXJyYWxJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSh7IGluZGV4S2V5Q29uZmlndXJhdGlvbnM6IHsgXCJ1c2VySWRJbmRleFwiOiBcIkhBU0hcIiB9LCB0eXBlOiAnU3RyaW5nJyB9KVxuICAgIHVzZXJJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVmZXJyYWxOYW1lPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSh7IGluZGV4S2V5Q29uZmlndXJhdGlvbnM6IHsgXCJzZW50VG9JbmRleFwiOiBcIkhBU0hcIiB9LCB0eXBlOiAnU3RyaW5nJyB9KVxuICAgIHNlbnRUbzogc3RyaW5nOyAvLyBNb2JpbGUgTnVtYmVyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBzdGF0dXM6IHN0cmluZzsgLy8gUkVRVUVTVEVELCBKT0lORUQsIEVBUk5FRFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2VuZGVkQW1vdW50OiBudW1iZXI7IC8vIFYyIFVwZGF0ZSB0byBwYXNzIGFjdHVhbCBzZW50IGFtb3VudCBmb3Igc2lnblVwK29yZGVydmFsdWUgMTAlXG5cbiAgICBAYXR0cmlidXRlKHsgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcImFwcGxpZWRDb2RlSW5kZXhcIjogXCJIQVNIXCIgfSwgdHlwZTogJ1N0cmluZycgfSlcbiAgICBhcHBsaWVkQ29kZTogc3RyaW5nOyAvLyBBcHBsaWVkIENvZGVcbn0iXX0=
|
package/index.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
// Environment Configuration
|
|
2
|
+
export { envManager, EnvironmentManager } from './dist/config/environment-config';
|
|
3
|
+
export { DatabaseFactory } from './dist/config/database-factory';
|
|
4
|
+
export { TableNameManager, TABLE_NAMES, BASE_TABLE_NAMES } from './dist/config/table-names';
|
|
5
|
+
|
|
6
|
+
// Core Database Components
|
|
1
7
|
export { InternalUserModel } from './dist/internal-user/internal-user-model';
|
|
2
8
|
export { internalUserDao } from './dist/internal-user/internal-user-dao';
|
|
3
9
|
export { GenericDAO } from './dist/base-dao';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cmp-aws-database",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.107-dev.1",
|
|
4
4
|
"bin": {
|
|
5
5
|
"craft-my-plate-database": "bin/craft-my-plate-database.js"
|
|
6
6
|
},
|
|
@@ -8,7 +8,17 @@
|
|
|
8
8
|
"build": "tsc",
|
|
9
9
|
"watch": "tsc -w",
|
|
10
10
|
"test": "jest",
|
|
11
|
-
"cdk": "cdk"
|
|
11
|
+
"cdk": "cdk",
|
|
12
|
+
"version:info": "node scripts/version-strategy.js info",
|
|
13
|
+
"version:increment": "node scripts/version-strategy.js increment",
|
|
14
|
+
"version:sync": "node scripts/version-strategy.js sync",
|
|
15
|
+
"deploy:dev": "./scripts/deploy-environment.sh -e DEV",
|
|
16
|
+
"deploy:proddebug": "./scripts/deploy-environment.sh -e PRODDEBUG",
|
|
17
|
+
"deploy:prod": "./scripts/deploy-environment.sh -e PROD",
|
|
18
|
+
"deploy:dev:skip-tests": "./scripts/deploy-environment.sh -e DEV --skip-tests",
|
|
19
|
+
"deploy:proddebug:skip-tests": "./scripts/deploy-environment.sh -e PRODDEBUG --skip-tests",
|
|
20
|
+
"deploy:prod:skip-tests": "./scripts/deploy-environment.sh -e PROD --skip-tests",
|
|
21
|
+
"create-branches": "./scripts/create-environment-branches.sh"
|
|
12
22
|
},
|
|
13
23
|
"devDependencies": {
|
|
14
24
|
"@types/jest": "^29.5.14",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.paymentDao = void 0;
|
|
4
|
-
const base_dao_1 = require("../../../base-dao");
|
|
5
|
-
class PaymentDAO extends base_dao_1.GenericDAO {
|
|
6
|
-
}
|
|
7
|
-
exports.paymentDao = new PaymentDAO();
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWV0LWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jdXN0b21lci11c2VyL29yZGVyLW1vZHVsZS9wYXltZW50L3BheW1ldC1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQStDO0FBRy9DLE1BQU0sVUFBVyxTQUFRLHFCQUF3QjtDQUVoRDtBQUVZLFFBQUEsVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljREFPIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtZGFvXCI7XG5pbXBvcnQgeyBQYXltZW50TW9kZWwgfSBmcm9tIFwiLi9wYXltZW50LW1vZGVsXCI7XG5cbmNsYXNzIFBheW1lbnREQU8gZXh0ZW5kcyBHZW5lcmljREFPPFBheW1lbnRNb2RlbD4ge1xuXG59XG5cbmV4cG9ydCBjb25zdCBwYXltZW50RGFvID0gbmV3IFBheW1lbnREQU8oKTsiXX0=
|