@kensio/yulin 1.6.1 → 1.7.0

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 (208) hide show
  1. package/README.md +72 -0
  2. package/dist/cli/sim-cli.d.ts +20 -0
  3. package/dist/cli/sim-cli.d.ts.map +1 -0
  4. package/dist/cli/sim-cli.js +42 -0
  5. package/dist/cli/sim-cli.js.map +1 -0
  6. package/dist/cli/watch/sim-watch-arguments.d.ts +30 -0
  7. package/dist/cli/watch/sim-watch-arguments.d.ts.map +1 -0
  8. package/dist/cli/watch/sim-watch-arguments.js +67 -0
  9. package/dist/cli/watch/sim-watch-arguments.js.map +1 -0
  10. package/dist/cli/watch/sim-watch-child-environment.d.ts +30 -0
  11. package/dist/cli/watch/sim-watch-child-environment.d.ts.map +1 -0
  12. package/dist/cli/watch/sim-watch-child-environment.js +51 -0
  13. package/dist/cli/watch/sim-watch-child-environment.js.map +1 -0
  14. package/dist/cli/watch/sim-watch-child-message.d.ts +19 -0
  15. package/dist/cli/watch/sim-watch-child-message.d.ts.map +1 -0
  16. package/dist/cli/watch/sim-watch-child-message.js +42 -0
  17. package/dist/cli/watch/sim-watch-child-message.js.map +1 -0
  18. package/dist/cli/watch/sim-watch-child-process.d.ts +22 -0
  19. package/dist/cli/watch/sim-watch-child-process.d.ts.map +1 -0
  20. package/dist/cli/watch/sim-watch-child-process.js +33 -0
  21. package/dist/cli/watch/sim-watch-child-process.js.map +1 -0
  22. package/dist/cli/watch/sim-watch-child-shutdown.d.ts +28 -0
  23. package/dist/cli/watch/sim-watch-child-shutdown.d.ts.map +1 -0
  24. package/dist/cli/watch/sim-watch-child-shutdown.js +59 -0
  25. package/dist/cli/watch/sim-watch-child-shutdown.js.map +1 -0
  26. package/dist/cli/watch/sim-watch-child.d.ts +42 -0
  27. package/dist/cli/watch/sim-watch-child.d.ts.map +1 -0
  28. package/dist/cli/watch/sim-watch-child.js +62 -0
  29. package/dist/cli/watch/sim-watch-child.js.map +1 -0
  30. package/dist/cli/watch/sim-watch-command.d.ts +22 -0
  31. package/dist/cli/watch/sim-watch-command.d.ts.map +1 -0
  32. package/dist/cli/watch/sim-watch-command.js +41 -0
  33. package/dist/cli/watch/sim-watch-command.js.map +1 -0
  34. package/dist/cli/watch/sim-watch-event-path.d.ts +27 -0
  35. package/dist/cli/watch/sim-watch-event-path.d.ts.map +1 -0
  36. package/dist/cli/watch/sim-watch-event-path.js +48 -0
  37. package/dist/cli/watch/sim-watch-event-path.js.map +1 -0
  38. package/dist/cli/watch/sim-watch-ignore.d.ts +15 -0
  39. package/dist/cli/watch/sim-watch-ignore.d.ts.map +1 -0
  40. package/dist/cli/watch/sim-watch-ignore.js +64 -0
  41. package/dist/cli/watch/sim-watch-ignore.js.map +1 -0
  42. package/dist/cli/watch/sim-watch-loop-guard.d.ts +35 -0
  43. package/dist/cli/watch/sim-watch-loop-guard.d.ts.map +1 -0
  44. package/dist/cli/watch/sim-watch-loop-guard.js +51 -0
  45. package/dist/cli/watch/sim-watch-loop-guard.js.map +1 -0
  46. package/dist/cli/watch/sim-watch-reporter.d.ts +38 -0
  47. package/dist/cli/watch/sim-watch-reporter.d.ts.map +1 -0
  48. package/dist/cli/watch/sim-watch-reporter.js +65 -0
  49. package/dist/cli/watch/sim-watch-reporter.js.map +1 -0
  50. package/dist/cli/watch/sim-watch-restarts.d.ts +30 -0
  51. package/dist/cli/watch/sim-watch-restarts.d.ts.map +1 -0
  52. package/dist/cli/watch/sim-watch-restarts.js +62 -0
  53. package/dist/cli/watch/sim-watch-restarts.js.map +1 -0
  54. package/dist/cli/watch/sim-watch-supervisor.d.ts +52 -0
  55. package/dist/cli/watch/sim-watch-supervisor.d.ts.map +1 -0
  56. package/dist/cli/watch/sim-watch-supervisor.js +127 -0
  57. package/dist/cli/watch/sim-watch-supervisor.js.map +1 -0
  58. package/dist/cli/watch/sim-watch-watcher.d.ts +69 -0
  59. package/dist/cli/watch/sim-watch-watcher.d.ts.map +1 -0
  60. package/dist/cli/watch/sim-watch-watcher.js +144 -0
  61. package/dist/cli/watch/sim-watch-watcher.js.map +1 -0
  62. package/dist/cli/yulin.d.ts +3 -0
  63. package/dist/cli/yulin.d.ts.map +1 -0
  64. package/dist/cli/yulin.js +14 -0
  65. package/dist/cli/yulin.js.map +1 -0
  66. package/dist/serve/http/live-reload/sim-live-reload-client.d.ts +32 -0
  67. package/dist/serve/http/live-reload/sim-live-reload-client.d.ts.map +1 -0
  68. package/dist/serve/http/live-reload/sim-live-reload-client.js +55 -0
  69. package/dist/serve/http/live-reload/sim-live-reload-client.js.map +1 -0
  70. package/dist/serve/http/live-reload/sim-live-reload-injectable.d.ts +47 -0
  71. package/dist/serve/http/live-reload/sim-live-reload-injectable.d.ts.map +1 -0
  72. package/dist/serve/http/live-reload/sim-live-reload-injectable.js +86 -0
  73. package/dist/serve/http/live-reload/sim-live-reload-injectable.js.map +1 -0
  74. package/dist/serve/http/live-reload/sim-live-reload-injector.d.ts +22 -0
  75. package/dist/serve/http/live-reload/sim-live-reload-injector.d.ts.map +1 -0
  76. package/dist/serve/http/live-reload/sim-live-reload-injector.js +72 -0
  77. package/dist/serve/http/live-reload/sim-live-reload-injector.js.map +1 -0
  78. package/dist/serve/http/live-reload/sim-live-reload-report.d.ts +18 -0
  79. package/dist/serve/http/live-reload/sim-live-reload-report.d.ts.map +1 -0
  80. package/dist/serve/http/live-reload/sim-live-reload-report.js +27 -0
  81. package/dist/serve/http/live-reload/sim-live-reload-report.js.map +1 -0
  82. package/dist/serve/http/live-reload/sim-live-reload-script.d.ts +20 -0
  83. package/dist/serve/http/live-reload/sim-live-reload-script.d.ts.map +1 -0
  84. package/dist/serve/http/live-reload/sim-live-reload-script.js +45 -0
  85. package/dist/serve/http/live-reload/sim-live-reload-script.js.map +1 -0
  86. package/dist/serve/http/live-reload/sim-live-reload.config.d.ts +12 -0
  87. package/dist/serve/http/live-reload/sim-live-reload.config.d.ts.map +1 -0
  88. package/dist/serve/http/live-reload/sim-live-reload.config.js +19 -0
  89. package/dist/serve/http/live-reload/sim-live-reload.config.js.map +1 -0
  90. package/dist/serve/http/live-reload/sim-live-reload.d.ts +52 -0
  91. package/dist/serve/http/live-reload/sim-live-reload.d.ts.map +1 -0
  92. package/dist/serve/http/live-reload/sim-live-reload.js +82 -0
  93. package/dist/serve/http/live-reload/sim-live-reload.js.map +1 -0
  94. package/dist/serve/http/live-reload/sim-local-live-reload.d.ts +42 -0
  95. package/dist/serve/http/live-reload/sim-local-live-reload.d.ts.map +1 -0
  96. package/dist/serve/http/live-reload/sim-local-live-reload.js +60 -0
  97. package/dist/serve/http/live-reload/sim-local-live-reload.js.map +1 -0
  98. package/dist/serve/http/local-server/node-server-port-binder.d.ts +39 -0
  99. package/dist/serve/http/local-server/node-server-port-binder.d.ts.map +1 -0
  100. package/dist/serve/http/local-server/node-server-port-binder.js +71 -0
  101. package/dist/serve/http/local-server/node-server-port-binder.js.map +1 -0
  102. package/dist/serve/http/local-server/node-server-port.d.ts +10 -0
  103. package/dist/serve/http/local-server/node-server-port.d.ts.map +1 -0
  104. package/dist/serve/http/local-server/node-server-port.js +19 -0
  105. package/dist/serve/http/local-server/node-server-port.js.map +1 -0
  106. package/dist/serve/http/local-server/sim-aws-local-port.error.d.ts +13 -0
  107. package/dist/serve/http/local-server/sim-aws-local-port.error.d.ts.map +1 -0
  108. package/dist/serve/http/local-server/sim-aws-local-port.error.js +16 -0
  109. package/dist/serve/http/local-server/sim-aws-local-port.error.js.map +1 -0
  110. package/dist/serve/http/local-server/sim-aws-local-request-handler.d.ts +14 -1
  111. package/dist/serve/http/local-server/sim-aws-local-request-handler.d.ts.map +1 -1
  112. package/dist/serve/http/local-server/sim-aws-local-request-handler.js +20 -2
  113. package/dist/serve/http/local-server/sim-aws-local-request-handler.js.map +1 -1
  114. package/dist/serve/http/local-server/sim-aws-local-server.d.ts +23 -0
  115. package/dist/serve/http/local-server/sim-aws-local-server.d.ts.map +1 -1
  116. package/dist/serve/http/local-server/sim-aws-local-server.js +41 -16
  117. package/dist/serve/http/local-server/sim-aws-local-server.js.map +1 -1
  118. package/dist/serve/http/local-server/sim-aws-local.config.d.ts +2 -0
  119. package/dist/serve/http/local-server/sim-aws-local.config.d.ts.map +1 -1
  120. package/dist/serve/http/local-server/sim-aws-local.config.js +6 -0
  121. package/dist/serve/http/local-server/sim-aws-local.config.js.map +1 -1
  122. package/dist/serve/index.d.ts +3 -0
  123. package/dist/serve/index.d.ts.map +1 -1
  124. package/dist/serve/index.js +3 -0
  125. package/dist/serve/index.js.map +1 -1
  126. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +44 -0
  127. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts.map +1 -0
  128. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +53 -0
  129. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js.map +1 -0
  130. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +7 -0
  131. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts.map +1 -1
  132. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +3 -1
  133. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js.map +1 -1
  134. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +19 -0
  135. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts.map +1 -1
  136. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +40 -1
  137. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js.map +1 -1
  138. package/dist/service/cloudformation/deploy/sim-cfn-template-file-deployment.d.ts +10 -0
  139. package/dist/service/cloudformation/deploy/sim-cfn-template-file-deployment.d.ts.map +1 -0
  140. package/dist/service/cloudformation/deploy/sim-cfn-template-file-deployment.js +14 -0
  141. package/dist/service/cloudformation/deploy/sim-cfn-template-file-deployment.js.map +1 -0
  142. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +11 -0
  143. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts.map +1 -1
  144. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +5 -0
  145. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js.map +1 -1
  146. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.d.ts +49 -0
  147. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.d.ts.map +1 -0
  148. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +59 -0
  149. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js.map +1 -0
  150. package/dist/service/cloudformation/index.d.ts +1 -0
  151. package/dist/service/cloudformation/index.d.ts.map +1 -1
  152. package/dist/service/cloudformation/sim-cloudformation.d.ts +30 -5
  153. package/dist/service/cloudformation/sim-cloudformation.d.ts.map +1 -1
  154. package/dist/service/cloudformation/sim-cloudformation.js +45 -14
  155. package/dist/service/cloudformation/sim-cloudformation.js.map +1 -1
  156. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +10 -1
  157. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts.map +1 -1
  158. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +12 -1
  159. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js.map +1 -1
  160. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +14 -1
  161. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
  162. package/dist/service/cloudformation/stack/sim-cfn-stack.js +10 -1
  163. package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
  164. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.d.ts +8 -0
  165. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.d.ts.map +1 -1
  166. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +9 -1
  167. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js.map +1 -1
  168. package/dist/service/cloudformation/watch/sim-cfn-template-file-events.d.ts +30 -0
  169. package/dist/service/cloudformation/watch/sim-cfn-template-file-events.d.ts.map +1 -0
  170. package/dist/service/cloudformation/watch/sim-cfn-template-file-events.js +51 -0
  171. package/dist/service/cloudformation/watch/sim-cfn-template-file-events.js.map +1 -0
  172. package/dist/service/cloudformation/watch/sim-cfn-template-file-watch.d.ts +39 -0
  173. package/dist/service/cloudformation/watch/sim-cfn-template-file-watch.d.ts.map +1 -0
  174. package/dist/service/cloudformation/watch/sim-cfn-template-file-watch.js +73 -0
  175. package/dist/service/cloudformation/watch/sim-cfn-template-file-watch.js.map +1 -0
  176. package/dist/service/cloudformation/watch/sim-cfn-template-file-watches.d.ts +46 -0
  177. package/dist/service/cloudformation/watch/sim-cfn-template-file-watches.d.ts.map +1 -0
  178. package/dist/service/cloudformation/watch/sim-cfn-template-file-watches.js +0 -0
  179. package/dist/service/cloudformation/watch/sim-cfn-template-file-watches.js.map +1 -0
  180. package/dist/service/cloudformation/watch/sim-cfn-template-watch-report.d.ts +25 -0
  181. package/dist/service/cloudformation/watch/sim-cfn-template-watch-report.d.ts.map +1 -0
  182. package/dist/service/cloudformation/watch/sim-cfn-template-watch-report.js +35 -0
  183. package/dist/service/cloudformation/watch/sim-cfn-template-watch-report.js.map +1 -0
  184. package/dist/service/cloudformation/watch/sim-cfn-template-watch-update.d.ts +44 -0
  185. package/dist/service/cloudformation/watch/sim-cfn-template-watch-update.d.ts.map +1 -0
  186. package/dist/service/cloudformation/watch/sim-cfn-template-watch-update.js +75 -0
  187. package/dist/service/cloudformation/watch/sim-cfn-template-watch-update.js.map +1 -0
  188. package/dist/service/cloudformation/watch/sim-cfn-template-watch.type.d.ts +30 -0
  189. package/dist/service/cloudformation/watch/sim-cfn-template-watch.type.d.ts.map +1 -0
  190. package/dist/service/cloudformation/watch/sim-cfn-template-watch.type.js +2 -0
  191. package/dist/service/cloudformation/watch/sim-cfn-template-watch.type.js.map +1 -0
  192. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +4 -0
  193. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts.map +1 -1
  194. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -0
  195. package/dist/service/s3/bucket/sim-s3-bucket-access.js.map +1 -1
  196. package/dist/watch/sim-watch-runtime.d.ts +76 -0
  197. package/dist/watch/sim-watch-runtime.d.ts.map +1 -0
  198. package/dist/watch/sim-watch-runtime.js +124 -0
  199. package/dist/watch/sim-watch-runtime.js.map +1 -0
  200. package/dist/watch/sim-watch-settle.d.ts +32 -0
  201. package/dist/watch/sim-watch-settle.d.ts.map +1 -0
  202. package/dist/watch/sim-watch-settle.js +43 -0
  203. package/dist/watch/sim-watch-settle.js.map +1 -0
  204. package/dist/watch/sim-watch.config.d.ts +22 -0
  205. package/dist/watch/sim-watch.config.d.ts.map +1 -0
  206. package/dist/watch/sim-watch.config.js +39 -0
  207. package/dist/watch/sim-watch.config.js.map +1 -0
  208. package/package.json +4 -1
@@ -6,7 +6,7 @@ import { UpdateStackCommandHandler } from "./command/update-stack/update-stack.h
6
6
  import { SimCloudFormationTemplateDeployer, } from "./deploy/sim-cfn-template-deployer.js";
7
7
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
8
8
  import { SimCloudFormationSdkCommandRouter } from "./sdk/sim-cloudformation-sdk-command-router.js";
9
- import { SimIamActionAuthorizer } from "../iam/authorize/sim-iam-action-authorizer.js";
9
+ import { SimCloudFormationAuthorization } from "./authorize/sim-cloudformation-authorization.js";
10
10
  import { SimIamAllowAllAuth, } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
11
11
  /**
12
12
  * Simulated CloudFormation in one AWS Account and Region.
@@ -18,13 +18,16 @@ export class SimCloudFormation {
18
18
  stacks = new Map();
19
19
  templateDeployer;
20
20
  sdkRouter = new SimCloudFormationSdkCommandRouter(this);
21
- authorizer;
21
+ authorization;
22
22
  constructor(properties) {
23
23
  const { simAws, accountRegionScope = simAwsAccountRegionScopeFactory.make(), iam = new SimIamAllowAllAuth(), background, } = properties;
24
24
  this.simAws = simAws;
25
25
  this.background = background;
26
26
  this.accountRegionScope = accountRegionScope;
27
- this.authorizer = new SimIamActionAuthorizer({ iam });
27
+ this.authorization = new SimCloudFormationAuthorization({
28
+ iam,
29
+ accountRegionScope: this.accountRegionScope,
30
+ });
28
31
  this.templateDeployer = new SimCloudFormationTemplateDeployer({
29
32
  simAws: this.simAws,
30
33
  accountRegionScope: this.accountRegionScope,
@@ -42,14 +45,14 @@ export class SimCloudFormation {
42
45
  * Handle a Create Stack Command from the SDK.
43
46
  */
44
47
  async createStack(command, options) {
45
- this.authorizer.authorize("cloudformation:CreateStack", this.stackArn(command.input.StackName), options?.caller);
48
+ this.authorization.createStack(command.input.StackName, options?.caller);
46
49
  return await this.createStackWithContext(command);
47
50
  }
48
51
  /**
49
52
  * Handle a Describe Stacks Command from the SDK.
50
53
  */
51
54
  async describeStacks(command, options) {
52
- this.authorizer.authorize("cloudformation:DescribeStacks", this.stackArn(command.input.StackName), options?.caller);
55
+ this.authorization.describeStacks(command.input.StackName, options?.caller);
53
56
  const handler = new DescribeStacksCommandHandler({
54
57
  stacks: this.stacks,
55
58
  background: this.background,
@@ -60,7 +63,7 @@ export class SimCloudFormation {
60
63
  * Handle an Update Stack Command from the SDK.
61
64
  */
62
65
  async updateStack(command, options) {
63
- this.authorizer.authorize("cloudformation:UpdateStack", this.stackArn(command.input.StackName), options?.caller);
66
+ this.authorization.updateStack(command.input.StackName, options?.caller);
64
67
  const handler = new UpdateStackCommandHandler({
65
68
  accountRegionScope: this.accountRegionScope,
66
69
  stacks: this.stacks,
@@ -72,7 +75,7 @@ export class SimCloudFormation {
72
75
  * Handle a Delete Stack Command from the SDK.
73
76
  */
74
77
  async deleteStack(command, options) {
75
- this.authorizer.authorize("cloudformation:DeleteStack", this.stackArn(command.input.StackName), options?.caller);
78
+ this.authorization.deleteStack(command.input.StackName, options?.caller);
76
79
  const handler = new DeleteStackCommandHandler({
77
80
  stacks: this.stacks,
78
81
  background: this.background,
@@ -119,17 +122,45 @@ export class SimCloudFormation {
119
122
  return await this.templateDeployer.deployTemplateFile(properties);
120
123
  }
121
124
  /**
122
- * Get this service's SDK Command router for SDK client interception.
125
+ * Convenience wrapper method to apply a synthesized CDK template file to the
126
+ * simulated CloudFormation Stack it was deployed as.
127
+ *
128
+ * The file is read again, so a template synthesized a second time is applied
129
+ * as the change it is: Resources it adds are created, ones it drops are
130
+ * deleted, and everything else keeps what it holds. Give it what the
131
+ * deployment was given, since parameters are part of what an update applies.
132
+ *
133
+ * Returns once the update has finished, and throws what stopped it if it
134
+ * failed, including the `No updates are to be performed.` a file that was
135
+ * written without being changed is refused with.
123
136
  */
124
- sdkCommandRouter() {
125
- return this.sdkRouter;
137
+ async updateTemplateFile(properties) {
138
+ return await this.templateDeployer.updateTemplateFile(properties);
139
+ }
140
+ /**
141
+ * The template files being watched for changes.
142
+ *
143
+ * A file deployed with `watch` is read again whenever it changes, and the
144
+ * Stack it deployed is updated in place from it.
145
+ */
146
+ watchedTemplateFiles() {
147
+ return this.templateDeployer.watchedTemplateFiles();
126
148
  }
127
149
  /**
128
- * The Stack ARN a command operates on, for authorization.
150
+ * Stop watching template files.
151
+ *
152
+ * A watch holds an open filesystem handle, so a process with one open does
153
+ * not exit on its own. A dev process wants exactly that and never calls this;
154
+ * anything with an end, such as a test, calls it when it is done.
129
155
  */
130
- stackArn(stackName) {
131
- const { accountId, regionName } = this.accountRegionScope;
132
- return `arn:aws:cloudformation:${regionName}:${accountId}:stack/${stackName ?? "*"}/*`;
156
+ stopWatchingTemplateFiles() {
157
+ this.templateDeployer.stopWatchingTemplateFiles();
158
+ }
159
+ /**
160
+ * Get this service's SDK Command router for SDK client interception.
161
+ */
162
+ sdkCommandRouter() {
163
+ return this.sdkRouter;
133
164
  }
134
165
  async createStackWithContext(command, cdkOutContext, bindings) {
135
166
  const handler = new CreateStackCommandHandler({
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudformation.js","sourceRoot":"","sources":["../../../src/service/cloudformation/sim-cloudformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cloudformation.js","sourceRoot":"","sources":["../../../src/service/cloudformation/sim-cloudformation.ts"],"names":[],"mappings":"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"}
@@ -37,9 +37,18 @@ export declare class SimCfnStackResourceOperations {
37
37
  private readonly simAws;
38
38
  private readonly accountRegionScope;
39
39
  private readonly stackName;
40
- private readonly cdkOutContext;
41
40
  private readonly bindings;
41
+ private cdkOutContext;
42
42
  constructor(properties: SimCfnStackResourceOperationsProperties);
43
+ /**
44
+ * Read Resources from a different CDK cloud assembly from now on.
45
+ *
46
+ * A synthesis writes the template and the assets manifest beside it together,
47
+ * so a Stack updated from a re-synthesized template needs the manifest that
48
+ * came with it. Keeping the one the Stack was deployed from would look up the
49
+ * asset a replaced Resource names in a manifest written before it existed.
50
+ */
51
+ useCdkOutContext(cdkOutContext: SimCdkOutContext): void;
43
52
  /**
44
53
  * Create every Resource in the given Stack Resource map.
45
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-stack-resource-operations.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack-resource-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE,UAAU,2BAA2B;IACnC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,+BAA+B,EAAE,GAAG,SAAS,CAAC;CAC5E;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CACgC;IAEzD,YAAY,UAAU,EAAE,uCAAuC,EAS9D;IAED;;OAEG;IACG,SAAS,CACb,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAGf;IAED;;OAEG;IACG,MAAM,CACV,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9C,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAGf;IAED;;OAEG;IACG,SAAS,CACb,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAEf;IAED;;;OAGG;IACG,MAAM,CACV,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9C,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAEf;IAED;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,2BAA2B,GAAG,kBAAkB,CAWnE;YAEa,aAAa;IAS3B,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,OAAO;CAShB"}
1
+ {"version":3,"file":"sim-cfn-stack-resource-operations.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack-resource-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE,UAAU,2BAA2B;IACnC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,+BAA+B,EAAE,GAAG,SAAS,CAAC;CAC5E;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CACgC;IACzD,OAAO,CAAC,aAAa,CAA+B;IAEpD,YAAY,UAAU,EAAE,uCAAuC,EAS9D;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAEtD;IAED;;OAEG;IACG,SAAS,CACb,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAGf;IAED;;OAEG;IACG,MAAM,CACV,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9C,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAGf;IAED;;OAEG;IACG,SAAS,CACb,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAEf;IAED;;;OAGG;IACG,MAAM,CACV,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9C,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAEf;IAED;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,2BAA2B,GAAG,kBAAkB,CAWnE;YAEa,aAAa;IAS3B,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,OAAO;CAShB"}
@@ -19,8 +19,8 @@ export class SimCfnStackResourceOperations {
19
19
  simAws;
20
20
  accountRegionScope;
21
21
  stackName;
22
- cdkOutContext;
23
22
  bindings;
23
+ cdkOutContext;
24
24
  constructor(properties) {
25
25
  const { simAws, accountRegionScope, stackName, cdkOutContext, bindings } = properties;
26
26
  this.simAws = simAws;
@@ -29,6 +29,17 @@ export class SimCfnStackResourceOperations {
29
29
  this.cdkOutContext = cdkOutContext;
30
30
  this.bindings = bindings;
31
31
  }
32
+ /**
33
+ * Read Resources from a different CDK cloud assembly from now on.
34
+ *
35
+ * A synthesis writes the template and the assets manifest beside it together,
36
+ * so a Stack updated from a re-synthesized template needs the manifest that
37
+ * came with it. Keeping the one the Stack was deployed from would look up the
38
+ * asset a replaced Resource names in a manifest written before it existed.
39
+ */
40
+ useCdkOutContext(cdkOutContext) {
41
+ this.cdkOutContext = cdkOutContext;
42
+ }
32
43
  /**
33
44
  * Create every Resource in the given Stack Resource map.
34
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-stack-resource-operations.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack-resource-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cfn-stack-resource-operations.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack-resource-operations.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,15 @@ import type { SimCfnExecutableResourceBinding } from "../bind/sim-cfn-exec-bindi
13
13
  import type { SimCfnStackOutput } from "./output/sim-cfn-stack-output.js";
14
14
  export type SimCloudFormationStackName = Brand<string, "SimCloudFormationStackName">;
15
15
  export type SimCloudFormationStackStatus = "REVIEW_IN_PROGRESS" | "CREATE_IN_PROGRESS" | "CREATE_COMPLETE" | "CREATE_FAILED" | "UPDATE_IN_PROGRESS" | "UPDATE_COMPLETE" | "UPDATE_FAILED" | "DELETE_IN_PROGRESS" | "DELETE_COMPLETE" | "DELETE_FAILED";
16
+ export interface SimCfnStackUpdateProperties {
17
+ /**
18
+ * The CDK cloud assembly the new template was synthesized into, when it came
19
+ * from a template file that has been synthesized again. The Stack reads
20
+ * assets from it from then on, since the manifest it was deployed with
21
+ * describes the assembly the previous template came from.
22
+ */
23
+ readonly cdkOutContext?: SimCdkOutContext | undefined;
24
+ }
16
25
  interface SimCloudFormationStackProperties {
17
26
  readonly simAws: SimAws;
18
27
  readonly accountRegionScope: SimAwsAccountRegionScope;
@@ -74,8 +83,12 @@ export declare class SimCfnStack {
74
83
  * Stack's template moves on. The Resource work is scheduled in the
75
84
  * background, as a deployment is, so callers that need the final state should
76
85
  * use waitForUpdateComplete().
86
+ *
87
+ * A template that came from a synthesis of its own brings the cloud assembly
88
+ * it was written into with it, so Resources it replaces read the assets that
89
+ * synthesis staged rather than the ones the Stack was deployed with.
77
90
  */
78
- update(template: SimCfnTemplate): Promise<void>;
91
+ update(template: SimCfnTemplate, properties?: SimCfnStackUpdateProperties): Promise<void>;
79
92
  /**
80
93
  * Wait for the scheduled Stack update to finish.
81
94
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-stack.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cfn-stack.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack.ts"],"names":[],"mappings":"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"}
@@ -109,8 +109,12 @@ export class SimCfnStack {
109
109
  * Stack's template moves on. The Resource work is scheduled in the
110
110
  * background, as a deployment is, so callers that need the final state should
111
111
  * use waitForUpdateComplete().
112
+ *
113
+ * A template that came from a synthesis of its own brings the cloud assembly
114
+ * it was written into with it, so Resources it replaces read the assets that
115
+ * synthesis staged rather than the ones the Stack was deployed with.
112
116
  */
113
- async update(template) {
117
+ async update(template, properties = {}) {
114
118
  this.updating.assertNotUpdating();
115
119
  const updater = this.operations.updater({
116
120
  background: this.background,
@@ -119,6 +123,11 @@ export class SimCfnStack {
119
123
  updated: template,
120
124
  });
121
125
  updater.assertHasChanges();
126
+ // Only once the update is going ahead, so a refused update leaves the Stack
127
+ // reading the cloud assembly it was deployed from.
128
+ if (properties.cdkOutContext !== undefined) {
129
+ this.operations.useCdkOutContext(properties.cdkOutContext);
130
+ }
122
131
  this.cfnTemplate = template;
123
132
  this.template = template.template;
124
133
  await this.updating.update(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-stack.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cfn-stack.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/stack/sim-cfn-stack.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,14 @@ import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-regi
3
3
  import type { SimCfnResource } from "../../resource/sim-cfn-resource.js";
4
4
  import type { SimCfnTemplate } from "../../template/sim-cfn-template.js";
5
5
  import type { SimCfnStackResourceOperations } from "../sim-cfn-stack-resource-operations.js";
6
+ /**
7
+ * What CloudFormation answers an update that would change nothing.
8
+ *
9
+ * Named because a template file being watched is written far more often than it
10
+ * is changed, so telling this apart from a real failure is what makes a save
11
+ * with nothing in it a no-op rather than something to report.
12
+ */
13
+ export declare const simCfnNoUpdatesMessage = "No updates are to be performed.";
6
14
  interface SimCfnStackUpdaterProperties {
7
15
  readonly accountRegionScope: SimAwsAccountRegionScope;
8
16
  readonly background: BackgroundScheduler;
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-stack-updater.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/stack/update/sim-cfn-stack-updater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAK7F,UAAU,4BAA4B;IACpC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAE7C,YAAY,UAAU,EAAE,4BAA4B,EAYnD;IAED;;;;;;OAMG;IACH,gBAAgB,IAAI,IAAI,CAWvB;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAS3B;CACF"}
1
+ {"version":3,"file":"sim-cfn-stack-updater.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/stack/update/sim-cfn-stack-updater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAK7F;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,oCAAoC,CAAC;AAExE,UAAU,4BAA4B;IACpC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAE7C,YAAY,UAAU,EAAE,4BAA4B,EAYnD;IAED;;;;;;OAMG;IACH,gBAAgB,IAAI,IAAI,CASvB;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAS3B;CACF"}
@@ -2,6 +2,14 @@ import { SimCloudFormationValidationError } from "../../error/sim-cloudformation
2
2
  import { makeSimCfnStackResourceMap } from "../resource-map/sim-cfn-stack-resource-map.js";
3
3
  import { SimCfnStackUpdatePlan } from "./sim-cfn-stack-update-plan.js";
4
4
  import { simCfnStackTemplateChanged } from "./sim-cfn-stack-template-changes.js";
5
+ /**
6
+ * What CloudFormation answers an update that would change nothing.
7
+ *
8
+ * Named because a template file being watched is written far more often than it
9
+ * is changed, so telling this apart from a real failure is what makes a save
10
+ * with nothing in it a no-op rather than something to report.
11
+ */
12
+ export const simCfnNoUpdatesMessage = "No updates are to be performed.";
5
13
  /**
6
14
  * Applies a changed template to a Stack that is already deployed.
7
15
  *
@@ -40,7 +48,7 @@ export class SimCfnStackUpdater {
40
48
  const { current, updated } = this.properties;
41
49
  if (!this.plan.changesResources &&
42
50
  !simCfnStackTemplateChanged(current, updated)) {
43
- throw new SimCloudFormationValidationError("No updates are to be performed.");
51
+ throw new SimCloudFormationValidationError(simCfnNoUpdatesMessage);
44
52
  }
45
53
  }
46
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-stack-updater.js","sourceRoot":"","sources":["../../../../../src/service/cloudformation/stack/update/sim-cfn-stack-updater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAE3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAWjF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IACZ,UAAU,CAA+B;IACzC,IAAI,CAAwB;IAE7C,YAAY,UAAwC;QAClD,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE1E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,qBAAqB,CAAC;YACpC,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,0BAA0B,CAAC;gBAClC,kBAAkB;gBAClB,UAAU;gBACV,QAAQ,EAAE,OAAO;aAClB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB;QACd,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAE7C,IACE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC3B,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,CAAC;YACD,MAAM,IAAI,gCAAgC,CACxC,iCAAiC,CAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExB,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cfn-stack-updater.js","sourceRoot":"","sources":["../../../../../src/service/cloudformation/stack/update/sim-cfn-stack-updater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAE3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,iCAAiC,CAAC;AAWxE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IACZ,UAAU,CAA+B;IACzC,IAAI,CAAwB;IAE7C,YAAY,UAAwC;QAClD,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE1E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,qBAAqB,CAAC;YACpC,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,0BAA0B,CAAC;gBAClC,kBAAkB;gBAClB,UAAU;gBACV,QAAQ,EAAE,OAAO;aAClB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB;QACd,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAE7C,IACE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC3B,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,CAAC;YACD,MAAM,IAAI,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExB,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ interface SimCfnTemplateFileEventsProperties {
2
+ readonly templatePath: string;
3
+ readonly onEvent: () => void;
4
+ }
5
+ /**
6
+ * Filesystem events for one template file.
7
+ *
8
+ * The directory is what gets watched, not the file. A synthesis writes a
9
+ * temporary file and renames it over the template, so a watch on the file
10
+ * itself is left holding the file that was replaced. Events for anything else
11
+ * in the directory, which for a cloud assembly is every other stack in it and
12
+ * every staged asset, are dropped by name.
13
+ */
14
+ export declare class SimCfnTemplateFileEvents {
15
+ private readonly directoryPath;
16
+ private readonly fileName;
17
+ private readonly onEvent;
18
+ private watcher;
19
+ constructor(properties: SimCfnTemplateFileEventsProperties);
20
+ /**
21
+ * Start listening for writes to the template file.
22
+ */
23
+ start(): void;
24
+ /**
25
+ * Stop listening.
26
+ */
27
+ close(): void;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=sim-cfn-template-file-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-template-file-events.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/watch/sim-cfn-template-file-events.ts"],"names":[],"mappings":"AAGA,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,OAAO,CAAwB;IAEvC,YAAY,UAAU,EAAE,kCAAkC,EAIzD;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAmBZ;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;CACF"}
@@ -0,0 +1,51 @@
1
+ import fs, {} from "node:fs";
2
+ import path from "node:path";
3
+ /**
4
+ * Filesystem events for one template file.
5
+ *
6
+ * The directory is what gets watched, not the file. A synthesis writes a
7
+ * temporary file and renames it over the template, so a watch on the file
8
+ * itself is left holding the file that was replaced. Events for anything else
9
+ * in the directory, which for a cloud assembly is every other stack in it and
10
+ * every staged asset, are dropped by name.
11
+ */
12
+ export class SimCfnTemplateFileEvents {
13
+ directoryPath;
14
+ fileName;
15
+ onEvent;
16
+ watcher;
17
+ constructor(properties) {
18
+ this.directoryPath = path.dirname(properties.templatePath);
19
+ this.fileName = path.basename(properties.templatePath);
20
+ this.onEvent = properties.onEvent;
21
+ }
22
+ /**
23
+ * Start listening for writes to the template file.
24
+ */
25
+ start() {
26
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
27
+ const watcher = fs.watch(this.directoryPath, (_event, fileName) => {
28
+ if (fileName === this.fileName) {
29
+ this.onEvent();
30
+ }
31
+ });
32
+ // The directory can be deleted or replaced, and a watcher with no error
33
+ // listener throws. Nothing here can put it back.
34
+ /* v8 ignore next 4 -- raised where the platform reports a watch going away,
35
+ * which macOS does not do for a deleted directory, so nothing here can make
36
+ * it happen on the machine this suite runs on. */
37
+ watcher.on("error", () => {
38
+ watcher.close();
39
+ this.watcher = undefined;
40
+ });
41
+ this.watcher = watcher;
42
+ }
43
+ /**
44
+ * Stop listening.
45
+ */
46
+ close() {
47
+ this.watcher?.close();
48
+ this.watcher = undefined;
49
+ }
50
+ }
51
+ //# sourceMappingURL=sim-cfn-template-file-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-template-file-events.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/watch/sim-cfn-template-file-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAkB,MAAM,SAAS,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAClB,aAAa,CAAS;IACtB,QAAQ,CAAS;IACjB,OAAO,CAAa;IAC7B,OAAO,CAAwB;IAEvC,YAAY,UAA8C;QACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,mEAAmE;QACnE,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAChE,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,iDAAiD;QACjD;;0DAEkD;QAClD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ import { type SimWatchRuntime } from "../../../watch/sim-watch-runtime.js";
2
+ interface SimCfnTemplateFileWatchProperties {
3
+ readonly templatePath: string;
4
+ readonly onChanged: () => Promise<void>;
5
+ readonly settleMs?: number | undefined;
6
+ readonly watch?: SimWatchRuntime | undefined;
7
+ }
8
+ /**
9
+ * Watches one deployed template file, and applies it again when it changes.
10
+ *
11
+ * Changes are applied one at a time. A save arriving while an update is still
12
+ * running waits for it, rather than being refused as a second update of a Stack
13
+ * that is already updating.
14
+ */
15
+ export declare class SimCfnTemplateFileWatch {
16
+ private readonly templatePath;
17
+ private readonly onChanged;
18
+ private readonly settle;
19
+ private readonly events;
20
+ private readonly watch;
21
+ private applying;
22
+ constructor(properties: SimCfnTemplateFileWatchProperties);
23
+ /**
24
+ * Start watching.
25
+ *
26
+ * A `yulin watch` supervisor is told the path is handled here, so a
27
+ * re-synthesis updates the Stack in place instead of restarting the process
28
+ * and taking every simulated Bucket and Table with it.
29
+ */
30
+ start(): void;
31
+ /**
32
+ * Stop watching, and drop a change that was still settling.
33
+ */
34
+ close(): void;
35
+ private apply;
36
+ private applyAfter;
37
+ }
38
+ export {};
39
+ //# sourceMappingURL=sim-cfn-template-file-watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-template-file-watch.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudformation/watch/sim-cfn-template-file-watch.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAI7C,UAAU,iCAAiC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAoC;IAEpD,YAAY,UAAU,EAAE,iCAAiC,EAuBxD;IAED;;;;;;OAMG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;IAGD,OAAO,CAAC,KAAK;YAIC,UAAU;CAYzB"}
@@ -0,0 +1,73 @@
1
+ import path from "node:path";
2
+ import { SimWatchSettle } from "../../../watch/sim-watch-settle.js";
3
+ import { simWatch, } from "../../../watch/sim-watch-runtime.js";
4
+ import { simWatchConfig } from "../../../watch/sim-watch.config.js";
5
+ import { SimCfnTemplateFileEvents } from "./sim-cfn-template-file-events.js";
6
+ /**
7
+ * Watches one deployed template file, and applies it again when it changes.
8
+ *
9
+ * Changes are applied one at a time. A save arriving while an update is still
10
+ * running waits for it, rather than being refused as a second update of a Stack
11
+ * that is already updating.
12
+ */
13
+ export class SimCfnTemplateFileWatch {
14
+ templatePath;
15
+ onChanged;
16
+ settle;
17
+ events;
18
+ watch;
19
+ applying = Promise.resolve();
20
+ constructor(properties) {
21
+ const { templatePath, onChanged, settleMs = simWatchConfig.settleMs, watch = simWatch, } = properties;
22
+ this.templatePath = path.resolve(templatePath);
23
+ this.onChanged = onChanged;
24
+ this.watch = watch;
25
+ this.settle = new SimWatchSettle({
26
+ settleMs,
27
+ onSettled: () => {
28
+ this.apply();
29
+ },
30
+ });
31
+ this.events = new SimCfnTemplateFileEvents({
32
+ templatePath: this.templatePath,
33
+ onEvent: () => {
34
+ this.settle.record(this.templatePath);
35
+ },
36
+ });
37
+ }
38
+ /**
39
+ * Start watching.
40
+ *
41
+ * A `yulin watch` supervisor is told the path is handled here, so a
42
+ * re-synthesis updates the Stack in place instead of restarting the process
43
+ * and taking every simulated Bucket and Table with it.
44
+ */
45
+ start() {
46
+ this.watch.reportHeldPath(this.templatePath);
47
+ this.events.start();
48
+ }
49
+ /**
50
+ * Stop watching, and drop a change that was still settling.
51
+ */
52
+ close() {
53
+ this.settle.cancel();
54
+ this.events.close();
55
+ }
56
+ // Queued rather than started, so two saves in a row are two updates in order.
57
+ apply() {
58
+ this.applying = this.applyAfter(this.applying);
59
+ }
60
+ async applyAfter(applying) {
61
+ await applying;
62
+ try {
63
+ await this.onChanged();
64
+ }
65
+ catch {
66
+ // The change handler answers a failed update and a callback that threw
67
+ // itself, so anything still thrown here is the watch failing rather than
68
+ // the update. It is dropped because the queue has to survive it: a
69
+ // rejected link in it would refuse every save after this one.
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=sim-cfn-template-file-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-template-file-watch.js","sourceRoot":"","sources":["../../../../src/service/cloudformation/watch/sim-cfn-template-file-watch.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EACL,QAAQ,GAET,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAS7E;;;;;;GAMG;AACH,MAAM,OAAO,uBAAuB;IACjB,YAAY,CAAS;IACrB,SAAS,CAAsB;IAC/B,MAAM,CAAiB;IACvB,MAAM,CAA2B;IACjC,KAAK,CAAkB;IAChC,QAAQ,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEpD,YAAY,UAA6C;QACvD,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAClC,KAAK,GAAG,QAAQ,GACjB,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC;YAC/B,QAAQ;YACR,SAAS,EAAE,GAAS,EAAE;gBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAwB,CAAC;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,GAAS,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,8EAA8E;IACtE,KAAK;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAuB;QAC9C,MAAM,QAAQ,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,yEAAyE;YACzE,mEAAmE;YACnE,8DAA8D;QAChE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import type { SimCloudFormationDeployTemplateFileProperties } from "../deploy/sim-cfn-template-file-loader.js";
2
+ import type { SimCfnTemplateFileUpdating } from "../deploy/sim-cfn-template-file-updater.js";
3
+ import type { SimCfnTemplateFileWatchOptions } from "./sim-cfn-template-watch.type.js";
4
+ interface SimCfnTemplateFileWatchesProperties {
5
+ readonly updater: SimCfnTemplateFileUpdating;
6
+ }
7
+ /**
8
+ * The template files this simulated CloudFormation is watching.
9
+ *
10
+ * One watch per deployment rather than per file, so a file deployed as two
11
+ * Stacks updates both of them. Deploying the same Stack from the same file
12
+ * again replaces its watch instead, since the deployment that just happened is
13
+ * the live one and the watch it replaces would be applying the file to the
14
+ * Stack it deployed before.
15
+ *
16
+ * A watch holds an open filesystem handle, which keeps the process alive, so
17
+ * anything that starts one needs a way to let it go. `stopAll()` is that way,
18
+ * and a long-running dev process simply never calls it.
19
+ */
20
+ export declare class SimCfnTemplateFileWatches {
21
+ private readonly updater;
22
+ private readonly watches;
23
+ constructor(properties: SimCfnTemplateFileWatchesProperties);
24
+ /**
25
+ * Watch a deployed template file, if the deployment asked to keep reading it.
26
+ */
27
+ watchIfAsked(deployment: SimCloudFormationDeployTemplateFileProperties): void;
28
+ /**
29
+ * Watch a deployed template file, and update its Stack when it changes.
30
+ */
31
+ add(deployment: SimCloudFormationDeployTemplateFileProperties, options: SimCfnTemplateFileWatchOptions): void;
32
+ /**
33
+ * The template files being watched, as `yulin watch` is told about them.
34
+ *
35
+ * A file two Stacks were deployed from is named once. What a supervisor does
36
+ * with it is the same whether one deployment is reading it or several.
37
+ */
38
+ paths(): readonly string[];
39
+ /**
40
+ * Stop watching everything, so nothing is left holding the process open.
41
+ */
42
+ stopAll(): void;
43
+ private remove;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=sim-cfn-template-file-watches.d.ts.map