🏡 index : github.com/captn3m0/epicqr.git

# EPIC QR Decoder

Haxe library to decode a QR code on a modern EPIC Card. This is a polyglot repo,
containing source code for multiple languages:

- Haxe
- Java

The Haxe code can be cross-compiled to [several targets](https://haxe.org/documentation/introduction/compiler-targets.html)
including PHP/Python/Flash/JVM/JS etc.

## TODO

- [ ] Tests for Haxe.
- [ ] Tests for Haxe with specific targets
- [ ] Publish 1.0.
- [ ] Publish releases for Swift.
- [ ] Publish releases for JS.
- [ ] Publish releases for Nodejs.
- [ ] Create maven release on GitHub Packages.
- [ ] Create Demo website.

## Usage

### Haxe

```haxe
import eci.EpicQR;

class Main{
	static function Main(){
		// This is the result of scanning the QR code as text.
		var result = decrypt("dbhvecY6Roa4NF3gAzEbkTibZZzXAEYpMg8197BQWMS2+ID24FGDKWB5IEcuxjsA81ChprhSO3EsjKMRDbBWLg==");
		trace(result.epic); // "ABC1234566"
		trace(result.id); // 1234
	}
}
```

### Java

```java
import eci.EpicQR;
// This is the result of scanning the QR code as text.
String e1 = "dbhvecY6Roa4NF3gAzEbkTibZZzXAEYpMg8197BQWMS2+ID24FGDKWB5IEcuxjsA81ChprhSO3EsjKMRDbBWLg==";
Result r1 = EpicQR.decode(e1);
assert r1.epic.equals("ABC1234566") : "Invalid EPIC";
assert r1.id == 1234 :  "Invalid Unique ID";
```

### Nodejs
```js
// TODO Import
const E = require('eci').EpicQR;
var r = E.decode("dbhvecY6Roa4NF3gAzEbkTibZZzXAEYpMg8197BQWMS2+ID24FGDKWB5IEcuxjsA81ChprhSO3EsjKMRDbBWLg==")
console.log(r.epic) // "ABC1234566"
````

## Specification

See [`SPEC.md`](SPEC.md).

## LICENSE

Licensed under MIT. See [`LICENCE`](LICENSE) file for more details.