nbui updates

This commit is contained in:
Jonathan Shook 2020-09-03 12:12:00 -05:00
parent fc0f1c8dfe
commit a4b417545f
32 changed files with 2685 additions and 5714 deletions

View File

@ -2,5 +2,6 @@ local/**
node_modules
npm-debug.log
.nuxt
_nuxt/**
dist
.idea

View File

@ -15,7 +15,6 @@
export default {
getCategory(route, categories) {
let active_category = categories[0];
if (!route.path) {
@ -26,12 +25,9 @@ export default {
throw "invalid path for docs: '" + route.path + "' parts[0]=" + parts[0] + " parts=" + JSON.stringify(parts,null,2)
}
if (parts.length>2) {
let active_category_name = parts[2];
active_category = categories.find(x => x.name === active_category_name);
if (active_category === undefined) {
console.error("unable to find category named '" + active_category_name + "', resetting to root")
// console.log("categories:" + JSON.stringify(categories, null, 2))
active_category = categories[0];
let found = categories.find(x => x.name === parts[2]);
if (found) {
active_category = found;
}
}
}

View File

@ -0,0 +1,42 @@
/**
* Path scheme:
* /docs/cat1/t1/t2/t3.md
* _____ docs prefix
* / delimiter
* ____ category name
* / delimiter
* ___________ topic path, including separators
* ________ topic name, without extension
*
* /docs/cat1/index.md summary doc for cat1
* ______________________ topic path
* __________ category path
*/
export default {
url(document, context, path) {
console.log("isDev=" + context.isDev)
console.log("document.location=" + JSON.stringify(document.location, null, 2))
let origin = document.location.origin;
let base = origin;
if (origin.includes(":3003")) {
base = origin.replace(":3003", ":12345")
}
console.log("base=" + base);
let url = base + path;
console.log("url=" + url);
return url;
},
localize(body, baseurl) {
// console.log("localize([body],baseurl='" + baseurl + "'")
// const regex = /\[([^/][^]]+)]/;
// let remaining = body;
//
// while (remaining.)
//
return body;
}
}

View File

@ -1,52 +1,52 @@
// asyncData in multiple mixins seems to be broken, or worse, working as designed
export default {
async asyncData(context) {
// if (context.req) {
// console.log("avoiding server-side async");
// return;
// }
let baseurl = document.location.href.split('/').slice(0,3).join('/');
if (context.isDev && baseurl.includes(":3000")) {
console.log("Dev mode: remapping 3000 to 12345 for split dev environment.");
baseurl = baseurl.replace("3000","12345");
}
let services = baseurl + "/services";
// console.log("async loading get_categories data: context: " + context);
var fm = require('front-matter');
let namespaces_endpoint = services + "/docs/namespaces";
let namespaces = await context.$axios.$get(namespaces_endpoint);
// let namespaces = await fetch(services+"/docs/namespaces")
// .then(response => {
// return response.json()
// })
// .catch(err => {
// console.log("error:" + err)
// });
const collated = Array();
for (let ena in namespaces) {
for (let ns in namespaces[ena]) {
collated.push({
namespace: ns,
show: (ena==="enabled"),
paths: namespaces[ena]
});
console.log ("ns:"+ ns + ", ena: " + ena);
}
// namespaces[ena].forEach(e => {e.isEnabled = (ena === "enabled")});
// collated=collated.concat(namespaces[ena])
}
let result={namespaces: collated};
// console.log("namespaces result:"+JSON.stringify(result));
return result;
}
}
// // asyncData in multiple mixins seems to be broken, or worse, working as designed
// export default {
// async asyncData(context) {
//
// // if (context.req) {
// // console.log("avoiding server-side async");
// // return;
// // }
//
// let baseurl = document.location.href.split('/').slice(0,3).join('/');
//
// if (context.isDev && baseurl.includes(":3000")) {
// console.log("Dev mode: remapping 3000 to 12345 for split dev environment.");
// baseurl = baseurl.replace("3000","12345");
// }
//
// let services = baseurl + "/services";
//
// // console.log("async loading get_categories data: context: " + context);
// var fm = require('front-matter');
//
// let namespaces_endpoint = services + "/docs/namespaces";
//
// let namespaces = await context.$axios.$get(namespaces_endpoint);
// // let namespaces = await fetch(services+"/docs/namespaces")
// // .then(response => {
// // return response.json()
// // })
// // .catch(err => {
// // console.log("error:" + err)
// // });
//
// const collated = Array();
// for (let ena in namespaces) {
// for (let ns in namespaces[ena]) {
// collated.push({
// namespace: ns,
// show: (ena==="enabled"),
// paths: namespaces[ena]
// });
// console.log ("ns:"+ ns + ", ena: " + ena);
// }
// // namespaces[ena].forEach(e => {e.isEnabled = (ena === "enabled")});
// // collated=collated.concat(namespaces[ena])
// }
//
// let result={namespaces: collated};
// // console.log("namespaces result:"+JSON.stringify(result));
// return result;
// }
//
// }

View File

@ -47,7 +47,8 @@ export default {
],
axios: {
port: 12345,
browserBaseURL: 'http://localhost:12345/services/',
__browserBaseURL: 'http://localhost:12345/services/',
baseUrl: '/services/',
progress: true
},
/*

View File

@ -1,7 +1,7 @@
import colors from 'vuetify/es5/util/colors'
var glob = require('glob');
var path = require('path');
// var glob = require('glob');
// var path = require('path');
export default {
// target: 'static',
@ -47,8 +47,10 @@ export default {
'@nuxtjs/axios'
],
axios: {
port: 12345,
browserBaseURL: 'http://localhost:12345/services/',
// port: 12345,
// browserBaseURL: 'http://localhost:12345/services/',
// baseURL: '/services/',
// browserBaseURL: '/services/',
progress: true
},
/*
@ -130,8 +132,8 @@ export default {
test: /.g4/, loader: 'antlr4-webpack-loader'
})
config.module.rules.push({
test: /\.ya?ml$/,
use: 'js-yaml-loader',
test: /\.ya?ml$/,
use: 'js-yaml-loader',
})
config.node = {
fs: 'empty'
@ -139,24 +141,23 @@ export default {
config.optimization.minimize = false;
}
}
, generate: {
routes: dynamicRoutes
}
}
// , generate: {
// routes: dynamicRoutes
// }
var dynamicRoutes = getDynamicPaths({
'/docs': 'docs/*.md',
'/#/docs': '/#/docs/*.md'
});
function getDynamicPaths(urlFilepathTable) {
return [].concat(
...Object.keys(urlFilepathTable).map(url => {
var filepathGlob = urlFilepathTable[url];
return glob
.sync(filepathGlob, {cwd: 'content'})
.map(filepath => `${url}/${path.basename(filepath, '.md')}`);
})
);
}
// var dynamicRoutes = getDynamicPaths({
// '/docs': 'docs/*.md',
// '/#/docs': '/#/docs/*.md'
// });
//
// function getDynamicPaths(urlFilepathTable) {
// return [].concat(
// ...Object.keys(urlFilepathTable).map(url => {
// var filepathGlob = urlFilepathTable[url];
// return glob
// .sync(filepathGlob, {cwd: 'content'})
// .map(filepath => `${url}/${path.basename(filepath, '.md')}`);
// })
// );
// }

File diff suppressed because it is too large Load Diff

View File

@ -5,32 +5,37 @@
"author": "Sebastian Estevez & Jonathan Shook",
"private": true,
"scripts": {
"dev": "nuxt -c nuxt.config.dev.js --port 3003",
"olddev": "nuxt -c nuxt.config.dev.js --port 3003",
"dev": "nuxt --port 3003",
"build": "nuxt build",
"start": "nuxt start",
"generate": "nuxt generate",
"antlr": "cd antlr && node ../node_modules/antlr4-cli/bin/antlr4.js -Dlanguage=JavaScript -Werror -visitor -listener CQL3.g4"
},
"dependencies": {
"@nuxtjs/axios": "^5.12.1",
"@nuxtjs/axios": "^5.12.2",
"@nuxtjs/vuetify": "^2.0.0-beta.2",
"vue": "^2.6.11",
"front-matter": "^4.0.1",
"@nuxt/webpack": "^2.14.4",
"@nuxtjs/babel-preset-app": "^0.8.0",
"vue": "^2.6.12",
"vue-template-compiler": "^2.6.12",
"front-matter": "^4.0.2",
"antlr4": "^4.8.0",
"antlr4-cli": "^4.5.3",
"file-saver": "^2.0.2",
"js-yaml": "^3.14.0",
"js-yaml-loader": "^1.2.2",
"node-fetch": "^2.6.0",
"source-map-resolve": "^0.6.0",
"eslint": "^7.7.0",
"chokidar": "^3.4.2",
"npm": "^6.14.8",
"nuxt": "^2.14.4",
"webpack": "^4.44.1",
"markdown-it-vue": "^1.1.3",
"markdown-it-smartarrows": "^1.0.1",
"markdown-it-relativelink": "^0.2.0",
"markdown-it-replace-link": "^1.1.0",
"markdown-it-vue": "^1.1.3",
"node-fetch": "^2.6.0",
"npm": "^6.14.7",
"nuxt": "^2.14.3",
"vue-template-compiler": "^2.6.11",
"webpack": "^4.44.1",
"markdown-it-highlightjs": "^3.2.0"
}
}

View File

@ -32,11 +32,11 @@
</template>
<script>
import get_namespaces from '@/mixins/get_namespaces.js';
// import get_namespaces from '@/mixins/get_namespaces.js';
export default {
name: "namespaces",
mixins: [get_namespaces],
// mixins: [get_namespaces],
data(context) {
// return {
// namespaces: []

View File

@ -101,6 +101,9 @@ export default {
workspace: function () {
return this.$store.getters["workspaces/getWorkspace"]
},
enabled: function () {
return this.$store.getters["service_status/getEndpoints"]
}
},
methods: {
async parseStatement() {
@ -270,18 +273,9 @@ export default {
})
}
},
async asyncData({$axios, store}) {
let enabled = await $axios.$get("/status")
.then(res => {
return res
})
.catch((e) => {
console.log("back-end not found");
})
return {
enabled: enabled,
}
},
created() {
this.$store.dispatch('service_status/loadEndpoints')
}
}
</script>
<style>

View File

@ -284,7 +284,7 @@ export default {
commands
}
console.log("submitting:" + JSON.stringify(erq));
this.$axios.$post("/executor/cli", erq);
this.$store.dispatch("scenarios/runScenario", erq);
}
}
}

View File

@ -1,9 +1,11 @@
import endpoints from "@/js/endpoints";
// https://www.mikestreety.co.uk/blog/vue-js-using-localstorage-with-the-vuex-store
/**
categories: [
{
{
name,
title,
topics,
@ -108,27 +110,37 @@ export const actions = {
async setIsDrawerOpen({commit, state, dispatch}, isDrawerOpen) {
await commit("setIsDrawerOpen", isDrawerOpen)
},
async setCategories({commit, state, dispatch}, categories) {
async setCategories({commit, state, dispatch, context}, categories) {
await commit("setCategories", categories)
},
async loadCategories({commit, state, dispatch}) {
async loadCategories(context) {
// let location = document.location;
// console.log("location:" + location);
let commit = context.commit;
let state = context.state;
let dispatch = context.dispatch;
if (state.categories === null || state.categories.length === 0) {
let fm = require('front-matter');
const category_data = await this.$axios.get("/docs/markdown.csv")
const category_data = await this.$axios.get(endpoints.url(document, context, "/services/docs/markdown.csv"))
.then(manifest => {
// console.log("typeof(manifest):" + typeof (manifest))
// console.log("manifest:" + JSON.stringify(manifest, null, 2))
return manifest.data.split("\n").filter(x => {
return x!==null && x.length>0
return x !== null && x.length > 0
})
})
.catch((e) => {
console.log("error getting data:" + e);
throw e;
})
.then(async lines => {
let val = await Promise.all(lines.map(line => {
let url = "/docs" + "/" + line;
// console.log("url:"+url)
return this.$axios.get("/docs/" + line)
return this.$axios.get(endpoints.url(document, context, "/services/docs/" + line))
.then(res => {
// console.log("typeof(res):" + typeof(res))
return {
@ -145,8 +157,14 @@ export const actions = {
// console.log("mapof:" + JSON.stringify(mapof, null, 2))
// return mapof;
})
.catch((e) => {
console.log("error getting entries:" + e);
throw e;
})
.then(fetched => {
return fetched.map(entry => {
// console.log("entry:" + JSON.stringify(entry,null,2))
let [, name] = entry.path.match(/(.+)\.md$/);
let basename = entry.path.split("/").find(x => x.includes(".md"))
let categories = entry.path.split("/").filter(x => !x.includes("."))
@ -156,7 +174,9 @@ export const actions = {
let weight = ((mdMeta.attributes.weight) ? mdMeta.attributes.weight : 0)
let title = ((mdMeta.attributes.title) ? mdMeta.attributes.title : basename)
let path = "/docs/" + entry.path
let baseurl = endpoints.url(document, context, "/services/docs/" + path);
console.log("baseurl for doc:" + baseurl);
let body = endpoints.localize(mdMeta.body, baseurl)
// console.log("path:" + entry.path)
return {
name,
@ -170,6 +190,10 @@ export const actions = {
})
}
)
.catch((e) => {
console.log("error parsing entries:" + e);
throw e;
})
.then(alltopics => {
// console.log("input:" + JSON.stringify(input, null, 2))
let categorySet = new Set();
@ -226,6 +250,5 @@ export const actions = {
// console.log("result:" + JSON.stringify(docinfo, null, 2))
}
}

View File

@ -1,5 +1,6 @@
// https://www.mikestreety.co.uk/blog/vue-js-using-localstorage-with-the-vuex-store
import {mapGetters} from "vuex";
import endpoints from "@/js/endpoints";
export const state = () => ({
scenarios: []
@ -18,32 +19,43 @@ export const mutations = {
}
export const actions = {
async loadScenarios({commit, state, dispatch}, reason) {
async loadScenarios(context, reason) {
console.log("loading scenarios because '" + reason + "'")
await this.$axios.$get("/executor/scenarios/")
await this.$axios.$get(endpoints.url(document, context, "/services/executor/scenarios/"))
.then(res => {
// console.log("axios/vuex scenarios async get:" + JSON.stringify(res));
// console.log("committing setScenarios:" + JSON.stringify(res));
commit('setScenarios', res)
context.commit('setScenarios', res)
})
.catch((e) => {
console.error("axios/nuxt scenarios async error:", e);
})
},
async stopScenario({commit, state, dispatch}, scenario_name) {
await this.$axios.$post("/executor/stop/" + scenario_name)
.then()
async runScenario(context, scenario_config) {
await this.$axios.post(endpoints.url(document, context, "/services/executor/cli"), scenario_config)
.then(res => {
console.log("execute scenarios response:" + res)
}
)
.catch((e) => {
console.error("axios/nuxt scenario stop error:", e);
console.error("axios/nuxt cli error: " + e)
})
await dispatch("loadScenarios")
},
async deleteScenario({commit, state, dispatch}, scenario_name) {
await this.$axios.$delete("/executor/scenario/" + scenario_name)
async stopScenario(context, scenario_name) {
await this.$axios.$post(endpoints.url(document, context, "/services/executor/stop/" + scenario_name))
.then()
.catch((e) => {
console.error("axios/nuxt scenario stop error:", e);
})
await dispatch("loadScenarios")
await context.dispatch("loadScenarios")
},
async deleteScenario(context, scenario_name) {
await this.$axios.$delete(endpoints.url(document, context, "/services/executor/scenario/" + scenario_name))
.then()
.catch((e) => {
console.error("axios/nuxt scenario stop error:", e);
})
await context.dispatch("loadScenarios")
}
};

View File

@ -0,0 +1,33 @@
// https://www.mikestreety.co.uk/blog/vue-js-using-localstorage-with-the-vuex-store
import {mapGetters} from "vuex";
import endpoints from "@/js/endpoints";
export const state = () => ({
endpoints: {},
enabled: false
});
export const getters = {
getEndpoints: (state, getters) => {
return state.endpoints;
}
}
export const mutations = {
setEndpoints(state, endpoints) {
state.endpoints = endpoints;
}
}
export const actions = {
async loadEndpoints(context, reason) {
console.log("loading endpoint status because '" + reason + "'")
await this.$axios.get(endpoints.url(document, context, "/services/status"))
.then(res => {
context.commit('setEndpoints', res)
})
.catch((e) => {
console.error("axios/nuxt status async error:" + e);
})
}
};

View File

@ -1,5 +1,6 @@
// https://www.mikestreety.co.uk/blog/vue-js-using-localstorage-with-the-vuex-store
import {mapGetters} from "vuex";
import endpoints from "@/js/endpoints";
export const state = () => ({
workloads: [],
@ -32,19 +33,19 @@ export const mutations = {
};
export const actions = {
async setWorkloads({commit, state, dispatch}, val) {
async setWorkloads(context, val) {
// console.log("committing setWorkloads:" + JSON.stringify(val));
commit('setWorkloads', val);
context.commit('setWorkloads', val);
},
async setTemplates({commit, state, dispatch}, val) {
async setTemplates(context, val) {
// console.log("commiting setTemplates:" + JSON.stringify(val));
commit("setTemplates", val);
context.commit("setTemplates", val);
},
async setSearchin({commit, state, dispatch}, val) {
async setSearchin(context, val) {
// console.log("committing setsearchin:" + JSON.stringify(val));
commit('setSearchin', val);
context.commit('setSearchin', val);
},
async fetchWorkloads({commit, state, dispatch}, params) {
async fetchWorkloads(context, params) {
let reason = params.reason;
let searchin = params.searchin;
if (reason === undefined || searchin === undefined) {
@ -52,17 +53,17 @@ export const actions = {
}
// console.log("fetching workloads because '" + reason + "'")
commit("setTemplates", undefined);
this.$axios.$get("/workloads/?searchin=" + searchin)
context.commit("setTemplates", undefined);
this.$axios.$get(endpoints.url(document, context, "/services/workloads/?searchin=" + searchin))
.then(res => {
// console.log("axios/vuex workloads async get:" + JSON.stringify(res));
commit("setWorkloads", res);
context.commit("setWorkloads", res);
})
.catch((e) => {
console.error("axios/nuxt workloads async error:", e);
})
},
fetchTemplates({commit, state, dispatch}, params) {
async fetchTemplates(context, params) {
let reason = params.reason;
let workload = params.workload;
let searchin = params.searchin;
@ -71,15 +72,17 @@ export const actions = {
}
console.log("fetching templates for '" + workload + "' because '" + reason + "'")
this.$axios.$get("/workloads/parameters?workloadName=" + workload + "&" + "searchin=" + searchin)
this.$axios.$get(endpoints.url(document, context, "/services/workloads/parameters?workloadName=" + workload + "&" + "searchin=" + searchin))
.then(res => {
// console.log("axios/vuex templates async get:" + JSON.stringify(res));
dispatch("setTemplates", res);
context.dispatch("setTemplates", res)
.then(r => {
console.log("setTemplates result:" + JSON.stringify(r, null, 2))
});
})
.catch((e) => {
console.error("axios/nuxt templates async error:", e);
})
}
};

View File

@ -1,5 +1,6 @@
// https://www.mikestreety.co.uk/blog/vue-js-using-localstorage-with-the-vuex-store
import {mapGetters} from "vuex";
import endpoints from "@/js/endpoints";
export const state = () => ({
workspace: 'default',
@ -34,34 +35,34 @@ export const mutations = {
};
export const actions = {
async setWorkspace({commit, state, dispatch}, val) {
async setWorkspace(context, val) {
// console.log("committing setWorkspace:" + JSON.stringify(val));
commit('setWorkspace', val);
context.commit('setWorkspace', val);
},
async setWorkspaces({commit, state, dispatch}, val) {
async setWorkspaces(context, val) {
// console.log("committing setWorkspaces:" + JSON.stringify(val));
commit('setWorkspaces', val);
context.commit('setWorkspaces', val);
},
async initWorkspaces({commit, state, dispatch}, reason) {
async initWorkspaces(context, reason) {
// console.log("initializing workspaces because '" + reason + "'")
this.$axios.$get("/workspaces/")
this.$axios.$get(endpoints.url(document, context, "/services/workspaces/"))
.then(res => {
// console.log("axios/vuex workspaces async get:" + JSON.stringify(res));
// console.log("committing setWorkspaces:" + JSON.stringify(res));
commit('setWorkspaces', res)
context.commit('setWorkspaces', res)
})
.catch((e) => {
console.error("axios/nuxt workspaces async error:", e);
})
},
async putFile({commit, state, dispatch}, params) {
async putFile(context, params) {
let to_workspace = params.workspace;
let to_filename = params.filename;
let to_content = params.content;
if (!to_workspace || !to_filename || !to_content) {
throw("Unable to save file to workspace without params having workspace, filename, content");
}
const result = await this.$axios.$post("/workspaces/" + to_workspace + "/" + to_filename, to_content)
const result = await this.$axios.$post(endpoints.url(document, context, "/services/workspaces/" + to_workspace + "/" + to_filename, to_content))
.then(res => {
console.log("axios/vuex workspace put:" + JSON.stringify(res));
return res;
@ -70,8 +71,8 @@ export const actions = {
console.error("axios/vuex workspace put:", e)
});
},
async activateWorkspace({commit, state, dispatch}, workspace) {
const fresh_workspace = await this.$axios.$get("/workspaces/" + workspace)
async activateWorkspace(context, workspace) {
const fresh_workspace = await this.$axios.$get(endpoints.url(document, context, "/services/workspaces/" + workspace))
.then(res => {
// console.log("axios/vuex workspace async get:" + JSON.stringify(res))
return res;
@ -79,15 +80,15 @@ export const actions = {
.catch((e) => {
console.error("axios/nuxt getWorkspace async error:", e)
})
await dispatch('initWorkspaces', "workspace '" + workspace + "' added");
await context.dispatch('initWorkspaces', "workspace '" + workspace + "' added");
// await dispatch.initWorkspaces({commit, state, dispatch}, "workspace '" + workspace + "' added")
// await this.$store.dispatch("workspaces/initWorkspaces", "workspace '" + workspace + "' added")
// await this.initWorkspaces({commit}, "workspace added");
commit('setWorkspace', fresh_workspace.name)
context.commit('setWorkspace', fresh_workspace.name)
return workspace;
},
async purgeWorkspace({commit, state, dispatch}, workspace) {
await this.$axios.$delete("/workspaces/" + workspace)
async purgeWorkspace(context, workspace) {
await this.$axios.$delete(endpoints.url(document, context, "/services/workspaces/" + workspace))
.then(res => {
console.log("purged workspace:" + res)
return res;
@ -98,8 +99,8 @@ export const actions = {
const found = this.state.workspaces.workspaces.find(w => w.name === workspace);
if (!found) {
console.log("setting active workspace to 'default' since the previous workspace '" + workspace + "' is not found")
await dispatch('activateWorkspace', "default");
await context.dispatch('activateWorkspace', "default");
}
await dispatch('initWorkspaces', "workspace '" + workspace + "' purged");
await context.dispatch('initWorkspaces', "workspace '" + workspace + "' purged");
}
};

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,135 @@
<!DOCTYPE html>
<html>
<head>
<title>NoSQLBench</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="description" name="description" content="Docs App for NoSQLBench"><link data-n-head="1" rel="icon" type="image/x-icon" href="/favicon.ico"><link data-n-head="1" rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&amp;display=swap"><link data-n-head="1" rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link rel="preload" href="/_nuxt/runtime.b4a6781.js" as="script"><link rel="preload" href="/_nuxt/node_modules/commons.f448a43.js" as="script"><link rel="preload" href="/_nuxt/app.dfe1a1f.js" as="script">
<title>NoSQLBench</title>
<meta data-n-head="1" charset="utf-8">
<meta data-n-head="1" name="viewport"
content="width=device-width,initial-scale=1">
<meta data-n-head="1" data-hid="description" name="description"
content="Docs App for NoSQLBench">
<link data-n-head="1" rel="icon" type="image/x-icon"
href="/favicon.ico">
<link data-n-head="1" rel="stylesheet" type="text/css"
href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&amp;display=swap">
<link data-n-head="1" rel="stylesheet" type="text/css"
href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
<link rel="preload" href="/_nuxt/runtime.c50e81a.js" as="script">
<link rel="preload" href="/_nuxt/vendors/commons.0d00bcd.js"
as="script">
<link rel="preload" href="/_nuxt/app.4c18aa8.js" as="script">
</head>
<body>
<div id="__nuxt"><style>#nuxt-loading { background: white; visibility: hidden; opacity: 0; position: absolute; left: 0; right: 0; top: 0; bottom: 0; display: flex; justify-content: center; align-items: center; flex-direction: column; animation: nuxtLoadingIn 10s ease; -webkit-animation: nuxtLoadingIn 10s ease; animation-fill-mode: forwards; overflow: hidden;}@keyframes nuxtLoadingIn { 0% {visibility: hidden;opacity: 0; } 20% {visibility: visible;opacity: 0; } 100% {visibility: visible;opacity: 1; }}@-webkit-keyframes nuxtLoadingIn { 0% {visibility: hidden;opacity: 0; } 20% {visibility: visible;opacity: 0; } 100% {visibility: visible;opacity: 1; }}#nuxt-loading>div,#nuxt-loading>div:after { border-radius: 50%; width: 5rem; height: 5rem;}#nuxt-loading>div { font-size: 10px; position: relative; text-indent: -9999em; border: .5rem solid #F5F5F5; border-left: .5rem solid #fff; -webkit-transform: translateZ(0); -ms-transform: translateZ(0); transform: translateZ(0); -webkit-animation: nuxtLoading 1.1s infinite linear; animation: nuxtLoading 1.1s infinite linear;}#nuxt-loading.error>div { border-left: .5rem solid #ff4500; animation-duration: 5s;}@-webkit-keyframes nuxtLoading { 0% {-webkit-transform: rotate(0deg);transform: rotate(0deg); } 100% {-webkit-transform: rotate(360deg);transform: rotate(360deg); }}@keyframes nuxtLoading { 0% {-webkit-transform: rotate(0deg);transform: rotate(0deg); } 100% {-webkit-transform: rotate(360deg);transform: rotate(360deg); }}</style><script>window.addEventListener('error', function () { var e = document.getElementById('nuxt-loading'); if (e) {e.className += ' error'; }});</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{},staticAssetsBase:void 0}</script>
<script src="/_nuxt/runtime.b4a6781.js"></script><script src="/_nuxt/node_modules/commons.f448a43.js"></script><script src="/_nuxt/app.dfe1a1f.js"></script></body>
<div id="__nuxt">
<style>#nuxt-loading {
background: white;
visibility: hidden;
opacity: 0;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
animation: nuxtLoadingIn 10s ease;
-webkit-animation: nuxtLoadingIn 10s ease;
animation-fill-mode: forwards;
overflow: hidden;
}
@keyframes nuxtLoadingIn {
0% {
visibility: hidden;
opacity: 0;
}
20% {
visibility: visible;
opacity: 0;
}
100% {
visibility: visible;
opacity: 1;
}
}
@-webkit-keyframes nuxtLoadingIn {
0% {
visibility: hidden;
opacity: 0;
}
20% {
visibility: visible;
opacity: 0;
}
100% {
visibility: visible;
opacity: 1;
}
}
#nuxt-loading > div, #nuxt-loading > div:after {
border-radius: 50%;
width: 5rem;
height: 5rem;
}
#nuxt-loading > div {
font-size: 10px;
position: relative;
text-indent: -9999em;
border: .5rem solid #F5F5F5;
border-left: .5rem solid #fff;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation: nuxtLoading 1.1s infinite linear;
animation: nuxtLoading 1.1s infinite linear;
}
#nuxt-loading.error > div {
border-left: .5rem solid #ff4500;
animation-duration: 5s;
}
@-webkit-keyframes nuxtLoading {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes nuxtLoading {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}</style>
<script>window.addEventListener('error', function () {
var e = document.getElementById('nuxt-loading');
if (e) {
e.className += ' error';
}
});</script>
<div id="nuxt-loading" aria-live="polite" role="status">
<div>Loading...</div>
</div>
</div>
<script>window.__NUXT__ = {
config: {},
staticAssetsBase: void 0
}</script>
<script src="/_nuxt/runtime.c50e81a.js"></script>
<script src="/_nuxt/vendors/commons.0d00bcd.js"></script>
<script src="/_nuxt/app.4c18aa8.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,223 +0,0 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ resolves.push(installedChunks[chunkId][0]);
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
/******/
/******/ // add entry modules from loaded chunk to deferred list
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ // run deferred modules when all chunks ready
/******/ return checkDeferredModules();
/******/ };
/******/ function checkDeferredModules() {
/******/ var result;
/******/ for(var i = 0; i < deferredModules.length; i++) {
/******/ var deferredModule = deferredModules[i];
/******/ var fulfilled = true;
/******/ for(var j = 1; j < deferredModule.length; j++) {
/******/ var depId = deferredModule[j];
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
/******/ }
/******/ if(fulfilled) {
/******/ deferredModules.splice(i--, 1);
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ }
/******/ }
/******/
/******/ return result;
/******/ }
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // Promise = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ 11: 0
/******/ };
/******/
/******/ var deferredModules = [];
/******/
/******/ // script path function
/******/ function jsonpScriptSrc(chunkId) {
/******/ return __webpack_require__.p + "" + ({"1":"node_modules/6626c48a","2":"node_modules/4ba6caf4","3":"node_modules/9893b386","5":"pages/docs/_","6":"pages/docs/index","7":"pages/docs/namespaces","8":"pages/index","9":"pages/ui/build/index","10":"pages/ui/run/index"}[chunkId]||chunkId) + "." + {"1":"b0e7baf","2":"98fa9a5","3":"f49b8ee","5":"fd88497","6":"2075297","7":"6005d1e","8":"ebae4f4","9":"0f4585a","10":"e0a568d"}[chunkId] + ".js"
/******/ }
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // This file contains only the entry chunk.
/******/ // The chunk loading function for additional chunks
/******/ __webpack_require__.e = function requireEnsure(chunkId) {
/******/ var promises = [];
/******/
/******/
/******/ // JSONP chunk loading for javascript
/******/
/******/ var installedChunkData = installedChunks[chunkId];
/******/ if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ // a Promise means "currently loading".
/******/ if(installedChunkData) {
/******/ promises.push(installedChunkData[2]);
/******/ } else {
/******/ // setup Promise in chunk cache
/******/ var promise = new Promise(function(resolve, reject) {
/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ });
/******/ promises.push(installedChunkData[2] = promise);
/******/
/******/ // start chunk loading
/******/ var script = document.createElement('script');
/******/ var onScriptComplete;
/******/
/******/ script.charset = 'utf-8';
/******/ script.timeout = 120;
/******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ }
/******/ script.src = jsonpScriptSrc(chunkId);
/******/
/******/ // create error before stack unwound to get useful stacktrace later
/******/ var error = new Error();
/******/ onScriptComplete = function (event) {
/******/ // avoid mem leaks in IE.
/******/ script.onerror = script.onload = null;
/******/ clearTimeout(timeout);
/******/ var chunk = installedChunks[chunkId];
/******/ if(chunk !== 0) {
/******/ if(chunk) {
/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ var realSrc = event && event.target && event.target.src;
/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ error.name = 'ChunkLoadError';
/******/ error.type = errorType;
/******/ error.request = realSrc;
/******/ chunk[1](error);
/******/ }
/******/ installedChunks[chunkId] = undefined;
/******/ }
/******/ };
/******/ var timeout = setTimeout(function(){
/******/ onScriptComplete({ type: 'timeout', target: script });
/******/ }, 120000);
/******/ script.onerror = script.onload = onScriptComplete;
/******/ document.head.appendChild(script);
/******/ }
/******/ }
/******/ return Promise.all(promises);
/******/ };
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/_nuxt/";
/******/
/******/ // on error function for async loading
/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ jsonpArray.push = webpackJsonpCallback;
/******/ jsonpArray = jsonpArray.slice();
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ // run deferred modules from other chunks
/******/ checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ([]);

View File

@ -1,9 +1,135 @@
<!DOCTYPE html>
<html>
<head>
<title>NoSQLBench</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="description" name="description" content="Docs App for NoSQLBench"><link data-n-head="1" rel="icon" type="image/x-icon" href="/favicon.ico"><link data-n-head="1" rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&amp;display=swap"><link data-n-head="1" rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link rel="preload" href="/_nuxt/runtime.b4a6781.js" as="script"><link rel="preload" href="/_nuxt/node_modules/commons.f448a43.js" as="script"><link rel="preload" href="/_nuxt/app.dfe1a1f.js" as="script">
<title>NoSQLBench</title>
<meta data-n-head="1" charset="utf-8">
<meta data-n-head="1" name="viewport"
content="width=device-width,initial-scale=1">
<meta data-n-head="1" data-hid="description" name="description"
content="Docs App for NoSQLBench">
<link data-n-head="1" rel="icon" type="image/x-icon"
href="/favicon.ico">
<link data-n-head="1" rel="stylesheet" type="text/css"
href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&amp;display=swap">
<link data-n-head="1" rel="stylesheet" type="text/css"
href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
<link rel="preload" href="/_nuxt/runtime.c50e81a.js" as="script">
<link rel="preload" href="/_nuxt/vendors/commons.0d00bcd.js"
as="script">
<link rel="preload" href="/_nuxt/app.4c18aa8.js" as="script">
</head>
<body>
<div id="__nuxt"><style>#nuxt-loading { background: white; visibility: hidden; opacity: 0; position: absolute; left: 0; right: 0; top: 0; bottom: 0; display: flex; justify-content: center; align-items: center; flex-direction: column; animation: nuxtLoadingIn 10s ease; -webkit-animation: nuxtLoadingIn 10s ease; animation-fill-mode: forwards; overflow: hidden;}@keyframes nuxtLoadingIn { 0% {visibility: hidden;opacity: 0; } 20% {visibility: visible;opacity: 0; } 100% {visibility: visible;opacity: 1; }}@-webkit-keyframes nuxtLoadingIn { 0% {visibility: hidden;opacity: 0; } 20% {visibility: visible;opacity: 0; } 100% {visibility: visible;opacity: 1; }}#nuxt-loading>div,#nuxt-loading>div:after { border-radius: 50%; width: 5rem; height: 5rem;}#nuxt-loading>div { font-size: 10px; position: relative; text-indent: -9999em; border: .5rem solid #F5F5F5; border-left: .5rem solid #fff; -webkit-transform: translateZ(0); -ms-transform: translateZ(0); transform: translateZ(0); -webkit-animation: nuxtLoading 1.1s infinite linear; animation: nuxtLoading 1.1s infinite linear;}#nuxt-loading.error>div { border-left: .5rem solid #ff4500; animation-duration: 5s;}@-webkit-keyframes nuxtLoading { 0% {-webkit-transform: rotate(0deg);transform: rotate(0deg); } 100% {-webkit-transform: rotate(360deg);transform: rotate(360deg); }}@keyframes nuxtLoading { 0% {-webkit-transform: rotate(0deg);transform: rotate(0deg); } 100% {-webkit-transform: rotate(360deg);transform: rotate(360deg); }}</style><script>window.addEventListener('error', function () { var e = document.getElementById('nuxt-loading'); if (e) {e.className += ' error'; }});</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{},staticAssetsBase:void 0}</script>
<script src="/_nuxt/runtime.b4a6781.js"></script><script src="/_nuxt/node_modules/commons.f448a43.js"></script><script src="/_nuxt/app.dfe1a1f.js"></script></body>
<div id="__nuxt">
<style>#nuxt-loading {
background: white;
visibility: hidden;
opacity: 0;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
animation: nuxtLoadingIn 10s ease;
-webkit-animation: nuxtLoadingIn 10s ease;
animation-fill-mode: forwards;
overflow: hidden;
}
@keyframes nuxtLoadingIn {
0% {
visibility: hidden;
opacity: 0;
}
20% {
visibility: visible;
opacity: 0;
}
100% {
visibility: visible;
opacity: 1;
}
}
@-webkit-keyframes nuxtLoadingIn {
0% {
visibility: hidden;
opacity: 0;
}
20% {
visibility: visible;
opacity: 0;
}
100% {
visibility: visible;
opacity: 1;
}
}
#nuxt-loading > div, #nuxt-loading > div:after {
border-radius: 50%;
width: 5rem;
height: 5rem;
}
#nuxt-loading > div {
font-size: 10px;
position: relative;
text-indent: -9999em;
border: .5rem solid #F5F5F5;
border-left: .5rem solid #fff;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation: nuxtLoading 1.1s infinite linear;
animation: nuxtLoading 1.1s infinite linear;
}
#nuxt-loading.error > div {
border-left: .5rem solid #ff4500;
animation-duration: 5s;
}
@-webkit-keyframes nuxtLoading {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes nuxtLoading {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}</style>
<script>window.addEventListener('error', function () {
var e = document.getElementById('nuxt-loading');
if (e) {
e.className += ' error';
}
});</script>
<div id="nuxt-loading" aria-live="polite" role="status">
<div>Loading...</div>
</div>
</div>
<script>window.__NUXT__ = {
config: {},
staticAssetsBase: void 0
}</script>
<script src="/_nuxt/runtime.c50e81a.js"></script>
<script src="/_nuxt/vendors/commons.0d00bcd.js"></script>
<script src="/_nuxt/app.4c18aa8.js"></script>
</body>
</html>

View File

@ -1,3 +1,4 @@
name: doc1
description: a quintessential description
scenarios:
@ -6,22 +7,29 @@ scenarios:
- run driver=stdout alias=step2
schema-only:
- run driver=blah tags=phase:schema
tags:
atagname: atagvalue
name: doc1
statements:
- s1
- s2
bindings:
b1: b1d
b2: b2d
params:
param1: value1
---
name: doc2
tags:
root1: val1
root2: val2
blocks:
- name: block1
tags:
@ -41,8 +49,10 @@ blocks:
statements:
s13: statement thirteen
s14: statement fourteen
params:
foobar: beez
bindings:
b11: b11d
b12: b12d