diff --git a/packages/orm/src/client/contract.ts b/packages/orm/src/client/contract.ts index 01fec352..57cd9b05 100644 --- a/packages/orm/src/client/contract.ts +++ b/packages/orm/src/client/contract.ts @@ -61,6 +61,9 @@ export enum TransactionIsolationLevel { * ZenStack client interface. */ export type ClientContract = ClientOptions> = { + /** + * The schema definition. + */ readonly $schema: Schema; /** diff --git a/packages/orm/src/utils/schema-utils.ts b/packages/orm/src/utils/schema-utils.ts index cd5ce553..b928b078 100644 --- a/packages/orm/src/utils/schema-utils.ts +++ b/packages/orm/src/utils/schema-utils.ts @@ -81,6 +81,7 @@ export class MatchingExpressionVisitor extends ExpressionVisitor { } find(expr: Expression) { + this.found = false; this.visit(expr); return this.found; } diff --git a/packages/plugins/policy/src/expression-evaluator.ts b/packages/plugins/policy/src/expression-evaluator.ts index e1d4e8e4..45c7b855 100644 --- a/packages/plugins/policy/src/expression-evaluator.ts +++ b/packages/plugins/policy/src/expression-evaluator.ts @@ -106,7 +106,7 @@ export class ExpressionEvaluator { invariant(op === '?' || op === '!' || op === '^', 'expected "?" or "!" or "^" operator'); const left = this.evaluate(expr.left, context); - if (!left) { + if (left === null || left === undefined) { return null; }