Add `pipe queries`, which lists every Firestore query a project can issue: scope, collection, path pattern, filters with operators and value types, composites, orderBy, limit, cursors, realtime, aggregation, in-loop, plus a confidence and the reasons it is not exact. Receivers are matched by static type and cloud_firestore library URI, never by name. Queries are followed through chains, local variables (flow-insensitive with two cuts), fields, getters and one level of helper methods with arguments bound. An --adapter-config (YAML or JSON) maps declarative query APIs such as a server-side gateway onto the same schema. Inventory only: no rules, findings or baseline changes. Every emitted name is validated against a safe character set so no source text reaches the output.
29 lines
1 KiB
JSON
29 lines
1 KiB
JSON
{
|
|
"adapters": [
|
|
{
|
|
"interface": ["Gateway", "Transaction"],
|
|
"library": "package:firestore_queries/data/gateway.dart",
|
|
"methods": {
|
|
"queryCollection": {"scope": "collection", "path": 0},
|
|
"queryCollectionGroup": {"scope": "collectionGroup", "path": 0}
|
|
},
|
|
"args": {
|
|
"filters": "filters",
|
|
"arrayContains": "filters",
|
|
"inFilter": "filters",
|
|
"ranges": "filters",
|
|
"orderBy": "orderBy",
|
|
"limit": "limit",
|
|
"startAfterId": "cursor"
|
|
},
|
|
"types": {
|
|
"WhereEquals": {"field": 0, "op": "==", "value": 1},
|
|
"WhereIn": {"field": 0, "op": "in", "value": 1},
|
|
"WhereArrayContains": {"field": 0, "op": "array-contains", "value": 1},
|
|
"WhereRange": {"field": 0, "ops": {"gte": ">=", "gt": ">", "lte": "<=", "lt": "<"}},
|
|
"WhereCmp": {"field": 0, "opArg": 1, "opMap": {"lessThan": "<", "greaterThan": ">"}, "value": 2},
|
|
"OrderBy": {"kind": "orderBy", "field": 0, "descending": "descending"}
|
|
}
|
|
}
|
|
]
|
|
}
|