Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -134,6 +134,7 @@ const seedRow = (type: string, name: string): Row => ({

const matchesWhere = (row: Record<string, unknown>, where: Record<string, unknown>) =>
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v === null || v === undefined) return row[k] === null || row[k] === undefined;
return row[k] === v;
});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -94,6 +94,7 @@ function matches(r: Record<string, any>, where: Record<string, unknown>): boolea
if (!clauses.some((c) => matches(r, c))) return false;
continue;
}
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if ((r[k] ?? null) !== v) return false;
}
return true;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,6 +58,7 @@ const canonicalizeStoredFlow = (_name: string, body: any) => {
function matches(r: Record<string, any>, where: Record<string, unknown>): boolean {
for (const [k, v] of Object.entries(where)) {
if (v === undefined) continue;
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if ((r[k] ?? null) !== v) return false;
}
return true;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,6 +152,7 @@ const seedRow = (type: string, name: string): Row => ({

const matchesWhere = (row: Record<string, unknown>, where: Record<string, unknown>) =>
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v === null || v === undefined) return row[k] === null || row[k] === undefined;
return row[k] === v;
});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,6 +43,7 @@ interface Row {
function matches(r: Record<string, any>, where: Record<string, unknown>): boolean {
for (const [k, v] of Object.entries(where)) {
if (v === undefined) continue;
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if ((r[k] ?? null) !== v) return false;
}
return true;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,7 +80,10 @@ function makeFakeEngine() {
};

const matchesHistory = (h: Row, where: Record<string, unknown>): boolean =>
Object.entries(where).every(([k, v]) => v === undefined || h[k] === v);
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return v === undefined || h[k] === v;
});

return {
rows,
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -94,7 +94,10 @@ function makeFakeEngine() {
};

const matchesHistory = (h: Row, where: Record<string, unknown>): boolean =>
Object.entries(where).every(([k, v]) => v === undefined || h[k] === v);
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return v === undefined || h[k] === v;
});

return {
rows,
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,10 @@ function makeFakeEngine() {
};

const matchesHistory = (h: Row, where: Record<string, unknown>): boolean =>
Object.entries(where).every(([k, v]) => v === undefined || h[k] === v);
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return v === undefined || h[k] === v;
});

return {
rows,
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -52,7 +52,10 @@ function makeFakeEngine() {
};

const matchesHistory = (h: Row, where: Record<string, unknown>): boolean =>
Object.entries(where).every(([k, v]) => v === undefined || h[k] === v);
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return v === undefined || h[k] === v;
});

return {
rows,
Expand Down
5 changes: 4 additions & 1 deletion packages/objectql/src/adr0104-attestation-evidence.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,7 +50,10 @@ function rowsOf(store: Store, object: string): Array<Record<string, unknown>> {
function makeDriver(store: Store, stats: { created: number; existing: number }): IDataDriver {
const matches = (row: Record<string, unknown>, where: any): boolean => {
if (!where || typeof where !== 'object') return true;
return Object.entries(where).every(([k, v]) => row[k] === v);
return Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row[k] === v;
});
};
return {
name: 'default',
Expand Down
5 changes: 4 additions & 1 deletion packages/objectql/src/adr0104-lax-deviation-marker.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -63,7 +63,10 @@ interface DriverProbe {
function makeDriver(store: Store, probe: DriverProbe): IDataDriver {
const matches = (row: Record<string, unknown>, where: any): boolean => {
if (!where || typeof where !== 'object') return true;
return Object.entries(where).every(([k, v]) => row[k] === v);
return Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row[k] === v;
});
};
return {
name: 'default',
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,10 @@ function makeDriver() {
};
const matches = (row: any, where: any): boolean => {
if (!where || typeof where !== 'object') return true;
return Object.entries(where).every(([k, v]: [string, any]) => row?.[k] === v);
return Object.entries(where).every(([k, v]: [string, any]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row?.[k] === v;
});
};
let n = 0;
const driver: any = {
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,7 +43,10 @@ function makeDriver() {
};
const matches = (row: any, where: any): boolean => {
if (!where || typeof where !== 'object') return true;
return Object.entries(where).every(([k, v]: [string, any]) => row?.[k] === v);
return Object.entries(where).every(([k, v]: [string, any]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row?.[k] === v;
});
};
let n = 0;
const driver: any = {
Expand Down
5 changes: 4 additions & 1 deletion packages/objectql/src/engine-readonly-strip-signal.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,7 +51,10 @@ function makeDriver() {
};
const matches = (row: any, where: any): boolean => {
if (!where || typeof where !== 'object') return true;
return Object.entries(where).every(([k, v]: [string, any]) => row?.[k] === v);
return Object.entries(where).every(([k, v]: [string, any]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row?.[k] === v;
});
};
let n = 0;
const driver: any = {
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,6 +84,7 @@ function makeDriver() {
if (!where || typeof where !== 'object') return true;
return Object.entries(where).every(([k, v]) => {
if (k === '$and') return (v as any[]).every((sub) => matches(row, sub));
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row?.[k] === v;
});
};
Expand Down
5 changes: 4 additions & 1 deletion packages/objectql/src/engine-summary-retry.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,7 +17,10 @@ function makeDriver(opts: { onParentUpdate?: (parentId: string, callN: number) =
};
const matches = (row: any, where: any): boolean => {
if (!where || typeof where !== 'object') return true;
return Object.entries(where).every(([k, v]) => row?.[k] === v);
return Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row?.[k] === v;
});
};
const parentCalls = new Map<string, number>();
let n = 0;
Expand Down
1 change: 1 addition & 0 deletions packages/objectql/src/package-disable-enforcement.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,6 +83,7 @@ const rowKey = (w: Record<string, unknown>) =>

const matchesWhere = (row: Record<string, unknown>, where: Record<string, unknown>) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v === null) return row[k] === null || row[k] === undefined;
return row[k] === v;
});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -57,6 +57,7 @@ const rowKey = (w: Record<string, unknown>) =>

const matchesWhere = (row: Record<string, unknown>, where: Record<string, unknown>) =>
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v === null) return row[k] === null || row[k] === undefined;
return row[k] === v;
});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -82,6 +82,7 @@ const rowKey = (w: Record<string, unknown>) =>

const matchesWhere = (row: Record<string, unknown>, where: Record<string, unknown>) =>
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v === null) return row[k] === null || row[k] === undefined;
return row[k] === v;
});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,6 +41,7 @@ const rowKey = (w: Record<string, unknown>) =>

const matchesWhere = (row: Record<string, unknown>, where: Record<string, unknown>) =>
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v === null) return row[k] === null || row[k] === undefined;
return row[k] === v;
});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,6 +44,7 @@ function makeFakeEngine() {
if (!(v as any[]).some(sub => matches(row, sub))) return false;
continue;
}
if (k.startsWith('$')) throw new Error(`fake engine: unsupported filter operator ${k}`);
const rv = row[k];
if (v != null && typeof v === 'object' && '$in' in (v as any)) {
if (!(v as any).$in.includes(rv)) return false;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,6 +19,7 @@ function makeFakeEngine() {
const tables = new Map<string, any[]>();
const rows = (o: string) => (tables.get(o) ?? (tables.set(o, []), tables.get(o)!));
const matches = (row: any, where: any) => Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake engine: unsupported filter operator ${k}`);
if (v && typeof v === 'object' && '$in' in (v as any)) return (v as any).$in.includes(row[k]);
if (v && typeof v === 'object' && '$ne' in (v as any)) return row[k] !== (v as any).$ne;
return row[k] === v;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -35,6 +35,7 @@ function makeFakeEngine() {
if (!(v as any[]).some(sub => matches(row, sub))) return false;
continue;
}
if (k.startsWith('$')) throw new Error(`fake engine: unsupported filter operator ${k}`);
const rv = row[k];
if (v != null && typeof v === 'object' && '$in' in (v as any)) {
if (!(v as any).$in.includes(rv)) return false;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,6 +39,7 @@ function makeFakeEngine() {
const tables = new Map<string, any[]>();
const rows = (o: string) => (tables.get(o) ?? (tables.set(o, []), tables.get(o)!));
const matches = (row: any, where: any) => Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake engine: unsupported filter operator ${k}`);
if (v && typeof v === 'object' && '$in' in (v as any)) return (v as any).$in.includes(row[k]);
if (v && typeof v === 'object' && '$ne' in (v as any)) return row[k] !== (v as any).$ne;
return row[k] === v;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -37,6 +37,7 @@ function makeFakeEngine() {
const tables = new Map<string, any[]>();
const rows = (o: string) => (tables.get(o) ?? (tables.set(o, []), tables.get(o)!));
const matches = (row: any, where: any) => Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake engine: unsupported filter operator ${k}`);
if (v && typeof v === 'object' && '$in' in (v as any)) return (v as any).$in.includes(row[k]);
if (v && typeof v === 'object' && '$ne' in (v as any)) return row[k] !== (v as any).$ne;
return row[k] === v;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,6 +29,7 @@ function makeEngine(seed: Record<string, Row[]> = {}) {
if (!(v as any[]).some((sub) => matches(row, sub))) return false;
continue;
}
if (k.startsWith('$')) throw new Error(`fake engine: unsupported filter operator ${k}`);
const rv = row[k];
if (v != null && typeof v === 'object' && '$in' in (v as any)) {
if (!(v as any).$in.includes(rv)) return false;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,6 +30,7 @@ function makeFakeEngine() {
function matches(row: FakeRow, filter: any): boolean {
if (!filter || typeof filter !== 'object') return true;
for (const [k, v] of Object.entries(filter)) {
if (k.startsWith('$')) throw new Error(`fake engine: unsupported filter operator ${k}`);
const rv = row[k];
if (v != null && typeof v === 'object' && '$in' in (v as any)) {
if (!(v as any).$in.includes(rv)) return false;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,6 +48,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,6 +61,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
10 changes: 8 additions & 2 deletions packages/plugins/plugin-auth/src/auth-plugin.test.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -1018,7 +1018,10 @@ describe('AuthPlugin', () => {
sys_organization: [],
};
const matches = (row: any, where: any) =>
Object.entries(where ?? {}).every(([k, v]) => (v === null ? row[k] == null : row[k] === v));
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return v === null ? row[k] == null : row[k] === v;
});
return {
tables,
registerMiddleware: (mw: any) => middlewares.push(mw),
Expand DownExpand Up@@ -1131,7 +1134,10 @@ describe('AuthPlugin', () => {
sys_organization: [],
};
const matches = (row: any, where: any) =>
Object.entries(where ?? {}).every(([k, v]) => (v === null ? row[k] == null : row[k] === v));
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return v === null ? row[k] == null : row[k] === v;
});
return {
tables,
registerMiddleware: vi.fn(),
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -75,6 +75,7 @@ function createMemoryEngine() {
: a === b;
const matches = (row: MemoryRow, where: Record<string, unknown> = {}): boolean =>
Object.entries(where).every(([key, expected]) => {
if (key.startsWith('$')) throw new Error(`fake driver: unsupported operator ${key}`);
const actual = row[key];
if (expected && typeof expected === 'object' && !Array.isArray(expected) && !(expected instanceof Date)) {
const operators = expected as Record<string, unknown>;
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,10 @@ function makeQl(seed: Partial<Record<string, Row[]>> = {}) {
...seed,
};
const matches = (row: Row, where: Row) =>
Object.entries(where ?? {}).every(([k, v]) => (v === null ? row[k] == null : row[k] === v));
Object.entries(where ?? {}).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return v === null ? row[k] == null : row[k] === v;
});
return {
tables,
find: vi.fn(async (object: string, q: any) =>
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,6 +50,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -82,6 +82,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -96,6 +96,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -101,6 +101,7 @@ const createMemoryEngine = (vetoUserDelete?: () => Error | undefined) => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -57,6 +57,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -62,6 +62,7 @@ const createMemoryEngine = () => {
: a === b;
const matches = (row: any, where: Record<string, any> = {}) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
const actual = row[k];
if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date)) {
if ('$ne' in v) return !eq(actual, v.$ne);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,7 @@ function fakeEngine() {
const rowsOf = (t: string) => tables.get(t) ?? [];
const matches = (row: any, where: Record<string, any>) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v && typeof v === 'object' && !Array.isArray(v)) {
return Object.entries(v).every(([op, target]) => {
if (op === '$lt') return row[k] < (target as any);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,6 +51,7 @@ function fakeEngine(opts: EngineOpts = {}) {
const rowsOf = (t: string) => tables.get(t) ?? [];
const matches = (row: any, where: Record<string, any>) =>
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
if (v && typeof v === 'object' && !Array.isArray(v)) {
return Object.entries(v).every(([op, target]) => {
if (op === '$lt') return row[k] < (target as any);
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,7 +50,10 @@ function fakeEngine() {
const tables = new Map<string, any[]>();
const rowsOf = (t: string) => tables.get(t) ?? [];
const matches = (row: any, where: Record<string, any>) =>
Object.entries(where).every(([k, v]) => row[k] === v);
Object.entries(where).every(([k, v]) => {
if (k.startsWith('$')) throw new Error(`fake driver: unsupported operator ${k}`);
return row[k] === v;
});
return {
tables,
rows: (t: string) => [...rowsOf(t)],
Expand Down
Loading
Loading