Compare commits

...

31 Commits

Author SHA1 Message Date
semantic-release-bot 529ea38724 chore(release): 0.0.2-develop.1 [skip ci]
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/kernel-sandbox/compare/v0.0.1...v0.0.2-develop.1) (2023-07-21)
2023-07-21 12:11:24 +00:00
Derrick Hammer 253ebf2623
ci: add repository to package.json 2023-07-21 08:10:01 -04:00
Derrick Hammer 3b7b960995
ci: enable npm publishing 2023-07-21 08:08:04 -04:00
Derrick Hammer 0617890621
ci: add semantic-release script 2023-07-21 08:02:09 -04:00
Derrick Hammer 1cc5456434
ci: setup 2023-07-21 07:55:36 -04:00
Derrick Hammer 893b5f530e
ci: add npm-shrinkwrap.json 2023-07-21 07:47:58 -04:00
Derrick Hammer b6b273ff0f
ci: update build config and scripts 2023-07-21 07:47:50 -04:00
Derrick Hammer 4403ef8151
refactor: remove tester class 2023-07-20 16:14:41 -04:00
Derrick Hammer d477417ff6
style: format 2023-07-20 16:13:36 -04:00
Derrick Hammer daaa338854
chore: prune files 2023-07-20 16:12:05 -04:00
Derrick Hammer 46d22fe544
refactor: rename package 2023-07-20 16:11:55 -04:00
Derrick Hammer 3ec85772ae
dep: update deps 2023-07-20 16:11:26 -04:00
Derrick Hammer 4c8750bcb2
refactor: use new sdks and portal 2023-07-02 02:42:43 -04:00
Derrick Hammer 2e5a28a3a9
*WIP 2023-03-31 15:42:33 -04:00
Derrick Hammer 1cdd3ff62b *Update builds 2022-07-20 14:28:07 -04:00
Derrick Hammer e371a85b24 *Handle ProtocolError errors 2022-07-20 14:27:41 -04:00
Derrick Hammer 27fa4b977b *puppeteer should not be a devdep 2022-07-20 14:20:25 -04:00
Derrick Hammer 2ac23cb723 *add puppeteer dep 2022-07-20 14:18:52 -04:00
Derrick Hammer fd9c7a82bb *Remove types 2022-07-20 14:06:32 -04:00
Derrick Hammer 994ee4cd1f *Update builds 2022-07-20 14:06:18 -04:00
Derrick Hammer 50ed4b92c5 *Switch to window 2022-07-20 14:05:38 -04:00
Derrick Hammer 5081253cc9 *Switch to esm 2022-07-20 14:01:54 -04:00
Derrick Hammer baf1fa7695 *Update builds 2022-07-20 13:51:16 -04:00
Derrick Hammer 6d15e76560 *Update build process 2022-07-20 13:50:17 -04:00
Derrick Hammer 67615b5b77 *add ts-ignore 2022-07-20 13:47:31 -04:00
Derrick Hammer 13fbea7051 *Add sandbox command 2022-07-20 13:35:59 -04:00
Derrick Hammer ee4105f3a7 *Ensure static server is stopped on crashes or when puppeteer stops 2022-07-20 13:35:13 -04:00
Derrick Hammer aa66d23160 *Update TEST_KERNEL_SKLINK 2022-07-20 13:34:16 -04:00
Derrick Hammer be3e75c15b *Update LICENSE 2022-06-30 18:31:55 -04:00
Derrick Hammer a45eae92e6 *Add dist 2022-06-30 16:13:15 -04:00
Derrick Hammer c52c27a615 *Initial version 2022-06-30 16:12:43 -04:00
11 changed files with 20778 additions and 2 deletions

13
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,13 @@
name: Build/Publish
on:
push:
branches:
- master
- develop
- develop-*
jobs:
main:
uses: lumeweb/github-node-deploy-workflow/.github/workflows/main.yml@master
secrets: inherit

35
.presetterrc.json Normal file
View File

@ -0,0 +1,35 @@
{
"preset": [
"@lumeweb/presetter-kernel-module-preset"
],
"config": {
"browser": true,
"vite": {
"build": {
"copyPublicDir": false,
"lib": {
"entry": "{source}/tester.js",
"fileName": "tester",
"formats": {
"0": "umd"
}
}
}
},
"publish": {
"plugins": {
"3": [
"@semantic-release/npm",
{
"npmPublish": true
}
]
}
}
},
"scripts": {
"build:vite": "vite build",
"build:bin": "shx mv lib/tester.umd.cjs public/tester.js && shx mkdir -p bin && shx mv build/sandbox* bin/",
"build:lib": "shx mv build/* lib/ && shx rm lib/tester*"
}
}

1
CHANGELOG.md Normal file
View File

@ -0,0 +1 @@
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/kernel-sandbox/compare/v0.0.1...v0.0.2-develop.1) (2023-07-21)

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 Lume Web
Copyright (c) 2022 Hammer Technologies LLC, Skynet Labs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,2 +1,2 @@
# kernel-test
# kernel-tester
A kernel module test library for Skynet

20597
npm-shrinkwrap.json generated Normal file

File diff suppressed because it is too large Load Diff

36
package.json Normal file
View File

@ -0,0 +1,36 @@
{
"name": "@lumeweb/kernel-sandbox",
"version": "0.0.2-develop.1",
"repository": {
"type": "git",
"url": "gitea@git.lumeweb.com:LumeWeb/kernel-sandbox.git"
},
"scripts": {
"prepare": "presetter bootstrap",
"build": "run build build:bin build:lib",
"semantic-release": "semantic-release"
},
"main": "dist/index.js",
"type": "module",
"bin": {
"kernel-sandbox": "bin/sandbox.js"
},
"devDependencies": {
"@lumeweb/presetter-kernel-module-preset": "^0.1.0-develop.43",
"@rollup/plugin-wasm": "^6.1.3",
"presetter": "*"
},
"readme": "ERROR: No README data found!",
"dependencies": {
"@lumeweb/libkernel": "^0.1.0-develop.21",
"puppeteer": "^20.7.4",
"static-server": "^2.2.1"
},
"files": [
"public",
"lib"
],
"publishConfig": {
"access": "public"
}
}

11
public/index.html Normal file
View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tester</title>
<script type="text/javascript" src="tester.js"></script>
</head>
<body>
</body>
</html>

45
src/index.ts Normal file
View File

@ -0,0 +1,45 @@
import * as path from "path";
import * as kernel from "@lumeweb/libkernel/kernel";
// @ts-ignore
import StaticServer from "static-server";
import { Page } from "puppeteer";
import { bufToHex, ed25519, ErrTuple } from "@lumeweb/libkernel";
import * as url from "url";
const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
export function generateSeedPhrase() {
return ed25519.utils.randomPrivateKey();
}
export async function login(page: Page, seed = generateSeedPhrase()) {
await page.goto("http://kernel.lumeweb.com");
let seedHex = bufToHex(seed);
await page.evaluate((seed: string) => {
window.localStorage.setItem("v1-key", seed);
}, seedHex);
}
export async function loadTester(page: Page, port = 8080) {
const server = new StaticServer({
rootPath: path.resolve(__dirname, "..", "public"),
port,
host: "localhost",
});
await new Promise((resolve) => {
server.start(resolve);
});
const stop = () => server.stop();
process.on("SIGTERM", stop);
page.browser().on("disconnected", stop);
await page.goto(`http://localhost:${port}/`);
await page.evaluate(() => {
return kernel.init();
});
}

24
src/sandbox.ts Normal file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env node
// @ts-ignore
import { loadTester, login } from "../build/index.js";
import puppeteer, { Browser, Page, ProtocolError } from "puppeteer";
let browser: Browser;
(async () => {
browser = await puppeteer.launch({ headless: false, devtools: true });
const page = (await browser.pages()).pop() as Page;
await login(page);
await loadTester(page);
})();
process.on("SIGTERM", async () => {
await browser.close();
});
process.on("uncaughtException", (e) => {
if (!(e instanceof ProtocolError)) {
throw e;
}
});

14
src/tester.ts Normal file
View File

@ -0,0 +1,14 @@
import * as kernel from "@lumeweb/libkernel/kernel";
// @ts-ignore
window.kernel = kernel;
window.addEventListener("message", (event) => {
const data = event.data?.data;
if (event.data.method === "log") {
if (data?.isErr === false) {
console.log(data.message);
return;
}
console.error(data.message);
}
});