From f897b32b7b9c6c66b2049f61477cfebac3777344 Mon Sep 17 00:00:00 2001
From: adambrangenberg <adambrangenberg@proton.me>
Date: Tue, 9 May 2023 22:22:18 +0200
Subject: [PATCH] Adding types

---
 .idea/misc.xml             |  4 +++-
 .idea/modules.xml          | 10 +++++++++
 .idea/piston.iml           |  9 ++++++++
 .idea/vcs.xml              |  6 ++++++
 index.d.ts                 | 44 ++++++++++++++++++++++++++++++++++++++
 packages/groovy/groovy.iml | 11 ++++++++++
 packages/java/packages.iml | 11 ++++++++++
 7 files changed, 94 insertions(+), 1 deletion(-)
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/piston.iml
 create mode 100644 .idea/vcs.xml
 create mode 100644 index.d.ts
 create mode 100644 packages/groovy/groovy.iml
 create mode 100644 packages/java/packages.iml

diff --git a/.idea/misc.xml b/.idea/misc.xml
index 030f9a4..08f646b 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="corretto-17" project-jdk-type="JavaSDK" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="corretto-17" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
 </project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..07ceb1f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/packages/groovy/groovy.iml" filepath="$PROJECT_DIR$/packages/groovy/groovy.iml" />
+      <module fileurl="file://$PROJECT_DIR$/packages/java/packages.iml" filepath="$PROJECT_DIR$/packages/java/packages.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/piston.iml" filepath="$PROJECT_DIR$/.idea/piston.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/piston.iml b/.idea/piston.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/piston.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/index.d.ts b/index.d.ts
new file mode 100644
index 0000000..d3c1f9c
--- /dev/null
+++ b/index.d.ts
@@ -0,0 +1,44 @@
+export default function piston(): PistonClient
+
+export interface PistonClient {
+  runtimes(): Promise<Result | Runtime[]>;
+
+  execute(language: language, code: string, options?: ExecutionOptions): Promise<Result | ExecutionResult>;
+}
+
+export interface ExecutionResult {
+  language: language;
+  version: string;
+  run: {
+    stdout: string;
+    stderr: string;
+    code: number;
+    signal: any;
+    output: string
+  }
+}
+
+export interface ExecutionOptions {
+  language: language;
+  version: string;
+  files: {
+    name: string;
+    content: string;
+  }[]
+  stdin: string;
+  args: string[];
+  compile_timeout: number;
+  run_timeout: number;
+  compile_memory_limit: number;
+  run_memory_limit: number;
+}
+
+export interface Runtime {
+  language: language;
+  version: string;
+  aliases: string[]
+}
+
+export type Result = any | { error: any, success: boolean } | undefined;
+
+export type language = "awk" | "bash" | "befunge93" | "brachylog" | "brainfuck" | "bqn" | "c" | "c++" | "cjam" | "clojure" | "cobol" | "coffeescript" | "cow" | "crystal" | "csharp" | "csharp.net" | "d" | "dart" | "dash" | "dragon" | "elixir" | "emacs" | "emojicode" | "erlang" | "file" | "forte" | "forth" | "fortran" | "freebasic" | "fsharp.net" | "fsi" | "go" | "golfscript" | "groovy" | "haskell" | "husk" | "iverilog" | "japt" | "java" | "javascript" | "jelly" | "julia" | "kotlin" | "lisp" | "llvm_ir" | "lolcode" | "lua" | "matl" | "nasm" | "nasm64" | "nim" | "ocaml" | "octave" | "osabie" | "paradoc" | "pascal" | "perl" | "php" | "ponylang" | "powershell" | "prolog" | "pure" | "pyth" | "python" | "python2" | "racket" | "raku" | "retina" | "rockstar" | "rscript" | "ruby" | "rust" | "samarium" | "scala" | "smalltalk" | "sqlite3" | "swift" | "typescript" | "basic" | "basic.net" | "vlang" | "vyxal" | "yeethon" | "zig";
\ No newline at end of file
diff --git a/packages/groovy/groovy.iml b/packages/groovy/groovy.iml
new file mode 100644
index 0000000..aa9188b
--- /dev/null
+++ b/packages/groovy/groovy.iml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/3.0.7" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/packages/java/packages.iml b/packages/java/packages.iml
new file mode 100644
index 0000000..bd6fc4a
--- /dev/null
+++ b/packages/java/packages.iml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/15.0.2" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file