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.
- package/README.md +64 -89
- package/dist/ai/blocked.d.ts +52 -0
- package/dist/ai/blocked.d.ts.map +1 -0
- package/dist/ai/blocked.js +83 -0
- package/dist/ai/blocked.js.map +1 -0
- package/dist/ai/broker/broker.d.ts +50 -0
- package/dist/ai/broker/broker.d.ts.map +1 -1
- package/dist/ai/broker/broker.js +157 -21
- package/dist/ai/broker/broker.js.map +1 -1
- package/dist/ai/broker/gemini-engine.d.ts +56 -0
- package/dist/ai/broker/gemini-engine.d.ts.map +1 -0
- package/dist/ai/broker/gemini-engine.js +235 -0
- package/dist/ai/broker/gemini-engine.js.map +1 -0
- package/dist/ai/broker/index.d.ts +2 -1
- package/dist/ai/broker/index.d.ts.map +1 -1
- package/dist/ai/broker/index.js +2 -1
- package/dist/ai/broker/index.js.map +1 -1
- package/dist/ai/broker/openai-engine.d.ts +10 -1
- package/dist/ai/broker/openai-engine.d.ts.map +1 -1
- package/dist/ai/broker/openai-engine.js +26 -4
- package/dist/ai/broker/openai-engine.js.map +1 -1
- package/dist/ai/broker/synthesizer.d.ts +14 -0
- package/dist/ai/broker/synthesizer.d.ts.map +1 -1
- package/dist/ai/broker/synthesizer.js +31 -0
- package/dist/ai/broker/synthesizer.js.map +1 -1
- package/dist/ai/broker/types.d.ts +29 -0
- package/dist/ai/broker/types.d.ts.map +1 -1
- package/dist/ai/instances.js +1 -1
- package/dist/ai/instances.js.map +1 -1
- package/dist/ai/internal.d.ts +5 -0
- package/dist/ai/internal.d.ts.map +1 -1
- package/dist/ai/internal.js +5 -0
- package/dist/ai/internal.js.map +1 -1
- package/dist/ai/response-helpers.d.ts.map +1 -1
- package/dist/ai/response-helpers.js +6 -24
- package/dist/ai/response-helpers.js.map +1 -1
- package/dist/analytics/index.d.ts +40 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +25 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/app-check/index.d.ts +31 -0
- package/dist/app-check/index.d.ts.map +1 -0
- package/dist/app-check/index.js +20 -0
- package/dist/app-check/index.js.map +1 -0
- package/dist/auth/instances.js +1 -1
- package/dist/auth/instances.js.map +1 -1
- package/dist/database/controls.d.ts +1 -1
- package/dist/database/controls.js +1 -1
- package/dist/database/instances.js +1 -1
- package/dist/database/instances.js.map +1 -1
- package/dist/database/sandbox/backend.d.ts +1 -0
- package/dist/database/sandbox/backend.d.ts.map +1 -1
- package/dist/database/sandbox/backend.js +1 -0
- package/dist/database/sandbox/backend.js.map +1 -1
- package/dist/database/sandbox/rules-eval.d.ts +6 -2
- package/dist/database/sandbox/rules-eval.d.ts.map +1 -1
- package/dist/database/sandbox/rules-eval.js +15 -2
- package/dist/database/sandbox/rules-eval.js.map +1 -1
- package/dist/database/sandbox/write-plane.d.ts +1 -0
- package/dist/database/sandbox/write-plane.d.ts.map +1 -1
- package/dist/database/sandbox/write-plane.js +7 -2
- package/dist/database/sandbox/write-plane.js.map +1 -1
- package/dist/database/sandbox-controls.d.ts +12 -5
- package/dist/database/sandbox-controls.d.ts.map +1 -1
- package/dist/database/sandbox-controls.js +20 -9
- package/dist/database/sandbox-controls.js.map +1 -1
- package/dist/database/sandbox-namespace.d.ts +19 -1
- package/dist/database/sandbox-namespace.d.ts.map +1 -1
- package/dist/database/sandbox-namespace.js +24 -1
- package/dist/database/sandbox-namespace.js.map +1 -1
- package/dist/deferred/entry.d.ts +75 -0
- package/dist/deferred/entry.d.ts.map +1 -0
- package/dist/deferred/entry.js +143 -0
- package/dist/deferred/entry.js.map +1 -0
- package/dist/firestore/instances.js +1 -1
- package/dist/firestore/instances.js.map +1 -1
- package/dist/firestore/lite.d.ts +72 -0
- package/dist/firestore/lite.d.ts.map +1 -0
- package/dist/firestore/lite.js +22 -0
- package/dist/firestore/lite.js.map +1 -0
- package/dist/firestore/persistence.d.ts +2 -2
- package/dist/firestore/persistence.js +1 -1
- package/dist/firestore/sandbox-controls.d.ts +2 -0
- package/dist/firestore/sandbox-controls.d.ts.map +1 -1
- package/dist/firestore/sandbox-controls.js +8 -0
- package/dist/firestore/sandbox-controls.js.map +1 -1
- package/dist/functions/index.d.ts +29 -0
- package/dist/functions/index.d.ts.map +1 -0
- package/dist/functions/index.js +20 -0
- package/dist/functions/index.js.map +1 -0
- package/dist/messaging/client.d.ts +2 -1
- package/dist/messaging/client.d.ts.map +1 -1
- package/dist/messaging/client.js +2 -2
- package/dist/messaging/client.js.map +1 -1
- package/dist/messaging/instance.d.ts +2 -2
- package/dist/messaging/instance.d.ts.map +1 -1
- package/dist/messaging/instance.js +40 -6
- package/dist/messaging/instance.js.map +1 -1
- package/dist/messaging/sw.d.ts +2 -1
- package/dist/messaging/sw.d.ts.map +1 -1
- package/dist/messaging/sw.js +2 -2
- package/dist/messaging/sw.js.map +1 -1
- package/dist/performance/index.d.ts +22 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +19 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/remote-config/index.d.ts +40 -0
- package/dist/remote-config/index.d.ts.map +1 -0
- package/dist/remote-config/index.js +25 -0
- package/dist/remote-config/index.js.map +1 -0
- package/dist/rules/grammar/FirestoreValidator.d.ts.map +1 -1
- package/dist/rules/grammar/FirestoreValidator.js +43 -27
- package/dist/rules/grammar/FirestoreValidator.js.map +1 -1
- package/dist/rules/grammar/document-access-count.d.ts +24 -0
- package/dist/rules/grammar/document-access-count.d.ts.map +1 -0
- package/dist/rules/grammar/document-access-count.js +100 -0
- package/dist/rules/grammar/document-access-count.js.map +1 -0
- package/dist/rules/linter/ast-utils.d.ts +2 -6
- package/dist/rules/linter/ast-utils.d.ts.map +1 -1
- package/dist/rules/linter/ast-utils.js +2 -63
- package/dist/rules/linter/ast-utils.js.map +1 -1
- package/dist/rules/linter/hallucinations.d.ts +8 -0
- package/dist/rules/linter/hallucinations.d.ts.map +1 -1
- package/dist/rules/linter/hallucinations.js +121 -31
- package/dist/rules/linter/hallucinations.js.map +1 -1
- package/dist/rules/linter/linter.d.ts +10 -1
- package/dist/rules/linter/linter.d.ts.map +1 -1
- package/dist/rules/linter/linter.js +23 -9
- package/dist/rules/linter/linter.js.map +1 -1
- package/dist/rules/rtdb/grammar/RtdbExpr.ohm +5 -2
- package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts +1 -1
- package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.d.ts.map +1 -1
- package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js +5 -2
- package/dist/rules/rtdb/grammar/RtdbExpr.ohm.generated.js.map +1 -1
- package/dist/rules/rtdb/grammar/simulator.d.ts.map +1 -1
- package/dist/rules/rtdb/grammar/simulator.js +61 -15
- package/dist/rules/rtdb/grammar/simulator.js.map +1 -1
- package/dist/rules/rtdb/simulation/handler.d.ts.map +1 -1
- package/dist/rules/rtdb/simulation/handler.js +96 -35
- package/dist/rules/rtdb/simulation/handler.js.map +1 -1
- package/dist/rules/simulator/document-lookups.d.ts +4 -0
- package/dist/rules/simulator/document-lookups.d.ts.map +1 -1
- package/dist/rules/simulator/document-lookups.js +42 -3
- package/dist/rules/simulator/document-lookups.js.map +1 -1
- package/dist/rules/simulator/eval-error.d.ts +11 -0
- package/dist/rules/simulator/eval-error.d.ts.map +1 -1
- package/dist/rules/simulator/eval-error.js +14 -0
- package/dist/rules/simulator/eval-error.js.map +1 -1
- package/dist/rules/simulator/evaluation-builtins.d.ts.map +1 -1
- package/dist/rules/simulator/evaluation-builtins.js +33 -8
- package/dist/rules/simulator/evaluation-builtins.js.map +1 -1
- package/dist/rules/simulator/evaluation-context.d.ts +12 -0
- package/dist/rules/simulator/evaluation-context.d.ts.map +1 -1
- package/dist/rules/simulator/evaluator.d.ts +1 -1
- package/dist/rules/simulator/evaluator.d.ts.map +1 -1
- package/dist/rules/simulator/evaluator.js +16 -4
- package/dist/rules/simulator/evaluator.js.map +1 -1
- package/dist/rules/simulator/handler.d.ts.map +1 -1
- package/dist/rules/simulator/handler.js +52 -5
- package/dist/rules/simulator/handler.js.map +1 -1
- package/dist/rules/simulator/lookup-budget.d.ts +37 -0
- package/dist/rules/simulator/lookup-budget.d.ts.map +1 -0
- package/dist/rules/simulator/lookup-budget.js +96 -0
- package/dist/rules/simulator/lookup-budget.js.map +1 -0
- package/dist/rules/stdlib-modules.d.ts +7 -0
- package/dist/rules/stdlib-modules.d.ts.map +1 -1
- package/dist/rules/stdlib-modules.js +11 -11
- package/dist/rules/stdlib-modules.js.map +1 -1
- package/dist/sandbox/admin-firestore/get-firestore.d.ts +6 -0
- package/dist/sandbox/admin-firestore/get-firestore.d.ts.map +1 -1
- package/dist/sandbox/admin-firestore/get-firestore.js +22 -3
- package/dist/sandbox/admin-firestore/get-firestore.js.map +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +1 -1
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/persistence/types.d.ts +1 -1
- package/dist/sandbox/remote.d.ts +2 -2
- package/dist/sandbox/sandbox-context.d.ts +8 -1
- package/dist/sandbox/sandbox-context.d.ts.map +1 -1
- package/dist/sandbox/sandbox-context.js +59 -8
- package/dist/sandbox/sandbox-context.js.map +1 -1
- package/dist/sandbox/types/auth-state.d.ts +1 -0
- package/dist/sandbox/types/auth-state.d.ts.map +1 -1
- package/dist/sandbox/types/events.d.ts +2 -1
- package/dist/sandbox/types/events.d.ts.map +1 -1
- package/dist/sandbox/types/operation.d.ts +1 -0
- package/dist/sandbox/types/operation.d.ts.map +1 -1
- package/dist/storage/enforce.d.ts +20 -1
- package/dist/storage/enforce.d.ts.map +1 -1
- package/dist/storage/enforce.js +47 -14
- package/dist/storage/enforce.js.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/list.js +1 -1
- package/dist/storage/list.js.map +1 -1
- package/dist/storage/persistence.d.ts.map +1 -1
- package/dist/storage/persistence.js +66 -14
- package/dist/storage/persistence.js.map +1 -1
- package/dist/storage/sandbox/rules-evaluation-error.d.ts +25 -0
- package/dist/storage/sandbox/rules-evaluation-error.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-evaluation-error.js +29 -0
- package/dist/storage/sandbox/rules-evaluation-error.js.map +1 -1
- package/dist/storage/sandbox/rules-evaluator.d.ts +10 -5
- package/dist/storage/sandbox/rules-evaluator.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-evaluator.js +105 -33
- package/dist/storage/sandbox/rules-evaluator.js.map +1 -1
- package/dist/storage/sandbox/rules-methods.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-methods.js +17 -7
- package/dist/storage/sandbox/rules-methods.js.map +1 -1
- package/dist/storage/service.d.ts +23 -2
- package/dist/storage/service.d.ts.map +1 -1
- package/dist/storage/service.js +37 -26
- package/dist/storage/service.js.map +1 -1
- package/package.json +42 -2
- package/src/ai/blocked.ts +97 -0
- package/src/ai/broker/broker.ts +153 -22
- package/src/ai/broker/gemini-engine.ts +311 -0
- package/src/ai/broker/index.ts +2 -0
- package/src/ai/broker/openai-engine.ts +31 -3
- package/src/ai/broker/synthesizer.ts +34 -0
- package/src/ai/broker/types.ts +27 -1
- package/src/ai/instances.ts +1 -1
- package/src/ai/internal.ts +5 -0
- package/src/ai/response-helpers.ts +6 -25
- package/src/analytics/index.ts +53 -0
- package/src/app/dispatch.test.ts +3 -1
- package/src/app-check/index.ts +41 -0
- package/src/auth/instances.ts +1 -1
- package/src/database/controls.ts +1 -1
- package/src/database/instances.ts +1 -1
- package/src/database/sandbox/backend.ts +1 -0
- package/src/database/sandbox/rules-eval.ts +18 -2
- package/src/database/sandbox/write-plane.ts +8 -2
- package/src/database/sandbox-controls.ts +29 -9
- package/src/database/sandbox-namespace.ts +28 -1
- package/src/deferred/entry.ts +167 -0
- package/src/firestore/instances.ts +1 -1
- package/src/firestore/lite.ts +91 -0
- package/src/firestore/persistence.ts +2 -2
- package/src/firestore/sandbox-controls.ts +10 -0
- package/src/functions/index.ts +38 -0
- package/src/messaging/client.ts +3 -2
- package/src/messaging/instance.ts +44 -7
- package/src/messaging/sw.ts +3 -2
- package/src/performance/index.ts +31 -0
- package/src/remote-config/index.ts +53 -0
- package/src/rules/grammar/FirestoreValidator.ts +44 -28
- package/src/rules/grammar/document-access-count.ts +75 -0
- package/src/rules/linter/ast-utils.ts +2 -36
- package/src/rules/linter/hallucinations.ts +123 -25
- package/src/rules/linter/linter.ts +32 -10
- package/src/rules/rtdb/grammar/RtdbExpr.ohm +5 -2
- package/src/rules/rtdb/grammar/RtdbExpr.ohm.generated.ts +5 -2
- package/src/rules/rtdb/grammar/simulator.ts +41 -15
- package/src/rules/rtdb/simulation/handler.ts +149 -46
- package/src/rules/simulator/document-lookups.ts +46 -3
- package/src/rules/simulator/eval-error.ts +16 -0
- package/src/rules/simulator/evaluation-builtins.ts +35 -8
- package/src/rules/simulator/evaluation-context.ts +12 -0
- package/src/rules/simulator/evaluator.ts +14 -3
- package/src/rules/simulator/handler.ts +68 -4
- package/src/rules/simulator/lookup-budget.ts +101 -0
- package/src/rules/stdlib-modules.ts +19 -11
- package/src/sandbox/admin-firestore/get-firestore.ts +19 -3
- package/src/sandbox/index.ts +5 -1
- package/src/sandbox/persistence/types.ts +1 -1
- package/src/sandbox/remote.ts +2 -2
- package/src/sandbox/sandbox-context.ts +69 -9
- package/src/sandbox/types/auth-state.ts +1 -1
- package/src/sandbox/types/events.ts +2 -1
- package/src/sandbox/types/operation.ts +1 -1
- package/src/storage/enforce.ts +53 -14
- package/src/storage/index.ts +1 -1
- package/src/storage/list.ts +1 -1
- package/src/storage/persistence.ts +74 -16
- package/src/storage/sandbox/rules-evaluation-error.ts +32 -0
- package/src/storage/sandbox/rules-evaluator.ts +109 -32
- package/src/storage/sandbox/rules-methods.ts +21 -7
- package/src/storage/service.ts +93 -27
- 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;
|
|
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,
|
|
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
|
-
|
|
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 =
|
|
302
|
-
|
|
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
|
|
718
|
-
|
|
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 =
|
|
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+ --
|
|
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,
|
|
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+ --
|
|
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
|
|
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;
|
|
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
|
|
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
|
-
|
|
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.
|
|
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":"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"}
|
|
@@ -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;
|
|
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
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
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,
|
|
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,
|