@goldstack/template-dynamodb 0.3.35 → 0.3.36

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.
Files changed (32) hide show
  1. package/dist/src/local/config.d.ts +27 -0
  2. package/dist/src/local/config.d.ts.map +1 -0
  3. package/dist/src/local/config.js +29 -0
  4. package/dist/src/local/config.js.map +1 -0
  5. package/dist/src/local/instanceManager.d.ts +61 -0
  6. package/dist/src/local/instanceManager.d.ts.map +1 -0
  7. package/dist/src/local/instanceManager.js +212 -0
  8. package/dist/src/local/instanceManager.js.map +1 -0
  9. package/dist/src/{localDynamoDB.d.ts → local/localDynamoDB.d.ts} +13 -4
  10. package/dist/src/local/localDynamoDB.d.ts.map +1 -0
  11. package/dist/src/local/localDynamoDB.js +101 -0
  12. package/dist/src/local/localDynamoDB.js.map +1 -0
  13. package/dist/src/{localInstances.d.ts → local/localInstances.d.ts} +3 -20
  14. package/dist/src/local/localInstances.d.ts.map +1 -0
  15. package/dist/src/{localInstances.js → local/localInstances.js} +74 -12
  16. package/dist/src/local/localInstances.js.map +1 -0
  17. package/dist/src/local/processManager.d.ts +9 -0
  18. package/dist/src/local/processManager.d.ts.map +1 -0
  19. package/dist/src/local/processManager.js +85 -0
  20. package/dist/src/local/processManager.js.map +1 -0
  21. package/dist/src/local/spawner.d.ts +15 -0
  22. package/dist/src/local/spawner.d.ts.map +1 -0
  23. package/dist/src/local/spawner.js +138 -0
  24. package/dist/src/local/spawner.js.map +1 -0
  25. package/dist/src/templateDynamoDBTable.js +4 -4
  26. package/dist/src/templateDynamoDBTable.js.map +1 -1
  27. package/package.json +1 -1
  28. package/dist/src/localDynamoDB.d.ts.map +0 -1
  29. package/dist/src/localDynamoDB.js +0 -294
  30. package/dist/src/localDynamoDB.js.map +0 -1
  31. package/dist/src/localInstances.d.ts.map +0 -1
  32. package/dist/src/localInstances.js.map +0 -1
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.localInstancesManager = void 0;
7
+ exports.getLocalInstancesManager = getLocalInstancesManager;
7
8
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
8
9
  const utils_log_1 = require("@goldstack/utils-log");
9
10
  const fs_1 = __importDefault(require("fs"));
11
+ const tcp_port_used_1 = require("tcp-port-used");
10
12
  /**
11
13
  * Implementation of LocalInstancesManager for managing DynamoDB local instances
12
14
  */
@@ -17,9 +19,17 @@ class LocalInstancesManagerImpl {
17
19
  this.startedInstances = new Map();
18
20
  // Track number of active users per port
19
21
  this.portUsageCounter = new Map();
20
- this.loadState();
22
+ // Private constructor for factory method pattern
21
23
  }
22
- loadState() {
24
+ /**
25
+ * Creates and initializes a new LocalInstancesManagerImpl instance
26
+ */
27
+ static async create() {
28
+ const manager = new LocalInstancesManagerImpl();
29
+ await manager.loadState();
30
+ return manager;
31
+ }
32
+ async loadState() {
23
33
  try {
24
34
  const data = fs_1.default.readFileSync(this.stateFile, 'utf8');
25
35
  const state = JSON.parse(data);
@@ -27,20 +37,28 @@ class LocalInstancesManagerImpl {
27
37
  this.startedInstances.clear();
28
38
  this.portUsageCounter.clear();
29
39
  // Restore instances
30
- Object.entries(state.instances).forEach(([port, instance]) => {
40
+ for (const [port, instance] of Object.entries(state.instances)) {
31
41
  const portNum = parseInt(port);
32
42
  if (instance === 'stopped') {
33
43
  this.startedInstances.set(portNum, 'stopped');
34
44
  }
35
45
  else {
36
- // Restore instance with its process/container info
37
- this.startedInstances.set(portNum, {
38
- port: portNum,
39
- processId: instance.processId,
40
- dockerContainerId: instance.dockerContainerId,
41
- });
46
+ // Check if port is actually in use
47
+ const isPortInUse = await (0, tcp_port_used_1.check)(portNum);
48
+ if (!isPortInUse) {
49
+ (0, utils_log_1.debug)(`Port ${portNum} not in use, marking instance as stopped`);
50
+ this.startedInstances.set(portNum, 'stopped');
51
+ }
52
+ else {
53
+ // Restore instance with its process/container info
54
+ this.startedInstances.set(portNum, {
55
+ port: portNum,
56
+ processId: instance.processId,
57
+ dockerContainerId: instance.dockerContainerId,
58
+ });
59
+ }
42
60
  }
43
- });
61
+ }
44
62
  // Restore usage counts
45
63
  Object.entries(state.usageCounts).forEach(([port, count]) => {
46
64
  this.portUsageCounter.set(parseInt(port), count);
@@ -130,6 +148,50 @@ class LocalInstancesManagerImpl {
130
148
  this.saveState();
131
149
  }
132
150
  }
133
- // Export singleton instance
134
- exports.localInstancesManager = new LocalInstancesManagerImpl();
151
+ // Initialize singleton instance
152
+ let localInstancesManagerInstance;
153
+ /**
154
+ * Gets the singleton instance of LocalInstancesManager, initializing it if necessary
155
+ */
156
+ async function getLocalInstancesManager() {
157
+ if (!localInstancesManagerInstance) {
158
+ localInstancesManagerInstance = await LocalInstancesManagerImpl.create();
159
+ }
160
+ return localInstancesManagerInstance;
161
+ }
162
+ // For backward compatibility, initialize immediately but without waiting
163
+ // This maintains the existing behavior while allowing proper async initialization when needed
164
+ LocalInstancesManagerImpl.create().then((instance) => {
165
+ localInstancesManagerInstance = instance;
166
+ });
167
+ exports.localInstancesManager = {};
168
+ Object.defineProperties(exports.localInstancesManager, {
169
+ getInstance: {
170
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getInstance.bind(localInstancesManagerInstance),
171
+ },
172
+ getFirstRunningInstance: {
173
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getFirstRunningInstance.bind(localInstancesManagerInstance),
174
+ },
175
+ setInstance: {
176
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.setInstance.bind(localInstancesManagerInstance),
177
+ },
178
+ getAllInstances: {
179
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getAllInstances.bind(localInstancesManagerInstance),
180
+ },
181
+ getInstanceCount: {
182
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getInstanceCount.bind(localInstancesManagerInstance),
183
+ },
184
+ incrementUsageCounter: {
185
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.incrementUsageCounter.bind(localInstancesManagerInstance),
186
+ },
187
+ decrementUsageCounter: {
188
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.decrementUsageCounter.bind(localInstancesManagerInstance),
189
+ },
190
+ getUsageCount: {
191
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getUsageCount.bind(localInstancesManagerInstance),
192
+ },
193
+ removeUsageCounter: {
194
+ get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.removeUsageCounter.bind(localInstancesManagerInstance),
195
+ },
196
+ });
135
197
  //# sourceMappingURL=localInstances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localInstances.js","sourceRoot":"","sources":["../../../src/local/localInstances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Handles process termination for both Windows and Unix systems
3
+ */
4
+ export declare function terminateProcess(processId: number): Promise<void>;
5
+ /**
6
+ * Stops a Docker container by its ID
7
+ */
8
+ export declare function stopContainer(containerId: string): Promise<void>;
9
+ //# sourceMappingURL=processManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processManager.d.ts","sourceRoot":"","sources":["../../../src/local/processManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvE;AAiED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.terminateProcess = terminateProcess;
4
+ exports.stopContainer = stopContainer;
5
+ const child_process_1 = require("child_process");
6
+ const utils_sh_1 = require("@goldstack/utils-sh");
7
+ const utils_log_1 = require("@goldstack/utils-log");
8
+ /**
9
+ * Handles process termination for both Windows and Unix systems
10
+ */
11
+ async function terminateProcess(processId) {
12
+ if (process.platform === 'win32') {
13
+ await terminateWindowsProcess(processId);
14
+ }
15
+ else {
16
+ await terminateUnixProcess(processId);
17
+ }
18
+ }
19
+ async function terminateWindowsProcess(processId) {
20
+ // Try graceful termination first
21
+ const result = (0, child_process_1.spawnSync)('taskkill', ['/pid', processId.toString(), '/t']);
22
+ if (result.status !== 0) {
23
+ (0, utils_log_1.warn)(`Failed to terminate process ${processId} gracefully: ${result.stderr}`);
24
+ }
25
+ // Give it some time before force kill
26
+ await new Promise((resolve) => setTimeout(resolve, 5000));
27
+ // Force kill
28
+ const forceResult = (0, child_process_1.spawnSync)('taskkill', [
29
+ '/pid',
30
+ processId.toString(),
31
+ '/f',
32
+ '/t',
33
+ ]);
34
+ if (forceResult.status !== 0) {
35
+ (0, utils_log_1.error)(`Failed to force kill process ${processId}: ${forceResult.stderr}`);
36
+ throw new Error(`Failed to terminate process ${processId}`);
37
+ }
38
+ }
39
+ async function terminateUnixProcess(processId) {
40
+ try {
41
+ // Try graceful termination first
42
+ process.kill(processId, 'SIGTERM');
43
+ await new Promise((resolve) => setTimeout(resolve, 5000));
44
+ // Check if process still exists
45
+ try {
46
+ process.kill(processId, 0); // Signal 0 is used to check existence
47
+ // Process still exists, try force kill
48
+ process.kill(processId, 'SIGKILL');
49
+ // Wait and verify process is gone
50
+ await new Promise((resolve) => setTimeout(resolve, 1000));
51
+ try {
52
+ process.kill(processId, 0);
53
+ (0, utils_log_1.error)(`Failed to terminate process ${processId} after SIGKILL`);
54
+ throw new Error(`Process ${processId} could not be terminated`);
55
+ }
56
+ catch (e) {
57
+ if (e.code === 'ESRCH') {
58
+ (0, utils_log_1.debug)(`Process ${processId} successfully terminated`);
59
+ }
60
+ else {
61
+ throw e;
62
+ }
63
+ }
64
+ }
65
+ catch (e) {
66
+ if (e.code === 'ESRCH') {
67
+ (0, utils_log_1.debug)(`Process ${processId} terminated gracefully`);
68
+ }
69
+ else {
70
+ throw e;
71
+ }
72
+ }
73
+ }
74
+ catch (e) {
75
+ (0, utils_log_1.error)(`Failed to terminate process ${processId}: ${e}`);
76
+ throw e;
77
+ }
78
+ }
79
+ /**
80
+ * Stops a Docker container by its ID
81
+ */
82
+ async function stopContainer(containerId) {
83
+ await (0, utils_sh_1.execAsync)(`docker stop ${containerId}`);
84
+ }
85
+ //# sourceMappingURL=processManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processManager.js","sourceRoot":"","sources":["../../../src/local/processManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { DynamoDBInstance } from './localDynamoDB';
2
+ /**
3
+ * Options for spawning a DynamoDB instance
4
+ */
5
+ interface SpawnOptions {
6
+ port: number;
7
+ path?: string | null;
8
+ detached?: boolean;
9
+ }
10
+ /**
11
+ * Spawns a new DynamoDB instance using either Java or Docker
12
+ */
13
+ export declare function spawnInstance(options: SpawnOptions): Promise<DynamoDBInstance>;
14
+ export {};
15
+ //# sourceMappingURL=spawner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../../src/local/spawner.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAyB3B"}
@@ -0,0 +1,138 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.spawnInstance = spawnInstance;
40
+ const utils_sh_1 = require("@goldstack/utils-sh");
41
+ const utils_log_1 = require("@goldstack/utils-log");
42
+ const tcp_port_used_1 = require("tcp-port-used");
43
+ const wait_port_1 = __importDefault(require("wait-port"));
44
+ const dynamoDBLocal = __importStar(require("dynamo-db-local"));
45
+ /**
46
+ * Spawns a new DynamoDB instance using either Java or Docker
47
+ */
48
+ async function spawnInstance(options) {
49
+ if (await (0, tcp_port_used_1.check)(options.port)) {
50
+ (0, utils_log_1.warn)(`Port ${options.port} is already in use. Assuming another instance of DynamoDB is already running.`);
51
+ return {
52
+ port: options.port,
53
+ };
54
+ }
55
+ // Try Java first
56
+ const javaInstance = await tryJavaSpawn(options);
57
+ if (javaInstance) {
58
+ return javaInstance;
59
+ }
60
+ // Fallback to Docker
61
+ const dockerInstance = await tryDockerSpawn(options);
62
+ if (dockerInstance) {
63
+ return dockerInstance;
64
+ }
65
+ throw new Error('Either Docker or Java needs to be installed to run local DynamoDB');
66
+ }
67
+ async function tryJavaSpawn(options) {
68
+ let javaViable = (0, utils_sh_1.commandExists)('java');
69
+ if (javaViable) {
70
+ try {
71
+ await (0, utils_sh_1.execAsync)('java -version');
72
+ }
73
+ catch (e) {
74
+ (0, utils_log_1.warn)("'java' command is available but it does not work. This is common on never versions of Mac OS X without Java installed.\n" +
75
+ 'To use Java, please install it.');
76
+ javaViable = false;
77
+ }
78
+ }
79
+ if (!javaViable) {
80
+ return null;
81
+ }
82
+ (0, utils_log_1.info)(`Starting local DynamoDB with Java on port ${options.port}`);
83
+ const pr = dynamoDBLocal.spawn({
84
+ port: options.port,
85
+ path: options.path,
86
+ detached: options.detached,
87
+ });
88
+ if (!pr.pid) {
89
+ throw new Error('Process id cannot be identified.');
90
+ }
91
+ await Promise.all([
92
+ await (0, wait_port_1.default)({
93
+ host: 'localhost',
94
+ port: options.port,
95
+ output: 'silent',
96
+ }),
97
+ await new Promise((resolve) => {
98
+ pr.stdout.once('data', () => resolve());
99
+ }),
100
+ ]);
101
+ (0, utils_log_1.info)(`Started local DynamoDB with Java on port ${options.port}`);
102
+ return {
103
+ port: options.port,
104
+ processId: pr.pid,
105
+ };
106
+ }
107
+ async function tryDockerSpawn(options) {
108
+ if (!(0, utils_sh_1.commandExists)('docker')) {
109
+ return null;
110
+ }
111
+ (0, utils_log_1.info)('Starting local DynamoDB with Docker');
112
+ const detached = global['CI'] ? true : false;
113
+ const hash = new Date().getTime();
114
+ const containerName = 'goldstack-local-dynamodb-' + hash;
115
+ const pr = dynamoDBLocal.spawn({
116
+ port: options.port,
117
+ command: 'docker',
118
+ name: containerName,
119
+ path: options.path,
120
+ detached,
121
+ });
122
+ if (detached) {
123
+ pr.unref();
124
+ }
125
+ await (0, wait_port_1.default)({
126
+ host: 'localhost',
127
+ port: options.port,
128
+ output: 'silent',
129
+ });
130
+ await new Promise((resolve) => {
131
+ setTimeout(resolve, 5000);
132
+ });
133
+ return {
134
+ port: options.port,
135
+ dockerContainerId: containerName,
136
+ };
137
+ }
138
+ //# sourceMappingURL=spawner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../../src/local/spawner.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ const startLocalDynamoDB = async (goldstackConfig, packageSchema, port, deployme
30
30
  });
31
31
  // Suppress ESLint error for dynamic require
32
32
  // eslint-disable-next-line @typescript-eslint/no-var-requires
33
- const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
33
+ const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
34
34
  const portToUse = port ||
35
35
  (process.env.DYNAMODB_LOCAL_PORT &&
36
36
  parseInt(process.env.DYNAMODB_LOCAL_PORT)) ||
@@ -46,7 +46,7 @@ const stopAllLocalDynamoDB = async (goldstackConfig, packageSchema, deploymentNa
46
46
  });
47
47
  // Suppress ESLint error for dynamic require
48
48
  // eslint-disable-next-line @typescript-eslint/no-var-requires
49
- const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
49
+ const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
50
50
  await lib.stopAllLocalDynamoDB(packageConfig, deploymentName);
51
51
  const coldStartKey = await getColdStartKey(packageConfig, deploymentName);
52
52
  coldStart.delete(coldStartKey);
@@ -70,7 +70,7 @@ const stopLocalDynamoDB = async (goldstackConfig, packageSchema, portOrDeploymen
70
70
  });
71
71
  // Suppress ESLint error for dynamic require
72
72
  // eslint-disable-next-line @typescript-eslint/no-var-requires
73
- const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
73
+ const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
74
74
  await lib.stopLocalDynamoDB(packageConfig, port ? { port } : {}, resolvedDeploymentName);
75
75
  const coldStartKey = await getColdStartKey(packageConfig, resolvedDeploymentName);
76
76
  coldStart.delete(coldStartKey);
@@ -81,7 +81,7 @@ const createClient = async (packageConfig, deploymentName) => {
81
81
  (0, utils_log_1.debug)('Connecting to local DynamoDB instance');
82
82
  // Suppress ESLint error for dynamic require
83
83
  // eslint-disable-next-line @typescript-eslint/no-var-requires
84
- const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
84
+ const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
85
85
  return lib.localConnect(packageConfig, deploymentName);
86
86
  }
87
87
  const deployment = packageConfig.getDeployment(deploymentName);
@@ -1 +1 @@
1
- {"version":3,"file":"templateDynamoDBTable.js","sourceRoot":"","sources":["../../src/templateDynamoDBTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templateDynamoDBTable.js","sourceRoot":"","sources":["../../src/templateDynamoDBTable.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goldstack/template-dynamodb",
3
- "version": "0.3.35",
3
+ "version": "0.3.36",
4
4
  "description": "Utilities for building modules for DynamoDB access.",
5
5
  "keywords": [
6
6
  "goldstack",
@@ -1 +0,0 @@
1
- {"version":3,"file":"localDynamoDB.d.ts","sourceRoot":"","sources":["../../src/localDynamoDB.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6E5E;AAGD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,MAAM,MAAM,sBAAsB,GAAG,CACnC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACzB,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,OAAO,CAAC,EAAE,wBAAwB,EAClC,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,wBAAwB,GAAG,CACrC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;AAMnB,eAAO,MAAM,YAAY,EAAE,gBA2B1B,CAAC;AAEF,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,KAAG,MAIhE,CAAC;AAEF,eAAO,MAAM,YAAY,qBACL,gBAAgB,KACjC,cAWF,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,sBA8BhC,CAAC;AAyFF,eAAO,MAAM,oBAAoB,EAAE,wBAkBlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAuB/B,CAAC"}