@geekmidas/envkit 1.0.7 → 1.1.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/dist/sst.d.cts CHANGED
@@ -14,6 +14,7 @@ declare enum ResourceType {
14
14
  Vpc = "sst.aws.Vpc",
15
15
  Secret = "sst.sst.Secret",
16
16
  Dynamo = "sst.aws.Dynamo",
17
+ Queue = "sst.aws.Queue",
17
18
  SSTSecret = "sst:sst:Secret",
18
19
  SSTFunction = "sst:sst:Function",
19
20
  SSTApiGatewayV2 = "sst:aws:ApiGatewayV2",
@@ -21,6 +22,7 @@ declare enum ResourceType {
21
22
  SSTBucket = "sst:aws:Bucket",
22
23
  SnsTopic = "sst:aws:SnsTopic",
23
24
  SSTDynamo = "sst:aws:Dynamo",
25
+ SSTQueue = "sst:aws:Queue",
24
26
  }
25
27
  /**
26
28
  * AWS API Gateway V2 resource type.
@@ -77,6 +79,14 @@ type SnsTopic = {
77
79
  type: ResourceType.SnsTopic;
78
80
  arn: string;
79
81
  };
82
+ /**
83
+ * AWS SQS Queue resource type.
84
+ */
85
+ type Queue = {
86
+ type: ResourceType.Queue | ResourceType.SSTQueue;
87
+ url: string;
88
+ arn: string;
89
+ };
80
90
  /**
81
91
  * AWS DynamoDB Table resource type.
82
92
  */
@@ -87,7 +97,7 @@ type Dynamo = {
87
97
  /**
88
98
  * Union type of all supported SST resource types.
89
99
  */
90
- type SstResource = ApiGatewayV2 | Postgres | Function | Bucket | Vpc | Secret | SnsTopic | Dynamo;
100
+ type SstResource = ApiGatewayV2 | Postgres | Function | Bucket | Vpc | Secret | SnsTopic | Queue | Dynamo;
91
101
  /**
92
102
  * Function type for processing a specific resource type into environment variables.
93
103
  *
@@ -182,6 +192,160 @@ declare class SstEnvironmentBuilder<TRecord extends Record<string, SstResource |
182
192
  build(): EnvRecord;
183
193
  }
184
194
  //#endregion
195
+ //#region src/SstEnvValidator.d.ts
196
+ /**
197
+ * Variables AWS Lambda injects into the runtime. Always valid on AWS, but never
198
+ * assumed — opt in via `platform: 'aws'` or by spreading {@link AWS_RUNTIME_ENV_VARS}
199
+ * into `whitelist`.
200
+ */
201
+ declare const AWS_RUNTIME_ENV_VARS: readonly ["AWS_REGION", "AWS_DEFAULT_REGION", "AWS_ENDPOINT_URL", "AWS_ENDPOINT", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "AWS_LAMBDA_FUNCTION_NAME", "AWS_LAMBDA_FUNCTION_VERSION"];
202
+ /**
203
+ * Variables GCP injects into Cloud Functions / Cloud Run.
204
+ */
205
+ declare const GCP_RUNTIME_ENV_VARS: readonly ["GOOGLE_CLOUD_PROJECT", "GCP_PROJECT", "FUNCTION_TARGET", "FUNCTION_SIGNATURE_TYPE", "K_SERVICE", "K_REVISION", "K_CONFIGURATION", "PORT"];
206
+ /**
207
+ * Variables Cloudflare exposes to Workers. Workers inject almost nothing into
208
+ * the global env, so this is intentionally minimal.
209
+ */
210
+ declare const CLOUDFLARE_RUNTIME_ENV_VARS: readonly ["CF_PAGES", "CF_PAGES_URL"];
211
+ /**
212
+ * Registry of platform → always-valid runtime variables. Export, don't assume:
213
+ * a caller states the platform it deploys to and the matching set is trusted.
214
+ */
215
+ declare const PLATFORM_ENV_VARS: {
216
+ readonly aws: readonly ["AWS_REGION", "AWS_DEFAULT_REGION", "AWS_ENDPOINT_URL", "AWS_ENDPOINT", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "AWS_LAMBDA_FUNCTION_NAME", "AWS_LAMBDA_FUNCTION_VERSION"];
217
+ readonly gcp: readonly ["GOOGLE_CLOUD_PROJECT", "GCP_PROJECT", "FUNCTION_TARGET", "FUNCTION_SIGNATURE_TYPE", "K_SERVICE", "K_REVISION", "K_CONFIGURATION", "PORT"];
218
+ readonly cloudflare: readonly ["CF_PAGES", "CF_PAGES_URL"];
219
+ };
220
+ type Platform = keyof typeof PLATFORM_ENV_VARS;
221
+ /**
222
+ * The always-valid runtime variables for a platform. The "whitelist construct":
223
+ * resolve a platform to its set, to spread into `whitelist` or compare against.
224
+ */
225
+ declare function platformEnvVars(platform: Platform): readonly string[];
226
+ /**
227
+ * Input shape for the validator: the same record `SstEnvironmentBuilder`
228
+ * accepts — keyed by resource name, valued by an SST resource (or a plain
229
+ * string for pass-through env vars).
230
+ */
231
+ type LinkRecord = Record<string, SstResource | InputValue | string>;
232
+ interface ValidationResult {
233
+ valid: boolean;
234
+ /** Requested variables that are not available (excluding optional `?` vars). */
235
+ invalidVars: string[];
236
+ /** Every variable the links + whitelist make available. */
237
+ availableVars: string[];
238
+ /** Nearest available matches for each invalid variable (best first). */
239
+ suggestions: Record<string, string[]>;
240
+ }
241
+ interface EnvValidatorOptions {
242
+ /**
243
+ * Platform whose runtime-injected variables are always valid. Omit to assume
244
+ * none — the validator never bakes in a platform's variables.
245
+ */
246
+ platform?: Platform;
247
+ /**
248
+ * Extra always-valid variables in addition to the platform set — typically
249
+ * the keys of a function's explicit `environment`.
250
+ */
251
+ whitelist?: readonly string[];
252
+ /**
253
+ * Label for the deployable unit (e.g. a function name), used in error
254
+ * messages so a failure points at exactly one unit.
255
+ */
256
+ context?: string;
257
+ }
258
+ /**
259
+ * Thrown when a deployable unit requires environment variables its links do not
260
+ * provide. Carries the structured `missing`/`available`/`suggestions` so callers
261
+ * can inspect the failure programmatically, not just read the message.
262
+ */
263
+ declare class EnvValidationError extends Error {
264
+ readonly isEnvValidationError = true;
265
+ readonly missing: string[];
266
+ readonly available: string[];
267
+ readonly suggestions: Record<string, string[]>;
268
+ readonly context?: string;
269
+ constructor(args: {
270
+ missing: string[];
271
+ available: string[];
272
+ linkVars: string[];
273
+ suggestions: Record<string, string[]>;
274
+ context?: string;
275
+ });
276
+ private static format;
277
+ }
278
+ /**
279
+ * Derives the set of environment-variable **keys** a group of linked resources
280
+ * will produce at runtime — without resolving any value.
281
+ *
282
+ * This reuses the runtime resolvers (`sstResolvers`) via {@link EnvironmentBuilder},
283
+ * so the keys computed here are exactly the keys a deployed function receives:
284
+ * the validator and the runtime resolution share a single source of truth and
285
+ * cannot drift. Because every resolver's output keys depend only on the record
286
+ * key and the resource `type` (never the value), each resource is reduced to
287
+ * `{ type }` before building, so no SST `Output` is ever read.
288
+ *
289
+ * @example
290
+ * resolveEnvKeys({ db: { type: ResourceType.Postgres } });
291
+ * // ['DB_NAME', 'DB_HOST', 'DB_PASSWORD', 'DB_PORT', 'DB_USERNAME', 'DB_URL']
292
+ */
293
+ declare function resolveEnvKeys(record: LinkRecord): string[];
294
+ /**
295
+ * Validates that the environment variables a deployable unit requires are
296
+ * actually provided by its linked resources — at infra time, before deploy.
297
+ *
298
+ * Available variables are the union of the keys derived from `links`
299
+ * ({@link resolveEnvKeys}), the chosen platform's runtime variables (only when
300
+ * `options.platform` is set — nothing is assumed), and any `options.whitelist`
301
+ * (e.g. the keys of a function's explicit `environment`). A requested variable
302
+ * suffixed with `?` is treated as optional and never causes a failure.
303
+ *
304
+ * @example
305
+ * const validator = new EnvValidator(
306
+ * { db: { type: ResourceType.Postgres } },
307
+ * { platform: 'aws', whitelist: ['APP_NAME'], context: 'orders-fn' },
308
+ * );
309
+ * validator.assert(['DB_HOST', 'AWS_REGION', 'APP_NAME', 'SENTRY_DSN?']); // ok
310
+ * validator.assert(['DATABASE_URL']); // throws EnvValidationError (did you mean DB_URL?)
311
+ */
312
+ declare class EnvValidator {
313
+ /** Every variable available — link-derived, platform, and extra whitelist. */
314
+ readonly availableVars: string[];
315
+ /** Just the variables the links provide (used for error context). */
316
+ readonly linkVars: string[];
317
+ readonly context?: string;
318
+ private readonly availableSet;
319
+ /** Per-link (record key → its env-var keys), for least-privilege filtering. */
320
+ private readonly linkVarsByName;
321
+ constructor(links: LinkRecord, options?: EnvValidatorOptions);
322
+ /**
323
+ * Returns the names of the links that provide at least one of the requested
324
+ * variables — so a construct can attach only the links a unit actually needs
325
+ * (least privilege) rather than the whole pool. Trailing `?` is ignored.
326
+ */
327
+ getProvidersForEnvVars(requestedEnvVars: readonly string[]): string[];
328
+ /**
329
+ * Checks every requested variable against the available set. Variables
330
+ * ending in `?` are optional and never reported as invalid. Invalid
331
+ * variables come back with their nearest available matches.
332
+ */
333
+ validate(requestedEnvVars: readonly string[]): ValidationResult;
334
+ /**
335
+ * Asserts that every requested variable is available, throwing an
336
+ * {@link EnvValidationError} otherwise. Intended to run in a construct's
337
+ * constructor so a misconfigured `sst.config.ts` fails at synth time, before
338
+ * any AWS call.
339
+ */
340
+ assert(requestedEnvVars: readonly string[]): void;
341
+ /**
342
+ * Whether a single variable is available. Does not treat a trailing `?` as
343
+ * optional — pass the bare name.
344
+ */
345
+ has(envVar: string): boolean;
346
+ }
347
+ //# sourceMappingURL=SstEnvValidator.d.ts.map
348
+ //#endregion
185
349
  //#region src/sst.d.ts
186
350
  /**
187
351
  * @deprecated Use `new SstEnvironmentBuilder(record).build()` instead.
@@ -207,5 +371,5 @@ type Resource = SstResource;
207
371
  //# sourceMappingURL=sst.d.ts.map
208
372
 
209
373
  //#endregion
210
- export { ApiGatewayV2, Bucket, Dynamo, EnvRecord, EnvValue, EnvironmentBuilderOptions, Function, Postgres, Resource, ResourceProcessor, ResourceType, Secret, SnsTopic, SstEnvironmentBuilder, SstResource, Vpc, environmentCase, normalizeResourceEnv, sstResolvers };
374
+ export { AWS_RUNTIME_ENV_VARS, ApiGatewayV2, Bucket, CLOUDFLARE_RUNTIME_ENV_VARS, Dynamo, EnvRecord, EnvValidationError, EnvValidator, EnvValidatorOptions, EnvValue, EnvironmentBuilderOptions, Function, GCP_RUNTIME_ENV_VARS, LinkRecord, PLATFORM_ENV_VARS, Platform, Postgres, Queue, Resource, ResourceProcessor, ResourceType, Secret, SnsTopic, SstEnvironmentBuilder, SstResource, ValidationResult, Vpc, environmentCase, normalizeResourceEnv, platformEnvVars, resolveEnvKeys, sstResolvers };
211
375
  //# sourceMappingURL=sst.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sst.d.cts","names":[],"sources":["../src/SstEnvironmentBuilder.ts","../src/sst.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"sst.d.cts","names":[],"sources":["../src/SstEnvironmentBuilder.ts","../src/SstEnvValidator.ts","../src/sst.ts"],"sourcesContent":[],"mappings":";;;;;;AAaA;AA0BA;AAAwB,aA1BZ,YAAA;EA0BY,YACjB,GAAA,sBAAa;EAAY,QAAG,GAAA,kBAAa;EAAe,QAAA,GAAA,kBAAA;EAQnD,MAAA,GAAA,gBAAQ;EAAA,GAAA,GAAA,aAAA;EAAA,MACb,GAAA,gBAAa;EAAQ,MAAG,GAAA,gBAAa;EAAW,KAAA,GAAA,eAAA;EAW3C,SAAA,GAAQ,gBAAA;EAAA,WAAA,GAAA,kBAAA;EAAA,eACb,GAAa,sBAAA;EAAQ,WAAG,GAAA,kBAAa;EAAW,SAAA,GAAA,gBAAA;EAO3C,QAAA,GAAM,kBAAA;EAAA,SAAA,GAAA,gBAAA;EAAA,QACX,GAAA,eAAa;;AAA+B;AAOnD;AAQA;;AACO,KA9CK,YAAA,GA8CQ;EAAM,IAAG,EA7CtB,YAAA,CAAa,YA6CsB,GA7CP,YAAA,CAAa,eA6CN;EAAS,GAAA,EAAA,MAAA;AAOnD,CAAA;AAQA;;;;AACiD,KArDrC,QAAA,GAqDqC;EAQrC,IAAA,EA5DL,YAAA,CAAa,QA4DF,GA5Da,YAAA,CAAa,WA4D1B;EAAA,QAAA,EAAA,MAAA;EAAA,IACX,EAAA,MAAA;EAAmB,QAAG,EAAA,MAAa;EAAS,IAAA,EAAA,MAAA;EAOvC,QAAA,EAAA,MAAW;CAAA;;;;AAIpB,KA7DS,QAAA,GA6DT;EAAM,IACN,EA7DI,YAAA,CAAa,QA6DjB,GA7D4B,YAAA,CAAa,WA6DzC;EAAG,IACH,EAAA,MAAA;CAAM;;;AAGA;AAkBG,KA5EA,MAAA,GA4EA;EAAiB,IAAA,EA3EtB,YAAA,CAAa,MA2ES,GA3EA,YAAA,CAAa,SA2Eb;EAAA,IAA4B,EAAA,MAAA;CAAC;AAAc;AA6CxE;AAoBE;AAUG,KA/IO,GAAA,GA+II;EAAA,IAAA,EA9IT,YAAA,CAAa,GA8IJ;EAAA,OAAM,EAAA,MAAA;CAAC;AAA6C;AAAA;;AAKjD,KA5IP,MAAA,GA4IO;EAAC,IAAiC,EA3I9C,YAAA,CAAa,MA2IiC,GA3IxB,YAAA,CAAa,SA2IW;EAAC,KAAN,EAAA,MAAA;AAAI,CAAA;AAAA;;;AAKjB,KAzIvB,QAAA,GAyIuB;EAAM,IAC5B,EAzIN,YAAA,CAAa,QAyIP;EAAO,GAAe,EAAA,MAAA;CAAO;;;AAC3B;AAKV,KAxIO,KAAA,GAwIP;EAAgB,IAAA,EAvId,YAAA,CAAa,KAuIC,GAvIO,YAAA,CAAa,QAuIpB;EAAA,GAAgC,EAAA,MAAA;EAAU,GAAzB,EAAA,MAAA;CAAM;;;;AAA+B,KA/H/D,MAAA,GA+H+D;EAQtE,IAAA,EAtIE,YAAA,CAAa,MAsIH,GAtIY,YAAA,CAAa,SAsIzB;EAAA,IAAA,EAAA,MAAA;CAAA;;;;AAIc,KAnInB,WAAA,GACT,YAkI4B,GAjI5B,QAiI4B,GAhI5B,QAgI4B,GA/H5B,MA+H4B,GA9H5B,GA8H4B,GA7H5B,MA6H4B,GA5H5B,QA4H4B,GA3H5B,KA2H4B,GA1H5B,MA0H4B;;;;;;AAGhB;AAAA;;AAKqC,KAhHxC,iBAgHwC,CAAA,CAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAhHK,CAgHL,EAAA,GAhHW,SAgHX;;;;AAEhD,cArES,YAqET,EArEuB,SAqEvB;;;;KA5CC,qBAAA,GA+CsB,GA/CK,YA+CL,EAAA;;;AADkC;AAkC7D,KA3EK,WA2EQ,CAAA,CAAA,CAAA,GA3ES,CA2ET,SAAqB;EAAA,IAAA,EAAA,KAAA,WAAA,MAAA;CAAA,GA3EiC,CA2EjC,GACF,KAAA;;;;KAvE3B,QAuFmC,CAAA,CAAA,CAAA,GAvFrB,CAuFqB,SAAA;EAAO,IAAvB,EAAA,MAAA;CAAe,GAvFS,IAwFpC,CAxFyC,CAwFzC,EAAA,MAAA,CAAA,GAAA,KAAA;;AAmBO;;KAtGd,8BAA8B,eAAe,6BACrC,UAAU,YAAY,QAAQ,KC9N3C,CAAA,MD+NQ,OC/NK,CAAA;AAeb;AAeA;AASA;AAMA,KDuLK,gBCvLe,CAAA,gBDuLkB,MCvLe,CAAA,MAAA,EDuLA,UCvLA,CAAA,CAAA,GDuLe,OCvLf,CDwLpD,aCxLoD,CDwLtC,OCxLsC,CAAA,EDyLpD,qBCzLoD,CAAA;AAMrD;AAeA;;KD0KK,YC1KmC,CAAA,gBD2KvB,MC3KuB,CAAA,MAAA,ED2KR,UC3KQ,CAAA,EAAA,cAAA,MAAA,CAAA,GAAA,QAAc,MD8KzC,OC9KyC,GD8K/B,OC9K+B,CD8KvB,CC9KuB,CAAA,SAAA;EAA7B,IAAA,ED8KyB,KC9KzB;AAAM,CAAA,GD+K3B,QC/K2B,CD+KlB,OC/KkB,CD+KV,CC/KU,CAAA,CAAA,GAAA,KAAA,EAE/B,CAAA,MD+KQ,OC/KS,CAAA;AAUjB;AAqFA;;KDqFK,eCjFkB,CAAA,gBDiFc,MCjFd,CAAA,MAAA,EDiF6B,UCjF7B,CAAA,CAAA,GDkFtB,gBClFsB,CDkFL,OClFK,CAAA,SAAA,KAAA,GDmFnB,SCnFmB,GAAA,SAAA,GAAA,YDqFT,gBC9EC,CD8EgB,OC9EhB,CAAA,GD8E2B,mBC9E3B,CD+EV,YC/EU,CD+EG,OC/EH,ED+EY,KC/EZ,CAAA,CAAA,EAAM;AAXwB;AA2E7C;AA0BA;;;;;AAiDgE;;;;AChQhE;;;;;;AAES;AAQT;;;;;;;;;;;cF2Na,sCACI,eAAe,cAAc;;;;;;;;;sBAepC,+BACc,gBAAgB,oBAC5B;;;;;;WAmBF;;;;;AA9TV;AA0BA;;;AACmC,cChCtB,oBDgCmC,EAAA,SAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,6BAAA,CAAA;AAAe;AAQ/D;;AACO,cC1BM,oBD0BO,EAAA,SAAA,CAAA,sBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;;AAAmC;AAWvD;;AACO,cCvBM,2BDuBO,EAAA,SAAA,CAAA,UAAA,EAAA,cAAA,CAAA;;AAAmC;AAOvD;;AACO,cCtBM,iBDsBO,EAAA;EAAM,SAAG,GAAA,EAAA,SAAa,CAAA,YAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,6BAAA,CAAA;EAAS,SAAA,GAAA,EAAA,SAAA,CAAA,sBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;EAOvC,SAAG,UACR,EAAA,SAAa,CAAA,UAAG,EAAA,cAAA,CAAA;AAOvB,CAAA;AAAkB,KC/BN,QAAA,GD+BM,MAAA,OC/BkB,iBD+BlB;;;AACiC;AAOnD;AAQY,iBCzCI,eAAA,CDyCC,QAAA,ECzCyB,QDyCzB,CAAA,EAAA,SAAA,MAAA,EAAA;;;;AACgC;AAQjD;AAAkB,KCnCN,UAAA,GAAa,MDmCP,CAAA,MAAA,ECnCsB,WDmCtB,GCnCoC,UDmCpC,GAAA,MAAA,CAAA;AACX,UClCU,gBAAA,CDkCG;EAAM,KAAG,EAAA,OAAA;EAAsB;EAOvC,WAAA,EAAA,MAAW,EAAA;EAAA;EAAA,aACpB,EAAA,MAAA,EAAA;EAAY;EACJ,WACR,ECrCW,MDqCX,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA;;AAEA,UCpCc,mBAAA,CDoCd;EAAG;;;;EAIG,QAAA,CAAA,ECnCG,QDmCH;EAkBG;;;;EAA4D,SAAA,CAAA,EAAA,SAAA,MAAA,EAAA;EA6C3D;AAoBX;AAK0C;;EAK5B,OAAM,CAAA,EAAA,MAAA;;AAA8C;AAAA;;;;AAKpB,cCrDnC,kBAAA,SAA2B,KAAA,CDqDQ;EAAI,SAAA,oBAAA,GAAA,IAAA;EAK/C,SAAA,OAAa,EAAA,MAAA,EAAA;EAAA,SAAA,SAAA,EAAA,MAAA,EAAA;EAAA,SAAgC,WAAA,ECtD3B,MDsD2B,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA;EAAU,SAAzB,OAAA,CAAA,EAAA,MAAA;EAAM,WAC5B,CAAA,IAAA,EAAA;IAAsB,OAAA,EAAA,MAAA,EAAA;IAAQ,SAAA,EAAA,MAAA,EAAA;IAApB,QAAA,EAAA,MAAA,EAAA;IACf,WAAA,ECjDO,MDiDP,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA;IAAO,OAAA,CAAA,EAAA,MAAA;EAKV,CAAA;EAAgB,eAAA,MAAA;;;;;;;AAAsD;AAAA;;;;;;;;;AAatD,iBCHL,cAAA,CDGK,MAAA,ECHkB,UDGlB,CAAA,EAAA,MAAA,EAAA;;;AAEN;AAAA;;;;;;;;;;;;;AAS8C;AAkC7D;AAAkC,cCtBrB,YAAA,CDsBqB;EAAA;EACS,SAAG,aAAA,EAAA,MAAA,EAAA;EAAU;EAAjC,SAeb,QAAA,EAAA,MAAA,EAAA;EAAO,SACuB,OAAA,CAAA,EAAA,MAAA;EAAO,iBAAvB,YAAA;EAAe;EACF,iBAmB3B,cAAA;EAAS,WAAA,CAAA,KAAA,ECjDC,UDiDD,EAAA,OAAA,CAAA,ECjDsB,mBDiDtB;;;;ACnUnB;AAeA;EAea,sBAAA,CAAA,gBAGH,EAAA,SAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA;EAMG;AAMb;AAMA;AAeA;;EAAsB,QAAkB,CAAA,gBAAA,EAAA,SAAA,MAAA,EAAA,CAAA,EAuPQ,gBAvPR;EAAW;;AAApB;AAE/B;AAUA;AAqFA;EAAgC,MAAA,CAAA,gBAAA,EAAA,SAAA,MAAA,EAAA,CAAA,EAAA,IAAA;EAAA;;;AAAa;EA2E7B,GAAA,CAAA,MAAA,EAAA,MAAc,CAAA,EAAA,OAAS;AA0BvC;;;;;;;ADxO+D;AAQ/D;;;;AACuD;AAWvD;;;;AACuD;AAOvD;;AACO,iBEJS,oBAAA,CFII,MAAA,EEHX,MFGW,CAAA,MAAA,EEHI,WFGJ,GAAA,MAAA,CAAA,CAAA,EEFjB,MFEiB,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GEF0B,MFE1B,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;;AAA+B;AAOnD;AAQY,KETA,QAAA,GAAW,WFSL"}
package/dist/sst.d.mts CHANGED
@@ -14,6 +14,7 @@ declare enum ResourceType {
14
14
  Vpc = "sst.aws.Vpc",
15
15
  Secret = "sst.sst.Secret",
16
16
  Dynamo = "sst.aws.Dynamo",
17
+ Queue = "sst.aws.Queue",
17
18
  SSTSecret = "sst:sst:Secret",
18
19
  SSTFunction = "sst:sst:Function",
19
20
  SSTApiGatewayV2 = "sst:aws:ApiGatewayV2",
@@ -21,6 +22,7 @@ declare enum ResourceType {
21
22
  SSTBucket = "sst:aws:Bucket",
22
23
  SnsTopic = "sst:aws:SnsTopic",
23
24
  SSTDynamo = "sst:aws:Dynamo",
25
+ SSTQueue = "sst:aws:Queue",
24
26
  }
25
27
  /**
26
28
  * AWS API Gateway V2 resource type.
@@ -77,6 +79,14 @@ type SnsTopic = {
77
79
  type: ResourceType.SnsTopic;
78
80
  arn: string;
79
81
  };
82
+ /**
83
+ * AWS SQS Queue resource type.
84
+ */
85
+ type Queue = {
86
+ type: ResourceType.Queue | ResourceType.SSTQueue;
87
+ url: string;
88
+ arn: string;
89
+ };
80
90
  /**
81
91
  * AWS DynamoDB Table resource type.
82
92
  */
@@ -87,7 +97,7 @@ type Dynamo = {
87
97
  /**
88
98
  * Union type of all supported SST resource types.
89
99
  */
90
- type SstResource = ApiGatewayV2 | Postgres | Function | Bucket | Vpc | Secret | SnsTopic | Dynamo;
100
+ type SstResource = ApiGatewayV2 | Postgres | Function | Bucket | Vpc | Secret | SnsTopic | Queue | Dynamo;
91
101
  /**
92
102
  * Function type for processing a specific resource type into environment variables.
93
103
  *
@@ -182,6 +192,160 @@ declare class SstEnvironmentBuilder<TRecord extends Record<string, SstResource |
182
192
  build(): EnvRecord;
183
193
  }
184
194
  //#endregion
195
+ //#region src/SstEnvValidator.d.ts
196
+ /**
197
+ * Variables AWS Lambda injects into the runtime. Always valid on AWS, but never
198
+ * assumed — opt in via `platform: 'aws'` or by spreading {@link AWS_RUNTIME_ENV_VARS}
199
+ * into `whitelist`.
200
+ */
201
+ declare const AWS_RUNTIME_ENV_VARS: readonly ["AWS_REGION", "AWS_DEFAULT_REGION", "AWS_ENDPOINT_URL", "AWS_ENDPOINT", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "AWS_LAMBDA_FUNCTION_NAME", "AWS_LAMBDA_FUNCTION_VERSION"];
202
+ /**
203
+ * Variables GCP injects into Cloud Functions / Cloud Run.
204
+ */
205
+ declare const GCP_RUNTIME_ENV_VARS: readonly ["GOOGLE_CLOUD_PROJECT", "GCP_PROJECT", "FUNCTION_TARGET", "FUNCTION_SIGNATURE_TYPE", "K_SERVICE", "K_REVISION", "K_CONFIGURATION", "PORT"];
206
+ /**
207
+ * Variables Cloudflare exposes to Workers. Workers inject almost nothing into
208
+ * the global env, so this is intentionally minimal.
209
+ */
210
+ declare const CLOUDFLARE_RUNTIME_ENV_VARS: readonly ["CF_PAGES", "CF_PAGES_URL"];
211
+ /**
212
+ * Registry of platform → always-valid runtime variables. Export, don't assume:
213
+ * a caller states the platform it deploys to and the matching set is trusted.
214
+ */
215
+ declare const PLATFORM_ENV_VARS: {
216
+ readonly aws: readonly ["AWS_REGION", "AWS_DEFAULT_REGION", "AWS_ENDPOINT_URL", "AWS_ENDPOINT", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN", "AWS_LAMBDA_FUNCTION_NAME", "AWS_LAMBDA_FUNCTION_VERSION"];
217
+ readonly gcp: readonly ["GOOGLE_CLOUD_PROJECT", "GCP_PROJECT", "FUNCTION_TARGET", "FUNCTION_SIGNATURE_TYPE", "K_SERVICE", "K_REVISION", "K_CONFIGURATION", "PORT"];
218
+ readonly cloudflare: readonly ["CF_PAGES", "CF_PAGES_URL"];
219
+ };
220
+ type Platform = keyof typeof PLATFORM_ENV_VARS;
221
+ /**
222
+ * The always-valid runtime variables for a platform. The "whitelist construct":
223
+ * resolve a platform to its set, to spread into `whitelist` or compare against.
224
+ */
225
+ declare function platformEnvVars(platform: Platform): readonly string[];
226
+ /**
227
+ * Input shape for the validator: the same record `SstEnvironmentBuilder`
228
+ * accepts — keyed by resource name, valued by an SST resource (or a plain
229
+ * string for pass-through env vars).
230
+ */
231
+ type LinkRecord = Record<string, SstResource | InputValue | string>;
232
+ interface ValidationResult {
233
+ valid: boolean;
234
+ /** Requested variables that are not available (excluding optional `?` vars). */
235
+ invalidVars: string[];
236
+ /** Every variable the links + whitelist make available. */
237
+ availableVars: string[];
238
+ /** Nearest available matches for each invalid variable (best first). */
239
+ suggestions: Record<string, string[]>;
240
+ }
241
+ interface EnvValidatorOptions {
242
+ /**
243
+ * Platform whose runtime-injected variables are always valid. Omit to assume
244
+ * none — the validator never bakes in a platform's variables.
245
+ */
246
+ platform?: Platform;
247
+ /**
248
+ * Extra always-valid variables in addition to the platform set — typically
249
+ * the keys of a function's explicit `environment`.
250
+ */
251
+ whitelist?: readonly string[];
252
+ /**
253
+ * Label for the deployable unit (e.g. a function name), used in error
254
+ * messages so a failure points at exactly one unit.
255
+ */
256
+ context?: string;
257
+ }
258
+ /**
259
+ * Thrown when a deployable unit requires environment variables its links do not
260
+ * provide. Carries the structured `missing`/`available`/`suggestions` so callers
261
+ * can inspect the failure programmatically, not just read the message.
262
+ */
263
+ declare class EnvValidationError extends Error {
264
+ readonly isEnvValidationError = true;
265
+ readonly missing: string[];
266
+ readonly available: string[];
267
+ readonly suggestions: Record<string, string[]>;
268
+ readonly context?: string;
269
+ constructor(args: {
270
+ missing: string[];
271
+ available: string[];
272
+ linkVars: string[];
273
+ suggestions: Record<string, string[]>;
274
+ context?: string;
275
+ });
276
+ private static format;
277
+ }
278
+ /**
279
+ * Derives the set of environment-variable **keys** a group of linked resources
280
+ * will produce at runtime — without resolving any value.
281
+ *
282
+ * This reuses the runtime resolvers (`sstResolvers`) via {@link EnvironmentBuilder},
283
+ * so the keys computed here are exactly the keys a deployed function receives:
284
+ * the validator and the runtime resolution share a single source of truth and
285
+ * cannot drift. Because every resolver's output keys depend only on the record
286
+ * key and the resource `type` (never the value), each resource is reduced to
287
+ * `{ type }` before building, so no SST `Output` is ever read.
288
+ *
289
+ * @example
290
+ * resolveEnvKeys({ db: { type: ResourceType.Postgres } });
291
+ * // ['DB_NAME', 'DB_HOST', 'DB_PASSWORD', 'DB_PORT', 'DB_USERNAME', 'DB_URL']
292
+ */
293
+ declare function resolveEnvKeys(record: LinkRecord): string[];
294
+ /**
295
+ * Validates that the environment variables a deployable unit requires are
296
+ * actually provided by its linked resources — at infra time, before deploy.
297
+ *
298
+ * Available variables are the union of the keys derived from `links`
299
+ * ({@link resolveEnvKeys}), the chosen platform's runtime variables (only when
300
+ * `options.platform` is set — nothing is assumed), and any `options.whitelist`
301
+ * (e.g. the keys of a function's explicit `environment`). A requested variable
302
+ * suffixed with `?` is treated as optional and never causes a failure.
303
+ *
304
+ * @example
305
+ * const validator = new EnvValidator(
306
+ * { db: { type: ResourceType.Postgres } },
307
+ * { platform: 'aws', whitelist: ['APP_NAME'], context: 'orders-fn' },
308
+ * );
309
+ * validator.assert(['DB_HOST', 'AWS_REGION', 'APP_NAME', 'SENTRY_DSN?']); // ok
310
+ * validator.assert(['DATABASE_URL']); // throws EnvValidationError (did you mean DB_URL?)
311
+ */
312
+ declare class EnvValidator {
313
+ /** Every variable available — link-derived, platform, and extra whitelist. */
314
+ readonly availableVars: string[];
315
+ /** Just the variables the links provide (used for error context). */
316
+ readonly linkVars: string[];
317
+ readonly context?: string;
318
+ private readonly availableSet;
319
+ /** Per-link (record key → its env-var keys), for least-privilege filtering. */
320
+ private readonly linkVarsByName;
321
+ constructor(links: LinkRecord, options?: EnvValidatorOptions);
322
+ /**
323
+ * Returns the names of the links that provide at least one of the requested
324
+ * variables — so a construct can attach only the links a unit actually needs
325
+ * (least privilege) rather than the whole pool. Trailing `?` is ignored.
326
+ */
327
+ getProvidersForEnvVars(requestedEnvVars: readonly string[]): string[];
328
+ /**
329
+ * Checks every requested variable against the available set. Variables
330
+ * ending in `?` are optional and never reported as invalid. Invalid
331
+ * variables come back with their nearest available matches.
332
+ */
333
+ validate(requestedEnvVars: readonly string[]): ValidationResult;
334
+ /**
335
+ * Asserts that every requested variable is available, throwing an
336
+ * {@link EnvValidationError} otherwise. Intended to run in a construct's
337
+ * constructor so a misconfigured `sst.config.ts` fails at synth time, before
338
+ * any AWS call.
339
+ */
340
+ assert(requestedEnvVars: readonly string[]): void;
341
+ /**
342
+ * Whether a single variable is available. Does not treat a trailing `?` as
343
+ * optional — pass the bare name.
344
+ */
345
+ has(envVar: string): boolean;
346
+ }
347
+ //# sourceMappingURL=SstEnvValidator.d.ts.map
348
+ //#endregion
185
349
  //#region src/sst.d.ts
186
350
  /**
187
351
  * @deprecated Use `new SstEnvironmentBuilder(record).build()` instead.
@@ -207,5 +371,5 @@ type Resource = SstResource;
207
371
  //# sourceMappingURL=sst.d.ts.map
208
372
 
209
373
  //#endregion
210
- export { ApiGatewayV2, Bucket, Dynamo, EnvRecord, EnvValue, EnvironmentBuilderOptions, Function, Postgres, Resource, ResourceProcessor, ResourceType, Secret, SnsTopic, SstEnvironmentBuilder, SstResource, Vpc, environmentCase, normalizeResourceEnv, sstResolvers };
374
+ export { AWS_RUNTIME_ENV_VARS, ApiGatewayV2, Bucket, CLOUDFLARE_RUNTIME_ENV_VARS, Dynamo, EnvRecord, EnvValidationError, EnvValidator, EnvValidatorOptions, EnvValue, EnvironmentBuilderOptions, Function, GCP_RUNTIME_ENV_VARS, LinkRecord, PLATFORM_ENV_VARS, Platform, Postgres, Queue, Resource, ResourceProcessor, ResourceType, Secret, SnsTopic, SstEnvironmentBuilder, SstResource, ValidationResult, Vpc, environmentCase, normalizeResourceEnv, platformEnvVars, resolveEnvKeys, sstResolvers };
211
375
  //# sourceMappingURL=sst.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sst.d.mts","names":[],"sources":["../src/SstEnvironmentBuilder.ts","../src/sst.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"sst.d.mts","names":[],"sources":["../src/SstEnvironmentBuilder.ts","../src/SstEnvValidator.ts","../src/sst.ts"],"sourcesContent":[],"mappings":"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"}