@_linked/core 2.22.8 → 2.22.9
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/CHANGELOG.md +6 -0
- package/lib/esm/collections/CoreSet.js.map +1 -1
- package/lib/esm/collections/ShapeSet.js.map +1 -1
- package/lib/esm/expressions/Expr.js.map +1 -1
- package/lib/esm/expressions/ExpressionMethods.js.map +1 -1
- package/lib/esm/expressions/ExpressionNode.js.map +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/ICoreIterable.js.map +1 -1
- package/lib/esm/interfaces/IDataset.js.map +1 -1
- package/lib/esm/interfaces/IFileStore.js.map +1 -1
- package/lib/esm/ontologies/linked-core.js.map +1 -1
- package/lib/esm/ontologies/npm.js.map +1 -1
- package/lib/esm/ontologies/owl.js.map +1 -1
- package/lib/esm/ontologies/rdf.js.map +1 -1
- package/lib/esm/ontologies/rdfs.js.map +1 -1
- package/lib/esm/ontologies/shacl.js.map +1 -1
- package/lib/esm/ontologies/xsd.js.map +1 -1
- package/lib/esm/package.js.map +1 -1
- package/lib/esm/paths/PropertyPathExpr.js.map +1 -1
- package/lib/esm/paths/normalizePropertyPath.js.map +1 -1
- package/lib/esm/paths/pathExprToSparql.js.map +1 -1
- package/lib/esm/queries/AskBuilder.js.map +1 -1
- package/lib/esm/queries/AskQuery.js.map +1 -1
- package/lib/esm/queries/ContextRef.js.map +1 -1
- package/lib/esm/queries/CountBuilder.js.map +1 -1
- package/lib/esm/queries/CountQuery.js.map +1 -1
- package/lib/esm/queries/CreateBuilder.js.map +1 -1
- package/lib/esm/queries/CreateQuery.js.map +1 -1
- package/lib/esm/queries/DeleteBuilder.js.map +1 -1
- package/lib/esm/queries/DeleteQuery.js.map +1 -1
- package/lib/esm/queries/DslJsonExpression.js.map +1 -1
- package/lib/esm/queries/FieldSet.js.map +1 -1
- package/lib/esm/queries/IRAliasScope.js.map +1 -1
- package/lib/esm/queries/IRCanonicalize.js.map +1 -1
- package/lib/esm/queries/IRDesugar.js.map +1 -1
- package/lib/esm/queries/IRLower.js.map +1 -1
- package/lib/esm/queries/IRMutation.js.map +1 -1
- package/lib/esm/queries/IRPipeline.js.map +1 -1
- package/lib/esm/queries/IRProjection.js.map +1 -1
- package/lib/esm/queries/IntermediateRepresentation.js.map +1 -1
- package/lib/esm/queries/MutationQuery.js.map +1 -1
- package/lib/esm/queries/MutationSerialization.js.map +1 -1
- package/lib/esm/queries/MutationThenable.js.map +1 -1
- package/lib/esm/queries/PropertyPath.js.map +1 -1
- package/lib/esm/queries/ProxiedPathBuilder.js.map +1 -1
- package/lib/esm/queries/QueryBuilder.js.map +1 -1
- package/lib/esm/queries/QueryBuilderSerialization.js.map +1 -1
- package/lib/esm/queries/QueryContext.js.map +1 -1
- package/lib/esm/queries/QueryFactory.js.map +1 -1
- package/lib/esm/queries/SelectQuery.js.map +1 -1
- package/lib/esm/queries/UpdateBuilder.js.map +1 -1
- package/lib/esm/queries/UpdateQuery.js.map +1 -1
- package/lib/esm/queries/fromJSON.js.map +1 -1
- package/lib/esm/queries/lower.js.map +1 -1
- package/lib/esm/queries/lowerMutationJSON.js.map +1 -1
- package/lib/esm/queries/mutationLowerSpec.js.map +1 -1
- package/lib/esm/queries/queryDispatch.js.map +1 -1
- package/lib/esm/queries/reservedQueryNames.js.map +1 -1
- package/lib/esm/queries/resolveShape.js.map +1 -1
- package/lib/esm/queries/wireVersion.js.map +1 -1
- package/lib/esm/shapes/List.js.map +1 -1
- package/lib/esm/shapes/PathNode.js.map +1 -1
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/lib/esm/shapes/Shape.js.map +1 -1
- package/lib/esm/shapes/nodeShapeData.js.map +1 -1
- package/lib/esm/shapes/nodeShapeWire.js.map +1 -1
- package/lib/esm/shapes/propertyShapeTerms.js.map +1 -1
- package/lib/esm/shapes/registerRuntimeShape.js.map +1 -1
- package/lib/esm/shapes/serializePathToNodeData.js.map +1 -1
- package/lib/esm/shapes/syncShapes.js.map +1 -1
- package/lib/esm/shapes/validation.js.map +1 -1
- package/lib/esm/sparql/SparqlAlgebra.js.map +1 -1
- package/lib/esm/sparql/SparqlDataset.js.map +1 -1
- package/lib/esm/sparql/algebraToString.js.map +1 -1
- package/lib/esm/sparql/index.js.map +1 -1
- package/lib/esm/sparql/irToAlgebra.js.map +1 -1
- package/lib/esm/sparql/resultMapping.js.map +1 -1
- package/lib/esm/sparql/sparqlUtils.js.map +1 -1
- package/lib/esm/utils/LinkedErrorLogging.js.map +1 -1
- package/lib/esm/utils/LinkedFileStorage.js.map +1 -1
- package/lib/esm/utils/LinkedStorage.js.map +1 -1
- package/lib/esm/utils/NameSpace.js.map +1 -1
- package/lib/esm/utils/NodeReference.js.map +1 -1
- package/lib/esm/utils/Package.js.map +1 -1
- package/lib/esm/utils/Prefix.js.map +1 -1
- package/lib/esm/utils/ShapeClass.js.map +1 -1
- package/lib/esm/utils/URI.js.map +1 -1
- package/lib/esm/utils/cached.js.map +1 -1
- package/lib/esm/utils/loadStores.js.map +1 -1
- package/lib/esm/utils/parseDatasetsConfig.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskQuery.js","sourceRoot":"","sources":["../../../src/queries/AskQuery.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
1
|
+
{"version":3,"file":"AskQuery.js","sourceRoot":"","sources":["../../../src/queries/AskQuery.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\n\n/**\n * The ask query — \"does any solution exist?\", answered with a boolean.\n *\n * An ask carries a **pattern and nothing else**: no projection, no sorting, no\n * pagination. Those shape or window a *solution sequence*, and an ask has no\n * solution sequence to shape — so rather than being ignored or guarded against,\n * they are simply not expressible here.\n *\n * `.exists()` is the first question asked this way; it is a shortcut for the\n * general form, not a special case of select.\n */\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport type {WherePath} from './SelectQuery.js';\nimport type {RawMinusEntry} from './IRDesugar.js';\nimport type {NodeReferenceValue} from './QueryFactory.js';\nimport type {PendingQueryContext} from './QueryContext.js';\nimport type {ContextRefJSON} from './ContextRef.js';\nimport type {\n WherePathJSON,\n RawMinusEntryJSON,\n} from './QueryBuilderSerialization.js';\n\n/**\n * The live, closed (read-only) ask query — the object an `IDataset` receives.\n *\n * `shape` is **optional**. Absent means no `rdf:type` constraint at all: \"does a\n * node with this IRI exist\", independent of any shape. A dataset reads\n * `toJSON()` to forward the query, or `lower()` to get canonical IR.\n */\nexport interface AskQuery {\n readonly __queryKind: 'ask';\n /** The shape whose instances are asked about; absent for a shapeless ask. */\n readonly shape?: NodeShapeData;\n toJSON(): AskQueryJSON;\n toRawInput(): RawAskInput;\n}\n\n/** Pre-lowering input, as the builder hands it to `lower()`. */\nexport type RawAskInput = {\n /** `.for(null)` — no subject to ask about. Lowering rejects it; see `lowerAsk`. */\n nullSubject?: boolean;\n shape?: {shape?: {id?: string}; id?: string};\n subject?: NodeReferenceValue | PendingQueryContext;\n subjects?: NodeReferenceValue[];\n where?: WherePath;\n minusEntries?: RawMinusEntry[];\n};\n\n/**\n * The DSL-JSON wire form of an ask query.\n *\n * Carries `op: 'ask'` — the same discriminator mutation envelopes use, so\n * `fromJSON` routes on it and an older peer rejects an unknown op loudly rather\n * than reinterpreting the envelope as a select.\n *\n * Every field is pattern-bearing. There is deliberately no `fields`, `limit`,\n * `offset`, `sortBy` or `one`: a receiver has nothing to validate or ignore.\n *\n * ```json\n * {\"v\": \"1.1\", \"op\": \"ask\",\n * \"shape\": \"https://linked.cm/shape/core/Person\",\n * \"subject\": \"linked://tmp/entities/p1\"}\n *\n * {\"v\": \"1.1\", \"op\": \"ask\", \"subject\": \"https://example.org/thing\"}\n * ```\n *\n * The second has no `shape` — that absence *is* the shapeless discriminator.\n */\nexport type AskQueryJSON = {\n v?: string;\n op: 'ask';\n /** Omitted for a shapeless ask (no `rdf:type` constraint). */\n shape?: string;\n /** A node id, or a `{@ctx: name}` reference resolved at lowering. */\n subject?: string | ContextRefJSON;\n subjects?: string[];\n where?: WherePathJSON;\n minusEntries?: RawMinusEntryJSON[];\n /** `.for(null)` — no subject to ask about; the answer is `false` without querying. */\n nullSubject?: boolean;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextRef.js","sourceRoot":"","sources":["../../../src/queries/ContextRef.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAC,eAAe,EAAE,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAOtC,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,EAAC,CAAC,eAAe,CAAC,EAAE,IAAI,EAAC,CAAC;AACnC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAQ,KAAiC,CAAC,eAAe,CAAC,KAAK,QAAQ;QACvE,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,MAAM,KAAK,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,QAAiB;;IAEjB,MAAM,EAAE,GAAG,MAAA,eAAe,CAAC,IAAI,CAAC,0CAAE,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"ContextRef.js","sourceRoot":"","sources":["../../../src/queries/ContextRef.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAC,eAAe,EAAE,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAOtC,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,EAAC,CAAC,eAAe,CAAC,EAAE,IAAI,EAAC,CAAC;AACnC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAQ,KAAiC,CAAC,eAAe,CAAC,KAAK,QAAQ;QACvE,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,MAAM,KAAK,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,QAAiB;;IAEjB,MAAM,EAAE,GAAG,MAAA,eAAe,CAAC,IAAI,CAAC,0CAAE,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC","sourcesContent":["/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\n\n/**\n * The unified wire encoding for a *query-context reference*.\n *\n * A context reference is a placeholder for a node id that is not known when the\n * query is authored — e.g. \"the currently authenticated user\". Instead of\n * resolving it eagerly (which loses the reference and breaks queries built\n * before auth completes), the reference is carried on the wire as a tagged\n * marker and resolved at lowering time against whatever context map is\n * available (client-side React context, server-side auth, …).\n *\n * The same `{@ctx: \"<name>\"}` marker is used in *every* position a node id can\n * appear: the select subject, the update target, where-clause arguments, and\n * mutation field values. One marker, one resolver, everywhere.\n */\nimport {getQueryContext, UnresolvedContextError} from './QueryContext.js';\n\n/**\n * The reserved key that tags a **context reference** in DSL-JSON (`{@ctx: name}`).\n *\n * It is one of the DSL-JSON system value-tags — the `@`-sigiled vocabulary for\n * tagged *values* (`@id`, `@date`, `@list`, `@add`/`@remove`, `@unset`, `@path`,\n * `@ctx`). The `@` sigil frees every user property name: a property literally\n * named `date`/`id`/`path`/… no longer collides with a tag. (Structural\n * node-data keys stay `__id`/`__shape`.) The full tag set is defined by the\n * `MutationValueJSON` union (MutationSerialization.ts) + the DSL-JSON codecs and\n * documented in `documentation/dsl-json.md`; only `@ctx` needs a named constant\n * because it is shared across the select/mutation builders and the IR resolver.\n */\nexport const CONTEXT_REF_KEY = '@ctx';\n\n/** The wire shape of a context reference: `{@ctx: \"<contextName>\"}`. */\nexport interface ContextRefJSON {\n [CONTEXT_REF_KEY]: string;\n}\n\n/** Build a context-reference marker for the given context name. */\nexport function encodeContextRef(name: string): ContextRefJSON {\n return {[CONTEXT_REF_KEY]: name};\n}\n\n/** Type guard: is this value a `{@ctx: \"...\"}` context-reference marker? */\nexport function isContextRefJSON(value: unknown): value is ContextRefJSON {\n return (\n !!value &&\n typeof value === 'object' &&\n typeof (value as Record<string, unknown>)[CONTEXT_REF_KEY] === 'string' &&\n Object.keys(value as object).length === 1\n );\n}\n\n/**\n * Resolve a context name to its node id against the current context map.\n *\n * @param name the context name (e.g. `'user'`)\n * @param required when true, throw {@link UnresolvedContextError} if the context\n * isn't set (the mutation contract — a mutation must not silently target\n * nothing). When false, return `undefined` (the select contract — an\n * unresolved subject simply yields no results, and a reactive layer re-runs\n * the query once the context lands).\n */\nexport function resolveContextId(\n name: string,\n required: boolean,\n): string | undefined {\n const id = getQueryContext(name)?.id;\n if (!id && required) {\n throw new UnresolvedContextError(name);\n }\n return id;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountBuilder.js","sourceRoot":"","sources":["../../../src/queries/CountBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CountBuilder.js","sourceRoot":"","sources":["../../../src/queries/CountBuilder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;;;;AAgBH,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAM/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,gCAAgC,CAAC;AAmBxC,MAAM,OAAO,YAAY;IAGvB,YAAoB,IAAe;QASnC,yEAAyE;QAChE,gBAAW,GAAG,OAAgB,CAAC;QATtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,EAAE,CAAC,IAAe;QACvB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAKD,6EAA6E;IAC7E,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,UAAU;QACR,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAC,GACrE,IAAI,CAAC,KAAK,CAAC;QACb,MAAM,KAAK,GAAkB,EAAC,KAAK,EAAE,UAAiB,EAAC,CAAC;QACxD,8EAA8E;QAC9E,wEAAwE;QACxE,0EAA0E;QAC1E,kDAAkD;QAClD,IAAI,WAAW;YAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1C,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/D,IAAI,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAC/B,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;;QACJ,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAC,GACrE,IAAI,CAAC,KAAK,CAAC;QACb,MAAM,OAAO,GAAG,MAAA,UAAU,CAAC,KAAK,0CAAE,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,6EAA6E;YAC7E,wEAAwE;YACxE,wBAAwB;YACxB,MAAM,IAAI,KAAK,CACb,8EAA8E;gBAC9E,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAmB;YAC3B,CAAC,EAAE,YAAY;YACf,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,OAAO;SACf,CAAC;QAEF,IAAI,OAAO,YAAY,mBAAmB,EAAE,CAAC;YAC3C,yEAAyE;YACzE,4DAA4D;YAC5D,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACrE,IAAI,CAAC,OAAO,GAAI,OAA8B,CAAC,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzC,sBAAsB,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAC5C,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAoB;;QAClC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,4EAA4E;gBAC5E,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,KAAY,CAA0B,CAAC;QAC5E,MAAM,IAAI,GAAc,EAAC,UAAU,EAAC,CAAC;QAErC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3C,CAAC,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,OAAiB,EAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,wBAAwB,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAC9C,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9C,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,MAAiB;;YAC1B,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,WAAW;gBAAE,OAAO,CAAC,CAAC;YAC1B,IAAI,OAAO,YAAY,mBAAmB,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC;YACpE,yEAAyE;YACzE,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,gBAAgB,EAAE,CAAC;YAC9C,+EAA+E;YAC/E,+EAA+E;YAC/E,+DAA+D;YAC/D,OAAO,YAAY,CAAC,QAAe,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KAAA;IAED,kCAAkC;IAClC,IAAI,CACF,WAA0E,EAC1E,UAAuE;QAEvE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CACH,UAAqE;QAErE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,SAA+B;QACrC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAED,iDAAiD;AACjD,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,CAAC,CAAC,KAAK,IAAK,KAAgC,CAAC,WAAW,KAAK,OAAO,CAAC;AAC9E,CAAC","sourcesContent":["/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\n\n/**\n * `CountBuilder` — a query whose answer is a number.\n *\n * A small sibling of `SelectBuilder` rather than a mode of it, for the same reason\n * {@link AskBuilder} is: it can only hold a pattern (shape, subject(s), where,\n * minus), so the normalisation a count needs is a property of the *type*. There is\n * no projection, ordering or **pagination** to drop, because none can be set — and\n * a count of a windowed query is meaningless, so that is the point.\n *\n * Deliberately **non-generic**. `SelectBuilder<S, R, Result>` is heavily inferred;\n * a count answers `number` no matter what the select's projection was, so this type\n * takes part in none of that inference and cannot perturb it.\n */\nimport type {ShapeConstructor} from '../shapes/Shape.js';\nimport {resolveShape} from './resolveShape.js';\nimport type {WherePath} from './SelectQuery.js';\nimport type {RawMinusEntry} from './IRDesugar.js';\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport type {NodeReferenceValue} from './QueryFactory.js';\nimport type {IDataset} from '../interfaces/IDataset.js';\nimport {PendingQueryContext} from './QueryContext.js';\nimport {encodeContextRef, isContextRefJSON} from './ContextRef.js';\nimport {WIRE_VERSION, assertWireVersion} from './wireVersion.js';\nimport {getQueryDispatch, resolveCount} from './queryDispatch.js';\nimport {\n serializeWherePath,\n serializeRawMinusEntry,\n deserializeWherePath,\n deserializeRawMinusEntry,\n} from './QueryBuilderSerialization.js';\nimport type {CountQuery, CountQueryJSON, RawCountInput} from './CountQuery.js';\n\n/**\n * Everything a count can carry. Assembled by `SelectBuilder.toCount()` or\n * `Shape.count()`.\n *\n * `shapeClass` is required — a shapeless count would count every node in the store.\n */\nexport type CountSpec = {\n shapeClass: ShapeConstructor<any>;\n subject?: NodeReferenceValue | PendingQueryContext;\n subjects?: NodeReferenceValue[];\n where?: WherePath;\n minusEntries?: RawMinusEntry[];\n /** `.for(null)` was called — there is no subject to count. */\n nullSubject?: boolean;\n};\n\nexport class CountBuilder implements PromiseLike<number>, Promise<number> {\n private readonly _spec: CountSpec;\n\n private constructor(spec: CountSpec) {\n this._spec = spec;\n }\n\n /** Build from an assembled spec — used by `.toCount()` and `Shape.count()`. */\n static of(spec: CountSpec): CountBuilder {\n return new CountBuilder(spec);\n }\n\n /** Discriminator for the free `lower()` function and dataset routing. */\n readonly __queryKind = 'count' as const;\n\n /** The shape whose matching instances are counted — also the routing key. */\n get shape(): NodeShapeData {\n return this._spec.shapeClass.shape;\n }\n\n toRawInput(): RawCountInput {\n const {shapeClass, subject, subjects, where, minusEntries, nullSubject} =\n this._spec;\n const input: RawCountInput = {shape: shapeClass as any};\n // Carried so lowering can reject it. `exec()` answers `0` before dispatching,\n // but a store handed the builder directly (e.g. after `fromJSON`) would\n // otherwise lower a subject-less query that matches every instance of the\n // shape and report that as the count of one node.\n if (nullSubject) input.nullSubject = true;\n if (subject) input.subject = subject;\n if (subjects && subjects.length > 0) input.subjects = subjects;\n if (where) input.where = where;\n if (minusEntries && minusEntries.length > 0) input.minusEntries = minusEntries;\n return input;\n }\n\n toJSON(): CountQueryJSON {\n const {shapeClass, subject, subjects, where, minusEntries, nullSubject} =\n this._spec;\n const shapeId = shapeClass.shape?.id;\n if (!shapeId) {\n // Refuse here rather than emitting `shape: ''` for the receiver's `fromJSON`\n // to reject: the caller who holds the shape can act on this, and a peer\n // across a wire cannot.\n throw new Error(\n 'Cannot serialize a count query whose shape has no id. A count envelope must ' +\n 'name a shape — a shapeless count would count every node in the store.',\n );\n }\n const json: CountQueryJSON = {\n v: WIRE_VERSION,\n op: 'count',\n shape: shapeId,\n };\n\n if (subject instanceof PendingQueryContext) {\n // Carry the reference, not its (possibly unresolved) id, so the receiver\n // resolves it against its own context map at lowering time.\n json.subject = encodeContextRef(subject.contextName);\n } else if (subject && typeof subject === 'object' && 'id' in subject) {\n json.subject = (subject as NodeReferenceValue).id;\n }\n if (subjects && subjects.length > 0) {\n json.subjects = subjects.map((s) => s.id);\n }\n if (where) {\n json.where = serializeWherePath(where, shapeClass.shape);\n }\n if (minusEntries && minusEntries.length > 0) {\n json.minusEntries = minusEntries.map((e) =>\n serializeRawMinusEntry(e, shapeClass.shape),\n );\n }\n if (nullSubject) {\n json.nullSubject = true;\n }\n return json;\n }\n\n static fromJSON(json: CountQueryJSON): CountBuilder {\n assertWireVersion(json.v);\n if (!json.shape) {\n throw new Error(\n 'A count envelope must name a `shape`. A shapeless count would count every ' +\n 'node in the store, under any type or none.',\n );\n }\n const shapeClass = resolveShape(json.shape as any) as ShapeConstructor<any>;\n const spec: CountSpec = {shapeClass};\n\n if (json.subject !== undefined) {\n spec.subject = isContextRefJSON(json.subject)\n ? new PendingQueryContext(json.subject['@ctx'])\n : {id: json.subject as string};\n }\n if (json.subjects && json.subjects.length > 0) {\n spec.subjects = json.subjects.map((id) => ({id}));\n }\n if (json.where) {\n spec.where = deserializeWherePath(shapeClass.shape, json.where);\n }\n if (json.minusEntries?.length) {\n spec.minusEntries = json.minusEntries.map((e) =>\n deserializeRawMinusEntry(shapeClass.shape, e),\n );\n }\n if (json.nullSubject) spec.nullSubject = true;\n return new CountBuilder(spec);\n }\n\n /**\n * Execute and resolve to a real number.\n *\n * **A failure rejects — it is never reported as `0`.** A count of `0` renders an\n * empty table and is indistinguishable from real data, so a broken count that\n * answered `0` would hide rather than fail. Do not wrap this in `.catch(() => 0)`.\n *\n * The one case that resolves `0` without querying is a query with no subject to\n * count — `.for(null)`, or a `PendingQueryContext` as the subject that has not\n * landed: \"how many nodes with no id match?\" has a correct total answer, and it\n * is `0`.\n */\n async exec(target?: IDataset): Promise<number> {\n const {nullSubject, subject} = this._spec;\n if (nullSubject) return 0;\n if (subject instanceof PendingQueryContext && !subject.id) return 0;\n // `async` ensures a missing global dispatch rejects rather than throwing\n // synchronously past the caller's `.catch()`.\n const dispatch = target ?? getQueryDispatch();\n // `resolveCount` dispatches over the SELECT channel — a count is a select with\n // an aggregate projection, not a query form of its own — and checks the answer\n // is a real non-negative integer before it reaches the caller.\n return resolveCount(dispatch as any, this);\n }\n\n /** `await` triggers execution. */\n then<TResult1 = number, TResult2 = never>(\n onfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.exec().then(onfulfilled, onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n ): Promise<number | TResult> {\n return this.then().catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | null): Promise<number> {\n return this.then().finally(onfinally);\n }\n\n get [Symbol.toStringTag](): string {\n return 'CountBuilder';\n }\n}\n\n/** Narrow an unknown query object to a count. */\nexport function isCountQuery(query: unknown): query is CountQuery {\n return !!query && (query as {__queryKind?: string}).__queryKind === 'count';\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountQuery.js","sourceRoot":"","sources":["../../../src/queries/CountQuery.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
1
|
+
{"version":3,"file":"CountQuery.js","sourceRoot":"","sources":["../../../src/queries/CountQuery.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\n\n/**\n * The count query — \"how many instances match?\", answered with a number.\n *\n * A count carries a **pattern and nothing else**: no projection, no sorting, no\n * pagination. Those shape or window a *solution sequence*, and the number a count\n * answers is a property of the whole match set, not of a page of it — so rather\n * than being ignored or guarded against, they are simply not expressible here.\n *\n * This is the sibling of {@link AskQuery}: same idea, `number` instead of\n * `boolean`. `SelectBuilder.count()` is the first question asked this way.\n */\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport type {WherePath} from './SelectQuery.js';\nimport type {RawMinusEntry} from './IRDesugar.js';\nimport type {NodeReferenceValue} from './QueryFactory.js';\nimport type {PendingQueryContext} from './QueryContext.js';\nimport type {ContextRefJSON} from './ContextRef.js';\nimport type {\n WherePathJSON,\n RawMinusEntryJSON,\n} from './QueryBuilderSerialization.js';\n\n/**\n * The live, closed (read-only) count query — the object an `IDataset` receives.\n *\n * `shape` is **required**, unlike an ask's. A shapeless count would count every\n * node in the store; there is no useful reading of that, so the type does not\n * permit it.\n */\nexport interface CountQuery {\n readonly __queryKind: 'count';\n /** The shape whose matching instances are counted. Also the routing key. */\n readonly shape: NodeShapeData;\n toJSON(): CountQueryJSON;\n toRawInput(): RawCountInput;\n}\n\n/** Pre-lowering input, as the builder hands it to `lower()`. */\nexport type RawCountInput = {\n /**\n * `.for(null)` — no subject to count. Lowering rejects it; `exec()` answers `0`\n * before dispatching. See `lowerCount`.\n */\n nullSubject?: boolean;\n shape?: {shape?: {id?: string}; id?: string};\n subject?: NodeReferenceValue | PendingQueryContext;\n subjects?: NodeReferenceValue[];\n where?: WherePath;\n minusEntries?: RawMinusEntry[];\n};\n\n/**\n * The DSL-JSON wire form of a count query.\n *\n * Carries `op: 'count'` — the same discriminator ask and mutation envelopes use, so\n * `fromJSON` routes on it and an older peer rejects an unknown op loudly rather\n * than reinterpreting the envelope as a select (which would answer with *rows*,\n * windowed by nothing, where the caller expected a total).\n *\n * Every field is pattern-bearing. There is deliberately no `fields`, `limit`,\n * `offset`, `sortBy` or `one`: a receiver has nothing to validate or ignore.\n *\n * ```json\n * {\"v\": \"1.1\", \"op\": \"count\",\n * \"shape\": \"https://linked.cm/shape/core/Person\",\n * \"where\": {\"name\": \"Semmy\"}}\n * ```\n */\nexport type CountQueryJSON = {\n v?: string;\n op: 'count';\n /** Required — see {@link CountQuery.shape}. */\n shape: string;\n /** A node id, or a `{@ctx: name}` reference resolved at lowering. */\n subject?: string | ContextRefJSON;\n subjects?: string[];\n where?: WherePathJSON;\n minusEntries?: RawMinusEntryJSON[];\n /** `.for(null)` — no subject to count; the answer is `0` without querying. */\n nullSubject?: boolean;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateBuilder.js","sourceRoot":"","sources":["../../../src/queries/CreateBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreateBuilder.js","sourceRoot":"","sources":["../../../src/queries/CreateBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {Shape, type ShapeConstructor} from '../shapes/Shape.js';\nimport {resolveShape} from './resolveShape.js';\nimport type {UpdatePartial} from './QueryFactory.js';\nimport type {CreateResponse} from './CreateQuery.js';\nimport {MutationQueryFactory} from './MutationQuery.js';\nimport {MutationThenable} from './MutationThenable.js';\nimport {resolveMutationDispatch} from './queryDispatch.js';\nimport type {IDataset} from '../interfaces/IDataset.js';\nimport {WIRE_VERSION, assertWireVersion} from './wireVersion.js';\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport {encodeNodeData, decodeNodeDataToRaw, type CreateMutationJSON} from './MutationSerialization.js';\nimport type {CreateLowerSpec} from './mutationLowerSpec.js';\n\n/**\n * Internal state bag for CreateBuilder.\n */\ninterface CreateBuilderInit<S extends Shape> {\n shape: ShapeConstructor<S>;\n data?: UpdatePartial<S>;\n fixedId?: string;\n}\n\n/**\n * An immutable, fluent builder for create mutations.\n *\n * Every mutation method returns a new CreateBuilder — the original is never modified.\n *\n * Implements PromiseLike so mutations execute on `await`:\n * ```ts\n * const result = await CreateBuilder.from(Person).set({name: 'Alice'});\n * ```\n *\n * Serialization normalizes through the IR-free factory base; IR is produced by\n * the free `lower()` function (the builder itself imports no IR).\n */\nexport class CreateBuilder<S extends Shape = Shape, U extends UpdatePartial<S> = UpdatePartial<S>>\n extends MutationThenable<CreateResponse<U>>\n{\n protected readonly _tag = 'CreateBuilder';\n private readonly _shape: ShapeConstructor<S>;\n private readonly _data?: UpdatePartial<S>;\n private readonly _fixedId?: string;\n\n private constructor(init: CreateBuilderInit<S>) {\n super();\n this._shape = init.shape;\n this._data = init.data;\n this._fixedId = init.fixedId;\n }\n\n private clone(overrides: Partial<CreateBuilderInit<S>> = {}): CreateBuilder<S, any> {\n return new CreateBuilder<S, any>({\n shape: this._shape,\n data: this._data,\n fixedId: this._fixedId,\n ...overrides,\n });\n }\n\n // ---------------------------------------------------------------------------\n // Static constructors\n // ---------------------------------------------------------------------------\n\n /**\n * Create a CreateBuilder for the given shape.\n */\n static from<S extends Shape>(shape: ShapeConstructor<S> | string): CreateBuilder<S> {\n const resolved = resolveShape<S>(shape);\n return new CreateBuilder<S>({shape: resolved});\n }\n\n /** Reconstruct a CreateBuilder from its DSL-JSON (inverse of `toJSON`). */\n static fromJSON(json: CreateMutationJSON): CreateBuilder {\n assertWireVersion(json.v);\n const builder = CreateBuilder.from(json.shape);\n return builder.set(decodeNodeDataToRaw(json.data, builder._shape.shape) as any);\n }\n\n // ---------------------------------------------------------------------------\n // Fluent API\n // ---------------------------------------------------------------------------\n\n /** Set the data for the entity to create. */\n set<NewU extends UpdatePartial<S>>(data: NewU): CreateBuilder<S, NewU> {\n return this.clone({data}) as unknown as CreateBuilder<S, NewU>;\n }\n\n /** Pre-assign a node ID for the created entity. */\n withId(id: string): CreateBuilder<S, U> {\n return this.clone({fixedId: id}) as unknown as CreateBuilder<S, U>;\n }\n\n // ---------------------------------------------------------------------------\n // Build & execute\n // ---------------------------------------------------------------------------\n\n /** Discriminator for the free `lower()` function and dataset routing. */\n readonly __queryKind = 'create' as const;\n\n /** The shape this query targets — the routing key datasets/`LinkedStorage` use. */\n get shape(): NodeShapeData {\n return this._shape.shape;\n }\n\n /** @internal The IR-free lowering spec consumed by `lower()`. Validates inputs. */\n _lowerSpec(): CreateLowerSpec<S> {\n if (!this._data) {\n throw new Error(\n 'CreateBuilder requires .set(data) before it can be lowered. Specify what to create.',\n );\n }\n const data = this._data;\n\n // No validation here: `describe()` is the single gate, so lowering and\n // `toJSON()` reject exactly the same input. See `shapes/validation`.\n\n // Inject __id if fixedId is set\n const dataWithId = this._fixedId\n ? {...(data as any), __id: this._fixedId}\n : data;\n return {shapeClass: this._shape, data: dataWithId as UpdatePartial<S>};\n }\n\n /**\n * Serialize this create mutation to lightweight DSL-JSON. Normalizes the create\n * data through the IR-free factory base (the same normalization `lower()` runs)\n * so the result is concrete and JSON-safe, then encodes the node description.\n */\n toJSON(): CreateMutationJSON {\n if (!this._data) {\n throw new Error('CreateBuilder requires .set(data) before .toJSON().');\n }\n const dataWithId = this._fixedId\n ? {...(this._data as any), __id: this._fixedId}\n : this._data;\n const description = new MutationQueryFactory().describe(\n this._shape.shape,\n dataWithId,\n {allowTopLevelId: true, validate: 'complete'},\n );\n return {\n v: WIRE_VERSION,\n op: 'create',\n shape: this._shape.shape.id,\n data: encodeNodeData(description, this._shape.shape),\n };\n }\n\n /**\n * Execute the mutation.\n *\n * @param target Optional explicit dataset (a store or a router) to run against. Omitted →\n * the global query dispatch. A `target` runs on that dataset only; the global router is\n * untouched. Rejects if the target dataset doesn't implement create.\n */\n async exec(target?: IDataset): Promise<CreateResponse<U>> {\n return resolveMutationDispatch('create', target).createQuery(this) as Promise<CreateResponse<U>>;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateQuery.js","sourceRoot":"","sources":["../../../src/queries/CreateQuery.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"CreateQuery.js","sourceRoot":"","sources":["../../../src/queries/CreateQuery.ts"],"names":[],"mappings":"","sourcesContent":["import type {AddId} from './QueryFactory.js';\nimport type {IRCreateMutation} from './IntermediateRepresentation.js';\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport type {CreateMutationJSON} from './MutationSerialization.js';\nimport type {CreateLowerSpec} from './mutationLowerSpec.js';\n\n/**\n * The closed, read-only create query a dataset receives (implemented by\n * `CreateBuilder`). The IR is `IRCreateQuery`, produced by `lower(query)` — the\n * IR construction lives in the IR tier, not here, so this module stays IR-free.\n */\nexport interface CreateQuery {\n readonly __queryKind: 'create';\n readonly shape: NodeShapeData;\n toJSON(): CreateMutationJSON;\n /** @internal IR-free lowering spec consumed by `lower()`. */\n _lowerSpec(): CreateLowerSpec;\n}\n\n/** The lowered IR for a create mutation (what `lower()` produces). */\nexport type IRCreateQuery = IRCreateMutation;\n\nexport type CreateResponse<U> = AddId<U, true>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteBuilder.js","sourceRoot":"","sources":["../../../src/queries/DeleteBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeleteBuilder.js","sourceRoot":"","sources":["../../../src/queries/DeleteBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {Shape, type ShapeConstructor} from '../shapes/Shape.js';\nimport {resolveShape} from './resolveShape.js';\nimport type {DeleteResponse} from './DeleteQuery.js';\nimport type {NodeId} from './MutationQuery.js';\nimport {MutationThenable} from './MutationThenable.js';\nimport {resolveMutationDispatch} from './queryDispatch.js';\nimport type {IDataset} from '../interfaces/IDataset.js';\nimport {WIRE_VERSION, assertWireVersion} from './wireVersion.js';\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport {type WhereClause, type WherePath, processWhereClause} from './SelectQuery.js';\nimport {type DeleteMutationJSON} from './MutationSerialization.js';\nimport {serializeWherePath, deserializeWherePath} from './QueryBuilderSerialization.js';\nimport type {DeleteLowerSpec} from './mutationLowerSpec.js';\nimport {PendingQueryContext, asContextRef} from './QueryContext.js';\nimport {encodeContextRef, isContextRefJSON} from './ContextRef.js';\n\ntype DeleteMode = 'ids' | 'all' | 'where';\n\n/** A node to delete: a concrete id, a `{id}` ref, or a live query-context reference. */\nexport type DeleteId = NodeId | PendingQueryContext;\n\n/**\n * Internal state bag for DeleteBuilder.\n */\ninterface DeleteBuilderInit<S extends Shape> {\n shape: ShapeConstructor<S>;\n ids?: DeleteId[];\n mode?: DeleteMode;\n whereFn?: WhereClause<S>;\n /** A pre-resolved where path (used by fromJSON; no live callback). */\n where?: WherePath;\n}\n\n/**\n * An immutable, fluent builder for delete mutations.\n *\n * Implements PromiseLike so mutations execute on `await`:\n * ```ts\n * const result = await DeleteBuilder.from(Person, {id: '...'});\n * await DeleteBuilder.from(Person).all(); // returns void\n * ```\n *\n * R is the resolved type: DeleteResponse for ID-based, void for bulk operations.\n */\nexport class DeleteBuilder<S extends Shape = Shape, R = DeleteResponse>\n extends MutationThenable<R>\n{\n protected readonly _tag = 'DeleteBuilder';\n private readonly _shape: ShapeConstructor<S>;\n private readonly _ids?: DeleteId[];\n private readonly _mode?: DeleteMode;\n private readonly _whereFn?: WhereClause<S>;\n private readonly _where?: WherePath;\n\n private constructor(init: DeleteBuilderInit<S>) {\n super();\n this._shape = init.shape;\n this._ids = init.ids;\n this._mode = init.mode;\n this._whereFn = init.whereFn;\n this._where = init.where;\n }\n\n private clone(overrides: Partial<DeleteBuilderInit<S>> = {}): DeleteBuilder<S, any> {\n return new DeleteBuilder<S>({\n shape: this._shape,\n ids: this._ids,\n mode: this._mode,\n whereFn: this._whereFn,\n where: this._where,\n ...overrides,\n });\n }\n\n // ---------------------------------------------------------------------------\n // Static constructors\n // ---------------------------------------------------------------------------\n\n static from<S extends Shape>(\n shape: ShapeConstructor<S> | string,\n ids?: DeleteId | DeleteId[],\n ): DeleteBuilder<S, DeleteResponse> {\n const resolved = resolveShape<S>(shape);\n if (ids !== undefined) {\n // Normalize any context reference (unset PendingQueryContext or a resolved\n // context shape) to a {@ctx} marker so set/unset behave identically.\n const idsArray = (Array.isArray(ids) ? ids : [ids]).map(\n (id) => asContextRef(id) ?? id,\n );\n return new DeleteBuilder<S>({shape: resolved, ids: idsArray, mode: 'ids'});\n }\n return new DeleteBuilder<S>({shape: resolved});\n }\n\n /** Reconstruct a DeleteBuilder from its DSL-JSON (inverse of `toJSON`). */\n static fromJSON(json: DeleteMutationJSON): DeleteBuilder {\n assertWireVersion(json.v);\n const resolved = resolveShape(json.shape);\n if (json.mode === 'ids') {\n // A `{@ctx}` id rehydrates as a live context ref (resolved at lower).\n const ids: DeleteId[] = json.ids.map((id) =>\n isContextRefJSON(id) ? new PendingQueryContext(id['@ctx']) : {id},\n );\n return new DeleteBuilder({shape: resolved, ids, mode: 'ids'});\n }\n if (json.mode === 'all') {\n return new DeleteBuilder({shape: resolved, mode: 'all'});\n }\n const where = deserializeWherePath(resolved.shape, json.where);\n return new DeleteBuilder({shape: resolved, mode: 'where', where});\n }\n\n // ---------------------------------------------------------------------------\n // Fluent API\n // ---------------------------------------------------------------------------\n\n /** Delete all instances of this shape type. Returns void. */\n all(): DeleteBuilder<S, void> {\n return this.clone({mode: 'all', ids: undefined, whereFn: undefined}) as DeleteBuilder<S, void>;\n }\n\n /** Delete instances matching a condition. Returns void. */\n where(fn: WhereClause<S>): DeleteBuilder<S, void> {\n return this.clone({mode: 'where', whereFn: fn, ids: undefined}) as DeleteBuilder<S, void>;\n }\n\n // ---------------------------------------------------------------------------\n // Build & execute\n // ---------------------------------------------------------------------------\n\n /** Discriminator for the free `lower()` function and dataset routing. */\n readonly __queryKind = 'delete' as const;\n\n /** The shape this query targets — the routing key datasets/`LinkedStorage` use. */\n get shape(): NodeShapeData {\n return this._shape.shape;\n }\n\n /** @internal The IR-free lowering spec consumed by `lower()`. Validates inputs. */\n _lowerSpec(): DeleteLowerSpec<S> {\n const mode = this._mode || (this._ids ? 'ids' : undefined);\n\n if (mode === 'all') {\n return {shapeClass: this._shape, mode: 'all'};\n }\n\n if (mode === 'where') {\n const wherePath =\n this._where ?? (this._whereFn ? processWhereClause(this._whereFn, this._shape) : undefined);\n if (!wherePath) {\n throw new Error('DeleteBuilder.where() requires a condition callback.');\n }\n return {shapeClass: this._shape, mode: 'where', wherePath};\n }\n\n // Default: ID-based delete\n if (!this._ids || this._ids.length === 0) {\n throw new Error(\n 'DeleteBuilder requires at least one ID to delete. Use DeleteBuilder.from(shape, ids), .all(), or .where().',\n );\n }\n return {shapeClass: this._shape, mode: 'ids', ids: this._ids};\n }\n\n /** Serialize this delete mutation to lightweight DSL-JSON. */\n toJSON(): DeleteMutationJSON {\n const shape = this._shape.shape.id;\n const mode = this._mode || (this._ids ? 'ids' : undefined);\n if (mode === 'all') {\n return {v: WIRE_VERSION, op: 'delete', shape, mode: 'all'};\n }\n if (mode === 'where') {\n const wherePath = this._where ?? (this._whereFn ? processWhereClause(this._whereFn, this._shape) : undefined);\n if (!wherePath) {\n throw new Error('DeleteBuilder.where() requires a condition callback.');\n }\n return {\n v: WIRE_VERSION,\n op: 'delete',\n shape,\n mode: 'where',\n where: serializeWherePath(wherePath, this._shape.shape),\n };\n }\n if (!this._ids || this._ids.length === 0) {\n throw new Error(\n 'DeleteBuilder requires at least one ID, .all(), or .where() before .toJSON().',\n );\n }\n return {\n v: WIRE_VERSION,\n op: 'delete',\n shape,\n mode: 'ids',\n ids: this._ids.map((id) =>\n // An unresolved context ref travels as a `{@ctx}` marker; a concrete id\n // (string or `{id}`, incl. a resolved context shape) as a plain string.\n id instanceof PendingQueryContext\n ? encodeContextRef(id.contextName)\n : typeof id === 'string'\n ? id\n : id.id,\n ),\n };\n }\n\n /**\n * Execute the mutation.\n *\n * @param target Optional explicit dataset (a store or a router) to run against. Omitted →\n * the global query dispatch. A `target` runs on that dataset only; the global router is\n * untouched. Rejects if the target dataset doesn't implement delete.\n */\n async exec(target?: IDataset): Promise<R> {\n const mode = this._mode || (this._ids ? 'ids' : undefined);\n const result = resolveMutationDispatch('delete', target).deleteQuery(this);\n // Bulk (all/where) resolves to void; id-based resolves to the DeleteResponse.\n if (mode === 'all' || mode === 'where') {\n return result.then(() => undefined) as Promise<R>;\n }\n return result as Promise<R>;\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteQuery.js","sourceRoot":"","sources":["../../../src/queries/DeleteQuery.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"DeleteQuery.js","sourceRoot":"","sources":["../../../src/queries/DeleteQuery.ts"],"names":[],"mappings":"","sourcesContent":["import type {NodeReferenceValue} from './QueryFactory.js';\nimport type {\n IRDeleteMutation,\n IRDeleteAllMutation,\n IRDeleteWhereMutation,\n} from './IntermediateRepresentation.js';\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport type {DeleteMutationJSON} from './MutationSerialization.js';\nimport type {DeleteLowerSpec} from './mutationLowerSpec.js';\n\n/**\n * The closed, read-only delete query a dataset receives (implemented by\n * `DeleteBuilder`). The IR is `IRDeleteQuery`, produced by `lower(query)` — the\n * IR construction lives in the IR tier, not here, so this module stays IR-free.\n */\nexport interface DeleteQuery {\n readonly __queryKind: 'delete';\n readonly shape: NodeShapeData;\n toJSON(): DeleteMutationJSON;\n /** @internal IR-free lowering spec consumed by `lower()`. */\n _lowerSpec(): DeleteLowerSpec;\n}\n\n/** The lowered IR for a delete mutation (what `lower()` produces). */\nexport type IRDeleteQuery = IRDeleteMutation | IRDeleteAllMutation | IRDeleteWhereMutation;\n\nexport type DeleteResponse = {\n /**\n * The IDs of the items that were successfully deleted.\n */\n deleted: NodeReferenceValue[];\n /**\n * The number of successfully deleted items.\n */\n count: number;\n /**\n * The IDs of the items that couldn't be deleted.\n */\n failed?: NodeReferenceValue[];\n /**\n * A mapping of IDs to error messages for the items that couldn't be deleted.\n */\n errors?: Record<string, string>;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DslJsonExpression.js","sourceRoot":"","sources":["../../../src/queries/DslJsonExpression.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DslJsonExpression.js","sourceRoot":"","sources":["../../../src/queries/DslJsonExpression.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DSL-JSON expression codec — the bidirectional bridge between the runtime\n * expression IR (`ExpressionNode` = `{ir, refs}`, `ExistsCondition`) and the\n * DSL-JSON wire grammar (documentation/dsl-json.md).\n *\n * Two tiers:\n * - VALUE (`encodeValueExpr`/`decodeValueExpr`): a computed value or an\n * operand — bare scalar, `{@path}`, `{@id}`, `{@ctx}`, `{@date}`,\n * `{@list}`, or an S-expr array `[\"op\", …]`.\n * - CONDITION (`encodeCondition`/`decodeCondition`): a boolean where-clause —\n * path-keyed object (implicit equals / operator map / quantifier),\n * `{and|or|not}`, or an S-expr array fallback.\n *\n * The codec is pure and shape-aware: it resolves property labels against the\n * supplied `NodeShapeData`, and never touches builder internals. Function and\n * aggregate names are kept verbatim from the IR (e.g. `STRLEN`, `count`) — no\n * name map, lossless round-trip. Round-trip-through-`lower` is the contract.\n */\nimport type {\n IRExpression,\n IRBinaryOperator,\n} from './IntermediateRepresentation.js';\nimport {\n ExpressionNode,\n ExistsCondition,\n type PropertyRefMap,\n tracedPropertyExpression,\n tracedAliasExpression,\n} from '../expressions/ExpressionNode.js';\nimport type {NodeShapeData} from '../shapes/SHACL.js';\nimport type {WherePath} from './SelectQuery.js';\nimport {walkPropertyPath} from './PropertyPath.js';\n\n// ---------------------------------------------------------------------------\n// Wire types\n// ---------------------------------------------------------------------------\n\nexport type DslJsonScalar = string | number | boolean | null;\nexport type DslJsonRef = {'@id': string};\nexport type DslJsonCtx = {'@ctx': string; '@path'?: string};\nexport type DslJsonDate = {'@date': string};\nexport type DslJsonList = {'@list': DslJsonValue[]};\nexport type DslJsonPath = {'@path': string};\nexport type DslJsonSExpr = [string, ...DslJsonValue[]];\nexport type DslJsonValue =\n | DslJsonScalar\n | DslJsonRef\n | DslJsonCtx\n | DslJsonDate\n | DslJsonList\n | DslJsonPath\n | DslJsonSExpr;\n\nexport type DslJsonOpMap = {[op: string]: DslJsonValue};\n/**\n * A DSL-JSON condition: an S-expr array, or a keyed object whose keys are property\n * paths (→ value / operator-map), quantifier keys like `rel.some` (→ a nested\n * condition), or combinators `and`/`or` (→ a condition array) / `not` (→ a\n * condition). The permissive index reflects the structural wire shape.\n */\nexport type DslJsonCondition =\n | DslJsonSExpr\n | {[key: string]: DslJsonValue | DslJsonOpMap | DslJsonCondition | DslJsonCondition[]};\n\nconst COMPARISON_OPS = new Set<IRBinaryOperator>([\n '=',\n '!=',\n '>',\n '>=',\n '<',\n '<=',\n]);\n\n// Word-operator aliases accepted on input (LLM/human-friendly). Symbols remain\n// the canonical/emitted form — these normalize to a symbol on decode.\nconst OP_ALIASES: Record<string, IRBinaryOperator> = {\n equals: '=',\n notEquals: '!=',\n gt: '>',\n gte: '>=',\n lt: '<',\n lte: '<=',\n};\n\nconst COMBINATORS = new Set(['and', 'or', 'not']);\n\n// ---------------------------------------------------------------------------\n// Path helpers\n// ---------------------------------------------------------------------------\n\n/** PropertyShapeData id = `{shapeId}/{label}` (SHACL.ts), so the label is the last segment. */\nfunction labelOf(segmentIri: string): string {\n const i = segmentIri.lastIndexOf('/');\n return i >= 0 ? segmentIri.slice(i + 1) : segmentIri;\n}\n\n/** Property-shape IRIs → a dotted label path. */\nexport function segmentsToPath(segmentIds: readonly string[]): string {\n return segmentIds.map(labelOf).join('.');\n}\n\n/** A dotted label path → its property-shape IRIs, resolved against `shape`. */\nexport function pathToSegmentIds(shape: NodeShapeData, path: string): string[] {\n return walkPropertyPath(shape, path).segments.map((s) => s.id);\n}\n\n// ---------------------------------------------------------------------------\n// refs merging\n// ---------------------------------------------------------------------------\n\nfunction mergeRefs(into: Map<string, readonly string[]>, from: PropertyRefMap): void {\n for (const [k, v] of from) into.set(k, v);\n}\n\n// ---------------------------------------------------------------------------\n// VALUE tier\n// ---------------------------------------------------------------------------\n\n/** Encode an IR expression used as a value/operand into a DSL-JSON value. */\nexport function encodeValueExpr(\n ir: IRExpression,\n refs: PropertyRefMap,\n): DslJsonValue {\n switch (ir.kind) {\n case 'literal_expr': {\n const v = ir.value as unknown;\n if (v instanceof Date) return {'@date': v.toISOString()};\n return v as DslJsonScalar;\n }\n case 'reference_expr':\n if (ir.contextName !== undefined) return {'@ctx': ir.contextName};\n return {'@id': ir.value as string};\n case 'context_property_expr':\n return {'@ctx': ir.contextName as string, '@path': labelOf(ir.property)};\n case 'property_expr': {\n const segs = refs.get(ir.sourceAlias);\n return {'@path': segs ? segmentsToPath(segs) : labelOf(ir.property)};\n }\n case 'alias_expr': {\n const segs = refs.get(ir.alias);\n // A bare alias_expr as a value is the node at the end of the traversal.\n return {'@path': segs ? segmentsToPath(segs) : ir.alias};\n }\n case 'in_expr':\n return [\n ir.negated ? 'not-in' : 'in',\n encodeValueExpr(ir.value, refs),\n ...ir.source.list.map((e) => encodeValueExpr(e, refs)),\n ];\n case 'binary_expr':\n return [\n ir.operator,\n encodeValueExpr(ir.left, refs),\n encodeValueExpr(ir.right, refs),\n ];\n case 'logical_expr':\n return [ir.operator, ...ir.expressions.map((e) => encodeValueExpr(e, refs))];\n case 'not_expr':\n return ['not', encodeValueExpr(ir.expression, refs)];\n case 'function_expr':\n return [ir.name, ...ir.args.map((a) => encodeValueExpr(a, refs))];\n case 'aggregate_expr':\n return [ir.name, ...ir.args.map((a) => encodeValueExpr(a, refs))];\n default:\n throw new Error(`Cannot encode expression of kind '${(ir as {kind: string}).kind}'`);\n }\n}\n\n// Bound S-expr decode recursion so a deeply-nested expression from `fromJSON()`\n// cannot exhaust the stack (RangeError DoS). Real expressions nest a handful of\n// levels; 128 is far beyond any legitimate query.\nconst MAX_EXPR_DEPTH = 128;\nlet _exprDepth = 0;\n\n/** Decode a DSL-JSON value back into an IR expression + its placeholder refs. */\nexport function decodeValueExpr(\n json: DslJsonValue,\n shape: NodeShapeData,\n): {ir: IRExpression; refs: PropertyRefMap} {\n if (++_exprDepth > MAX_EXPR_DEPTH) {\n _exprDepth = 0;\n throw new Error('DSL-JSON expression nested too deeply');\n }\n try {\n return decodeValueExprInner(json, shape);\n } finally {\n _exprDepth--;\n }\n}\n\nfunction decodeValueExprInner(\n json: DslJsonValue,\n shape: NodeShapeData,\n): {ir: IRExpression; refs: PropertyRefMap} {\n // S-expr array\n if (Array.isArray(json)) {\n const [head, ...operands] = json;\n const refs = new Map<string, readonly string[]>();\n const args = operands.map((o) => {\n const {ir, refs: r} = decodeValueExpr(o, shape);\n mergeRefs(refs, r);\n return ir;\n });\n return {ir: headToIR(head, args), refs};\n }\n // Objects: recognized value-objects\n if (json !== null && typeof json === 'object') {\n const o = json as Record<string, unknown>;\n if ('@id' in o) {\n return {ir: {kind: 'reference_expr', value: o['@id'] as string}, refs: new Map()};\n }\n if ('@ctx' in o) {\n if (typeof o['@path'] === 'string') {\n const property = pathToSegmentIds(shape, o['@path']).pop() as string;\n return {\n ir: {kind: 'context_property_expr', contextName: o['@ctx'] as string, property},\n refs: new Map(),\n };\n }\n return {ir: {kind: 'reference_expr', contextName: o['@ctx'] as string}, refs: new Map()};\n }\n if ('@date' in o) {\n return {ir: {kind: 'literal_expr', value: new Date(o['@date'] as string)}, refs: new Map()};\n }\n if ('@path' in o) {\n return propertyOrAlias(shape, o['@path'] as string);\n }\n if ('@list' in o) {\n throw new Error('A {@list} value is only valid as an in/nin operand');\n }\n }\n // bare scalar literal\n return {ir: {kind: 'literal_expr', value: json as never}, refs: new Map()};\n}\n\n/**\n * Resolve a dotted path to its expression node:\n * - empty path `\"\"` → `alias_expr` (the bare subject, e.g. `p.equals(x)`);\n * - any non-empty path → `property_expr` (a property access, relation or not —\n * `p.bestFriend.equals(x)` compares the property value, no traversal).\n */\nfunction propertyOrAlias(\n shape: NodeShapeData,\n path: string,\n): {ir: IRExpression; refs: PropertyRefMap} {\n const node =\n path === ''\n ? tracedAliasExpression([])\n : tracedPropertyExpression(pathToSegmentIds(shape, path));\n return {ir: node.ir, refs: node._refs};\n}\n\n/** Build an IR node from an S-expr head symbol/name + decoded args. */\nfunction headToIR(head: string, args: IRExpression[]): IRExpression {\n if (head === 'and' || head === 'or') {\n return {kind: 'logical_expr', operator: head, expressions: args};\n }\n if (head === 'not') {\n return {kind: 'not_expr', expression: args[0]};\n }\n if (head === 'in' || head === 'not-in') {\n return {kind: 'in_expr', negated: head === 'not-in', value: args[0], source: {list: args.slice(1)}};\n }\n if (COMPARISON_OPS.has(head as IRBinaryOperator) || '+-*/'.includes(head)) {\n return {kind: 'binary_expr', operator: head as IRBinaryOperator, left: args[0], right: args[1]};\n }\n if (AGGREGATES.has(head)) {\n return {kind: 'aggregate_expr', name: head as never, args};\n }\n // default: a named function (verbatim IR function name, e.g. STRLEN)\n return {kind: 'function_expr', name: head, args};\n}\n\nconst AGGREGATES = new Set(['count', 'sum', 'avg', 'min', 'max']);\n\n// ---------------------------------------------------------------------------\n// CONDITION tier\n// ---------------------------------------------------------------------------\n\n/** Encode a where-clause node (boolean) into a DSL-JSON condition. */\nexport function encodeCondition(\n node: ExpressionNode | ExistsCondition,\n shape: NodeShapeData,\n): DslJsonCondition {\n if (node instanceof ExistsCondition) {\n return encodeExists(node, shape);\n }\n return encodeBoolExpr(node.ir, node._refs, shape);\n}\n\nfunction encodeExists(ec: ExistsCondition, shape: NodeShapeData): DslJsonCondition {\n const rel = segmentsToPath(ec.pathSegmentIds);\n let quantifier: 'some' | 'none' | 'every';\n let predIr = ec.predicate.ir;\n const predRefs = ec.predicate._refs;\n if (!ec.negated) {\n quantifier = 'some';\n } else if (predIr.kind === 'not_expr') {\n // every(fn) was built as NOT EXISTS(NOT fn) — unwrap the inner predicate.\n quantifier = 'every';\n predIr = predIr.expression;\n } else {\n quantifier = 'none';\n }\n let base: DslJsonCondition = {\n [`${rel}.${quantifier}`]: encodeBoolExpr(predIr, predRefs, shape),\n };\n // Fold any chained and/or conditions into nested logical combinators.\n for (const {op, condition} of ec.chain) {\n const c = encodeCondition(\n condition instanceof ExistsCondition ? condition : (condition as ExpressionNode),\n shape,\n );\n base = {[op]: [base, c]} as DslJsonCondition;\n }\n return base;\n}\n\n/** Encode a boolean IR expression into a DSL-JSON condition (path-keyed where possible). */\nfunction encodeBoolExpr(\n ir: IRExpression,\n refs: PropertyRefMap,\n shape: NodeShapeData,\n): DslJsonCondition {\n if (ir.kind === 'logical_expr') {\n const parts = ir.expressions.map((e) => encodeBoolExpr(e, refs, shape));\n if (ir.operator === 'and') {\n const merged = tryMergeAnd(parts);\n if (merged) return merged;\n }\n return {[ir.operator]: parts} as DslJsonCondition;\n }\n if (ir.kind === 'not_expr') {\n return {not: encodeBoolExpr(ir.expression, refs, shape)};\n }\n if (ir.kind === 'in_expr') {\n const key = pathKeyOf(ir.value, refs);\n if (key !== null) {\n const list = ir.source.list.map((e) => encodeValueExpr(e, refs));\n return {[key]: {[ir.negated ? 'notOneOf' : 'oneOf']: list}} as DslJsonCondition;\n }\n }\n if (ir.kind === 'binary_expr' && COMPARISON_OPS.has(ir.operator)) {\n const key = pathKeyOf(ir.left, refs);\n if (key !== null) {\n const value = encodeValueExpr(ir.right, refs);\n if (ir.operator === '=') return {[key]: value};\n return {[key]: {[ir.operator]: value}};\n }\n }\n // Fallback: S-expr (boolean expression that isn't a simple path-keyed shape).\n return encodeValueExpr(ir, refs) as DslJsonCondition;\n}\n\n/** A path key for a left operand that is a single property/alias/context property. */\nfunction pathKeyOf(ir: IRExpression, refs: PropertyRefMap): string | null {\n if (ir.kind === 'property_expr') {\n const segs = refs.get(ir.sourceAlias);\n return segs ? segmentsToPath(segs) : labelOf(ir.property);\n }\n if (ir.kind === 'alias_expr') {\n const segs = refs.get(ir.alias);\n return segs ? segmentsToPath(segs) : null;\n }\n if (ir.kind === 'context_property_expr') {\n return null; // a context property on the LHS is uncommon; use S-expr\n }\n return null;\n}\n\n/** Merge AND conjuncts into one path-keyed object iff all are distinct single-key path conditions. */\nfunction tryMergeAnd(parts: DslJsonCondition[]): DslJsonCondition | null {\n const out: Record<string, unknown> = {};\n for (const p of parts) {\n if (Array.isArray(p) || typeof p !== 'object' || p === null) return null;\n const keys = Object.keys(p);\n if (keys.length !== 1) return null;\n const k = keys[0];\n if (COMBINATORS.has(k) || k in out) return null;\n out[k] = (p as Record<string, unknown>)[k];\n }\n return out as DslJsonCondition;\n}\n\n/** Decode a DSL-JSON condition into a runtime WherePath (`{expressionNode}` | `{existsCondition}`). */\nexport function decodeCondition(json: DslJsonCondition, shape: NodeShapeData): WherePath {\n const node = decodeConditionNode(json, shape);\n return node instanceof ExistsCondition\n ? ({existsCondition: node} as WherePath)\n : ({expressionNode: node} as WherePath);\n}\n\nfunction decodeConditionNode(\n json: DslJsonCondition,\n shape: NodeShapeData,\n): ExpressionNode | ExistsCondition {\n // S-expr fallback\n if (Array.isArray(json)) {\n const {ir, refs} = decodeValueExpr(json, shape);\n return new ExpressionNode(ir, refs);\n }\n const o = json as Record<string, unknown>;\n const keys = Object.keys(o);\n\n // Combinators\n if (keys.length === 1 && COMBINATORS.has(keys[0])) {\n const k = keys[0];\n if (k === 'not') {\n const inner = decodeConditionNode(o.not as DslJsonCondition, shape);\n if (inner instanceof ExistsCondition) return inner.not();\n return new ExpressionNode({kind: 'not_expr', expression: inner.ir}, inner._refs);\n }\n // and / or\n const elems = (o[k] as DslJsonCondition[]).map((c) => decodeConditionNode(c, shape));\n // An exists-chain: first operand is an ExistsCondition → fold the rest as its chain.\n if (elems[0] instanceof ExistsCondition) {\n let ec = elems[0] as ExistsCondition;\n for (let i = 1; i < elems.length; i++) {\n ec = (k === 'and' ? ec.and(elems[i] as never) : ec.or(elems[i] as never)) as ExistsCondition;\n }\n return ec;\n }\n const refs = new Map<string, readonly string[]>();\n const expressions = elems.map((e) => {\n mergeRefs(refs, (e as ExpressionNode)._refs);\n return (e as ExpressionNode).ir;\n });\n return new ExpressionNode({kind: 'logical_expr', operator: k as 'and' | 'or', expressions}, refs);\n }\n\n // Single quantifier key: \"rel.some\" | \"rel.every\" | \"rel.none\"\n if (keys.length === 1) {\n const q = matchQuantifier(keys[0]);\n if (q) {\n const predicate = expressionNodeFromCondition(o[keys[0]] as DslJsonCondition, shape);\n const segmentIds = pathToSegmentIds(shape, q.rel);\n if (q.kind === 'some') return new ExistsCondition(segmentIds, predicate, false);\n if (q.kind === 'none') return new ExistsCondition(segmentIds, predicate, true);\n // every(fn) = NOT EXISTS(NOT fn)\n return new ExistsCondition(\n segmentIds,\n new ExpressionNode({kind: 'not_expr', expression: predicate.ir}, predicate._refs),\n true,\n );\n }\n }\n\n // Path-keyed condition(s): one or more `path: value|opMap` → AND of comparisons.\n const refs = new Map<string, readonly string[]>();\n const comparisons: IRExpression[] = [];\n for (const key of keys) {\n const left = propertyOrAlias(shape, key);\n mergeRefs(refs, left.refs);\n const v = o[key];\n for (const cmp of comparisonsFor(left.ir, v, shape, refs)) comparisons.push(cmp);\n }\n const ir =\n comparisons.length === 1\n ? comparisons[0]\n : {kind: 'logical_expr' as const, operator: 'and' as const, expressions: comparisons};\n return new ExpressionNode(ir, refs);\n}\n\nfunction comparisonsFor(\n left: IRExpression,\n value: unknown,\n shape: NodeShapeData,\n refs: Map<string, readonly string[]>,\n): IRExpression[] {\n // Membership: { \"oneOf\": [...] } / { \"notOneOf\": [...] } → IN / NOT IN.\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n const o = value as Record<string, unknown>;\n if (Array.isArray(o.oneOf) || Array.isArray(o.notOneOf)) {\n const negated = Array.isArray(o.notOneOf);\n const listRaw = (negated ? o.notOneOf : o.oneOf) as DslJsonValue[];\n const list = listRaw.map((el) => {\n const r = decodeValueExpr(el, shape);\n mergeRefs(refs, r.refs);\n return r.ir;\n });\n return [{kind: 'in_expr', negated, value: left, source: {list}}];\n }\n }\n // operator map: { \">\": 18, \"<\": 65 } (symbols) or { \"gt\": 18 } (word aliases)\n if (isOpMap(value)) {\n return Object.entries(value as DslJsonOpMap).map(([op, v]) => {\n const r = decodeValueExpr(v as DslJsonValue, shape);\n mergeRefs(refs, r.refs);\n const operator = (OP_ALIASES[op] ?? op) as IRBinaryOperator;\n return {kind: 'binary_expr', operator, left, right: r.ir};\n });\n }\n // implicit equals\n const r = decodeValueExpr(value as DslJsonValue, shape);\n mergeRefs(refs, r.refs);\n return [{kind: 'binary_expr', operator: '=', left, right: r.ir}];\n}\n\n/** An object whose keys are all operator symbols (not a recognized value-object). */\nfunction isOpMap(value: unknown): boolean {\n if (Array.isArray(value) || value === null || typeof value !== 'object') return false;\n const keys = Object.keys(value as object);\n if (keys.length === 0) return false;\n if (keys.some((k) => k === '@id' || k === '@ctx' || k === '@path' || k === '@date' || k === '@list')) {\n return false;\n }\n // Comparison operators (symbols) or their word aliases (`equals`/`gt`/…) form\n // an op-map. `in`/`nin` are handled separately (oneOf/notOneOf, see decode).\n return keys.every(\n (k) => COMPARISON_OPS.has(k as IRBinaryOperator) || k in OP_ALIASES,\n );\n}\n\nfunction matchQuantifier(\n key: string,\n): {rel: string; kind: 'some' | 'every' | 'none'} | null {\n for (const kind of ['some', 'every', 'none'] as const) {\n if (key.endsWith(`.${kind}`)) {\n return {rel: key.slice(0, -(kind.length + 1)), kind};\n }\n }\n return null;\n}\n\n/** A quantifier predicate decodes to an ExpressionNode (its inner boolean). */\nfunction expressionNodeFromCondition(json: DslJsonCondition, shape: NodeShapeData): ExpressionNode {\n const node = decodeConditionNode(json, shape);\n if (node instanceof ExistsCondition) {\n // Nested exists as a predicate is uncommon; wrap is not representable here.\n throw new Error('Nested exists inside a quantifier predicate is not supported');\n }\n return node;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldSet.js","sourceRoot":"","sources":["../../../src/queries/FieldSet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FieldSet.js","sourceRoot":"","sources":["../../../src/queries/FieldSet.ts"],"names":[],"mappings":"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","sourcesContent":["import type {NodeShapeData, PropertyShapeData} from '../shapes/SHACL.js';\nimport {getUniquePropertyShapes, getPropertyShape} from '../shapes/nodeShapeData.js';\nimport type {Shape, ShapeConstructor} from '../shapes/Shape.js';\nimport {PropertyPath, walkPropertyPath} from './PropertyPath.js';\nimport {getShapeClass, getAllShapeClasses, getNodeShape, getAllNodeShapes} from '../utils/ShapeClass.js';\nimport type {WherePath} from './SelectQuery.js';\nimport {createProxiedPathBuilder} from './ProxiedPathBuilder.js';\nimport {isExpressionNode, ExpressionNode} from '../expressions/ExpressionNode.js';\nimport {encodeValueExpr, decodeValueExpr, type DslJsonValue} from './DslJsonExpression.js';\nimport {\n serializeWherePath,\n deserializeWherePath,\n type WherePathJSON,\n} from './QueryBuilderSerialization.js';\n\n// Duck-type helpers for runtime detection.\n// These check structural shape since the classes live in SelectQuery.ts (runtime circular dep).\n// QueryBuilderObject has .property (PropertyShapeData) and .subject (QueryBuilderObject).\n// SetSize has .subject and extends QueryPrimitive<number>.\ntype QueryBuilderObjectLike = {\n property?: PropertyShapeData;\n subject?: QueryBuilderObjectLike;\n wherePath?: unknown;\n};\nconst isQueryBuilderObject = (obj: any): obj is QueryBuilderObjectLike =>\n obj !== null &&\n typeof obj === 'object' &&\n 'property' in obj &&\n 'subject' in obj &&\n typeof obj.getPropertyPath === 'function';\n\nconst isSetSize = (obj: any): boolean =>\n obj !== null &&\n typeof obj === 'object' &&\n 'subject' in obj &&\n typeof obj.as === 'function' &&\n typeof obj.getPropertyPath === 'function' &&\n // SetSize has a 'countable' field (may be undefined) and 'label' field\n 'label' in obj;\n\n// BoundComponent: has .source (QueryBuilderObject) and .originalValue (component-like)\nconst isBoundComponent = (obj: any): boolean =>\n obj !== null &&\n typeof obj === 'object' &&\n 'source' in obj &&\n 'originalValue' in obj;\n\n/**\n * A single entry in a FieldSet: a property path with optional alias, scoped filter,\n * sub-selection, aggregation, and custom key.\n */\nexport type FieldSetEntry = {\n path: PropertyPath;\n alias?: string;\n scopedFilter?: WherePath;\n /** Index into path.segments indicating which segment the scopedFilter applies to.\n * Defaults to the last segment if not specified. */\n scopedFilterIndex?: number;\n /** Nested object selection — the user explicitly selected sub-fields (e.g. `p.friends.select(...)`) */\n subSelect?: FieldSet;\n aggregation?: 'count';\n customKey?: string;\n /** Component preload composition — the FieldSet comes from a linked component's own query,\n * merged in via `preloadFor()`. Distinct from subSelect which is a user-authored nested query. */\n preloadSubSelect?: FieldSet;\n /** Computed expression from proxy tracing (e.g. `p.age.times(12)`) */\n expressionNode?: ExpressionNode;\n /** Inner LIMIT for a nested select (e.g. `p.friends.select(...).limit(2)`).\n * Only supported when the outer query targets a single subject. */\n innerLimit?: number;\n /** Inner OFFSET for a nested select. */\n innerOffset?: number;\n /** Inner ORDER BY for a nested select — paths relative to the sub-select shape. */\n innerOrderBy?: FieldSetInnerOrderBy[];\n};\n\n/** A single inner ORDER BY clause for a nested select. */\nexport type FieldSetInnerOrderBy = {\n propertyShapeId: string;\n direction: 'ASC' | 'DESC';\n};\n\n/**\n * Input types accepted by FieldSet construction methods.\n *\n * - `string` — resolved via walkPropertyPath (dot-separated)\n * - `PropertyPath` — used directly\n * - `FieldSet` — merged in\n * - `Record<string, string[] | FieldSet>` — nested fields\n */\nexport type FieldSetInput =\n | string\n | PropertyPath\n | FieldSet\n | Record<string, string[] | FieldSet>;\n\n/** A computed projection field: `{ as?, value }` — a DSL-JSON expression, no path. */\nexport type FieldSetComputedJSON = {\n as?: string;\n value: DslJsonValue;\n customKey?: string;\n};\n\n/** Options for a relation projection (the object value under a relation key). */\nexport type FieldSetRelationOptionsJSON = {\n as?: string;\n /** Shape IRI for nested fields when it differs from the relation's declared value shape. */\n shape?: string;\n /** A scoped filter on the relation (`p.friends.where(...)`). */\n where?: WherePathJSON;\n /** Which path segment the scoped `where` applies to (defaults to the last). */\n whereIndex?: number;\n aggregation?: string;\n customKey?: string;\n /** Nested-select pagination (`p.friends.select(...).limit(5).offset(2).orderBy(...)`). */\n limit?: number;\n offset?: number;\n orderBy?: Array<{[path: string]: 'ASC' | 'DESC'}>;\n /** Sub-projection of the related shape. */\n fields?: FieldSetFieldJSON[];\n};\n\n/**\n * A relation-keyed field: a single-key object whose key is the relation path\n * (labels dotted, with inline `as(Shape)` casts) and whose value is either the\n * sub-fields array (`{ \"friends\": [\"name\"] }`) or an options object\n * (`{ \"friends\": { as, where, fields } }`). Also covers a leaf with options\n * (`{ \"name\": { \"as\": \"personName\" } }`). The related shape is inferred.\n */\nexport type FieldSetRelationJSON = {\n [path: string]: FieldSetFieldJSON[] | FieldSetRelationOptionsJSON;\n};\n\n/**\n * JSON representation of a FieldSet field entry — exactly three shapes:\n * - a **string** leaf path (`\"name\"`, `\"friends.friends.name\"`, `\"pets.as(Dog).level\"`)\n * - a **relation-keyed** object (`{ \"friends\": [...] | {options} }`)\n * - a **computed** object (`{ as?, value }`)\n */\nexport type FieldSetFieldJSON = string | FieldSetComputedJSON | FieldSetRelationJSON;\n\n/** JSON representation of a FieldSet (a shape + its top-level fields). */\nexport type FieldSetJSON = {\n shape: string;\n fields: FieldSetFieldJSON[];\n};\n\n/** Option keys reserved inside a relation options object (never a relation path). */\nconst RELATION_OPTION_KEYS = new Set([\n 'as',\n 'shape',\n 'where',\n 'whereIndex',\n 'aggregation',\n 'customKey',\n 'limit',\n 'offset',\n 'orderBy',\n 'fields',\n]);\n\n/**\n * An immutable, composable collection of property paths for a shape.\n *\n * FieldSet describes which properties to select, independent of\n * how the query is built. It integrates with QueryBuilder via\n * `.select(fieldSet)`.\n *\n * Every mutation method returns a new FieldSet — the original is never modified.\n */\nexport class FieldSet<R = any, Source = any> {\n readonly shape: NodeShapeData;\n readonly entries: readonly FieldSetEntry[];\n /** Phantom field — carries the callback response type for conditional type inference. */\n declare readonly __response: R;\n /** Phantom field — carries the source context (QueryShapeSet/QueryShape) for conditional type inference. */\n declare readonly __source: Source;\n\n /**\n * For sub-select FieldSets: the raw callback return value (proxy trace objects).\n * Stored so conditional types can extract the response type.\n */\n readonly traceResponse?: R;\n\n /**\n * For sub-select FieldSets: the parent property segments leading to this sub-select.\n */\n readonly parentSegments?: PropertyShapeData[];\n\n /**\n * For sub-select FieldSets: the shape class (ShapeType) of the sub-select's target.\n */\n readonly shapeType?: any;\n\n /**\n * For sub-select FieldSets: inline `.where()` filter found on the parent\n * traversal chain (e.g. `p.friends.where(...).select(...)`), plus the index\n * into `parentSegments` of the segment it scopes.\n */\n readonly parentWherePath?: WherePath;\n readonly parentWherePathIndex?: number;\n\n /**\n * For sub-select FieldSets: inner LIMIT/OFFSET/ORDER BY carried from\n * `.limit()`/`.offset()`/`.orderBy()` chained on the nested select.\n * These bound the related collection per parent (single-subject only).\n */\n readonly innerLimit?: number;\n readonly innerOffset?: number;\n readonly innerOrderBy?: FieldSetInnerOrderBy[];\n\n private constructor(shape: NodeShapeData, entries: FieldSetEntry[]) {\n this.shape = shape;\n this.entries = entries;\n }\n\n // ---------------------------------------------------------------------------\n // Static constructors\n // ---------------------------------------------------------------------------\n\n /**\n * Create a FieldSet for the given shape with the specified fields.\n *\n * Accepts a ShapeClass (e.g. Person), NodeShapeData, or shape IRI string.\n * Fields can be string paths, PropertyPath instances, nested objects,\n * or a callback receiving a proxy for dot-access.\n */\n static for<S extends Shape>(shape: ShapeConstructor<S>, fields: FieldSetInput[]): FieldSet<any>;\n static for<S extends Shape, R>(shape: ShapeConstructor<S>, fn: (p: any) => R): FieldSet<R>;\n static for(shape: NodeShapeData | string, fields: FieldSetInput[]): FieldSet<any>;\n static for(shape: NodeShapeData | string, fn: (p: any) => any): FieldSet<any>;\n static for(\n shape: ShapeConstructor<any> | NodeShapeData | string,\n fieldsOrFn: FieldSetInput[] | ((p: any) => any),\n ): FieldSet<any> {\n const resolved = FieldSet.resolveShapeInput(shape);\n const resolvedShape = resolved.nodeShape;\n\n if (typeof fieldsOrFn === 'function') {\n if (!resolved.shapeClass) {\n throw new Error(\n `Cannot use callback form for shape '${resolved.nodeShape.id}': no ShapeConstructor registered. ` +\n `Use string field names instead, or pass the Shape class directly.`,\n );\n }\n const fields = FieldSet.traceFieldsWithProxy(resolved.nodeShape, resolved.shapeClass, fieldsOrFn);\n return new FieldSet(resolved.nodeShape, fields);\n }\n\n const entries = FieldSet.resolveInputs(resolvedShape, fieldsOrFn);\n return new FieldSet(resolvedShape, entries);\n }\n\n /**\n * Create a typed FieldSet for a sub-select. Traces the callback through the proxy,\n * stores parentSegments and traceResponse for runtime compatibility, and preserves\n * R and Source generics for conditional type inference.\n */\n static forSubSelect<R, Source>(\n shapeClass: any,\n fn: (p: any) => R,\n parentSegments: PropertyShapeData[],\n source?: QueryBuilderObjectLike,\n ): FieldSet<R, Source> {\n const nodeShape = shapeClass.shape || shapeClass;\n // Trace once: get both the raw response (for type carriers) and the entries\n const proxy = createProxiedPathBuilder(shapeClass);\n const traceResponse = fn(proxy as any);\n const entries = FieldSet.extractSubSelectEntries(nodeShape, traceResponse);\n const fs = new FieldSet(nodeShape, entries) as FieldSet<R, Source>;\n // Writable cast — these readonly fields are initialised once here at construction time\n const w = fs as {-readonly [K in 'traceResponse' | 'parentSegments' | 'shapeType' | 'parentWherePath' | 'parentWherePathIndex']: FieldSet<R, Source>[K]};\n w.traceResponse = traceResponse;\n w.parentSegments = parentSegments;\n w.shapeType = shapeClass;\n // Carry an inline `.where()` from the parent traversal chain (walked\n // leaf→root, same convention as convertTraceResult for plain paths).\n let current = source;\n let leafDistance = 0;\n while (current) {\n if (current.wherePath) {\n w.parentWherePath = current.wherePath as WherePath;\n w.parentWherePathIndex = parentSegments.length - 1 - leafDistance;\n break;\n }\n current = current.subject;\n leafDistance++;\n }\n return fs;\n }\n\n\n /**\n * Create a FieldSet containing all decorated properties of the shape.\n *\n * @param opts.depth Controls how deep to include nested shape properties:\n * - `depth=1` (default): this level only — properties of the root shape.\n * - `depth=0`: throws — use a node reference instead.\n * - `depth>1`: recursively includes nested shape properties up to the given depth.\n */\n static all<S extends Shape>(shape: ShapeConstructor<S>, opts?: {depth?: number}): FieldSet;\n static all(shape: NodeShapeData | string, opts?: {depth?: number}): FieldSet;\n static all(shape: ShapeConstructor<any> | NodeShapeData | string, opts?: {depth?: number}): FieldSet {\n const depth = opts?.depth ?? 1;\n if (depth < 1) {\n throw new Error(\n 'FieldSet.all() requires depth >= 1. Use a node reference ({id}) for depth 0.',\n );\n }\n const resolved = FieldSet.resolveShapeInput(shape);\n // Seed visited with the root shape to prevent self-referencing cycles\n const visited = new Set<string>([resolved.nodeShape.id]);\n return FieldSet.allForShape(resolved.nodeShape, depth, visited);\n }\n\n /**\n * Recursive helper for all(). Tracks visited shape IDs to prevent infinite loops\n * from circular shape references.\n */\n private static allForShape(\n nodeShape: NodeShapeData,\n depth: number,\n visited: Set<string>,\n ): FieldSet {\n const propertyShapes = getUniquePropertyShapes(nodeShape);\n const entries: FieldSetEntry[] = [];\n\n for (const ps of propertyShapes) {\n const entry: FieldSetEntry = {path: new PropertyPath(nodeShape, [ps])};\n\n // If depth > 1, recurse into nested shapes\n if (depth > 1 && ps.valueShape) {\n const nestedShapeClass = getShapeClass(ps.valueShape);\n if (nestedShapeClass?.shape && !visited.has(nestedShapeClass.shape.id)) {\n visited.add(nestedShapeClass.shape.id);\n const nestedFs = FieldSet.allForShape(nestedShapeClass.shape, depth - 1, visited);\n if (nestedFs.entries.length > 0) {\n entry.subSelect = nestedFs;\n }\n }\n }\n\n entries.push(entry);\n }\n\n return new FieldSet(nodeShape, entries);\n }\n\n /**\n * Merge multiple FieldSets into one, deduplicating by path equality.\n * All FieldSets must share the same root shape.\n */\n static merge(sets: FieldSet[]): FieldSet {\n if (sets.length === 0) {\n throw new Error('Cannot merge empty array of FieldSets');\n }\n const shape = sets[0].shape;\n for (const set of sets) {\n if (set.shape.id !== shape.id) {\n throw new Error(\n `Cannot merge FieldSets with different shapes: '${shape.label || shape.id}' and '${set.shape.label || set.shape.id}'`,\n );\n }\n }\n const merged: FieldSetEntry[] = [];\n const seen = new Set<string>();\n\n for (const set of sets) {\n for (const entry of set.entries) {\n // Include aggregation in the dedup key so that 'friends' and 'friends(count)' are distinct\n const key = entry.aggregation\n ? `${entry.path.toString()}:${entry.aggregation}`\n : entry.path.toString();\n if (!seen.has(key)) {\n seen.add(key);\n merged.push(entry);\n }\n }\n }\n\n return new FieldSet(shape, merged);\n }\n\n // ---------------------------------------------------------------------------\n // Composition methods — each returns a new FieldSet\n // ---------------------------------------------------------------------------\n\n /** Returns a new FieldSet with only the given fields. */\n select(fields: FieldSetInput[]): FieldSet {\n const entries = FieldSet.resolveInputs(this.shape, fields);\n return new FieldSet(this.shape, entries);\n }\n\n /**\n * Clone this FieldSet, preserving the sub-select carrier fields\n * (traceResponse / parentSegments / shapeType / inner pagination) and\n * applying the supplied overrides. Used by `.limit()`/`.offset()`/`.orderBy()`.\n */\n private cloneWith(\n overrides: Partial<Pick<FieldSet, 'innerLimit' | 'innerOffset' | 'innerOrderBy'>>,\n ): this {\n const clone = new FieldSet(this.shape, this.entries as FieldSetEntry[]) as this;\n // The sub-select carrier fields are declared `readonly` (normally set once at\n // construction via `forSubSelect`). Copy this FieldSet's identity onto the\n // clone through a mutable view, then layer the pagination overrides on top.\n Object.assign(clone as Record<string, unknown>, {\n traceResponse: this.traceResponse,\n parentSegments: this.parentSegments,\n shapeType: this.shapeType,\n parentWherePath: this.parentWherePath,\n parentWherePathIndex: this.parentWherePathIndex,\n innerLimit: this.innerLimit,\n innerOffset: this.innerOffset,\n innerOrderBy: this.innerOrderBy,\n ...overrides,\n });\n return clone;\n }\n\n /**\n * Bound a nested select's related collection to at most `lim` items per parent.\n * Only honoured when the outer query targets a single subject; otherwise the\n * pipeline throws (per-group pagination across multiple parents is unsupported).\n */\n limit(lim: number): this {\n return this.cloneWith({innerLimit: lim});\n }\n\n /** Skip the first `off` items of a nested select's related collection (single-subject only). */\n offset(off: number): this {\n return this.cloneWith({innerOffset: off});\n }\n\n /**\n * Order a nested select's related collection, producing a deterministic window\n * for inner LIMIT/OFFSET. Defaults to ascending.\n *\n * Accepts either a proxy callback — `.orderBy(f => f.name)` — consistent with\n * the rest of the DSL, or a property-name string (`.orderBy('name')`).\n */\n orderBy(\n paths: string | string[] | ((p: any) => unknown),\n direction: 'ASC' | 'DESC' = 'ASC',\n ): this {\n const orderBy: FieldSetInnerOrderBy[] =\n typeof paths === 'function'\n ? this.orderByFromProxy(paths, direction)\n : (Array.isArray(paths) ? paths : [paths]).map((label) => {\n const ps = walkPropertyPath(this.shape, label).terminal;\n if (!ps) {\n throw new Error(`orderBy: cannot resolve property '${label}' on shape '${this.shape.id}'`);\n }\n return {propertyShapeId: ps.id, direction};\n });\n return this.cloneWith({innerOrderBy: orderBy});\n }\n\n /** Resolve a proxy `orderBy` callback (e.g. `f => f.name` or `f => [f.a, f.b]`)\n * to inner order-by clauses by tracing the sub-select shape's property proxy. */\n private orderByFromProxy(\n fn: (p: any) => unknown,\n direction: 'ASC' | 'DESC',\n ): FieldSetInnerOrderBy[] {\n if (!this.shapeType) {\n throw new Error(\n 'orderBy(callback) is only available on a nested select(); pass a property-name string otherwise',\n );\n }\n const response = fn(createProxiedPathBuilder(this.shapeType));\n const results = Array.isArray(response) ? response : [response];\n return results.map((result) => {\n const segments = FieldSet.collectPropertySegments(result as QueryBuilderObjectLike);\n const terminal = segments[segments.length - 1];\n if (!terminal) {\n throw new Error('orderBy: callback did not resolve to a property of the sub-select shape');\n }\n return {propertyShapeId: terminal.id, direction};\n });\n }\n\n /** Returns a new FieldSet with additional entries. */\n add(fields: FieldSetInput[]): FieldSet {\n const newEntries = FieldSet.resolveInputs(this.shape, fields);\n // Deduplicate\n const existing = new Set(this.entries.map((e) => e.path.toString()));\n const combined = [...this.entries];\n for (const entry of newEntries) {\n if (!existing.has(entry.path.toString())) {\n combined.push(entry);\n }\n }\n return new FieldSet(this.shape, combined);\n }\n\n /** Returns a new FieldSet without entries matching the given labels. */\n remove(labels: string[]): FieldSet {\n const labelSet = new Set(labels);\n const filtered = (this.entries as FieldSetEntry[]).filter(\n (e) => !labelSet.has(e.path.terminal?.label),\n );\n return new FieldSet(this.shape, filtered);\n }\n\n /** Synonym for replacing all entries — returns a new FieldSet with only the given fields. */\n set(fields: FieldSetInput[]): FieldSet {\n const entries = FieldSet.resolveInputs(this.shape, fields);\n return new FieldSet(this.shape, entries);\n }\n\n /** Returns a new FieldSet keeping only entries matching the given labels. */\n pick(labels: string[]): FieldSet {\n const labelSet = new Set(labels);\n const filtered = (this.entries as FieldSetEntry[]).filter(\n (e) => labelSet.has(e.path.terminal?.label),\n );\n return new FieldSet(this.shape, filtered);\n }\n\n /** Returns all PropertyPaths in this FieldSet. */\n paths(): PropertyPath[] {\n return (this.entries as FieldSetEntry[]).map((e) => e.path);\n }\n\n /** Returns terminal property labels of all entries. */\n labels(): string[] {\n return (this.entries as FieldSetEntry[]).map((e) => e.path.terminal?.label).filter(Boolean) as string[];\n }\n\n // ---------------------------------------------------------------------------\n // Serialization\n // ---------------------------------------------------------------------------\n\n /**\n * Serialize this FieldSet to a plain JSON object.\n * Shape is identified by its IRI, paths by dot-separated labels.\n */\n toJSON(): FieldSetJSON {\n return {shape: this.shape.id, fields: this.toFieldsJSON()};\n }\n\n /** Serialize just the field entries (used for nested relation sub-fields). */\n private toFieldsJSON(): FieldSetFieldJSON[] {\n return (this.entries as FieldSetEntry[]).map((entry) =>\n this.serializeEntry(entry),\n );\n }\n\n private serializeEntry(entry: FieldSetEntry): FieldSetFieldJSON {\n // Computed projection — no path; carry the DSL-JSON value.\n if (entry.expressionNode) {\n const out: FieldSetComputedJSON = {\n value: encodeValueExpr(entry.expressionNode.ir, entry.expressionNode._refs),\n };\n if (entry.alias) out.as = entry.alias;\n if (entry.customKey) out.customKey = entry.customKey;\n return out;\n }\n const pathStr = FieldSet.pathToStringWithCasts(this.shape, entry.path.segments);\n const sub = entry.subSelect ?? entry.preloadSubSelect;\n const subFields = sub ? sub.toFieldsJSON() : undefined;\n const opts: FieldSetRelationOptionsJSON = {};\n const naturalSubShape = FieldSet.nestedShapeOf(entry.path);\n if (sub && sub.shape.id !== naturalSubShape?.id) opts.shape = sub.shape.id;\n if (entry.alias) opts.as = entry.alias;\n if (entry.aggregation) opts.aggregation = entry.aggregation;\n if (entry.customKey) opts.customKey = entry.customKey;\n if (entry.scopedFilter) {\n const idx = entry.scopedFilterIndex ?? entry.path.segments.length - 1;\n opts.where = serializeWherePath(entry.scopedFilter, this.scopedShapeAt(entry, idx));\n opts.whereIndex = idx;\n }\n // Nested-select pagination (G10) — was previously dropped on the wire.\n if (typeof entry.innerLimit === 'number') opts.limit = entry.innerLimit;\n if (typeof entry.innerOffset === 'number') opts.offset = entry.innerOffset;\n if (entry.innerOrderBy && entry.innerOrderBy.length > 0) {\n opts.orderBy = entry.innerOrderBy.map((o) => ({\n [FieldSet.labelOfId(o.propertyShapeId)]: o.direction,\n }));\n }\n const hasOpts = Object.keys(opts).length > 0;\n // Bare-string shorthand: a plain leaf/relation with no options or sub-fields.\n if (!subFields && !hasOpts) return pathStr;\n // Array shorthand: sub-fields only, no other options.\n if (subFields && !hasOpts) return {[pathStr]: subFields};\n // Full options object (optionally carrying `fields`).\n return {[pathStr]: {...opts, ...(subFields ? {fields: subFields} : {})}};\n }\n\n /** The shape a scoped filter at segment `idx` is evaluated against (the segment's value shape). */\n private scopedShapeAt(entry: FieldSetEntry, idx: number): NodeShapeData {\n const seg = entry.path.segments[idx] as PropertyShapeData | undefined;\n const valueShapeId = (seg as unknown as {valueShape?: {id: string}})\n ?.valueShape?.id;\n return (valueShapeId && getShapeClass(valueShapeId)?.shape) || this.shape;\n }\n\n /**\n * Reconstruct a FieldSet from a JSON object.\n * Resolves shape IRI via getShapeClass() and paths via walkPropertyPath().\n */\n static fromJSON(json: FieldSetJSON): FieldSet {\n return FieldSet.fromFields(FieldSet.resolveShape(json.shape), json.fields);\n }\n\n /** Build a FieldSet from a shape + relation-keyed field list (recursion entry). */\n private static fromFields(shape: NodeShapeData, fields: FieldSetFieldJSON[]): FieldSet {\n return new FieldSet(\n shape,\n fields.map((raw) => FieldSet.parseField(shape, raw)),\n );\n }\n\n /** Parse one field entry (string leaf / computed / relation-keyed) against `shape`. */\n private static parseField(shape: NodeShapeData, raw: FieldSetFieldJSON): FieldSetEntry {\n // Leaf path (may carry inline `as(Shape)` casts).\n if (typeof raw === 'string') {\n return {path: FieldSet.walkPathWithCasts(shape, raw)};\n }\n // Computed projection — carries `value`.\n if ('value' in raw && (raw as FieldSetComputedJSON).value !== undefined) {\n const computed = raw as FieldSetComputedJSON;\n const {ir, refs} = decodeValueExpr(computed.value, shape);\n const entry: FieldSetEntry = {\n path: new PropertyPath(shape, []),\n expressionNode: new ExpressionNode(ir, refs),\n };\n if (computed.as) entry.alias = computed.as;\n if (computed.customKey) entry.customKey = computed.customKey;\n return entry;\n }\n // Relation-keyed: the single non-option key is the relation path.\n const rel = raw as FieldSetRelationJSON;\n const pathKey = Object.keys(rel).find((k) => !RELATION_OPTION_KEYS.has(k));\n if (!pathKey) {\n throw new Error(`FieldSet field has no relation path: ${JSON.stringify(raw)}`);\n }\n const spec = rel[pathKey];\n const path = FieldSet.walkPathWithCasts(shape, pathKey);\n const entry: FieldSetEntry = {path};\n const subFields = Array.isArray(spec) ? spec : spec.fields;\n const opts = Array.isArray(spec) ? ({} as FieldSetRelationOptionsJSON) : spec;\n if (opts.as) entry.alias = opts.as;\n if (opts.customKey) entry.customKey = opts.customKey;\n if (opts.aggregation) entry.aggregation = opts.aggregation as 'count';\n if (opts.where) {\n const idx = opts.whereIndex ?? path.segments.length - 1;\n const seg = path.segments[idx] as PropertyShapeData | undefined;\n const valueShapeId = (seg as unknown as {valueShape?: {id: string}})?.valueShape?.id;\n const scopedShape = (valueShapeId && getShapeClass(valueShapeId)?.shape) || shape;\n entry.scopedFilter = deserializeWherePath(scopedShape, opts.where);\n entry.scopedFilterIndex = idx;\n }\n // Nested-select pagination (G10).\n if (typeof opts.limit === 'number') entry.innerLimit = opts.limit;\n if (typeof opts.offset === 'number') entry.innerOffset = opts.offset;\n if (opts.orderBy && opts.orderBy.length > 0) {\n const nested = FieldSet.nestedShapeOf(path) ?? shape;\n entry.innerOrderBy = opts.orderBy.map((e) => {\n const label = Object.keys(e)[0];\n const ps = getPropertyShape(nested, label);\n return {propertyShapeId: ps?.id ?? label, direction: Object.values(e)[0]};\n });\n }\n if (subFields) {\n const nested = opts.shape\n ? FieldSet.resolveShape(opts.shape)\n : FieldSet.nestedShapeOf(path) ?? shape;\n entry.subSelect = FieldSet.fromFields(nested, subFields);\n }\n return entry;\n }\n\n /** The shape reached at the end of a relation path (its terminal segment's value shape). */\n private static nestedShapeOf(path: PropertyPath): NodeShapeData | undefined {\n const seg = path.segments[path.segments.length - 1] as PropertyShapeData | undefined;\n const valueShapeId = (seg as unknown as {valueShape?: {id: string}})?.valueShape?.id;\n return (valueShapeId && getShapeClass(valueShapeId)?.shape) || undefined;\n }\n\n // ---------------------------------------------------------------------------\n // Private helpers\n // ---------------------------------------------------------------------------\n\n /**\n * Resolves any of the accepted shape input types to a NodeShapeData and optional ShapeClass.\n * Accepts: ShapeConstructor (class with .shape), NodeShapeData, or IRI string.\n */\n private static resolveShapeInput(shape: ShapeConstructor<any> | NodeShapeData | string): {nodeShape: NodeShapeData; shapeClass?: ShapeConstructor<any>} {\n if (typeof shape === 'string') {\n const shapeClass = getShapeClass(shape);\n if (shapeClass?.shape) {\n return {nodeShape: shapeClass.shape, shapeClass};\n }\n // No authored class: the metadata alone is enough here — the classless branch\n // below is already supported, it just was not reachable from an IRI.\n const nodeShape = getNodeShape(shape);\n if (!nodeShape) {\n throw new Error(`Cannot resolve shape for '${shape}'`);\n }\n return {nodeShape};\n }\n // ShapeConstructor: has a static .shape property that is a NodeShapeData\n if ('shape' in shape && typeof shape.shape === 'object' && shape.shape !== null && 'id' in shape.shape) {\n return {nodeShape: (shape as ShapeConstructor<any>).shape, shapeClass: shape as ShapeConstructor<any>};\n }\n // NodeShapeData: has .id directly — try to look up its ShapeConstructor for full proxy support\n const nodeShape = shape as NodeShapeData;\n const shapeClass = nodeShape.id ? getShapeClass(nodeShape.id) : undefined;\n return shapeClass\n ? {nodeShape, shapeClass}\n : {nodeShape};\n }\n\n /** @deprecated Use resolveShapeInput instead. Kept for fromJSON which only passes NodeShapeData|string. */\n private static resolveShape(shape: NodeShapeData | string): NodeShapeData {\n return FieldSet.resolveShapeInput(shape).nodeShape;\n }\n\n private static resolveInputs(\n shape: NodeShapeData,\n inputs: FieldSetInput[],\n ): FieldSetEntry[] {\n const entries: FieldSetEntry[] = [];\n for (const input of inputs) {\n if (typeof input === 'string') {\n entries.push({path: walkPropertyPath(shape, input)});\n } else if (input instanceof PropertyPath) {\n entries.push({path: input});\n } else if (input instanceof FieldSet) {\n entries.push(...(input.entries as FieldSetEntry[]));\n } else if (typeof input === 'object') {\n // Nested object form: { friends: ['name', 'hobby'] }\n for (const [key, value] of Object.entries(input)) {\n const basePath = walkPropertyPath(shape, key);\n if (value instanceof FieldSet) {\n // Merge nested FieldSet entries under this path\n for (const entry of value.entries as FieldSetEntry[]) {\n const combined = new PropertyPath(shape, [\n ...basePath.segments,\n ...entry.path.segments,\n ]);\n entries.push({path: combined, alias: entry.alias, scopedFilter: entry.scopedFilter});\n }\n } else if (Array.isArray(value)) {\n // Resolve nested string fields\n const basePropertyShape = basePath.terminal;\n if (!basePropertyShape?.valueShape) {\n throw new Error(\n `Property '${key}' has no valueShape; cannot resolve nested fields`,\n );\n }\n const nestedShapeClass = getShapeClass(basePropertyShape.valueShape);\n if (!nestedShapeClass || !nestedShapeClass.shape) {\n throw new Error(\n `Cannot resolve valueShape for property '${key}'`,\n );\n }\n for (const nestedField of value) {\n const nestedPath = walkPropertyPath(nestedShapeClass.shape, nestedField);\n const combined = new PropertyPath(shape, [\n ...basePath.segments,\n ...nestedPath.segments,\n ]);\n entries.push({path: combined});\n }\n }\n }\n }\n }\n return entries;\n }\n\n /**\n * Trace fields using the full ProxiedPathBuilder proxy (createProxiedPathBuilder).\n * Handles nested paths, where conditions, aggregations, and sub-selects.\n */\n private static traceFieldsWithProxy(\n nodeShape: NodeShapeData,\n shapeClass: ShapeConstructor<any>,\n fn: (p: any) => any,\n ): FieldSetEntry[] {\n const proxy = createProxiedPathBuilder(shapeClass);\n const result = fn(proxy);\n\n // Normalize result: could be a single value, array, or custom object\n if (Array.isArray(result)) {\n return result.map((item) => FieldSet.convertTraceResult(nodeShape, item));\n }\n if (isQueryBuilderObject(result)) {\n return [FieldSet.convertTraceResult(nodeShape, result)];\n }\n // Single FieldSet sub-select (e.g. p.friends.select(f => [f.name]))\n if (result instanceof FieldSet && result.parentSegments !== undefined) {\n return [FieldSet.convertTraceResult(nodeShape, result)];\n }\n // Single SetSize (e.g. p.friends.size())\n if (isSetSize(result)) {\n return [FieldSet.convertTraceResult(nodeShape, result)];\n }\n // Single BoundComponent (e.g. p.bestFriend.preloadFor(comp))\n if (isBoundComponent(result)) {\n return [FieldSet.convertTraceResult(nodeShape, result)];\n }\n // Single ExpressionNode (e.g. p.age.times(12))\n if (isExpressionNode(result)) {\n return [FieldSet.convertTraceResult(nodeShape, result)];\n }\n if (typeof result === 'object' && result !== null) {\n // Custom object form: {name: p.name, hobby: p.hobby}\n const entries: FieldSetEntry[] = [];\n for (const [key, value] of Object.entries(result)) {\n const entry = FieldSet.convertTraceResult(nodeShape, value);\n entry.customKey = key;\n entries.push(entry);\n }\n return entries;\n }\n return [];\n }\n\n /**\n * Convert a single proxy trace result (QueryBuilderObject, SetSize, or FieldSet sub-select)\n * into a FieldSetEntry.\n */\n private static convertTraceResult(rootShape: NodeShapeData, obj: any): FieldSetEntry {\n // SetSize → aggregation: 'count'\n if (isSetSize(obj)) {\n const segments = FieldSet.collectPropertySegments(obj.subject);\n return {\n path: new PropertyPath(rootShape, segments),\n aggregation: 'count',\n };\n }\n\n // FieldSet sub-select — use its entries directly (created by forSubSelect)\n if (obj instanceof FieldSet && obj.parentSegments !== undefined) {\n const subSelect = obj.entries.length > 0 ? obj : undefined;\n const entry: FieldSetEntry = {\n path: new PropertyPath(rootShape, obj.parentSegments),\n subSelect: subSelect as FieldSet | undefined,\n };\n // Carry an inline `.where()` from the parent traversal chain\n // (e.g. `p.friends.where(...).select(...)`).\n if (obj.parentWherePath) {\n entry.scopedFilter = obj.parentWherePath;\n entry.scopedFilterIndex = obj.parentWherePathIndex;\n }\n // Carry inner LIMIT/OFFSET/ORDER BY from `.limit()`/`.offset()`/`.orderBy()`.\n if (typeof obj.innerLimit === 'number') entry.innerLimit = obj.innerLimit;\n if (typeof obj.innerOffset === 'number') entry.innerOffset = obj.innerOffset;\n if (obj.innerOrderBy) entry.innerOrderBy = obj.innerOrderBy;\n return entry;\n }\n\n // BoundComponent → preload composition (e.g. p.bestFriend.preloadFor(component))\n // Extract the component's FieldSet and store it as preloadSubSelect.\n if (isBoundComponent(obj)) {\n const segments = FieldSet.collectPropertySegments(obj.source);\n const componentFieldSet = FieldSet.extractComponentFieldSet(obj.originalValue);\n return {\n path: new PropertyPath(rootShape, segments),\n preloadSubSelect: componentFieldSet,\n };\n }\n\n // ExpressionNode → computed expression (e.g. p.age.times(12))\n if (isExpressionNode(obj)) {\n return {\n path: new PropertyPath(rootShape, []),\n expressionNode: obj,\n };\n }\n\n // QueryBuilderObject → walk the chain to collect PropertyPath segments\n if (isQueryBuilderObject(obj)) {\n const segments = FieldSet.collectPropertySegments(obj);\n const entry: FieldSetEntry = {\n path: new PropertyPath(rootShape, segments),\n };\n // Walk from leaf to root to find wherePath on any object in the chain.\n // Track which segment it belongs to so desugarEntry attaches the filter correctly.\n let current: QueryBuilderObjectLike | undefined = obj;\n let leafDistance = 0;\n while (current) {\n if (current.wherePath) {\n entry.scopedFilter = current.wherePath as WherePath;\n entry.scopedFilterIndex = segments.length - 1 - leafDistance;\n break;\n }\n current = current.subject;\n leafDistance++;\n }\n return entry;\n }\n\n // Fallback: string label\n if (typeof obj === 'string') {\n return {path: walkPropertyPath(rootShape, obj)};\n }\n\n throw new Error(`Unknown trace result type: ${obj}`);\n }\n\n /**\n * Walk a QueryBuilderObject-like chain (via .subject) collecting PropertyShapeData segments\n * from leaf to root, then reverse to get root-to-leaf order.\n */\n static collectPropertySegments(obj: QueryBuilderObjectLike): PropertyShapeData[] {\n const segments: PropertyShapeData[] = [];\n let current: QueryBuilderObjectLike | undefined = obj;\n while (current) {\n if (current.property) {\n segments.unshift(current.property);\n }\n current = current.subject;\n }\n return segments;\n }\n\n // ---------------------------------------------------------------------------\n // Cast-aware path (de)serialization — carries `.as(Shape)` narrowing inline as\n // an `as(<ShapeLabel>)` path segment (documentation/dsl-json.md, backlog 002 G5).\n // ---------------------------------------------------------------------------\n\n private static shapeById(id: string): NodeShapeData | undefined {\n return getShapeClass(id)?.shape ?? getNodeShape(id);\n }\n\n private static shapeByLabel(label: string): NodeShapeData | undefined {\n for (const cls of getAllShapeClasses().values()) {\n const shape = (cls as unknown as {shape?: NodeShapeData}).shape;\n if (shape && (shape.label === label || FieldSet.labelOfId(shape.id) === label)) {\n return shape;\n }\n }\n return undefined;\n }\n\n private static labelOfId(id: string): string {\n const i = id.lastIndexOf('/');\n return i >= 0 ? id.slice(i + 1) : id;\n }\n\n /**\n * Render a segment chain as a dotted label path, inserting `as(<ShapeLabel>)`\n * wherever a segment is not resolvable by label from the natural (walked) shape\n * — i.e. a `.as(Shape)` narrowing happened before it.\n */\n static pathToStringWithCasts(rootShape: NodeShapeData, segments: readonly PropertyShapeData[]): string {\n const parts: string[] = [];\n let current: NodeShapeData | undefined = rootShape;\n for (const seg of segments) {\n const label = FieldSet.labelOfId(seg.id);\n const natural = current ? getPropertyShape(current, label) : undefined;\n if (!natural || natural.id !== seg.id) {\n // A cast narrowed the context to the segment's owner shape.\n const ownerId = seg.id.slice(0, seg.id.lastIndexOf('/'));\n const owner = FieldSet.shapeById(ownerId);\n parts.push(`as(${owner?.label ?? FieldSet.labelOfId(ownerId)})`);\n current = owner ?? current;\n }\n parts.push(label);\n const vs = (seg as unknown as {valueShape?: {id: string}}).valueShape;\n current = vs ? FieldSet.shapeById(vs.id) ?? current : current;\n }\n return parts.join('.');\n }\n\n /** Inverse of {@link pathToStringWithCasts}: resolve a dotted path with `as(X)` casts. */\n static walkPathWithCasts(rootShape: NodeShapeData, path: string): PropertyPath {\n if (!path.includes('as(')) return walkPropertyPath(rootShape, path);\n const segments: PropertyShapeData[] = [];\n let current: NodeShapeData | undefined = rootShape;\n for (const token of path.split('.')) {\n const cast = /^as\\((.+)\\)$/.exec(token);\n if (cast) {\n current = FieldSet.shapeByLabel(cast[1]) ?? current;\n continue;\n }\n const ps = current ? getPropertyShape(current, token) : undefined;\n if (!ps) {\n throw new Error(\n `Property '${token}' not found on shape '${current?.label || current?.id}' while resolving path '${path}'`,\n );\n }\n segments.push(ps);\n const vs = (ps as unknown as {valueShape?: {id: string}}).valueShape;\n current = vs ? FieldSet.shapeById(vs.id) ?? current : current;\n }\n return new PropertyPath(rootShape, segments);\n }\n\n /**\n * Extract a FieldSet from a component-like object for preload composition.\n *\n * Supports multiple component interfaces:\n * - `.fields` as a FieldSet directly\n * - `.query` as a FieldSet, QueryBuilder (duck-typed via .fields()), or\n * Record<string, QueryBuilder> (e.g. `{person: PersonQuery}`)\n */\n static extractComponentFieldSet(component: any): FieldSet | undefined {\n // Prefer .fields if it's a FieldSet\n if (component.fields instanceof FieldSet) {\n return component.fields;\n }\n const query = component.query;\n if (query instanceof FieldSet) {\n return query;\n }\n // QueryBuilder duck-type — has .fields() method\n if (query && typeof query.fields === 'function') {\n return query.fields();\n }\n // Record form: { propName: QueryBuilder }\n if (typeof query === 'object') {\n for (const key in query) {\n const value = (query as Record<string, any>)[key];\n if (value && typeof value.fields === 'function') {\n return value.fields();\n }\n }\n }\n return undefined;\n }\n\n /**\n * Internal factory that bypasses the private constructor for use by static methods.\n */\n private static createInternal(shape: NodeShapeData, entries: FieldSetEntry[]): FieldSet {\n return new FieldSet(shape, entries);\n }\n\n /**\n * Create a FieldSet from raw entries. Used by QueryBuilder to merge preload entries.\n */\n static createFromEntries(shape: NodeShapeData, entries: FieldSetEntry[]): FieldSet {\n return new FieldSet(shape, entries);\n }\n\n /**\n * Extract FieldSetEntry[] from a sub-query's traceResponse.\n * Public alias for use by lightweight sub-select wrappers.\n */\n static extractSubSelectEntriesPublic(rootShape: NodeShapeData, traceResponse: any): FieldSetEntry[] {\n return FieldSet.extractSubSelectEntries(rootShape, traceResponse);\n }\n\n /**\n * Extract FieldSetEntry[] from a sub-select's traceResponse.\n * The traceResponse is the result of calling the sub-query callback with a proxy,\n * containing QueryBuilderObjects, arrays, custom objects, etc.\n */\n private static extractSubSelectEntries(rootShape: NodeShapeData, traceResponse: any): FieldSetEntry[] {\n if (Array.isArray(traceResponse)) {\n return traceResponse\n .filter((item) => item !== null && item !== undefined)\n .map((item) => FieldSet.convertTraceResult(rootShape, item));\n }\n if (isQueryBuilderObject(traceResponse)) {\n return [FieldSet.convertTraceResult(rootShape, traceResponse)];\n }\n // Single FieldSet sub-select — convert directly\n if (traceResponse instanceof FieldSet && traceResponse.parentSegments !== undefined) {\n return [FieldSet.convertTraceResult(rootShape, traceResponse)];\n }\n // Single SetSize\n if (isSetSize(traceResponse)) {\n return [FieldSet.convertTraceResult(rootShape, traceResponse)];\n }\n // Single ExpressionNode\n if (isExpressionNode(traceResponse)) {\n return [FieldSet.convertTraceResult(rootShape, traceResponse)];\n }\n if (typeof traceResponse === 'object' && traceResponse !== null) {\n // Custom object form: {name: p.name, hobby: p.hobby}\n const entries: FieldSetEntry[] = [];\n for (const [key, value] of Object.entries(traceResponse)) {\n if (value !== null && value !== undefined) {\n const entry = FieldSet.convertTraceResult(rootShape, value);\n entry.customKey = key;\n entries.push(entry);\n }\n }\n return entries;\n }\n return [];\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRAliasScope.js","sourceRoot":"","sources":["../../../src/queries/IRAliasScope.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,YAAY;IAIvB,YACkB,SAAiB,EAChB,MAAqB;QADtB,cAAS,GAAT,SAAS,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAe;QALhC,aAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC7C,mBAAc,GAAG,CAAC,CAAC;IAKxB,CAAC;IAEJ,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,OAAO,GAAmB;YAC9B,KAAK;YACL,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,KAAa,CAAC;QAClB,GAAG,CAAC;YACF,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAAa,EACb,YAA0B,EACV,EAAE;IAClB,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"IRAliasScope.js","sourceRoot":"","sources":["../../../src/queries/IRAliasScope.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,YAAY;IAIvB,YACkB,SAAiB,EAChB,MAAqB;QADtB,cAAS,GAAT,SAAS,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAe;QALhC,aAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC7C,mBAAc,GAAG,CAAC,CAAC;IAKxB,CAAC;IAEJ,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,OAAO,GAAmB;YAC9B,KAAK;YACL,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,KAAa,CAAC;QAClB,GAAG,CAAC;YACF,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAAa,EACb,YAA0B,EACV,EAAE;IAClB,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC,CAAC","sourcesContent":["/** A named alias binding in a scope, tracking its source and nesting depth. */\nexport type IRAliasBinding = {\n alias: string;\n source: string;\n scopeDepth: number;\n};\n\nexport class IRAliasScope {\n private bindings = new Map<string, IRAliasBinding>();\n private generatedCount = 0;\n\n constructor(\n public readonly scopeName: string,\n private readonly parent?: IRAliasScope,\n ) {}\n\n get depth(): number {\n return this.parent ? this.parent.depth + 1 : 0;\n }\n\n registerAlias(alias: string, source: string): IRAliasBinding {\n if (this.bindings.has(alias)) {\n throw new Error(`Alias already exists in scope: ${alias}`);\n }\n const binding: IRAliasBinding = {\n alias,\n source,\n scopeDepth: this.depth,\n };\n this.bindings.set(alias, binding);\n return binding;\n }\n\n generateAlias(source: string): IRAliasBinding {\n let alias: string;\n do {\n alias = `a${this.generatedCount++}`;\n } while (this.bindings.has(alias));\n return this.registerAlias(alias, source);\n }\n\n resolveAlias(alias: string): IRAliasBinding {\n if (this.bindings.has(alias)) {\n return this.bindings.get(alias);\n }\n if (this.parent) {\n return this.parent.resolveAlias(alias);\n }\n throw new Error(`Alias not found in scope chain: ${alias}`);\n }\n\n createChildScope(name: string): IRAliasScope {\n return new IRAliasScope(name, this);\n }\n}\n\n/** Validates that an alias exists in the current scope chain, throwing if not found. */\nexport const validateAliasReference = (\n alias: string,\n currentScope: IRAliasScope,\n): IRAliasBinding => {\n return currentScope.resolveAlias(alias);\n};\n"]}
|