desmost 0.11.0 → 0.11.1

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.
@@ -12,6 +12,12 @@ export declare function normalise_latex(latex: string): string;
12
12
  *
13
13
  * - Replace `()`, `[]`, etc. with `\left(\right)`
14
14
  * - Replace `min()`, `max()`, etc. with `\operatorname{min}()`
15
+ *
16
+ * This is the inverse of `prettify_source()`, satisfying:
17
+ *
18
+ * ```ts
19
+ * prettify_latex(prettify_source(x)) === x
20
+ * ```
15
21
  */
16
22
  export declare function prettify_latex(latex: string): string;
17
23
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/compiler/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,YAAY,CAC3B,CAAC,EAAE,YAAY,EACf,OAAO,EAAE,cAAc,GACrB,MAAM,CA6BR;AAGD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAGD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBpD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/compiler/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,YAAY,CAC3B,CAAC,EAAE,YAAY,EACf,OAAO,EAAE,cAAc,GACrB,MAAM,CA6BR;AAGD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBpD"}
@@ -39,6 +39,12 @@ export function normalise_latex(latex) {
39
39
  *
40
40
  * - Replace `()`, `[]`, etc. with `\left(\right)`
41
41
  * - Replace `min()`, `max()`, etc. with `\operatorname{min}()`
42
+ *
43
+ * This is the inverse of `prettify_source()`, satisfying:
44
+ *
45
+ * ```ts
46
+ * prettify_latex(prettify_source(x)) === x
47
+ * ```
42
48
  */
43
49
  export function prettify_latex(latex) {
44
50
  latex = latex.replaceAll(/(?<!\\left)(\(|\[|\\\{)/g, "\\left$1");
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/compiler/format.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,MAAM,UAAU,YAAY,CAC3B,CAAe,EACf,OAAuB;IAGvB,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAClC,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAE9D,4CAA4C;IAC5C,IAAI,OAAO,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAEvD,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE5B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;YACnC,OAAO,IAAI,IAAI,CAAC;YAChB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAK,SAAS;YAAE,OAAO,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAK,SAAS;YAAE,OAAO,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAE5C,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC;AACd,CAAC;AAGD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAE3C,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;IACjE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IACtD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;IACnE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IACxD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAErD,KAAK,GAAG,KAAK,CAAC,UAAU,CACvB,qIAAqI,EACrI,oBAAoB,CACpB,CAAC;IAEF,KAAK,GAAG,KAAK,CAAC,UAAU,CACvB,eAAe,EACf,oBAAoB,CACpB,CAAC;IAEF,OAAO,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/compiler/format.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,MAAM,UAAU,YAAY,CAC3B,CAAe,EACf,OAAuB;IAGvB,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAClC,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAE9D,4CAA4C;IAC5C,IAAI,OAAO,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAEvD,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE5B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;YACnC,OAAO,IAAI,IAAI,CAAC;YAChB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAK,SAAS;YAAE,OAAO,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAK,SAAS;YAAE,OAAO,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAE5C,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC;AACd,CAAC;AAGD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAE3C,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;IACjE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IACtD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;IACnE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IACxD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAErD,KAAK,GAAG,KAAK,CAAC,UAAU,CACvB,qIAAqI,EACrI,oBAAoB,CACpB,CAAC;IAEF,KAAK,GAAG,KAAK,CAAC,UAAU,CACvB,eAAe,EACf,oBAAoB,CACpB,CAAC;IAEF,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -1,2 +1,15 @@
1
+ /**
2
+ * Prettify `source` to render nicely as source code.
3
+ *
4
+ * This cleans up messy LaTeX:
5
+ *
6
+ * - Replace `\left(\right)` with `()`.
7
+ *
8
+ * This is the inverse of `prettify_latex()`, satisfying:
9
+ *
10
+ * ```ts
11
+ * prettify_source(prettify_latex(x)) === x
12
+ * ```
13
+ */
1
14
  export declare function prettify_source(source: string): string;
2
15
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/decompiler/format.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQtD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/decompiler/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAatD"}
@@ -1,8 +1,22 @@
1
+ /**
2
+ * Prettify `source` to render nicely as source code.
3
+ *
4
+ * This cleans up messy LaTeX:
5
+ *
6
+ * - Replace `\left(\right)` with `()`.
7
+ *
8
+ * This is the inverse of `prettify_latex()`, satisfying:
9
+ *
10
+ * ```ts
11
+ * prettify_source(prettify_latex(x)) === x
12
+ * ```
13
+ */
1
14
  export function prettify_source(source) {
2
15
  source = source.replaceAll(/(?<=[^ ])=(?=[^ ])/g, " = ");
3
16
  source = source.replaceAll(/\\left\s*(\(|\[|\\\{)/g, "$1");
4
17
  source = source.replaceAll(/\\right\s*(\)|\]|\\\})/g, "$1");
5
18
  source = source.replaceAll(/(:|,)\\ /g, "$1 ");
19
+ source = source.replaceAll(/\\operatorname\{(length|mean|median|min|max|count|total|repeat|join|sort|shuffle|unique|mod|ceil|floor|round|sign)\} ?(?=\(|\\left\()/g, "$1");
6
20
  return source;
7
21
  }
8
22
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/decompiler/format.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,MAAc;IAE3C,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/decompiler/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAE3C,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE/C,MAAM,GAAG,MAAM,CAAC,UAAU,CACrB,wIAAwI,EAC5I,IAAI,CACJ,CAAC;IAEA,OAAO,MAAM,CAAC;AACjB,CAAC"}
@@ -4,10 +4,11 @@ import { type Fallible } from "../../errors.js";
4
4
  import { Ast } from "../../parser/index.js";
5
5
  type DesmosSettings = Desmos.GraphConfiguration & Desmos.GraphSettings;
6
6
  export declare class DesmosIncantation extends ArgIncantation<GLOBAL> {
7
- readonly description = "Tweak calculator settings via `Calculator.updateSettings()`.";
7
+ readonly effect = Incantation.Effect.GLOBAL;
8
8
  readonly identifier = "desmos";
9
9
  readonly requires_arg = false;
10
10
  readonly arg_type = Incantation.ArgType.OBJECT;
11
+ readonly description = "Tweak calculator settings via `Calculator.updateSettings()`.";
11
12
  apply(target: Desmos.Calculator, data?: DesmosSettings): void;
12
13
  evaluate_arg(raw: string, options: DesmostOptions): Fallible<DesmosSettings>;
13
14
  extract(target: Desmos.Calculator, blank: Desmos.Calculator): Ast.IncantationInvocation<Incantation.Effect.GLOBAL> | void;
@@ -1 +1 @@
1
- {"version":3,"file":"desmos.d.ts","sourceRoot":"","sources":["../../../src/magic/global/desmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,KAAK,cAAc,GAAG,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAA;AAGtE,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE5D,SAAkB,WAAW,kEACoC;IAEjE,SAAkB,UAAU,YAAa;IACzC,SAAkB,YAAY,SAAQ;IACtC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI;IAO7D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAiB5E,OAAO,CACf,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,KAAK,EAAE,MAAM,CAAC,UAAU,GACtB,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;CA0B9D;AAED,eAAO,MAAM,MAAM,mBAA0B,CAAC"}
1
+ {"version":3,"file":"desmos.d.ts","sourceRoot":"","sources":["../../../src/magic/global/desmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,KAAK,cAAc,GAAG,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAA;AAGtE,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE5D,SAAkB,MAAM,6BAAkC;IAC1D,SAAkB,UAAU,YAAa;IACzC,SAAkB,YAAY,SAAQ;IACtC,SAAkB,QAAQ,8BAAiC;IAC3D,SAAkB,WAAW,kEACoC;IAExD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI;IAO7D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAiB5E,OAAO,CACf,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,KAAK,EAAE,MAAM,CAAC,UAAU,GACtB,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;CA0B9D;AAED,eAAO,MAAM,MAAM,mBAA0B,CAAC"}
@@ -2,10 +2,11 @@ import { Incantation, ArgIncantation } from "../incantation.js";
2
2
  import { DesmostError } from "../../errors.js";
3
3
  import { Ast } from "../../parser/index.js";
4
4
  export class DesmosIncantation extends ArgIncantation {
5
- description = "Tweak calculator settings via `Calculator.updateSettings()`.";
5
+ effect = Incantation.Effect.GLOBAL;
6
6
  identifier = "desmos";
7
7
  requires_arg = false;
8
8
  arg_type = Incantation.ArgType.OBJECT;
9
+ description = "Tweak calculator settings via `Calculator.updateSettings()`.";
9
10
  apply(target, data) {
10
11
  if (data != undefined) {
11
12
  target.updateSettings(data);
@@ -1 +1 @@
1
- {"version":3,"file":"desmos.js","sourceRoot":"","sources":["../../../src/magic/global/desmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAMnC,MAAM,OAAO,iBAAkB,SAAQ,cAAsB;IAE1C,WAAW,GAC1B,8DAA8D,CAAA;IAE/C,UAAU,GAAK,QAAQ,CAAA;IACvB,YAAY,GAAG,KAAK,CAAA;IACpB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAAyB,EAAE,IAAqB;QAE9D,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACvB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAEQ,YAAY,CAAC,GAAW,EAAE,OAAuB;QAEzD,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAmB,CAAC;QAE7D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC;oBACnC,GAAG,EAAG,iCAAiC;oBACvC,IAAI,EAAE,+DAA+D;oBACrE,IAAI,EAAE,kEAAkE;iBACxE,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAEQ,OAAO,CACf,MAAyB,EACzB,KAAwB;QAGxB,IAAI,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IACE,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC;mBACnB,GAAG,KAAK,aAAa;mBACrB,GAAG,KAAK,MAAM;mBACd,GAAG,KAAK,YAAY;mBACpB,GAAG,KAAK,QAAQ,EAClB,CAAC;gBACF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO;QAElC,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW,EAAE,MAAM;YACnB,OAAO;SACP,CAAC;IACH,CAAC;CACD;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"desmos.js","sourceRoot":"","sources":["../../../src/magic/global/desmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAMnC,MAAM,OAAO,iBAAkB,SAAQ,cAAsB;IAE1C,MAAM,GAAS,WAAW,CAAC,MAAM,CAAC,MAAM,CAAA;IACxC,UAAU,GAAK,QAAQ,CAAA;IACvB,YAAY,GAAG,KAAK,CAAA;IACpB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IACzC,WAAW,GAC1B,8DAA8D,CAAA;IAExD,KAAK,CAAC,MAAyB,EAAE,IAAqB;QAE9D,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACvB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAEQ,YAAY,CAAC,GAAW,EAAE,OAAuB;QAEzD,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAmB,CAAC;QAE7D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC;oBACnC,GAAG,EAAG,iCAAiC;oBACvC,IAAI,EAAE,+DAA+D;oBACrE,IAAI,EAAE,kEAAkE;iBACxE,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAEQ,OAAO,CACf,MAAyB,EACzB,KAAwB;QAGxB,IAAI,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IACE,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC;mBACnB,GAAG,KAAK,aAAa;mBACrB,GAAG,KAAK,MAAM;mBACd,GAAG,KAAK,YAAY;mBACpB,GAAG,KAAK,QAAQ,EAClB,CAAC;gBACF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO;QAElC,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW,EAAE,MAAM;YACnB,OAAO;SACP,CAAC;IACH,CAAC;CACD;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
@@ -9,10 +9,11 @@ interface ViewportBounds {
9
9
  top?: number;
10
10
  }
11
11
  export declare class ViewportIncantation extends ArgIncantation<GLOBAL> {
12
- readonly description = "Set the bounds of the viewport via `Calculator.setMathBounds()`.";
12
+ readonly effect = Incantation.Effect.GLOBAL;
13
13
  readonly identifier = "viewport";
14
14
  readonly requires_arg = true;
15
15
  readonly arg_type = Incantation.ArgType.OBJECT;
16
+ readonly description = "Set the bounds of the viewport via `Calculator.setMathBounds()`.";
16
17
  apply(target: Desmos.Calculator, data: ViewportBounds): void;
17
18
  evaluate_arg(raw: string, options: DesmostOptions): Fallible<ViewportBounds>;
18
19
  extract(target: Desmos.Calculator, blank: Desmos.Calculator): Ast.IncantationInvocation<Incantation.Effect.GLOBAL> | void;
@@ -1 +1 @@
1
- {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,UAAU,cAAc;IAEvB,IAAI,CAAC,EAAI,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAI,MAAM,CAAC;CAChC;AAKD,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE9D,SAAkB,WAAW,sEACwC;IAErE,SAAkB,UAAU,cAAe;IAC3C,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc;IAcrD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IA4B5E,OAAO,CACf,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,KAAK,EAAE,MAAM,CAAC,UAAU,GACtB,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;CAsB9D;AAED,eAAO,MAAM,QAAQ,qBAA4B,CAAC"}
1
+ {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,UAAU,cAAc;IAEvB,IAAI,CAAC,EAAI,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAI,MAAM,CAAC;CAChC;AAKD,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE9D,SAAkB,MAAM,6BAAkC;IAC1D,SAAkB,UAAU,cAAe;IAC3C,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAC3D,SAAkB,WAAW,sEACwC;IAE5D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc;IAcrD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IA4B5E,OAAO,CACf,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,KAAK,EAAE,MAAM,CAAC,UAAU,GACtB,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;CAsB9D;AAED,eAAO,MAAM,QAAQ,qBAA4B,CAAC"}
@@ -3,10 +3,11 @@ import { DesmostError } from "../../errors.js";
3
3
  import { Ast } from "../../parser/index.js";
4
4
  const VALID_KEYS = ["left", "right", "bottom", "top"];
5
5
  export class ViewportIncantation extends ArgIncantation {
6
- description = "Set the bounds of the viewport via `Calculator.setMathBounds()`.";
6
+ effect = Incantation.Effect.GLOBAL;
7
7
  identifier = "viewport";
8
8
  requires_arg = true;
9
9
  arg_type = Incantation.ArgType.OBJECT;
10
+ description = "Set the bounds of the viewport via `Calculator.setMathBounds()`.";
10
11
  apply(target, data) {
11
12
  let existing = target.graphpaperBounds.mathCoordinates;
12
13
  let { left = existing.left, right = existing.right, bottom = existing.bottom, top = existing.top, } = data;
@@ -1 +1 @@
1
- {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@
7
7
  */
8
8
  export { Incantation, ArgIncantation } from "./incantation.js";
9
9
  export { GLOBAL_INCANTATIONS } from "./global/index.js";
10
+ import { GLOBAL_INCANTATIONS } from "./global/index.js";
10
11
  export { LOCAL_INCANTATIONS } from "./local/index.js";
12
+ import { LOCAL_INCANTATIONS } from "./local/index.js";
11
13
  export { EXPR_INCANTATIONS } from "./expr/index.js";
14
+ import { EXPR_INCANTATIONS } from "./expr/index.js";
15
+ export const ALL_INCANTATIONS = {
16
+ ...GLOBAL_INCANTATIONS,
17
+ ...LOCAL_INCANTATIONS,
18
+ ...EXPR_INCANTATIONS,
19
+ };
12
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/magic/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/magic/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAG,MAAM,SAAS,CAAC;AAAE,OAAO,EAAE,kBAAkB,EAAG,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAI,MAAM,QAAQ,CAAC;AAAG,OAAO,EAAE,iBAAiB,EAAI,MAAM,QAAQ,CAAC;AAG7F,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC/B,GAAG,mBAAmB;IACtB,GAAG,kBAAkB;IACrB,GAAG,iBAAiB;CACpB,CAAC"}
@@ -3,7 +3,7 @@ import { Ast } from "../../parser/index.js";
3
3
  export class AnimIncantation extends Incantation {
4
4
  effect = Incantation.Effect.LOCAL;
5
5
  identifier = "anim";
6
- description = `Animate the slider of a block.`;
6
+ description = "Animate the slider of a block.";
7
7
  apply(target) {
8
8
  super.require_expr_type(target.type, "expression");
9
9
  target.playing = true;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "desmost",
3
3
  "author": "Sup#2.0",
4
- "version": "0.11.0",
4
+ "version": "0.11.1",
5
5
  "license": "MIT",
6
6
 
7
7
  "description": "A tiny DSL for compiling LaTeX to Desmos",
@@ -56,6 +56,12 @@ export function normalise_latex(latex: string): string
56
56
  *
57
57
  * - Replace `()`, `[]`, etc. with `\left(\right)`
58
58
  * - Replace `min()`, `max()`, etc. with `\operatorname{min}()`
59
+ *
60
+ * This is the inverse of `prettify_source()`, satisfying:
61
+ *
62
+ * ```ts
63
+ * prettify_latex(prettify_source(x)) === x
64
+ * ```
59
65
  */
60
66
  export function prettify_latex(latex: string): string
61
67
  {
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Prettify `source` to render nicely as source code.
3
+ *
4
+ * This cleans up messy LaTeX:
5
+ *
6
+ * - Replace `\left(\right)` with `()`.
7
+ *
8
+ * This is the inverse of `prettify_latex()`, satisfying:
9
+ *
10
+ * ```ts
11
+ * prettify_source(prettify_latex(x)) === x
12
+ * ```
13
+ */
1
14
  export function prettify_source(source: string): string
2
15
  {
3
16
  source = source.replaceAll(/(?<=[^ ])=(?=[^ ])/g, " = ");
@@ -5,5 +18,10 @@ export function prettify_source(source: string): string
5
18
  source = source.replaceAll(/\\right\s*(\)|\]|\\\})/g, "$1");
6
19
  source = source.replaceAll(/(:|,)\\ /g, "$1 ");
7
20
 
21
+ source = source.replaceAll(
22
+ /\\operatorname\{(length|mean|median|min|max|count|total|repeat|join|sort|shuffle|unique|mod|ceil|floor|round|sign)\} ?(?=\(|\\left\()/g,
23
+ "$1"
24
+ );
25
+
8
26
  return source;
9
27
  }
@@ -10,12 +10,12 @@ type DesmosSettings = Desmos.GraphConfiguration & Desmos.GraphSettings
10
10
 
11
11
  export class DesmosIncantation extends ArgIncantation<GLOBAL>
12
12
  {
13
- override readonly description
14
- = "Tweak calculator settings via `Calculator.updateSettings()`."
15
-
13
+ override readonly effect = Incantation.Effect.GLOBAL
16
14
  override readonly identifier = "desmos"
17
15
  override readonly requires_arg = false
18
16
  override readonly arg_type = Incantation.ArgType.OBJECT
17
+ override readonly description
18
+ = "Tweak calculator settings via `Calculator.updateSettings()`."
19
19
 
20
20
  override apply(target: Desmos.Calculator, data?: DesmosSettings): void
21
21
  {
@@ -15,13 +15,13 @@ const VALID_KEYS = ["left", "right", "bottom", "top"];
15
15
 
16
16
 
17
17
  export class ViewportIncantation extends ArgIncantation<GLOBAL>
18
- {
19
- override readonly description
20
- = "Set the bounds of the viewport via `Calculator.setMathBounds()`."
21
-
18
+ {
19
+ override readonly effect = Incantation.Effect.GLOBAL
22
20
  override readonly identifier = "viewport"
23
21
  override readonly requires_arg = true
24
22
  override readonly arg_type = Incantation.ArgType.OBJECT
23
+ override readonly description
24
+ = "Set the bounds of the viewport via `Calculator.setMathBounds()`."
25
25
 
26
26
  override apply(target: Desmos.Calculator, data: ViewportBounds)
27
27
  {
@@ -9,6 +9,13 @@
9
9
  export { Incantation, ArgIncantation } from "./incantation";
10
10
  export type { GLOBAL, LOCAL, EXPR } from "./incantation";
11
11
 
12
- export { GLOBAL_INCANTATIONS } from "./global";
13
- export { LOCAL_INCANTATIONS } from "./local";
14
- export { EXPR_INCANTATIONS } from "./expr";
12
+ export { GLOBAL_INCANTATIONS } from "./global"; import { GLOBAL_INCANTATIONS } from "./global";
13
+ export { LOCAL_INCANTATIONS } from "./local"; import { LOCAL_INCANTATIONS } from "./local";
14
+ export { EXPR_INCANTATIONS } from "./expr"; import { EXPR_INCANTATIONS } from "./expr";
15
+
16
+
17
+ export const ALL_INCANTATIONS = {
18
+ ...GLOBAL_INCANTATIONS,
19
+ ...LOCAL_INCANTATIONS,
20
+ ...EXPR_INCANTATIONS,
21
+ };
@@ -7,7 +7,7 @@ export class AnimIncantation extends Incantation<LOCAL>
7
7
  override readonly effect = Incantation.Effect.LOCAL
8
8
  override readonly identifier = "anim"
9
9
  override readonly description
10
- = `Animate the slider of a block.`
10
+ = "Animate the slider of a block."
11
11
 
12
12
  override apply(target: Desmos.ExpressionState)
13
13
  {
@@ -1,13 +0,0 @@
1
- /**
2
- * Implements incantations logic.
3
- *
4
- * Incantations are represented with `Incantation` and `ArgIncantation` objects. Individual incantations derive from one of these classes, defining their own evaluation and application logic.
5
- *
6
- * Defined incantations are listed under `*_INCANTATIONS` lists.
7
- */
8
- export { Incantation, ArgIncantation } from "./incantation.js";
9
- export type { GLOBAL, LOCAL, EXPR } from "./incantation.js";
10
- export { GLOBAL_INCANTATIONS } from "./global/index.js";
11
- export { LOCAL_INCANTATIONS } from "./local/index.js";
12
- export { EXPR_INCANTATIONS } from "./expr/index.js";
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/magic/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}