local-serverless-stack 0.9.0 → 0.11.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.
Files changed (76) hide show
  1. package/CHANGELOG.md +21 -3
  2. package/dist/client/namespaces/lambdas.d.ts +1 -0
  3. package/dist/client/namespaces/lambdas.d.ts.map +1 -1
  4. package/dist/client/namespaces/lambdas.js.map +1 -1
  5. package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
  6. package/dist/server/engine/backends/self-backend.js +4 -2
  7. package/dist/server/engine/backends/self-backend.js.map +1 -1
  8. package/dist/server/engine/emulators/dynamodb/index.d.ts +8 -0
  9. package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
  10. package/dist/server/engine/emulators/dynamodb/index.js +208 -7
  11. package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
  12. package/dist/server/engine/emulators/dynamodb/transactions.d.ts +35 -0
  13. package/dist/server/engine/emulators/dynamodb/transactions.d.ts.map +1 -0
  14. package/dist/server/engine/emulators/dynamodb/transactions.js +153 -0
  15. package/dist/server/engine/emulators/dynamodb/transactions.js.map +1 -0
  16. package/dist/server/engine/emulators/events/index.js +2 -2
  17. package/dist/server/engine/emulators/events/index.js.map +1 -1
  18. package/dist/server/engine/emulators/lambda-ctl/index.js +5 -5
  19. package/dist/server/engine/emulators/lambda-ctl/index.js.map +1 -1
  20. package/dist/server/engine/emulators/opensearch/index.d.ts.map +1 -1
  21. package/dist/server/engine/emulators/opensearch/index.js +5 -4
  22. package/dist/server/engine/emulators/opensearch/index.js.map +1 -1
  23. package/dist/server/engine/emulators/s3/index.d.ts +2 -0
  24. package/dist/server/engine/emulators/s3/index.d.ts.map +1 -1
  25. package/dist/server/engine/emulators/s3/index.js +91 -5
  26. package/dist/server/engine/emulators/s3/index.js.map +1 -1
  27. package/dist/server/engine/emulators/s3/multipart.d.ts +9 -0
  28. package/dist/server/engine/emulators/s3/multipart.d.ts.map +1 -0
  29. package/dist/server/engine/emulators/s3/multipart.js +88 -0
  30. package/dist/server/engine/emulators/s3/multipart.js.map +1 -0
  31. package/dist/server/engine/emulators/secretsmanager/index.d.ts +29 -0
  32. package/dist/server/engine/emulators/secretsmanager/index.d.ts.map +1 -0
  33. package/dist/server/engine/emulators/secretsmanager/index.js +450 -0
  34. package/dist/server/engine/emulators/secretsmanager/index.js.map +1 -0
  35. package/dist/server/engine/emulators/sns/index.js +2 -2
  36. package/dist/server/engine/emulators/sns/index.js.map +1 -1
  37. package/dist/server/engine/emulators/sqs/index.js +2 -2
  38. package/dist/server/engine/emulators/sqs/index.js.map +1 -1
  39. package/dist/server/engine/emulators/sts.js +2 -2
  40. package/dist/server/engine/emulators/sts.js.map +1 -1
  41. package/dist/server/engine/http/errors.d.ts +1 -0
  42. package/dist/server/engine/http/errors.d.ts.map +1 -1
  43. package/dist/server/engine/http/errors.js +12 -0
  44. package/dist/server/engine/http/errors.js.map +1 -1
  45. package/dist/server/engine/http/router.d.ts.map +1 -1
  46. package/dist/server/engine/http/router.js +4 -0
  47. package/dist/server/engine/http/router.js.map +1 -1
  48. package/dist/server/engine/types.d.ts +1 -1
  49. package/dist/server/engine/types.d.ts.map +1 -1
  50. package/dist/server/runtime/log-capture.d.ts +7 -0
  51. package/dist/server/runtime/log-capture.d.ts.map +1 -0
  52. package/dist/server/runtime/log-capture.js +206 -0
  53. package/dist/server/runtime/log-capture.js.map +1 -0
  54. package/dist/server/runtime/runtime-worker.js +23 -14
  55. package/dist/server/runtime/runtime-worker.js.map +1 -1
  56. package/dist/server/services/lambda-runtime-manager.d.ts +2 -0
  57. package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
  58. package/dist/server/services/lambda-runtime-manager.js +19 -1
  59. package/dist/server/services/lambda-runtime-manager.js.map +1 -1
  60. package/dist/ui/assets/{ApisPage-C0xaNFQW.js → ApisPage-DyjG-weG.js} +1 -1
  61. package/dist/ui/assets/{BucketDetailPage-Bnny8S04.js → BucketDetailPage-Bvrk1L6q.js} +1 -1
  62. package/dist/ui/assets/{BucketsPage-Dd3Y4-gU.js → BucketsPage-KgeLoK6e.js} +1 -1
  63. package/dist/ui/assets/{DynamoPage-JzSF-4VI.js → DynamoPage-C8rwaEIi.js} +1 -1
  64. package/dist/ui/assets/{DynamoTablePage-uM0DXGCo.js → DynamoTablePage-CN5P5f7S.js} +1 -1
  65. package/dist/ui/assets/{LambdaDetailPage-CoR9ZXdb.js → LambdaDetailPage-BPhEkF44.js} +3 -3
  66. package/dist/ui/assets/{LambdasPage-CNMX_O5P.js → LambdasPage-Dz4wxjVd.js} +1 -1
  67. package/dist/ui/assets/{OpenSearchCollectionPage-D5FaSCF1.js → OpenSearchCollectionPage-B3s964oC.js} +1 -1
  68. package/dist/ui/assets/{OpenSearchPage-FEzLxaej.js → OpenSearchPage-0fTJJovd.js} +1 -1
  69. package/dist/ui/assets/{OverviewPage-0xvjT7Q0.js → OverviewPage-B13l71G0.js} +1 -1
  70. package/dist/ui/assets/{QueueDetailPage-B2GaNLLe.js → QueueDetailPage-peLph1_v.js} +1 -1
  71. package/dist/ui/assets/{QueuesPage-Ch5kGwrp.js → QueuesPage-CF9yiBkq.js} +1 -1
  72. package/dist/ui/assets/{ServiceDetailPage-DKiz21oo.js → ServiceDetailPage-ZGLPswmY.js} +1 -1
  73. package/dist/ui/assets/{ServicesPage-Cmi3UIfM.js → ServicesPage-DsoZBBxo.js} +1 -1
  74. package/dist/ui/assets/{index-MF9fVrsr.js → index-BP9zQ9L-.js} +2 -2
  75. package/dist/ui/index.html +1 -1
  76. package/package.json +1 -1
@@ -0,0 +1,450 @@
1
+ // Secrets Manager emulator (AWS JSON 1.1, X-Amz-Target `secretsmanager.*`).
2
+ // Covers the data-plane surface applications actually depend on at boot:
3
+ // CreateSecret/GetSecretValue/PutSecretValue with real version staging
4
+ // (AWSCURRENT/AWSPREVIOUS), plus Describe/Update/Delete/Restore/List, tagging
5
+ // and GetRandomPassword. Secrets persist per region in a catalog; values are
6
+ // stored exactly as received (string or base64 binary). This is what lets a
7
+ // project retire the LocalStack Secrets Manager the self engine used to proxy
8
+ // through `fallbackEndpoint`.
9
+ //
10
+ // Not covered (rejected with an explicit AWS-shaped error, or silently
11
+ // accepted where harmless): rotation scheduling/Lambda, replication, KMS
12
+ // (KmsKeyId is accepted and ignored — values are not encrypted locally),
13
+ // resource policies.
14
+ import { randomBytes, randomUUID } from 'crypto';
15
+ import { AwsError, notImplementedOperation } from '../../http/errors.js';
16
+ const AWSCURRENT = 'AWSCURRENT';
17
+ const AWSPREVIOUS = 'AWSPREVIOUS';
18
+ const DEFAULT_RECOVERY_DAYS = 30;
19
+ const MIN_RECOVERY_DAYS = 7;
20
+ const MAX_RECOVERY_DAYS = 30;
21
+ const DEFAULT_PASSWORD_LENGTH = 32;
22
+ export class SecretsManagerEmulator {
23
+ ctx;
24
+ service = 'secretsmanager';
25
+ targetPrefix = 'secretsmanager';
26
+ jsonVersion = '1.1';
27
+ catalogs = new Map();
28
+ constructor(ctx) {
29
+ this.ctx = ctx;
30
+ }
31
+ async handle(operation, input, req) {
32
+ const region = req.region;
33
+ switch (operation) {
34
+ case 'CreateSecret': return this.createSecret(region, input);
35
+ case 'GetSecretValue': return this.getSecretValue(region, input);
36
+ case 'PutSecretValue': return this.putSecretValue(region, input);
37
+ case 'UpdateSecret': return this.updateSecret(region, input);
38
+ case 'DescribeSecret': return this.describeSecret(region, input);
39
+ case 'DeleteSecret': return this.deleteSecret(region, input);
40
+ case 'RestoreSecret': return this.restoreSecret(region, input);
41
+ case 'ListSecrets': return this.listSecrets(region, input);
42
+ case 'TagResource': return this.tagResource(region, input);
43
+ case 'UntagResource': return this.untagResource(region, input);
44
+ case 'GetRandomPassword': return this.getRandomPassword(input);
45
+ default: throw notImplementedOperation('secretsmanager', operation);
46
+ }
47
+ }
48
+ // -- shared plumbing -------------------------------------------------------
49
+ async catalogFor(region) {
50
+ let catalog = this.catalogs.get(region);
51
+ if (!catalog) {
52
+ catalog = this.ctx.store.catalog(`secretsmanager/${region}/secrets`);
53
+ this.catalogs.set(region, catalog);
54
+ }
55
+ await catalog.load();
56
+ return catalog;
57
+ }
58
+ // SecretId is a friendly name, a full ARN or a partial ARN — match all three.
59
+ findBySecretId(catalog, secretId) {
60
+ if (typeof secretId !== 'string' || secretId.length === 0) {
61
+ throw invalidParameter('Invalid SecretId provided');
62
+ }
63
+ const byName = catalog.get(secretId);
64
+ if (byName)
65
+ return byName;
66
+ return catalog.values().find((record) => record.arn === secretId || record.arn.endsWith(`:secret:${secretId}`));
67
+ }
68
+ requireSecret(catalog, secretId) {
69
+ const record = this.findBySecretId(catalog, secretId);
70
+ if (!record) {
71
+ throw new AwsError('ResourceNotFoundException', "Secrets Manager can't find the specified secret.", { status: 400 });
72
+ }
73
+ return record;
74
+ }
75
+ requireActiveSecret(catalog, secretId) {
76
+ const record = this.requireSecret(catalog, secretId);
77
+ if (record.deletedAtMs !== undefined) {
78
+ throw invalidRequest('You can’t perform this operation on the secret because it was marked for deletion.');
79
+ }
80
+ return record;
81
+ }
82
+ arnFor(region, name) {
83
+ const suffix = randomBytes(4).toString('base64url').slice(0, 6);
84
+ return `arn:aws:secretsmanager:${region}:${this.ctx.config.account}:secret:${name}-${suffix}`;
85
+ }
86
+ currentVersion(record) {
87
+ return record.versions.find((version) => version.versionStages.includes(AWSCURRENT));
88
+ }
89
+ // Attach a brand-new version and roll the requested stages onto it. Every
90
+ // staging label is unique to one version at a time (AWS invariant): applying
91
+ // a stage strips it from whoever held it. Promoting AWSCURRENT additionally
92
+ // moves AWSPREVIOUS onto the version that just lost AWSCURRENT — which first
93
+ // requires stripping AWSPREVIOUS from its prior holder, or successive
94
+ // rotations would leave several versions tagged AWSPREVIOUS.
95
+ stageNewVersion(record, version, stages) {
96
+ const promotingCurrent = stages.includes(AWSCURRENT);
97
+ const outgoingCurrent = promotingCurrent ? this.currentVersion(record) : undefined;
98
+ for (const existing of record.versions) {
99
+ existing.versionStages = existing.versionStages.filter((stage) => !stages.includes(stage));
100
+ }
101
+ if (outgoingCurrent && outgoingCurrent !== version) {
102
+ for (const existing of record.versions) {
103
+ existing.versionStages = existing.versionStages.filter((stage) => stage !== AWSPREVIOUS);
104
+ }
105
+ outgoingCurrent.versionStages.push(AWSPREVIOUS);
106
+ }
107
+ version.versionStages = [...stages];
108
+ record.versions.push(version);
109
+ // Drop versions that no longer carry any stage (AWS garbage-collects these).
110
+ record.versions = record.versions.filter((v) => v === version || v.versionStages.length > 0);
111
+ }
112
+ // -- operations ------------------------------------------------------------
113
+ async createSecret(region, input) {
114
+ const name = requireString(input, 'Name');
115
+ const catalog = await this.catalogFor(region);
116
+ const existing = catalog.get(name);
117
+ if (existing) {
118
+ if (existing.deletedAtMs !== undefined) {
119
+ // AWS blocks reusing the name of a secret scheduled for deletion until
120
+ // it is restored or the recovery window elapses.
121
+ throw invalidRequest('You can’t create this secret because a secret with this name is already scheduled for deletion.');
122
+ }
123
+ // Idempotent replay when the same client token created it.
124
+ const token = input.ClientRequestToken;
125
+ if (typeof token === 'string' && this.currentVersion(existing)?.versionId === token) {
126
+ return { ARN: existing.arn, Name: existing.name, VersionId: token };
127
+ }
128
+ throw new AwsError('ResourceExistsException', 'The operation failed because the secret already exists.', { status: 400 });
129
+ }
130
+ const { secretString, secretBinary } = readSecretValue(input, false);
131
+ const versionId = clientToken(input);
132
+ const nowMs = Date.now();
133
+ const record = {
134
+ name,
135
+ arn: this.arnFor(region, name),
136
+ description: optionalString(input, 'Description'),
137
+ kmsKeyId: optionalString(input, 'KmsKeyId'),
138
+ tags: readTags(input),
139
+ versions: [],
140
+ createdAtMs: nowMs,
141
+ lastChangedAtMs: nowMs,
142
+ };
143
+ if (secretString !== undefined || secretBinary !== undefined) {
144
+ this.stageNewVersion(record, newVersion(versionId, secretString, secretBinary, nowMs), [AWSCURRENT]);
145
+ }
146
+ catalog.set(name, record);
147
+ return {
148
+ ARN: record.arn,
149
+ Name: record.name,
150
+ VersionId: secretString !== undefined || secretBinary !== undefined ? versionId : undefined,
151
+ };
152
+ }
153
+ async getSecretValue(region, input) {
154
+ const catalog = await this.catalogFor(region);
155
+ const record = this.requireActiveSecret(catalog, input.SecretId);
156
+ const versionId = optionalString(input, 'VersionId');
157
+ const versionStage = optionalString(input, 'VersionStage');
158
+ let version;
159
+ if (versionId) {
160
+ version = record.versions.find((v) => v.versionId === versionId);
161
+ if (version && versionStage && !version.versionStages.includes(versionStage))
162
+ version = undefined;
163
+ }
164
+ else {
165
+ version = record.versions.find((v) => v.versionStages.includes(versionStage ?? AWSCURRENT));
166
+ }
167
+ if (!version) {
168
+ throw new AwsError('ResourceNotFoundException', "Secrets Manager can't find the specified secret value for staging label: " + (versionStage ?? AWSCURRENT), { status: 400 });
169
+ }
170
+ // AWS tracks LastAccessedDate at day granularity — persist only when the
171
+ // day rolls over, so a read-heavy secret doesn't rewrite the whole
172
+ // per-region catalog on every GetSecretValue.
173
+ const nowMs = Date.now();
174
+ const previousDay = record.lastAccessedAtMs ? Math.floor(record.lastAccessedAtMs / 86_400_000) : -1;
175
+ record.lastAccessedAtMs = nowMs;
176
+ if (Math.floor(nowMs / 86_400_000) !== previousDay)
177
+ catalog.set(record.name, record);
178
+ return {
179
+ ARN: record.arn,
180
+ Name: record.name,
181
+ VersionId: version.versionId,
182
+ SecretString: version.secretString,
183
+ SecretBinary: version.secretBinary,
184
+ VersionStages: [...version.versionStages],
185
+ CreatedDate: epochSeconds(version.createdAtMs),
186
+ };
187
+ }
188
+ async putSecretValue(region, input) {
189
+ const catalog = await this.catalogFor(region);
190
+ const record = this.requireActiveSecret(catalog, input.SecretId);
191
+ const { secretString, secretBinary } = readSecretValue(input, true);
192
+ const versionId = clientToken(input);
193
+ if (record.versions.some((v) => v.versionId === versionId)) {
194
+ // Same token already applied — idempotent, return the existing version.
195
+ const existing = record.versions.find((v) => v.versionId === versionId);
196
+ return { ARN: record.arn, Name: record.name, VersionId: versionId, VersionStages: [...existing.versionStages] };
197
+ }
198
+ const stages = readVersionStages(input);
199
+ const nowMs = Date.now();
200
+ const version = newVersion(versionId, secretString, secretBinary, nowMs);
201
+ this.stageNewVersion(record, version, stages);
202
+ record.lastChangedAtMs = nowMs;
203
+ catalog.set(record.name, record);
204
+ return { ARN: record.arn, Name: record.name, VersionId: versionId, VersionStages: [...version.versionStages] };
205
+ }
206
+ async updateSecret(region, input) {
207
+ const catalog = await this.catalogFor(region);
208
+ const record = this.requireActiveSecret(catalog, input.SecretId);
209
+ if (input.Description !== undefined)
210
+ record.description = optionalString(input, 'Description');
211
+ if (input.KmsKeyId !== undefined)
212
+ record.kmsKeyId = optionalString(input, 'KmsKeyId');
213
+ const nowMs = Date.now();
214
+ let versionId;
215
+ if (input.SecretString !== undefined || input.SecretBinary !== undefined) {
216
+ const { secretString, secretBinary } = readSecretValue(input, false);
217
+ versionId = clientToken(input);
218
+ // Idempotent on ClientRequestToken, like PutSecretValue: a retry with the
219
+ // same token must not stage a second version sharing that id.
220
+ if (!record.versions.some((v) => v.versionId === versionId)) {
221
+ this.stageNewVersion(record, newVersion(versionId, secretString, secretBinary, nowMs), [AWSCURRENT]);
222
+ }
223
+ }
224
+ record.lastChangedAtMs = nowMs;
225
+ catalog.set(record.name, record);
226
+ return { ARN: record.arn, Name: record.name, VersionId: versionId };
227
+ }
228
+ async describeSecret(region, input) {
229
+ const catalog = await this.catalogFor(region);
230
+ const record = this.requireSecret(catalog, input.SecretId);
231
+ const versionIdsToStages = {};
232
+ for (const version of record.versions) {
233
+ if (version.versionStages.length > 0)
234
+ versionIdsToStages[version.versionId] = [...version.versionStages];
235
+ }
236
+ return {
237
+ ARN: record.arn,
238
+ Name: record.name,
239
+ Description: record.description,
240
+ KmsKeyId: record.kmsKeyId,
241
+ Tags: serializeTags(record.tags),
242
+ VersionIdsToStages: versionIdsToStages,
243
+ CreatedDate: epochSeconds(record.createdAtMs),
244
+ LastChangedDate: epochSeconds(record.lastChangedAtMs),
245
+ LastAccessedDate: record.lastAccessedAtMs ? epochSeconds(record.lastAccessedAtMs) : undefined,
246
+ DeletedDate: record.deletedAtMs ? epochSeconds(record.deletedAtMs) : undefined,
247
+ };
248
+ }
249
+ async deleteSecret(region, input) {
250
+ const catalog = await this.catalogFor(region);
251
+ const record = this.requireSecret(catalog, input.SecretId);
252
+ const force = input.ForceDeleteWithoutRecovery === true;
253
+ const hasRecoveryWindow = input.RecoveryWindowInDays !== undefined;
254
+ if (force && hasRecoveryWindow) {
255
+ throw invalidParameter('You can’t use ForceDeleteWithoutRecovery in conjunction with RecoveryWindowInDays.');
256
+ }
257
+ if (force) {
258
+ catalog.delete(record.name);
259
+ return { ARN: record.arn, Name: record.name, DeletionDate: epochSeconds(Date.now()) };
260
+ }
261
+ const days = readRecoveryWindow(input);
262
+ const nowMs = Date.now();
263
+ record.deletedAtMs = nowMs;
264
+ record.deletionAtMs = nowMs + days * 86_400_000;
265
+ catalog.set(record.name, record);
266
+ return { ARN: record.arn, Name: record.name, DeletionDate: epochSeconds(record.deletionAtMs) };
267
+ }
268
+ async restoreSecret(region, input) {
269
+ const catalog = await this.catalogFor(region);
270
+ const record = this.requireSecret(catalog, input.SecretId);
271
+ record.deletedAtMs = undefined;
272
+ record.deletionAtMs = undefined;
273
+ catalog.set(record.name, record);
274
+ return { ARN: record.arn, Name: record.name };
275
+ }
276
+ async listSecrets(region, input) {
277
+ const catalog = await this.catalogFor(region);
278
+ const includePlanned = input.IncludePlannedDeletion === true;
279
+ const secretList = catalog.values()
280
+ .filter((record) => includePlanned || record.deletedAtMs === undefined)
281
+ .sort((a, b) => a.name.localeCompare(b.name))
282
+ .map((record) => ({
283
+ ARN: record.arn,
284
+ Name: record.name,
285
+ Description: record.description,
286
+ KmsKeyId: record.kmsKeyId,
287
+ Tags: serializeTags(record.tags),
288
+ SecretVersionsToStages: versionsToStages(record.versions),
289
+ CreatedDate: epochSeconds(record.createdAtMs),
290
+ LastChangedDate: epochSeconds(record.lastChangedAtMs),
291
+ LastAccessedDate: record.lastAccessedAtMs ? epochSeconds(record.lastAccessedAtMs) : undefined,
292
+ DeletedDate: record.deletedAtMs ? epochSeconds(record.deletedAtMs) : undefined,
293
+ }));
294
+ return { SecretList: secretList };
295
+ }
296
+ async tagResource(region, input) {
297
+ const catalog = await this.catalogFor(region);
298
+ const record = this.requireSecret(catalog, input.SecretId);
299
+ for (const tag of readTags(input)) {
300
+ const existing = record.tags.find((t) => t.Key === tag.Key);
301
+ if (existing)
302
+ existing.Value = tag.Value;
303
+ else
304
+ record.tags.push(tag);
305
+ }
306
+ catalog.set(record.name, record);
307
+ return {};
308
+ }
309
+ async untagResource(region, input) {
310
+ const catalog = await this.catalogFor(region);
311
+ const record = this.requireSecret(catalog, input.SecretId);
312
+ const keys = Array.isArray(input.TagKeys) ? input.TagKeys.map(String) : [];
313
+ record.tags = record.tags.filter((tag) => !keys.includes(tag.Key));
314
+ catalog.set(record.name, record);
315
+ return {};
316
+ }
317
+ getRandomPassword(input) {
318
+ const length = typeof input.PasswordLength === 'number' ? input.PasswordLength : DEFAULT_PASSWORD_LENGTH;
319
+ if (length < 1 || length > 4096)
320
+ throw invalidParameter('PasswordLength must be between 1 and 4096.');
321
+ const exclude = new Set((optionalString(input, 'ExcludeCharacters') ?? '').split(''));
322
+ const classes = [];
323
+ const addClass = (chars) => {
324
+ const filtered = [...chars].filter((ch) => !exclude.has(ch));
325
+ if (filtered.length > 0)
326
+ classes.push(filtered);
327
+ };
328
+ if (input.ExcludeUppercase !== true)
329
+ addClass('ABCDEFGHIJKLMNOPQRSTUVWXYZ');
330
+ if (input.ExcludeLowercase !== true)
331
+ addClass('abcdefghijklmnopqrstuvwxyz');
332
+ if (input.ExcludeNumbers !== true)
333
+ addClass('0123456789');
334
+ if (input.ExcludePunctuation !== true)
335
+ addClass('!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~');
336
+ if (input.IncludeSpace === true)
337
+ addClass(' ');
338
+ const pool = classes.flat();
339
+ if (pool.length === 0)
340
+ throw invalidParameter('The character pool is empty after applying the exclusions.');
341
+ const chars = Array.from({ length }, () => pool[randomInt(pool.length)]);
342
+ // RequireEachIncludedType defaults to true: guarantee at least one
343
+ // character from every included class, at distinct positions.
344
+ if (input.RequireEachIncludedType !== false && length >= classes.length) {
345
+ const positions = [...Array(length).keys()];
346
+ for (let i = positions.length - 1; i > 0; i--) {
347
+ const j = randomInt(i + 1);
348
+ [positions[i], positions[j]] = [positions[j], positions[i]];
349
+ }
350
+ classes.forEach((cls, i) => { chars[positions[i]] = cls[randomInt(cls.length)]; });
351
+ }
352
+ return { RandomPassword: chars.join('') };
353
+ }
354
+ }
355
+ // ---------------------------------------------------------------------------
356
+ // Pure helpers
357
+ // ---------------------------------------------------------------------------
358
+ function newVersion(versionId, secretString, secretBinary, createdAtMs) {
359
+ return { versionId, secretString, secretBinary, versionStages: [], createdAtMs };
360
+ }
361
+ // Uniform integer in [0, max) with rejection sampling — no modulo bias, so the
362
+ // generated passwords are unbiased over the character pool.
363
+ function randomInt(max) {
364
+ const limit = Math.floor(256 / max) * max;
365
+ let byte;
366
+ do {
367
+ byte = randomBytes(1)[0];
368
+ } while (byte >= limit);
369
+ return byte % max;
370
+ }
371
+ function clientToken(input) {
372
+ const token = input.ClientRequestToken;
373
+ return typeof token === 'string' && token.length > 0 ? token : randomUUID();
374
+ }
375
+ function readSecretValue(input, required) {
376
+ const secretString = input.SecretString;
377
+ const secretBinary = input.SecretBinary;
378
+ if (secretString !== undefined && typeof secretString !== 'string') {
379
+ throw invalidParameter('SecretString must be a string.');
380
+ }
381
+ if (secretBinary !== undefined && typeof secretBinary !== 'string') {
382
+ throw invalidParameter('SecretBinary must be a base64-encoded string.');
383
+ }
384
+ if (required && secretString === undefined && secretBinary === undefined) {
385
+ throw invalidParameter('You must provide either SecretString or SecretBinary.');
386
+ }
387
+ return {
388
+ secretString: typeof secretString === 'string' ? secretString : undefined,
389
+ secretBinary: typeof secretBinary === 'string' ? secretBinary : undefined,
390
+ };
391
+ }
392
+ function readVersionStages(input) {
393
+ const stages = input.VersionStages;
394
+ if (stages === undefined)
395
+ return [AWSCURRENT];
396
+ if (!Array.isArray(stages) || stages.length === 0 || !stages.every((s) => typeof s === 'string')) {
397
+ throw invalidParameter('VersionStages must be a non-empty list of strings.');
398
+ }
399
+ return stages;
400
+ }
401
+ function readRecoveryWindow(input) {
402
+ const raw = input.RecoveryWindowInDays;
403
+ if (raw === undefined)
404
+ return DEFAULT_RECOVERY_DAYS;
405
+ if (typeof raw !== 'number' || !Number.isInteger(raw) || raw < MIN_RECOVERY_DAYS || raw > MAX_RECOVERY_DAYS) {
406
+ throw invalidParameter(`RecoveryWindowInDays must be an integer between ${MIN_RECOVERY_DAYS} and ${MAX_RECOVERY_DAYS}.`);
407
+ }
408
+ return raw;
409
+ }
410
+ function readTags(input) {
411
+ const tags = input.Tags;
412
+ if (!Array.isArray(tags))
413
+ return [];
414
+ return tags.map((tag) => {
415
+ const entry = tag;
416
+ return { Key: String(entry.Key ?? ''), Value: String(entry.Value ?? '') };
417
+ });
418
+ }
419
+ function serializeTags(tags) {
420
+ return tags.length > 0 ? tags.map((tag) => ({ Key: tag.Key, Value: tag.Value })) : undefined;
421
+ }
422
+ function versionsToStages(versions) {
423
+ const map = {};
424
+ for (const version of versions) {
425
+ if (version.versionStages.length > 0)
426
+ map[version.versionId] = [...version.versionStages];
427
+ }
428
+ return map;
429
+ }
430
+ function requireString(input, field) {
431
+ const value = input[field];
432
+ if (typeof value !== 'string' || value.length === 0) {
433
+ throw invalidParameter(`${field} is a required field.`);
434
+ }
435
+ return value;
436
+ }
437
+ function optionalString(input, field) {
438
+ const value = input[field];
439
+ return typeof value === 'string' ? value : undefined;
440
+ }
441
+ function epochSeconds(ms) {
442
+ return Math.floor(ms / 1000);
443
+ }
444
+ function invalidParameter(message) {
445
+ return new AwsError('InvalidParameterException', message, { status: 400 });
446
+ }
447
+ function invalidRequest(message) {
448
+ return new AwsError('InvalidRequestException', message, { status: 400 });
449
+ }
450
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/secretsmanager/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  // "already exists" message) and deleteSNSTopic (ListTopics then match ARN by
8
8
  // endsWith(':' + name), tolerates "NotFound").
9
9
  import { randomUUID } from 'crypto';
10
- import { AwsError, notImplemented } from '../../http/errors.js';
10
+ import { AwsError, notImplementedOperation } from '../../http/errors.js';
11
11
  import { tag, xmlDocument } from '../../http/xml.js';
12
12
  const SNS_XMLNS = 'http://sns.amazonaws.com/doc/2010-03-31/';
13
13
  export class SnsEmulator {
@@ -27,7 +27,7 @@ export class SnsEmulator {
27
27
  case 'DeleteTopic': return this.deleteTopic(region, params);
28
28
  case 'GetTopicAttributes': return this.getTopicAttributes(region, params);
29
29
  case 'Publish': return this.publish(region, params);
30
- default: throw notImplemented('sns', action);
30
+ default: throw notImplementedOperation('sns', action);
31
31
  }
32
32
  }
33
33
  publishCount(topicArn) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/sns/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/sns/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  // Fidelity ground truth is LSS's own SDK consumers: resource-provisioner
7
7
  // branches on err.name 'QueueAlreadyExists' / substring 'NonExistentQueue',
8
8
  // queue-inspector reads the live Approximate* counters and CreatedTimestamp.
9
- import { AwsError, notImplemented } from '../../http/errors.js';
9
+ import { AwsError, notImplementedOperation } from '../../http/errors.js';
10
10
  import { SqsQueue } from './queue.js';
11
11
  import { md5OfMessageAttributes } from './md5.js';
12
12
  // Read-time defaults for attributes the client did not set. Also the
@@ -107,7 +107,7 @@ export class SqsEmulator {
107
107
  case 'ChangeMessageVisibility':
108
108
  return this.changeMessageVisibility(region, catalog, input);
109
109
  default:
110
- throw notImplemented('sqs', operation);
110
+ throw notImplementedOperation('sqs', operation);
111
111
  }
112
112
  }
113
113
  // ------------------------------------------------------------------