@flipboxlabs/aws-audit-sdk 1.1.0
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/LICENSE +21 -0
- package/README.md +30 -0
- package/dist/audits.d.ts +188 -0
- package/dist/audits.d.ts.map +1 -0
- package/dist/audits.js +225 -0
- package/dist/batch/batch-processor.d.ts +81 -0
- package/dist/batch/batch-processor.d.ts.map +1 -0
- package/dist/batch/batch-processor.js +102 -0
- package/dist/batch/index.d.ts +2 -0
- package/dist/batch/index.d.ts.map +1 -0
- package/dist/batch/index.js +1 -0
- package/dist/config.d.ts +65 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +44 -0
- package/dist/constants.d.ts +147 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +191 -0
- package/dist/events/batch-handler.d.ts +62 -0
- package/dist/events/batch-handler.d.ts.map +1 -0
- package/dist/events/batch-handler.js +92 -0
- package/dist/events/bus.d.ts +79 -0
- package/dist/events/bus.d.ts.map +1 -0
- package/dist/events/bus.js +86 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/middleware/middy.d.ts +66 -0
- package/dist/middleware/middy.d.ts.map +1 -0
- package/dist/middleware/middy.js +105 -0
- package/dist/repository.d.ts +421 -0
- package/dist/repository.d.ts.map +1 -0
- package/dist/repository.js +486 -0
- package/dist/repository.utils.d.ts +37 -0
- package/dist/repository.utils.d.ts.map +1 -0
- package/dist/repository.utils.js +70 -0
- package/dist/schema/audit.d.ts +202 -0
- package/dist/schema/audit.d.ts.map +1 -0
- package/dist/schema/audit.js +48 -0
- package/dist/schema/common.d.ts +128 -0
- package/dist/schema/common.d.ts.map +1 -0
- package/dist/schema/common.js +148 -0
- package/dist/schema/index.d.ts +27 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +26 -0
- package/dist/schema/log.d.ts +211 -0
- package/dist/schema/log.d.ts.map +1 -0
- package/dist/schema/log.js +179 -0
- package/dist/schema/model.d.ts +110 -0
- package/dist/schema/model.d.ts.map +1 -0
- package/dist/schema/model.js +86 -0
- package/dist/schema/service.d.ts +189 -0
- package/dist/schema/service.d.ts.map +1 -0
- package/dist/schema/service.js +89 -0
- package/dist/schema/storage.d.ts +105 -0
- package/dist/schema/storage.d.ts.map +1 -0
- package/dist/schema/storage.js +63 -0
- package/dist/service.d.ts +285 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +237 -0
- package/dist/test-config.d.ts +56 -0
- package/dist/test-config.d.ts.map +1 -0
- package/dist/test-config.js +24 -0
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/utils.d.ts +231 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +313 -0
- package/package.json +85 -0
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import type { Logger } from "@aws-lambda-powertools/logger";
|
|
2
|
+
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
|
|
3
|
+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";
|
|
4
|
+
import type { AuditConfig } from "./config.js";
|
|
5
|
+
import { type Audit } from "./schema/audit.js";
|
|
6
|
+
import { type Pagination } from "./schema/model.js";
|
|
7
|
+
import type { UpsertAuditInput } from "./schema/service.js";
|
|
8
|
+
import type { AnyApp, AnyResourceType, InferApp, InferResourceType } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* DynamoDB TTL attribute structure.
|
|
11
|
+
*/
|
|
12
|
+
export interface TTLAttribute {
|
|
13
|
+
/** Unix timestamp in seconds when the item should expire */
|
|
14
|
+
ttl: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Generic type for unmarshalled DynamoDB attributes.
|
|
18
|
+
*/
|
|
19
|
+
export type UnmarshalledAttributes = {
|
|
20
|
+
[key: string]: NativeAttributeValue;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Identifiers used to locate audit records in DynamoDB.
|
|
24
|
+
* Used for constructing primary and secondary keys.
|
|
25
|
+
*/
|
|
26
|
+
export type Identifiers = {
|
|
27
|
+
/** Tenant/organization identifier for multi-tenancy support (optional) */
|
|
28
|
+
tenantId?: string;
|
|
29
|
+
/** Unique audit record identifier */
|
|
30
|
+
id: string | number;
|
|
31
|
+
/** Application that owns this audit record */
|
|
32
|
+
app: AnyApp;
|
|
33
|
+
/** Optional resource identifier within the application */
|
|
34
|
+
resourceId?: string | number;
|
|
35
|
+
/** Type of resource being audited */
|
|
36
|
+
resourceType: AnyResourceType;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Generic identifiers with typed App and ResourceType from config.
|
|
40
|
+
* @typeParam C - The audit config type for type inference
|
|
41
|
+
*/
|
|
42
|
+
export type TypedIdentifiers<C extends AuditConfig> = {
|
|
43
|
+
/** Tenant/organization identifier for multi-tenancy support (optional) */
|
|
44
|
+
tenantId?: string;
|
|
45
|
+
/** Unique audit record identifier */
|
|
46
|
+
id: string | number;
|
|
47
|
+
/** Application that owns this audit record */
|
|
48
|
+
app: InferApp<C>;
|
|
49
|
+
/** Optional resource identifier within the application */
|
|
50
|
+
resourceId?: string | number;
|
|
51
|
+
/** Type of resource being audited */
|
|
52
|
+
resourceType: InferResourceType<C>;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Options for listing audit items by resource with typed App and ResourceType.
|
|
56
|
+
* @typeParam C - The audit config type for type inference
|
|
57
|
+
*/
|
|
58
|
+
export type TypedListItemsOptions<C extends AuditConfig> = {
|
|
59
|
+
/** Tenant/organization identifier for multi-tenancy support (optional) */
|
|
60
|
+
tenantId?: string;
|
|
61
|
+
/** Resource identification */
|
|
62
|
+
resource: {
|
|
63
|
+
/** Type of the resource */
|
|
64
|
+
type: InferResourceType<C>;
|
|
65
|
+
/** Unique identifier of the resource */
|
|
66
|
+
id: string;
|
|
67
|
+
};
|
|
68
|
+
/** Application owning the resource */
|
|
69
|
+
app: InferApp<C>;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Options for listing audit items by trace ID with typed App and ResourceType.
|
|
73
|
+
* @typeParam C - The audit config type for type inference
|
|
74
|
+
*/
|
|
75
|
+
export type TypedListTraceItems<C extends AuditConfig> = {
|
|
76
|
+
/** Tenant/organization identifier for multi-tenancy support (optional) */
|
|
77
|
+
tenantId?: string;
|
|
78
|
+
/** Trace ID to query for related audit records */
|
|
79
|
+
trace: string;
|
|
80
|
+
/** Optional application filter */
|
|
81
|
+
app?: InferApp<C>;
|
|
82
|
+
/** Optional resource filter */
|
|
83
|
+
resource?: {
|
|
84
|
+
/** Filter by resource type */
|
|
85
|
+
type?: InferResourceType<C>;
|
|
86
|
+
/** Filter by resource ID */
|
|
87
|
+
id?: string;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Repository for managing audit records in DynamoDB.
|
|
92
|
+
*
|
|
93
|
+
* Provides CRUD operations for audit records with support for:
|
|
94
|
+
* - Single item retrieval by identifiers
|
|
95
|
+
* - Batch upsert operations with automatic batching
|
|
96
|
+
* - Paginated listing by resource
|
|
97
|
+
* - Paginated listing by trace ID for distributed tracing
|
|
98
|
+
*
|
|
99
|
+
* The repository uses a single-table design with composite keys and
|
|
100
|
+
* multiple GSI/LSI indexes for efficient query patterns.
|
|
101
|
+
*
|
|
102
|
+
* @typeParam C - The audit config type for type inference
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* const config = defineAuditConfig({
|
|
107
|
+
* apps: ['Orders', 'Inventory'] as const,
|
|
108
|
+
* resourceTypes: ['Order', 'Product'] as const,
|
|
109
|
+
* });
|
|
110
|
+
* const repository = new AuditRepository(logger, config);
|
|
111
|
+
*
|
|
112
|
+
* // Get a single audit record - typed!
|
|
113
|
+
* const audit = await repository.getItem({
|
|
114
|
+
* id: 'audit-123',
|
|
115
|
+
* app: 'Orders', // TypeScript knows valid values
|
|
116
|
+
* resourceType: 'Order', // Autocomplete works
|
|
117
|
+
* });
|
|
118
|
+
*
|
|
119
|
+
* // Upsert multiple audit records
|
|
120
|
+
* await repository.upsertBatch([
|
|
121
|
+
* { operation: 'createUser', status: 'success', ... },
|
|
122
|
+
* { operation: 'updateUser', status: 'success', ... },
|
|
123
|
+
* ]);
|
|
124
|
+
*
|
|
125
|
+
* // List audits for a specific resource
|
|
126
|
+
* const { items, pagination } = await repository.listItems({
|
|
127
|
+
* app: 'Orders',
|
|
128
|
+
* resource: { type: 'Order', id: 'user-123' },
|
|
129
|
+
* });
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare class AuditRepository<C extends AuditConfig> {
|
|
133
|
+
private readonly logger;
|
|
134
|
+
private readonly config;
|
|
135
|
+
private readonly client;
|
|
136
|
+
/**
|
|
137
|
+
* Creates a new AuditRepository instance.
|
|
138
|
+
*
|
|
139
|
+
* @param logger - Logger instance for error reporting and debugging
|
|
140
|
+
* @param config - Audit configuration for type inference
|
|
141
|
+
* @param client - DynamoDB client (defaults to new instance with AWS_REGION from environment)
|
|
142
|
+
*/
|
|
143
|
+
constructor(logger: Logger, config: C, client?: DynamoDBClient);
|
|
144
|
+
/**
|
|
145
|
+
* Retrieves a single audit record by its identifiers.
|
|
146
|
+
*
|
|
147
|
+
* Performs a DynamoDB GetItem operation using the constructed primary key.
|
|
148
|
+
* Returns undefined if the item is not found or if an error occurs.
|
|
149
|
+
*
|
|
150
|
+
* @param identifiers - Object containing id, app, and resourceType to locate the record
|
|
151
|
+
* @returns The audit record if found, undefined otherwise
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* const audit = await repository.getItem({
|
|
156
|
+
* id: 'audit-123',
|
|
157
|
+
* app: 'Orders',
|
|
158
|
+
* resourceType: 'Order',
|
|
159
|
+
* });
|
|
160
|
+
*
|
|
161
|
+
* if (audit) {
|
|
162
|
+
* console.log('Found audit:', audit.operation);
|
|
163
|
+
* }
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
getItem(identifiers: Omit<TypedIdentifiers<C>, "resourceId">): Promise<Audit | undefined>;
|
|
167
|
+
/**
|
|
168
|
+
* Upserts multiple audit records in batch.
|
|
169
|
+
*
|
|
170
|
+
* Performs a DynamoDB BatchWriteItem operation, automatically chunking
|
|
171
|
+
* items into batches of 25 (DynamoDB's maximum batch size).
|
|
172
|
+
* Each item is enriched with:
|
|
173
|
+
* - Primary keys (PK, SK)
|
|
174
|
+
* - Secondary index keys (GSI1_SS, GSI1_SN, LSI1_N)
|
|
175
|
+
* - TTL attribute (90 days from creation)
|
|
176
|
+
* - Timestamps (createdAt, updatedAt)
|
|
177
|
+
*
|
|
178
|
+
* @param items - Array of audit records to upsert
|
|
179
|
+
* @returns True when the operation completes (does not check for unprocessed items)
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```typescript
|
|
183
|
+
* await repository.upsertBatch([
|
|
184
|
+
* {
|
|
185
|
+
* operation: 'createUser',
|
|
186
|
+
* status: 'success',
|
|
187
|
+
* tier: 2,
|
|
188
|
+
* target: { app: App.App1, type: ResourceType.USER, id: 'user-123' },
|
|
189
|
+
* },
|
|
190
|
+
* {
|
|
191
|
+
* operation: 'updateUser',
|
|
192
|
+
* status: 'success',
|
|
193
|
+
* tier: 2,
|
|
194
|
+
* target: { app: App.App1, type: ResourceType.USER, id: 'user-456' },
|
|
195
|
+
* },
|
|
196
|
+
* ]);
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
upsertBatch(items: Array<UpsertAuditInput>): Promise<boolean>;
|
|
200
|
+
/**
|
|
201
|
+
* Lists audit records for a specific resource with pagination.
|
|
202
|
+
*
|
|
203
|
+
* Queries the GSI1_SS index to efficiently retrieve all audits
|
|
204
|
+
* associated with a specific app/resource combination.
|
|
205
|
+
* Results are returned in reverse chronological order.
|
|
206
|
+
*
|
|
207
|
+
* @param params - Query parameters including app and resource identifiers
|
|
208
|
+
* @param pagination - Optional pagination settings (pageSize, nextToken)
|
|
209
|
+
* @returns Paginated collection of audit records
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```typescript
|
|
213
|
+
* // Get first page
|
|
214
|
+
* const page1 = await repository.listItems({
|
|
215
|
+
* app: 'Orders',
|
|
216
|
+
* resource: { type: 'Order', id: 'user-123' },
|
|
217
|
+
* });
|
|
218
|
+
*
|
|
219
|
+
* // Get next page using the pagination token
|
|
220
|
+
* const page2 = await repository.listItems(
|
|
221
|
+
* { app: 'Orders', resource: { type: 'Order', id: 'user-123' } },
|
|
222
|
+
* { nextToken: page1.pagination?.nextToken },
|
|
223
|
+
* );
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
listItems(params: TypedListItemsOptions<C>, pagination?: Pagination): Promise<{
|
|
227
|
+
items: {
|
|
228
|
+
id: string;
|
|
229
|
+
status: "success" | "warn" | "fail" | "skip";
|
|
230
|
+
tier: number;
|
|
231
|
+
target: {
|
|
232
|
+
app: string;
|
|
233
|
+
type: string;
|
|
234
|
+
id?: string | number | undefined;
|
|
235
|
+
};
|
|
236
|
+
operation: string;
|
|
237
|
+
tenantId?: string | undefined;
|
|
238
|
+
source?: {
|
|
239
|
+
app: string;
|
|
240
|
+
type: string;
|
|
241
|
+
id?: string | number | undefined;
|
|
242
|
+
} | undefined;
|
|
243
|
+
context?: Record<string, string | number | boolean | {
|
|
244
|
+
[key: string]: string | number | boolean | /*elided*/ any;
|
|
245
|
+
}> | undefined;
|
|
246
|
+
message?: string | undefined;
|
|
247
|
+
rerunable?: boolean | undefined;
|
|
248
|
+
trace?: string | undefined;
|
|
249
|
+
event?: {
|
|
250
|
+
detail: string | undefined;
|
|
251
|
+
source?: string | undefined;
|
|
252
|
+
"detail-type"?: string | undefined;
|
|
253
|
+
} | undefined;
|
|
254
|
+
error?: any;
|
|
255
|
+
attempts?: {
|
|
256
|
+
number: number;
|
|
257
|
+
status: "success" | "warn" | "fail" | "skip";
|
|
258
|
+
at: string;
|
|
259
|
+
error?: any;
|
|
260
|
+
}[] | undefined;
|
|
261
|
+
}[];
|
|
262
|
+
pagination?: {
|
|
263
|
+
pageSize?: string | number | null | undefined;
|
|
264
|
+
nextToken?: string | null | undefined;
|
|
265
|
+
} | undefined;
|
|
266
|
+
}>;
|
|
267
|
+
/**
|
|
268
|
+
* Lists audit records by trace ID for distributed tracing.
|
|
269
|
+
*
|
|
270
|
+
* Queries the GSI1_SN index to retrieve all audits sharing
|
|
271
|
+
* the same trace ID, ordered by trace stage/depth.
|
|
272
|
+
* Supports optional filtering by app, resource type, and resource ID.
|
|
273
|
+
*
|
|
274
|
+
* This is useful for viewing the complete audit trail of a
|
|
275
|
+
* distributed operation across multiple services or resources.
|
|
276
|
+
*
|
|
277
|
+
* @param params - Query parameters including trace ID and optional filters
|
|
278
|
+
* @param pagination - Optional pagination settings (pageSize, nextToken)
|
|
279
|
+
* @returns Paginated collection of audit records in trace order
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* // Get all audits for a trace
|
|
284
|
+
* const trace = await repository.listTraceItems({
|
|
285
|
+
* trace: 'trace-abc-123',
|
|
286
|
+
* });
|
|
287
|
+
*
|
|
288
|
+
* // Filter by app and resource type
|
|
289
|
+
* const filtered = await repository.listTraceItems({
|
|
290
|
+
* trace: 'trace-abc-123',
|
|
291
|
+
* app: 'Orders',
|
|
292
|
+
* resource: { type: 'Order' },
|
|
293
|
+
* });
|
|
294
|
+
* ```
|
|
295
|
+
*/
|
|
296
|
+
listTraceItems(params: TypedListTraceItems<C>, pagination?: Pagination): Promise<{
|
|
297
|
+
items: {
|
|
298
|
+
id: string;
|
|
299
|
+
status: "success" | "warn" | "fail" | "skip";
|
|
300
|
+
tier: number;
|
|
301
|
+
target: {
|
|
302
|
+
app: string;
|
|
303
|
+
type: string;
|
|
304
|
+
id?: string | number | undefined;
|
|
305
|
+
};
|
|
306
|
+
operation: string;
|
|
307
|
+
tenantId?: string | undefined;
|
|
308
|
+
source?: {
|
|
309
|
+
app: string;
|
|
310
|
+
type: string;
|
|
311
|
+
id?: string | number | undefined;
|
|
312
|
+
} | undefined;
|
|
313
|
+
context?: Record<string, string | number | boolean | {
|
|
314
|
+
[key: string]: string | number | boolean | /*elided*/ any;
|
|
315
|
+
}> | undefined;
|
|
316
|
+
message?: string | undefined;
|
|
317
|
+
rerunable?: boolean | undefined;
|
|
318
|
+
trace?: string | undefined;
|
|
319
|
+
event?: {
|
|
320
|
+
detail: string | undefined;
|
|
321
|
+
source?: string | undefined;
|
|
322
|
+
"detail-type"?: string | undefined;
|
|
323
|
+
} | undefined;
|
|
324
|
+
error?: any;
|
|
325
|
+
attempts?: {
|
|
326
|
+
number: number;
|
|
327
|
+
status: "success" | "warn" | "fail" | "skip";
|
|
328
|
+
at: string;
|
|
329
|
+
error?: any;
|
|
330
|
+
}[] | undefined;
|
|
331
|
+
}[];
|
|
332
|
+
pagination?: {
|
|
333
|
+
pageSize?: string | number | null | undefined;
|
|
334
|
+
nextToken?: string | null | undefined;
|
|
335
|
+
} | undefined;
|
|
336
|
+
}>;
|
|
337
|
+
/**
|
|
338
|
+
* Constructs the DynamoDB primary key from identifiers.
|
|
339
|
+
*
|
|
340
|
+
* When tenantId is provided, it prefixes the partition key for multi-tenant isolation.
|
|
341
|
+
*
|
|
342
|
+
* @param identifiers - Object containing tenantId (optional), app, id, and resourceType
|
|
343
|
+
* @returns Primary key object with PK and SK attributes
|
|
344
|
+
* @internal
|
|
345
|
+
*/
|
|
346
|
+
private constructPrimaryKey;
|
|
347
|
+
/**
|
|
348
|
+
* Constructs all secondary index keys for an audit item.
|
|
349
|
+
*
|
|
350
|
+
* Includes:
|
|
351
|
+
* - LSI1_N: Tier-based sort key for priority ordering
|
|
352
|
+
* - GSI1_SS: Resource-based index keys
|
|
353
|
+
* - GSI1_SN: Trace-based index keys (if trace exists)
|
|
354
|
+
*
|
|
355
|
+
* @param item - The audit storage item
|
|
356
|
+
* @returns Object containing all secondary key attributes
|
|
357
|
+
* @internal
|
|
358
|
+
*/
|
|
359
|
+
private constructSecondaryKeys;
|
|
360
|
+
/**
|
|
361
|
+
* Constructs GSI1_SS (String-String) index keys for resource-based queries.
|
|
362
|
+
*
|
|
363
|
+
* The partition key combines app, resourceType, and resourceId for
|
|
364
|
+
* efficient querying of all audits for a specific resource.
|
|
365
|
+
* When tenantId is provided, it prefixes the partition key for multi-tenant isolation.
|
|
366
|
+
*
|
|
367
|
+
* @param identifiers - Full identifiers including resourceId and optional tenantId
|
|
368
|
+
* @returns GSI1_SS key attributes
|
|
369
|
+
* @internal
|
|
370
|
+
*/
|
|
371
|
+
private constructGSI1_SS;
|
|
372
|
+
/**
|
|
373
|
+
* Constructs GSI1_SN (String-Number) index keys for trace-based queries.
|
|
374
|
+
*
|
|
375
|
+
* Parses the trace string to extract the trace ID and stage number,
|
|
376
|
+
* enabling efficient querying of all audits in a distributed trace.
|
|
377
|
+
* When tenantId is provided, it prefixes the partition key for multi-tenant isolation.
|
|
378
|
+
*
|
|
379
|
+
* @param item - The audit storage item
|
|
380
|
+
* @returns GSI1_SN key attributes, or empty object if no trace
|
|
381
|
+
* @internal
|
|
382
|
+
*/
|
|
383
|
+
private constructGSI1_SN;
|
|
384
|
+
/**
|
|
385
|
+
* Constructs the TTL attribute for automatic item expiration.
|
|
386
|
+
*
|
|
387
|
+
* @param ttlSeconds - Seconds until expiration (defaults to 90 days)
|
|
388
|
+
* @param date - Base date for TTL calculation (defaults to now)
|
|
389
|
+
* @returns TTL attribute with Unix timestamp in seconds
|
|
390
|
+
* @internal
|
|
391
|
+
*/
|
|
392
|
+
private constructTTLAttribute;
|
|
393
|
+
/**
|
|
394
|
+
* Transforms a raw DynamoDB item into an Audit object.
|
|
395
|
+
*
|
|
396
|
+
* Reconstructs the trace string and extracts the clean ID
|
|
397
|
+
* from compound keys.
|
|
398
|
+
*
|
|
399
|
+
* @param item - Raw DynamoDB item with all keys
|
|
400
|
+
* @returns Parsed and validated Audit object
|
|
401
|
+
* @internal
|
|
402
|
+
*/
|
|
403
|
+
private transformItem;
|
|
404
|
+
/**
|
|
405
|
+
* Transforms a trace listing item into an audit list item payload.
|
|
406
|
+
*
|
|
407
|
+
* @param item - Raw trace listing item from GSI1_SN query
|
|
408
|
+
* @returns Parsed audit list item payload
|
|
409
|
+
* @internal
|
|
410
|
+
*/
|
|
411
|
+
private transformTraceListItem;
|
|
412
|
+
/**
|
|
413
|
+
* Transforms a resource listing item into an audit list item payload.
|
|
414
|
+
*
|
|
415
|
+
* @param item - Raw listing item from GSI1_SS query
|
|
416
|
+
* @returns Parsed audit list item payload
|
|
417
|
+
* @internal
|
|
418
|
+
*/
|
|
419
|
+
private transformListItem;
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
|