@zenstackhq/runtime 3.0.0-alpha.9 → 3.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schema.cjs CHANGED
@@ -90,6 +90,9 @@ var ExpressionUtils = {
90
90
  or: /* @__PURE__ */ __name((expr, ...expressions) => {
91
91
  return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, "||", exp), expr);
92
92
  }, "or"),
93
+ not: /* @__PURE__ */ __name((expr) => {
94
+ return ExpressionUtils.unary("!", expr);
95
+ }, "not"),
93
96
  is: /* @__PURE__ */ __name((value, kind) => {
94
97
  return !!value && typeof value === "object" && "kind" in value && value.kind === kind;
95
98
  }, "is"),
@@ -101,7 +104,10 @@ var ExpressionUtils = {
101
104
  isUnary: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "unary"), "isUnary"),
102
105
  isBinary: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "binary"), "isBinary"),
103
106
  isField: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "field"), "isField"),
104
- isMember: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "member"), "isMember")
107
+ isMember: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "member"), "isMember"),
108
+ getLiteralValue: /* @__PURE__ */ __name((expr) => {
109
+ return ExpressionUtils.isLiteral(expr) ? expr.value : void 0;
110
+ }, "getLiteralValue")
105
111
  };
106
112
  // Annotate the CommonJS export names for ESM import in node:
107
113
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/index.ts","../src/schema/expression.ts"],"sourcesContent":["export type * from '@zenstackhq/sdk/schema';\nexport type { OperandExpression } from 'kysely';\nexport * from './expression';\n","import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from '.';\n\nexport const ExpressionUtils = {\n literal: (value: string | number | boolean): LiteralExpression => {\n return {\n kind: 'literal',\n value,\n };\n },\n\n array: (items: Expression[]): ArrayExpression => {\n return {\n kind: 'array',\n items,\n };\n },\n\n call: (functionName: string, args?: Expression[]): CallExpression => {\n return {\n kind: 'call',\n function: functionName,\n args,\n };\n },\n\n binary: (left: Expression, op: BinaryOperator, right: Expression): BinaryExpression => {\n return {\n kind: 'binary',\n op,\n left,\n right,\n };\n },\n\n unary: (op: UnaryOperator, operand: Expression): UnaryExpression => {\n return {\n kind: 'unary',\n op,\n operand,\n };\n },\n\n field: (field: string): FieldExpression => {\n return {\n kind: 'field',\n field,\n };\n },\n\n member: (receiver: Expression, members: string[]): MemberExpression => {\n return {\n kind: 'member',\n receiver: receiver,\n members,\n };\n },\n\n _this: (): ThisExpression => {\n return {\n kind: 'this',\n };\n },\n\n _null: (): NullExpression => {\n return {\n kind: 'null',\n };\n },\n\n and: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '&&', exp), expr);\n },\n\n or: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '||', exp), expr);\n },\n\n is: (value: unknown, kind: Expression['kind']): value is Expression => {\n return !!value && typeof value === 'object' && 'kind' in value && value.kind === kind;\n },\n\n isLiteral: (value: unknown): value is LiteralExpression => ExpressionUtils.is(value, 'literal'),\n\n isArray: (value: unknown): value is ArrayExpression => ExpressionUtils.is(value, 'array'),\n\n isCall: (value: unknown): value is CallExpression => ExpressionUtils.is(value, 'call'),\n\n isNull: (value: unknown): value is NullExpression => ExpressionUtils.is(value, 'null'),\n\n isThis: (value: unknown): value is ThisExpression => ExpressionUtils.is(value, 'this'),\n\n isUnary: (value: unknown): value is UnaryExpression => ExpressionUtils.is(value, 'unary'),\n\n isBinary: (value: unknown): value is BinaryExpression => ExpressionUtils.is(value, 'binary'),\n\n isField: (value: unknown): value is FieldExpression => ExpressionUtils.is(value, 'field'),\n\n isMember: (value: unknown): value is MemberExpression => ExpressionUtils.is(value, 'member'),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;;ACaO,IAAMA,kBAAkB;EAC3BC,SAAS,wBAACC,UAAAA;AACN,WAAO;MACHC,MAAM;MACND;IACJ;EACJ,GALS;EAOTE,OAAO,wBAACC,UAAAA;AACJ,WAAO;MACHF,MAAM;MACNE;IACJ;EACJ,GALO;EAOPC,MAAM,wBAACC,cAAsBC,SAAAA;AACzB,WAAO;MACHL,MAAM;MACNM,UAAUF;MACVC;IACJ;EACJ,GANM;EAQNE,QAAQ,wBAACC,MAAkBC,IAAoBC,UAAAA;AAC3C,WAAO;MACHV,MAAM;MACNS;MACAD;MACAE;IACJ;EACJ,GAPQ;EASRC,OAAO,wBAACF,IAAmBG,YAAAA;AACvB,WAAO;MACHZ,MAAM;MACNS;MACAG;IACJ;EACJ,GANO;EAQPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MACHb,MAAM;MACNa;IACJ;EACJ,GALO;EAOPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MACHhB,MAAM;MACNe;MACAC;IACJ;EACJ,GANQ;EAQRC,OAAO,6BAAA;AACH,WAAO;MACHjB,MAAM;IACV;EACJ,GAJO;EAMPkB,OAAO,6BAAA;AACH,WAAO;MACHlB,MAAM;IACV;EACJ,GAJO;EAMPmB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,IAAI,wBAAC3B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ2B,WAAW,wBAAC5B,UAA+CF,gBAAgB6B,GAAG3B,OAAO,SAAA,GAA1E;EAEX6B,SAAS,wBAAC7B,UAA6CF,gBAAgB6B,GAAG3B,OAAO,OAAA,GAAxE;EAET8B,QAAQ,wBAAC9B,UAA4CF,gBAAgB6B,GAAG3B,OAAO,MAAA,GAAvE;EAER+B,QAAQ,wBAAC/B,UAA4CF,gBAAgB6B,GAAG3B,OAAO,MAAA,GAAvE;EAERgC,QAAQ,wBAAChC,UAA4CF,gBAAgB6B,GAAG3B,OAAO,MAAA,GAAvE;EAERiC,SAAS,wBAACjC,UAA6CF,gBAAgB6B,GAAG3B,OAAO,OAAA,GAAxE;EAETkC,UAAU,wBAAClC,UAA8CF,gBAAgB6B,GAAG3B,OAAO,QAAA,GAAzE;EAEVmC,SAAS,wBAACnC,UAA6CF,gBAAgB6B,GAAG3B,OAAO,OAAA,GAAxE;EAEToC,UAAU,wBAACpC,UAA8CF,gBAAgB6B,GAAG3B,OAAO,QAAA,GAAzE;AACd;","names":["ExpressionUtils","literal","value","kind","array","items","call","functionName","args","function","binary","left","op","right","unary","operand","field","member","receiver","members","_this","_null","and","expr","expressions","reduce","acc","exp","or","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember"]}
1
+ {"version":3,"sources":["../src/schema/index.ts","../src/schema/expression.ts"],"sourcesContent":["export type * from '@zenstackhq/sdk/schema';\nexport type { OperandExpression } from 'kysely';\nexport * from './auth';\nexport * from './expression';\n","import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from '.';\n\nexport const ExpressionUtils = {\n literal: (value: string | number | boolean): LiteralExpression => {\n return {\n kind: 'literal',\n value,\n };\n },\n\n array: (items: Expression[]): ArrayExpression => {\n return {\n kind: 'array',\n items,\n };\n },\n\n call: (functionName: string, args?: Expression[]): CallExpression => {\n return {\n kind: 'call',\n function: functionName,\n args,\n };\n },\n\n binary: (left: Expression, op: BinaryOperator, right: Expression): BinaryExpression => {\n return {\n kind: 'binary',\n op,\n left,\n right,\n };\n },\n\n unary: (op: UnaryOperator, operand: Expression): UnaryExpression => {\n return {\n kind: 'unary',\n op,\n operand,\n };\n },\n\n field: (field: string): FieldExpression => {\n return {\n kind: 'field',\n field,\n };\n },\n\n member: (receiver: Expression, members: string[]): MemberExpression => {\n return {\n kind: 'member',\n receiver: receiver,\n members,\n };\n },\n\n _this: (): ThisExpression => {\n return {\n kind: 'this',\n };\n },\n\n _null: (): NullExpression => {\n return {\n kind: 'null',\n };\n },\n\n and: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '&&', exp), expr);\n },\n\n or: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '||', exp), expr);\n },\n\n not: (expr: Expression) => {\n return ExpressionUtils.unary('!', expr);\n },\n\n is: (value: unknown, kind: Expression['kind']): value is Expression => {\n return !!value && typeof value === 'object' && 'kind' in value && value.kind === kind;\n },\n\n isLiteral: (value: unknown): value is LiteralExpression => ExpressionUtils.is(value, 'literal'),\n\n isArray: (value: unknown): value is ArrayExpression => ExpressionUtils.is(value, 'array'),\n\n isCall: (value: unknown): value is CallExpression => ExpressionUtils.is(value, 'call'),\n\n isNull: (value: unknown): value is NullExpression => ExpressionUtils.is(value, 'null'),\n\n isThis: (value: unknown): value is ThisExpression => ExpressionUtils.is(value, 'this'),\n\n isUnary: (value: unknown): value is UnaryExpression => ExpressionUtils.is(value, 'unary'),\n\n isBinary: (value: unknown): value is BinaryExpression => ExpressionUtils.is(value, 'binary'),\n\n isField: (value: unknown): value is FieldExpression => ExpressionUtils.is(value, 'field'),\n\n isMember: (value: unknown): value is MemberExpression => ExpressionUtils.is(value, 'member'),\n\n getLiteralValue: (expr: Expression): string | number | boolean | undefined => {\n return ExpressionUtils.isLiteral(expr) ? expr.value : undefined;\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;;ACaO,IAAMA,kBAAkB;EAC3BC,SAAS,wBAACC,UAAAA;AACN,WAAO;MACHC,MAAM;MACND;IACJ;EACJ,GALS;EAOTE,OAAO,wBAACC,UAAAA;AACJ,WAAO;MACHF,MAAM;MACNE;IACJ;EACJ,GALO;EAOPC,MAAM,wBAACC,cAAsBC,SAAAA;AACzB,WAAO;MACHL,MAAM;MACNM,UAAUF;MACVC;IACJ;EACJ,GANM;EAQNE,QAAQ,wBAACC,MAAkBC,IAAoBC,UAAAA;AAC3C,WAAO;MACHV,MAAM;MACNS;MACAD;MACAE;IACJ;EACJ,GAPQ;EASRC,OAAO,wBAACF,IAAmBG,YAAAA;AACvB,WAAO;MACHZ,MAAM;MACNS;MACAG;IACJ;EACJ,GANO;EAQPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MACHb,MAAM;MACNa;IACJ;EACJ,GALO;EAOPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MACHhB,MAAM;MACNe;MACAC;IACJ;EACJ,GANQ;EAQRC,OAAO,6BAAA;AACH,WAAO;MACHjB,MAAM;IACV;EACJ,GAJO;EAMPkB,OAAO,6BAAA;AACH,WAAO;MACHlB,MAAM;IACV;EACJ,GAJO;EAMPmB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,KAAK,wBAACN,SAAAA;AACF,WAAOvB,gBAAgBc,MAAM,KAAKS,IAAAA;EACtC,GAFK;EAILO,IAAI,wBAAC5B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ4B,WAAW,wBAAC7B,UAA+CF,gBAAgB8B,GAAG5B,OAAO,SAAA,GAA1E;EAEX8B,SAAS,wBAAC9B,UAA6CF,gBAAgB8B,GAAG5B,OAAO,OAAA,GAAxE;EAET+B,QAAQ,wBAAC/B,UAA4CF,gBAAgB8B,GAAG5B,OAAO,MAAA,GAAvE;EAERgC,QAAQ,wBAAChC,UAA4CF,gBAAgB8B,GAAG5B,OAAO,MAAA,GAAvE;EAERiC,QAAQ,wBAACjC,UAA4CF,gBAAgB8B,GAAG5B,OAAO,MAAA,GAAvE;EAERkC,SAAS,wBAAClC,UAA6CF,gBAAgB8B,GAAG5B,OAAO,OAAA,GAAxE;EAETmC,UAAU,wBAACnC,UAA8CF,gBAAgB8B,GAAG5B,OAAO,QAAA,GAAzE;EAEVoC,SAAS,wBAACpC,UAA6CF,gBAAgB8B,GAAG5B,OAAO,OAAA,GAAxE;EAETqC,UAAU,wBAACrC,UAA8CF,gBAAgB8B,GAAG5B,OAAO,QAAA,GAAzE;EAEVsC,iBAAiB,wBAACjB,SAAAA;AACd,WAAOvB,gBAAgB+B,UAAUR,IAAAA,IAAQA,KAAKrB,QAAQuC;EAC1D,GAFiB;AAGrB;","names":["ExpressionUtils","literal","value","kind","array","items","call","functionName","args","function","binary","left","op","right","unary","operand","field","member","receiver","members","_this","_null","and","expr","expressions","reduce","acc","exp","or","not","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember","getLiteralValue","undefined"]}
package/dist/schema.d.cts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { LiteralExpression, Expression, ArrayExpression, CallExpression, BinaryOperator, BinaryExpression, UnaryOperator, UnaryExpression, FieldExpression, MemberExpression, ThisExpression, NullExpression } from '@zenstackhq/sdk/schema';
2
2
  export * from '@zenstackhq/sdk/schema';
3
3
  export { OperandExpression } from 'kysely';
4
+ export { A as AuthType } from './auth-CzM6GLw6.cjs';
5
+ import 'decimal.js';
4
6
 
5
7
  declare const ExpressionUtils: {
6
8
  literal: (value: string | number | boolean) => LiteralExpression;
@@ -14,6 +16,7 @@ declare const ExpressionUtils: {
14
16
  _null: () => NullExpression;
15
17
  and: (expr: Expression, ...expressions: Expression[]) => Expression;
16
18
  or: (expr: Expression, ...expressions: Expression[]) => Expression;
19
+ not: (expr: Expression) => UnaryExpression;
17
20
  is: (value: unknown, kind: Expression["kind"]) => value is Expression;
18
21
  isLiteral: (value: unknown) => value is LiteralExpression;
19
22
  isArray: (value: unknown) => value is ArrayExpression;
@@ -24,6 +27,7 @@ declare const ExpressionUtils: {
24
27
  isBinary: (value: unknown) => value is BinaryExpression;
25
28
  isField: (value: unknown) => value is FieldExpression;
26
29
  isMember: (value: unknown) => value is MemberExpression;
30
+ getLiteralValue: (expr: Expression) => string | number | boolean | undefined;
27
31
  };
28
32
 
29
33
  export { ExpressionUtils };
package/dist/schema.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { LiteralExpression, Expression, ArrayExpression, CallExpression, BinaryOperator, BinaryExpression, UnaryOperator, UnaryExpression, FieldExpression, MemberExpression, ThisExpression, NullExpression } from '@zenstackhq/sdk/schema';
2
2
  export * from '@zenstackhq/sdk/schema';
3
3
  export { OperandExpression } from 'kysely';
4
+ export { A as AuthType } from './auth-CzM6GLw6.js';
5
+ import 'decimal.js';
4
6
 
5
7
  declare const ExpressionUtils: {
6
8
  literal: (value: string | number | boolean) => LiteralExpression;
@@ -14,6 +16,7 @@ declare const ExpressionUtils: {
14
16
  _null: () => NullExpression;
15
17
  and: (expr: Expression, ...expressions: Expression[]) => Expression;
16
18
  or: (expr: Expression, ...expressions: Expression[]) => Expression;
19
+ not: (expr: Expression) => UnaryExpression;
17
20
  is: (value: unknown, kind: Expression["kind"]) => value is Expression;
18
21
  isLiteral: (value: unknown) => value is LiteralExpression;
19
22
  isArray: (value: unknown) => value is ArrayExpression;
@@ -24,6 +27,7 @@ declare const ExpressionUtils: {
24
27
  isBinary: (value: unknown) => value is BinaryExpression;
25
28
  isField: (value: unknown) => value is FieldExpression;
26
29
  isMember: (value: unknown) => value is MemberExpression;
30
+ getLiteralValue: (expr: Expression) => string | number | boolean | undefined;
27
31
  };
28
32
 
29
33
  export { ExpressionUtils };
package/dist/schema.js CHANGED
@@ -66,6 +66,9 @@ var ExpressionUtils = {
66
66
  or: /* @__PURE__ */ __name((expr, ...expressions) => {
67
67
  return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, "||", exp), expr);
68
68
  }, "or"),
69
+ not: /* @__PURE__ */ __name((expr) => {
70
+ return ExpressionUtils.unary("!", expr);
71
+ }, "not"),
69
72
  is: /* @__PURE__ */ __name((value, kind) => {
70
73
  return !!value && typeof value === "object" && "kind" in value && value.kind === kind;
71
74
  }, "is"),
@@ -77,7 +80,10 @@ var ExpressionUtils = {
77
80
  isUnary: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "unary"), "isUnary"),
78
81
  isBinary: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "binary"), "isBinary"),
79
82
  isField: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "field"), "isField"),
80
- isMember: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "member"), "isMember")
83
+ isMember: /* @__PURE__ */ __name((value) => ExpressionUtils.is(value, "member"), "isMember"),
84
+ getLiteralValue: /* @__PURE__ */ __name((expr) => {
85
+ return ExpressionUtils.isLiteral(expr) ? expr.value : void 0;
86
+ }, "getLiteralValue")
81
87
  };
82
88
  export {
83
89
  ExpressionUtils
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/expression.ts"],"sourcesContent":["import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from '.';\n\nexport const ExpressionUtils = {\n literal: (value: string | number | boolean): LiteralExpression => {\n return {\n kind: 'literal',\n value,\n };\n },\n\n array: (items: Expression[]): ArrayExpression => {\n return {\n kind: 'array',\n items,\n };\n },\n\n call: (functionName: string, args?: Expression[]): CallExpression => {\n return {\n kind: 'call',\n function: functionName,\n args,\n };\n },\n\n binary: (left: Expression, op: BinaryOperator, right: Expression): BinaryExpression => {\n return {\n kind: 'binary',\n op,\n left,\n right,\n };\n },\n\n unary: (op: UnaryOperator, operand: Expression): UnaryExpression => {\n return {\n kind: 'unary',\n op,\n operand,\n };\n },\n\n field: (field: string): FieldExpression => {\n return {\n kind: 'field',\n field,\n };\n },\n\n member: (receiver: Expression, members: string[]): MemberExpression => {\n return {\n kind: 'member',\n receiver: receiver,\n members,\n };\n },\n\n _this: (): ThisExpression => {\n return {\n kind: 'this',\n };\n },\n\n _null: (): NullExpression => {\n return {\n kind: 'null',\n };\n },\n\n and: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '&&', exp), expr);\n },\n\n or: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '||', exp), expr);\n },\n\n is: (value: unknown, kind: Expression['kind']): value is Expression => {\n return !!value && typeof value === 'object' && 'kind' in value && value.kind === kind;\n },\n\n isLiteral: (value: unknown): value is LiteralExpression => ExpressionUtils.is(value, 'literal'),\n\n isArray: (value: unknown): value is ArrayExpression => ExpressionUtils.is(value, 'array'),\n\n isCall: (value: unknown): value is CallExpression => ExpressionUtils.is(value, 'call'),\n\n isNull: (value: unknown): value is NullExpression => ExpressionUtils.is(value, 'null'),\n\n isThis: (value: unknown): value is ThisExpression => ExpressionUtils.is(value, 'this'),\n\n isUnary: (value: unknown): value is UnaryExpression => ExpressionUtils.is(value, 'unary'),\n\n isBinary: (value: unknown): value is BinaryExpression => ExpressionUtils.is(value, 'binary'),\n\n isField: (value: unknown): value is FieldExpression => ExpressionUtils.is(value, 'field'),\n\n isMember: (value: unknown): value is MemberExpression => ExpressionUtils.is(value, 'member'),\n};\n"],"mappings":";;;;AAeO,IAAMA,kBAAkB;EAC3BC,SAAS,wBAACC,UAAAA;AACN,WAAO;MACHC,MAAM;MACND;IACJ;EACJ,GALS;EAOTE,OAAO,wBAACC,UAAAA;AACJ,WAAO;MACHF,MAAM;MACNE;IACJ;EACJ,GALO;EAOPC,MAAM,wBAACC,cAAsBC,SAAAA;AACzB,WAAO;MACHL,MAAM;MACNM,UAAUF;MACVC;IACJ;EACJ,GANM;EAQNE,QAAQ,wBAACC,MAAkBC,IAAoBC,UAAAA;AAC3C,WAAO;MACHV,MAAM;MACNS;MACAD;MACAE;IACJ;EACJ,GAPQ;EASRC,OAAO,wBAACF,IAAmBG,YAAAA;AACvB,WAAO;MACHZ,MAAM;MACNS;MACAG;IACJ;EACJ,GANO;EAQPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MACHb,MAAM;MACNa;IACJ;EACJ,GALO;EAOPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MACHhB,MAAM;MACNe;MACAC;IACJ;EACJ,GANQ;EAQRC,OAAO,6BAAA;AACH,WAAO;MACHjB,MAAM;IACV;EACJ,GAJO;EAMPkB,OAAO,6BAAA;AACH,WAAO;MACHlB,MAAM;IACV;EACJ,GAJO;EAMPmB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,IAAI,wBAAC3B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ2B,WAAW,wBAAC5B,UAA+CF,gBAAgB6B,GAAG3B,OAAO,SAAA,GAA1E;EAEX6B,SAAS,wBAAC7B,UAA6CF,gBAAgB6B,GAAG3B,OAAO,OAAA,GAAxE;EAET8B,QAAQ,wBAAC9B,UAA4CF,gBAAgB6B,GAAG3B,OAAO,MAAA,GAAvE;EAER+B,QAAQ,wBAAC/B,UAA4CF,gBAAgB6B,GAAG3B,OAAO,MAAA,GAAvE;EAERgC,QAAQ,wBAAChC,UAA4CF,gBAAgB6B,GAAG3B,OAAO,MAAA,GAAvE;EAERiC,SAAS,wBAACjC,UAA6CF,gBAAgB6B,GAAG3B,OAAO,OAAA,GAAxE;EAETkC,UAAU,wBAAClC,UAA8CF,gBAAgB6B,GAAG3B,OAAO,QAAA,GAAzE;EAEVmC,SAAS,wBAACnC,UAA6CF,gBAAgB6B,GAAG3B,OAAO,OAAA,GAAxE;EAEToC,UAAU,wBAACpC,UAA8CF,gBAAgB6B,GAAG3B,OAAO,QAAA,GAAzE;AACd;","names":["ExpressionUtils","literal","value","kind","array","items","call","functionName","args","function","binary","left","op","right","unary","operand","field","member","receiver","members","_this","_null","and","expr","expressions","reduce","acc","exp","or","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember"]}
1
+ {"version":3,"sources":["../src/schema/expression.ts"],"sourcesContent":["import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from '.';\n\nexport const ExpressionUtils = {\n literal: (value: string | number | boolean): LiteralExpression => {\n return {\n kind: 'literal',\n value,\n };\n },\n\n array: (items: Expression[]): ArrayExpression => {\n return {\n kind: 'array',\n items,\n };\n },\n\n call: (functionName: string, args?: Expression[]): CallExpression => {\n return {\n kind: 'call',\n function: functionName,\n args,\n };\n },\n\n binary: (left: Expression, op: BinaryOperator, right: Expression): BinaryExpression => {\n return {\n kind: 'binary',\n op,\n left,\n right,\n };\n },\n\n unary: (op: UnaryOperator, operand: Expression): UnaryExpression => {\n return {\n kind: 'unary',\n op,\n operand,\n };\n },\n\n field: (field: string): FieldExpression => {\n return {\n kind: 'field',\n field,\n };\n },\n\n member: (receiver: Expression, members: string[]): MemberExpression => {\n return {\n kind: 'member',\n receiver: receiver,\n members,\n };\n },\n\n _this: (): ThisExpression => {\n return {\n kind: 'this',\n };\n },\n\n _null: (): NullExpression => {\n return {\n kind: 'null',\n };\n },\n\n and: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '&&', exp), expr);\n },\n\n or: (expr: Expression, ...expressions: Expression[]) => {\n return expressions.reduce((acc, exp) => ExpressionUtils.binary(acc, '||', exp), expr);\n },\n\n not: (expr: Expression) => {\n return ExpressionUtils.unary('!', expr);\n },\n\n is: (value: unknown, kind: Expression['kind']): value is Expression => {\n return !!value && typeof value === 'object' && 'kind' in value && value.kind === kind;\n },\n\n isLiteral: (value: unknown): value is LiteralExpression => ExpressionUtils.is(value, 'literal'),\n\n isArray: (value: unknown): value is ArrayExpression => ExpressionUtils.is(value, 'array'),\n\n isCall: (value: unknown): value is CallExpression => ExpressionUtils.is(value, 'call'),\n\n isNull: (value: unknown): value is NullExpression => ExpressionUtils.is(value, 'null'),\n\n isThis: (value: unknown): value is ThisExpression => ExpressionUtils.is(value, 'this'),\n\n isUnary: (value: unknown): value is UnaryExpression => ExpressionUtils.is(value, 'unary'),\n\n isBinary: (value: unknown): value is BinaryExpression => ExpressionUtils.is(value, 'binary'),\n\n isField: (value: unknown): value is FieldExpression => ExpressionUtils.is(value, 'field'),\n\n isMember: (value: unknown): value is MemberExpression => ExpressionUtils.is(value, 'member'),\n\n getLiteralValue: (expr: Expression): string | number | boolean | undefined => {\n return ExpressionUtils.isLiteral(expr) ? expr.value : undefined;\n },\n};\n"],"mappings":";;;;AAeO,IAAMA,kBAAkB;EAC3BC,SAAS,wBAACC,UAAAA;AACN,WAAO;MACHC,MAAM;MACND;IACJ;EACJ,GALS;EAOTE,OAAO,wBAACC,UAAAA;AACJ,WAAO;MACHF,MAAM;MACNE;IACJ;EACJ,GALO;EAOPC,MAAM,wBAACC,cAAsBC,SAAAA;AACzB,WAAO;MACHL,MAAM;MACNM,UAAUF;MACVC;IACJ;EACJ,GANM;EAQNE,QAAQ,wBAACC,MAAkBC,IAAoBC,UAAAA;AAC3C,WAAO;MACHV,MAAM;MACNS;MACAD;MACAE;IACJ;EACJ,GAPQ;EASRC,OAAO,wBAACF,IAAmBG,YAAAA;AACvB,WAAO;MACHZ,MAAM;MACNS;MACAG;IACJ;EACJ,GANO;EAQPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MACHb,MAAM;MACNa;IACJ;EACJ,GALO;EAOPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MACHhB,MAAM;MACNe;MACAC;IACJ;EACJ,GANQ;EAQRC,OAAO,6BAAA;AACH,WAAO;MACHjB,MAAM;IACV;EACJ,GAJO;EAMPkB,OAAO,6BAAA;AACH,WAAO;MACHlB,MAAM;IACV;EACJ,GAJO;EAMPmB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ3B,gBAAgBU,OAAOgB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,KAAK,wBAACN,SAAAA;AACF,WAAOvB,gBAAgBc,MAAM,KAAKS,IAAAA;EACtC,GAFK;EAILO,IAAI,wBAAC5B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ4B,WAAW,wBAAC7B,UAA+CF,gBAAgB8B,GAAG5B,OAAO,SAAA,GAA1E;EAEX8B,SAAS,wBAAC9B,UAA6CF,gBAAgB8B,GAAG5B,OAAO,OAAA,GAAxE;EAET+B,QAAQ,wBAAC/B,UAA4CF,gBAAgB8B,GAAG5B,OAAO,MAAA,GAAvE;EAERgC,QAAQ,wBAAChC,UAA4CF,gBAAgB8B,GAAG5B,OAAO,MAAA,GAAvE;EAERiC,QAAQ,wBAACjC,UAA4CF,gBAAgB8B,GAAG5B,OAAO,MAAA,GAAvE;EAERkC,SAAS,wBAAClC,UAA6CF,gBAAgB8B,GAAG5B,OAAO,OAAA,GAAxE;EAETmC,UAAU,wBAACnC,UAA8CF,gBAAgB8B,GAAG5B,OAAO,QAAA,GAAzE;EAEVoC,SAAS,wBAACpC,UAA6CF,gBAAgB8B,GAAG5B,OAAO,OAAA,GAAxE;EAETqC,UAAU,wBAACrC,UAA8CF,gBAAgB8B,GAAG5B,OAAO,QAAA,GAAzE;EAEVsC,iBAAiB,wBAACjB,SAAAA;AACd,WAAOvB,gBAAgB+B,UAAUR,IAAAA,IAAQA,KAAKrB,QAAQuC;EAC1D,GAFiB;AAGrB;","names":["ExpressionUtils","literal","value","kind","array","items","call","functionName","args","function","binary","left","op","right","unary","operand","field","member","receiver","members","_this","_null","and","expr","expressions","reduce","acc","exp","or","not","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember","getLiteralValue","undefined"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/runtime",
3
- "version": "3.0.0-alpha.9",
3
+ "version": "3.0.0-beta.10",
4
4
  "description": "ZenStack Runtime",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -30,14 +30,24 @@
30
30
  "default": "./dist/schema.cjs"
31
31
  }
32
32
  },
33
+ "./helpers": {
34
+ "import": {
35
+ "types": "./dist/helpers.d.ts",
36
+ "default": "./dist/helpers.js"
37
+ },
38
+ "require": {
39
+ "types": "./dist/helpers.d.cts",
40
+ "default": "./dist/helpers.cjs"
41
+ }
42
+ },
33
43
  "./plugins/policy": {
34
44
  "import": {
35
- "types": "./dist/plugins/policy.d.ts",
36
- "default": "./dist/plugins/policy.js"
45
+ "types": "./dist/plugins/policy/index.d.ts",
46
+ "default": "./dist/plugins/policy/index.js"
37
47
  },
38
48
  "require": {
39
- "types": "./dist/plugins/policy.d.cts",
40
- "default": "./dist/plugins/policy.cjs"
49
+ "types": "./dist/plugins/policy/index.d.cts",
50
+ "default": "./dist/plugins/policy/index.cjs"
41
51
  }
42
52
  },
43
53
  "./package.json": {
@@ -49,17 +59,19 @@
49
59
  "@paralleldrive/cuid2": "^2.2.2",
50
60
  "decimal.js": "^10.4.3",
51
61
  "json-stable-stringify": "^1.3.0",
52
- "kysely": "^0.27.6",
53
62
  "nanoid": "^5.0.9",
63
+ "toposort": "^2.0.2",
54
64
  "ts-pattern": "^5.7.1",
55
65
  "ulid": "^3.0.0",
56
66
  "uuid": "^11.0.5",
57
- "@zenstackhq/common-helpers": "3.0.0-alpha.9"
67
+ "zod-validation-error": "^4.0.1",
68
+ "@zenstackhq/common-helpers": "3.0.0-beta.10"
58
69
  },
59
70
  "peerDependencies": {
60
- "better-sqlite3": "^11.8.1",
71
+ "better-sqlite3": "^12.2.0",
72
+ "kysely": "^0.27.6",
61
73
  "pg": "^8.13.1",
62
- "zod": "^3.25.67"
74
+ "zod": "^3.25.0 || ^4.0.0"
63
75
  },
64
76
  "peerDependenciesMeta": {
65
77
  "better-sqlite3": {
@@ -70,22 +82,21 @@
70
82
  }
71
83
  },
72
84
  "devDependencies": {
73
- "@types/better-sqlite3": "^7.0.0",
85
+ "@types/better-sqlite3": "^7.6.13",
74
86
  "@types/pg": "^8.0.0",
87
+ "@types/toposort": "^2.0.7",
75
88
  "tsx": "^4.19.2",
76
- "@zenstackhq/sdk": "3.0.0-alpha.9",
77
- "@zenstackhq/testtools": "3.0.0-alpha.9",
78
- "@zenstackhq/typescript-config": "3.0.0-alpha.9",
79
- "@zenstackhq/language": "3.0.0-alpha.9",
80
- "@zenstackhq/eslint-config": "3.0.0-alpha.9"
89
+ "zod": "~3.25.0",
90
+ "@zenstackhq/sdk": "3.0.0-beta.10",
91
+ "@zenstackhq/vitest-config": "3.0.0-beta.10",
92
+ "@zenstackhq/eslint-config": "3.0.0-beta.10",
93
+ "@zenstackhq/typescript-config": "3.0.0-beta.10",
94
+ "@zenstackhq/language": "3.0.0-beta.10"
81
95
  },
82
96
  "scripts": {
83
- "build": "tsup-node",
97
+ "build": "tsc --noEmit && tsup-node",
84
98
  "watch": "tsup-node --watch",
85
99
  "lint": "eslint src --ext ts",
86
- "test": "vitest run && pnpm test:generate && pnpm test:typecheck",
87
- "test:generate": "tsx test/typing/generate.ts",
88
- "test:typecheck": "tsc --project tsconfig.test.json",
89
100
  "pack": "pnpm pack"
90
101
  }
91
102
  }