@incdevco/framework
Version:
node.js lambda framework
1 lines • 32.5 kB
JavaScript
{"filter":false,"title":"file.js","tooltip":"/gulp/file.js","undoManager":{"mark":54,"position":54,"stack":[[{"start":{"row":0,"column":0},"end":{"row":688,"column":0},"action":"insert","lines":["","var fs = require('fs');","","var AWS = require('aws-sdk');","var eslint = require('gulp-eslint');","var gulp = require('gulp');","var gutil = require('gulp-util');","var karma = require('karma');","var mocha = require('gulp-mocha');","var Promise = require('bluebird');","require('@incdevco/framework/stream-promise');","","var AssetsBucket;","var LambdaPackages = {};","var MainStack;","var pkg = require('./package.json');","var plugins = require('@incdevco/framework/gulp');","var Stage = 'development';","var TCClientStack;","var TCWildCardSSLCertificateArn = 'arn:aws:acm:us-east-1:583839038165:certificate/a04866fb-1b44-4a66-a208-9e0df45ddb8a';","var WildCardSSLCertificateArn = 'arn:aws:acm:us-east-1:583839038165:certificate/47a7eab7-c661-4460-a6d4-3d6e561ee682';","","if (gutil.env.stage) {"," "," Stage = gutil.env.stage;"," ","}","","AWS.config.update({"," region: 'us-west-2'","});","","function getBuildClientFrontendPackagesConfig() {"," "," return {"," base: '/clients',"," concat: {"," before: ["," 'node_modules/crypto-js/crypto-js.js',"," 'node_modules/amazon-cognito-js/dist/amazon-cognito.min.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/auth.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/aws.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/user.js',"," 'dist/clients/modules/*.js'"," ]"," },"," packages: {"," 'client-administration': {"," replace: {"," 'API_KEY_REPLACE': TCClientStack.Output.AdministrationClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': TCClientStack.Output.AdministrationClientUrl"," }"," },"," 'client-representatives': {"," replace: {"," 'API_KEY_REPLACE': TCClientStack.Output.RepresentativesClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': TCClientStack.Output.RepresentativesClientUrl"," }"," }"," },"," replace: {"," 'API_ENDPOINT_REPLACE': TCClientStack.Output.ApiEndpoint,"," 'API_REGION_REPLACE': TCClientStack.Output.Region,"," 'COGNITO_IDENTITY_POOL_ID_REPLACE': TCClientStack.Output.CognitoIdentityPoolId,"," 'COGNITO_IDENTITY_POOL_REGION_REPLACE': TCClientStack.Output.Region,"," 'GOOGLE_SIGNIN_CLIENT_ID_REPLACE': '354228452898-dm0q2adlpui01ek48ca6f5pc4p7b4a0f.apps.googleusercontent.com',"," 'VERSION_REPLACE': pkg.version"," },"," version: pkg.version"," };"," ","}","","function getBuildFrontendPackagesConfig() {"," "," return {"," base: '/clients',"," concat: {"," before: ["," 'node_modules/crypto-js/crypto-js.js',"," 'node_modules/amazon-cognito-js/dist/amazon-cognito.min.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/auth.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/aws.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/user.js',"," 'dist/clients/modules/*.js'"," ]"," },"," packages: {"," administration: {"," replace: {"," 'API_KEY_REPLACE': MainStack.Output.AdministrationClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': MainStack.Output.AdministrationClientUrl"," }"," },"," clients: {"," replace: {"," 'API_KEY_REPLACE': MainStack.Output.ClientsClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': MainStack.Output.ClientsClientUrl"," }"," },"," reps: {"," replace: {"," 'API_KEY_REPLACE': MainStack.Output.RepsClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': MainStack.Output.RepsClientUrl"," }"," },"," www: {"," replace: {"," 'API_KEY_REPLACE': MainStack.Output.WwwClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': MainStack.Output.WwwClientUrl"," }"," }"," },"," replace: {"," 'API_ENDPOINT_REPLACE': MainStack.Output.ApiEndpoint,"," 'API_REGION_REPLACE': MainStack.Output.ApiRegion,"," 'COGNITO_IDENTITY_POOL_ID_REPLACE': MainStack.Output.CognitoIdentityPoolId,"," 'COGNITO_IDENTITY_POOL_REGION_REPLACE': MainStack.Output.Region,"," 'GOOGLE_SIGNIN_CLIENT_ID_REPLACE': '354228452898-dm0q2adlpui01ek48ca6f5pc4p7b4a0f.apps.googleusercontent.com',"," 'VERSION_REPLACE': pkg.version"," },"," version: pkg.version"," };"," ","}","","function getUploadAngularClientsConfig() {"," "," return {"," buckets: {"," administration: MainStack.Output.AdministrationClientBucket,"," clients: MainStack.Output.ClientsClientBucket,"," reps: MainStack.Output.RepsClientBucket,"," www: MainStack.Output.WwwClientBucket"," }"," };"," ","}","","function getUploadClientAngularClientsConfig() {"," "," return {"," buckets: {"," 'client-administration': TCClientStack.Output.AdministrationClientBucket,"," 'client-representatives': TCClientStack.Output.RepresentativesClientBucket"," }"," };"," ","}","","function outputsArrayToObject(stack) {"," "," stack.Output = {};"," "," stack.Outputs.forEach(function (output) {"," "," stack.Output[output.OutputKey] = output.OutputValue;"," "," });"," ","}","","gulp.task('build-client-frontend-packages', ["," 'unit-test-frontend',"," 'build-frontend-modules',"," 'create-update-client-stack'","], function () {"," "," var config = getBuildClientFrontendPackagesConfig();"," "," return gulp.src(["," 'clients/client-*/index.html'"," ])"," .pipe(plugins.BuildAngularClientPackages(config));"," ","});","","gulp.task('build-client-lambda-packages', ["," 'unit-test-backend'","], function () {"," "," if (gutil.env['skip-build-lambda-packages']) {"," "," return Promise.resolve(true);"," "," }"," "," return gulp.src(["," './lambda/client-*/index.js'"," ])"," .pipe(plugins.BuildLambdaPackages({"," packages: LambdaPackages"," }));"," ","});","","gulp.task('build-frontend-modules', [], function() {"," "," return gulp.src('clients/modules/*/bootstrap.js')"," .pipe(plugins.BuildAngularModules({"," base: '/clients'"," }))"," .pipe(gulp.dest('dist/clients/modules'));"," ","});","","gulp.task('build-frontend-packages', ["," 'unit-test-frontend',"," 'build-frontend-modules',"," 'create-update-main-stack'","], function () {"," "," var config = getBuildFrontendPackagesConfig();"," "," return gulp.src(["," 'clients/*/index.html',"," '!clients/client-*/index.html'"," ])"," .pipe(plugins.BuildAngularClientPackages(config));"," ","});","","gulp.task('build-lambda-packages', ["," 'unit-test-backend'","], function () {"," "," if (gutil.env['skip-build-lambda-packages']) {"," "," return Promise.resolve(true);"," "," }"," "," return gulp.src(["," './lambda/*/index.js'"," ])"," .pipe(plugins.BuildLambdaPackages({"," packages: LambdaPackages"," }));"," ","});","","gulp.task('create-update-assets-stack', [], function () {"," "," return plugins.CreateUpdateCloudFormationStack('assets', {"," Capabilities: ["," 'CAPABILITY_NAMED_IAM'"," ],"," Parameters: ["," "," ],"," TemplateBody: fs.readFileSync('./node_modules/@incdevco/framework/aws/cloud-formation/templates/assets/stack.json', 'utf8')"," })"," .then(function (result) {"," "," result.Outputs.forEach(function (output) {"," "," if (output.OutputKey === 'AssetsBucket') {"," "," AssetsBucket = output.OutputValue;"," "," }"," "," });"," "," return result;"," "," });"," ","});","","gulp.task('create-update-client-stack', ["," 'create-update-custom-cf-resource-stack',"," 'upload-cf-templates',"," 'upload-lambda-packages'","], function () {"," "," //console.log('LambdaPackages', JSON.stringify(LambdaPackages, null, 2));"," "," var parameters = ["," {"," ParameterKey: 'ApiFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-api'].S3ObjectVersion"," },"," {"," ParameterKey: 'AssetsBucket',"," ParameterValue: AssetsBucket"," },"," {"," ParameterKey: 'BucketListenerFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-bucket-listener'].S3ObjectVersion"," },"," {"," ParameterKey: 'CertificateArn',"," ParameterValue: TCWildCardSSLCertificateArn"," },"," {"," ParameterKey: 'ClientId',"," ParameterValue: 'incdevco'"," },"," {"," ParameterKey: 'CognitoSyncFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-cognito-sync'].S3ObjectVersion"," },"," {"," ParameterKey: 'DomainName',"," ParameterValue: 'cn.incdev.co'"," },"," {"," ParameterKey: 'TableStreamListenerFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-table-stream-listener'].S3ObjectVersion"," },"," {"," ParameterKey: 'WebHooksFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-web-hooks'].S3ObjectVersion"," },"," {"," ParameterKey: 'Stage',"," ParameterValue: Stage"," },"," {"," ParameterKey: 'Timestamp',"," ParameterValue: (new Date().valueOf()).toString()"," }"," ];"," "," //console.log('parameters', JSON.stringify(parameters, null, 2));"," "," return plugins.CreateUpdateCloudFormationStack('client-incdevco', {"," Capabilities: ["," 'CAPABILITY_NAMED_IAM'"," ],"," Parameters: parameters,"," TemplateBody: fs.readFileSync('./stacks/client/stack.json', 'utf8')"," })"," .then(function (result) {"," "," TCClientStack = result;"," "," return result;"," "," });"," ","});","","gulp.task('create-update-custom-cf-resource-stack', ["," 'upload-lambda-packages'","], function () {"," "," return plugins.CreateUpdateCloudFormationStack('custom-cf-resource', {"," Capabilities: ["," 'CAPABILITY_NAMED_IAM'"," ],"," Parameters: ["," {"," ParameterKey: 'LambdaPackageS3ObjectVersion',"," ParameterValue: LambdaPackages['custom-cf-resource'].S3ObjectVersion"," }"," ],"," TemplateBody: fs.readFileSync('./node_modules/@incdevco/framework/aws/cloud-formation/templates/custom-cf-resource/stack.json', 'utf8')"," });"," ","});","","gulp.task('create-update-main-stack', ["," 'create-update-custom-cf-resource-stack',"," 'upload-cf-templates',"," 'upload-lambda-packages'","], function () {"," "," var parameters = ["," {"," ParameterKey: 'ApiFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['api'].S3ObjectVersion"," },"," {"," ParameterKey: 'CognitoSyncFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['cognito-sync'].S3ObjectVersion"," },"," {"," ParameterKey: 'DomainName',"," ParameterValue: 'customernation.net'"," },"," {"," ParameterKey: 'HooksFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['hooks'].S3ObjectVersion"," },"," {"," ParameterKey: 'TableStreamListenerFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['table-stream-listener'].S3ObjectVersion"," },"," {"," ParameterKey: 'WildCardSSLCertificateArn',"," ParameterValue: WildCardSSLCertificateArn"," },"," {"," ParameterKey: 'Stage',"," ParameterValue: Stage"," },"," {"," ParameterKey: 'Timestamp',"," ParameterValue: (new Date().valueOf()).toString()"," }"," ];"," "," return plugins.CreateUpdateCloudFormationStack('main', {"," Capabilities: ["," 'CAPABILITY_NAMED_IAM'"," ],"," Parameters: parameters,"," TemplateBody: fs.readFileSync('./stacks/main/stack.json', 'utf8')"," })"," .then(function (result) {"," "," MainStack = result;"," "," return result;"," "," });"," ","});","","gulp.task('deploy', ['upload-frontend-packages']);","","gulp.task('deploy-client', ['upload-client-frontend-packages']);","","gulp.task('deploy-client-frontend', ["," 'unit-test-frontend',"," 'build-frontend-modules'","], function () {"," "," var cf = new AWS.CloudFormation();"," "," return cf.describeStacks({"," StackName: 'client-incdevco'"," }).promise()"," .then(function (result) {"," "," result.Stacks.forEach(function (possible) {"," "," if (possible.StackName === 'client-incdevco') {"," "," TCClientStack = possible;"," "," outputsArrayToObject(TCClientStack);"," "," }"," "," });"," "," if (!TCClientStack) {"," "," throw new Error('Stack Does Not Exist');"," "," }"," "," var config = getBuildClientFrontendPackagesConfig();"," "," //console.log('config', JSON.stringify(config, null, 2));"," "," //console.log('TCClientStack', JSON.stringify(TCClientStack, null, 2));"," "," return Promise.stream(gulp.src(["," 'clients/client-*/index.html'"," ])"," .pipe(plugins.BuildAngularClientPackages(config)));"," "," })"," .then(function () {"," "," var config = getUploadClientAngularClientsConfig();"," "," //console.log(JSON.stringify(config, null, 2));"," "," return Promise.stream(gulp.src(["," 'dist/clients/client-*/index.html'"," ])"," .pipe(plugins.UploadAngularClientPackages(config)));"," "," });"," ","});","","gulp.task('deploy-frontend', ["," 'unit-test-frontend',"," 'build-frontend-modules'","], function () {"," "," var cf = new AWS.CloudFormation();"," "," return cf.describeStacks({"," StackName: 'main'"," }).promise()"," .then(function (result) {"," "," result.Stacks.forEach(function (possible) {"," "," if (possible.StackName === 'main') {"," "," MainStack = possible;"," "," outputsArrayToObject(MainStack);"," "," }"," "," });"," "," if (!MainStack) {"," "," throw new Error('Stack Does Not Exist');"," "," }"," "," var config = getBuildFrontendPackagesConfig();"," "," return Promise.stream(gulp.src(["," 'clients/*/index.html',"," '!clients/client-*/index.html'"," ])"," .pipe(plugins.BuildAngularClientPackages(config)));"," "," })"," .then(function () {"," "," var config = getUploadAngularClientsConfig();"," "," //console.log(JSON.stringify(config, null, 2));"," "," return Promise.stream(gulp.src(["," 'dist/clients/*/index.html',"," '!dist/clients/client-*/index.html'"," ])"," .pipe(plugins.UploadAngularClientPackages(config)));"," "," });"," ","});","","gulp.task('lint-backend', [], function () {"," "," return gulp.src(["," './lambda/**/*.js'"," ])"," .pipe(eslint({"," envs: ["," \"mocha\","," \"node\""," ],"," rules: {"," "," },"," useEslintrc: false"," }))"," .pipe(eslint.format())"," .pipe(eslint.failAfterError());"," ","});","","gulp.task('lint-frontend', [], function () {"," "," return gulp.src(["," './clients/**/*.js'"," ])"," .pipe(eslint({"," envs: ["," \"browser\","," \"jasmine\""," ],"," rules: {"," "," },"," useEslintrc: false"," }))"," .pipe(eslint.format())"," .pipe(eslint.failAfterError());"," ","});","","gulp.task('unit-test-backend', ["," 'lint-backend'","], function () {"," "," return gulp.src(["," './lambda/**/*spec.js'"," ], {"," read: false"," })"," .pipe(mocha({"," reporter: 'spec'"," }));"," ","});","","gulp.task('unit-test-frontend', ["," 'lint-frontend'","], function (done) {"," "," new karma.Server({"," configFile: __dirname + '/karma.conf.js',"," singleRun: true"," }, function (error) {"," "," console.log('error', error);"," "," if (error) {"," "," return done(new Error('Test(s) Failed'));"," "," } else {"," "," return done();"," "," }"," "," })"," .start();"," ","});","","gulp.task('upload-cf-templates', ["," 'create-update-assets-stack'","], function() {"," "," return gulp.src(["," './stacks/**/*.json',"," './node_modules/@incdevco/framework/aws/cloud-formation/templates/**/*.json'"," ])"," .pipe(plugins.UploadCloudFormationTemplates({"," bucket: AssetsBucket"," }));"," ","});","","gulp.task('upload-client-frontend-packages', ["," 'build-client-frontend-packages'","], function () {"," "," var config = getUploadClientAngularClientsConfig();"," "," return gulp.src(["," 'dist/clients/client-*/index.html'"," ])"," .pipe(plugins.UploadAngularClientPackages(config));"," ","});","","gulp.task('upload-client-lambda-packages', ["," 'build-client-lambda-packages',"," 'create-update-assets-stack'","], function () {"," "," return gulp.src(["," './dist/lambda/client-*.zip'"," ])"," .pipe(plugins.UploadLambdaPackages({"," bucket: AssetsBucket,"," packages: LambdaPackages"," }));"," ","});","","gulp.task('upload-frontend-packages', ["," 'build-frontend-packages'","], function () {"," "," var config = getUploadAngularClientsConfig();"," "," return gulp.src(["," 'dist/clients/*/index.html',"," '!dist/clients/client-*/index.html'"," ])"," .pipe(plugins.UploadAngularClientPackages(config));"," ","});","","gulp.task('upload-lambda-packages', ["," 'build-lambda-packages',"," 'create-update-assets-stack'","], function () {"," "," return gulp.src(["," './dist/lambda/*.zip'"," ])"," .pipe(plugins.UploadLambdaPackages({"," bucket: AssetsBucket,"," packages: LambdaPackages"," }));"," ","});",""],"id":1}],[{"start":{"row":18,"column":0},"end":{"row":20,"column":0},"action":"remove","lines":["var TCClientStack;","var TCWildCardSSLCertificateArn = 'arn:aws:acm:us-east-1:583839038165:certificate/a04866fb-1b44-4a66-a208-9e0df45ddb8a';",""],"id":3}],[{"start":{"row":18,"column":33},"end":{"row":18,"column":116},"action":"remove","lines":["arn:aws:acm:us-east-1:583839038165:certificate/47a7eab7-c661-4460-a6d4-3d6e561ee682"],"id":4},{"start":{"row":18,"column":33},"end":{"row":18,"column":34},"action":"insert","lines":["R"]}],[{"start":{"row":18,"column":34},"end":{"row":18,"column":35},"action":"insert","lines":["E"],"id":5}],[{"start":{"row":18,"column":35},"end":{"row":18,"column":36},"action":"insert","lines":["P"],"id":6}],[{"start":{"row":18,"column":36},"end":{"row":18,"column":37},"action":"insert","lines":["L"],"id":7}],[{"start":{"row":18,"column":37},"end":{"row":18,"column":38},"action":"insert","lines":["A"],"id":8}],[{"start":{"row":18,"column":38},"end":{"row":18,"column":39},"action":"insert","lines":["C"],"id":9}],[{"start":{"row":18,"column":39},"end":{"row":18,"column":40},"action":"insert","lines":["E"],"id":10}],[{"start":{"row":18,"column":40},"end":{"row":18,"column":41},"action":"insert","lines":[" "],"id":11}],[{"start":{"row":18,"column":41},"end":{"row":18,"column":42},"action":"insert","lines":["W"],"id":12}],[{"start":{"row":18,"column":42},"end":{"row":18,"column":43},"action":"insert","lines":["I"],"id":13}],[{"start":{"row":18,"column":43},"end":{"row":18,"column":44},"action":"insert","lines":["T"],"id":14}],[{"start":{"row":18,"column":43},"end":{"row":18,"column":44},"action":"remove","lines":["T"],"id":15}],[{"start":{"row":18,"column":42},"end":{"row":18,"column":43},"action":"remove","lines":["I"],"id":16}],[{"start":{"row":18,"column":41},"end":{"row":18,"column":42},"action":"remove","lines":["W"],"id":17}],[{"start":{"row":18,"column":40},"end":{"row":18,"column":41},"action":"remove","lines":[" "],"id":18}],[{"start":{"row":18,"column":40},"end":{"row":18,"column":41},"action":"insert","lines":["_"],"id":19}],[{"start":{"row":18,"column":41},"end":{"row":18,"column":42},"action":"insert","lines":["W"],"id":20}],[{"start":{"row":18,"column":42},"end":{"row":18,"column":43},"action":"insert","lines":["I"],"id":21}],[{"start":{"row":18,"column":43},"end":{"row":18,"column":44},"action":"insert","lines":["T"],"id":22}],[{"start":{"row":18,"column":44},"end":{"row":18,"column":45},"action":"insert","lines":["H"],"id":23}],[{"start":{"row":18,"column":45},"end":{"row":18,"column":46},"action":"insert","lines":["_"],"id":24}],[{"start":{"row":18,"column":46},"end":{"row":18,"column":47},"action":"insert","lines":["A"],"id":25}],[{"start":{"row":18,"column":47},"end":{"row":18,"column":48},"action":"insert","lines":["R"],"id":26}],[{"start":{"row":18,"column":48},"end":{"row":18,"column":49},"action":"insert","lines":["N"],"id":27}],[{"start":{"row":29,"column":0},"end":{"row":70,"column":0},"action":"remove","lines":["","function getBuildClientFrontendPackagesConfig() {"," "," return {"," base: '/clients',"," concat: {"," before: ["," 'node_modules/crypto-js/crypto-js.js',"," 'node_modules/amazon-cognito-js/dist/amazon-cognito.min.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/auth.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/aws.js',"," 'node_modules/@incdevco/framework/dist/angular/modules/user.js',"," 'dist/clients/modules/*.js'"," ]"," },"," packages: {"," 'client-administration': {"," replace: {"," 'API_KEY_REPLACE': TCClientStack.Output.AdministrationClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': TCClientStack.Output.AdministrationClientUrl"," }"," },"," 'client-representatives': {"," replace: {"," 'API_KEY_REPLACE': TCClientStack.Output.RepresentativesClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': TCClientStack.Output.RepresentativesClientUrl"," }"," }"," },"," replace: {"," 'API_ENDPOINT_REPLACE': TCClientStack.Output.ApiEndpoint,"," 'API_REGION_REPLACE': TCClientStack.Output.Region,"," 'COGNITO_IDENTITY_POOL_ID_REPLACE': TCClientStack.Output.CognitoIdentityPoolId,"," 'COGNITO_IDENTITY_POOL_REGION_REPLACE': TCClientStack.Output.Region,"," 'GOOGLE_SIGNIN_CLIENT_ID_REPLACE': '354228452898-dm0q2adlpui01ek48ca6f5pc4p7b4a0f.apps.googleusercontent.com',"," 'VERSION_REPLACE': pkg.version"," },"," version: pkg.version"," };"," ","}",""]}],[{"start":{"row":45,"column":6},"end":{"row":45,"column":20},"action":"remove","lines":["administration"],"id":29},{"start":{"row":45,"column":6},"end":{"row":45,"column":7},"action":"insert","lines":["w"]}],[{"start":{"row":45,"column":7},"end":{"row":45,"column":8},"action":"insert","lines":["w"],"id":30}],[{"start":{"row":45,"column":8},"end":{"row":45,"column":9},"action":"insert","lines":["w"],"id":31}],[{"start":{"row":47,"column":10},"end":{"row":48,"column":10},"action":"remove","lines":["'API_KEY_REPLACE': MainStack.Output.AdministrationClientApiKey,"," "],"id":32}],[{"start":{"row":47,"column":54},"end":{"row":47,"column":68},"action":"remove","lines":["Administration"],"id":33},{"start":{"row":47,"column":54},"end":{"row":47,"column":55},"action":"insert","lines":["W"]}],[{"start":{"row":47,"column":55},"end":{"row":47,"column":56},"action":"insert","lines":["w"],"id":34}],[{"start":{"row":47,"column":56},"end":{"row":47,"column":57},"action":"insert","lines":["w"],"id":35}],[{"start":{"row":49,"column":7},"end":{"row":67,"column":7},"action":"remove","lines":[","," clients: {"," replace: {"," 'API_KEY_REPLACE': MainStack.Output.ClientsClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': MainStack.Output.ClientsClientUrl"," }"," },"," reps: {"," replace: {"," 'API_KEY_REPLACE': MainStack.Output.RepsClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': MainStack.Output.RepsClientUrl"," }"," },"," www: {"," replace: {"," 'API_KEY_REPLACE': MainStack.Output.WwwClientApiKey,"," 'CLIENT_BASE_URL_REPLACE': MainStack.Output.WwwClientUrl"," }"," }"],"id":36}],[{"start":{"row":52,"column":6},"end":{"row":54,"column":6},"action":"remove","lines":["'API_ENDPOINT_REPLACE': MainStack.Output.ApiEndpoint,"," 'API_REGION_REPLACE': MainStack.Output.ApiRegion,"," "],"id":37}],[{"start":{"row":66,"column":6},"end":{"row":69,"column":6},"action":"remove","lines":["administration: MainStack.Output.AdministrationClientBucket,"," clients: MainStack.Output.ClientsClientBucket,"," reps: MainStack.Output.RepsClientBucket,"," "],"id":39}],[{"start":{"row":71,"column":0},"end":{"row":82,"column":0},"action":"remove","lines":["","function getUploadClientAngularClientsConfig() {"," "," return {"," buckets: {"," 'client-administration': TCClientStack.Output.AdministrationClientBucket,"," 'client-representatives': TCClientStack.Output.RepresentativesClientBucket"," }"," };"," ","}",""],"id":40}],[{"start":{"row":83,"column":0},"end":{"row":98,"column":0},"action":"remove","lines":["","gulp.task('build-client-frontend-packages', ["," 'unit-test-frontend',"," 'build-frontend-modules',"," 'create-update-client-stack'","], function () {"," "," var config = getBuildClientFrontendPackagesConfig();"," "," return gulp.src(["," 'clients/client-*/index.html'"," ])"," .pipe(plugins.BuildAngularClientPackages(config));"," ","});",""],"id":41}],[{"start":{"row":83,"column":0},"end":{"row":102,"column":0},"action":"remove","lines":["","gulp.task('build-client-lambda-packages', ["," 'unit-test-backend'","], function () {"," "," if (gutil.env['skip-build-lambda-packages']) {"," "," return Promise.resolve(true);"," "," }"," "," return gulp.src(["," './lambda/client-*/index.js'"," ])"," .pipe(plugins.BuildLambdaPackages({"," packages: LambdaPackages"," }));"," ","});",""],"id":42}],[{"start":{"row":103,"column":27},"end":{"row":104,"column":34},"action":"remove","lines":[""," '!clients/client-*/index.html'"],"id":43}],[{"start":{"row":103,"column":26},"end":{"row":103,"column":27},"action":"remove","lines":[","],"id":44}],[{"start":{"row":156,"column":0},"end":{"row":230,"column":0},"action":"remove","lines":["","gulp.task('create-update-client-stack', ["," 'create-update-custom-cf-resource-stack',"," 'upload-cf-templates',"," 'upload-lambda-packages'","], function () {"," "," //console.log('LambdaPackages', JSON.stringify(LambdaPackages, null, 2));"," "," var parameters = ["," {"," ParameterKey: 'ApiFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-api'].S3ObjectVersion"," },"," {"," ParameterKey: 'AssetsBucket',"," ParameterValue: AssetsBucket"," },"," {"," ParameterKey: 'BucketListenerFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-bucket-listener'].S3ObjectVersion"," },"," {"," ParameterKey: 'CertificateArn',"," ParameterValue: TCWildCardSSLCertificateArn"," },"," {"," ParameterKey: 'ClientId',"," ParameterValue: 'incdevco'"," },"," {"," ParameterKey: 'CognitoSyncFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-cognito-sync'].S3ObjectVersion"," },"," {"," ParameterKey: 'DomainName',"," ParameterValue: 'cn.incdev.co'"," },"," {"," ParameterKey: 'TableStreamListenerFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-table-stream-listener'].S3ObjectVersion"," },"," {"," ParameterKey: 'WebHooksFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['client-web-hooks'].S3ObjectVersion"," },"," {"," ParameterKey: 'Stage',"," ParameterValue: Stage"," },"," {"," ParameterKey: 'Timestamp',"," ParameterValue: (new Date().valueOf()).toString()"," }"," ];"," "," //console.log('parameters', JSON.stringify(parameters, null, 2));"," "," return plugins.CreateUpdateCloudFormationStack('client-incdevco', {"," Capabilities: ["," 'CAPABILITY_NAMED_IAM'"," ],"," Parameters: parameters,"," TemplateBody: fs.readFileSync('./stacks/client/stack.json', 'utf8')"," })"," .then(function (result) {"," "," TCClientStack = result;"," "," return result;"," "," });"," ","});",""]}],[{"start":{"row":183,"column":4},"end":{"row":191,"column":4},"action":"remove","lines":["{"," ParameterKey: 'ApiFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['api'].S3ObjectVersion"," },"," {"," ParameterKey: 'CognitoSyncFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['cognito-sync'].S3ObjectVersion"," },"," "],"id":46}],[{"start":{"row":187,"column":4},"end":{"row":195,"column":4},"action":"remove","lines":["{"," ParameterKey: 'HooksFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['hooks'].S3ObjectVersion"," },"," {"," ParameterKey: 'TableStreamListenerFunctionS3ObjectVersion',"," ParameterValue: LambdaPackages['table-stream-listener'].S3ObjectVersion"," },"," "],"id":47}],[{"start":{"row":219,"column":0},"end":{"row":221,"column":0},"action":"remove","lines":["","gulp.task('deploy-client', ['upload-client-frontend-packages']);",""],"id":48}],[{"start":{"row":219,"column":0},"end":{"row":276,"column":0},"action":"remove","lines":["","gulp.task('deploy-client-frontend', ["," 'unit-test-frontend',"," 'build-frontend-modules'","], function () {"," "," var cf = new AWS.CloudFormation();"," "," return cf.describeStacks({"," StackName: 'client-incdevco'"," }).promise()"," .then(function (result) {"," "," result.Stacks.forEach(function (possible) {"," "," if (possible.StackName === 'client-incdevco') {"," "," TCClientStack = possible;"," "," outputsArrayToObject(TCClientStack);"," "," }"," "," });"," "," if (!TCClientStack) {"," "," throw new Error('Stack Does Not Exist');"," "," }"," "," var config = getBuildClientFrontendPackagesConfig();"," "," //console.log('config', JSON.stringify(config, null, 2));"," "," //console.log('TCClientStack', JSON.stringify(TCClientStack, null, 2));"," "," return Promise.stream(gulp.src(["," 'clients/client-*/index.html'"," ])"," .pipe(plugins.BuildAngularClientPackages(config)));"," "," })"," .then(function () {"," "," var config = getUploadClientAngularClientsConfig();"," "," //console.log(JSON.stringify(config, null, 2));"," "," return Promise.stream(gulp.src(["," 'dist/clients/client-*/index.html'"," ])"," .pipe(plugins.UploadAngularClientPackages(config)));"," "," });"," ","});",""]}],[{"start":{"row":253,"column":29},"end":{"row":254,"column":36},"action":"remove","lines":[""," '!clients/client-*/index.html'"],"id":50}],[{"start":{"row":253,"column":28},"end":{"row":253,"column":29},"action":"remove","lines":[","],"id":51}],[{"start":{"row":265,"column":34},"end":{"row":266,"column":41},"action":"remove","lines":[""," '!dist/clients/client-*/index.html'"],"id":52}],[{"start":{"row":265,"column":33},"end":{"row":265,"column":34},"action":"remove","lines":[","],"id":53}],[{"start":{"row":367,"column":0},"end":{"row":380,"column":0},"action":"remove","lines":["","gulp.task('upload-client-frontend-packages', ["," 'build-client-frontend-packages'","], function () {"," "," var config = getUploadClientAngularClientsConfig();"," "," return gulp.src(["," 'dist/clients/client-*/index.html'"," ])"," .pipe(plugins.UploadAngularClientPackages(config));"," ","});",""],"id":54}],[{"start":{"row":367,"column":0},"end":{"row":382,"column":0},"action":"remove","lines":["","gulp.task('upload-client-lambda-packages', ["," 'build-client-lambda-packages',"," 'create-update-assets-stack'","], function () {"," "," return gulp.src(["," './dist/lambda/client-*.zip'"," ])"," .pipe(plugins.UploadLambdaPackages({"," bucket: AssetsBucket,"," packages: LambdaPackages"," }));"," ","});",""],"id":55}],[{"start":{"row":375,"column":32},"end":{"row":376,"column":39},"action":"remove","lines":[""," '!dist/clients/client-*/index.html'"],"id":56}],[{"start":{"row":375,"column":31},"end":{"row":375,"column":32},"action":"remove","lines":[","],"id":57}]]},"ace":{"folds":[],"scrolltop":5894,"scrollleft":0,"selection":{"start":{"row":375,"column":31},"end":{"row":375,"column":31},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":{"row":293,"state":"start","mode":"ace/mode/javascript"}},"timestamp":1498426761461,"hash":"3c283d72acc55023c5fc8149c75a65671d0eb7b4"}