local-serverless-stack 1.0.0 → 1.1.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 (200) hide show
  1. package/CHANGELOG.md +125 -3
  2. package/README.md +92 -38
  3. package/bin/cli.js +218 -28
  4. package/bin/i18n.js +57 -3
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/client/namespaces/services.d.ts +46 -0
  8. package/dist/client/namespaces/services.d.ts.map +1 -1
  9. package/dist/client/namespaces/services.js +1 -0
  10. package/dist/client/namespaces/services.js.map +1 -1
  11. package/dist/mcp/tools.d.ts.map +1 -1
  12. package/dist/mcp/tools.js +17 -0
  13. package/dist/mcp/tools.js.map +1 -1
  14. package/dist/server/engine/backends/self-backend.d.ts +26 -1
  15. package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
  16. package/dist/server/engine/backends/self-backend.js +104 -11
  17. package/dist/server/engine/backends/self-backend.js.map +1 -1
  18. package/dist/server/engine/emulators/dynamodb/expressions/parser.d.ts.map +1 -1
  19. package/dist/server/engine/emulators/dynamodb/expressions/parser.js +12 -1
  20. package/dist/server/engine/emulators/dynamodb/expressions/parser.js.map +1 -1
  21. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts +3 -0
  22. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts.map +1 -0
  23. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js +78 -0
  24. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js.map +1 -0
  25. package/dist/server/engine/emulators/dynamodb/index.d.ts +11 -0
  26. package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
  27. package/dist/server/engine/emulators/dynamodb/index.js +101 -7
  28. package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
  29. package/dist/server/engine/emulators/dynamodb/query.d.ts +1 -0
  30. package/dist/server/engine/emulators/dynamodb/query.d.ts.map +1 -1
  31. package/dist/server/engine/emulators/dynamodb/query.js +34 -6
  32. package/dist/server/engine/emulators/dynamodb/query.js.map +1 -1
  33. package/dist/server/engine/emulators/s3/index.d.ts +10 -0
  34. package/dist/server/engine/emulators/s3/index.d.ts.map +1 -1
  35. package/dist/server/engine/emulators/s3/index.js +369 -25
  36. package/dist/server/engine/emulators/s3/index.js.map +1 -1
  37. package/dist/server/engine/emulators/sqs/index.d.ts +2 -0
  38. package/dist/server/engine/emulators/sqs/index.d.ts.map +1 -1
  39. package/dist/server/engine/emulators/sqs/index.js +70 -7
  40. package/dist/server/engine/emulators/sqs/index.js.map +1 -1
  41. package/dist/server/engine/emulators/sqs/queue.d.ts +2 -1
  42. package/dist/server/engine/emulators/sqs/queue.d.ts.map +1 -1
  43. package/dist/server/engine/emulators/sqs/queue.js +68 -35
  44. package/dist/server/engine/emulators/sqs/queue.js.map +1 -1
  45. package/dist/server/engine/emulators/ssm/index.d.ts +31 -0
  46. package/dist/server/engine/emulators/ssm/index.d.ts.map +1 -0
  47. package/dist/server/engine/emulators/ssm/index.js +670 -0
  48. package/dist/server/engine/emulators/ssm/index.js.map +1 -0
  49. package/dist/server/engine/http/errors.d.ts +1 -0
  50. package/dist/server/engine/http/errors.d.ts.map +1 -1
  51. package/dist/server/engine/http/errors.js +13 -5
  52. package/dist/server/engine/http/errors.js.map +1 -1
  53. package/dist/server/engine/http/is-aws-request.d.ts.map +1 -1
  54. package/dist/server/engine/http/is-aws-request.js +13 -3
  55. package/dist/server/engine/http/is-aws-request.js.map +1 -1
  56. package/dist/server/engine/http/protocols/aws-json.d.ts +1 -0
  57. package/dist/server/engine/http/protocols/aws-json.d.ts.map +1 -1
  58. package/dist/server/engine/http/protocols/aws-json.js +13 -0
  59. package/dist/server/engine/http/protocols/aws-json.js.map +1 -1
  60. package/dist/server/engine/http/reset.d.ts +4 -0
  61. package/dist/server/engine/http/reset.d.ts.map +1 -0
  62. package/dist/server/engine/http/reset.js +17 -0
  63. package/dist/server/engine/http/reset.js.map +1 -0
  64. package/dist/server/engine/http/router.d.ts +1 -0
  65. package/dist/server/engine/http/router.d.ts.map +1 -1
  66. package/dist/server/engine/http/router.js +185 -34
  67. package/dist/server/engine/http/router.js.map +1 -1
  68. package/dist/server/engine/types.d.ts +2 -1
  69. package/dist/server/engine/types.d.ts.map +1 -1
  70. package/dist/server/routes/apis.d.ts.map +1 -1
  71. package/dist/server/routes/apis.js +6 -0
  72. package/dist/server/routes/apis.js.map +1 -1
  73. package/dist/server/routes/config.d.ts.map +1 -1
  74. package/dist/server/routes/config.js +25 -1
  75. package/dist/server/routes/config.js.map +1 -1
  76. package/dist/server/routes/lambdas.d.ts.map +1 -1
  77. package/dist/server/routes/lambdas.js +12 -0
  78. package/dist/server/routes/lambdas.js.map +1 -1
  79. package/dist/server/routes/services.d.ts.map +1 -1
  80. package/dist/server/routes/services.js +66 -5
  81. package/dist/server/routes/services.js.map +1 -1
  82. package/dist/server/runtime/runtime-worker.js +40 -3
  83. package/dist/server/runtime/runtime-worker.js.map +1 -1
  84. package/dist/server/services/api-gateway-events.d.ts +14 -0
  85. package/dist/server/services/api-gateway-events.d.ts.map +1 -1
  86. package/dist/server/services/api-gateway-events.js +114 -8
  87. package/dist/server/services/api-gateway-events.js.map +1 -1
  88. package/dist/server/services/artifact-staleness.d.ts +20 -0
  89. package/dist/server/services/artifact-staleness.d.ts.map +1 -0
  90. package/dist/server/services/artifact-staleness.js +115 -0
  91. package/dist/server/services/artifact-staleness.js.map +1 -0
  92. package/dist/server/services/authorizer-service.d.ts +34 -5
  93. package/dist/server/services/authorizer-service.d.ts.map +1 -1
  94. package/dist/server/services/authorizer-service.js +0 -0
  95. package/dist/server/services/authorizer-service.js.map +1 -1
  96. package/dist/server/services/cache-manager.d.ts +5 -0
  97. package/dist/server/services/cache-manager.d.ts.map +1 -1
  98. package/dist/server/services/cache-manager.js.map +1 -1
  99. package/dist/server/services/cfn-intrinsics.d.ts +63 -0
  100. package/dist/server/services/cfn-intrinsics.d.ts.map +1 -0
  101. package/dist/server/services/cfn-intrinsics.js +403 -0
  102. package/dist/server/services/cfn-intrinsics.js.map +1 -0
  103. package/dist/server/services/cfn-physical-values.d.ts +51 -0
  104. package/dist/server/services/cfn-physical-values.d.ts.map +1 -0
  105. package/dist/server/services/cfn-physical-values.js +186 -0
  106. package/dist/server/services/cfn-physical-values.js.map +1 -0
  107. package/dist/server/services/cloudformation-parser.d.ts +26 -3
  108. package/dist/server/services/cloudformation-parser.d.ts.map +1 -1
  109. package/dist/server/services/cloudformation-parser.js +79 -7
  110. package/dist/server/services/cloudformation-parser.js.map +1 -1
  111. package/dist/server/services/config-manager.d.ts +49 -2
  112. package/dist/server/services/config-manager.d.ts.map +1 -1
  113. package/dist/server/services/config-manager.js +206 -24
  114. package/dist/server/services/config-manager.js.map +1 -1
  115. package/dist/server/services/gateway-manager.d.ts.map +1 -1
  116. package/dist/server/services/gateway-manager.js +52 -20
  117. package/dist/server/services/gateway-manager.js.map +1 -1
  118. package/dist/server/services/lambda-runtime-manager.d.ts +2 -0
  119. package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
  120. package/dist/server/services/lambda-runtime-manager.js +49 -15
  121. package/dist/server/services/lambda-runtime-manager.js.map +1 -1
  122. package/dist/server/services/raw-api-assembler.d.ts +1 -1
  123. package/dist/server/services/raw-api-assembler.d.ts.map +1 -1
  124. package/dist/server/services/raw-api-assembler.js +18 -8
  125. package/dist/server/services/raw-api-assembler.js.map +1 -1
  126. package/dist/server/services/resource-provisioner.d.ts +31 -1
  127. package/dist/server/services/resource-provisioner.d.ts.map +1 -1
  128. package/dist/server/services/resource-provisioner.js +257 -25
  129. package/dist/server/services/resource-provisioner.js.map +1 -1
  130. package/dist/server/services/s3-explorer.js +1 -1
  131. package/dist/server/services/seed-manager.d.ts.map +1 -1
  132. package/dist/server/services/seed-manager.js +11 -6
  133. package/dist/server/services/seed-manager.js.map +1 -1
  134. package/dist/server/services/serverless-state-parser.d.ts +45 -2
  135. package/dist/server/services/serverless-state-parser.d.ts.map +1 -1
  136. package/dist/server/services/serverless-state-parser.js +217 -29
  137. package/dist/server/services/serverless-state-parser.js.map +1 -1
  138. package/dist/server/services/service-graph.d.ts +76 -0
  139. package/dist/server/services/service-graph.d.ts.map +1 -0
  140. package/dist/server/services/service-graph.js +914 -0
  141. package/dist/server/services/service-graph.js.map +1 -0
  142. package/dist/server/services/service-registrar.d.ts +17 -1
  143. package/dist/server/services/service-registrar.d.ts.map +1 -1
  144. package/dist/server/services/service-registrar.js +190 -66
  145. package/dist/server/services/service-registrar.js.map +1 -1
  146. package/dist/server/services/service-scanner.d.ts +7 -2
  147. package/dist/server/services/service-scanner.d.ts.map +1 -1
  148. package/dist/server/services/service-scanner.js +53 -7
  149. package/dist/server/services/service-scanner.js.map +1 -1
  150. package/dist/server/services/source-watcher.d.ts +1 -0
  151. package/dist/server/services/source-watcher.d.ts.map +1 -1
  152. package/dist/server/services/source-watcher.js +19 -1
  153. package/dist/server/services/source-watcher.js.map +1 -1
  154. package/dist/server/services/worker-runtime.d.ts +82 -0
  155. package/dist/server/services/worker-runtime.d.ts.map +1 -0
  156. package/dist/server/services/worker-runtime.js +303 -0
  157. package/dist/server/services/worker-runtime.js.map +1 -0
  158. package/dist/ui/assets/ApisPage-BkW-QZ0X.js +1 -0
  159. package/dist/ui/assets/BucketDetailPage-CJwTQJh7.js +1 -0
  160. package/dist/ui/assets/BucketsPage-B1xPVhZC.js +1 -0
  161. package/dist/ui/assets/DynamoPage-DvbpwZDc.js +1 -0
  162. package/dist/ui/assets/DynamoTablePage-xn3Lq3so.js +3 -0
  163. package/dist/ui/assets/LambdaDetailPage-BhUyO77H.js +4 -0
  164. package/dist/ui/assets/LambdasPage-CUF_4rOH.js +1 -0
  165. package/dist/ui/assets/OnboardingPage-U49THUzu.js +1 -0
  166. package/dist/ui/assets/OpenSearchCollectionPage-BJTVNCq4.js +1 -0
  167. package/dist/ui/assets/OpenSearchPage-4s-egkB9.js +1 -0
  168. package/dist/ui/assets/OverviewPage-DJeJQktG.js +1 -0
  169. package/dist/ui/assets/{OverviewPage-C1pBJ8aP.css → OverviewPage-DjQETmb_.css} +1 -1
  170. package/dist/ui/assets/QueueDetailPage-DWsy5Yt8.js +1 -0
  171. package/dist/ui/assets/QueuesPage-BZJSqman.js +1 -0
  172. package/dist/ui/assets/SecretsPage-YC9ua54G.js +1 -0
  173. package/dist/ui/assets/ServiceDetailPage-Cum5frP4.js +2 -0
  174. package/dist/ui/assets/ServicesPage-IpaPDuqx.js +2 -0
  175. package/dist/ui/assets/SettingsPage-BiCRU8O6.js +1 -0
  176. package/dist/ui/assets/index-BDlrAJhi.css +1 -0
  177. package/dist/ui/assets/index-BouKSS43.js +38 -0
  178. package/dist/ui/assets/resourceIcons-DZs28nbs.js +1 -0
  179. package/dist/ui/index.html +5 -2
  180. package/package.json +1 -1
  181. package/dist/ui/assets/ApisPage-BOuimwWz.js +0 -1
  182. package/dist/ui/assets/BucketDetailPage-vLYwhoQt.js +0 -1
  183. package/dist/ui/assets/BucketsPage-Cu5lU1Hp.js +0 -1
  184. package/dist/ui/assets/DynamoPage-y3TTEPUL.js +0 -1
  185. package/dist/ui/assets/DynamoTablePage-BnmSRZjc.js +0 -3
  186. package/dist/ui/assets/LambdaDetailPage-B5q_d27t.js +0 -4
  187. package/dist/ui/assets/LambdasPage-CJpRoEDx.js +0 -1
  188. package/dist/ui/assets/OnboardingPage-D02dymQi.js +0 -1
  189. package/dist/ui/assets/OpenSearchCollectionPage-B_wWTlfL.js +0 -1
  190. package/dist/ui/assets/OpenSearchPage-BLEgfF_g.js +0 -1
  191. package/dist/ui/assets/OverviewPage-EdJWiAt6.js +0 -1
  192. package/dist/ui/assets/QueueDetailPage-ByEYHvHe.js +0 -1
  193. package/dist/ui/assets/QueuesPage-CvwYHSll.js +0 -1
  194. package/dist/ui/assets/SecretsPage-DASw8Ntf.js +0 -1
  195. package/dist/ui/assets/ServiceDetailPage-BMsUDg6L.js +0 -2
  196. package/dist/ui/assets/ServicesPage-2JuiIiRr.js +0 -2
  197. package/dist/ui/assets/SettingsPage-DStO4bgN.js +0 -1
  198. package/dist/ui/assets/index-BIEznsi4.js +0 -37
  199. package/dist/ui/assets/index-BRMvNP3Y.css +0 -1
  200. package/dist/ui/assets/resourceIcons-baecADXA.js +0 -1
@@ -55,6 +55,46 @@ export interface PrepareServiceResult {
55
55
  durationMs: number;
56
56
  output: string;
57
57
  }
58
+ /**
59
+ * What a node stands for. `route` and `iam-role` have no counterpart among the
60
+ * provisioned resource types: a route is declared in `serverless-state.json`,
61
+ * and a role is never provisioned. `external` is anything the service
62
+ * references but does not declare — the cross-service links.
63
+ */
64
+ export type ServiceGraphNodeKind = 'lambda' | 'dynamodb' | 'sqs' | 'sns' | 's3' | 'eventbus' | 'event-rule' | 'opensearch' | 'secret' | 'route' | 'iam-role' | 'external';
65
+ /**
66
+ * How an edge was established. The distinction is the point of the payload:
67
+ * `iam` and `env` are far weaker evidence than the rest.
68
+ */
69
+ export type ServiceGraphEdgeKind = 'http-route' | 'authorizer' | 'event-source' | 's3-notification' | 'event-rule-target' | 'event-bus-rule' | 'sns-subscription' | 'redrive' | 'iam' | 'env';
70
+ export interface ServiceGraphNode {
71
+ id: string;
72
+ kind: ServiceGraphNodeKind;
73
+ label: string;
74
+ logicalId?: string;
75
+ method?: string;
76
+ path?: string;
77
+ fullName?: string;
78
+ handler?: string;
79
+ arn?: string;
80
+ service?: string;
81
+ }
82
+ export interface ServiceGraphEdge {
83
+ id: string;
84
+ from: string;
85
+ to: string;
86
+ kind: ServiceGraphEdgeKind;
87
+ detail?: string;
88
+ confidence: 'declared' | 'inferred';
89
+ serviceWide?: boolean;
90
+ }
91
+ export interface ServiceGraph {
92
+ service: string;
93
+ nodes: ServiceGraphNode[];
94
+ edges: ServiceGraphEdge[];
95
+ edgeKinds: ServiceGraphEdgeKind[];
96
+ warnings: string[];
97
+ }
58
98
  export interface ServicesApi {
59
99
  register(input: RegisterServiceInput): Promise<unknown>;
60
100
  /** GET /api/services/scan — discover Serverless/osls services under the project root. */
@@ -68,6 +108,12 @@ export interface ServicesApi {
68
108
  package(servicePath: string): Promise<PrepareServiceResult>;
69
109
  list(): Promise<unknown[]>;
70
110
  get(name: string): Promise<unknown>;
111
+ /**
112
+ * GET /api/services/:name/graph — the service's DECLARED wiring (nodes,
113
+ * edges and the evidence for each), derived from the packaged template. It
114
+ * answers for a stopped service too: nothing here is read from the engine.
115
+ */
116
+ graph(name: string): Promise<ServiceGraph>;
71
117
  remove(name: string): Promise<{
72
118
  success: true;
73
119
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ function createServicesApi(http) {
10
10
  package: (servicePath) => http.json('POST', '/api/services/package', { body: { servicePath } }),
11
11
  list: () => http.json('GET', '/api/services'),
12
12
  get: (name) => http.json('GET', base(name)),
13
+ graph: (name) => http.json('GET', `${base(name)}/graph`),
13
14
  remove: (name) => http.json('DELETE', base(name)),
14
15
  setStatus: (name, body) => http.json('PATCH', `${base(name)}/status`, { body }),
15
16
  start: (name, input) => http.json('POST', `${base(name)}/start`, { body: input ?? {} }),
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":";;AAsFA,8CAkBC;AAlBD,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACjF,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC;QAClD,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACjH,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;QAC/F,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC;QAC7C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/E,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACvF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACtD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;KACvE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/client/namespaces/services.ts"],"names":[],"mappings":";;AAyLA,8CAmBC;AAnBD,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACjF,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC;QAClD,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACjH,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;QAC/F,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC;QAC7C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/E,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACvF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACtD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,QAAQ;IACvB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAEF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAoBD,eAAO,MAAM,KAAK,EAAE,cAAc,EAqSjC,CAAC;AAEF,eAAO,MAAM,aAAa,6BAAgD,CAAC;AAG3E,wBAAgB,eAAe,IAAI,OAAO,EAAE,CAM3C"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,QAAQ;IACvB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAEF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAoBD,eAAO,MAAM,KAAK,EAAE,cAAc,EAuTjC,CAAC;AAEF,eAAO,MAAM,aAAa,6BAAgD,CAAC;AAG3E,wBAAgB,eAAe,IAAI,OAAO,EAAE,CAM3C"}
package/dist/mcp/tools.js CHANGED
@@ -55,6 +55,23 @@ export const TOOLS = [
55
55
  inputSchema: { type: 'object', properties: {} },
56
56
  run: (_a, http) => http('GET', '/api/services'),
57
57
  },
58
+ {
59
+ name: 'lss_service_graph',
60
+ description: 'How ONE service is wired, derived from its packaged CloudFormation template: nodes (its functions, '
61
+ + 'tables, queues, topics, buckets, buses, rules, collections, secrets, HTTP routes and shared IAM roles, '
62
+ + 'plus the resources of OTHER services it references) and the edges between them — each carrying the '
63
+ + 'evidence it came from (http-route, authorizer, event-source, s3-notification, event-rule-target, '
64
+ + 'sns-subscription, redrive, iam grant, env var) and whether that evidence is `declared` or merely '
65
+ + '`inferred` from a name match. Use it to answer "what triggers this function" or "who writes that table" '
66
+ + 'without reading the template. It reports what the service DECLARED, not live traffic, so it answers '
67
+ + 'for a stopped service too.',
68
+ inputSchema: {
69
+ type: 'object',
70
+ properties: { name: str('Service name, as listed by lss_services.') },
71
+ required: ['name'],
72
+ },
73
+ run: (a, http) => http('GET', `/api/services/${name(a)}/graph`),
74
+ },
58
75
  {
59
76
  name: 'lss_scan_services',
60
77
  description: 'Discover Serverless Framework / osls services under the project root that could be registered: '
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,15 @@ export declare class SelfEngineBackend {
8
8
  private config;
9
9
  private store;
10
10
  private sqs;
11
+ private dynamo;
11
12
  private dispatcher;
12
13
  private scheduler;
13
14
  private server;
14
15
  private readonly sockets;
15
16
  private boundPort;
16
17
  private running;
18
+ private resetting;
19
+ private readonly frontHandler;
17
20
  constructor(overrides?: Partial<ResolvedSelfEngineConfig>);
18
21
  /**
19
22
  * Build the engine without binding a port. The returned handler answers the
@@ -22,9 +25,30 @@ export declare class SelfEngineBackend {
22
25
  startEmbedded(): Promise<(req: http.IncomingMessage, res: http.ServerResponse) => void>;
23
26
  start(): Promise<void>;
24
27
  stop(): Promise<void>;
28
+ /**
29
+ * Wipe every emulator's state — tables, queues and their messages, buckets
30
+ * and objects, topics, buses and rules, secrets, parameters, collections,
31
+ * Lambda metadata and event source mappings — without restarting the process
32
+ * or rebinding a port. Served as `POST /_lss/reset`.
33
+ *
34
+ * Implemented as teardown + rebuild rather than a per-emulator `clear()`:
35
+ * every emulator, the dispatcher's delivery loops and the scheduler come back
36
+ * exactly as a cold boot over an empty data dir builds them, so a new
37
+ * emulator is covered with no reset code of its own. In persistent mode the
38
+ * data dir's contents are deleted (after a final flush, so no debounced
39
+ * write lands in the fresh tree); in memory mode the old store is simply
40
+ * dropped. Concurrent calls share one reset.
41
+ */
42
+ reset(): Promise<void>;
43
+ private doReset;
44
+ private haltBackgroundWork;
25
45
  isRunning(): boolean;
26
46
  getEndpoint(): string;
27
- /** The AWS wire handler — non-null once start()/startEmbedded() resolved. */
47
+ /**
48
+ * The AWS wire handler — non-null once start()/startEmbedded() resolved.
49
+ * Always the stable front handler, so a caller that keeps it keeps working
50
+ * across reset().
51
+ */
28
52
  getRequestHandler(): ((req: http.IncomingMessage, res: http.ServerResponse) => void) | null;
29
53
  getConfig(): {
30
54
  endpoint: string;
@@ -38,4 +62,5 @@ export declare class SelfEngineBackend {
38
62
  private resolveConfig;
39
63
  private restoreSqsSnapshot;
40
64
  }
65
+ export declare function wipeDataDir(dataDir: string): Promise<void>;
41
66
  //# sourceMappingURL=self-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"self-backend.d.ts","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"AAMA,OAAO,IAAI,MAAM,MAAM,CAAC;AAKxB,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAsBhG,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAI9D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAgF;IAC/F,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAS;gBAIZ,SAAS,GAAE,OAAO,CAAC,wBAAwB,CAAM;IAI7D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IAOvF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+GtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC3B,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,MAAM;IAIrB,6EAA6E;IAC7E,iBAAiB,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI;IAI3F,SAAS,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAQhH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYvC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,kBAAkB;CAU3B"}
1
+ {"version":3,"file":"self-backend.d.ts","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"AAMA,OAAO,IAAI,MAAM,MAAM,CAAC;AAMxB,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAuBhG,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAI9D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAgF;IAC/F,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,SAAS,CAA8B;IAI/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAI3B;gBAIU,SAAS,GAAE,OAAO,CAAC,wBAAwB,CAAM;IAI7D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IAMvF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuHtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B;;;;;;;;;;;;;OAaG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,OAAO;IAiBrB,OAAO,CAAC,kBAAkB;IAM1B,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,iBAAiB,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI;IAI3F,SAAS,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAQhH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYvC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,kBAAkB;CAU3B;AAUD,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE"}
@@ -5,6 +5,7 @@
5
5
  // health polling, no sleeps (PRD RF1.2: well under 500 ms).
6
6
  import http from 'http';
7
7
  import fs from 'fs';
8
+ import os from 'os';
8
9
  import path from 'path';
9
10
  import { ConfigManager } from '../../services/config-manager.js';
10
11
  import { getBindHost } from '../../services/bind-host.js';
@@ -18,11 +19,12 @@ import { EventsEmulator } from '../emulators/events/index.js';
18
19
  import { SnsEmulator } from '../emulators/sns/index.js';
19
20
  import { StsEmulator } from '../emulators/sts.js';
20
21
  import { SecretsManagerEmulator } from '../emulators/secretsmanager/index.js';
22
+ import { SsmEmulator } from '../emulators/ssm/index.js';
21
23
  import { LambdaCtlEmulator } from '../emulators/lambda-ctl/index.js';
22
24
  import { OpenSearchEmulator } from '../emulators/opensearch/index.js';
23
25
  import { EngineDispatcher } from '../dispatch/dispatcher.js';
24
26
  import { EngineScheduler } from '../dispatch/scheduler.js';
25
- const SERVICES = ['dynamodb', 'sqs', 'sns', 's3', 'events', 'lambda', 'sts', 'secretsmanager', 'aoss'];
27
+ const SERVICES = ['dynamodb', 'sqs', 'sns', 's3', 'events', 'lambda', 'sts', 'secretsmanager', 'ssm', 'aoss'];
26
28
  const SQS_SNAPSHOT_FILE = 'sqs-messages.snapshot.json';
27
29
  export class SelfEngineBackend {
28
30
  kind = 'self';
@@ -35,6 +37,7 @@ export class SelfEngineBackend {
35
37
  config = null;
36
38
  store = null;
37
39
  sqs = null;
40
+ dynamo = null;
38
41
  dispatcher = null;
39
42
  scheduler = null;
40
43
  server = null;
@@ -42,6 +45,19 @@ export class SelfEngineBackend {
42
45
  sockets = new Set();
43
46
  boundPort = null;
44
47
  running = false;
48
+ // Set while reset() rebuilds the engine; the stable front handler parks new
49
+ // requests on it so none reaches a half-torn-down emulator.
50
+ resetting = null;
51
+ // What the listener (ours or the orchestrator's) actually calls. Stable for
52
+ // the backend's lifetime: reset() swaps `handler` underneath it, and the
53
+ // orchestrator captured this reference once, at startEmbedded().
54
+ frontHandler = (req, res) => {
55
+ const dispatch = () => this.handler(req, res);
56
+ if (this.resetting)
57
+ void this.resetting.then(dispatch, dispatch);
58
+ else
59
+ dispatch();
60
+ };
45
61
  // `overrides` merge over ConfigManager's resolved self-engine config —
46
62
  // tests use it for ephemeral ports (0) and temp data dirs.
47
63
  constructor(overrides = {}) {
@@ -54,8 +70,7 @@ export class SelfEngineBackend {
54
70
  async startEmbedded() {
55
71
  this.embedded = true;
56
72
  await this.start();
57
- // start() always assigns the handler before returning.
58
- return this.handler;
73
+ return this.frontHandler;
59
74
  }
60
75
  async start() {
61
76
  if (this.running)
@@ -89,9 +104,11 @@ export class SelfEngineBackend {
89
104
  const sns = new SnsEmulator(ctx);
90
105
  const sts = new StsEmulator(ctx);
91
106
  const secretsManager = new SecretsManagerEmulator(ctx);
107
+ const ssm = new SsmEmulator(ctx);
92
108
  const lambdaCtl = new LambdaCtlEmulator(ctx);
93
109
  const opensearch = new OpenSearchEmulator(ctx);
94
110
  this.sqs = sqs;
111
+ this.dynamo = dynamo;
95
112
  const dispatcher = new EngineDispatcher({ ctx, sqs, dynamo, s3, events, lambdaCtl });
96
113
  ctx.dispatcher = dispatcher;
97
114
  this.dispatcher = dispatcher;
@@ -110,17 +127,23 @@ export class SelfEngineBackend {
110
127
  await dispatcher.start(config.region);
111
128
  await scheduler.resync(config.region);
112
129
  store.startSweeper();
130
+ // Background TTL deleter: expired items go away (and emit their stream
131
+ // REMOVE) without waiting for a read to notice them.
132
+ dynamo.startTtlSweeper();
113
133
  const handler = createEngineRequestHandler({
114
134
  ctx,
115
- emulators: [dynamo, sqs, s3, events, sns, sts, secretsManager, lambdaCtl, opensearch],
135
+ onReset: () => this.reset(),
136
+ emulators: [dynamo, sqs, s3, events, sns, sts, secretsManager, ssm, lambdaCtl, opensearch],
116
137
  });
117
138
  this.handler = handler;
118
- if (this.embedded) {
119
- // The orchestrator owns the listener; everything above is already live.
139
+ // Embedded: the orchestrator owns the listener. Rebuilt by reset(): the
140
+ // listener from the first start() is still bound and already routes
141
+ // through frontHandler. Either way everything above is already live.
142
+ if (this.embedded || this.server) {
120
143
  this.running = true;
121
144
  return;
122
145
  }
123
- const server = http.createServer(handler);
146
+ const server = http.createServer(this.frontHandler);
124
147
  server.on('connection', socket => {
125
148
  this.sockets.add(socket);
126
149
  socket.on('close', () => this.sockets.delete(socket));
@@ -164,8 +187,7 @@ export class SelfEngineBackend {
164
187
  if (!this.running)
165
188
  return;
166
189
  this.running = false;
167
- this.scheduler?.stop();
168
- this.dispatcher?.stop();
190
+ this.haltBackgroundWork();
169
191
  const config = this.config;
170
192
  if (config.persistence && this.sqs && this.store) {
171
193
  try {
@@ -192,15 +214,63 @@ export class SelfEngineBackend {
192
214
  }
193
215
  this.boundPort = null;
194
216
  }
217
+ /**
218
+ * Wipe every emulator's state — tables, queues and their messages, buckets
219
+ * and objects, topics, buses and rules, secrets, parameters, collections,
220
+ * Lambda metadata and event source mappings — without restarting the process
221
+ * or rebinding a port. Served as `POST /_lss/reset`.
222
+ *
223
+ * Implemented as teardown + rebuild rather than a per-emulator `clear()`:
224
+ * every emulator, the dispatcher's delivery loops and the scheduler come back
225
+ * exactly as a cold boot over an empty data dir builds them, so a new
226
+ * emulator is covered with no reset code of its own. In persistent mode the
227
+ * data dir's contents are deleted (after a final flush, so no debounced
228
+ * write lands in the fresh tree); in memory mode the old store is simply
229
+ * dropped. Concurrent calls share one reset.
230
+ */
231
+ async reset() {
232
+ if (!this.running)
233
+ throw new Error('The self engine is not running');
234
+ this.resetting ??= this.doReset().finally(() => {
235
+ this.resetting = null;
236
+ });
237
+ return this.resetting;
238
+ }
239
+ async doReset() {
240
+ const config = this.config;
241
+ const store = this.store;
242
+ this.haltBackgroundWork();
243
+ store.stopSweeper();
244
+ // Settle every pending write first: a debounced catalog flush firing after
245
+ // the wipe would resurrect a file in the fresh tree. Deliberately no SQS
246
+ // snapshot — that is the graceful-shutdown path, and the point here is to
247
+ // forget the messages.
248
+ await store.flushAll();
249
+ if (config.persistence)
250
+ await wipeDataDir(config.dataDir);
251
+ this.running = false;
252
+ await this.start();
253
+ console.log(`[self-engine] reset: every emulator is empty${config.persistence ? ` (${config.dataDir} wiped)` : ''}`);
254
+ }
255
+ // Everything that runs on a timer or a loop, outside request handling.
256
+ haltBackgroundWork() {
257
+ this.scheduler?.stop();
258
+ this.dynamo?.stopTtlSweeper();
259
+ this.dispatcher?.stop();
260
+ }
195
261
  isRunning() {
196
262
  return this.running;
197
263
  }
198
264
  getEndpoint() {
199
265
  return `http://localhost:${this.boundPort ?? this.resolveConfig().port}`;
200
266
  }
201
- /** The AWS wire handler — non-null once start()/startEmbedded() resolved. */
267
+ /**
268
+ * The AWS wire handler — non-null once start()/startEmbedded() resolved.
269
+ * Always the stable front handler, so a caller that keeps it keeps working
270
+ * across reset().
271
+ */
202
272
  getRequestHandler() {
203
- return this.handler;
273
+ return this.handler ? this.frontHandler : null;
204
274
  }
205
275
  getConfig() {
206
276
  return {
@@ -238,6 +308,29 @@ export class SelfEngineBackend {
238
308
  }
239
309
  }
240
310
  }
311
+ // Delete the CONTENTS of the engine data dir (the dir itself stays, so a
312
+ // symlinked or bind-mounted one survives). `selfEngine.dataDir` is
313
+ // user-configurable, so before deleting anything this checks the directory is
314
+ // not something far bigger than engine state: a filesystem root, the home
315
+ // directory, the working directory, or a directory holding a project's own
316
+ // files. The engine's tree never contains any of those markers.
317
+ const PROJECT_MARKERS = ['package.json', '.git', 'lss.config.json', '.lssrc', 'serverless.yml'];
318
+ export async function wipeDataDir(dataDir) {
319
+ const dir = path.resolve(dataDir);
320
+ if (dir === path.parse(dir).root || dir === path.resolve(os.homedir()) || dir === process.cwd()) {
321
+ throw new Error(`Refusing to wipe ${dir}: selfEngine.dataDir must be a dedicated engine directory`);
322
+ }
323
+ const entries = await fs.promises.readdir(dir).catch((err) => {
324
+ if (err.code === 'ENOENT')
325
+ return [];
326
+ throw err;
327
+ });
328
+ const marker = entries.find(entry => PROJECT_MARKERS.includes(entry));
329
+ if (marker) {
330
+ throw new Error(`Refusing to wipe ${dir}: it contains ${marker}, so it is not a dedicated engine data directory`);
331
+ }
332
+ await Promise.all(entries.map(entry => fs.promises.rm(path.join(dir, entry), { recursive: true, force: true })));
333
+ }
241
334
  function notReadyDispatcher() {
242
335
  return {
243
336
  invokeFunction: async () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"self-backend.js","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"self-backend.js","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,yEAAyE;AACzE,8EAA8E;AAC9E,8EAA8E;AAC9E,4DAA4D;AAE5D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAiC,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,WAAW,EAA4B,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AACvH,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAEvD,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,MAAe,CAAC;IAEf,SAAS,CAAoC;IAC9D,4EAA4E;IAC5E,wEAAwE;IACxE,oDAAoD;IAC5C,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,GAA2E,IAAI,CAAC;IACvF,MAAM,GAAoC,IAAI,CAAC;IAC/C,KAAK,GAAuB,IAAI,CAAC;IACjC,GAAG,GAAuB,IAAI,CAAC;IAC/B,MAAM,GAA4B,IAAI,CAAC;IACvC,UAAU,GAA4B,IAAI,CAAC;IAC3C,SAAS,GAA2B,IAAI,CAAC;IACzC,MAAM,GAAuB,IAAI,CAAC;IAC1C,uEAAuE;IACtD,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,SAAS,GAAkB,IAAI,CAAC;IAChC,OAAO,GAAG,KAAK,CAAC;IACxB,4EAA4E;IAC5E,4DAA4D;IACpD,SAAS,GAAyB,IAAI,CAAC;IAC/C,4EAA4E;IAC5E,yEAAyE;IACzE,iEAAiE;IAChD,YAAY,GAAG,CAAC,GAAyB,EAAE,GAAwB,EAAQ,EAAE;QAC5F,MAAM,QAAQ,GAAG,GAAS,EAAE,CAAE,IAAI,CAAC,OAAqE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnH,IAAI,IAAI,CAAC,SAAS;YAAE,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;;YAC5D,QAAQ,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,uEAAuE;IACvE,2DAA2D;IAC3D,YAAY,YAA+C,EAAE;QAC3D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,KAAK,GAAG,iBAAiB,CAAC;YAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,uEAAuE;YACvE,qEAAqE;YACrE,8BAA8B;YAC9B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAkB;YACzB,MAAM;YACN,KAAK;YACL,GAAG;YACH,qEAAqE;YACrE,UAAU,EAAE,kBAAkB,EAAE;YAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;SACnC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACrF,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;YACpC,GAAG;YACH,MAAM;YACN,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;SAC7D,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,yEAAyE;QACzE,wBAAwB;QACxB,IAAI,MAAM,CAAC,WAAW;YAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE7D,qEAAqE;QACrE,uCAAuC;QACvC,MAAM,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,uEAAuE;QACvE,qDAAqD;QACrD,MAAM,CAAC,eAAe,EAAE,CAAC;QAEzB,MAAM,OAAO,GAAG,0BAA0B,CAAC;YACzC,GAAG;YACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;YAC3B,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC;SAC3F,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,CAAC,GAA0B,EAAQ,EAAE;gBACnD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBAChD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,KAAK,CACd,mCAAmC,MAAM,CAAC,IAAI,4BAA4B;wBACxE,kFAAkF;wBAClF,8FAA8F,CACjG,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC;YACF,MAAM,WAAW,GAAG,GAAS,EAAE;gBAC7B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACtC,oEAAoE;YACpE,sDAAsD;YACtD,EAAE;YACF,qEAAqE;YACrE,kEAAkE;YAClE,6DAA6D;YAC7D,uEAAuE;YACvE,4DAA4D;YAC5D,0EAA0E;YAC1E,uEAAuE;YACvE,mDAAmD;YACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAkC,CAAC;QACvD,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC9D,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACxF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;oBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAkC,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAoB,CAAC;QACxC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,uBAAuB;QACvB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,WAAW;YAAE,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,+CAA+C,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvH,CAAC;IAED,uEAAuE;IAC/D,kBAAkB;QACxB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,WAAW;QACT,OAAO,oBAAoB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,SAAS;QACP,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;YAC5B,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;YACnC,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;SAC9D,CAAC;IACJ,CAAC;IAED,YAAY;QACV,MAAM,MAAM,GAA4B;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI;YACjD,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;SACxB,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtD,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACvD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACpC,OAAO,EAAE,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACrF,CAAC;IAEO,kBAAkB,CAAC,MAAgC,EAAE,GAAgB;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAwB,CAAC;YAClF,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,kDAAkD,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF;AAED,yEAAyE;AACzE,mEAAmE;AACnE,8EAA8E;AAC9E,0EAA0E;AAC1E,2EAA2E;AAC3E,gEAAgE;AAChE,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAEhG,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,2DAA2D,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAA0B,EAAE,EAAE;QAClF,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAc,CAAC;QACjD,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,oBAAoB,GAAG,iBAAiB,MAAM,kDAAkD,CACjG,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnH,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;QACL,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,6CAA6C;SAC5D,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../../src/server/engine/emulators/dynamodb/expressions/parser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAmB,MAAM,uBAAuB,CAAC;AAOpG,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,eAAe,CAAC;AAGrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,CAAC;IAEnB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,cAAc,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AA+iBD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAErH;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,kBAAkB,CAE1G;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAE9F;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,YAAY,EAAE,CAEpG"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../../src/server/engine/emulators/dynamodb/expressions/parser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAmB,MAAM,uBAAuB,CAAC;AAOpG,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,CAAC;IAEnB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,cAAc,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAyjBD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAErH;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,kBAAkB,CAE1G;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAE9F;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,YAAY,EAAE,CAEpG"}
@@ -7,6 +7,7 @@ import { validationError } from '../../../http/errors.js';
7
7
  import { COMPARATOR_SYMBOL, isKeyword, syntaxError, tokenize } from './lexer.js';
8
8
  import { attributeValuesEqual, beginsWith, containsValue, orderedCompare, resolvePath, sizeOf, typeOf, } from './evaluate.js';
9
9
  import { addDecimals, subtractDecimals } from './decimal.js';
10
+ import { isReservedWord } from './reserved-words.js';
10
11
  const CONDITION_FUNCTIONS = new Set(['attribute_exists', 'attribute_not_exists', 'attribute_type', 'begins_with', 'contains']);
11
12
  const UPDATE_FUNCTIONS = new Set(['if_not_exists', 'list_append']);
12
13
  const COMPARATORS = new Set(['eq', 'ne', 'lt', 'le', 'gt', 'ge']);
@@ -85,6 +86,12 @@ class Parser {
85
86
  return this.resolveName(token);
86
87
  }
87
88
  if (token.type === 'ident') {
89
+ // A bare name that is a DynamoDB reserved word is rejected at parse
90
+ // time (AWS reports the token as written, not upper-cased); the caller
91
+ // must alias it through ExpressionAttributeNames.
92
+ if (isReservedWord(token.text)) {
93
+ this.semanticError(`Attribute name is a reserved keyword; reserved keyword: ${token.text}`);
94
+ }
88
95
  this.next();
89
96
  return token.text;
90
97
  }
@@ -193,8 +200,12 @@ class Parser {
193
200
  return (item) => {
194
201
  const lhs = target.resolve(item);
195
202
  const rhs = right.resolve(item);
203
+ // A missing operand compares not-equal to anything: `a <> :v` is TRUE
204
+ // when `a` is absent (the idiom behind "attribute absent or different"
205
+ // guards), while `=` and the ordering comparators are FALSE. This
206
+ // keeps `a <> :v` and `NOT (a = :v)` equivalent, as on AWS.
196
207
  if (lhs === undefined || rhs === undefined)
197
- return false;
208
+ return symbol === '<>';
198
209
  if (symbol === '=')
199
210
  return attributeValuesEqual(lhs, rhs);
200
211
  if (symbol === '<>')