Advanced query - How to check, if there is any property with value `xy` in block?

- b1
  prop1:: [[hello]]
  prop2:: [[world]] [[page]]
- b2
- b3 [[page]] - don't include

Is there a way to query all blocks that have at least one property with value [[page]]?
Expected result: → b1

There is has-property, but it is for property keys.
What I need is: (has property-value ?b ?prop).

Or in other words: Can we use clojure.core functions like vals to get all values from the properties as set or similar? I have seen someone has used clojure.string/includes? in the :where clause, but core functions triggered error in console for me:

"Unknown predicate 'clojure.core/keys in …

Being Clojure newbie, have I overseen somethin obvious? :slight_smile:

Btw: goal was to filter all link references to those ones that have the link as property value.
Haven’t found a concise solution with :block/properties, and now use regex query as workaround:

#+BEGIN_QUERY
{:title "All links to input page `?i` located in any properties' values of a block"
:query [:find (pull ?b [*])
:in $ ?i
:where
[?b :block/content ?c]
[(str "(?im)^[a-zA-Z0-9-]+::[ \\t]+.*(#" ?i "\\b|#?\\[\\[" ?i "\\]\\])") ?matcher]
[(re-pattern ?matcher) ?regex]
[(re-find ?regex ?c)]]
:inputs ["type your page name here"]
:collapsed? false
}
#+END_QUERY