@prozilla-os/calculator 1.1.10 → 1.1.11

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/main.js CHANGED
@@ -168,7 +168,7 @@ function x({ active: b }) {
168
168
  ] });
169
169
  }
170
170
  const D = new y("Calculator", "calculator", x, { size: new R(400, 600) }).setIconUrl("https://os.prozilla.dev/assets/apps/icons/calculator.svg").setPinnedByDefault(!1).setCategory("Utilities & tools");
171
- D.setMetadata({ name: "@prozilla-os/calculator", version: "1.1.8", author: "Prozilla" });
171
+ D.setMetadata({ name: "@prozilla-os/calculator", version: "1.1.10", author: "Prozilla" });
172
172
  export {
173
173
  D as calculator
174
174
  };
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/components/Calculator.tsx","../src/main.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\r\nimport styles from \"./Calculator.module.css\";\r\nimport { Button, WindowProps } from \"@prozilla-os/core\";\r\n\r\nexport function Calculator({ active }: WindowProps) {\r\n\tconst [input, setInput] = useState<string | null>(\"0\");\r\n\tconst [firstNumber, setFirstNumber] = useState<number | null>(null);\r\n\tconst [secondNumber, setSecondNumber] = useState<number | null>(null);\r\n\tconst [operation, setOperation] = useState<string | null>(null);\r\n\tconst [isIntermediate, setIsIntermediate] = useState(false);\r\n\r\n\tconst reset = useCallback(() => {\r\n\t\tsetInput(\"0\");\r\n\t\tsetFirstNumber(null);\r\n\t\tsetSecondNumber(null);\r\n\t\tsetOperation(null);\r\n\t}, []);\r\n\r\n\tconst addInput = useCallback((string: string) => {\r\n\t\tlet hasReset = false;\r\n\t\tif (secondNumber != null) {\r\n\t\t\tif (isIntermediate && input != null) {\r\n\t\t\t\tsetFirstNumber(parseFloat(input));\r\n\t\t\t\tsetSecondNumber(null);\r\n\t\t\t\tsetInput(null);\r\n\t\t\t} else {\r\n\t\t\t\treset();\r\n\t\t\t}\r\n\t\t\thasReset = true;\r\n\t\t}\t\t\t\r\n\r\n\t\tif (string === \".\" && input?.includes(\".\"))\r\n\t\t\treturn;\r\n\r\n\t\tif (string === \"-\") {\r\n\t\t\tif (input === \"0\") {\r\n\t\t\t\tsetInput(\"-0\");\r\n\t\t\t} else if (input != null) {\r\n\t\t\t\tsetInput((parseFloat(input) * -1).toString());\r\n\t\t\t}\r\n\t\t} else if (string === \"%\" && input != null) {\r\n\t\t\tsetInput((parseFloat(input) / 100).toString());\r\n\t\t} else if (input === \"0\" || input === \"-0\" || input == null || hasReset) {\r\n\t\t\tif (string === \".\") {\r\n\t\t\t\tsetInput(input === \"-0\" ? \"0.\" : \"0.\");\r\n\t\t\t} else {\r\n\t\t\t\tsetInput(input === \"-0\" ? `-${string}` : string);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tsetInput(input + string);\r\n\t\t}\r\n\r\n\t}, [input, isIntermediate, reset, secondNumber]);\r\n\r\n\tconst calculate = useCallback((intermediate = false) => {\r\n\t\tif (firstNumber != null && input != null) {\r\n\t\t\tsetSecondNumber(parseFloat(input));\r\n\r\n\t\t\tconst a = firstNumber;\r\n\t\t\tconst b = parseFloat(input);\r\n\t\t\t\r\n\t\t\tlet result = 0;\r\n\t\t\tswitch (operation) {\r\n\t\t\t\tcase \"×\":\r\n\t\t\t\t\tresult = a * b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"÷\":\r\n\t\t\t\t\tresult = a / b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"+\":\r\n\t\t\t\t\tresult = a + b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"-\":\r\n\t\t\t\t\tresult = a - b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tsetInput(result.toString());\r\n\t\t}\r\n\r\n\t\tsetIsIntermediate(intermediate);\r\n\t}, [firstNumber, input, operation]);\r\n\r\n\tconst changeOperation = useCallback((operation: string) => {\r\n\t\tif (firstNumber != null && secondNumber == null) {\r\n\t\t\tcalculate(true);\r\n\t\t} else if (input != null) {\r\n\t\t\tsetFirstNumber(parseFloat(input));\r\n\t\t\tsetSecondNumber(null);\r\n\t\t\tsetInput(null);\r\n\t\t}\r\n\r\n\t\tsetOperation(operation);\r\n\t}, [calculate, firstNumber, input, secondNumber]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tif (!active)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tswitch (event.key) {\r\n\t\t\t\tcase \"0\":\r\n\t\t\t\tcase \"1\":\r\n\t\t\t\tcase \"2\":\r\n\t\t\t\tcase \"3\":\r\n\t\t\t\tcase \"4\":\r\n\t\t\t\tcase \"5\":\r\n\t\t\t\tcase \"6\":\r\n\t\t\t\tcase \"7\":\r\n\t\t\t\tcase \"8\":\r\n\t\t\t\tcase \"9\":\r\n\t\t\t\t\taddInput(event.key);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \".\":\r\n\t\t\t\tcase \",\":\r\n\t\t\t\t\taddInput(\".\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"Escape\":\r\n\t\t\t\t\treset();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"=\":\r\n\t\t\t\tcase \"Enter\":\r\n\t\t\t\t\tcalculate();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"*\":\r\n\t\t\t\t\tchangeOperation(\"×\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"/\":\r\n\t\t\t\t\tchangeOperation(\"÷\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"+\":\r\n\t\t\t\tcase \"-\":\r\n\t\t\t\t\tchangeOperation(event.key);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"%\":\r\n\t\t\t\t\taddInput(\"%\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"Backspace\":\r\n\t\t\t\t\tif (input != null && input.length > 0) {\r\n\t\t\t\t\t\tsetInput(input.slice(0, -1));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener(\"keydown\", onKeyDown);\r\n\r\n\t\treturn () => {\r\n\t\t\tdocument.removeEventListener(\"keydown\", onKeyDown);\r\n\t\t};\r\n\t}, [active, addInput, calculate, changeOperation, reset]);\r\n\r\n\tlet calculation = \"\";\r\n\tif (operation != null)\r\n\t\tcalculation = `${firstNumber} ${operation} ${secondNumber != null ? secondNumber + \" =\" : \"\"}`;\r\n\r\n\treturn (<div className={styles.Calculator}>\r\n\t\t<div className={styles.Output}>\r\n\t\t\t<p className={styles.Calculation}>{calculation}</p>\r\n\t\t\t<p className={styles.Preview}>{input ?? firstNumber}</p>\r\n\t\t</div>\r\n\t\t<div className={styles.Input}>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={reset}>C</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"-\"); }}>+/-</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"%\"); }}>%</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"÷\"); }}>÷</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"7\"); }}>7</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"8\"); }}>8</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"9\"); }}>9</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"×\"); }}>×</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"4\"); }}>4</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"5\"); }}>5</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"6\"); }}>6</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"-\"); }}>-</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"1\"); }}>1</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"2\"); }}>2</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"3\"); }}>3</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"+\"); }}>+</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={`${styles.Button} ${styles.ButtonLarge}`} onClick={() => { addInput(\"0\"); }}>0</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\".\"); }}>.</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { calculate(); }}>=</Button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>);\r\n}","import { App, Vector2 } from \"@prozilla-os/core\";\nimport { Calculator } from \"./components/Calculator\";\n\nconst calculator = new App(\"Calculator\", \"calculator\", Calculator, { size: new Vector2(400, 600) })\n\t.setIconUrl(\"https://os.prozilla.dev/assets/apps/icons/calculator.svg\")\n\t.setPinnedByDefault(false)\n\t.setCategory(\"Utilities & tools\");\ncalculator.setMetadata({ name: \"@prozilla-os/calculator\", version: \"1.1.8\", author: \"Prozilla\" });\n\n\nexport { calculator };"],"names":["Calculator","active","input","setInput","useState","firstNumber","setFirstNumber","secondNumber","setSecondNumber","operation","setOperation","isIntermediate","setIsIntermediate","reset","useCallback","addInput","string","hasReset","calculate","intermediate","a","b","result","changeOperation","useEffect","onKeyDown","event","calculation","jsxs","styles","jsx","Button","calculator","App","Vector2"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/components/Calculator.tsx","../src/main.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\r\nimport styles from \"./Calculator.module.css\";\r\nimport { Button, WindowProps } from \"@prozilla-os/core\";\r\n\r\nexport function Calculator({ active }: WindowProps) {\r\n\tconst [input, setInput] = useState<string | null>(\"0\");\r\n\tconst [firstNumber, setFirstNumber] = useState<number | null>(null);\r\n\tconst [secondNumber, setSecondNumber] = useState<number | null>(null);\r\n\tconst [operation, setOperation] = useState<string | null>(null);\r\n\tconst [isIntermediate, setIsIntermediate] = useState(false);\r\n\r\n\tconst reset = useCallback(() => {\r\n\t\tsetInput(\"0\");\r\n\t\tsetFirstNumber(null);\r\n\t\tsetSecondNumber(null);\r\n\t\tsetOperation(null);\r\n\t}, []);\r\n\r\n\tconst addInput = useCallback((string: string) => {\r\n\t\tlet hasReset = false;\r\n\t\tif (secondNumber != null) {\r\n\t\t\tif (isIntermediate && input != null) {\r\n\t\t\t\tsetFirstNumber(parseFloat(input));\r\n\t\t\t\tsetSecondNumber(null);\r\n\t\t\t\tsetInput(null);\r\n\t\t\t} else {\r\n\t\t\t\treset();\r\n\t\t\t}\r\n\t\t\thasReset = true;\r\n\t\t}\t\t\t\r\n\r\n\t\tif (string === \".\" && input?.includes(\".\"))\r\n\t\t\treturn;\r\n\r\n\t\tif (string === \"-\") {\r\n\t\t\tif (input === \"0\") {\r\n\t\t\t\tsetInput(\"-0\");\r\n\t\t\t} else if (input != null) {\r\n\t\t\t\tsetInput((parseFloat(input) * -1).toString());\r\n\t\t\t}\r\n\t\t} else if (string === \"%\" && input != null) {\r\n\t\t\tsetInput((parseFloat(input) / 100).toString());\r\n\t\t} else if (input === \"0\" || input === \"-0\" || input == null || hasReset) {\r\n\t\t\tif (string === \".\") {\r\n\t\t\t\tsetInput(input === \"-0\" ? \"0.\" : \"0.\");\r\n\t\t\t} else {\r\n\t\t\t\tsetInput(input === \"-0\" ? `-${string}` : string);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tsetInput(input + string);\r\n\t\t}\r\n\r\n\t}, [input, isIntermediate, reset, secondNumber]);\r\n\r\n\tconst calculate = useCallback((intermediate = false) => {\r\n\t\tif (firstNumber != null && input != null) {\r\n\t\t\tsetSecondNumber(parseFloat(input));\r\n\r\n\t\t\tconst a = firstNumber;\r\n\t\t\tconst b = parseFloat(input);\r\n\t\t\t\r\n\t\t\tlet result = 0;\r\n\t\t\tswitch (operation) {\r\n\t\t\t\tcase \"×\":\r\n\t\t\t\t\tresult = a * b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"÷\":\r\n\t\t\t\t\tresult = a / b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"+\":\r\n\t\t\t\t\tresult = a + b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"-\":\r\n\t\t\t\t\tresult = a - b;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tsetInput(result.toString());\r\n\t\t}\r\n\r\n\t\tsetIsIntermediate(intermediate);\r\n\t}, [firstNumber, input, operation]);\r\n\r\n\tconst changeOperation = useCallback((operation: string) => {\r\n\t\tif (firstNumber != null && secondNumber == null) {\r\n\t\t\tcalculate(true);\r\n\t\t} else if (input != null) {\r\n\t\t\tsetFirstNumber(parseFloat(input));\r\n\t\t\tsetSecondNumber(null);\r\n\t\t\tsetInput(null);\r\n\t\t}\r\n\r\n\t\tsetOperation(operation);\r\n\t}, [calculate, firstNumber, input, secondNumber]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tif (!active)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tswitch (event.key) {\r\n\t\t\t\tcase \"0\":\r\n\t\t\t\tcase \"1\":\r\n\t\t\t\tcase \"2\":\r\n\t\t\t\tcase \"3\":\r\n\t\t\t\tcase \"4\":\r\n\t\t\t\tcase \"5\":\r\n\t\t\t\tcase \"6\":\r\n\t\t\t\tcase \"7\":\r\n\t\t\t\tcase \"8\":\r\n\t\t\t\tcase \"9\":\r\n\t\t\t\t\taddInput(event.key);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \".\":\r\n\t\t\t\tcase \",\":\r\n\t\t\t\t\taddInput(\".\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"Escape\":\r\n\t\t\t\t\treset();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"=\":\r\n\t\t\t\tcase \"Enter\":\r\n\t\t\t\t\tcalculate();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"*\":\r\n\t\t\t\t\tchangeOperation(\"×\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"/\":\r\n\t\t\t\t\tchangeOperation(\"÷\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"+\":\r\n\t\t\t\tcase \"-\":\r\n\t\t\t\t\tchangeOperation(event.key);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"%\":\r\n\t\t\t\t\taddInput(\"%\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"Backspace\":\r\n\t\t\t\t\tif (input != null && input.length > 0) {\r\n\t\t\t\t\t\tsetInput(input.slice(0, -1));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener(\"keydown\", onKeyDown);\r\n\r\n\t\treturn () => {\r\n\t\t\tdocument.removeEventListener(\"keydown\", onKeyDown);\r\n\t\t};\r\n\t}, [active, addInput, calculate, changeOperation, reset]);\r\n\r\n\tlet calculation = \"\";\r\n\tif (operation != null)\r\n\t\tcalculation = `${firstNumber} ${operation} ${secondNumber != null ? secondNumber + \" =\" : \"\"}`;\r\n\r\n\treturn (<div className={styles.Calculator}>\r\n\t\t<div className={styles.Output}>\r\n\t\t\t<p className={styles.Calculation}>{calculation}</p>\r\n\t\t\t<p className={styles.Preview}>{input ?? firstNumber}</p>\r\n\t\t</div>\r\n\t\t<div className={styles.Input}>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={reset}>C</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"-\"); }}>+/-</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"%\"); }}>%</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"÷\"); }}>÷</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"7\"); }}>7</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"8\"); }}>8</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"9\"); }}>9</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"×\"); }}>×</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"4\"); }}>4</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"5\"); }}>5</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"6\"); }}>6</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"-\"); }}>-</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"1\"); }}>1</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"2\"); }}>2</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\"3\"); }}>3</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { changeOperation(\"+\"); }}>+</Button>\r\n\t\t\t</div>\r\n\t\t\t<div className={styles.InputRow}>\r\n\t\t\t\t<Button className={`${styles.Button} ${styles.ButtonLarge}`} onClick={() => { addInput(\"0\"); }}>0</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { addInput(\".\"); }}>.</Button>\r\n\t\t\t\t<Button className={styles.Button} onClick={() => { calculate(); }}>=</Button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>);\r\n}","import { App, Vector2 } from \"@prozilla-os/core\";\nimport { Calculator } from \"./components/Calculator\";\n\nconst calculator = new App(\"Calculator\", \"calculator\", Calculator, { size: new Vector2(400, 600) })\n\t.setIconUrl(\"https://os.prozilla.dev/assets/apps/icons/calculator.svg\")\n\t.setPinnedByDefault(false)\n\t.setCategory(\"Utilities & tools\");\ncalculator.setMetadata({ name: \"@prozilla-os/calculator\", version: \"1.1.10\", author: \"Prozilla\" });\n\n\nexport { calculator };"],"names":["Calculator","active","input","setInput","useState","firstNumber","setFirstNumber","secondNumber","setSecondNumber","operation","setOperation","isIntermediate","setIsIntermediate","reset","useCallback","addInput","string","hasReset","calculate","intermediate","a","b","result","changeOperation","useEffect","onKeyDown","event","calculation","jsxs","styles","jsx","Button","calculator","App","Vector2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prozilla-os/calculator",
3
3
  "description": "A ProzillaOS application for making basic calculations.",
4
- "version": "1.1.10",
4
+ "version": "1.1.11",
5
5
  "homepage": "https://os.prozilla.dev/calculator",
6
6
  "author": {
7
7
  "name": "Prozilla",
@@ -20,7 +20,7 @@
20
20
  "license": "MIT",
21
21
  "dependencies": {
22
22
  "react": "^18.3.1",
23
- "@prozilla-os/core": "1.3.5"
23
+ "@prozilla-os/core": "1.3.6"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^20.14.5",
@@ -30,7 +30,7 @@
30
30
  "vite": "^5.4.8",
31
31
  "vite-plugin-dts": "^3.9.1",
32
32
  "vite-plugin-lib-inject-css": "^2.1.1",
33
- "@prozilla-os/dev-tools": "1.1.2"
33
+ "@prozilla-os/dev-tools": "1.1.3"
34
34
  },
35
35
  "files": [
36
36
  "dist"