@dxos/echo-query 0.10.0 → 0.11.0
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/dist/lib/index.mjs +641 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/sandbox.mjs +137 -0
- package/dist/lib/sandbox.mjs.map +1 -0
- package/dist/query-lite/index.d.ts +2315 -1764
- package/dist/query-lite/index.d.ts.map +1 -1
- package/dist/query-lite/index.js +131 -69
- package/dist/query-lite/index.js.map +1 -1
- package/dist/types/src/index.d.ts +0 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/query-lite/query-lite.d.ts.map +1 -1
- package/dist/types/src/sandbox/query-sandbox.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -11
- package/src/index.ts +4 -1
- package/src/query-lite/query-lite.ts +148 -77
- package/src/sandbox/query-sandbox.ts +2 -2
- package/dist/lib/neutral/index.mjs +0 -918
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ast: QueryAST.Order","Order2: typeof Order$","typeURI: string | undefined","filters: Filter$.Any[]","ast: QueryAST.Filter","Filter1: typeof Filter$","idFilter: readonly EntityId[] | undefined","arg","ast: QueryAST.Query","Query1: typeof Query$","RefTypeId: unique symbol","parts: string[]","args: string[]"],"sources":["../../../../../common/invariant/dist/lib/browser/index.mjs","../../src/query-lite/query-lite.ts"],"sourcesContent":["// src/invariant.ts\nvar invariant = (condition, message, meta) => {\n if (condition) {\n return;\n }\n if (message?.startsWith(\"BUG\")) {\n debugger;\n }\n let errorMessage = \"invariant violation\";\n if (message) {\n errorMessage += `: ${message}`;\n }\n if (meta?.A) {\n errorMessage += ` [${meta.A[0]}]`;\n }\n if (meta?.F) {\n errorMessage += ` at ${getRelativeFilename(meta.F)}:${meta.L}`;\n }\n const error = new InvariantViolation(errorMessage);\n Error.captureStackTrace(error, invariant);\n throw error;\n};\nvar InvariantViolation = class extends Error {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n};\nvar getRelativeFilename = (filename) => {\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n return filename;\n};\nvar failedInvariant = (message1, message2, meta) => {\n let errorMessage = \"invariant violation\";\n const message = [\n message1,\n message2\n ].filter((str) => typeof str === \"string\").join(\" \");\n if (message) {\n errorMessage += `: ${message}`;\n }\n if (meta?.A) {\n errorMessage += ` [${meta.A[0]}]`;\n }\n if (meta?.F) {\n errorMessage += ` at ${getRelativeFilename(meta.F)}:${meta.L}`;\n }\n throw new InvariantViolation(errorMessage);\n};\n\n// src/assert.ts\nvar assertArgument = (condition, argumentName, message) => {\n if (!condition) {\n const error = new TypeError(`Invalid argument \\`${argumentName}\\`` + (message ? `: ${message}` : \"\"));\n Error.captureStackTrace(error, assertArgument);\n throw error;\n }\n};\nvar assertState = (condition, message) => {\n if (!condition) {\n const error = new InvalidStateError(message);\n Error.captureStackTrace(error, assertState);\n throw error;\n }\n};\nvar InvalidStateError = class extends Error {\n};\nexport {\n InvalidStateError,\n InvariantViolation,\n assertArgument,\n assertState,\n failedInvariant,\n invariant\n};\n//# sourceMappingURL=index.mjs.map\n","//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\n\nimport type { Ref, Filter as Filter$, Obj as Obj$, Order as Order$, Query as Query$, Type as Type$ } from '@dxos/echo';\nimport type { ForeignKey, QueryAST } from '@dxos/echo-protocol';\nimport { assertArgument } from '@dxos/invariant';\n// `DXN`/`EID` are type-only imports to keep the `query-lite` bundle free of\n// `effect/Schema` (which pulls runtime helpers QuickJS can't parse — e.g. private class fields).\nimport type { DXN, EID, EntityId, URI } from '@dxos/keys';\n\n//\n// Light-weight implementation of query execution.\n//\n\n// TODO(wittjosiah): The `export * as ...` syntax causes tsdown to genereate multiple files which breaks the sandbox.\n\nclass OrderClass implements Order$.Any {\n private static 'variance': Order$.Any['~Order'] = {} as Order$.Any['~Order'];\n\n static 'is'(value: unknown): value is Order$.Any {\n return typeof value === 'object' && value !== null && '~Order' in value;\n }\n\n 'constructor'(public readonly ast: QueryAST.Order) {}\n\n '~Order' = OrderClass.variance;\n}\n\nnamespace Order1 {\n export const natural: Order$.Any = new OrderClass({ kind: 'natural' });\n export const property = <T>(property: keyof T & string, direction: QueryAST.OrderDirection): Order$.Order<T> =>\n new OrderClass({\n kind: 'property',\n property,\n direction,\n });\n export const rank = <T>(direction: QueryAST.OrderDirection = 'desc'): Order$.Order<T> =>\n new OrderClass({\n kind: 'rank',\n direction,\n });\n export const updated = <T>(direction: QueryAST.OrderDirection = 'desc'): Order$.Order<T> =>\n new OrderClass({\n kind: 'timestamp',\n field: 'updatedAt',\n direction,\n });\n export const created = <T>(direction: QueryAST.OrderDirection = 'desc'): Order$.Order<T> =>\n new OrderClass({\n kind: 'timestamp',\n field: 'createdAt',\n direction,\n });\n}\n\nconst Order2: typeof Order$ = Order1;\nexport { Order2 as Order };\n\n// Local filter-match helpers used by FilterClass.toPredicate.\n// Written without a runtime @dxos/echo import so the QuickJS sandbox bundle stays clean.\nconst _filterMatchValueLocal = (filter: QueryAST.Filter, value: unknown): boolean => {\n switch (filter.type) {\n case 'compare': {\n switch (filter.operator) {\n case 'eq':\n return value === filter.value;\n case 'neq':\n return value !== filter.value;\n case 'gt':\n return (value as any) > (filter.value as any);\n case 'gte':\n return (value as any) >= (filter.value as any);\n case 'lt':\n return (value as any) < (filter.value as any);\n case 'lte':\n return (value as any) <= (filter.value as any);\n default:\n return false;\n }\n }\n case 'object': {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n if (filter.props) {\n for (const [key, vf] of Object.entries(filter.props)) {\n if (!_filterMatchValueLocal(vf, (value as any)[key])) {\n return false;\n }\n }\n }\n return true;\n }\n case 'in':\n return filter.values.includes(value);\n case 'range':\n return (value as any) >= filter.from && (value as any) <= filter.to;\n case 'not':\n return !_filterMatchValueLocal(filter.filter, value);\n case 'and':\n return filter.filters.every((f) => _filterMatchValueLocal(f, value));\n case 'or':\n return filter.filters.some((f) => _filterMatchValueLocal(f, value));\n default:\n return false;\n }\n};\n\nconst _filterMatchEntityLocal = (filter: QueryAST.Filter, entity: any): boolean => {\n switch (filter.type) {\n case 'object': {\n if (filter.typename !== null) {\n const typeURI: string | undefined = entity?.['@type'] ?? entity?.system?.type;\n if (!typeURI || typeURI !== filter.typename) {\n return false;\n }\n }\n if (filter.id && filter.id.length > 0 && !filter.id.includes(entity?.id)) {\n return false;\n }\n if (filter.props) {\n for (const [key, vf] of Object.entries(filter.props)) {\n if (key.startsWith('@')) {\n continue;\n }\n if (!_filterMatchValueLocal(vf, entity?.[key])) {\n return false;\n }\n }\n }\n return true;\n }\n case 'not':\n return !_filterMatchEntityLocal(filter.filter, entity);\n case 'and':\n return filter.filters.every((f) => _filterMatchEntityLocal(f, entity));\n case 'or':\n return filter.filters.some((f) => _filterMatchEntityLocal(f, entity));\n default:\n throw new Error(`Filter type '${(filter as any).type}' is not supported in toPredicate.`);\n }\n};\n\nclass FilterClass implements Filter$.Any {\n private static 'variance': Filter$.Any['~Filter'] = {} as Filter$.Any['~Filter'];\n\n static 'is'(value: unknown): value is Filter$.Any {\n return typeof value === 'object' && value !== null && '~Filter' in value;\n }\n\n static 'fromAst'(ast: QueryAST.Filter): Filter$.Any {\n return new FilterClass(ast);\n }\n\n static 'everything'(): FilterClass {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n });\n }\n\n static 'nothing'(): FilterClass {\n return new FilterClass({\n type: 'not',\n filter: {\n type: 'object',\n typename: null,\n props: {},\n },\n });\n }\n\n static 'relation'() {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n });\n }\n\n static 'id'(...ids: EntityId[]): Filter$.Any {\n // assertArgument(\n // ids.every((id) => EntityId.isValid(id)),\n // 'ids',\n // 'ids must be valid',\n // );\n\n if (ids.length === 0) {\n return FilterClass.nothing();\n }\n\n return new FilterClass({\n type: 'object',\n typename: null,\n id: ids,\n props: {},\n });\n }\n\n static 'type'<T extends Type$.AnyEntity>(\n type: T,\n props?: Filter$.Props<Type$.InstanceType<T>>,\n ): Filter$.Filter<Type$.InstanceType<T>>;\n static 'type'(schema: string, props?: Filter$.Props<unknown>): Filter$.Filter<any>;\n static 'type'(schema: Type$.AnyEntity | string, props?: Filter$.Props<unknown>): Filter$.Filter<unknown> {\n if (typeof schema !== 'string') {\n throw new TypeError('expected typename as the first paramter');\n }\n return new FilterClass({\n type: 'object',\n typename: makeTypeDxn(schema),\n ...propsFilterToAst(props ?? {}),\n });\n }\n\n static 'typename'(typename: string): Filter$.Any {\n return new FilterClass({\n type: 'object',\n typename: makeTypeDxn(typename),\n props: {},\n });\n }\n\n static 'typeURI'(uri: URI.URI): Filter$.Any {\n return new FilterClass({\n type: 'object',\n typename: uri,\n props: {},\n });\n }\n\n static 'tag'(tag: string): Filter$.Any {\n return new FilterClass({\n type: 'tag',\n tag,\n });\n }\n\n static 'key'(key: string, options?: Filter$.KeyFilterOptions): Filter$.Any {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n metaKey: key,\n metaVersion: options?.version,\n });\n }\n\n static 'props'<T>(props: Filter$.Props<T>): Filter$.Filter<T> {\n return new FilterClass({\n type: 'object',\n typename: null,\n ...propsFilterToAst(props),\n });\n }\n\n static 'text'(text: string, options?: Filter$.TextSearchOptions): Filter$.Any {\n return new FilterClass({\n type: 'text-search',\n text,\n searchKind: options?.type,\n });\n }\n\n static 'foreignKeys'<S extends Type$.AnyEntity | string>(\n schema: S,\n keys: ForeignKey[],\n ): Filter$.Filter<S extends Type$.AnyEntity ? Type$.InstanceType<S> : unknown> {\n assertArgument(typeof schema === 'string', 'schema');\n assertArgument(!schema.startsWith('dxn:'), 'schema');\n return new FilterClass({\n type: 'object',\n typename: makeTypeDxn(schema),\n props: {},\n foreignKeys: keys,\n });\n }\n\n static 'eq'<T>(value: T): Filter$.Filter<T | undefined> {\n if (!isRef(value) && typeof value === 'object' && value !== null) {\n throw new TypeError('Cannot use object as a value for eq filter');\n }\n\n return new FilterClass({\n type: 'compare',\n operator: 'eq',\n value: isRef(value) ? value.noInline().encode() : value,\n });\n }\n\n static 'neq'<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'neq',\n value,\n });\n }\n\n static 'gt'<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'gt',\n value,\n });\n }\n\n static 'gte'<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'gte',\n value,\n });\n }\n\n static 'lt'<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'lt',\n value,\n });\n }\n\n static 'lte'<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'lte',\n value,\n });\n }\n\n static 'in'<T>(...values: T[]): Filter$.Filter<T> {\n return new FilterClass({\n type: 'in',\n values,\n });\n }\n\n static 'contains'<T>(value: T): Filter$.Filter<readonly T[] | undefined> {\n return new FilterClass({\n type: 'contains',\n value,\n });\n }\n\n static 'between'<T>(from: T, to: T): Filter$.Filter<T> {\n return new FilterClass({\n type: 'range',\n from,\n to,\n });\n }\n\n static 'updated'(range: { after?: Date | number; before?: Date | number }): Filter$.Any {\n return FilterClass._timeRangeFilter('updatedAt', range);\n }\n\n static 'created'(range: { after?: Date | number; before?: Date | number }): Filter$.Any {\n return FilterClass._timeRangeFilter('createdAt', range);\n }\n\n static 'childOf'(parents: unknown | unknown[], options?: { transitive?: boolean }): Filter$.Any {\n const items = Array.isArray(parents) ? parents : [parents];\n const dxns = items.map((item) => {\n if (isEchoUriLike(item)) {\n return item.toString() as EID.EID;\n }\n throw new TypeError('childOf requires EID values in query-lite');\n });\n return new FilterClass({\n type: 'child-of',\n parents: dxns,\n transitive: options?.transitive ?? true,\n });\n }\n\n private static '_timeRangeFilter'(\n field: 'updatedAt' | 'createdAt',\n range: { after?: Date | number; before?: Date | number },\n ): Filter$.Any {\n const toMs = (d: Date | number) => (typeof d === 'number' ? d : d.getTime());\n const filters: Filter$.Any[] = [];\n if (range.after != null) {\n filters.push(new FilterClass({ type: 'timestamp', field, operator: 'gte', value: toMs(range.after) }));\n }\n if (range.before != null) {\n filters.push(new FilterClass({ type: 'timestamp', field, operator: 'lte', value: toMs(range.before) }));\n }\n if (filters.length === 0) {\n return FilterClass.everything();\n }\n return filters.length === 1 ? filters[0] : FilterClass.and(...filters);\n }\n\n static 'not'<F extends Filter$.Any>(filter: F): Filter$.Filter<Filter$.Type<F>> {\n return new FilterClass({\n type: 'not',\n filter: filter.ast,\n });\n }\n\n static 'and'<Filters extends readonly Filter$.Any[]>(\n ...filters: Filters\n ): Filter$.Filter<Filter$.Type<Filters[number]>> {\n return new FilterClass({\n type: 'and',\n filters: filters.map((f) => f.ast),\n });\n }\n\n static 'or'<Filters extends readonly Filter$.Any[]>(\n ...filters: Filters\n ): Filter$.Filter<Filter$.Type<Filters[number]>> {\n return new FilterClass({\n type: 'or',\n filters: filters.map((f) => f.ast),\n });\n }\n\n /** Returns a human-readable string representation of a Filter AST. */\n static 'pretty'(filter: Filter$.Any): string {\n return prettyFilter(filter.ast);\n }\n\n /** Create a predicate from a filter. */\n // Cast required: TypeScript cannot verify a plain overloaded function satisfies a type-predicate\n // overload signature without the cast; Effect's dual() has the same limitation here.\n static 'toPredicate' = ((entityOrFilter: any, filter?: any): any => {\n if (filter === undefined) {\n return (entity: any) => _filterMatchEntityLocal(entityOrFilter.ast, entity);\n }\n return _filterMatchEntityLocal(filter.ast, entityOrFilter);\n }) as typeof Filter$.toPredicate;\n\n private 'constructor'(public readonly ast: QueryAST.Filter) {}\n\n '~Filter' = FilterClass.variance;\n}\n\nexport const Filter1: typeof Filter$ = FilterClass;\nexport { Filter1 as Filter };\n\n/**\n * All property paths inside T that are references.\n */\n// TODO(dmaretskyi): Filter only properties that are references (or optional references, or unions that include references).\ntype RefPropKey<T> = keyof T & string;\n\nconst propsFilterToAst = (predicates: Filter$.Props<any>): Pick<QueryAST.FilterObject, 'id' | 'props'> => {\n let idFilter: readonly EntityId[] | undefined;\n if ('id' in predicates) {\n assertArgument(\n typeof predicates.id === 'string' || Array.isArray(predicates.id),\n 'predicates.id',\n 'invalid id filter',\n );\n idFilter = typeof predicates.id === 'string' ? [predicates.id] : predicates.id;\n }\n\n return {\n id: idFilter,\n props: Object.fromEntries(\n Object.entries(predicates)\n .filter(([prop, _value]) => prop !== 'id')\n .map(([prop, predicate]) => [prop, processPredicate(predicate)]),\n ) as Record<string, QueryAST.Filter>,\n };\n};\n\nconst processPredicate = (predicate: any): QueryAST.Filter => {\n if (FilterClass.is(predicate)) {\n return predicate.ast;\n }\n\n if (Array.isArray(predicate)) {\n throw new Error('Array predicates are not yet supported.');\n }\n\n if (!isRef(predicate) && typeof predicate === 'object' && predicate !== null) {\n const nestedProps = Object.fromEntries(\n Object.entries(predicate).map(([key, value]) => [key, processPredicate(value)]),\n );\n\n return {\n type: 'object',\n typename: null,\n props: nestedProps,\n };\n }\n\n return FilterClass.eq(predicate).ast;\n};\n\nclass QueryClass implements Query$.Any {\n private static 'variance': Query$.Any['~Query'] = {} as Query$.Any['~Query'];\n\n static 'is'(value: unknown): value is Query$.Any {\n return typeof value === 'object' && value !== null && '~Query' in value;\n }\n\n static 'fromAst'(ast: QueryAST.Query): Query$.Any {\n return new QueryClass(ast);\n }\n\n static 'select'<F extends Filter$.Any>(filter: F): Query$.Query<Filter$.Type<F>> {\n return new QueryClass({\n type: 'select',\n filter: filter.ast,\n });\n }\n\n 'select'(filter: Filter$.Any | Filter$.Props<any>): Query$.Any {\n if (FilterClass.is(filter)) {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: filter.ast,\n });\n } else {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: FilterClass.props(filter).ast,\n });\n }\n }\n\n static 'type'<S extends Schema.Schema.All>(\n schema: S,\n predicates?: Filter$.Props<Schema.Schema.Type<S>>,\n ): Query$.Query<Schema.Schema.Type<S>>;\n static 'type'(type: Type$.Type, predicates?: Filter$.Props<Obj$.Unknown>): Query$.Query<Obj$.Unknown>;\n static 'type'(schema: string, predicates?: Filter$.Props<unknown>): Query$.Query<any>;\n static 'type'(schema: Schema.Schema.All | Type$.Type | string, predicates?: Filter$.Props<unknown>): Query$.Any {\n if (typeof schema !== 'string') {\n throw new TypeError('expected typename as the first paramter');\n }\n return new QueryClass({\n type: 'select',\n filter: FilterClass.type(schema, predicates).ast,\n });\n }\n\n static 'all'(...queries: Query$.Any[]): Query$.Any {\n if (queries.length === 0) {\n throw new TypeError(\n 'Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())',\n );\n }\n return new QueryClass({\n type: 'union',\n queries: queries.map((q) => q.ast),\n });\n }\n\n static 'without'<T>(source: Query$.Query<T>, exclude: Query$.Query<T>): Query$.Query<T> {\n return new QueryClass({\n type: 'set-difference',\n source: source.ast,\n exclude: exclude.ast,\n });\n }\n\n static 'from'(...args: any[]): Query$.Any {\n const baseQuery: QueryAST.Query = {\n type: 'select',\n filter: FilterClass.everything().ast,\n };\n const wrapper = new QueryClass(baseQuery);\n return (wrapper.from as (...args: any[]) => Query$.Any)(...args);\n }\n\n 'from'(...args: any[]): Query$.Any {\n // Variadic raw scopes: `.from(Scope.space(), Scope.registry())`.\n if (args.length > 1 && args.every((arg) => _isScopeLike(arg))) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scopes: args as QueryAST.Scope[] },\n });\n }\n\n const [arg] = args;\n if (arg === 'all-accessible-spaces') {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scopes: [] },\n });\n }\n\n if (_isScopeLike(arg)) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scopes: Array.isArray(arg) ? arg : [arg] },\n });\n }\n\n throw new TypeError('Database and Feed objects are not supported in query-lite sandbox');\n }\n\n /** Returns a human-readable string representation of a Query AST. */\n static 'pretty'(query: Query$.Any): string {\n return prettyQuery(query.ast);\n }\n\n 'constructor'(public readonly ast: QueryAST.Query) {}\n\n '~Query' = QueryClass.variance;\n\n 'reference'(key: string): Query$.Any {\n return new QueryClass({\n type: 'reference-traversal',\n anchor: this.ast,\n property: key,\n });\n }\n\n 'referencedBy'(target?: Type$.AnyEntity | string, key?: string): Query$.Any {\n if (target !== undefined && typeof target !== 'string') {\n throw new TypeError('referencedBy requires a typename string in query-lite');\n }\n const typename = target !== undefined ? makeTypeDxn(target) : null;\n return new QueryClass({\n type: 'incoming-references',\n anchor: this.ast,\n property: key ?? null,\n typename,\n });\n }\n\n 'sourceOf'(\n relation?: Type$.Relation<any, any, any, any> | string,\n predicates?: Filter$.Props<unknown> | undefined,\n ): Query$.Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'outgoing',\n filter:\n relation === undefined\n ? undefined\n : typeof relation === 'string'\n ? FilterClass.type(relation, predicates).ast\n : FilterClass.type(relation, predicates).ast,\n });\n }\n\n 'targetOf'(\n relation?: Type$.Relation<any, any, any, any> | string,\n predicates?: Filter$.Props<unknown> | undefined,\n ): Query$.Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'incoming',\n filter:\n relation === undefined\n ? undefined\n : typeof relation === 'string'\n ? FilterClass.type(relation, predicates).ast\n : FilterClass.type(relation, predicates).ast,\n });\n }\n\n 'source'(): Query$.Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'source',\n });\n }\n\n 'target'(): Query$.Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'target',\n });\n }\n\n 'parent'(): Query$.Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-parent',\n });\n }\n\n 'children'(): Query$.Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-children',\n });\n }\n\n 'orderBy'(...order: Order$.Any[]): Query$.Any {\n return new QueryClass({\n type: 'order',\n query: this.ast,\n order: order.map((o) => o.ast),\n });\n }\n\n 'limit'(limit: number): Query$.Any {\n return new QueryClass({\n type: 'limit',\n query: this.ast,\n limit,\n });\n }\n\n 'options'(options: QueryAST.QueryOptions): Query$.Any {\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options,\n });\n }\n\n 'debugLabel'(label: string): Query$.Any {\n if (this.ast.type === 'options') {\n return new QueryClass({\n type: 'options',\n query: this.ast.query,\n options: { ...this.ast.options, debugLabel: label },\n });\n }\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options: { debugLabel: label },\n });\n }\n}\n\nexport const Query1: typeof Query$ = QueryClass;\nexport { Query1 as Query };\n\nconst RefTypeId: unique symbol = Symbol('@dxos/echo-query/Ref');\nconst isRef = (obj: any): obj is Ref.Ref<any> => {\n return obj && typeof obj === 'object' && RefTypeId in obj;\n};\n\nconst makeTypeDxn = (typename: string): DXN.DXN => {\n assertArgument(typeof typename === 'string', 'typename');\n assertArgument(!typename.startsWith('dxn:'), 'typename');\n // Inline template (rather than `DXN.make`) to keep the value-side `@dxos/keys` import out of this bundle.\n return `dxn:${typename}` as DXN.DXN;\n};\n\nconst isDxnLike = (value: unknown): value is DXN.DXN => {\n if (typeof value === 'string') {\n return value.startsWith('dxn:');\n }\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toString' in value &&\n typeof value.toString === 'function' &&\n value.toString().startsWith('dxn:')\n );\n};\n\nconst isEchoUriLike = (value: unknown): value is EID.EID => {\n if (typeof value === 'string') {\n return value.startsWith('echo:');\n }\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toString' in value &&\n typeof value.toString === 'function' &&\n isEchoUriLike(value.toString())\n );\n};\n\nconst SCOPE_TAGS = new Set(['space', 'feed', 'registry']);\n\nconst _isScopeLike = (value: unknown): value is QueryAST.Scope | QueryAST.Scope[] => {\n if (Array.isArray(value)) {\n return value.every((item) => _isSingleScopeLike(item));\n }\n return _isSingleScopeLike(value);\n};\n\nconst _isSingleScopeLike = (value: unknown): value is QueryAST.Scope => {\n return (\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value) &&\n '_tag' in value &&\n typeof value._tag === 'string' &&\n SCOPE_TAGS.has(value._tag)\n );\n};\n\nconst prettyFilter = (filter: QueryAST.Filter): string => {\n switch (filter.type) {\n case 'object': {\n const parts: string[] = [];\n if (filter.typename !== null) {\n parts.push(JSON.stringify(filter.typename));\n }\n const propEntries = Object.entries(filter.props);\n if (propEntries.length > 0) {\n const propsStr = propEntries.map(([k, v]) => `${k}: ${prettyFilter(v)}`).join(', ');\n parts.push(`{ ${propsStr} }`);\n }\n if (filter.id !== undefined) {\n parts.push(`id: [${filter.id.join(', ')}]`);\n }\n return parts.length > 0 ? `Filter.type(${parts.join(', ')})` : 'Filter.everything()';\n }\n case 'compare':\n return `Filter.${filter.operator}(${JSON.stringify(filter.value)})`;\n case 'in':\n return `Filter.in(${filter.values.map((v) => JSON.stringify(v)).join(', ')})`;\n case 'contains':\n return `Filter.contains(${JSON.stringify(filter.value)})`;\n case 'range':\n return `Filter.between(${JSON.stringify(filter.from)}, ${JSON.stringify(filter.to)})`;\n case 'text-search':\n return `Filter.text(${JSON.stringify(filter.text)})`;\n case 'tag':\n return `Filter.tag(${JSON.stringify(filter.tag)})`;\n case 'child-of':\n return `Filter.childOf([${filter.parents.map((parent) => JSON.stringify(parent)).join(', ')}], { transitive: ${filter.transitive} })`;\n case 'timestamp':\n return `Filter.${filter.field}.${filter.operator}(${filter.value})`;\n case 'not':\n return `Filter.not(${prettyFilter(filter.filter)})`;\n case 'and':\n return `Filter.and(${filter.filters.map(prettyFilter).join(', ')})`;\n case 'or':\n return `Filter.or(${filter.filters.map(prettyFilter).join(', ')})`;\n }\n};\n\nconst prettyQuery = (query: QueryAST.Query): string => {\n switch (query.type) {\n case 'select':\n return `Query.select(${prettyFilter(query.filter)})`;\n case 'filter':\n return `${prettyQuery(query.selection)}.select(${prettyFilter(query.filter)})`;\n case 'reference-traversal':\n return `${prettyQuery(query.anchor)}.reference(${JSON.stringify(query.property)})`;\n case 'incoming-references': {\n const args: string[] = [];\n if (query.typename !== null) {\n args.push(JSON.stringify(query.typename));\n }\n if (query.property !== null) {\n args.push(JSON.stringify(query.property));\n }\n return `${prettyQuery(query.anchor)}.referencedBy(${args.join(', ')})`;\n }\n case 'relation': {\n const method =\n query.direction === 'outgoing' ? 'sourceOf' : query.direction === 'incoming' ? 'targetOf' : 'relationOf';\n const filterStr = query.filter !== undefined ? prettyFilter(query.filter) : '';\n return `${prettyQuery(query.anchor)}.${method}(${filterStr})`;\n }\n case 'relation-traversal':\n return `${prettyQuery(query.anchor)}.${query.direction}()`;\n case 'hierarchy-traversal':\n return query.direction === 'to-parent'\n ? `${prettyQuery(query.anchor)}.parent()`\n : `${prettyQuery(query.anchor)}.children()`;\n case 'union':\n return `Query.all(${query.queries.map(prettyQuery).join(', ')})`;\n case 'set-difference':\n return `Query.without(${prettyQuery(query.source)}, ${prettyQuery(query.exclude)})`;\n case 'order': {\n const orders = query.order.map((o) => {\n if (o.kind === 'natural') {\n return 'Order.natural';\n }\n if (o.kind === 'rank') {\n return `Order.rank(${JSON.stringify(o.direction)})`;\n }\n if (o.kind === 'timestamp') {\n const fn = o.field === 'updatedAt' ? 'updated' : 'created';\n return `Order.${fn}(${JSON.stringify(o.direction)})`;\n }\n return `Order.property(${JSON.stringify(o.property)}, ${JSON.stringify(o.direction)})`;\n });\n return `${prettyQuery(query.query)}.orderBy(${orders.join(', ')})`;\n }\n case 'options': {\n const parts: string[] = [];\n if (query.options.deleted !== undefined) {\n parts.push(`deleted: ${JSON.stringify(query.options.deleted)}`);\n }\n if (query.options.debugLabel !== undefined) {\n parts.push(`debugLabel: ${JSON.stringify(query.options.debugLabel)}`);\n }\n return `${prettyQuery(query.query)}.options({ ${parts.join(', ')} })`;\n }\n case 'from': {\n if (query.from._tag === 'scope') {\n if (query.from.scopes.length === 0) {\n return `${prettyQuery(query.query)}.from('all-accessible-spaces')`;\n }\n const scopeStrs = query.from.scopes.map((scope) => {\n if (scope._tag === 'space') {\n return scope.includeAllFeeds\n ? `{ space: ${JSON.stringify(scope.spaceId)}, includeAllFeeds: true }`\n : `{ space: ${JSON.stringify(scope.spaceId)} }`;\n }\n if (scope._tag === 'feed') {\n return `{ feed: ${String(scope.feedUri)} }`;\n }\n return `{ registry: ${JSON.stringify(scope.location)} }`;\n });\n return `${prettyQuery(query.query)}.from([${scopeStrs.join(', ')}])`;\n }\n return `${prettyQuery(query.query)}.from(${prettyQuery(query.from.query)})`;\n }\n case 'limit':\n return `${prettyQuery(query.query)}.limit(${query.limit})`;\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["OrderTypeId: Order$.OrderTypeId","FilterTypeId: Filter$.FilterTypeId","QueryTypeId: Query$.QueryTypeId","ProjectionTypeId: Query$.ProjectionTypeId","ast: QueryAST.Order","Order2: typeof Order$","typeURI: string | undefined","filters: Filter$.Any[]","ast: QueryAST.Filter","Filter1: typeof Filter$","idFilter: readonly EntityId[] | undefined","arg","ast: QueryAST.Query","Query1: typeof Query$","RefTypeId: unique symbol","parts: string[]","args: string[]"],"sources":["../../../../../common/invariant/dist/lib/index.mjs","../../src/query-lite/query-lite.ts"],"sourcesContent":["//#region src/invariant.ts\n/**\n* Asserts that the condition is true.\n*\n* @param message Optional message. If it starts with \"BUG\" then the program will break if this invariant fails if the debugger is attached.\n*/\nvar invariant = (condition, message, meta) => {\n\tif (condition) return;\n\tif (message?.startsWith(\"BUG\")) debugger;\n\tlet errorMessage = \"invariant violation\";\n\tif (message) errorMessage += `: ${message}`;\n\tif (meta?.A) errorMessage += ` [${meta.A[0]}]`;\n\tif (meta?.F) errorMessage += ` at ${getRelativeFilename(meta.F)}:${meta.L}`;\n\tconst error = new InvariantViolation(errorMessage);\n\tError.captureStackTrace(error, invariant);\n\tthrow error;\n};\nvar InvariantViolation = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tObject.setPrototypeOf(this, new.target.prototype);\n\t}\n};\nvar getRelativeFilename = (filename) => {\n\tconst match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n\tif (match) {\n\t\tconst [, filePath] = match;\n\t\treturn filePath;\n\t}\n\treturn filename;\n};\nvar failedInvariant = (message1, message2, meta) => {\n\tlet errorMessage = \"invariant violation\";\n\tconst message = [message1, message2].filter((str) => typeof str === \"string\").join(\" \");\n\tif (message) errorMessage += `: ${message}`;\n\tif (meta?.A) errorMessage += ` [${meta.A[0]}]`;\n\tif (meta?.F) errorMessage += ` at ${getRelativeFilename(meta.F)}:${meta.L}`;\n\tthrow new InvariantViolation(errorMessage);\n};\n//#endregion\n//#region src/assert.ts\n/**\n* Use this to assert the arguments of a function.\n*\n* @example\n* ```ts\n* function foo(arg: string) {\n* assertArgument(typeof arg === 'string', 'arg must be a string');\n* }\n* ```\n*/\nvar assertArgument = (condition, argumentName, message) => {\n\tif (!condition) {\n\t\tconst error = /* @__PURE__ */ new TypeError(`Invalid argument \\`${argumentName}\\`` + (message ? `: ${message}` : \"\"));\n\t\tError.captureStackTrace(error, assertArgument);\n\t\tthrow error;\n\t}\n};\n/**\n* Use this to assert the state of an object.\n*\n* @example\n* ```ts\n* class Foo {\n* private _bar: boolean;\n*\n* public get bar() {\n* assertState(this._bar, 'bar must be true');\n* return this._bar;\n* }\n* }\n*\n* const foo = new Foo();\n* foo.bar = false; // This will throw an InvalidStateError\n* ```\n*/\nvar assertState = (condition, message) => {\n\tif (!condition) {\n\t\tconst error = new InvalidStateError(message);\n\t\tError.captureStackTrace(error, assertState);\n\t\tthrow error;\n\t}\n};\nvar InvalidStateError = class extends Error {};\n//#endregion\nexport { InvalidStateError, InvariantViolation, assertArgument, assertState, failedInvariant, invariant };\n\n//# sourceMappingURL=index.mjs.map","//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\n\nimport type {\n Ref,\n Aggregate as Aggregate$,\n Filter as Filter$,\n Obj as Obj$,\n Order as Order$,\n Query as Query$,\n Type as Type$,\n} from '@dxos/echo';\nimport type { ForeignKey, QueryAST } from '@dxos/echo-protocol';\nimport { assertArgument } from '@dxos/invariant';\n// `DXN`/`EID` are type-only imports to keep the `query-lite` bundle free of\n// `effect/Schema` (which pulls runtime helpers QuickJS can't parse — e.g. private class fields).\nimport type { DXN, EID, EntityId, URI } from '@dxos/keys';\n\n//\n// Light-weight implementation of query execution.\n//\n\n// TODO(wittjosiah): The `export * as ...` syntax causes tsdown to genereate multiple files which breaks the sandbox.\n\n// The TypeId brand keys mirror the constants in `@dxos/echo`. They are declared locally (typed by the\n// type-only imports) rather than imported as runtime values to keep this sandbox bundle free of the\n// `@dxos/echo` runtime graph.\nconst OrderTypeId: Order$.OrderTypeId = '~@dxos/echo/Order';\nconst FilterTypeId: Filter$.FilterTypeId = '~@dxos/echo/Filter';\nconst QueryTypeId: Query$.QueryTypeId = '~@dxos/echo/Query';\nconst ProjectionTypeId: Query$.ProjectionTypeId = '~@dxos/echo/Query.Projection';\n\nclass OrderClass implements Order$.Any {\n private static 'variance': Order$.Any[typeof OrderTypeId] = {} as Order$.Any[typeof OrderTypeId];\n\n static is(value: unknown): value is Order$.Any {\n return typeof value === 'object' && value !== null && OrderTypeId in value;\n }\n\n constructor(public readonly ast: QueryAST.Order) {}\n\n [OrderTypeId] = OrderClass.variance;\n}\n\nnamespace Order1 {\n export const OrderTypeId: Order$.OrderTypeId = '~@dxos/echo/Order';\n export const natural = (direction: QueryAST.OrderDirection = 'asc'): Order$.Order<any> =>\n new OrderClass({ kind: 'natural', direction });\n export const property = <T>(property: keyof T & string, direction: QueryAST.OrderDirection): Order$.Order<T> =>\n new OrderClass({\n kind: 'property',\n property,\n direction,\n });\n export const rank = <T>(direction: QueryAST.OrderDirection = 'desc'): Order$.Order<T> =>\n new OrderClass({\n kind: 'rank',\n direction,\n });\n export const updated = <T>(direction: QueryAST.OrderDirection = 'desc'): Order$.Order<T> =>\n new OrderClass({\n kind: 'timestamp',\n field: 'updatedAt',\n direction,\n });\n export const created = <T>(direction: QueryAST.OrderDirection = 'desc'): Order$.Order<T> =>\n new OrderClass({\n kind: 'timestamp',\n field: 'createdAt',\n direction,\n });\n}\n\nconst Order2: typeof Order$ = Order1;\nexport { Order2 as Order };\n\n// Local filter-match helpers used by FilterClass.toPredicate.\n// Written without a runtime @dxos/echo import so the QuickJS sandbox bundle stays clean.\nconst _filterMatchValueLocal = (filter: QueryAST.Filter, value: unknown): boolean => {\n switch (filter.type) {\n case 'compare': {\n switch (filter.operator) {\n case 'eq':\n return value === filter.value;\n case 'neq':\n return value !== filter.value;\n case 'gt':\n return (value as any) > (filter.value as any);\n case 'gte':\n return (value as any) >= (filter.value as any);\n case 'lt':\n return (value as any) < (filter.value as any);\n case 'lte':\n return (value as any) <= (filter.value as any);\n default:\n return false;\n }\n }\n case 'object': {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n if (filter.props) {\n for (const [key, vf] of Object.entries(filter.props)) {\n if (!_filterMatchValueLocal(vf, (value as any)[key])) {\n return false;\n }\n }\n }\n return true;\n }\n case 'in':\n return filter.values.includes(value);\n case 'in-query':\n // The QuickJS sandbox has no database access to run a subquery — a semi-join predicate\n // must be resolved to a literal `in` by the query executor before reaching this matcher.\n throw new Error('in-query filters are not supported in the sandboxed toPredicate matcher.');\n case 'range':\n return (value as any) >= filter.from && (value as any) <= filter.to;\n case 'not':\n return !_filterMatchValueLocal(filter.filter, value);\n case 'and':\n return filter.filters.every((f) => _filterMatchValueLocal(f, value));\n case 'or':\n return filter.filters.some((f) => _filterMatchValueLocal(f, value));\n default:\n return false;\n }\n};\n\nconst _filterMatchEntityLocal = (filter: QueryAST.Filter, entity: any): boolean => {\n switch (filter.type) {\n case 'object': {\n if (filter.typename !== null) {\n const typeURI: string | undefined = entity?.['@type'] ?? entity?.system?.type;\n if (!typeURI || typeURI !== filter.typename) {\n return false;\n }\n }\n if (filter.id && filter.id.length > 0 && !filter.id.includes(entity?.id)) {\n return false;\n }\n if (filter.props) {\n for (const [key, vf] of Object.entries(filter.props)) {\n if (key.startsWith('@')) {\n continue;\n }\n if (!_filterMatchValueLocal(vf, entity?.[key])) {\n return false;\n }\n }\n }\n return true;\n }\n case 'not':\n return !_filterMatchEntityLocal(filter.filter, entity);\n case 'and':\n return filter.filters.every((f) => _filterMatchEntityLocal(f, entity));\n case 'or':\n return filter.filters.some((f) => _filterMatchEntityLocal(f, entity));\n default:\n throw new Error(`Filter type '${(filter as any).type}' is not supported in toPredicate.`);\n }\n};\n\nclass FilterClass implements Filter$.Any {\n static 'FilterTypeId': Filter$.FilterTypeId = FilterTypeId;\n\n private static 'variance': Filter$.Any[typeof FilterTypeId] = {} as Filter$.Any[typeof FilterTypeId];\n\n static is(value: unknown): value is Filter$.Any {\n return typeof value === 'object' && value !== null && FilterTypeId in value;\n }\n\n static fromAst(ast: QueryAST.Filter): Filter$.Any {\n return new FilterClass(ast);\n }\n\n static everything(): FilterClass {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n });\n }\n\n static nothing(): FilterClass {\n return new FilterClass({\n type: 'not',\n filter: {\n type: 'object',\n typename: null,\n props: {},\n },\n });\n }\n\n static relation() {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n });\n }\n\n static id(...ids: EntityId[]): Filter$.Any {\n // assertArgument(\n // ids.every((id) => EntityId.isValid(id)),\n // 'ids',\n // 'ids must be valid',\n // );\n\n if (ids.length === 0) {\n return FilterClass.nothing();\n }\n\n return new FilterClass({\n type: 'object',\n typename: null,\n id: ids,\n props: {},\n });\n }\n\n static type<T extends Type$.AnyEntity>(\n type: T,\n props?: Filter$.Props<Type$.InstanceType<T>>,\n ): Filter$.Filter<Type$.InstanceType<T>>;\n static type(schema: string, props?: Filter$.Props<unknown>): Filter$.Filter<any>;\n static type(schema: Type$.AnyEntity | string, props?: Filter$.Props<unknown>): Filter$.Filter<unknown> {\n if (typeof schema !== 'string') {\n throw new TypeError('expected typename as the first paramter');\n }\n return new FilterClass({\n type: 'object',\n typename: makeTypeDxn(schema),\n ...propsFilterToAst(props ?? {}),\n });\n }\n\n static typename(typename: string): Filter$.Any {\n return new FilterClass({\n type: 'object',\n typename: makeTypeDxn(typename),\n props: {},\n });\n }\n\n static typeURI(uri: URI.URI): Filter$.Any {\n return new FilterClass({\n type: 'object',\n typename: uri,\n props: {},\n });\n }\n\n static tag(tag: string): Filter$.Any {\n return new FilterClass({\n type: 'tag',\n tag,\n });\n }\n\n static key(key: string, options?: Filter$.KeyFilterOptions): Filter$.Any {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n metaKey: key,\n metaVersion: options?.version,\n });\n }\n\n static props<T>(props: Filter$.Props<T>): Filter$.Filter<T> {\n return new FilterClass({\n type: 'object',\n typename: null,\n ...propsFilterToAst(props),\n });\n }\n\n static text(text: string, options?: Filter$.TextSearchOptions): Filter$.Any {\n return new FilterClass({\n type: 'text-search',\n text,\n searchKind: options?.type,\n });\n }\n\n static foreignKeys<S extends Type$.AnyEntity | string>(\n schema: S,\n keys: ForeignKey[],\n ): Filter$.Filter<S extends Type$.AnyEntity ? Type$.InstanceType<S> : unknown> {\n assertArgument(typeof schema === 'string', 'schema');\n assertArgument(!schema.startsWith('dxn:'), 'schema');\n return new FilterClass({\n type: 'object',\n typename: makeTypeDxn(schema),\n props: {},\n foreignKeys: keys,\n });\n }\n\n static eq<T>(value: T): Filter$.Filter<T | undefined> {\n if (!isRef(value) && typeof value === 'object' && value !== null) {\n throw new TypeError('Cannot use object as a value for eq filter');\n }\n\n return new FilterClass({\n type: 'compare',\n operator: 'eq',\n value: isRef(value) ? value.noInline().encode() : value,\n });\n }\n\n static neq<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'neq',\n value,\n });\n }\n\n static gt<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'gt',\n value,\n });\n }\n\n static gte<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'gte',\n value,\n });\n }\n\n static lt<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'lt',\n value,\n });\n }\n\n static lte<T>(value: T): Filter$.Filter<T | undefined> {\n return new FilterClass({\n type: 'compare',\n operator: 'lte',\n value,\n });\n }\n\n static in<T>(...values: T[]): Filter$.Filter<T> {\n return new FilterClass({\n type: 'in',\n values,\n });\n }\n\n static contains<T>(value: T): Filter$.Filter<readonly T[] | undefined> {\n return new FilterClass({\n type: 'contains',\n value,\n });\n }\n\n static between<T>(from: T, to: T): Filter$.Filter<T> {\n return new FilterClass({\n type: 'range',\n from,\n to,\n });\n }\n\n static updated(range: { after?: Date | number; before?: Date | number }): Filter$.Any {\n return FilterClass._timeRangeFilter('updatedAt', range);\n }\n\n static created(range: { after?: Date | number; before?: Date | number }): Filter$.Any {\n return FilterClass._timeRangeFilter('createdAt', range);\n }\n\n static childOf(parents: unknown | unknown[], options?: { transitive?: boolean }): Filter$.Any {\n const items = Array.isArray(parents) ? parents : [parents];\n const dxns = items.map((item) => {\n if (isEchoUriLike(item)) {\n return item.toString() as EID.EID;\n }\n throw new TypeError('childOf requires EID values in query-lite');\n });\n return new FilterClass({\n type: 'child-of',\n parents: dxns,\n transitive: options?.transitive ?? true,\n });\n }\n\n private static _timeRangeFilter(\n field: 'updatedAt' | 'createdAt',\n range: { after?: Date | number; before?: Date | number },\n ): Filter$.Any {\n const toMs = (d: Date | number) => (typeof d === 'number' ? d : d.getTime());\n const filters: Filter$.Any[] = [];\n if (range.after != null) {\n filters.push(new FilterClass({ type: 'timestamp', field, operator: 'gte', value: toMs(range.after) }));\n }\n if (range.before != null) {\n filters.push(new FilterClass({ type: 'timestamp', field, operator: 'lte', value: toMs(range.before) }));\n }\n if (filters.length === 0) {\n return FilterClass.everything();\n }\n return filters.length === 1 ? filters[0] : FilterClass.and(...filters);\n }\n\n static not<F extends Filter$.Any>(filter: F): Filter$.Filter<Filter$.Type<F>> {\n return new FilterClass({\n type: 'not',\n filter: filter.ast,\n });\n }\n\n static and<Filters extends readonly Filter$.Any[]>(\n ...filters: Filters\n ): Filter$.Filter<Filter$.Type<Filters[number]>> {\n return new FilterClass({\n type: 'and',\n filters: filters.map((filter) => filter.ast),\n });\n }\n\n static or<Filters extends readonly Filter$.Any[]>(\n ...filters: Filters\n ): Filter$.Filter<Filter$.Type<Filters[number]>> {\n return new FilterClass({\n type: 'or',\n filters: filters.map((filter) => filter.ast),\n });\n }\n\n /** Returns a human-readable string representation of a Filter AST. */\n static pretty(filter: Filter$.Any): string {\n return prettyFilter(filter.ast);\n }\n\n /** Create a predicate from a filter. */\n // Cast required: TypeScript cannot verify a plain overloaded function satisfies a type-predicate\n // overload signature without the cast; Effect's dual() has the same limitation here.\n static 'toPredicate' = ((entityOrFilter: any, filter?: any): any => {\n if (filter === undefined) {\n return (entity: any) => _filterMatchEntityLocal(entityOrFilter.ast, entity);\n }\n return _filterMatchEntityLocal(filter.ast, entityOrFilter);\n }) as typeof Filter$.toPredicate;\n\n private constructor(public readonly ast: QueryAST.Filter) {}\n\n [FilterTypeId] = FilterClass.variance;\n}\n\nexport const Filter1: typeof Filter$ = FilterClass;\nexport { Filter1 as Filter };\n\n/**\n * All property paths inside T that are references.\n */\n// TODO(dmaretskyi): Filter only properties that are references (or optional references, or unions that include references).\ntype RefPropKey<T> = keyof T & string;\n\nconst propsFilterToAst = (predicates: Filter$.Props<any>): Pick<QueryAST.FilterObject, 'id' | 'props'> => {\n let idFilter: readonly EntityId[] | undefined;\n if ('id' in predicates) {\n assertArgument(\n typeof predicates.id === 'string' || Array.isArray(predicates.id),\n 'predicates.id',\n 'invalid id filter',\n );\n idFilter = typeof predicates.id === 'string' ? [predicates.id] : predicates.id;\n }\n\n return {\n id: idFilter,\n props: Object.fromEntries(\n Object.entries(predicates)\n .filter(([prop, _value]) => prop !== 'id')\n .map(([prop, predicate]) => [prop, processPredicate(predicate)]),\n ) as Record<string, QueryAST.Filter>,\n };\n};\n\nconst processPredicate = (predicate: any): QueryAST.Filter => {\n if (FilterClass.is(predicate)) {\n return predicate.ast;\n }\n\n if (Array.isArray(predicate)) {\n throw new Error('Array predicates are not yet supported.');\n }\n\n if (!isRef(predicate) && typeof predicate === 'object' && predicate !== null) {\n const nestedProps = Object.fromEntries(\n Object.entries(predicate).map(([key, value]) => [key, processPredicate(value)]),\n );\n\n return {\n type: 'object',\n typename: null,\n props: nestedProps,\n };\n }\n\n return FilterClass.eq(predicate).ast;\n};\n\nclass QueryClass implements Query$.Any {\n static 'QueryTypeId': Query$.QueryTypeId = QueryTypeId;\n\n private static 'variance': Query$.Any[typeof QueryTypeId] = {} as Query$.Any[typeof QueryTypeId];\n\n private static 'projectionVariance': Query$.Projection<any>[typeof ProjectionTypeId] =\n {} as Query$.Projection<any>[typeof ProjectionTypeId];\n\n static is(value: unknown): value is Query$.Any {\n return typeof value === 'object' && value !== null && QueryTypeId in value;\n }\n\n static fromAst(ast: QueryAST.Query): Query$.Any {\n return new QueryClass(ast);\n }\n\n static select<F extends Filter$.Any>(filter: F): Query$.Query<Filter$.Type<F>> {\n return new QueryClass({\n type: 'select',\n filter: filter.ast,\n });\n }\n\n select(filter: Filter$.Any | Filter$.Props<any>): Query$.Any {\n if (FilterClass.is(filter)) {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: filter.ast,\n });\n } else {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: FilterClass.props(filter).ast,\n });\n }\n }\n\n project(property: string): Query$.Projection<any> {\n return { [ProjectionTypeId]: QueryClass.projectionVariance, query: this.ast, property };\n }\n\n static type<S extends Schema.Schema.All>(\n schema: S,\n predicates?: Filter$.Props<Schema.Schema.Type<S>>,\n ): Query$.Query<Schema.Schema.Type<S>>;\n static type(type: Type$.Type, predicates?: Filter$.Props<Obj$.Unknown>): Query$.Query<Obj$.Unknown>;\n static type(schema: string, predicates?: Filter$.Props<unknown>): Query$.Query<any>;\n static type(schema: Schema.Schema.All | Type$.Type | string, predicates?: Filter$.Props<unknown>): Query$.Any {\n if (typeof schema !== 'string') {\n throw new TypeError('expected typename as the first paramter');\n }\n return new QueryClass({\n type: 'select',\n filter: FilterClass.type(schema, predicates).ast,\n });\n }\n\n static all(...queries: Query$.Any[]): Query$.Any {\n if (queries.length === 0) {\n throw new TypeError(\n 'Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())',\n );\n }\n return new QueryClass({\n type: 'union',\n queries: queries.map((q) => q.ast),\n });\n }\n\n static without<T>(source: Query$.Query<T>, exclude: Query$.Query<T>): Query$.Query<T> {\n return new QueryClass({\n type: 'set-difference',\n source: source.ast,\n exclude: exclude.ast,\n });\n }\n\n static project(query: Query$.Any, property: string): Query$.Projection<any> {\n return { [ProjectionTypeId]: QueryClass.projectionVariance, query: query.ast, property };\n }\n\n static from(...args: any[]): Query$.Any {\n const baseQuery: QueryAST.Query = {\n type: 'select',\n filter: FilterClass.everything().ast,\n };\n const wrapper = new QueryClass(baseQuery);\n return (wrapper.from as (...args: any[]) => Query$.Any)(...args);\n }\n\n from(...args: any[]): Query$.Any {\n // Variadic raw scopes: `.from(Scope.space(), Scope.registry())`.\n if (args.length > 1 && args.every((arg) => _isScopeLike(arg))) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scopes: args as QueryAST.Scope[] },\n });\n }\n\n const [arg] = args;\n if (arg === 'all-accessible-spaces') {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scopes: [] },\n });\n }\n\n if (_isScopeLike(arg)) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scopes: Array.isArray(arg) ? arg : [arg] },\n });\n }\n\n throw new TypeError('Database and Feed objects are not supported in query-lite sandbox');\n }\n\n /** Returns a human-readable string representation of a Query AST. */\n static pretty(query: Query$.Any): string {\n return prettyQuery(query.ast);\n }\n\n constructor(public readonly ast: QueryAST.Query) {}\n\n [QueryTypeId] = QueryClass.variance;\n\n reference(key: string): Query$.Any {\n return new QueryClass({\n type: 'reference-traversal',\n anchor: this.ast,\n property: key,\n });\n }\n\n referencedBy(target?: Type$.AnyEntity | string, key?: string): Query$.Any {\n if (target !== undefined && typeof target !== 'string') {\n throw new TypeError('referencedBy requires a typename string in query-lite');\n }\n const typename = target !== undefined ? makeTypeDxn(target) : null;\n return new QueryClass({\n type: 'incoming-references',\n anchor: this.ast,\n property: key ?? null,\n typename,\n });\n }\n\n sourceOf(\n relation?: Type$.Relation<any, any, any, any> | string,\n predicates?: Filter$.Props<unknown> | undefined,\n ): Query$.Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'outgoing',\n filter:\n relation === undefined\n ? undefined\n : typeof relation === 'string'\n ? FilterClass.type(relation, predicates).ast\n : FilterClass.type(relation, predicates).ast,\n });\n }\n\n targetOf(\n relation?: Type$.Relation<any, any, any, any> | string,\n predicates?: Filter$.Props<unknown> | undefined,\n ): Query$.Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'incoming',\n filter:\n relation === undefined\n ? undefined\n : typeof relation === 'string'\n ? FilterClass.type(relation, predicates).ast\n : FilterClass.type(relation, predicates).ast,\n });\n }\n\n source(): Query$.Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'source',\n });\n }\n\n target(): Query$.Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'target',\n });\n }\n\n parent(): Query$.Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-parent',\n });\n }\n\n children(): Query$.Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-children',\n });\n }\n\n orderBy(...order: Order$.Any[]): Query$.Any {\n return new QueryClass({\n type: 'order',\n query: this.ast,\n order: order.map((orderItem) => orderItem.ast),\n });\n }\n\n limit(limit: number): Query$.Any {\n return new QueryClass({\n type: 'limit',\n query: this.ast,\n limit,\n });\n }\n\n skip(skip: number): Query$.Any {\n return new QueryClass({\n type: 'skip',\n query: this.ast,\n skip,\n });\n }\n\n aggregate(aggregates: Record<string, Aggregate$.Any>): Query$.Any {\n return new QueryClass({\n type: 'aggregate',\n query: this.ast,\n aggregates: Object.entries(aggregates).map(([name, aggregate]) => ({ name, ...aggregate.spec })),\n });\n }\n\n options(options: QueryAST.QueryOptions): Query$.Any {\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options,\n });\n }\n\n debugLabel(label: string): Query$.Any {\n if (this.ast.type === 'options') {\n return new QueryClass({\n type: 'options',\n query: this.ast.query,\n options: { ...this.ast.options, debugLabel: label },\n });\n }\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options: { debugLabel: label },\n });\n }\n}\n\nexport const Query1: typeof Query$ = QueryClass;\nexport { Query1 as Query };\n\nconst RefTypeId: unique symbol = Symbol('@dxos/echo-query/Ref');\nconst isRef = (obj: any): obj is Ref.Ref<any> => {\n return obj && typeof obj === 'object' && RefTypeId in obj;\n};\n\nconst makeTypeDxn = (typename: string): DXN.DXN => {\n assertArgument(typeof typename === 'string', 'typename');\n assertArgument(!typename.startsWith('dxn:'), 'typename');\n // Inline template (rather than `DXN.make`) to keep the value-side `@dxos/keys` import out of this bundle.\n return `dxn:${typename}` as DXN.DXN;\n};\n\nconst isDxnLike = (value: unknown): value is DXN.DXN => {\n if (typeof value === 'string') {\n return value.startsWith('dxn:');\n }\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toString' in value &&\n typeof value.toString === 'function' &&\n value.toString().startsWith('dxn:')\n );\n};\n\nconst isEchoUriLike = (value: unknown): value is EID.EID => {\n if (typeof value === 'string') {\n return value.startsWith('echo:');\n }\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toString' in value &&\n typeof value.toString === 'function' &&\n isEchoUriLike(value.toString())\n );\n};\n\nconst SCOPE_TAGS = new Set(['space', 'feed', 'registry']);\n\nconst _isScopeLike = (value: unknown): value is QueryAST.Scope | QueryAST.Scope[] => {\n if (Array.isArray(value)) {\n return value.every((item) => _isSingleScopeLike(item));\n }\n return _isSingleScopeLike(value);\n};\n\nconst _isSingleScopeLike = (value: unknown): value is QueryAST.Scope => {\n return (\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value) &&\n '_tag' in value &&\n typeof value._tag === 'string' &&\n SCOPE_TAGS.has(value._tag)\n );\n};\n\nconst prettyFilter = (filter: QueryAST.Filter): string => {\n switch (filter.type) {\n case 'object': {\n const parts: string[] = [];\n if (filter.typename !== null) {\n parts.push(JSON.stringify(filter.typename));\n }\n const propEntries = Object.entries(filter.props);\n if (propEntries.length > 0) {\n const propsStr = propEntries.map(([k, v]) => `${k}: ${prettyFilter(v)}`).join(', ');\n parts.push(`{ ${propsStr} }`);\n }\n if (filter.id !== undefined) {\n parts.push(`id: [${filter.id.join(', ')}]`);\n }\n return parts.length > 0 ? `Filter.type(${parts.join(', ')})` : 'Filter.everything()';\n }\n case 'compare':\n return `Filter.${filter.operator}(${JSON.stringify(filter.value)})`;\n case 'in':\n return `Filter.in(${filter.values.map((v) => JSON.stringify(v)).join(', ')})`;\n case 'in-query':\n return `Filter.in(${prettyQuery(filter.subquery)}.project(${JSON.stringify(filter.property)}))`;\n case 'contains':\n return `Filter.contains(${JSON.stringify(filter.value)})`;\n case 'range':\n return `Filter.between(${JSON.stringify(filter.from)}, ${JSON.stringify(filter.to)})`;\n case 'text-search':\n return `Filter.text(${JSON.stringify(filter.text)})`;\n case 'tag':\n return `Filter.tag(${JSON.stringify(filter.tag)})`;\n case 'child-of':\n return `Filter.childOf([${filter.parents.map((parent) => JSON.stringify(parent)).join(', ')}], { transitive: ${filter.transitive} })`;\n case 'timestamp':\n return `Filter.${filter.field}.${filter.operator}(${filter.value})`;\n case 'not':\n return `Filter.not(${prettyFilter(filter.filter)})`;\n case 'and':\n return `Filter.and(${filter.filters.map(prettyFilter).join(', ')})`;\n case 'or':\n return `Filter.or(${filter.filters.map(prettyFilter).join(', ')})`;\n }\n};\n\nconst prettyQuery = (query: QueryAST.Query): string => {\n switch (query.type) {\n case 'select':\n return `Query.select(${prettyFilter(query.filter)})`;\n case 'filter':\n return `${prettyQuery(query.selection)}.select(${prettyFilter(query.filter)})`;\n case 'reference-traversal':\n return `${prettyQuery(query.anchor)}.reference(${JSON.stringify(query.property)})`;\n case 'incoming-references': {\n const args: string[] = [];\n if (query.typename !== null) {\n args.push(JSON.stringify(query.typename));\n }\n if (query.property !== null) {\n args.push(JSON.stringify(query.property));\n }\n return `${prettyQuery(query.anchor)}.referencedBy(${args.join(', ')})`;\n }\n case 'relation': {\n const method =\n query.direction === 'outgoing' ? 'sourceOf' : query.direction === 'incoming' ? 'targetOf' : 'relationOf';\n const filterStr = query.filter !== undefined ? prettyFilter(query.filter) : '';\n return `${prettyQuery(query.anchor)}.${method}(${filterStr})`;\n }\n case 'relation-traversal':\n return `${prettyQuery(query.anchor)}.${query.direction}()`;\n case 'hierarchy-traversal':\n return query.direction === 'to-parent'\n ? `${prettyQuery(query.anchor)}.parent()`\n : `${prettyQuery(query.anchor)}.children()`;\n case 'union':\n return `Query.all(${query.queries.map(prettyQuery).join(', ')})`;\n case 'set-difference':\n return `Query.without(${prettyQuery(query.source)}, ${prettyQuery(query.exclude)})`;\n case 'order': {\n const orders = query.order.map((o) => {\n if (o.kind === 'natural') {\n return `Order.natural(${JSON.stringify(o.direction)})`;\n }\n if (o.kind === 'rank') {\n return `Order.rank(${JSON.stringify(o.direction)})`;\n }\n if (o.kind === 'timestamp') {\n const fn = o.field === 'updatedAt' ? 'updated' : 'created';\n return `Order.${fn}(${JSON.stringify(o.direction)})`;\n }\n return `Order.property(${JSON.stringify(o.property)}, ${JSON.stringify(o.direction)})`;\n });\n return `${prettyQuery(query.query)}.orderBy(${orders.join(', ')})`;\n }\n case 'options': {\n const parts: string[] = [];\n if (query.options.deleted !== undefined) {\n parts.push(`deleted: ${JSON.stringify(query.options.deleted)}`);\n }\n if (query.options.debugLabel !== undefined) {\n parts.push(`debugLabel: ${JSON.stringify(query.options.debugLabel)}`);\n }\n return `${prettyQuery(query.query)}.options({ ${parts.join(', ')} })`;\n }\n case 'from': {\n if (query.from._tag === 'scope') {\n if (query.from.scopes.length === 0) {\n return `${prettyQuery(query.query)}.from('all-accessible-spaces')`;\n }\n const scopeStrs = query.from.scopes.map((scope) => {\n if (scope._tag === 'space') {\n return scope.includeAllFeeds\n ? `{ space: ${JSON.stringify(scope.spaceId)}, includeAllFeeds: true }`\n : `{ space: ${JSON.stringify(scope.spaceId)} }`;\n }\n if (scope._tag === 'feed') {\n return `{ feed: ${String(scope.feedUri)} }`;\n }\n return `{ registry: ${JSON.stringify(scope.location)} }`;\n });\n return `${prettyQuery(query.query)}.from([${scopeStrs.join(', ')}])`;\n }\n return `${prettyQuery(query.query)}.from(${prettyQuery(query.from.query)})`;\n }\n case 'limit':\n return `${prettyQuery(query.query)}.limit(${query.limit})`;\n case 'skip':\n return `${prettyQuery(query.query)}.skip(${query.skip})`;\n case 'aggregate': {\n const aggregates = query.aggregates.map((aggregate) => {\n const arg =\n aggregate.kind === 'items'\n ? aggregate.limit !== undefined\n ? `{ limit: ${aggregate.limit} }`\n : ''\n : aggregate.kind === 'count'\n ? ''\n : JSON.stringify(aggregate.property);\n return `${JSON.stringify(aggregate.name)}: Aggregate.${aggregate.kind}(${arg})`;\n });\n return `${prettyQuery(query.query)}.aggregate({ ${aggregates.join(', ')} })`;\n }\n }\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-lite.d.ts","sourceRoot":"","sources":["../../../../src/query-lite/query-lite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"query-lite.d.ts","sourceRoot":"","sources":["../../../../src/query-lite/query-lite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,MAAM,IAAI,OAAO,EAEjB,KAAK,IAAI,MAAM,EACf,KAAK,IAAI,MAAM,EAEhB,MAAM,YAAY,CAAC;AA8DpB,QAAA,MAAM,MAAM,EAAE,OAAO,MAAe,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC;AAqY3B,eAAO,MAAM,OAAO,EAAE,OAAO,OAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC;AAuU7B,eAAO,MAAM,MAAM,EAAE,OAAO,MAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-sandbox.d.ts","sourceRoot":"","sources":["../../../../src/sandbox/query-sandbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"query-sandbox.d.ts","sourceRoot":"","sources":["../../../../src/sandbox/query-sandbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAuB,KAAK,iBAAiB,EAAiB,MAAM,sBAAsB,CAAC;AAMlG;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,QAAQ;;IAExC,OAAO,CAAC,MAAM,CAAC,OAAO,CAA2C;IACjE,MAAM,CAAC,UAAU,+BAMhB;IAID,UAAyB,KAAK,kBAY7B;IAED,UAAyB,MAAM,kBAE9B;IAED;;;OAGG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAiBtC;CACF"}
|