stacktape 1.0.0-alpha.0 → 1.0.0-alpha.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/README.md +293 -0
  2. package/bin/run +4 -3
  3. package/{non-ts-files → bridge-files}/python-bridge.py +0 -1
  4. package/cli.js +3195 -0
  5. package/config-schema.json +1 -0
  6. package/helper-lambdas/batchJobTriggerLambda-5a7a97ea96fb057f98fa1cd944ffd96e189ace30.zip +0 -0
  7. package/helper-lambdas/cdnOriginRequestLambda-5bc99969584910bee33239649d9584ab4df8cddb.zip +0 -0
  8. package/helper-lambdas/cdnOriginResponseLambda-7e11065565f3da21f57fb82c403b50be7d76ba2e.zip +0 -0
  9. package/helper-lambdas/stacktapeServiceLambda-238e526e0e31490a8314cc23dedef59d96e53859.zip +0 -0
  10. package/package.json +9 -49
  11. package/sdk.d.ts +7313 -0
  12. package/sdk.js +35 -0
  13. package/server.js +33 -0
  14. package/source-map-install.js +4 -0
  15. package/starter-projects/python-video-transcoding-batch-job/.eslintrc +77 -0
  16. package/starter-projects/python-video-transcoding-batch-job/.prettierrc +5 -0
  17. package/starter-projects/python-video-transcoding-batch-job/README.md +34 -0
  18. package/starter-projects/python-video-transcoding-batch-job/bucket-data/raw-videos/SampleVideo_1280x720_1mb.mp4 +0 -0
  19. package/starter-projects/python-video-transcoding-batch-job/frontend-lambda/SSRApp.tsx +50 -0
  20. package/starter-projects/python-video-transcoding-batch-job/frontend-lambda/components/BucketArtifactList.tsx +69 -0
  21. package/starter-projects/python-video-transcoding-batch-job/frontend-lambda/components/ExecutionsList.tsx +72 -0
  22. package/starter-projects/python-video-transcoding-batch-job/frontend-lambda/index.tsx +109 -0
  23. package/starter-projects/python-video-transcoding-batch-job/package.json +39 -0
  24. package/starter-projects/python-video-transcoding-batch-job/stacktape.yml +53 -0
  25. package/starter-projects/python-video-transcoding-batch-job/tsconfig.json +22 -0
  26. package/starter-projects/python-video-transcoding-batch-job/video-transcoder/Dockerfile +13 -0
  27. package/starter-projects/python-video-transcoding-batch-job/video-transcoder/video-transform.py +47 -0
  28. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/.eslintrc +76 -0
  29. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/.prettierrc +5 -0
  30. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/README.md +48 -0
  31. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/package.json +35 -0
  32. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/scripts/test-api.ts +36 -0
  33. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/src/index.ts +24 -0
  34. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/src/model/post.ts +27 -0
  35. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/src/routes/post.ts +59 -0
  36. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/src/services/mongoose.ts +15 -0
  37. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/stacktape.yml +43 -0
  38. package/starter-projects/typescript-expressjs-api-mongodb-mongoose/tsconfig.json +21 -0
  39. package/starter-projects/typescript-expressjs-api-mysql-sequelize/.eslintrc +76 -0
  40. package/starter-projects/typescript-expressjs-api-mysql-sequelize/.prettierrc +5 -0
  41. package/starter-projects/typescript-expressjs-api-mysql-sequelize/README.md +42 -0
  42. package/starter-projects/typescript-expressjs-api-mysql-sequelize/package.json +36 -0
  43. package/starter-projects/typescript-expressjs-api-mysql-sequelize/scripts/test-api.ts +36 -0
  44. package/starter-projects/typescript-expressjs-api-mysql-sequelize/src/index.ts +24 -0
  45. package/starter-projects/typescript-expressjs-api-mysql-sequelize/src/model/post.ts +11 -0
  46. package/starter-projects/typescript-expressjs-api-mysql-sequelize/src/routes/post.ts +55 -0
  47. package/starter-projects/typescript-expressjs-api-mysql-sequelize/src/services/sequelize.ts +10 -0
  48. package/starter-projects/typescript-expressjs-api-mysql-sequelize/stacktape.yml +60 -0
  49. package/starter-projects/typescript-expressjs-api-mysql-sequelize/tsconfig.json +21 -0
  50. package/starter-projects/typescript-lambda-api-postgres-prisma/.eslintrc +76 -0
  51. package/starter-projects/typescript-lambda-api-postgres-prisma/.prettierrc +5 -0
  52. package/starter-projects/typescript-lambda-api-postgres-prisma/README.md +46 -0
  53. package/starter-projects/typescript-lambda-api-postgres-prisma/package.json +35 -0
  54. package/starter-projects/typescript-lambda-api-postgres-prisma/prisma/schema.prisma +18 -0
  55. package/starter-projects/typescript-lambda-api-postgres-prisma/scripts/prisma-migrate.ts +8 -0
  56. package/starter-projects/typescript-lambda-api-postgres-prisma/scripts/test-api.ts +36 -0
  57. package/starter-projects/typescript-lambda-api-postgres-prisma/src/lambdas/create-post.ts +33 -0
  58. package/starter-projects/typescript-lambda-api-postgres-prisma/src/lambdas/delete-post.ts +26 -0
  59. package/starter-projects/typescript-lambda-api-postgres-prisma/src/lambdas/get-post.ts +25 -0
  60. package/starter-projects/typescript-lambda-api-postgres-prisma/src/lambdas/get-posts.ts +27 -0
  61. package/starter-projects/typescript-lambda-api-postgres-prisma/src/lambdas/update-post.ts +35 -0
  62. package/starter-projects/typescript-lambda-api-postgres-prisma/src/services/prisma.ts +3 -0
  63. package/starter-projects/typescript-lambda-api-postgres-prisma/stacktape.yml +108 -0
  64. package/starter-projects/typescript-lambda-api-postgres-prisma/tsconfig.json +21 -0
  65. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/.eslintrc +76 -0
  66. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/.prettierrc +5 -0
  67. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/README.md +46 -0
  68. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/package.json +36 -0
  69. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/prisma/schema.prisma +18 -0
  70. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/scripts/prisma-migrate.ts +8 -0
  71. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/scripts/test-api.ts +36 -0
  72. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/src/lambdas/create-post.ts +37 -0
  73. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/src/lambdas/delete-post.ts +26 -0
  74. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/src/lambdas/get-post.ts +25 -0
  75. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/src/lambdas/get-posts.ts +27 -0
  76. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/src/lambdas/update-post.ts +35 -0
  77. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/src/services/cognito.ts +3 -0
  78. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/src/services/prisma.ts +3 -0
  79. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/stacktape.yml +133 -0
  80. package/starter-projects/typescript-lambda-api-postgres-prisma-auth/tsconfig.json +21 -0
  81. package/starter-projects/typescript-lambda-hello-world/.eslintrc +76 -0
  82. package/starter-projects/typescript-lambda-hello-world/.prettierrc +5 -0
  83. package/starter-projects/typescript-lambda-hello-world/README.md +31 -0
  84. package/starter-projects/typescript-lambda-hello-world/package.json +26 -0
  85. package/starter-projects/typescript-lambda-hello-world/src/say-hello.ts +5 -0
  86. package/starter-projects/typescript-lambda-hello-world/stacktape.yml +17 -0
  87. package/starter-projects/typescript-lambda-hello-world/tsconfig.json +21 -0
  88. package/starter-projects/typescript-nestjs-api-postgres-prisma/.eslintrc +76 -0
  89. package/starter-projects/typescript-nestjs-api-postgres-prisma/.prettierrc +5 -0
  90. package/starter-projects/typescript-nestjs-api-postgres-prisma/README.md +42 -0
  91. package/starter-projects/typescript-nestjs-api-postgres-prisma/nest-cli.json +4 -0
  92. package/starter-projects/typescript-nestjs-api-postgres-prisma/package.json +41 -0
  93. package/starter-projects/typescript-nestjs-api-postgres-prisma/prisma/schema.prisma +19 -0
  94. package/starter-projects/typescript-nestjs-api-postgres-prisma/scripts/prisma-migrate.ts +8 -0
  95. package/starter-projects/typescript-nestjs-api-postgres-prisma/scripts/test-api.ts +36 -0
  96. package/starter-projects/typescript-nestjs-api-postgres-prisma/src/app.controller.ts +70 -0
  97. package/starter-projects/typescript-nestjs-api-postgres-prisma/src/app.module.ts +15 -0
  98. package/starter-projects/typescript-nestjs-api-postgres-prisma/src/main.ts +9 -0
  99. package/starter-projects/typescript-nestjs-api-postgres-prisma/src/middleware/logger.ts +17 -0
  100. package/starter-projects/typescript-nestjs-api-postgres-prisma/src/prisma.service.ts +13 -0
  101. package/starter-projects/typescript-nestjs-api-postgres-prisma/stacktape.yml +81 -0
  102. package/starter-projects/typescript-nestjs-api-postgres-prisma/tsconfig.json +21 -0
  103. package/starter-projects/web-scraper-lambda-puppeteer/.eslintrc +76 -0
  104. package/starter-projects/web-scraper-lambda-puppeteer/.prettierrc +5 -0
  105. package/starter-projects/web-scraper-lambda-puppeteer/README.md +34 -0
  106. package/starter-projects/web-scraper-lambda-puppeteer/package.json +31 -0
  107. package/starter-projects/web-scraper-lambda-puppeteer/src/lambdas/scrape-links.ts +30 -0
  108. package/starter-projects/web-scraper-lambda-puppeteer/stacktape.yml +25 -0
  109. package/starter-projects/web-scraper-lambda-puppeteer/tsconfig.json +21 -0
  110. package/starter-projects/website-gatsby/README.md +32 -0
  111. package/starter-projects/website-gatsby/stacktape.yml +12 -0
  112. package/starter-projects/website-gatsby/web/index.html +23 -0
  113. package/starter-projects/website-gatsby/web/static/favicon.ico +0 -0
  114. package/starter-projects/website-gatsby/web/static/stacktape-logo.svg +73 -0
  115. package/starter-projects/website-gatsby/web/styles/Home.module.css +59 -0
  116. package/starter-projects/website-gatsby/web/styles/globals.css +16 -0
  117. package/starter-projects/website-nextjs-ssr/.eslintrc +77 -0
  118. package/starter-projects/website-nextjs-ssr/.prettierrc +5 -0
  119. package/starter-projects/website-nextjs-ssr/README.md +33 -0
  120. package/starter-projects/website-nextjs-ssr/next-env.d.ts +6 -0
  121. package/starter-projects/website-nextjs-ssr/next.config.js +4 -0
  122. package/starter-projects/website-nextjs-ssr/package.json +37 -0
  123. package/starter-projects/website-nextjs-ssr/public/static/favicon.ico +0 -0
  124. package/starter-projects/website-nextjs-ssr/public/static/stacktape-logo.svg +73 -0
  125. package/starter-projects/website-nextjs-ssr/src/next-server.ts +22 -0
  126. package/starter-projects/website-nextjs-ssr/src/pages/_app.tsx +7 -0
  127. package/starter-projects/website-nextjs-ssr/src/pages/index.tsx +32 -0
  128. package/starter-projects/website-nextjs-ssr/src/styles/Home.module.css +54 -0
  129. package/starter-projects/website-nextjs-ssr/src/styles/globals.css +16 -0
  130. package/starter-projects/website-nextjs-ssr/stacktape.yml +35 -0
  131. package/starter-projects/website-nextjs-ssr/tsconfig.json +22 -0
  132. package/starter-projects/website-static-html/README.md +32 -0
  133. package/starter-projects/website-static-html/stacktape.yml +12 -0
  134. package/starter-projects/website-static-html/web/index.html +23 -0
  135. package/starter-projects/website-static-html/web/static/favicon.ico +0 -0
  136. package/starter-projects/website-static-html/web/static/stacktape-logo.svg +73 -0
  137. package/starter-projects/website-static-html/web/styles/Home.module.css +59 -0
  138. package/starter-projects/website-static-html/web/styles/globals.css +16 -0
  139. package/helper-lambdas/batchJobTriggerLambda-69badf9d6a7197a25d9422cdc84f5b2132888808.zip +0 -0
  140. package/helper-lambdas/stacktapeServiceLambda-6a11c1009654e93b6731fae80991dec4f6113f61.zip +0 -0
  141. package/stacktape.js +0 -2
  142. package/thread-workers/custom-dockerfile.js +0 -2
  143. package/thread-workers/es-container.js +0 -2
  144. package/thread-workers/es-lambda.js +0 -2
package/README.md ADDED
@@ -0,0 +1,293 @@
1
+ [![Stacktape cloud native framework](https://stacktape.com/github_title.png)](http://stacktape.com)
2
+ [Website](https://stacktape.com) • [Get Started](https://docs.stacktape.com/getting-started) • [Docs](https://docs.stacktape.com/) • [Examples](https://github.com/stacktape/stacktape) • [Blog](https://teespring.com/stores/serverless) • [Slack](https://stacktape-community.slack.com) • [Twitter](https://twitter.com/stacktape) • [Facebook](https://www.facebook.com/stacktape) • [Linked In](https://www.linkedin.com/company/stacktape/)
3
+
4
+
5
+ # Stacktape is a cloud-native framework that makes full power of AWS accessible to common developers.
6
+
7
+
8
+
9
+ - **Made for developers -** By abstracting away all the complexity, we make cloud development accessible to every developer.
10
+ - **Full power of AWS -** Deploy anything. From simple web apps to complicated data-processing pipelines.
11
+ - **Production-ready from day 1 -** Reliability, scalability, security & performance. With no extra effort.
12
+ - **Optimized for productivity -** Includes developer tooling that makes cloud-native development seamless and developers happy.
13
+ - **Fully serverless -** Scale from 0 to 1000s of concurrent workloads automatically. Pay only for what you use.
14
+ - **Cost-effective -** We do our best to keep your AWS bills as low as possible. Without compromising quality.
15
+
16
+
17
+ ## Contents
18
+
19
+ - [How it works](#how-it-works)
20
+ - [Comparison](#comparison)
21
+ - [Serverless](#serverless)
22
+ - [Heroku](#heroku)
23
+ - [Firebase](#firebase)
24
+ - [Kubernetes](#kubernetes)
25
+ - [AWS SAM](#aws-sam)
26
+ - [CloudFormation](#cloudformation)
27
+ - [Terraform](#terraform)
28
+ - [FAQ](#faq)
29
+ - [Community and Socials](#community-and-socials)
30
+ - [Other](#other)
31
+
32
+
33
+ ## How it works
34
+
35
+ ### 1. Configure your infrastructure
36
+
37
+ Every aspect of your application is configured using a **simple configuration file**.\
38
+
39
+ Configuration can be written in multiple languages, from **YAML** & **JSON** to **Typescript** & **Python**.\
40
+
41
+ Built-in directives help with common tasks and **custom directives can be used to build custom, reusable constructs using real languages**.\
42
+
43
+ You can extend Stacktape templates using **AWS Cloudformation** or override any aspect of the framework using **custom plugins**.
44
+
45
+
46
+ > _Example **stacktape.yml** configuration file_
47
+
48
+ ```yml
49
+ stackConfig:
50
+ name: my-stack
51
+ resources:
52
+ functions:
53
+ generateWeeklyReport:
54
+ sourcePath: src/reports/generate-weekly-report.ts
55
+ environment:
56
+ DB_URL: $Param('userDatabase', 'Address')
57
+ events:
58
+ - schedule:
59
+ rate: cron(0 7 * * 1)
60
+ databases:
61
+ userDatabase:
62
+ dbInstanceSize: db.t3.micro
63
+ engine:
64
+ type: postgres
65
+ version: 12.4
66
+ ```
67
+
68
+ ### 2. Develop your application
69
+
70
+ Stacktape is based on experience from many cloud-native projects, making your development process as seamless and productive as possible.\
71
+
72
+ You can **emulate cloud environment**, **interact with live cloud services**, **preview & inspect changes**, **rollback to previous versions**, **enforce policies** & much more.\
73
+
74
+ Stacktape isn’t opinionated about your development workflow, making it easy to **fit into any pipeline**.
75
+
76
+
77
+ > _Example **lambda function** code_
78
+
79
+ ```ts
80
+ import { WebClient } from '@slack/web-api';
81
+ import { getDbAdapter } from './db-adapter';
82
+ const dbAdapter = getDbAdapter({ URL: process.env.DB_URL });
83
+ const slackClient = new WebClient('MY-SLACK-TOKEN');
84
+
85
+ export default async (event, context) => {
86
+ const activeUsers = dbAdapter.getAllActiveUsers();
87
+ await slackClientchat.postMessage({
88
+ text: activeUsers.join('\n'),
89
+ channel: 'CHANNEL-ID',
90
+ });
91
+
92
+ return { message: 'Generated user report.' };
93
+ };
94
+ ```
95
+
96
+ ### 3. Deploy everything using one command
97
+
98
+ Stacktape handles the rest:
99
+
100
+
101
+ 1. **Configures infrastructure resources**
102
+ Figures out an optimal way to run your workloads. You don’t need to understand how networking, VPCs or ECS clusters or autoscaling groups work.
103
+
104
+ 2. **Packages and deployes your source code:**
105
+ Creates perfectly optimized Lambda packages or Docker containers. Everything is done as efficently as possible, leveraging advanced caching and parallel builds.
106
+
107
+ > _Console output of **stacktape deploy** command_
108
+
109
+ ```
110
+ > stacktape deploy --stage production
111
+ [INFO] Using config file at ./stacktape.yml
112
+ [SUCCESS] Packaging function generateWeeklyReport done in 0.15 sec. Size: 15kB. Zipped size: 4kB.
113
+ [SUCCESS] Uploading deployment artifacts done in 0.3 sec.
114
+ [INFO] Deploying stack to stage production…
115
+ [████████████--------------] 45%
116
+ ```
117
+
118
+ ## Comparison
119
+
120
+ ### Serverless
121
+
122
+ Serverless framework makes deploying (FaaS) functions to multiple cloud providers easy.
123
+
124
+ Stacktape is focused only on AWS, which allows us to do much more.
125
+
126
+
127
+ #### Stacktape's advantages
128
+
129
+ - **More power** - Stacktape unlocks full power of AWS. Enabling you to do more and cover more use-cases.
130
+ - **Plug-and-play** - Everything is built-in. No need to configure a plugin for everything.
131
+ - **Perfectly optimized** - Everything from packaging to deployment happens up to 50 times faster.
132
+ - **Streamlined development process** - No need for excessive configuration or figuring out how to solve common problems.
133
+
134
+
135
+ #### Stacktape's disadvantages
136
+
137
+ - **Not open-source** - Stacktape is not open-source. But we do have a generous free tier.
138
+ - **AWS only** - Stacktape currently supports only AWS.
139
+
140
+
141
+ ### Heroku
142
+
143
+ Heroku is an easy to use platform for hosting applications.
144
+
145
+ With Stacktape, you retain the simplicity of Heroku, while gaining more control, power & lower bills.
146
+
147
+
148
+ #### Stacktape's advantages
149
+
150
+ - **More power** - Stacktape unlocks full power of AWS. Enabling you to do more and cover more use-cases.
151
+ - **Lower bills** - AWS is significantly cheaper than Heroku. And Stacktape makes it even more cost-effective.
152
+ - **More control & scaling** - AWS gives you more control, extensibility & customizability.
153
+
154
+
155
+ #### Stacktape's disadvantages
156
+
157
+ - **Less supported languages** - Zero config code builds are currently supported for less languages. But you can use any language, if you supply your own Dockerfile.
158
+
159
+
160
+ ### Firebase
161
+
162
+ Firebase is an easy-to-use platform for mobile and web apps.
163
+
164
+ With firebase, you trade simplicity for control & power. With Stacktape, you don't.
165
+
166
+
167
+ #### Stacktape's advantages
168
+
169
+ - **Support for containers and long-running jobs** - Firebase supports only (FaaS) functions.
170
+ - **SQL** - Firebase supports only key-value datastore.
171
+ - **Lower bills** - AWS is significantly cheaper than Heroku. And Stacktape makes it even more cost-effective.
172
+
173
+
174
+ #### Stacktape's disadvantages
175
+
176
+ - **Less pre-made features for mobile apps** - While you can do anything you want using Stacktape and AWS, it's a bit more work for mobile app use-cases.
177
+
178
+
179
+ ### Kubernetes
180
+
181
+ Kubernetes is a bit over-used tool for orchestrating containers.
182
+
183
+ It comes with a great architectural, operational, configural and conceptual complexity.
184
+
185
+
186
+ #### Stacktape's advantages
187
+
188
+ - **Usable by common developers** - No need for infrastructure and DevOps experts.
189
+ - **Instant value** - You just deploy your app and it works. No need for months of configuration.
190
+ - **Easy testing and debugging** - Includes developer tooling that makes developers productive.
191
+
192
+
193
+ #### Stacktape's disadvantages
194
+
195
+ - **AWS only** - Stacktape currently supports only AWS.
196
+ - **Cloud only** - Not usable with on-premise infastructure.
197
+
198
+
199
+ ### AWS SAM
200
+
201
+ AWS Serverless Application Model is a framework for building FaaS-based application on AWS.
202
+
203
+ Stacktape is designed to enable much more than just FaaS-based applications, while being easier to use.
204
+
205
+
206
+ #### Stacktape's advantages
207
+
208
+ - **More power** - Stacktape unlocks full power of AWS. Enabling you to do more and cover more use-cases.
209
+ - **Zero-config code builds** - Stacktape builds your code and creates optimized deployment packages for you.
210
+ - **Perfectly optimized** - Parallel builds and advanced caching make your development process significantly faster.
211
+
212
+
213
+ #### Stacktape's disadvantages
214
+
215
+ - **Not open-source** - Stacktape is not open-source. But we do have a generous free tier.
216
+
217
+
218
+ ### CloudFormation
219
+
220
+ AWS Cloudformation provisions AWS resources defined as code. Stacktape is built on top of it.
221
+
222
+ Stacktape provides a higher level abstraction. 1 Stacktape resource can consist of more than 15 Cloudformation resources.
223
+
224
+
225
+ #### Stacktape's advantages
226
+
227
+ - **Usable by common developers** - No need for infrastructure and DevOps experts.
228
+ - **Zero-config code builds** - Stacktape builds your code and creates optimized deployment packages for you.
229
+ - **Easy testing and debugging** - Includes developer tooling that makes developers productive.
230
+
231
+
232
+ #### Stacktape's disadvantages
233
+
234
+ - **None** - Stacktape can be easily extended using native AWS Cloudformation resources.
235
+
236
+
237
+ ### Terraform
238
+
239
+ Terraform provisions resources across multiple cloud providers. It comes with it's own declarative langague.
240
+
241
+ Stacktape comes with a higher level of abstraction over cloud infrastructure and handles more tasks for the developer.
242
+
243
+
244
+ #### Stacktape's advantages
245
+
246
+ - **Usable by common developers** - No need for infrastructure and DevOps experts.
247
+ - **Zero-config code builds** - Stacktape builds your code and creates optimized deployment packages for you.
248
+ - **Easy testing and debugging** - Includes developer tooling that makes developers productive.
249
+ - **No state management** - Infrastructure state management is reliably handled for you by AWS cloudformation.
250
+
251
+
252
+ #### Stacktape's disadvantages
253
+
254
+ - **Not open-source** - Stacktape is not open-source. But we do have a generous free tier.
255
+ - **AWS only** - Stacktape currently supports only AWS.
256
+
257
+
258
+ ## FAQ
259
+
260
+ - **"I have an issue. Where can I get help?"**
261
+ You can get help on our community slack channel https://stacktape-community.slack.com. But we prefer if you submit an issue at https://github.com/stacktape/stacktape/issues
262
+
263
+ - **"Is Stacktape open-source?"**
264
+ No. But we do have a generous free tier. And you can participate on Stacktape's development by submitting issues and feature requests. We value your feedback.
265
+
266
+ - **"Why isn't Stacktape open-source?"**
267
+ Being able to monetize core features allows us to focus more on the product itself. We don't have to focus on premium addons or complementary services.
268
+
269
+ - **"Which languages are supported?"**
270
+ To write configuration, you can use anything, from javascript, typescript and python to JSON and YAML. Zero-config bundling (e.g. building source code, resolving dependencies, packaging lambda packages or Docker images) is supported for Javascript and Typescript, with Python and Java coming very soon. Furthermore, you can deploy containers written in any language, if you supply your own Dockerfile.
271
+
272
+ - **"Are you going to support more cloud providers?"**
273
+ Yes. We will start with MS Azure and continue with Google Cloud. You can expect first MS Azure support during second half of 2021.
274
+
275
+ - **"I have no previous cloud experience. Can I still use Stacktape?"**
276
+ Yes. Our mission is to simplify cloud computing as much as possible. If you have a basic back-end development understanding, you will be able to deploy production-ready cloud applications to AWS in no time.
277
+
278
+
279
+ ## Community and Socials
280
+
281
+ - [Email updates](https://stacktape.com/#subscribe)
282
+ - [Facebook](https://www.facebook.com/stacktape)
283
+ - [Twitter](https://twitter.com/stacktape)
284
+ - [Linked In](https://www.linkedin.com/company/stacktape/)
285
+ - [Instagram](https://www.instagram.com/stacktape_com/)
286
+ - [Slack](https://stacktape-community.slack.com)
287
+ - [Contact us](mailto:info@stacktape.com)
288
+
289
+
290
+ ## Other
291
+
292
+ - [Terms of Use](https://stacktape.com/terms-of-use/)
293
+ - [Privacy Policy](https://stacktape.com/privacy-policy/)
package/bin/run CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
+ const cliEntryPath = require('path').resolve(__dirname, '../cli.js');
2
3
 
3
- const cliEntryPath = require('path').resolve(__dirname, '../stacktape.js');
4
-
5
- require(cliEntryPath).run();
4
+ require(cliEntryPath)
5
+ .runUsingCli()
6
+ .catch(() => process.exit(1));
@@ -24,7 +24,6 @@ _compile = Compile()
24
24
 
25
25
 
26
26
  if platform.system() == 'Windows':
27
- # hacky reimplementation of https://github.com/nodejs/node/blob/master/deps/uv/src/win/pipe.c
28
27
  def read_data(f):
29
28
  header = f.read(16)
30
29
  if not header: