@rocicorp/zero 0.18.2025032800 → 0.18.2025040200
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/out/analyze-query/src/bin.d.ts +2 -0
- package/out/analyze-query/src/bin.d.ts.map +1 -0
- package/out/analyze-query/src/bin.js +178 -0
- package/out/analyze-query/src/bin.js.map +1 -0
- package/out/{chunk-3S3SDA44.js → chunk-CT4LRQ5P.js} +242 -78
- package/out/chunk-CT4LRQ5P.js.map +7 -0
- package/out/{chunk-NBZURO2P.js → chunk-R7QLNPBS.js} +16 -109
- package/out/{chunk-NBZURO2P.js.map → chunk-R7QLNPBS.js.map} +3 -3
- package/out/inspector-RYBBQ63M.js +394 -0
- package/out/inspector-RYBBQ63M.js.map +7 -0
- package/out/otel/src/test-log-config.d.ts +8 -0
- package/out/otel/src/test-log-config.d.ts.map +1 -0
- package/out/otel/src/test-log-config.js +8 -0
- package/out/otel/src/test-log-config.js.map +1 -0
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-options.d.ts +12 -0
- package/out/replicache/src/replicache-options.d.ts.map +1 -1
- package/out/shared/src/browser-env.d.ts +2 -0
- package/out/shared/src/browser-env.d.ts.map +1 -1
- package/out/shared/src/deep-merge.d.ts +6 -0
- package/out/shared/src/deep-merge.d.ts.map +1 -0
- package/out/shared/src/logging-test-utils.d.ts +12 -0
- package/out/shared/src/logging-test-utils.d.ts.map +1 -0
- package/out/shared/src/logging-test-utils.js +21 -0
- package/out/shared/src/logging-test-utils.js.map +1 -0
- package/out/solid.js +2 -2
- package/out/solid.js.map +2 -2
- package/out/z2s/src/compiler.d.ts +5 -4
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +86 -59
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/schema.d.ts +11 -0
- package/out/z2s/src/schema.d.ts.map +1 -0
- package/out/z2s/src/schema.js +2 -0
- package/out/z2s/src/schema.js.map +1 -0
- package/out/z2s/src/sql.d.ts +7 -4
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +111 -66
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/src/analyze-query.d.ts +3 -0
- package/out/zero/src/analyze-query.d.ts.map +1 -0
- package/out/zero/src/analyze-query.js +3 -0
- package/out/zero/src/analyze-query.js.map +1 -0
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +12 -0
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +17 -1
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/replica-schema.js +10 -1
- package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +10 -6
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +17 -16
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js +2 -8
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +8 -15
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +2 -3
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +2 -2
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +0 -7
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +1 -1
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +2 -52
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +2 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +53 -0
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +14 -3
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +6 -10
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/types.d.ts +0 -1
- package/out/zero-client/src/client/inspector/types.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.d.ts +7 -3
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts +6 -2
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +2 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-pg/src/custom.d.ts +2 -1
- package/out/zero-pg/src/custom.d.ts.map +1 -1
- package/out/zero-pg/src/custom.js +24 -16
- package/out/zero-pg/src/custom.js.map +1 -1
- package/out/zero-pg/src/mod.d.ts +2 -1
- package/out/zero-pg/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/mod.js +1 -0
- package/out/zero-pg/src/mod.js.map +1 -1
- package/out/zero-pg/src/postgres-connection.d.ts +30 -0
- package/out/zero-pg/src/postgres-connection.d.ts.map +1 -0
- package/out/zero-pg/src/postgres-connection.js +31 -0
- package/out/zero-pg/src/postgres-connection.js.map +1 -0
- package/out/zero-pg/src/query.d.ts +3 -2
- package/out/zero-pg/src/query.d.ts.map +1 -1
- package/out/zero-pg/src/query.js +10 -6
- package/out/zero-pg/src/query.js.map +1 -1
- package/out/zero-pg/src/schema.d.ts +12 -0
- package/out/zero-pg/src/schema.d.ts.map +1 -0
- package/out/zero-pg/src/schema.js +57 -0
- package/out/zero-pg/src/schema.js.map +1 -0
- package/out/zero-pg/src/web.d.ts +6 -9
- package/out/zero-pg/src/web.d.ts.map +1 -1
- package/out/zero-pg/src/web.js +28 -20
- package/out/zero-pg/src/web.js.map +1 -1
- package/out/zero-protocol/src/client-schema.d.ts +1 -1
- package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
- package/out/zero-protocol/src/client-schema.js +1 -1
- package/out/zero-protocol/src/client-schema.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +5 -5
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +3 -2
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +23 -16
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +15 -5
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-react/src/mod.d.ts +1 -1
- package/out/zero-react/src/mod.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts +0 -12
- package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +0 -16
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-schema/src/table-schema.d.ts +0 -3
- package/out/zero-schema/src/table-schema.d.ts.map +1 -1
- package/out/zero-schema/src/table-schema.js +0 -3
- package/out/zero-schema/src/table-schema.js.map +1 -1
- package/out/zero-solid/src/create-zero.d.ts +2 -2
- package/out/zero-solid/src/create-zero.d.ts.map +1 -1
- package/out/zero-solid/src/mod.d.ts +1 -1
- package/out/zero-solid/src/mod.d.ts.map +1 -1
- package/out/zero.js +2 -2
- package/out/zql/src/ivm/catch.d.ts +51 -0
- package/out/zql/src/ivm/catch.d.ts.map +1 -0
- package/out/zql/src/ivm/catch.js +78 -0
- package/out/zql/src/ivm/catch.js.map +1 -0
- package/out/zql/src/ivm/memory-storage.js +37 -0
- package/out/zql/src/ivm/memory-storage.js.map +1 -0
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +6 -4
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +0 -8
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +4 -3
- package/out/chunk-3S3SDA44.js.map +0 -7
- package/out/inspector-SH2ZK7O3.js +0 -835
- package/out/inspector-SH2ZK7O3.js.map +0 -7
package/out/solid.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../zero-solid/src/create-zero.ts", "../../zero-solid/src/use-query.ts", "../../shared/src/ref-count.ts", "../../zero-solid/src/solid-view.ts"],
|
|
4
|
-
"sourcesContent": ["import {batch} from 'solid-js';\nimport {Zero
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;AAAA,SAAQ,aAAY;
|
|
4
|
+
"sourcesContent": ["import {batch} from 'solid-js';\nimport {\n Zero,\n type CustomMutatorDefs,\n type Schema,\n type ZeroOptions,\n} from '../../zero/src/zero.ts';\n\nexport function createZero<S extends Schema, MD extends CustomMutatorDefs<S>>(\n options: ZeroOptions<S, MD>,\n): Zero<S, MD> {\n const opts = {\n ...options,\n batchViewUpdates: batch,\n };\n return new Zero(opts);\n}\n", "import {createMemo, onCleanup, type Accessor} from 'solid-js';\nimport {RefCount} from '../../shared/src/ref-count.ts';\nimport {\n DEFAULT_TTL,\n type HumanReadable,\n type Query,\n type Schema,\n type TTL,\n} from '../../zero/src/zero.ts';\nimport {\n solidViewFactory,\n type QueryResultDetails,\n type SolidView,\n} from './solid-view.ts';\n\nexport type QueryResult<TReturn> = readonly [\n Accessor<HumanReadable<TReturn>>,\n Accessor<QueryResultDetails>,\n];\n\nexport type UseQueryOptions = {\n ttl?: TTL | undefined;\n};\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: () => Query<TSchema, TTable, TReturn>,\n options?: UseQueryOptions | Accessor<UseQueryOptions>,\n): QueryResult<TReturn> {\n // Wrap in in createMemo to ensure a new view is created if the querySignal changes.\n const view = createMemo(() => {\n const query = querySignal();\n const ttl = normalize(options)?.ttl ?? DEFAULT_TTL;\n const view = getView(query, ttl);\n\n // Use queueMicrotask to allow cleanup/create in the current microtask to\n // reuse the view.\n onCleanup(() => queueMicrotask(() => releaseView(query, view)));\n return view;\n });\n\n return [() => view().data, () => view().resultDetails];\n}\n\ntype UnknownSolidView = SolidView<HumanReadable<unknown>>;\n\nconst views = new WeakMap<WeakKey, UnknownSolidView>();\n\nconst viewRefCount = new RefCount<UnknownSolidView>();\n\nfunction getView<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n query: Query<TSchema, TTable, TReturn>,\n ttl: TTL,\n): SolidView<HumanReadable<TReturn>> {\n // TODO(arv): Use the hash of the query instead of the query object itself... but\n // we need the clientID to do that in a reasonable way.\n let view = views.get(query);\n if (!view) {\n view = query.materialize(solidViewFactory, ttl);\n views.set(query, view);\n } else {\n query.updateTTL(ttl);\n }\n viewRefCount.inc(view);\n return view as SolidView<HumanReadable<TReturn>>;\n}\n\nfunction releaseView(query: WeakKey, view: UnknownSolidView) {\n if (viewRefCount.dec(view)) {\n views.delete(query);\n view.destroy();\n }\n}\n\nfunction normalize<T>(\n options?: T | Accessor<T | undefined> | undefined,\n): T | undefined {\n return typeof options === 'function' ? (options as Accessor<T>)() : options;\n}\n", "import {must} from './must.ts';\n\n/**\n * This is a basic ref count implementation that uses a WeakMap to store the\n * reference count for each value.\n */\nexport class RefCount<T extends WeakKey = WeakKey> {\n readonly #map = new WeakMap<T, number>();\n\n /**\n * Returns true if the value was added.\n */\n inc(value: T): boolean {\n const rc = this.#map.get(value) ?? 0;\n this.#map.set(value, rc + 1);\n return rc === 0;\n }\n\n /**\n * Returns true if the value was removed.\n */\n dec(value: T): boolean {\n const rc = must(this.#map.get(value));\n if (rc === 1) {\n return this.#map.delete(value);\n }\n this.#map.set(value, rc - 1);\n return false;\n }\n}\n", "import {\n createStore,\n produce,\n type SetStoreFunction,\n type Store,\n} from 'solid-js/store';\nimport {\n applyChange,\n type Change,\n type Entry,\n type Format,\n type HumanReadable,\n type Input,\n type Node,\n type Output,\n type Query,\n type ResultType,\n type Schema,\n type Stream,\n type ViewChange,\n type ViewFactory,\n} from '../../zero-client/src/mod.js';\n\nexport type QueryResultDetails = {\n readonly type: ResultType;\n};\n\ntype State = [Entry, QueryResultDetails];\n\nconst complete = {type: 'complete'} as const;\nconst unknown = {type: 'unknown'} as const;\n\nexport class SolidView<V> implements Output {\n readonly #input: Input;\n readonly #format: Format;\n readonly #onDestroy: () => void;\n\n #state: Store<State>;\n #setState: SetStoreFunction<State>;\n\n // Optimization: if the store is currently empty we build up\n // the view on a plain old JS object stored at #builderRoot, and return\n // that for the new state on transaction commit. This avoids building up\n // large views from scratch via solid produce. The proxy object used by\n // solid produce is slow and in this case we don't care about solid tracking\n // the fine grained changes (everything has changed, it's all new). For a\n // test case with a view with 3000 rows, each row having 2 children, this\n // optimization reduced #applyChanges time from 743ms to 133ms.\n #builderRoot: Entry | undefined;\n #pendingChanges: ViewChange[] = [];\n\n constructor(\n input: Input,\n onTransactionCommit: (cb: () => void) => void,\n format: Format,\n onDestroy: () => void,\n queryComplete: true | Promise<true>,\n ) {\n this.#input = input;\n onTransactionCommit(this.#onTransactionCommit);\n this.#format = format;\n this.#onDestroy = onDestroy;\n input.setOutput(this);\n\n const initialRoot = this.#createEmptyRoot();\n this.#applyChangesToRoot(\n input.fetch({}),\n node => ({type: 'add', node}),\n initialRoot,\n );\n [this.#state, this.#setState] = createStore<State>([\n initialRoot,\n queryComplete === true ? complete : unknown,\n ]);\n if (isEmptyRoot(initialRoot)) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n\n if (queryComplete !== true) {\n void queryComplete.then(() => {\n this.#setState(oldState => [oldState[0], complete]);\n });\n }\n }\n\n get data(): V {\n return this.#state[0][''] as V;\n }\n\n get resultDetails(): QueryResultDetails {\n return this.#state[1];\n }\n\n destroy(): void {\n this.#onDestroy();\n }\n\n #onTransactionCommit = () => {\n const builderRoot = this.#builderRoot;\n if (builderRoot) {\n if (!isEmptyRoot(builderRoot)) {\n this.#setState(oldState => [builderRoot, oldState[1]]);\n this.#builderRoot = undefined;\n }\n } else {\n try {\n this.#applyChanges(this.#pendingChanges, c => c);\n } finally {\n this.#pendingChanges = [];\n }\n }\n };\n\n push(change: Change): void {\n // Delay updating the solid store state until the transaction commit\n // (because each update of the solid store is quite expensive). If\n // this.#builderRoot is defined apply the changes to it (we are building\n // from an empty root), otherwise queue the changes to be applied\n // using produce at the end of the transaction but read the relationships\n // now as they are only valid to read when the push is received.\n if (this.#builderRoot) {\n this.#applyChangeToRoot(change, this.#builderRoot);\n } else {\n this.#pendingChanges.push(materializeRelationships(change));\n }\n }\n\n #applyChanges<T>(changes: Iterable<T>, mapper: (v: T) => ViewChange): void {\n this.#setState(\n produce((draftState: State) => {\n this.#applyChangesToRoot<T>(changes, mapper, draftState[0]);\n if (isEmptyRoot(draftState[0])) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n }),\n );\n }\n\n #applyChangesToRoot<T>(\n changes: Iterable<T>,\n mapper: (v: T) => ViewChange,\n root: Entry,\n ) {\n for (const change of changes) {\n this.#applyChangeToRoot(mapper(change), root);\n }\n }\n\n #applyChangeToRoot(change: ViewChange, root: Entry) {\n applyChange(root, change, this.#input.getSchema(), '', this.#format);\n }\n\n #createEmptyRoot(): Entry {\n return {\n '': this.#format.singular ? undefined : [],\n };\n }\n}\n\nfunction materializeRelationships(change: Change): ViewChange {\n switch (change.type) {\n case 'add':\n return {type: 'add', node: materializeNodeRelationships(change.node)};\n case 'remove':\n return {type: 'remove', node: materializeNodeRelationships(change.node)};\n case 'child':\n return {\n type: 'child',\n node: {row: change.node.row},\n child: {\n relationshipName: change.child.relationshipName,\n change: materializeRelationships(change.child.change),\n },\n };\n case 'edit':\n return {\n type: 'edit',\n node: {row: change.node.row},\n oldNode: {row: change.oldNode.row},\n };\n }\n}\n\nfunction materializeNodeRelationships(node: Node): Node {\n const relationships: Record<string, () => Stream<Node>> = {};\n for (const relationship in node.relationships) {\n const materialized: Node[] = [];\n for (const n of node.relationships[relationship]()) {\n materialized.push(materializeNodeRelationships(n));\n }\n relationships[relationship] = () => materialized;\n }\n return {\n row: node.row,\n relationships,\n };\n}\n\nfunction isEmptyRoot(entry: Entry) {\n const data = entry[''];\n return data === undefined || (Array.isArray(data) && data.length === 0);\n}\n\nexport function solidViewFactory<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n _query: Query<TSchema, TTable, TReturn>,\n input: Input,\n format: Format,\n onDestroy: () => void,\n onTransactionCommit: (cb: () => void) => void,\n queryComplete: true | Promise<true>,\n) {\n return new SolidView<HumanReadable<TReturn>>(\n input,\n onTransactionCommit,\n format,\n onDestroy,\n queryComplete,\n );\n}\n\nsolidViewFactory satisfies ViewFactory<Schema, string, unknown, unknown>;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["view"]
|
|
7
7
|
}
|
|
@@ -2,8 +2,9 @@ import type { SQLQuery } from '@databases/sql';
|
|
|
2
2
|
import { type JSONValue } from '../../shared/src/json.ts';
|
|
3
3
|
import type { CorrelatedSubqueryCondition, Correlation, Ordering, ValuePosition } from '../../zero-protocol/src/ast.ts';
|
|
4
4
|
import { type AST, type Condition, type CorrelatedSubquery, type SimpleCondition } from '../../zero-protocol/src/ast.ts';
|
|
5
|
-
import type { TableSchema
|
|
5
|
+
import type { TableSchema } from '../../zero-schema/src/table-schema.ts';
|
|
6
6
|
import type { Format } from '../../zql/src/ivm/view.ts';
|
|
7
|
+
import type { ServerSchema } from './schema.ts';
|
|
7
8
|
type Tables = Record<string, TableSchema>;
|
|
8
9
|
export declare function extractZqlResult(pgResult: any): JSONValue;
|
|
9
10
|
/**
|
|
@@ -13,10 +14,10 @@ export declare function extractZqlResult(pgResult: any): JSONValue;
|
|
|
13
14
|
* - IN is changed to ANY to allow binding array literals
|
|
14
15
|
* - subqueries are aggregated using PG's `array_agg` and `row_to_json` functions
|
|
15
16
|
*/
|
|
16
|
-
export declare function compile(ast: AST, tables: Tables, format?: Format | undefined): SQLQuery;
|
|
17
|
+
export declare function compile(ast: AST, tables: Tables, serverSchema: ServerSchema, format?: Format | undefined): SQLQuery;
|
|
17
18
|
export declare class Compiler {
|
|
18
19
|
#private;
|
|
19
|
-
constructor(tables: Tables);
|
|
20
|
+
constructor(tables: Tables, serverSchema: ServerSchema);
|
|
20
21
|
compile(ast: AST, format?: Format | undefined): SQLQuery;
|
|
21
22
|
select(ast: AST, format: Format | undefined, correlation: SQLQuery | undefined): SQLQuery;
|
|
22
23
|
orderBy(orderBy: Ordering | undefined, table: string): SQLQuery;
|
|
@@ -34,7 +35,7 @@ export declare class Compiler {
|
|
|
34
35
|
simple(condition: SimpleCondition, table: string): SQLQuery;
|
|
35
36
|
distinctFrom(condition: SimpleCondition, table: string): SQLQuery;
|
|
36
37
|
any(condition: SimpleCondition, table: string): SQLQuery;
|
|
37
|
-
|
|
38
|
+
valueComparison(valuePos: ValuePosition, table: string, otherValuePos: ValuePosition, plural: boolean): SQLQuery;
|
|
38
39
|
exists(condition: CorrelatedSubqueryCondition, parentTable: string): SQLQuery;
|
|
39
40
|
correlate(parentTable: string, parentTableAlias: string, parentColumns: readonly string[], childTable: string, childTableAlias: string, childColumns: readonly string[]): SQLQuery;
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EACV,2BAA2B,EAC3B,WAAW,
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
|
package/out/z2s/src/compiler.js
CHANGED
|
@@ -4,7 +4,7 @@ import {} from "../../shared/src/json.js";
|
|
|
4
4
|
import { must } from "../../shared/src/must.js";
|
|
5
5
|
import {} from "../../zero-protocol/src/ast.js";
|
|
6
6
|
import { clientToServer, NameMapper } from "../../zero-schema/src/name-mapper.js";
|
|
7
|
-
import { sql,
|
|
7
|
+
import { sql, sqlConvertColumnArg, sqlConvertSingularLiteralArg, sqlConvertPluralLiteralArg, Z2S_COLLATION, } from "./sql.js";
|
|
8
8
|
import { parse as parseBigIntJson, } from "../../zero-cache/src/types/bigint-json.js";
|
|
9
9
|
import { hasOwn } from "../../shared/src/has-own.js";
|
|
10
10
|
const ZQL_RESULT_KEY = 'zql_result';
|
|
@@ -64,15 +64,17 @@ function findPathToBigInt(v) {
|
|
|
64
64
|
* - IN is changed to ANY to allow binding array literals
|
|
65
65
|
* - subqueries are aggregated using PG's `array_agg` and `row_to_json` functions
|
|
66
66
|
*/
|
|
67
|
-
export function compile(ast, tables, format) {
|
|
68
|
-
const compiler = new Compiler(tables);
|
|
67
|
+
export function compile(ast, tables, serverSchema, format) {
|
|
68
|
+
const compiler = new Compiler(tables, serverSchema);
|
|
69
69
|
return compiler.compile(ast, format);
|
|
70
70
|
}
|
|
71
71
|
export class Compiler {
|
|
72
72
|
#tables;
|
|
73
|
+
#serverSchema;
|
|
73
74
|
#nameMapper;
|
|
74
|
-
constructor(tables) {
|
|
75
|
+
constructor(tables, serverSchema) {
|
|
75
76
|
this.#tables = tables;
|
|
77
|
+
this.#serverSchema = serverSchema;
|
|
76
78
|
this.#nameMapper = clientToServer(tables);
|
|
77
79
|
}
|
|
78
80
|
compile(ast, format) {
|
|
@@ -85,8 +87,8 @@ export class Compiler {
|
|
|
85
87
|
correlation) {
|
|
86
88
|
const selectionSet = this.related(ast.related ?? [], format, ast.table);
|
|
87
89
|
const tableSchema = this.#tables[ast.table];
|
|
88
|
-
for (const
|
|
89
|
-
selectionSet.push(this.#selectCol(ast.table, column
|
|
90
|
+
for (const column of Object.keys(tableSchema.columns)) {
|
|
91
|
+
selectionSet.push(this.#selectCol(ast.table, column));
|
|
90
92
|
}
|
|
91
93
|
return sql `SELECT ${sql.join(selectionSet, ',')} FROM ${this.#mapTable(ast.table)} ${ast.where ? sql `WHERE ${this.where(ast.where, ast.table)}` : sql ``} ${correlation
|
|
92
94
|
? sql `${ast.where ? sql `AND` : sql `WHERE`} (${correlation})`
|
|
@@ -96,17 +98,31 @@ export class Compiler {
|
|
|
96
98
|
if (!orderBy) {
|
|
97
99
|
return sql ``;
|
|
98
100
|
}
|
|
99
|
-
return sql `ORDER BY ${sql.join(orderBy.map(([col, dir]) =>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
return sql `ORDER BY ${sql.join(orderBy.map(([col, dir]) => {
|
|
102
|
+
const serverColumnSchema = this.#serverSchema[this.#nameMapper.tableName(table)][this.#nameMapper.columnName(table, col)];
|
|
103
|
+
return dir === 'asc'
|
|
104
|
+
? // Oh postgres. The table must be referred to be client name but the column by server name.
|
|
105
|
+
// E.g., `SELECT server_col as client_col FROM server_table as client_table ORDER BY client_Table.server_col`
|
|
106
|
+
sql `${sql.ident(table)}.${this.#mapColumnNoAlias(table, col)}${this.#maybeCollate(serverColumnSchema)} ASC`
|
|
107
|
+
: sql `${sql.ident(table)}.${this.#mapColumnNoAlias(table, col)}${this.#maybeCollate(serverColumnSchema)} DESC`;
|
|
108
|
+
}), ', ')}`;
|
|
109
|
+
}
|
|
110
|
+
#maybeCollate(serverColumnSchema) {
|
|
111
|
+
if (serverColumnSchema.type === 'text' ||
|
|
112
|
+
serverColumnSchema.type === 'char' ||
|
|
113
|
+
serverColumnSchema.type === 'varchar') {
|
|
114
|
+
return sql ` COLLATE ${sql.ident(Z2S_COLLATION)}`;
|
|
115
|
+
}
|
|
116
|
+
if (serverColumnSchema.type === 'uuid' || serverColumnSchema.isEnum) {
|
|
117
|
+
return sql `::text COLLATE ${sql.ident(Z2S_COLLATION)}`;
|
|
118
|
+
}
|
|
119
|
+
return sql ``;
|
|
104
120
|
}
|
|
105
121
|
limit(limit) {
|
|
106
122
|
if (!limit) {
|
|
107
123
|
return sql ``;
|
|
108
124
|
}
|
|
109
|
-
return sql `LIMIT ${
|
|
125
|
+
return sql `LIMIT ${sqlConvertSingularLiteralArg(limit)}`;
|
|
110
126
|
}
|
|
111
127
|
related(relationships, format, parentTable) {
|
|
112
128
|
return relationships.map(relationship => this.relationshipSubquery(relationship, format?.relationships[must(relationship.subquery.alias)], parentTable));
|
|
@@ -194,7 +210,7 @@ export class Compiler {
|
|
|
194
210
|
case 'LIKE':
|
|
195
211
|
case 'NOT ILIKE':
|
|
196
212
|
case 'NOT LIKE':
|
|
197
|
-
return sql `${this.
|
|
213
|
+
return sql `${this.valueComparison(condition.left, table, condition.right, false)} ${sql.__dangerous__rawValue(condition.op)} ${this.valueComparison(condition.right, table, condition.left, false)}`;
|
|
198
214
|
case 'NOT IN':
|
|
199
215
|
case 'IN':
|
|
200
216
|
return this.any(condition, table);
|
|
@@ -204,19 +220,61 @@ export class Compiler {
|
|
|
204
220
|
}
|
|
205
221
|
}
|
|
206
222
|
distinctFrom(condition, table) {
|
|
207
|
-
return sql `${this.
|
|
223
|
+
return sql `${this.valueComparison(condition.left, table, condition.right, false)} ${condition.op === 'IS' ? sql `IS NOT DISTINCT FROM` : sql `IS DISTINCT FROM`} ${this.valueComparison(condition.right, table, condition.left, false)}`;
|
|
208
224
|
}
|
|
209
225
|
any(condition, table) {
|
|
210
|
-
return sql `${this.
|
|
226
|
+
return sql `${this.valueComparison(condition.left, table, condition.right, false)} ${condition.op === 'IN' ? sql `= ANY` : sql `!= ANY`} (${this.valueComparison(condition.right, table, condition.left, true)})`;
|
|
211
227
|
}
|
|
212
|
-
|
|
213
|
-
|
|
228
|
+
valueComparison(valuePos, table, otherValuePos, plural) {
|
|
229
|
+
const valuePosType = valuePos.type;
|
|
230
|
+
switch (valuePosType) {
|
|
214
231
|
case 'column':
|
|
215
|
-
return this.#mapColumnNoAlias(table,
|
|
232
|
+
return this.#mapColumnNoAlias(table, valuePos.name);
|
|
216
233
|
case 'literal':
|
|
217
|
-
return
|
|
234
|
+
return this.#literalValueComparison(valuePos, table, otherValuePos, plural);
|
|
218
235
|
case 'static':
|
|
219
236
|
throw new Error('Static parameters must be bound to a value before compiling to SQL');
|
|
237
|
+
default:
|
|
238
|
+
unreachable(valuePosType);
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
#literalValueComparison(valuePos, table, otherValuePos, plural) {
|
|
243
|
+
{
|
|
244
|
+
const otherType = otherValuePos.type;
|
|
245
|
+
switch (otherType) {
|
|
246
|
+
case 'column':
|
|
247
|
+
return sqlConvertColumnArg(this.#serverSchema[this.#nameMapper.tableName(table)][this.#nameMapper.columnName(table, otherValuePos.name)], valuePos.value, plural, true);
|
|
248
|
+
case 'literal': {
|
|
249
|
+
assert(plural === Array.isArray(valuePos.value));
|
|
250
|
+
if (Array.isArray(valuePos.value)) {
|
|
251
|
+
if (valuePos.value.length > 0) {
|
|
252
|
+
// If the array is non-empty base its type on its first
|
|
253
|
+
// element
|
|
254
|
+
return sqlConvertPluralLiteralArg(typeof valuePos.value[0], valuePos.value);
|
|
255
|
+
}
|
|
256
|
+
// If the array is empty, base its type on the other value
|
|
257
|
+
// position's type (as long as the other value position is non-null,
|
|
258
|
+
// cannot have a null[]).
|
|
259
|
+
if (otherValuePos.value !== null) {
|
|
260
|
+
return sqlConvertPluralLiteralArg(typeof otherValuePos.value, []);
|
|
261
|
+
}
|
|
262
|
+
// If the other value position is null, it can be compared to any
|
|
263
|
+
// type of empty array, chose 'string' arbitrarily.
|
|
264
|
+
return sqlConvertPluralLiteralArg('string', []);
|
|
265
|
+
}
|
|
266
|
+
if (typeof valuePos.value === 'string' ||
|
|
267
|
+
typeof valuePos.value === 'number' ||
|
|
268
|
+
typeof valuePos.value === 'boolean') {
|
|
269
|
+
return sqlConvertSingularLiteralArg(valuePos.value);
|
|
270
|
+
}
|
|
271
|
+
throw new Error(`Literal of unexpected type. ${valuePos.value} of type ${typeof valuePos.value}`);
|
|
272
|
+
}
|
|
273
|
+
case 'static':
|
|
274
|
+
throw new Error('Static parameters must be bound to a value before compiling to SQL');
|
|
275
|
+
default:
|
|
276
|
+
unreachable(otherType);
|
|
277
|
+
}
|
|
220
278
|
}
|
|
221
279
|
}
|
|
222
280
|
exists(condition, parentTable) {
|
|
@@ -257,8 +315,15 @@ export class Compiler {
|
|
|
257
315
|
const mapped = this.#nameMapper.tableName(table);
|
|
258
316
|
return sql.ident(mapped);
|
|
259
317
|
}
|
|
260
|
-
#selectCol(table, column
|
|
261
|
-
|
|
318
|
+
#selectCol(table, column) {
|
|
319
|
+
const serverColumnSchema = this.#serverSchema[this.#nameMapper.tableName(table)][this.#nameMapper.columnName(table, column)];
|
|
320
|
+
const serverType = serverColumnSchema.type;
|
|
321
|
+
if (!serverColumnSchema.isEnum &&
|
|
322
|
+
(serverType === 'date' ||
|
|
323
|
+
serverType === 'timestamp' ||
|
|
324
|
+
serverType === 'timestamptz' ||
|
|
325
|
+
serverType === 'timestamp with time zone' ||
|
|
326
|
+
serverType === 'timestamp without time zone')) {
|
|
262
327
|
return sql `EXTRACT(EPOCH FROM ${sql.ident(table)}.${this.#mapColumnNoAlias(table, column)}::timestamp AT TIME ZONE 'UTC') * 1000 as ${sql.ident(column)}`;
|
|
263
328
|
}
|
|
264
329
|
return sql `${sql.ident(table)}.${this.#mapColumn(table, column)}`;
|
|
@@ -266,43 +331,5 @@ export class Compiler {
|
|
|
266
331
|
#toJSON(table, singular = false) {
|
|
267
332
|
return sql `${singular ? sql `` : sql `COALESCE(json_agg`}(row_to_json(${sql.ident(table)})) ${singular ? sql `` : sql `, '[]'::json)`}`;
|
|
268
333
|
}
|
|
269
|
-
#extractType(table,
|
|
270
|
-
// first takes precedence over second in terms of type discovery
|
|
271
|
-
first, second) {
|
|
272
|
-
// Derive the type from the table schema first if able
|
|
273
|
-
const column = first.type === 'column'
|
|
274
|
-
? first.name
|
|
275
|
-
: second.type === 'column'
|
|
276
|
-
? second.name
|
|
277
|
-
: undefined;
|
|
278
|
-
if (column) {
|
|
279
|
-
return this.#tables[table].columns[column].type;
|
|
280
|
-
}
|
|
281
|
-
// We're comparing two literals? Derive the type from the JS type itself.
|
|
282
|
-
const literalValue = first.type === 'literal'
|
|
283
|
-
? first.value
|
|
284
|
-
: second.type === 'literal'
|
|
285
|
-
? second.value
|
|
286
|
-
: undefined;
|
|
287
|
-
assert(literalValue, 'Literal value not found');
|
|
288
|
-
if (literalValue === null) {
|
|
289
|
-
return 'null';
|
|
290
|
-
}
|
|
291
|
-
const jsType = typeof literalValue;
|
|
292
|
-
switch (jsType) {
|
|
293
|
-
case 'boolean':
|
|
294
|
-
case 'number':
|
|
295
|
-
case 'string':
|
|
296
|
-
return jsType;
|
|
297
|
-
case 'object':
|
|
298
|
-
case 'bigint':
|
|
299
|
-
case 'function':
|
|
300
|
-
case 'symbol':
|
|
301
|
-
case 'undefined':
|
|
302
|
-
throw new Error('Unsupported type: ' + jsType);
|
|
303
|
-
default:
|
|
304
|
-
unreachable(jsType);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
334
|
}
|
|
308
335
|
//# sourceMappingURL=compiler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ServerTableSchema = {
|
|
2
|
+
[columnName: string]: ServerColumnSchema;
|
|
3
|
+
};
|
|
4
|
+
export type ServerColumnSchema = {
|
|
5
|
+
type: string;
|
|
6
|
+
isEnum: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type ServerSchema = {
|
|
9
|
+
[tableName: string]: ServerTableSchema;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../z2s/src/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../z2s/src/schema.ts"],"names":[],"mappings":""}
|
package/out/z2s/src/sql.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SQLQuery } from '@databases/sql';
|
|
2
2
|
import baseSql from '@databases/sql';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
3
|
+
import type { ServerColumnSchema } from './schema.ts';
|
|
4
|
+
export declare const Z2S_COLLATION = "ucs_basic";
|
|
5
5
|
export declare function formatPg(sql: SQLQuery): {
|
|
6
6
|
text: string;
|
|
7
7
|
values: unknown[];
|
|
@@ -14,7 +14,10 @@ export declare function formatSqlite(sql: SQLQuery): {
|
|
|
14
14
|
text: string;
|
|
15
15
|
values: unknown[];
|
|
16
16
|
};
|
|
17
|
-
export
|
|
18
|
-
export
|
|
17
|
+
export type LiteralType = 'boolean' | 'number' | 'string' | 'null';
|
|
18
|
+
export type PluralLiteralType = Exclude<LiteralType, 'null'>;
|
|
19
|
+
export declare function sqlConvertSingularLiteralArg(value: string | boolean | number | null): SQLQuery;
|
|
20
|
+
export declare function sqlConvertPluralLiteralArg(type: PluralLiteralType, value: PluralLiteralType[]): SQLQuery;
|
|
21
|
+
export declare function sqlConvertColumnArg(serverColumnSchema: ServerColumnSchema, value: unknown, plural: boolean, isComparison: boolean): SQLQuery;
|
|
19
22
|
export declare const sql: baseSql.SQL;
|
|
20
23
|
//# sourceMappingURL=sql.d.ts.map
|
package/out/z2s/src/sql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../z2s/src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,OAAsB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../z2s/src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,OAAsB,MAAM,gBAAgB,CAAC;AAMpD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAGpD,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ;UAoQ9B,MAAM;YACJ,OAAO,EAAE;EAlQlB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,QAAQ;UA+P7C,MAAM;YACJ,OAAO,EAAE;EA7PlB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ;UA0PlC,MAAM;YACJ,OAAO,EAAE;EAxPlB;AAGD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAsB7D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GACtC,QAAQ,CAQV;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,EAAE,GACzB,QAAQ,CAQV;AAED,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,OAAO,GACpB,QAAQ,CASV;AA+KD,eAAO,MAAM,GAAG,aAAkB,CAAC"}
|