Comparing version 0.0.0-20221127180758 to 0.0.0-20221127195750
@@ -79,2 +79,3 @@ // Copied from https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk/lib/api/cloudformation-deployments.ts | ||
export class CloudFormationDeployments { | ||
sdkProvider; | ||
constructor(props) { | ||
@@ -81,0 +82,0 @@ this.sdkProvider = props.sdkProvider; |
@@ -90,2 +90,12 @@ import * as cxapi from "@aws-cdk/cx-api"; | ||
class FullCloudFormationDeployment { | ||
options; | ||
cloudFormationStack; | ||
stackArtifact; | ||
stackParams; | ||
bodyParameter; | ||
cfn; | ||
stackName; | ||
update; | ||
verb; | ||
uuid; | ||
constructor(options, cloudFormationStack, stackArtifact, stackParams, bodyParameter) { | ||
@@ -92,0 +102,0 @@ this.options = options; |
@@ -9,2 +9,3 @@ import path from "path"; | ||
import { SiteEnv } from "../../site-env.js"; | ||
import { Pothos } from "../../pothos.js"; | ||
export const start = (program) => program.command("start", "Work on your SST app locally", (yargs) => yargs.option("fullscreen", { | ||
@@ -155,9 +156,51 @@ type: "boolean", | ||
createSpinner("").start().succeed("Ready for function invocations"); | ||
const local = await useLocalServer({ | ||
key: "", | ||
cert: "", | ||
live: true, | ||
port: 13557, | ||
const usePothosBuilder = Context.memo(() => { | ||
let routes = []; | ||
const bus = useBus(); | ||
async function build(route) { | ||
try { | ||
const schema = await Pothos.generate({ | ||
schema: route.schema, | ||
}); | ||
await fs.writeFile(route.output, schema); | ||
// bus.publish("pothos.extracted", { file: route.output }); | ||
await Promise.all(route.commands.map((cmd) => execAsync(cmd))); | ||
console.log("Done building pothos schema"); | ||
} | ||
catch (ex) { | ||
console.error("Failed to extract schema from pothos"); | ||
console.error(ex); | ||
} | ||
} | ||
bus.subscribe("file.changed", async (evt) => { | ||
if (evt.properties.file.endsWith("out.mjs")) | ||
return; | ||
for (const route of routes) { | ||
const dir = path.dirname(route.schema); | ||
const relative = path.relative(dir, evt.properties.file); | ||
if (relative && | ||
!relative.startsWith("..") && | ||
!path.isAbsolute(relative)) | ||
build(route); | ||
} | ||
}); | ||
bus.subscribe("stacks.metadata", async (evt) => { | ||
routes = Object.values(evt.properties) | ||
.flat() | ||
.filter((c) => c.type == "Api") | ||
.flatMap((c) => c.data.routes) | ||
.filter((r) => ["pothos", "graphql"].includes(r.type)) | ||
.filter((r) => r.schema); | ||
for (const route of routes) { | ||
build(route); | ||
} | ||
}); | ||
}); | ||
await Promise.all([ | ||
useLocalServer({ | ||
key: "", | ||
cert: "", | ||
live: true, | ||
port: 13557, | ||
}), | ||
useRuntimeWorkers(), | ||
@@ -167,5 +210,9 @@ useIOTBridge(), | ||
useMetadata(), | ||
usePothosBuilder(), | ||
useFunctionLogger(), | ||
useStackBuilder(), | ||
]); | ||
await useStackBuilder(); | ||
}); | ||
function execAsync(cmd) { | ||
throw new Error("Function not implemented."); | ||
} |
@@ -38,6 +38,12 @@ import { Construct } from "constructs"; | ||
export class Api extends Construct { | ||
id; | ||
cdk; | ||
props; | ||
_customDomainUrl; | ||
routesData; | ||
authorizersData; | ||
bindingForAllRoutes = []; | ||
permissionsAttachedForAllRoutes = []; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.bindingForAllRoutes = []; | ||
this.permissionsAttachedForAllRoutes = []; | ||
this.id = id; | ||
@@ -44,0 +50,0 @@ this.props = props || {}; |
@@ -47,9 +47,14 @@ import { Construct } from "constructs"; | ||
export class ApiGatewayV1Api extends Construct { | ||
id; | ||
cdk; | ||
_deployment; | ||
_customDomainUrl; | ||
importedResources = {}; | ||
props; | ||
functions = {}; | ||
authorizersData = {}; | ||
bindingForAllRoutes = []; | ||
permissionsAttachedForAllRoutes = []; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.importedResources = {}; | ||
this.functions = {}; | ||
this.authorizersData = {}; | ||
this.bindingForAllRoutes = []; | ||
this.permissionsAttachedForAllRoutes = []; | ||
this.id = id; | ||
@@ -56,0 +61,0 @@ this.props = props || {}; |
@@ -30,10 +30,68 @@ import path from "path"; | ||
/** | ||
* Whether or not the app is running locally under `sst start` | ||
*/ | ||
local = false; | ||
/** | ||
* Whether the app is running locally under start, deploy or remove | ||
*/ | ||
mode; | ||
/** | ||
* The name of your app, comes from the `name` in your `sst.json` | ||
*/ | ||
name; | ||
/** | ||
* The stage the app is being deployed to. If this is not specified as the --stage option, it'll default to the stage configured during the initial run of the SST CLI. | ||
*/ | ||
stage; | ||
/** | ||
* The region the app is being deployed to. If this is not specified as the --region option in the SST CLI, it'll default to the region in your sst.json. | ||
*/ | ||
region; | ||
/** | ||
* The AWS account the app is being deployed to. This comes from the IAM credentials being used to run the SST CLI. | ||
*/ | ||
account; | ||
/** @internal */ | ||
buildDir; | ||
/** @internal */ | ||
debugBridge; | ||
/** @internal */ | ||
debugEndpoint; | ||
/** @internal */ | ||
debugBucketArn; | ||
/** @internal */ | ||
debugBucketName; | ||
/** @internal */ | ||
debugStartedAt; | ||
/** @internal */ | ||
debugIncreaseTimeout; | ||
/** @internal */ | ||
appPath; | ||
/** @internal */ | ||
bootstrap; | ||
/** @internal */ | ||
defaultFunctionProps; | ||
_defaultRemovalPolicy; | ||
/** @internal */ | ||
get defaultRemovalPolicy() { | ||
return this._defaultRemovalPolicy; | ||
} | ||
/** | ||
* Skip building Function code | ||
* Note that on `sst remove`, we do not want to bundle the Lambda functions. | ||
* CDK disables bundling (ie. zipping) for `cdk destroy` command. | ||
* But SST runs `cdk synth` first then manually remove each stack. Hence | ||
* we cannot rely on CDK to disable bundling, and we disable it manually. | ||
* This allows us to disable BOTH building and bundling, where as CDK | ||
* would only disable the latter. For example, `cdk destroy` still trys | ||
* to install Python dependencies in Docker. | ||
* | ||
* @internal | ||
*/ | ||
skipBuild; | ||
/** | ||
* @internal | ||
*/ | ||
constructor(deployProps, props = {}) { | ||
super(props); | ||
/** | ||
* Whether or not the app is running locally under `sst start` | ||
*/ | ||
this.local = false; | ||
AppContext.provide(this); | ||
@@ -66,6 +124,2 @@ SiteEnv.reset(); | ||
} | ||
/** @internal */ | ||
get defaultRemovalPolicy() { | ||
return this._defaultRemovalPolicy; | ||
} | ||
/** | ||
@@ -72,0 +126,0 @@ * Use this method to prefix resource names in your stacks to make sure they don't thrash when deployed to different stages in the same AWS account. This method will prefix a given resource name with the stage and app name. Using the format `${stage}-${name}-${logicalName}`. |
@@ -47,10 +47,15 @@ import path from "path"; | ||
export class AppSyncApi extends Construct { | ||
id; | ||
cdk; | ||
props; | ||
_customDomainUrl; | ||
_cfnDomainName; | ||
functionsByDsKey = {}; | ||
dataSourcesByDsKey = {}; | ||
dsKeysByResKey = {}; | ||
resolversByResKey = {}; | ||
bindingForAllFunctions = []; | ||
permissionsAttachedForAllFunctions = []; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.functionsByDsKey = {}; | ||
this.dataSourcesByDsKey = {}; | ||
this.dsKeysByResKey = {}; | ||
this.resolversByResKey = {}; | ||
this.bindingForAllFunctions = []; | ||
this.permissionsAttachedForAllFunctions = []; | ||
this.id = id; | ||
@@ -57,0 +62,0 @@ this.props = props || {}; |
@@ -21,5 +21,9 @@ import * as ssm from "aws-cdk-lib/aws-ssm"; | ||
export class Auth extends Construct { | ||
id; | ||
authenticator; | ||
apis = new Set(); | ||
/** @internal */ | ||
static list = new Set(); | ||
constructor(scope, id, props) { | ||
super(scope, props.cdk?.id || id); | ||
this.apis = new Set(); | ||
if (!props.authenticator || | ||
@@ -155,3 +159,1 @@ "defaults" in props || | ||
} | ||
/** @internal */ | ||
Auth.list = new Set(); |
@@ -24,7 +24,10 @@ import { Construct } from "constructs"; | ||
export class Bucket extends Construct { | ||
id; | ||
cdk; | ||
notifications = {}; | ||
bindingForAllNotifications = []; | ||
permissionsAttachedForAllNotifications = []; | ||
props; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.notifications = {}; | ||
this.bindingForAllNotifications = []; | ||
this.permissionsAttachedForAllNotifications = []; | ||
this.id = id; | ||
@@ -31,0 +34,0 @@ this.props = props || {}; |
@@ -37,5 +37,8 @@ import { Construct } from "constructs"; | ||
export class Cognito extends Construct { | ||
id; | ||
cdk; | ||
functions = {}; | ||
props; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.functions = {}; | ||
this.id = id; | ||
@@ -42,0 +45,0 @@ this.props = props || {}; |
@@ -24,2 +24,9 @@ import { Construct } from "constructs"; | ||
export class Cron extends Construct { | ||
id; | ||
cdk; | ||
/** | ||
* The internally created Function instance that'll be run on schedule. | ||
*/ | ||
jobFunction; | ||
props; | ||
constructor(scope, id, props) { | ||
@@ -26,0 +33,0 @@ super(scope, props.cdk?.id || id); |
@@ -8,2 +8,18 @@ import { App } from "aws-cdk-lib"; | ||
/** | ||
* The name of the app. This comes from the `name` in your `sst.json`. | ||
*/ | ||
name; | ||
/** | ||
* The stage the app is being deployed to. If this is not specified as the [`--stage`](/packages/cli.md#--stage) option, it'll default to the stage configured during the initial run of the SST CLI. | ||
*/ | ||
stage; | ||
/** | ||
* The region the app is being deployed to. If this is not specified as the [`--region`](/packages/cli.md#--region) option in the SST CLI, it'll default to the `region` in your `sst.json`. | ||
*/ | ||
region; | ||
/** | ||
* The AWS account the app is being deployed to. This comes from the IAM credentials being used to run the SST CLI. | ||
*/ | ||
account; | ||
/** | ||
* @internal | ||
@@ -10,0 +26,0 @@ */ |
@@ -15,2 +15,6 @@ import * as path from "path"; | ||
export class DebugStack extends cdk.Stack { | ||
stage; | ||
api; | ||
table; | ||
bucket; | ||
constructor(scope, id, props) { | ||
@@ -17,0 +21,0 @@ const app = scope.node.root; |
@@ -18,2 +18,7 @@ import fs from "fs"; | ||
export class EdgeFunction extends Construct { | ||
role; | ||
functionArn; | ||
scope; | ||
versionId; | ||
props; | ||
constructor(scope, id, props) { | ||
@@ -20,0 +25,0 @@ super(scope, id); |
@@ -32,8 +32,11 @@ import { Construct } from "constructs"; | ||
export class EventBus extends Construct { | ||
id; | ||
cdk; | ||
rulesData = {}; | ||
targetsData = {}; | ||
bindingForAllTargets = []; | ||
permissionsAttachedForAllTargets = []; | ||
props; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.rulesData = {}; | ||
this.targetsData = {}; | ||
this.bindingForAllTargets = []; | ||
this.permissionsAttachedForAllTargets = []; | ||
this.id = id; | ||
@@ -40,0 +43,0 @@ this.props = props || {}; |
@@ -62,2 +62,8 @@ /* eslint-disable @typescript-eslint/ban-types */ | ||
export class Function extends lambda.Function { | ||
id; | ||
_isLiveDevEnabled; | ||
/** @internal */ | ||
_disableBind; | ||
functionUrl; | ||
props; | ||
constructor(scope, id, props) { | ||
@@ -64,0 +70,0 @@ const app = scope.node.root; |
@@ -18,2 +18,5 @@ import { App } from "./App.js"; | ||
export class GraphQLApi extends Api { | ||
codegen; | ||
lambdaIntegration; | ||
rootPath; | ||
constructor(scope, id, props) { | ||
@@ -20,0 +23,0 @@ if ("routes" in props || !props.server) { |
@@ -36,2 +36,8 @@ // import path from "path"; | ||
export class Job extends Construct { | ||
id; | ||
localId; | ||
props; | ||
job; | ||
isLiveDevEnabled; | ||
_jobInvoker; | ||
constructor(scope, id, props) { | ||
@@ -38,0 +44,0 @@ super(scope, props.cdk?.id || id); |
@@ -26,7 +26,10 @@ import { Construct } from "constructs"; | ||
export class KinesisStream extends Construct { | ||
id; | ||
cdk; | ||
functions = {}; | ||
bindingForAllConsumers = []; | ||
permissionsAttachedForAllConsumers = []; | ||
props; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.functions = {}; | ||
this.bindingForAllConsumers = []; | ||
this.permissionsAttachedForAllConsumers = []; | ||
this.id = id; | ||
@@ -33,0 +36,0 @@ this.props = props || {}; |
@@ -49,2 +49,64 @@ import path from "path"; | ||
export class NextjsSite extends Construct { | ||
id; | ||
/** | ||
* The default CloudFront cache policy properties for static pages. | ||
*/ | ||
static staticCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.none(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
defaultTtl: Duration.days(30), | ||
maxTtl: Duration.days(30), | ||
minTtl: Duration.days(30), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST NextjsSite Static Default Cache Policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for images. | ||
*/ | ||
static imageCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.all(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.allowList("Accept"), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
defaultTtl: Duration.days(1), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.days(0), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST NextjsSite Image Default Cache Policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for Lambda@Edge. | ||
*/ | ||
static lambdaCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.all(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.all(), | ||
defaultTtl: Duration.seconds(0), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.seconds(0), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST NextjsSite Lambda Default Cache Policy", | ||
}; | ||
/** | ||
* The default CloudFront image origin request policy properties for Lambda@Edge. | ||
*/ | ||
static imageOriginRequestPolicyProps = { | ||
queryStringBehavior: cloudfront.OriginRequestQueryStringBehavior.all(), | ||
comment: "SST NextjsSite Lambda Default Origin Request Policy", | ||
}; | ||
cdk; | ||
props; | ||
isPlaceholder; | ||
buildOutDir; | ||
assets; | ||
awsCliLayer; | ||
routesManifest; | ||
edgeLambdaRole; | ||
mainFunctionVersion; | ||
apiFunctionVersion; | ||
imageFunctionVersion; | ||
regenerationFunction; | ||
constructor(scope, id, props) { | ||
@@ -1007,50 +1069,1 @@ super(scope, props.cdk?.id || id); | ||
} | ||
/** | ||
* The default CloudFront cache policy properties for static pages. | ||
*/ | ||
NextjsSite.staticCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.none(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
defaultTtl: Duration.days(30), | ||
maxTtl: Duration.days(30), | ||
minTtl: Duration.days(30), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST NextjsSite Static Default Cache Policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for images. | ||
*/ | ||
NextjsSite.imageCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.all(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.allowList("Accept"), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
defaultTtl: Duration.days(1), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.days(0), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST NextjsSite Image Default Cache Policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for Lambda@Edge. | ||
*/ | ||
NextjsSite.lambdaCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.all(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.all(), | ||
defaultTtl: Duration.seconds(0), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.seconds(0), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST NextjsSite Lambda Default Cache Policy", | ||
}; | ||
/** | ||
* The default CloudFront image origin request policy properties for Lambda@Edge. | ||
*/ | ||
NextjsSite.imageOriginRequestPolicyProps = { | ||
queryStringBehavior: cloudfront.OriginRequestQueryStringBehavior.all(), | ||
comment: "SST NextjsSite Lambda Default Origin Request Policy", | ||
}; |
@@ -15,2 +15,5 @@ import { Construct } from "constructs"; | ||
export class Parameter extends Construct { | ||
id; | ||
name; | ||
value; | ||
constructor(scope, id, props) { | ||
@@ -17,0 +20,0 @@ super(scope, id); |
@@ -24,6 +24,13 @@ import { Construct } from "constructs"; | ||
export class Queue extends Construct { | ||
id; | ||
cdk; | ||
/** | ||
* The internally created consumer `Function` instance. | ||
*/ | ||
consumerFunction; | ||
bindingForAllConsumers = []; | ||
permissionsAttachedForAllConsumers = []; | ||
props; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.bindingForAllConsumers = []; | ||
this.permissionsAttachedForAllConsumers = []; | ||
this.id = id; | ||
@@ -30,0 +37,0 @@ this.props = props || {}; |
@@ -32,2 +32,10 @@ import path from "path"; | ||
export class RDS extends Construct { | ||
id; | ||
cdk; | ||
/** | ||
* The ARN of the internally created CDK ServerlessCluster instance. | ||
*/ | ||
migratorFunction; | ||
props; | ||
secret; | ||
constructor(scope, id, props) { | ||
@@ -34,0 +42,0 @@ super(scope, props.cdk?.id || id); |
@@ -27,2 +27,15 @@ import path from "path"; | ||
export class Script extends Construct { | ||
/** | ||
* The internally created onCreate `Function` instance. | ||
*/ | ||
createFunction; | ||
/** | ||
* The internally created onUpdate `Function` instance. | ||
*/ | ||
updateFunction; | ||
/** | ||
* The internally created onDelete `Function` instance. | ||
*/ | ||
deleteFunction; | ||
props; | ||
constructor(scope, id, props) { | ||
@@ -29,0 +42,0 @@ super(scope, id); |
@@ -16,2 +16,4 @@ import { Construct } from "constructs"; | ||
export class Secret extends Construct { | ||
id; | ||
name; | ||
constructor(scope, id) { | ||
@@ -18,0 +20,0 @@ super(scope, id); |
@@ -40,2 +40,73 @@ import path from "path"; | ||
export class SsrSite extends Construct { | ||
id; | ||
/** | ||
* The default CloudFront cache policy properties for browser build files. | ||
*/ | ||
static buildCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.none(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
// The browser build file names all contain unique hashes based on their | ||
// content, we can therefore aggressively cache them as we shouldn't hit | ||
// unexpected collisions. | ||
defaultTtl: Duration.days(365), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.days(365), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST browser build files cache policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for static files. | ||
* | ||
* @note This policy is not applied to the browser build files; they have a seperate | ||
* cache policy; @see `buildCachePolicyProps`. | ||
*/ | ||
static staticsCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.none(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
defaultTtl: Duration.hours(1), | ||
maxTtl: Duration.hours(1), | ||
minTtl: Duration.hours(1), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST static files cache policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for responses from the | ||
* server rendering Lambda. | ||
* | ||
* @note By default no caching is performed on the server rendering Lambda response. | ||
*/ | ||
static serverCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.all(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.all(), | ||
defaultTtl: Duration.seconds(0), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.seconds(0), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST server response cache policy", | ||
}; | ||
/** | ||
* Exposes CDK instances created within the construct. | ||
*/ | ||
cdk; | ||
props; | ||
/** | ||
* Determines if a placeholder site should be deployed instead. We will set | ||
* this to `true` by default when performing local development, although the | ||
* user can choose to override this value. | ||
*/ | ||
isPlaceholder; | ||
/** | ||
* The root SST directory used for builds. | ||
*/ | ||
sstBuildDir; | ||
buildConfig; | ||
serverLambdaForEdge; | ||
serverLambdaForRegional; | ||
awsCliLayer; | ||
constructor(scope, id, props) { | ||
@@ -772,52 +843,1 @@ super(scope, props.cdk?.id || id); | ||
} | ||
/** | ||
* The default CloudFront cache policy properties for browser build files. | ||
*/ | ||
SsrSite.buildCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.none(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
// The browser build file names all contain unique hashes based on their | ||
// content, we can therefore aggressively cache them as we shouldn't hit | ||
// unexpected collisions. | ||
defaultTtl: Duration.days(365), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.days(365), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST browser build files cache policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for static files. | ||
* | ||
* @note This policy is not applied to the browser build files; they have a seperate | ||
* cache policy; @see `buildCachePolicyProps`. | ||
*/ | ||
SsrSite.staticsCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.none(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.none(), | ||
defaultTtl: Duration.hours(1), | ||
maxTtl: Duration.hours(1), | ||
minTtl: Duration.hours(1), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST static files cache policy", | ||
}; | ||
/** | ||
* The default CloudFront cache policy properties for responses from the | ||
* server rendering Lambda. | ||
* | ||
* @note By default no caching is performed on the server rendering Lambda response. | ||
*/ | ||
SsrSite.serverCachePolicyProps = { | ||
queryStringBehavior: cloudfront.CacheQueryStringBehavior.all(), | ||
headerBehavior: cloudfront.CacheHeaderBehavior.none(), | ||
cookieBehavior: cloudfront.CacheCookieBehavior.all(), | ||
defaultTtl: Duration.seconds(0), | ||
maxTtl: Duration.days(365), | ||
minTtl: Duration.seconds(0), | ||
enableAcceptEncodingBrotli: true, | ||
enableAcceptEncodingGzip: true, | ||
comment: "SST server response cache policy", | ||
}; |
@@ -27,2 +27,15 @@ import url from "url"; | ||
export class Stack extends cdk.Stack { | ||
/** | ||
* The current stage of the stack. | ||
*/ | ||
stage; | ||
/** | ||
* @internal | ||
*/ | ||
defaultFunctionProps; | ||
/** | ||
* @internal | ||
*/ | ||
customResourceHandler; | ||
metadata; | ||
constructor(scope, id, props) { | ||
@@ -29,0 +42,0 @@ const root = scope.node.root; |
@@ -46,2 +46,9 @@ import path from "path"; | ||
export class StaticSite extends Construct { | ||
id; | ||
cdk; | ||
props; | ||
isPlaceholder; | ||
assets; | ||
filenamesAsset; | ||
awsCliLayer; | ||
constructor(scope, id, props) { | ||
@@ -48,0 +55,0 @@ super(scope, props.cdk?.id || id); |
@@ -30,7 +30,13 @@ import { Construct } from "constructs"; | ||
export class Table extends Construct { | ||
id; | ||
cdk; | ||
dynamodbTableType; | ||
functions = {}; | ||
bindingForAllConsumers = []; | ||
permissionsAttachedForAllConsumers = []; | ||
props; | ||
stream; | ||
fields; | ||
constructor(scope, id, props) { | ||
super(scope, props.cdk?.id || id); | ||
this.functions = {}; | ||
this.bindingForAllConsumers = []; | ||
this.permissionsAttachedForAllConsumers = []; | ||
this.id = id; | ||
@@ -37,0 +43,0 @@ this.props = props; |
@@ -27,7 +27,10 @@ import { Construct } from "constructs"; | ||
export class Topic extends Construct { | ||
id; | ||
cdk; | ||
subscribers = {}; | ||
bindingForAllSubscribers = []; | ||
permissionsAttachedForAllSubscribers = []; | ||
props; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.subscribers = {}; | ||
this.bindingForAllSubscribers = []; | ||
this.permissionsAttachedForAllSubscribers = []; | ||
this.id = id; | ||
@@ -34,0 +37,0 @@ this.props = props || {}; |
@@ -32,8 +32,13 @@ import { Construct } from "constructs"; | ||
export class WebSocketApi extends Construct { | ||
id; | ||
cdk; | ||
_customDomainUrl; | ||
functions = {}; | ||
apigRoutes = {}; | ||
bindingForAllRoutes = []; | ||
permissionsAttachedForAllRoutes = []; | ||
authorizer; | ||
props; | ||
constructor(scope, id, props) { | ||
super(scope, props?.cdk?.id || id); | ||
this.functions = {}; | ||
this.apigRoutes = {}; | ||
this.bindingForAllRoutes = []; | ||
this.permissionsAttachedForAllRoutes = []; | ||
this.id = id; | ||
@@ -40,0 +45,0 @@ this.props = props || {}; |
/// <reference types="node" resolution-mode="require"/> | ||
/// <reference types="node/url.js" /> | ||
/// <reference types=".pnpm/@types+node@17.0.45/node_modules/@types/node/url.js" /> | ||
import { Handler } from "../../context/handler.js"; | ||
@@ -5,0 +3,0 @@ export interface ApiResources { |
{ | ||
"name": "sst", | ||
"version": "0.0.0-20221127180758", | ||
"version": "0.0.0-20221127195750", | ||
"bin": { | ||
@@ -43,2 +43,3 @@ "sst": "./cli/sst.js" | ||
"@aws-sdk/smithy-client": "^3.208.0", | ||
"@babel/generator": "^7.20.4", | ||
"@trpc/server": "9.16.0", | ||
@@ -79,5 +80,10 @@ "aws-cdk": "2.50.0", | ||
"@aws-sdk/types": "^3.208.0", | ||
"@babel/core": "^7.20.2", | ||
"@sls-next/lambda-at-edge": "^3.7.0", | ||
"@tsconfig/node16": "^1.0.3", | ||
"@types/aws-iot-device-sdk": "^2.2.4", | ||
"@types/aws-lambda": "^8.10.108", | ||
"@types/babel-generator": "^6.25.5", | ||
"@types/babel__core": "^7.1.20", | ||
"@types/babel__generator": "^7.6.4", | ||
"@types/cross-spawn": "^6.0.2", | ||
@@ -92,9 +98,7 @@ "@types/express": "^4.17.14", | ||
"archiver": "^5.3.1", | ||
"graphql": "^16.5.0", | ||
"kysely": "^0.22.0", | ||
"kysely-data-api": "^0.1.4", | ||
"tsx": "^3.12.1", | ||
"vitest": "^0.15.1", | ||
"graphql": "^16.5.0", | ||
"@sls-next/lambda-at-edge": "^3.7.0", | ||
"@babel/core": "^7.0.0-0" | ||
"vitest": "^0.15.1" | ||
}, | ||
@@ -101,0 +105,0 @@ "peerDependencies": { |
40
scrap.js
@@ -1,38 +0,24 @@ | ||
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { | ||
if (kind === "m") throw new TypeError("Private method is not writable"); | ||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); | ||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); | ||
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; | ||
}; | ||
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { | ||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); | ||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); | ||
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); | ||
}; | ||
var _vehicle_wheels, _vehicle_seats, _driftable_swervefactor; | ||
class vehicle { | ||
constructor(wheels, seats) { | ||
_vehicle_wheels.set(this, void 0); | ||
_vehicle_seats.set(this, void 0); | ||
__classPrivateFieldSet(this, _vehicle_wheels, wheels, "f"); | ||
__classPrivateFieldSet(this, _vehicle_seats, seats, "f"); | ||
} | ||
#wheels; | ||
#seats; | ||
get wheels() { | ||
return __classPrivateFieldGet(this, _vehicle_wheels, "f"); | ||
return this.#wheels; | ||
} | ||
get seats() { | ||
return __classPrivateFieldGet(this, _vehicle_seats, "f"); | ||
return this.#seats; | ||
} | ||
constructor(wheels, seats) { | ||
this.#wheels = wheels; | ||
this.#seats = seats; | ||
} | ||
} | ||
_vehicle_wheels = new WeakMap(), _vehicle_seats = new WeakMap(); | ||
class driftable { | ||
#swervefactor; | ||
get swervefactor() { | ||
return this.#swervefactor; | ||
} | ||
constructor(swervefactor) { | ||
_driftable_swervefactor.set(this, void 0); | ||
__classPrivateFieldSet(this, _driftable_swervefactor, swervefactor, "f"); | ||
this.#swervefactor = swervefactor; | ||
} | ||
get swervefactor() { | ||
return __classPrivateFieldGet(this, _driftable_swervefactor, "f"); | ||
} | ||
} | ||
_driftable_swervefactor = new WeakMap(); | ||
class car extends vehicle { | ||
@@ -39,0 +25,0 @@ constructor() { |
import type { Metadata } from "../constructs/Metadata.js"; | ||
declare module "../bus.js" { | ||
interface Events { | ||
"stacks.metadata": Record<string, any[]>; | ||
"stacks.metadata": Awaited<ReturnType<typeof metadata>>; | ||
} | ||
@@ -9,2 +9,2 @@ } | ||
export declare function metadataForStack(stackID: string): Promise<any[]>; | ||
export declare const useMetadata: () => Promise<Record<string, any[]>>; | ||
export declare const useMetadata: () => Promise<Record<string, Metadata[]>>; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unpublished package
Supply chain riskPackage version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unpublished package
Supply chain riskPackage version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.
Found 1 instance in 1 package
12394113
298
134019
165
22
56
23
+ Added@babel/generator@^7.20.4