pyric 0.1.0-alpha.19 → 0.1.0-alpha.21

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 (281) hide show
  1. package/README.md +64 -89
  2. package/dist/ai/blocked.d.ts +52 -0
  3. package/dist/ai/blocked.d.ts.map +1 -0
  4. package/dist/ai/blocked.js +83 -0
  5. package/dist/ai/blocked.js.map +1 -0
  6. package/dist/ai/broker/broker.d.ts +50 -0
  7. package/dist/ai/broker/broker.d.ts.map +1 -1
  8. package/dist/ai/broker/broker.js +157 -21
  9. package/dist/ai/broker/broker.js.map +1 -1
  10. package/dist/ai/broker/gemini-engine.d.ts +56 -0
  11. package/dist/ai/broker/gemini-engine.d.ts.map +1 -0
  12. package/dist/ai/broker/gemini-engine.js +235 -0
  13. package/dist/ai/broker/gemini-engine.js.map +1 -0
  14. package/dist/ai/broker/index.d.ts +2 -1
  15. package/dist/ai/broker/index.d.ts.map +1 -1
  16. package/dist/ai/broker/index.js +2 -1
  17. package/dist/ai/broker/index.js.map +1 -1
  18. package/dist/ai/broker/openai-engine.d.ts +10 -1
  19. package/dist/ai/broker/openai-engine.d.ts.map +1 -1
  20. package/dist/ai/broker/openai-engine.js +26 -4
  21. package/dist/ai/broker/openai-engine.js.map +1 -1
  22. package/dist/ai/broker/synthesizer.d.ts +14 -0
  23. package/dist/ai/broker/synthesizer.d.ts.map +1 -1
  24. package/dist/ai/broker/synthesizer.js +31 -0
  25. package/dist/ai/broker/synthesizer.js.map +1 -1
  26. package/dist/ai/broker/types.d.ts +29 -0
  27. package/dist/ai/broker/types.d.ts.map +1 -1
  28. package/dist/ai/instances.js +1 -1
  29. package/dist/ai/instances.js.map +1 -1
  30. package/dist/ai/internal.d.ts +5 -0
  31. package/dist/ai/internal.d.ts.map +1 -1
  32. package/dist/ai/internal.js +5 -0
  33. package/dist/ai/internal.js.map +1 -1
  34. package/dist/ai/response-helpers.d.ts.map +1 -1
  35. package/dist/ai/response-helpers.js +6 -24
  36. package/dist/ai/response-helpers.js.map +1 -1
  37. package/dist/analytics/index.d.ts +40 -0
  38. package/dist/analytics/index.d.ts.map +1 -0
  39. package/dist/analytics/index.js +25 -0
  40. package/dist/analytics/index.js.map +1 -0
  41. package/dist/app-check/index.d.ts +31 -0
  42. package/dist/app-check/index.d.ts.map +1 -0
  43. package/dist/app-check/index.js +20 -0
  44. package/dist/app-check/index.js.map +1 -0
  45. package/dist/auth/instances.js +1 -1
  46. package/dist/auth/instances.js.map +1 -1
  47. package/dist/database/controls.d.ts +1 -1
  48. package/dist/database/controls.js +1 -1
  49. package/dist/database/instances.js +1 -1
  50. package/dist/database/instances.js.map +1 -1
  51. package/dist/database/sandbox/backend.d.ts +1 -0
  52. package/dist/database/sandbox/backend.d.ts.map +1 -1
  53. package/dist/database/sandbox/backend.js +1 -0
  54. package/dist/database/sandbox/backend.js.map +1 -1
  55. package/dist/database/sandbox/rules-eval.d.ts +6 -2
  56. package/dist/database/sandbox/rules-eval.d.ts.map +1 -1
  57. package/dist/database/sandbox/rules-eval.js +15 -2
  58. package/dist/database/sandbox/rules-eval.js.map +1 -1
  59. package/dist/database/sandbox/write-plane.d.ts +1 -0
  60. package/dist/database/sandbox/write-plane.d.ts.map +1 -1
  61. package/dist/database/sandbox/write-plane.js +7 -2
  62. package/dist/database/sandbox/write-plane.js.map +1 -1
  63. package/dist/database/sandbox-controls.d.ts +12 -5
  64. package/dist/database/sandbox-controls.d.ts.map +1 -1
  65. package/dist/database/sandbox-controls.js +20 -9
  66. package/dist/database/sandbox-controls.js.map +1 -1
  67. package/dist/database/sandbox-namespace.d.ts +19 -1
  68. package/dist/database/sandbox-namespace.d.ts.map +1 -1
  69. package/dist/database/sandbox-namespace.js +24 -1
  70. package/dist/database/sandbox-namespace.js.map +1 -1
  71. package/dist/deferred/entry.d.ts +75 -0
  72. package/dist/deferred/entry.d.ts.map +1 -0
  73. package/dist/deferred/entry.js +143 -0
  74. package/dist/deferred/entry.js.map +1 -0
  75. package/dist/firestore/instances.js +1 -1
  76. package/dist/firestore/instances.js.map +1 -1
  77. package/dist/firestore/lite.d.ts +72 -0
  78. package/dist/firestore/lite.d.ts.map +1 -0
  79. package/dist/firestore/lite.js +22 -0
  80. package/dist/firestore/lite.js.map +1 -0
  81. package/dist/firestore/persistence.d.ts +2 -2
  82. package/dist/firestore/persistence.js +1 -1
  83. package/dist/firestore/sandbox-controls.d.ts +2 -0
  84. package/dist/firestore/sandbox-controls.d.ts.map +1 -1
  85. package/dist/firestore/sandbox-controls.js +8 -0
  86. package/dist/firestore/sandbox-controls.js.map +1 -1
  87. package/dist/functions/index.d.ts +29 -0
  88. package/dist/functions/index.d.ts.map +1 -0
  89. package/dist/functions/index.js +20 -0
  90. package/dist/functions/index.js.map +1 -0
  91. package/dist/messaging/client.d.ts +2 -1
  92. package/dist/messaging/client.d.ts.map +1 -1
  93. package/dist/messaging/client.js +2 -2
  94. package/dist/messaging/client.js.map +1 -1
  95. package/dist/messaging/instance.d.ts +2 -2
  96. package/dist/messaging/instance.d.ts.map +1 -1
  97. package/dist/messaging/instance.js +40 -6
  98. package/dist/messaging/instance.js.map +1 -1
  99. package/dist/messaging/sw.d.ts +2 -1
  100. package/dist/messaging/sw.d.ts.map +1 -1
  101. package/dist/messaging/sw.js +2 -2
  102. package/dist/messaging/sw.js.map +1 -1
  103. package/dist/performance/index.d.ts +22 -0
  104. package/dist/performance/index.d.ts.map +1 -0
  105. package/dist/performance/index.js +19 -0
  106. package/dist/performance/index.js.map +1 -0
  107. package/dist/remote-config/index.d.ts +40 -0
  108. package/dist/remote-config/index.d.ts.map +1 -0
  109. package/dist/remote-config/index.js +25 -0
  110. package/dist/remote-config/index.js.map +1 -0
  111. package/dist/rules/grammar/FirestoreValidator.d.ts.map +1 -1
  112. package/dist/rules/grammar/FirestoreValidator.js +43 -27
  113. package/dist/rules/grammar/FirestoreValidator.js.map +1 -1
  114. package/dist/rules/grammar/document-access-count.d.ts +24 -0
  115. package/dist/rules/grammar/document-access-count.d.ts.map +1 -0
  116. package/dist/rules/grammar/document-access-count.js +100 -0
  117. package/dist/rules/grammar/document-access-count.js.map +1 -0
  118. package/dist/rules/linter/ast-utils.d.ts +2 -6
  119. package/dist/rules/linter/ast-utils.d.ts.map +1 -1
  120. package/dist/rules/linter/ast-utils.js +2 -63
  121. package/dist/rules/linter/ast-utils.js.map +1 -1
  122. package/dist/rules/linter/hallucinations.d.ts +8 -0
  123. package/dist/rules/linter/hallucinations.d.ts.map +1 -1
  124. package/dist/rules/linter/hallucinations.js +121 -31
  125. package/dist/rules/linter/hallucinations.js.map +1 -1
  126. package/dist/rules/linter/linter.d.ts +10 -1
  127. package/dist/rules/linter/linter.d.ts.map +1 -1
  128. package/dist/rules/linter/linter.js +23 -9
  129. package/dist/rules/linter/linter.js.map +1 -1
  130. package/dist/rules/rtdb/grammar/RtdbExpr.ohm +5 -2
  131. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts +1 -1
  132. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts.map +1 -1
  133. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js +5 -2
  134. package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js.map +1 -1
  135. package/dist/rules/rtdb/grammar/simulator.d.ts.map +1 -1
  136. package/dist/rules/rtdb/grammar/simulator.js +61 -15
  137. package/dist/rules/rtdb/grammar/simulator.js.map +1 -1
  138. package/dist/rules/rtdb/simulation/handler.d.ts.map +1 -1
  139. package/dist/rules/rtdb/simulation/handler.js +96 -35
  140. package/dist/rules/rtdb/simulation/handler.js.map +1 -1
  141. package/dist/rules/simulator/document-lookups.d.ts +4 -0
  142. package/dist/rules/simulator/document-lookups.d.ts.map +1 -1
  143. package/dist/rules/simulator/document-lookups.js +42 -3
  144. package/dist/rules/simulator/document-lookups.js.map +1 -1
  145. package/dist/rules/simulator/eval-error.d.ts +11 -0
  146. package/dist/rules/simulator/eval-error.d.ts.map +1 -1
  147. package/dist/rules/simulator/eval-error.js +14 -0
  148. package/dist/rules/simulator/eval-error.js.map +1 -1
  149. package/dist/rules/simulator/evaluation-builtins.d.ts.map +1 -1
  150. package/dist/rules/simulator/evaluation-builtins.js +33 -8
  151. package/dist/rules/simulator/evaluation-builtins.js.map +1 -1
  152. package/dist/rules/simulator/evaluation-context.d.ts +12 -0
  153. package/dist/rules/simulator/evaluation-context.d.ts.map +1 -1
  154. package/dist/rules/simulator/evaluator.d.ts +1 -1
  155. package/dist/rules/simulator/evaluator.d.ts.map +1 -1
  156. package/dist/rules/simulator/evaluator.js +16 -4
  157. package/dist/rules/simulator/evaluator.js.map +1 -1
  158. package/dist/rules/simulator/handler.d.ts.map +1 -1
  159. package/dist/rules/simulator/handler.js +52 -5
  160. package/dist/rules/simulator/handler.js.map +1 -1
  161. package/dist/rules/simulator/lookup-budget.d.ts +37 -0
  162. package/dist/rules/simulator/lookup-budget.d.ts.map +1 -0
  163. package/dist/rules/simulator/lookup-budget.js +96 -0
  164. package/dist/rules/simulator/lookup-budget.js.map +1 -0
  165. package/dist/rules/stdlib-modules.d.ts +7 -0
  166. package/dist/rules/stdlib-modules.d.ts.map +1 -1
  167. package/dist/rules/stdlib-modules.js +11 -11
  168. package/dist/rules/stdlib-modules.js.map +1 -1
  169. package/dist/sandbox/admin-firestore/get-firestore.d.ts +6 -0
  170. package/dist/sandbox/admin-firestore/get-firestore.d.ts.map +1 -1
  171. package/dist/sandbox/admin-firestore/get-firestore.js +22 -3
  172. package/dist/sandbox/admin-firestore/get-firestore.js.map +1 -1
  173. package/dist/sandbox/index.d.ts +1 -1
  174. package/dist/sandbox/index.d.ts.map +1 -1
  175. package/dist/sandbox/index.js +1 -1
  176. package/dist/sandbox/index.js.map +1 -1
  177. package/dist/sandbox/persistence/types.d.ts +1 -1
  178. package/dist/sandbox/remote.d.ts +2 -2
  179. package/dist/sandbox/sandbox-context.d.ts +8 -1
  180. package/dist/sandbox/sandbox-context.d.ts.map +1 -1
  181. package/dist/sandbox/sandbox-context.js +59 -8
  182. package/dist/sandbox/sandbox-context.js.map +1 -1
  183. package/dist/sandbox/types/auth-state.d.ts +1 -0
  184. package/dist/sandbox/types/auth-state.d.ts.map +1 -1
  185. package/dist/sandbox/types/events.d.ts +2 -1
  186. package/dist/sandbox/types/events.d.ts.map +1 -1
  187. package/dist/sandbox/types/operation.d.ts +1 -0
  188. package/dist/sandbox/types/operation.d.ts.map +1 -1
  189. package/dist/storage/enforce.d.ts +20 -1
  190. package/dist/storage/enforce.d.ts.map +1 -1
  191. package/dist/storage/enforce.js +47 -14
  192. package/dist/storage/enforce.js.map +1 -1
  193. package/dist/storage/index.d.ts +1 -1
  194. package/dist/storage/index.d.ts.map +1 -1
  195. package/dist/storage/list.js +1 -1
  196. package/dist/storage/list.js.map +1 -1
  197. package/dist/storage/persistence.d.ts.map +1 -1
  198. package/dist/storage/persistence.js +66 -14
  199. package/dist/storage/persistence.js.map +1 -1
  200. package/dist/storage/sandbox/rules-evaluation-error.d.ts +25 -0
  201. package/dist/storage/sandbox/rules-evaluation-error.d.ts.map +1 -1
  202. package/dist/storage/sandbox/rules-evaluation-error.js +29 -0
  203. package/dist/storage/sandbox/rules-evaluation-error.js.map +1 -1
  204. package/dist/storage/sandbox/rules-evaluator.d.ts +10 -5
  205. package/dist/storage/sandbox/rules-evaluator.d.ts.map +1 -1
  206. package/dist/storage/sandbox/rules-evaluator.js +105 -33
  207. package/dist/storage/sandbox/rules-evaluator.js.map +1 -1
  208. package/dist/storage/sandbox/rules-methods.d.ts.map +1 -1
  209. package/dist/storage/sandbox/rules-methods.js +17 -7
  210. package/dist/storage/sandbox/rules-methods.js.map +1 -1
  211. package/dist/storage/service.d.ts +23 -2
  212. package/dist/storage/service.d.ts.map +1 -1
  213. package/dist/storage/service.js +37 -26
  214. package/dist/storage/service.js.map +1 -1
  215. package/package.json +42 -2
  216. package/src/ai/blocked.ts +97 -0
  217. package/src/ai/broker/broker.ts +153 -22
  218. package/src/ai/broker/gemini-engine.ts +311 -0
  219. package/src/ai/broker/index.ts +2 -0
  220. package/src/ai/broker/openai-engine.ts +31 -3
  221. package/src/ai/broker/synthesizer.ts +34 -0
  222. package/src/ai/broker/types.ts +27 -1
  223. package/src/ai/instances.ts +1 -1
  224. package/src/ai/internal.ts +5 -0
  225. package/src/ai/response-helpers.ts +6 -25
  226. package/src/analytics/index.ts +53 -0
  227. package/src/app/dispatch.test.ts +3 -1
  228. package/src/app-check/index.ts +41 -0
  229. package/src/auth/instances.ts +1 -1
  230. package/src/database/controls.ts +1 -1
  231. package/src/database/instances.ts +1 -1
  232. package/src/database/sandbox/backend.ts +1 -0
  233. package/src/database/sandbox/rules-eval.ts +18 -2
  234. package/src/database/sandbox/write-plane.ts +8 -2
  235. package/src/database/sandbox-controls.ts +29 -9
  236. package/src/database/sandbox-namespace.ts +28 -1
  237. package/src/deferred/entry.ts +167 -0
  238. package/src/firestore/instances.ts +1 -1
  239. package/src/firestore/lite.ts +91 -0
  240. package/src/firestore/persistence.ts +2 -2
  241. package/src/firestore/sandbox-controls.ts +10 -0
  242. package/src/functions/index.ts +38 -0
  243. package/src/messaging/client.ts +3 -2
  244. package/src/messaging/instance.ts +44 -7
  245. package/src/messaging/sw.ts +3 -2
  246. package/src/performance/index.ts +31 -0
  247. package/src/remote-config/index.ts +53 -0
  248. package/src/rules/grammar/FirestoreValidator.ts +44 -28
  249. package/src/rules/grammar/document-access-count.ts +75 -0
  250. package/src/rules/linter/ast-utils.ts +2 -36
  251. package/src/rules/linter/hallucinations.ts +123 -25
  252. package/src/rules/linter/linter.ts +32 -10
  253. package/src/rules/rtdb/grammar/RtdbExpr.ohm +5 -2
  254. package/src/rules/rtdb/grammar/RtdbExpr.ohm.generated.ts +5 -2
  255. package/src/rules/rtdb/grammar/simulator.ts +41 -15
  256. package/src/rules/rtdb/simulation/handler.ts +149 -46
  257. package/src/rules/simulator/document-lookups.ts +46 -3
  258. package/src/rules/simulator/eval-error.ts +16 -0
  259. package/src/rules/simulator/evaluation-builtins.ts +35 -8
  260. package/src/rules/simulator/evaluation-context.ts +12 -0
  261. package/src/rules/simulator/evaluator.ts +14 -3
  262. package/src/rules/simulator/handler.ts +68 -4
  263. package/src/rules/simulator/lookup-budget.ts +101 -0
  264. package/src/rules/stdlib-modules.ts +19 -11
  265. package/src/sandbox/admin-firestore/get-firestore.ts +19 -3
  266. package/src/sandbox/index.ts +5 -1
  267. package/src/sandbox/persistence/types.ts +1 -1
  268. package/src/sandbox/remote.ts +2 -2
  269. package/src/sandbox/sandbox-context.ts +69 -9
  270. package/src/sandbox/types/auth-state.ts +1 -1
  271. package/src/sandbox/types/events.ts +2 -1
  272. package/src/sandbox/types/operation.ts +1 -1
  273. package/src/storage/enforce.ts +53 -14
  274. package/src/storage/index.ts +1 -1
  275. package/src/storage/list.ts +1 -1
  276. package/src/storage/persistence.ts +74 -16
  277. package/src/storage/sandbox/rules-evaluation-error.ts +32 -0
  278. package/src/storage/sandbox/rules-evaluator.ts +109 -32
  279. package/src/storage/sandbox/rules-methods.ts +21 -7
  280. package/src/storage/service.ts +93 -27
  281. package/README.md.orig +0 -53
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../src/rules/linter/linter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAoBhD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;4FACoF;QACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AA8pBD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,CAwHxF"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../src/rules/linter/linter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAoBhD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;4FACoF;QACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAoqBD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,CA+HxF"}
@@ -1,6 +1,7 @@
1
1
  import { parseToASTOrError } from '../grammar/FirestoreParser.js';
2
- import { maxChainDepth, deepestChain, countExpressionNodes, expressionFingerprint, extractFirstExpression, buildCallGraph, maxCallDepth, countGetCalls, countFunctionCallSites, functionContainsGet, referencesRequestTime, collectAllFunctions, collectAllRules, } from './ast-utils.js';
2
+ import { maxChainDepth, deepestChain, countExpressionNodes, expressionFingerprint, extractFirstExpression, buildCallGraph, maxCallDepth, countFunctionCallSites, functionContainsGet, referencesRequestTime, collectAllFunctions, collectAllRules, } from './ast-utils.js';
3
3
  import { checkSyntaxHints, checkHallucinations } from './hallucinations.js';
4
+ import { countDocumentAccessCalls } from '../grammar/document-access-count.js';
4
5
  // ═══ Thresholds (from production verification) ═══
5
6
  const THRESHOLDS = {
6
7
  SOURCE_SIZE: 256 * 1024, // 256 KB — exact, verified
@@ -17,7 +18,11 @@ const THRESHOLDS = {
17
18
  CALL_DEPTH_WARN: 6,
18
19
  CALL_DEPTH_ERROR: 10,
19
20
  GET_COUNT_WARN: 5,
20
- GET_COUNT_ERROR: 10, // documented by Google
21
+ // Production allows EXACTLY 10 document access calls per request
22
+ // evaluation; the 11th fails (site-docs secure/firestore-rules-limits.md).
23
+ // Error fires strictly ABOVE this value, the same boundary as SEM-3 and
24
+ // the simulator's runtime LookupBudget.
25
+ GET_COUNT_ERROR: 10,
21
26
  };
22
27
  // ═══ Lint Rules ═══
23
28
  function checkSourceSize(source, warnings) {
@@ -298,12 +303,14 @@ function checkGetCount(rules, allFunctions, warnings) {
298
303
  for (const fn of allFunctions)
299
304
  fnMap.set(fn.name, fn);
300
305
  for (let i = 0; i < rules.length; i++) {
301
- const count = countGetCalls(rules[i].rule.condition, fnMap);
302
- if (count >= THRESHOLDS.GET_COUNT_ERROR) {
306
+ const count = countDocumentAccessCalls(rules[i].rule.condition, fnMap);
307
+ // Error only ABOVE the limit: production allows exactly 10 and fails
308
+ // the 11th, so a rule at exactly 10 is legal (still worth the WARN).
309
+ if (count > THRESHOLDS.GET_COUNT_ERROR) {
303
310
  warnings.push({
304
311
  rule: 'GET_COUNT',
305
312
  severity: 'error',
306
- message: `Rule #${i} may invoke ${count} get()/exists() calls. Limit is ${THRESHOLDS.GET_COUNT_ERROR}.`,
313
+ message: `Rule #${i} may invoke ${count} get()/exists()/getAfter()/existsAfter() calls. Limit is ${THRESHOLDS.GET_COUNT_ERROR}.`,
307
314
  location: { ruleIndex: i },
308
315
  fix: 'Cache get() results via a config() wrapper function. Same-path calls are cached by Firestore.',
309
316
  });
@@ -312,7 +319,7 @@ function checkGetCount(rules, allFunctions, warnings) {
312
319
  warnings.push({
313
320
  rule: 'GET_COUNT',
314
321
  severity: 'warning',
315
- message: `Rule #${i} invokes ${count} get()/exists() calls. Limit is ${THRESHOLDS.GET_COUNT_ERROR}.`,
322
+ message: `Rule #${i} invokes ${count} get()/exists()/getAfter()/existsAfter() calls. Limit is ${THRESHOLDS.GET_COUNT_ERROR}.`,
316
323
  location: { ruleIndex: i },
317
324
  });
318
325
  }
@@ -714,8 +721,15 @@ export function lintFirestoreRules(source, options = {}) {
714
721
  checkGetCount(allRules, allFunctions, warnings);
715
722
  // Rule 8: Get duplication (same get()-containing function called multiple times)
716
723
  checkGetDuplication(allRules, allFunctions, warnings);
717
- // Rule 9: Hallucinations — JS-style code that parses but fails at runtime
718
- warnings.push(...checkHallucinations(ast, { allowDebug: options.allowDebug || Boolean(options.testCases && options.testCases.length > 0) }));
724
+ // Rule 9: Hallucinations, JS-style code that parses but fails at runtime.
725
+ // `allowDebug` is an EXPLICIT caller opt-in only. It used to be implied by
726
+ // a non-empty `testCases` array, which silently disabled the debug()
727
+ // rejection in any lint run that also carried a test suite, exactly the
728
+ // authoring path that feeds the write gate. Production rejects debug() at
729
+ // compile time (`Function not found error: Name: [debug]`), so the default
730
+ // must reject; a caller linting a ruleset that will never deploy can still
731
+ // pass `allowDebug: true`.
732
+ warnings.push(...checkHallucinations(ast, { allowDebug: options.allowDebug }));
719
733
  // Rule 9.5: Always-true predicates and recursive-wildcard open rules.
720
734
  // Severity: error so deployRules refuses to swap. The agent's #1
721
735
  // failure mode in the playground was escaping denials with `if true`.
@@ -760,7 +774,7 @@ export function lintFirestoreRules(source, options = {}) {
760
774
  let maxExprs = 0;
761
775
  let maxGets = 0;
762
776
  for (const r of allRules) {
763
- const gets = countGetCalls(r.rule.condition, fnMap);
777
+ const gets = countDocumentAccessCalls(r.rule.condition, fnMap);
764
778
  if (gets > maxGets)
765
779
  maxGets = gets;
766
780
  }
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../src/rules/linter/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../src/rules/linter/linter.ts"],"names":[],"mappings":"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"}
@@ -59,8 +59,11 @@ RtdbExpr {
59
59
  | null
60
60
 
61
61
  number
62
- = digit+ "." digit+ -- float
63
- | digit+ -- int
62
+ = digit+ "." digit+ exponent? -- float
63
+ | digit+ exponent -- exp
64
+ | digit+ -- int
65
+
66
+ exponent = ("e" | "E") ("+" | "-")? digit+
64
67
 
65
68
  string
66
69
  = "\"" doubleStringChar* "\"" -- double
@@ -1,2 +1,2 @@
1
- export declare const RTDB_EXPR_OHM_SOURCE = "RtdbExpr {\n Expr = Ternary\n\n Ternary\n = Logical \"?\" Ternary \":\" Ternary -- ternary\n | Logical\n\n Logical\n = Logical \"&&\" Comparison -- and\n | Logical \"||\" Comparison -- or\n | Comparison\n\n Comparison\n = Comparison \"===\" Additive -- strictEq\n | Comparison \"!==\" Additive -- strictNeq\n | Comparison \">=\" Additive -- gte\n | Comparison \"<=\" Additive -- lte\n | Comparison \">\" Additive -- gt\n | Comparison \"<\" Additive -- lt\n | Comparison \"==\" Additive -- looseEq\n | Comparison \"!=\" Additive -- looseNeq\n | Additive\n\n Additive\n = Additive \"+\" Multiplicative -- add\n | Additive \"-\" Multiplicative -- sub\n | Multiplicative\n\n Multiplicative\n = Multiplicative \"*\" UnaryExpr -- mul\n | Multiplicative \"/\" UnaryExpr -- div\n | Multiplicative \"%\" UnaryExpr -- mod\n | UnaryExpr\n\n UnaryExpr\n = \"!\" UnaryExpr -- not\n | \"-\" UnaryExpr -- neg\n | CallExpr\n\n CallExpr\n = CallExpr \".\" ident \"(\" ListOf<Expr, \",\"> \")\" -- methodCall\n | CallExpr \".\" ident -- memberAccess\n | CallExpr \"[\" Expr \"]\" -- indexAccess\n | Primary\n\n Primary\n = \"(\" Expr \")\" -- paren\n | Array\n | literal\n | ident\n\n Array = \"[\" ListOf<Expr, \",\"> \"]\"\n\n literal\n = number\n | string\n | regex\n | bool\n | null\n\n number\n = digit+ \".\" digit+ -- float\n | digit+ -- int\n\n string\n = \"\\\"\" doubleStringChar* \"\\\"\" -- double\n | \"'\" singleStringChar* \"'\" -- single\n\n doubleStringChar\n = \"\\\\\" any -- escape\n | ~\"\\\"\" any -- char\n\n singleStringChar\n = \"\\\\\" any -- escape\n | ~\"'\" any -- char\n\n regex = \"/\" regexBody \"/\" regexFlags\n\n regexBody = regexChar+\n\n regexChar\n = \"\\\\\" any -- escape\n | ~(\"/\" | \"\\n\") any -- char\n\n regexFlags = alnum*\n\n bool\n = \"true\" ~identChar -- true\n | \"false\" ~identChar -- false\n\n null = \"null\" ~identChar\n\n ident = \"$\"? identStart identChar*\n\n identStart = letter | \"_\"\n\n identChar = alnum | \"_\" | \"$\"\n}\n";
1
+ export declare const RTDB_EXPR_OHM_SOURCE = "RtdbExpr {\n Expr = Ternary\n\n Ternary\n = Logical \"?\" Ternary \":\" Ternary -- ternary\n | Logical\n\n Logical\n = Logical \"&&\" Comparison -- and\n | Logical \"||\" Comparison -- or\n | Comparison\n\n Comparison\n = Comparison \"===\" Additive -- strictEq\n | Comparison \"!==\" Additive -- strictNeq\n | Comparison \">=\" Additive -- gte\n | Comparison \"<=\" Additive -- lte\n | Comparison \">\" Additive -- gt\n | Comparison \"<\" Additive -- lt\n | Comparison \"==\" Additive -- looseEq\n | Comparison \"!=\" Additive -- looseNeq\n | Additive\n\n Additive\n = Additive \"+\" Multiplicative -- add\n | Additive \"-\" Multiplicative -- sub\n | Multiplicative\n\n Multiplicative\n = Multiplicative \"*\" UnaryExpr -- mul\n | Multiplicative \"/\" UnaryExpr -- div\n | Multiplicative \"%\" UnaryExpr -- mod\n | UnaryExpr\n\n UnaryExpr\n = \"!\" UnaryExpr -- not\n | \"-\" UnaryExpr -- neg\n | CallExpr\n\n CallExpr\n = CallExpr \".\" ident \"(\" ListOf<Expr, \",\"> \")\" -- methodCall\n | CallExpr \".\" ident -- memberAccess\n | CallExpr \"[\" Expr \"]\" -- indexAccess\n | Primary\n\n Primary\n = \"(\" Expr \")\" -- paren\n | Array\n | literal\n | ident\n\n Array = \"[\" ListOf<Expr, \",\"> \"]\"\n\n literal\n = number\n | string\n | regex\n | bool\n | null\n\n number\n = digit+ \".\" digit+ exponent? -- float\n | digit+ exponent -- exp\n | digit+ -- int\n\n exponent = (\"e\" | \"E\") (\"+\" | \"-\")? digit+\n\n string\n = \"\\\"\" doubleStringChar* \"\\\"\" -- double\n | \"'\" singleStringChar* \"'\" -- single\n\n doubleStringChar\n = \"\\\\\" any -- escape\n | ~\"\\\"\" any -- char\n\n singleStringChar\n = \"\\\\\" any -- escape\n | ~\"'\" any -- char\n\n regex = \"/\" regexBody \"/\" regexFlags\n\n regexBody = regexChar+\n\n regexChar\n = \"\\\\\" any -- escape\n | ~(\"/\" | \"\\n\") any -- char\n\n regexFlags = alnum*\n\n bool\n = \"true\" ~identChar -- true\n | \"false\" ~identChar -- false\n\n null = \"null\" ~identChar\n\n ident = \"$\"? identStart identChar*\n\n identStart = letter | \"_\"\n\n identChar = alnum | \"_\" | \"$\"\n}\n";
2
2
  //# sourceMappingURL=RtdbExpr.ohm.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RtdbExpr.ohm.generated.d.ts","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/RtdbExpr.ohm.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,otEAkGhC,CAAC"}
1
+ {"version":3,"file":"RtdbExpr.ohm.generated.d.ts","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/RtdbExpr.ohm.generated.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,00EAqGhC,CAAC"}
@@ -62,8 +62,11 @@ export const RTDB_EXPR_OHM_SOURCE = `RtdbExpr {
62
62
  | null
63
63
 
64
64
  number
65
- = digit+ "." digit+ -- float
66
- | digit+ -- int
65
+ = digit+ "." digit+ exponent? -- float
66
+ | digit+ exponent -- exp
67
+ | digit+ -- int
68
+
69
+ exponent = ("e" | "E") ("+" | "-")? digit+
67
70
 
68
71
  string
69
72
  = "\\"" doubleStringChar* "\\"" -- double
@@ -1 +1 @@
1
- {"version":3,"file":"RtdbExpr.ohm.generated.js","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/RtdbExpr.ohm.generated.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,4CAA4C;AAC5C,uBAAuB;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGnC,CAAC"}
1
+ {"version":3,"file":"RtdbExpr.ohm.generated.js","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/RtdbExpr.ohm.generated.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,4CAA4C;AAC5C,uBAAuB;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/simulator.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAsBD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAY,EAAE,IAAI,CAAC,EAAE,OAAO;IAM9D,GAAG,IAAI,OAAO;IAId,MAAM,IAAI,OAAO;IAIjB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO;IAc/C,QAAQ,IAAI,OAAO;IAInB,QAAQ,IAAI,OAAO;IAInB,SAAS,IAAI,OAAO;IAIpB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAsBjC,MAAM,IAAI,YAAY,GAAG,IAAI;IAU7B,WAAW,IAAI,IAAI;CAGpB;AAgND,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAO7E"}
1
+ {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/simulator.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAgDD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAY,EAAE,IAAI,CAAC,EAAE,OAAO;IAM9D,GAAG,IAAI,OAAO;IAId,MAAM,IAAI,OAAO;IAIjB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO;IAc/C,QAAQ,IAAI,OAAO;IAInB,QAAQ,IAAI,OAAO;IAInB,SAAS,IAAI,OAAO;IAIpB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAoBjC,MAAM,IAAI,YAAY,GAAG,IAAI;IAW7B,WAAW,IAAI,IAAI;CAGpB;AAiND,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAO7E"}
@@ -20,6 +20,51 @@ function safeMemberRead(recv, key) {
20
20
  return null;
21
21
  return recv[key] ?? null;
22
22
  }
23
+ /** Process standard escape sequences in single-quoted string literals. */
24
+ function processStringEscapes(raw) {
25
+ let out = '';
26
+ for (let i = 0; i < raw.length; i++) {
27
+ const c = raw[i];
28
+ if (c !== '\\' || i === raw.length - 1) {
29
+ out += c;
30
+ continue;
31
+ }
32
+ const next = raw[++i];
33
+ switch (next) {
34
+ case '\\':
35
+ out += '\\';
36
+ break;
37
+ case '\'':
38
+ out += '\'';
39
+ break;
40
+ case '"':
41
+ out += '"';
42
+ break;
43
+ case 'n':
44
+ out += '\n';
45
+ break;
46
+ case 'r':
47
+ out += '\r';
48
+ break;
49
+ case 't':
50
+ out += '\t';
51
+ break;
52
+ case 'b':
53
+ out += '\b';
54
+ break;
55
+ case 'f':
56
+ out += '\f';
57
+ break;
58
+ case '/':
59
+ out += '/';
60
+ break;
61
+ default:
62
+ out += '\\' + next;
63
+ break;
64
+ }
65
+ }
66
+ return out;
67
+ }
23
68
  export class DataSnapshot {
24
69
  _value;
25
70
  _path;
@@ -60,21 +105,21 @@ export class DataSnapshot {
60
105
  }
61
106
  child(path) {
62
107
  const parts = path.split('/').filter(p => p.length > 0);
108
+ if (parts.length === 0)
109
+ return this;
63
110
  let current = this._value;
64
- let currentPath = this._path;
65
111
  for (const part of parts) {
66
- if (current === null || current === undefined || typeof current !== 'object') {
112
+ if (current !== null && current !== undefined && typeof current === 'object') {
113
+ current = Object.hasOwn(current, part)
114
+ ? (current[part] ?? null)
115
+ : null;
116
+ }
117
+ else {
67
118
  current = null;
68
- currentPath = `${currentPath}/${part}`.replace(/\/+/g, '/');
69
- break;
70
119
  }
71
- // Own-property access only: a `__proto__`/`constructor` child must
72
- // not resolve to the JS prototype chain.
73
- current = Object.hasOwn(current, part)
74
- ? (current[part] ?? null)
75
- : null;
76
- currentPath = `${currentPath === '/' ? '' : currentPath}/${part}`;
77
120
  }
121
+ const prefix = this._path === '/' ? '' : this._path;
122
+ const currentPath = `${prefix}/${parts.join('/')}`;
78
123
  return new DataSnapshot(current, currentPath, this._root);
79
124
  }
80
125
  parent() {
@@ -82,10 +127,10 @@ export class DataSnapshot {
82
127
  return null;
83
128
  const parts = this._path.split('/').filter(p => p.length > 0);
84
129
  parts.pop();
85
- const parentPath = '/' + parts.join('/');
130
+ if (parts.length === 0) {
131
+ return new DataSnapshot(this._root, '/');
132
+ }
86
133
  const rootSnap = new DataSnapshot(this._root, '/');
87
- if (parentPath === '/')
88
- return rootSnap;
89
134
  return rootSnap.child(parts.join('/'));
90
135
  }
91
136
  getPriority() {
@@ -236,14 +281,15 @@ function getEvalSemantics() {
236
281
  return elems.asIteration().children.map((e) => e.eval());
237
282
  },
238
283
  literal(node) { return node.eval(); },
239
- number_float(_int, _dot, _frac) { return parseFloat(this.sourceString); },
284
+ number_float(_int, _dot, _frac, _exp) { return parseFloat(this.sourceString); },
285
+ number_exp(_digits, _exp) { return parseFloat(this.sourceString); },
240
286
  number_int(_digits) { return parseInt(this.sourceString, 10); },
241
287
  number(node) { return node.eval(); },
242
288
  string_double(_open, _chars, _close) {
243
289
  return JSON.parse(this.sourceString);
244
290
  },
245
291
  string_single(_open, chars, _close) {
246
- return chars.children.map((c) => c.sourceString).join('');
292
+ return processStringEscapes(chars.sourceString);
247
293
  },
248
294
  string(node) { return node.eval(); },
249
295
  regex(_slash1, body, _slash2, flags) {
@@ -1 +1 @@
1
- {"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/simulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../../src/rules/rtdb/grammar/simulator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAOjC;;;yEAGyE;AACzE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAE7E;0EAC0E;AAC1E,SAAS,cAAc,CAAC,IAAa,EAAE,GAAW;IAChD,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,sEAAsE;QACtE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,6DAA6D;IAC7D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAc,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAQ,IAAgC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,0EAA0E;AAC1E,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,GAAG,IAAI,CAAC,CAAC;YACT,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,IAAI;gBAAE,GAAG,IAAI,IAAI,CAAC;gBAAC,MAAM;YAC9B,KAAK,IAAI;gBAAE,GAAG,IAAI,IAAI,CAAC;gBAAC,MAAM;YAC9B,KAAK,GAAG;gBAAG,GAAG,IAAI,GAAG,CAAC;gBAAE,MAAM;YAC9B,KAAK,GAAG;gBAAG,GAAG,IAAI,IAAI,CAAC;gBAAC,MAAM;YAC9B,KAAK,GAAG;gBAAG,GAAG,IAAI,IAAI,CAAC;gBAAC,MAAM;YAC9B,KAAK,GAAG;gBAAG,GAAG,IAAI,IAAI,CAAC;gBAAC,MAAM;YAC9B,KAAK,GAAG;gBAAG,GAAG,IAAI,IAAI,CAAC;gBAAC,MAAM;YAC9B,KAAK,GAAG;gBAAG,GAAG,IAAI,IAAI,CAAC;gBAAC,MAAM;YAC9B,KAAK,GAAG;gBAAG,GAAG,IAAI,GAAG,CAAC;gBAAE,MAAM;YAC9B;gBAAW,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC;gBAAC,MAAM;QACvC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAWD,MAAM,OAAO,YAAY;IACf,MAAM,CAAU;IAChB,KAAK,CAAS;IACd,KAAK,CAAU;IAEvB,YAAY,KAAc,EAAE,OAAe,GAAG,EAAE,IAAc;QAC5D,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IAC3D,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,WAAW,CAAC,IAAyB;QACnC,iEAAiE;QACjE,qEAAqE;QACrE,sBAAsB;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CACL,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YAC/B,IAAI,CAAC,MAAM,KAAK,IAAI;YACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;IACzC,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;IACzC,CAAC;IAED,SAAS;QACP,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpC,IAAI,OAAO,GAAY,IAAI,CAAC,MAAM,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC7E,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAiB,EAAE,IAAI,CAAC;oBAC9C,CAAC,CAAC,CAAE,OAAmC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;oBACtD,CAAC,CAAC,IAAI,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACpD,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,UAAU;IACM;IAApB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,OAAO,CAAC,OAAwB;QAC9B,MAAM,CAAC,GAAG,OAAO,YAAY,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;wCAKoC;IACpC,OAAO,CAAC,IAAqB,EAAE,EAAU;QACvC,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;YACvE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAED,IAAI,QAAQ,GAAgB;IAC1B,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;IAC5B,OAAO,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;IAC/B,IAAI,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;IAC5B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;IACf,oBAAoB,EAAE,EAAE;CACzB,CAAC;AAEF,IAAI,aAAoC,CAAC;AAEzC,SAAS,gBAAgB;IACvB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,MAAM,SAAS,GAAG,6BAA6B,EAAE,CAAC;IAClD,SAAS,CAAC,YAAY,CAAU,MAAM,EAAE;QACtC,IAAI,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3C,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;YACrC,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAE,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAE,GAAW,CAAC,IAAI,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE9C,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,IAAK,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvF,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,IAAK,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE9C,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,KAAM,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChG,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,KAAM,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjG,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,IAAK,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1F,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,IAAK,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1F,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,GAAI,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxF,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,GAAI,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxF,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,IAAK,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9F,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,IAAK,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/F,UAAU,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEjD,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAY,GAAK,KAAa,CAAC,IAAI,EAAa,CAAC,CAAC,CAAC;QAC7G,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAY,GAAK,KAAa,CAAC,IAAI,EAAa,CAAC,CAAC,CAAC;QAC7G,QAAQ,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/C,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAY,GAAK,KAAa,CAAC,IAAI,EAAa,CAAC,CAAC,CAAC;QACnH,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAY,GAAK,KAAa,CAAC,IAAI,EAAa,CAAC,CAAC,CAAC;QACnH,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAY,GAAK,KAAa,CAAC,IAAI,EAAa,CAAC,CAAC,CAAC;QACnH,cAAc,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAErD,aAAa,CAAC,GAAG,EAAE,IAAI,IAAI,OAAO,CAAE,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,aAAa,CAAC,GAAG,EAAE,IAAI,IAAI,OAAO,CAAG,IAAY,CAAC,IAAI,EAAa,CAAC,CAAC,CAAC;QACtE,SAAS,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEhD,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;YACjE,MAAM,IAAI,GAAI,QAAgB,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC;YACvC,MAAM,SAAS,GAAI,IAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAE,CAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAE1F,IAAI,IAAI,YAAY,YAAY,EAAE,CAAC;gBACjC,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC9B,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpC,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,KAAK,aAAa,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,SAAS,CAAC,CAAC,CAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAC5G,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxC,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxC,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC1C,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpC,KAAK,aAAa,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC9C,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjC,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAoB,CAAC,CAAC;oBACpE,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3D,KAAK,YAAY,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/D,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3D,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1F,KAAK,aAAa,CAAC,CAAC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;oBAC7C,KAAK,aAAa,CAAC,CAAC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;oBAC7C,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,oEAAoE;YACpE,yEAAyE;YACzE,oEAAoE;YACpE,iEAAiE;YACjE,mDAAmD;YACnD,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,wBAAwB,CAAC,CAAC;QACrE,CAAC;QAED,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM;YAC1C,MAAM,IAAI,GAAI,QAAgB,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACrD,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;YACjD,MAAM,IAAI,GAAI,QAAgB,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,GAAG,GAAI,KAAa,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACrD,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,QAAQ,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/C,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE9C,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM;YACxB,OAAQ,KAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAE,CAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE9C,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/E,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnE,UAAU,CAAC,OAAO,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE7C,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QACD,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM;YAChC,OAAO,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE7C,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK;YACjC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;QAED,SAAS,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;QAChC,UAAU,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;QAE3B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;YAC/B,IAAI,IAAI,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAC1C,OAAO,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC;gBAClC,KAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC;gBAClC,KAAK,SAAS,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,CAAC;gBACxC,KAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC;gBAClC,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC;gBAChC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;YAC5B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,aAAa,GAAG,SAAS,CAAC;IAC1B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAE,GAAgB;IAClE,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,iCAAiC,CAAC,CAAC;IACtE,CAAC;IACD,QAAQ,GAAG,GAAG,CAAC;IACf,OAAQ,gBAAgB,EAAE,CAAC,KAAK,CAAS,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/rules/rtdb/simulation/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAgPhD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc;CAwL/D"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/rules/rtdb/simulation/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAsVhD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc;CAyL/D"}
@@ -25,57 +25,118 @@ function snapshotChildKeys(snap) {
25
25
  * the first unsupported node, else `null` when every applicable `.validate`
26
26
  * passes.
27
27
  */
28
- function findFailingValidate(node, data, newData, bindings, buildContext, pathToWrite) {
28
+ function hasValidateRule(n) {
29
+ if (n.validate)
30
+ return true;
31
+ return n.children.some(hasValidateRule);
32
+ }
33
+ function shouldValidateSiblingSubtree(currentSegments, hasLocalDeletion, allWritePaths) {
34
+ return (currentSegments.length > 0 ||
35
+ hasLocalDeletion ||
36
+ allWritePaths.some((wp) => wp.length === 1));
37
+ }
38
+ function findFailingValidate(node, data, newData, bindings, buildContext, pathToWrite, updates) {
29
39
  let firstUnsupported = null;
30
- function walk(node, data, newData, bindings, remainingPath) {
31
- // A null proposed value is a delete — RTDB does not validate deletes.
32
- if (!newData.exists())
33
- return null;
34
- const rule = node.validate;
35
- if (rule) {
36
- if (!rule.parsed.valid) {
37
- if (!firstUnsupported) {
38
- firstUnsupported = { node, rule, bindings, unsupported: true };
40
+ const writePathStrings = new Set();
41
+ if (updates && updates.length > 0) {
42
+ for (const u of updates) {
43
+ writePathStrings.add(u.path.split('/').filter(Boolean).join('/'));
44
+ }
45
+ }
46
+ writePathStrings.add(pathToWrite.filter(Boolean).join('/'));
47
+ const allWritePaths = Array.from(writePathStrings).map((p) => p.split('/').filter(Boolean));
48
+ function walk(node, data, newData, bindings, currentSegments, isUnderModifiedSubtree) {
49
+ if (newData.exists()) {
50
+ const rule = node.validate;
51
+ if (rule) {
52
+ if (!rule.parsed.valid) {
53
+ if (!firstUnsupported) {
54
+ firstUnsupported = { node, rule, bindings, unsupported: true };
55
+ }
56
+ }
57
+ else {
58
+ const result = evaluateRtdbExpression(rule.raw, buildContext(data, newData, bindings));
59
+ if (!result)
60
+ return { node, rule, bindings };
39
61
  }
40
- }
41
- else {
42
- const result = evaluateRtdbExpression(rule.raw, buildContext(data, newData, bindings));
43
- if (!result)
44
- return { node, rule, bindings };
45
62
  }
46
63
  }
64
+ const isAtOrBelowWriteTarget = allWritePaths.some((wp) => wp.length <= currentSegments.length && wp.every((seg, idx) => seg === currentSegments[idx]));
65
+ const hasLocalDeletion = snapshotChildKeys(data).some((k) => !newData.child(k).exists());
47
66
  for (const child of node.children) {
48
67
  const childSegments = child.path.split('/').filter(Boolean);
49
68
  if (childSegments.length === 0)
50
69
  continue;
51
70
  const lastSegment = childSegments[childSegments.length - 1];
52
71
  const isPathVar = lastSegment.startsWith('$');
53
- // Above the write location, validation follows only the operation path.
54
- // Once the write location is reached, it fans out through every child
55
- // present in the proposed value.
56
- if (remainingPath.length > 0) {
57
- if (!isPathVar && remainingPath[0] !== lastSegment)
58
- continue;
59
- return walk(child, data.child(remainingPath[0]), newData.child(remainingPath[0]), isPathVar ? { ...bindings, [lastSegment]: remainingPath[0] } : bindings, remainingPath.slice(1));
60
- }
61
- if (isPathVar) {
62
- // Bind the path variable to each key actually present in the new
63
- // data — a `$var` node validates every child of the written value.
64
- for (const key of snapshotChildKeys(newData)) {
65
- const failure = walk(child, data.child(key), newData.child(key), { ...bindings, [lastSegment]: key }, []);
66
- if (failure)
67
- return failure;
72
+ if (isAtOrBelowWriteTarget || isUnderModifiedSubtree) {
73
+ if (isPathVar) {
74
+ for (const key of snapshotChildKeys(newData)) {
75
+ const failure = walk(child, data.child(key), newData.child(key), { ...bindings, [lastSegment]: key }, [...currentSegments, key], true);
76
+ if (failure)
77
+ return failure;
78
+ }
79
+ }
80
+ else {
81
+ if (newData.child(lastSegment).exists()) {
82
+ const failure = walk(child, data.child(lastSegment), newData.child(lastSegment), bindings, [...currentSegments, lastSegment], true);
83
+ if (failure)
84
+ return failure;
85
+ }
68
86
  }
69
87
  }
70
88
  else {
71
- const failure = walk(child, data.child(lastSegment), newData.child(lastSegment), bindings, []);
72
- if (failure)
73
- return failure;
89
+ // We are at an ancestor of write path(s)
90
+ if (isPathVar) {
91
+ const writeKeys = new Set();
92
+ for (const wp of allWritePaths) {
93
+ if (wp.length > currentSegments.length &&
94
+ currentSegments.every((seg, idx) => seg === wp[idx])) {
95
+ writeKeys.add(wp[currentSegments.length]);
96
+ }
97
+ }
98
+ for (const key of writeKeys) {
99
+ const failure = walk(child, data.child(key), newData.child(key), { ...bindings, [lastSegment]: key }, [...currentSegments, key], false);
100
+ if (failure)
101
+ return failure;
102
+ }
103
+ if (hasValidateRule(child) &&
104
+ shouldValidateSiblingSubtree(currentSegments, hasLocalDeletion, allWritePaths)) {
105
+ for (const key of snapshotChildKeys(newData)) {
106
+ if (writeKeys.has(key))
107
+ continue;
108
+ const failure = walk(child, data.child(key), newData.child(key), { ...bindings, [lastSegment]: key }, [...currentSegments, key], true);
109
+ if (failure)
110
+ return failure;
111
+ }
112
+ }
113
+ }
114
+ else {
115
+ const key = lastSegment;
116
+ const isChildOnWritePath = allWritePaths.some((wp) => wp.length > currentSegments.length &&
117
+ wp[currentSegments.length] === key &&
118
+ currentSegments.every((seg, idx) => seg === wp[idx]));
119
+ if (isChildOnWritePath) {
120
+ const failure = walk(child, data.child(key), newData.child(key), bindings, [...currentSegments, key], false);
121
+ if (failure)
122
+ return failure;
123
+ }
124
+ else {
125
+ // Sibling branch
126
+ if (newData.child(key).exists() &&
127
+ hasValidateRule(child) &&
128
+ shouldValidateSiblingSubtree(currentSegments, hasLocalDeletion, allWritePaths)) {
129
+ const failure = walk(child, data.child(key), newData.child(key), bindings, [...currentSegments, key], true);
130
+ if (failure)
131
+ return failure;
132
+ }
133
+ }
134
+ }
74
135
  }
75
136
  }
76
137
  return null;
77
138
  }
78
- const realFailure = walk(node, data, newData, bindings, pathToWrite);
139
+ const realFailure = walk(node, data, newData, bindings, [], false);
79
140
  return realFailure ?? firstUnsupported;
80
141
  }
81
142
  /**
@@ -240,7 +301,7 @@ export class SimulateHandler {
240
301
  // pass (a single failure denies the write). Read ops have no
241
302
  // validate phase.
242
303
  if (operation === 'write') {
243
- const failure = findFailingValidate(rootNode, rootData, mergedRootData, {}, buildContext, pathSegments);
304
+ const failure = findFailingValidate(rootNode, rootData, mergedRootData, {}, buildContext, pathSegments, updates);
244
305
  if (failure) {
245
306
  return {
246
307
  success: true,