@yowasp/openfpgaloader 0.0.0-experimental0

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.
Binary file
@@ -0,0 +1 @@
1
+ "use strict";var Module={};var initializedJS=false;function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var module=Module["wasmModule"];Module["wasmModule"]=null;var instance=new WebAssembly.Instance(module,info);return receiveInstance(instance)};self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{if(e.data.cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler:handler,args:args})}}Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;(e.data.urlOrBlob?import(e.data.urlOrBlob):import("./openFPGALoader.mjs")).then(exports=>exports.default(Module))}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["__emscripten_thread_mailbox_await"](e.data.pthread_ptr);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){Module["__embind_initialize_bindings"]();initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="checkMailbox"){if(initializedJS){Module["checkMailbox"]()}}else if(e.data.cmd){err(`worker.js received unknown command ${e.data.cmd}`);err(e.data)}}catch(ex){Module["__emscripten_thread_crashed"]?.();throw ex}}self.onmessage=handleMessage;
package/lib/api.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ export type Tree = {
2
+ [name: string]: Tree | string | Uint8Array
3
+ };
4
+
5
+ export class Exit extends Error {
6
+ code: number;
7
+ files: Tree;
8
+ }
9
+
10
+ export type Command = {
11
+ (args?: string[], files?: Tree, options?: {
12
+ print?: (chars: string) => void,
13
+ printLine?: (line: string) => void
14
+ }): Promise<Tree>;
15
+
16
+ requiresUSBDevice: {
17
+ vendorId?: number,
18
+ productId?: number,
19
+ classCode?: number,
20
+ subclassCode?: number,
21
+ protocolCode?: number,
22
+ serialNumber?: number
23
+ }[];
24
+ };
25
+
26
+
27
+ export const runOpenFPGALoader: Command;
28
+
29
+ export const commands: {
30
+ 'openFPGALoader': Command,
31
+ };
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@yowasp/openfpgaloader",
3
+ "version": "0.0.0-experimental0",
4
+ "description": "WebUSB port of openFPGALoader, universal utility for programming FPGA",
5
+ "author": "Catherine <whitequark@whitequark.org>",
6
+ "license": "ISC",
7
+ "homepage": "https://yowasp.org/",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/YoWASP/openFPGALoader-web.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/YoWASP/openFPGALoader-web/issues"
14
+ },
15
+ "type": "module",
16
+ "files": [
17
+ "lib/api.d.ts",
18
+ "gen/bundle.js",
19
+ "gen/openFPGALoader.worker.js",
20
+ "gen/openFPGALoader.wasm"
21
+ ],
22
+ "exports": {
23
+ "browser": "./gen/bundle.js",
24
+ "types": "./lib/api.d.ts"
25
+ },
26
+ "types": "./lib/api.d.ts",
27
+ "devDependencies": {
28
+ "esbuild": "^0.19.8"
29
+ },
30
+ "scripts": {
31
+ "build": "esbuild --bundle lib/api.js --outfile=gen/bundle.js --format=esm --platform=browser"
32
+ }
33
+ }