@zenstackhq/schema 3.3.0-beta.3 → 3.3.0-beta.4

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/index.cjs CHANGED
@@ -33,9 +33,10 @@ var ExpressionUtils = {
33
33
  value
34
34
  };
35
35
  }, "literal"),
36
- array: /* @__PURE__ */ __name((items) => {
36
+ array: /* @__PURE__ */ __name((type, items) => {
37
37
  return {
38
38
  kind: "array",
39
+ type,
39
40
  items
40
41
  };
41
42
  }, "array"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/expression-utils.ts"],"sourcesContent":["export type * from './expression';\nexport * from './expression-utils';\nexport type * from './schema';\n","import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n BindingExpression,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from './expression';\n\n/**\n * Utility functions to create and work with Expression objects\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, binding?: string): BinaryExpression => {\n return {\n kind: 'binary',\n op,\n left,\n right,\n binding,\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 binding: (name: string): BindingExpression => {\n return {\n kind: 'binding',\n name,\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 isBinding: (value: unknown): value is BindingExpression => ExpressionUtils.is(value, 'binding'),\n\n getLiteralValue: (expr: Expression): string | number | boolean | undefined => {\n return ExpressionUtils.isLiteral(expr) ? expr.value : undefined;\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;;;;;;ACkBO,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,OAAmBC,YAAAA;AAC9D,WAAO;MACHX,MAAM;MACNS;MACAD;MACAE;MACAC;IACJ;EACJ,GARQ;EAURC,OAAO,wBAACH,IAAmBI,YAAAA;AACvB,WAAO;MACHb,MAAM;MACNS;MACAI;IACJ;EACJ,GANO;EAQPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MACHd,MAAM;MACNc;IACJ;EACJ,GALO;EAOPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MACHjB,MAAM;MACNgB;MACAC;IACJ;EACJ,GANQ;EAQRN,SAAS,wBAACO,SAAAA;AACN,WAAO;MACHlB,MAAM;MACNkB;IACJ;EACJ,GALS;EAOTC,OAAO,6BAAA;AACH,WAAO;MACHnB,MAAM;IACV;EACJ,GAJO;EAMPoB,OAAO,6BAAA;AACH,WAAO;MACHpB,MAAM;IACV;EACJ,GAJO;EAMPqB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ7B,gBAAgBU,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ7B,gBAAgBU,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,KAAK,wBAACN,SAAAA;AACF,WAAOzB,gBAAgBe,MAAM,KAAKU,IAAAA;EACtC,GAFK;EAILO,IAAI,wBAAC9B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ8B,WAAW,wBAAC/B,UAA+CF,gBAAgBgC,GAAG9B,OAAO,SAAA,GAA1E;EAEXgC,SAAS,wBAAChC,UAA6CF,gBAAgBgC,GAAG9B,OAAO,OAAA,GAAxE;EAETiC,QAAQ,wBAACjC,UAA4CF,gBAAgBgC,GAAG9B,OAAO,MAAA,GAAvE;EAERkC,QAAQ,wBAAClC,UAA4CF,gBAAgBgC,GAAG9B,OAAO,MAAA,GAAvE;EAERmC,QAAQ,wBAACnC,UAA4CF,gBAAgBgC,GAAG9B,OAAO,MAAA,GAAvE;EAERoC,SAAS,wBAACpC,UAA6CF,gBAAgBgC,GAAG9B,OAAO,OAAA,GAAxE;EAETqC,UAAU,wBAACrC,UAA8CF,gBAAgBgC,GAAG9B,OAAO,QAAA,GAAzE;EAEVsC,SAAS,wBAACtC,UAA6CF,gBAAgBgC,GAAG9B,OAAO,OAAA,GAAxE;EAETuC,UAAU,wBAACvC,UAA8CF,gBAAgBgC,GAAG9B,OAAO,QAAA,GAAzE;EAEVwC,WAAW,wBAACxC,UAA+CF,gBAAgBgC,GAAG9B,OAAO,SAAA,GAA1E;EAEXyC,iBAAiB,wBAAClB,SAAAA;AACd,WAAOzB,gBAAgBiC,UAAUR,IAAAA,IAAQA,KAAKvB,QAAQ0C;EAC1D,GAFiB;AAGrB;","names":["ExpressionUtils","literal","value","kind","array","items","call","functionName","args","function","binary","left","op","right","binding","unary","operand","field","member","receiver","members","name","_this","_null","and","expr","expressions","reduce","acc","exp","or","not","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember","isBinding","getLiteralValue","undefined"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/expression-utils.ts"],"sourcesContent":["export type * from './expression';\nexport * from './expression-utils';\nexport type * from './schema';\n","import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n BindingExpression,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from './expression';\n\n/**\n * Utility functions to create and work with Expression objects\n */\nexport const ExpressionUtils = {\n literal: (value: string | number | boolean): LiteralExpression => {\n return { kind: 'literal', value };\n },\n\n array: (type: string, items: Expression[]): ArrayExpression => {\n return { kind: 'array', type, items };\n },\n\n call: (functionName: string, args?: Expression[]): CallExpression => {\n return { kind: 'call', function: functionName, args };\n },\n\n binary: (left: Expression, op: BinaryOperator, right: Expression, binding?: string): BinaryExpression => {\n return { kind: 'binary', op, left, right, binding };\n },\n\n unary: (op: UnaryOperator, operand: Expression): UnaryExpression => {\n return { kind: 'unary', op, operand };\n },\n\n field: (field: string): FieldExpression => {\n return { kind: 'field', field };\n },\n\n member: (receiver: Expression, members: string[]): MemberExpression => {\n return { kind: 'member', receiver: receiver, members };\n },\n\n binding: (name: string): BindingExpression => {\n return { kind: 'binding', name };\n },\n\n _this: (): ThisExpression => {\n return { kind: 'this' };\n },\n\n _null: (): NullExpression => {\n return { kind: 'null' };\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 isBinding: (value: unknown): value is BindingExpression => ExpressionUtils.is(value, 'binding'),\n\n getLiteralValue: (expr: Expression): string | number | boolean | undefined => {\n return ExpressionUtils.isLiteral(expr) ? expr.value : undefined;\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;;;;;;ACkBO,IAAMA,kBAAkB;EAC3BC,SAAS,wBAACC,UAAAA;AACN,WAAO;MAAEC,MAAM;MAAWD;IAAM;EACpC,GAFS;EAITE,OAAO,wBAACC,MAAcC,UAAAA;AAClB,WAAO;MAAEH,MAAM;MAASE;MAAMC;IAAM;EACxC,GAFO;EAIPC,MAAM,wBAACC,cAAsBC,SAAAA;AACzB,WAAO;MAAEN,MAAM;MAAQO,UAAUF;MAAcC;IAAK;EACxD,GAFM;EAINE,QAAQ,wBAACC,MAAkBC,IAAoBC,OAAmBC,YAAAA;AAC9D,WAAO;MAAEZ,MAAM;MAAUU;MAAID;MAAME;MAAOC;IAAQ;EACtD,GAFQ;EAIRC,OAAO,wBAACH,IAAmBI,YAAAA;AACvB,WAAO;MAAEd,MAAM;MAASU;MAAII;IAAQ;EACxC,GAFO;EAIPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MAAEf,MAAM;MAASe;IAAM;EAClC,GAFO;EAIPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MAAElB,MAAM;MAAUiB;MAAoBC;IAAQ;EACzD,GAFQ;EAIRN,SAAS,wBAACO,SAAAA;AACN,WAAO;MAAEnB,MAAM;MAAWmB;IAAK;EACnC,GAFS;EAITC,OAAO,6BAAA;AACH,WAAO;MAAEpB,MAAM;IAAO;EAC1B,GAFO;EAIPqB,OAAO,6BAAA;AACH,WAAO;MAAErB,MAAM;IAAO;EAC1B,GAFO;EAIPsB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ9B,gBAAgBW,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ9B,gBAAgBW,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,KAAK,wBAACN,SAAAA;AACF,WAAO1B,gBAAgBgB,MAAM,KAAKU,IAAAA;EACtC,GAFK;EAILO,IAAI,wBAAC/B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ+B,WAAW,wBAAChC,UAA+CF,gBAAgBiC,GAAG/B,OAAO,SAAA,GAA1E;EAEXiC,SAAS,wBAACjC,UAA6CF,gBAAgBiC,GAAG/B,OAAO,OAAA,GAAxE;EAETkC,QAAQ,wBAAClC,UAA4CF,gBAAgBiC,GAAG/B,OAAO,MAAA,GAAvE;EAERmC,QAAQ,wBAACnC,UAA4CF,gBAAgBiC,GAAG/B,OAAO,MAAA,GAAvE;EAERoC,QAAQ,wBAACpC,UAA4CF,gBAAgBiC,GAAG/B,OAAO,MAAA,GAAvE;EAERqC,SAAS,wBAACrC,UAA6CF,gBAAgBiC,GAAG/B,OAAO,OAAA,GAAxE;EAETsC,UAAU,wBAACtC,UAA8CF,gBAAgBiC,GAAG/B,OAAO,QAAA,GAAzE;EAEVuC,SAAS,wBAACvC,UAA6CF,gBAAgBiC,GAAG/B,OAAO,OAAA,GAAxE;EAETwC,UAAU,wBAACxC,UAA8CF,gBAAgBiC,GAAG/B,OAAO,QAAA,GAAzE;EAEVyC,WAAW,wBAACzC,UAA+CF,gBAAgBiC,GAAG/B,OAAO,SAAA,GAA1E;EAEX0C,iBAAiB,wBAAClB,SAAAA;AACd,WAAO1B,gBAAgBkC,UAAUR,IAAAA,IAAQA,KAAKxB,QAAQ2C;EAC1D,GAFiB;AAGrB;","names":["ExpressionUtils","literal","value","kind","array","type","items","call","functionName","args","function","binary","left","op","right","binding","unary","operand","field","member","receiver","members","name","_this","_null","and","expr","expressions","reduce","acc","exp","or","not","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember","isBinding","getLiteralValue","undefined"]}
package/dist/index.d.cts CHANGED
@@ -7,6 +7,7 @@ type LiteralExpression = {
7
7
  };
8
8
  type ArrayExpression = {
9
9
  kind: 'array';
10
+ type: string;
10
11
  items: Expression[];
11
12
  };
12
13
  type FieldExpression = {
@@ -53,7 +54,7 @@ type BinaryOperator = '&&' | '||' | '==' | '!=' | '<' | '<=' | '>' | '>=' | '?'
53
54
  */
54
55
  declare const ExpressionUtils: {
55
56
  literal: (value: string | number | boolean) => LiteralExpression;
56
- array: (items: Expression[]) => ArrayExpression;
57
+ array: (type: string, items: Expression[]) => ArrayExpression;
57
58
  call: (functionName: string, args?: Expression[]) => CallExpression;
58
59
  binary: (left: Expression, op: BinaryOperator, right: Expression, binding?: string) => BinaryExpression;
59
60
  unary: (op: UnaryOperator, operand: Expression) => UnaryExpression;
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ type LiteralExpression = {
7
7
  };
8
8
  type ArrayExpression = {
9
9
  kind: 'array';
10
+ type: string;
10
11
  items: Expression[];
11
12
  };
12
13
  type FieldExpression = {
@@ -53,7 +54,7 @@ type BinaryOperator = '&&' | '||' | '==' | '!=' | '<' | '<=' | '>' | '>=' | '?'
53
54
  */
54
55
  declare const ExpressionUtils: {
55
56
  literal: (value: string | number | boolean) => LiteralExpression;
56
- array: (items: Expression[]) => ArrayExpression;
57
+ array: (type: string, items: Expression[]) => ArrayExpression;
57
58
  call: (functionName: string, args?: Expression[]) => CallExpression;
58
59
  binary: (left: Expression, op: BinaryOperator, right: Expression, binding?: string) => BinaryExpression;
59
60
  unary: (op: UnaryOperator, operand: Expression) => UnaryExpression;
package/dist/index.js CHANGED
@@ -9,9 +9,10 @@ var ExpressionUtils = {
9
9
  value
10
10
  };
11
11
  }, "literal"),
12
- array: /* @__PURE__ */ __name((items) => {
12
+ array: /* @__PURE__ */ __name((type, items) => {
13
13
  return {
14
14
  kind: "array",
15
+ type,
15
16
  items
16
17
  };
17
18
  }, "array"),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/expression-utils.ts"],"sourcesContent":["import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n BindingExpression,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from './expression';\n\n/**\n * Utility functions to create and work with Expression objects\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, binding?: string): BinaryExpression => {\n return {\n kind: 'binary',\n op,\n left,\n right,\n binding,\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 binding: (name: string): BindingExpression => {\n return {\n kind: 'binding',\n name,\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 isBinding: (value: unknown): value is BindingExpression => ExpressionUtils.is(value, 'binding'),\n\n getLiteralValue: (expr: Expression): string | number | boolean | undefined => {\n return ExpressionUtils.isLiteral(expr) ? expr.value : undefined;\n },\n};\n"],"mappings":";;;;AAmBO,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,OAAmBC,YAAAA;AAC9D,WAAO;MACHX,MAAM;MACNS;MACAD;MACAE;MACAC;IACJ;EACJ,GARQ;EAURC,OAAO,wBAACH,IAAmBI,YAAAA;AACvB,WAAO;MACHb,MAAM;MACNS;MACAI;IACJ;EACJ,GANO;EAQPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MACHd,MAAM;MACNc;IACJ;EACJ,GALO;EAOPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MACHjB,MAAM;MACNgB;MACAC;IACJ;EACJ,GANQ;EAQRN,SAAS,wBAACO,SAAAA;AACN,WAAO;MACHlB,MAAM;MACNkB;IACJ;EACJ,GALS;EAOTC,OAAO,6BAAA;AACH,WAAO;MACHnB,MAAM;IACV;EACJ,GAJO;EAMPoB,OAAO,6BAAA;AACH,WAAO;MACHpB,MAAM;IACV;EACJ,GAJO;EAMPqB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ7B,gBAAgBU,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ7B,gBAAgBU,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,KAAK,wBAACN,SAAAA;AACF,WAAOzB,gBAAgBe,MAAM,KAAKU,IAAAA;EACtC,GAFK;EAILO,IAAI,wBAAC9B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ8B,WAAW,wBAAC/B,UAA+CF,gBAAgBgC,GAAG9B,OAAO,SAAA,GAA1E;EAEXgC,SAAS,wBAAChC,UAA6CF,gBAAgBgC,GAAG9B,OAAO,OAAA,GAAxE;EAETiC,QAAQ,wBAACjC,UAA4CF,gBAAgBgC,GAAG9B,OAAO,MAAA,GAAvE;EAERkC,QAAQ,wBAAClC,UAA4CF,gBAAgBgC,GAAG9B,OAAO,MAAA,GAAvE;EAERmC,QAAQ,wBAACnC,UAA4CF,gBAAgBgC,GAAG9B,OAAO,MAAA,GAAvE;EAERoC,SAAS,wBAACpC,UAA6CF,gBAAgBgC,GAAG9B,OAAO,OAAA,GAAxE;EAETqC,UAAU,wBAACrC,UAA8CF,gBAAgBgC,GAAG9B,OAAO,QAAA,GAAzE;EAEVsC,SAAS,wBAACtC,UAA6CF,gBAAgBgC,GAAG9B,OAAO,OAAA,GAAxE;EAETuC,UAAU,wBAACvC,UAA8CF,gBAAgBgC,GAAG9B,OAAO,QAAA,GAAzE;EAEVwC,WAAW,wBAACxC,UAA+CF,gBAAgBgC,GAAG9B,OAAO,SAAA,GAA1E;EAEXyC,iBAAiB,wBAAClB,SAAAA;AACd,WAAOzB,gBAAgBiC,UAAUR,IAAAA,IAAQA,KAAKvB,QAAQ0C;EAC1D,GAFiB;AAGrB;","names":["ExpressionUtils","literal","value","kind","array","items","call","functionName","args","function","binary","left","op","right","binding","unary","operand","field","member","receiver","members","name","_this","_null","and","expr","expressions","reduce","acc","exp","or","not","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember","isBinding","getLiteralValue","undefined"]}
1
+ {"version":3,"sources":["../src/expression-utils.ts"],"sourcesContent":["import type {\n ArrayExpression,\n BinaryExpression,\n BinaryOperator,\n BindingExpression,\n CallExpression,\n Expression,\n FieldExpression,\n LiteralExpression,\n MemberExpression,\n NullExpression,\n ThisExpression,\n UnaryExpression,\n UnaryOperator,\n} from './expression';\n\n/**\n * Utility functions to create and work with Expression objects\n */\nexport const ExpressionUtils = {\n literal: (value: string | number | boolean): LiteralExpression => {\n return { kind: 'literal', value };\n },\n\n array: (type: string, items: Expression[]): ArrayExpression => {\n return { kind: 'array', type, items };\n },\n\n call: (functionName: string, args?: Expression[]): CallExpression => {\n return { kind: 'call', function: functionName, args };\n },\n\n binary: (left: Expression, op: BinaryOperator, right: Expression, binding?: string): BinaryExpression => {\n return { kind: 'binary', op, left, right, binding };\n },\n\n unary: (op: UnaryOperator, operand: Expression): UnaryExpression => {\n return { kind: 'unary', op, operand };\n },\n\n field: (field: string): FieldExpression => {\n return { kind: 'field', field };\n },\n\n member: (receiver: Expression, members: string[]): MemberExpression => {\n return { kind: 'member', receiver: receiver, members };\n },\n\n binding: (name: string): BindingExpression => {\n return { kind: 'binding', name };\n },\n\n _this: (): ThisExpression => {\n return { kind: 'this' };\n },\n\n _null: (): NullExpression => {\n return { kind: 'null' };\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 isBinding: (value: unknown): value is BindingExpression => ExpressionUtils.is(value, 'binding'),\n\n getLiteralValue: (expr: Expression): string | number | boolean | undefined => {\n return ExpressionUtils.isLiteral(expr) ? expr.value : undefined;\n },\n};\n"],"mappings":";;;;AAmBO,IAAMA,kBAAkB;EAC3BC,SAAS,wBAACC,UAAAA;AACN,WAAO;MAAEC,MAAM;MAAWD;IAAM;EACpC,GAFS;EAITE,OAAO,wBAACC,MAAcC,UAAAA;AAClB,WAAO;MAAEH,MAAM;MAASE;MAAMC;IAAM;EACxC,GAFO;EAIPC,MAAM,wBAACC,cAAsBC,SAAAA;AACzB,WAAO;MAAEN,MAAM;MAAQO,UAAUF;MAAcC;IAAK;EACxD,GAFM;EAINE,QAAQ,wBAACC,MAAkBC,IAAoBC,OAAmBC,YAAAA;AAC9D,WAAO;MAAEZ,MAAM;MAAUU;MAAID;MAAME;MAAOC;IAAQ;EACtD,GAFQ;EAIRC,OAAO,wBAACH,IAAmBI,YAAAA;AACvB,WAAO;MAAEd,MAAM;MAASU;MAAII;IAAQ;EACxC,GAFO;EAIPC,OAAO,wBAACA,UAAAA;AACJ,WAAO;MAAEf,MAAM;MAASe;IAAM;EAClC,GAFO;EAIPC,QAAQ,wBAACC,UAAsBC,YAAAA;AAC3B,WAAO;MAAElB,MAAM;MAAUiB;MAAoBC;IAAQ;EACzD,GAFQ;EAIRN,SAAS,wBAACO,SAAAA;AACN,WAAO;MAAEnB,MAAM;MAAWmB;IAAK;EACnC,GAFS;EAITC,OAAO,6BAAA;AACH,WAAO;MAAEpB,MAAM;IAAO;EAC1B,GAFO;EAIPqB,OAAO,6BAAA;AACH,WAAO;MAAErB,MAAM;IAAO;EAC1B,GAFO;EAIPsB,KAAK,wBAACC,SAAqBC,gBAAAA;AACvB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ9B,gBAAgBW,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFK;EAILK,IAAI,wBAACL,SAAqBC,gBAAAA;AACtB,WAAOA,YAAYC,OAAO,CAACC,KAAKC,QAAQ9B,gBAAgBW,OAAOkB,KAAK,MAAMC,GAAAA,GAAMJ,IAAAA;EACpF,GAFI;EAIJM,KAAK,wBAACN,SAAAA;AACF,WAAO1B,gBAAgBgB,MAAM,KAAKU,IAAAA;EACtC,GAFK;EAILO,IAAI,wBAAC/B,OAAgBC,SAAAA;AACjB,WAAO,CAAC,CAACD,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,SAASA;EACrF,GAFI;EAIJ+B,WAAW,wBAAChC,UAA+CF,gBAAgBiC,GAAG/B,OAAO,SAAA,GAA1E;EAEXiC,SAAS,wBAACjC,UAA6CF,gBAAgBiC,GAAG/B,OAAO,OAAA,GAAxE;EAETkC,QAAQ,wBAAClC,UAA4CF,gBAAgBiC,GAAG/B,OAAO,MAAA,GAAvE;EAERmC,QAAQ,wBAACnC,UAA4CF,gBAAgBiC,GAAG/B,OAAO,MAAA,GAAvE;EAERoC,QAAQ,wBAACpC,UAA4CF,gBAAgBiC,GAAG/B,OAAO,MAAA,GAAvE;EAERqC,SAAS,wBAACrC,UAA6CF,gBAAgBiC,GAAG/B,OAAO,OAAA,GAAxE;EAETsC,UAAU,wBAACtC,UAA8CF,gBAAgBiC,GAAG/B,OAAO,QAAA,GAAzE;EAEVuC,SAAS,wBAACvC,UAA6CF,gBAAgBiC,GAAG/B,OAAO,OAAA,GAAxE;EAETwC,UAAU,wBAACxC,UAA8CF,gBAAgBiC,GAAG/B,OAAO,QAAA,GAAzE;EAEVyC,WAAW,wBAACzC,UAA+CF,gBAAgBiC,GAAG/B,OAAO,SAAA,GAA1E;EAEX0C,iBAAiB,wBAAClB,SAAAA;AACd,WAAO1B,gBAAgBkC,UAAUR,IAAAA,IAAQA,KAAKxB,QAAQ2C;EAC1D,GAFiB;AAGrB;","names":["ExpressionUtils","literal","value","kind","array","type","items","call","functionName","args","function","binary","left","op","right","binding","unary","operand","field","member","receiver","members","name","_this","_null","and","expr","expressions","reduce","acc","exp","or","not","is","isLiteral","isArray","isCall","isNull","isThis","isUnary","isBinary","isField","isMember","isBinding","getLiteralValue","undefined"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/schema",
3
- "version": "3.3.0-beta.3",
3
+ "version": "3.3.0-beta.4",
4
4
  "description": "ZenStack Runtime Schema",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -25,8 +25,8 @@
25
25
  "decimal.js": "^10.4.3"
26
26
  },
27
27
  "devDependencies": {
28
- "@zenstackhq/eslint-config": "3.3.0-beta.3",
29
- "@zenstackhq/typescript-config": "3.3.0-beta.3"
28
+ "@zenstackhq/eslint-config": "3.3.0-beta.4",
29
+ "@zenstackhq/typescript-config": "3.3.0-beta.4"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "tsc --noEmit && tsup-node",