@cesdk/node 1.76.0-nightly.20260519 → 1.76.0-nightly.20260522

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/index.d.ts CHANGED
@@ -899,6 +899,35 @@ export declare interface AssetEnumProperty {
899
899
  options: string[];
900
900
  }
901
901
 
902
+ /**
903
+ * Filter expression — predicate or logical combinator. Combinators nest
904
+ * arbitrarily. The union is mutually exclusive: an object with both
905
+ * `and` and `or`, or with `property` next to a combinator key, is
906
+ * rejected at the type level.
907
+ *
908
+ * Missing-key semantics for `not`: a predicate is `false` on an asset
909
+ * that lacks the targeted field, so a negated `meta.foo === 'x'` matches
910
+ * assets where `meta.foo !== 'x'` **and** assets that lack `meta.foo`
911
+ * entirely.
912
+ * @public
913
+ */
914
+ export declare type AssetFilter = AssetPropertyFilter | {
915
+ and: AssetFilter[];
916
+ or?: never;
917
+ not?: never;
918
+ property?: never;
919
+ } | {
920
+ or: AssetFilter[];
921
+ and?: never;
922
+ not?: never;
923
+ property?: never;
924
+ } | {
925
+ not: AssetFilter;
926
+ and?: never;
927
+ or?: never;
928
+ property?: never;
929
+ };
930
+
902
931
  /**
903
932
  * Asset transform preset payload fixed aspect ratio
904
933
  * @public
@@ -1007,6 +1036,39 @@ export declare interface AssetPayload {
1007
1036
  */
1008
1037
  export declare type AssetProperty = AssetBooleanProperty | AssetColorProperty | AssetEnumProperty | AssetNumberProperty | AssetStringProperty;
1009
1038
 
1039
+ /**
1040
+ * A single property predicate. Exactly one of `contains` (case-insensitive
1041
+ * substring) or `equals` (case-insensitive equality) must be set — the
1042
+ * type forbids passing both or neither. On a string-array property
1043
+ * (`tags`, `groups`), the operator matches if any element matches.
1044
+ *
1045
+ * `meta.<key>` values are flat strings in the engine; if a meta value
1046
+ * was originally serialized as a number or boolean, stringify it the
1047
+ * same way before comparing.
1048
+ * @public
1049
+ */
1050
+ export declare type AssetPropertyFilter = {
1051
+ property: AssetPropertyPath;
1052
+ } & ({
1053
+ contains: string;
1054
+ equals?: never;
1055
+ } | {
1056
+ equals: string;
1057
+ contains?: never;
1058
+ });
1059
+
1060
+ /**
1061
+ * Dot-path against the resolved asset that a property predicate targets:
1062
+ * `label`, `id`, `tags`, `groups`, or `meta.<key>` (one segment — meta
1063
+ * values in the engine are flat strings).
1064
+ *
1065
+ * The template literal accepts `'meta.'` (empty key) because TypeScript's
1066
+ * `${string}` includes the empty string; the engine rejects this at
1067
+ * runtime with an explanatory error.
1068
+ * @public
1069
+ */
1070
+ export declare type AssetPropertyPath = 'label' | 'tags' | 'id' | 'groups' | `meta.${string}`;
1071
+
1010
1072
  /**
1011
1073
  * Defines a request for querying assets
1012
1074
  * @public
@@ -1053,6 +1115,34 @@ export declare interface AssetQueryData {
1053
1115
  * Sort assets that are marked as active first.
1054
1116
  */
1055
1117
  sortActiveFirst?: boolean;
1118
+ /**
1119
+ * Optional structured filter, AND-combined with the result of `query` /
1120
+ * `tags` / `groups` / `excludeGroups`. The top-level array is an implicit
1121
+ * AND of its entries. Each entry is either a property predicate
1122
+ * (`{ property, contains?, equals? }`) or a logical combinator
1123
+ * (`{ and: [...] }`, `{ or: [...] }`, `{ not: ... }`). Combinators nest.
1124
+ *
1125
+ * **When to use `filter` vs `tags` / `groups` / `excludeGroups`:**
1126
+ * The legacy `tags` / `groups` / `excludeGroups` fields remain
1127
+ * supported and are equivalent to filter predicates with `equals` and
1128
+ * implicit AND. Prefer `filter` for anything beyond a plain include/
1129
+ * exclude list — case-insensitive substrings, `meta.<key>` matches,
1130
+ * `or` / `not` combinators — and reach for the legacy fields only
1131
+ * when you want their case-sensitive exact-match semantics.
1132
+ *
1133
+ * Malformed filters reject the returned promise with the engine's
1134
+ * parse-error message (e.g. `"Unknown asset property '…'"`).
1135
+ *
1136
+ * @example
1137
+ * ```ts
1138
+ * filter: [
1139
+ * { property: 'label', contains: 'Roboto' },
1140
+ * { property: 'meta.languages', contains: 'de' },
1141
+ * { not: { property: 'meta.legacy', equals: 'true' } }
1142
+ * ]
1143
+ * ```
1144
+ */
1145
+ filter?: AssetFilter[];
1056
1146
  }
1057
1147
 
1058
1148
  /**
@@ -8120,6 +8210,7 @@ declare interface FindAssetsQuery {
8120
8210
  sortingOrder: SortingOrder;
8121
8211
  sortKey: string;
8122
8212
  sortActiveFirst: boolean;
8213
+ filter: AssetFilter[];
8123
8214
  }
8124
8215
 
8125
8216
  /**