{ "kind": "SourceFile", "statements": [{ "kind": "ImportDeclaration", "importClause": { "kind": "ImportClause", "isTypeOnly": false, "namedBindings": { "kind": "NamedImports", "elements": [{ "kind": "ImportSpecifier", "isTypeOnly": false, "name": { "kind": "Identifier", "escapedText": "EnvironmentDefinition", "id": 6 }, "id": 5 }, { "kind": "ImportSpecifier", "isTypeOnly": false, "name": { "kind": "Identifier", "escapedText": "AccountConnection", "id": 8 }, "id": 7 }, { "kind": "ImportSpecifier", "isTypeOnly": false, "name": { "kind": "Identifier", "escapedText": "Role", "id": 10 }, "id": 9 }], "id": 4 }, "id": 3 }, "moduleSpecifier": { "kind": "StringLiteral", "text": "@amazon-codecatalyst/blueprint-component.environments", "hasExtendedUnicodeEscape": false, "id": 11 }, "id": 2 }, { "kind": "ImportDeclaration", "importClause": { "kind": "ImportClause", "isTypeOnly": false, "namedBindings": { "kind": "NamedImports", "elements": [{ "kind": "ImportSpecifier", "isTypeOnly": false, "name": { "kind": "Identifier", "escapedText": "SourceRepository", "id": 16 }, "id": 15 }], "id": 14 }, "id": 13 }, "moduleSpecifier": { "kind": "StringLiteral", "text": "@amazon-codecatalyst/blueprint-component.source-repositories", "hasExtendedUnicodeEscape": false, "id": 17 }, "id": 12 }, { "kind": "ImportDeclaration", "importClause": { "kind": "ImportClause", "isTypeOnly": false, "namedBindings": { "kind": "NamedImports", "elements": [{ "kind": "ImportSpecifier", "isTypeOnly": false, "propertyName": { "kind": "Identifier", "escapedText": "Blueprint", "id": 22 }, "name": { "kind": "Identifier", "escapedText": "ParentBlueprint", "id": 23 }, "id": 21 }, { "kind": "ImportSpecifier", "isTypeOnly": false, "propertyName": { "kind": "Identifier", "escapedText": "Options", "id": 25 }, "name": { "kind": "Identifier", "escapedText": "ParentOptions", "id": 26 }, "id": 24 }], "id": 20 }, "id": 19 }, "moduleSpecifier": { "kind": "StringLiteral", "text": "@amazon-codecatalyst/blueprints.blueprint", "hasExtendedUnicodeEscape": false, "id": 27 }, "id": 18 }, { "kind": "FirstStatement", "modifiers": [{ "kind": "ExportKeyword", "id": 29 }, { "kind": "DeclareKeyword", "id": 30 }], "declarationList": { "kind": "VariableDeclarationList", "declarations": [{ "kind": "VariableDeclaration", "name": { "kind": "Identifier", "escapedText": "PROJEN_VERSION", "id": 33 }, "initializer": { "kind": "StringLiteral", "text": "0.61.44", "hasExtendedUnicodeEscape": false, "id": 34 }, "id": 32 }], "id": 31 }, "id": 28 }, { "kind": "InterfaceDeclaration", "modifiers": [{ "kind": "ExportKeyword", "id": 36 }], "name": { "kind": "Identifier", "escapedText": "Options", "id": 37 }, "heritageClauses": [{ "kind": "HeritageClause", "token": 94, "types": [{ "kind": "ExpressionWithTypeArguments", "expression": { "kind": "Identifier", "escapedText": "ParentOptions", "id": 40 }, "id": 39 }], "id": 38 }], "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "environment", "id": 42 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "EnvironmentDefinition", "id": 44 }, "typeArguments": [{ "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "awsAccountConnection", "id": 47 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "AccountConnection", "id": 49 }, "typeArguments": [{ "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "cdkRole", "id": 52 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Role", "id": 54 }, "typeArguments": [{ "kind": "TupleType", "elements": [{ "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "CDK Bootstrap", "hasExtendedUnicodeEscape": false, "id": 57 }, "id": 56 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "CDK Deploy", "hasExtendedUnicodeEscape": false, "id": 59 }, "id": 58 }], "id": 55 }], "id": 53 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This is the role that will be used to deploy the web application. It should have access to bootstrap and deploy all of your resources.", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "CDK Role" }] }], "id": 51 }], "id": 50 }], "id": 48 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "AWS accounts are needed for deployment. You can move forward without adding an AWS account but the web application will not deploy.", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "AWS account connection" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" }, "comment": "false" }] }], "id": 46 }], "id": 45 }], "id": 43 }, "jsDoc": [{ "kind": "JSDocComment", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Environment" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" }, "comment": "false" }] }], "id": 41 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "webappOptions", "id": 61 }, "type": { "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "repositoryName", "id": 64 }, "type": { "kind": "StringKeyword", "id": 65 }, "jsDoc": [{ "kind": "JSDocComment", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Code Repository Name" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": "/(?!.*\\.git$)^[a-zA-Z0-9_.-]{1,100}$/" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationMessage" }, "comment": "Must contain only alphanumeric characters, periods (.), underscores (_), dashes (-) and be up to 100 characters in length. Cannot end in .git or contain spaces" }] }], "id": 63 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "reactFolderName", "id": 67 }, "type": { "kind": "StringKeyword", "id": 68 }, "jsDoc": [{ "kind": "JSDocComment", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Frontend folder" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": "/^[a-zA-Z0-9_-]+$/" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationMessage" }, "comment": "Must contain only alphanumeric characters, underscores (_), and dashes (-)" }] }], "id": 66 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "nodeFolderName", "id": 70 }, "type": { "kind": "StringKeyword", "id": 71 }, "jsDoc": [{ "kind": "JSDocComment", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Backend folder" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": "/^[a-zA-Z0-9_-]+$/" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationMessage" }, "comment": "Must contain only alphanumeric characters, underscores (_), and dashes (-)" }] }], "id": 69 }], "id": 62 }, "jsDoc": [{ "kind": "JSDocComment", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Code Repository and folder names" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" }, "comment": "true" }] }], "id": 60 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "advanced", "id": 73 }, "type": { "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "lambdaName", "id": 76 }, "type": { "kind": "StringKeyword", "id": 77 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "Lambda function name must be unqiue to the AWS account it's being deployed to.", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": "/^[a-zA-Z0-9]{1,56}$/" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationMessage" }, "comment": "Must contain only alphanumeric characters, underscores (_)" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Lambda function name" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "defaultEntropy" }, "comment": "5" }] }], "id": 75 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "stackName", "id": 79 }, "type": { "kind": "StringKeyword", "id": 80 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "The name of the Cloudformation stack to deploy the application's resources", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": "/^[a-zA-Z][a-zA-Z0-9-]{1,128}$/" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationMessage" }, "comment": "Stack names must start with a letter, then contain alphanumeric characters and dashes(-) up to a total length of 128 characters" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Cloudformation stack name" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "defaultEntropy" }, "comment": "5" }] }], "id": 78 }], "id": 74 }, "jsDoc": [{ "kind": "JSDocComment", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "Advanced" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" }, "comment": "true" }] }], "id": 72 }], "jsDoc": [{ "kind": "JSDocComment", "comment": "This is the 'Options' interface. The 'Options' interface is interpreted by the wizard to dynamically generate a selection UI.\n1. It MUST be called 'Options' in order to be interpreted by the wizard\n2. This is how you control the fields that show up on a wizard selection panel. Keeping this small leads to a better user experience.\n3. You can use JSDOCs and annotations such as: '?', @advanced, @hidden, @display - textarea, etc. to control how the wizard displays certain fields.\n4. All required members of 'Options' must be defined in 'defaults.json' to synth your blueprint locally\n5. The 'Options' member values defined in 'defaults.json' will be used to populate the wizard selection panel with default values" }], "id": 35 }, { "kind": "ClassDeclaration", "modifiers": [{ "kind": "ExportKeyword", "id": 82 }, { "kind": "DeclareKeyword", "id": 83 }], "name": { "kind": "Identifier", "escapedText": "Blueprint", "id": 84 }, "heritageClauses": [{ "kind": "HeritageClause", "token": 94, "types": [{ "kind": "ExpressionWithTypeArguments", "expression": { "kind": "Identifier", "escapedText": "ParentBlueprint", "id": 87 }, "id": 86 }], "id": 85 }], "members": [{ "kind": "PropertyDeclaration", "modifiers": [{ "kind": "ProtectedKeyword", "id": 89 }], "name": { "kind": "Identifier", "escapedText": "options", "id": 90 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Options", "id": 92 }, "id": 91 }, "id": 88 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "ProtectedKeyword", "id": 94 }, { "kind": "ReadonlyKeyword", "id": 95 }], "name": { "kind": "Identifier", "escapedText": "repositoryName", "id": 96 }, "type": { "kind": "StringKeyword", "id": 97 }, "id": 93 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "ProtectedKeyword", "id": 99 }, { "kind": "ReadonlyKeyword", "id": 100 }], "name": { "kind": "Identifier", "escapedText": "frontendStackName", "id": 101 }, "type": { "kind": "StringKeyword", "id": 102 }, "id": 98 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "ProtectedKeyword", "id": 104 }, { "kind": "ReadonlyKeyword", "id": 105 }], "name": { "kind": "Identifier", "escapedText": "backendStackName", "id": 106 }, "type": { "kind": "StringKeyword", "id": 107 }, "id": 103 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "ProtectedKeyword", "id": 109 }, { "kind": "ReadonlyKeyword", "id": 110 }], "name": { "kind": "Identifier", "escapedText": "reactFolderName", "id": 111 }, "type": { "kind": "StringKeyword", "id": 112 }, "id": 108 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "ProtectedKeyword", "id": 114 }, { "kind": "ReadonlyKeyword", "id": 115 }], "name": { "kind": "Identifier", "escapedText": "nodeFolderName", "id": 116 }, "type": { "kind": "StringKeyword", "id": 117 }, "id": 113 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "ProtectedKeyword", "id": 119 }, { "kind": "ReadonlyKeyword", "id": 120 }], "name": { "kind": "Identifier", "escapedText": "repository", "id": 121 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "SourceRepository", "id": 123 }, "id": 122 }, "id": 118 }, { "kind": "Constructor", "parameters": [{ "kind": "Parameter", "name": { "kind": "Identifier", "escapedText": "options_", "id": 126 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Options", "id": 128 }, "id": 127 }, "id": 125 }], "id": 124 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "PrivateKeyword", "id": 130 }], "name": { "kind": "Identifier", "escapedText": "createWorkflow", "id": 131 }, "id": 129 }, { "kind": "PropertyDeclaration", "modifiers": [{ "kind": "PrivateKeyword", "id": 133 }], "name": { "kind": "Identifier", "escapedText": "createDeployAction", "id": 134 }, "id": 132 }, { "kind": "MethodDeclaration", "name": { "kind": "Identifier", "escapedText": "applySuffix", "id": 136 }, "parameters": [{ "kind": "Parameter", "name": { "kind": "Identifier", "escapedText": "str", "id": 138 }, "type": { "kind": "StringKeyword", "id": 139 }, "id": 137 }, { "kind": "Parameter", "name": { "kind": "Identifier", "escapedText": "suffix", "id": 141 }, "type": { "kind": "StringKeyword", "id": 142 }, "id": 140 }, { "kind": "Parameter", "name": { "kind": "Identifier", "escapedText": "maxLength", "id": 144 }, "type": { "kind": "NumberKeyword", "id": 145 }, "id": 143 }], "type": { "kind": "StringKeyword", "id": 146 }, "id": 135 }], "jsDoc": [{ "kind": "JSDocComment", "comment": "This is the actual blueprint class.\n1. This MUST be the only 'class' exported, as 'Blueprint'\n2. This Blueprint should extend another ParentBlueprint" }], "id": 81 }], "endOfFileToken": { "kind": "EndOfFileToken", "id": 147 }, "fileName": "temp-ast.d.ts", "languageVersion": 99, "languageVariant": 0, "scriptKind": 3, "isDeclarationFile": true, "hasNoDefaultLib": false, "bindDiagnostics": [], "pragmas": {}, "referencedFiles": [], "typeReferenceDirectives": [], "libReferenceDirectives": [], "amdDependencies": [], "nodeCount": 217, "identifierCount": 70, "identifiers": {}, "parseDiagnostics": [], "id": 1 }
