# HG changeset patch # User drewp@bigasterisk.com # Date 1637190017 28800 # Node ID 7c93e17b1111fbe3eb175b689e5ffe98a58aed90 # Parent 0c188ed3bcd8aba762090d48c775fabe07e0153a more fixes, more original code uncommented diff -r 0c188ed3bcd8 -r 7c93e17b1111 package.json --- a/package.json Wed Nov 17 13:01:08 2021 -0800 +++ b/package.json Wed Nov 17 15:00:17 2021 -0800 @@ -11,10 +11,10 @@ "test_forever": "jest --watch" }, "dependencies": { - "lit": "^2.0.2", "@types/jsonld": "^1.5.6", "@types/n3": "^1.10.4", "jsonld": "^5.2.0", + "lit": "^2.0.2", "n3": "^1.11.2", "rdf-js": "^4.0.2" }, @@ -22,14 +22,15 @@ "@rollup/plugin-commonjs": "^21.0.1", "@rollup/plugin-node-resolve": "^13.0.6", "@rollup/plugin-replace": "^3.0.0", + "@rollup/plugin-typescript": "^8.3.0", "@types/jest": "^27.0.2", "@types/rollup-plugin-postcss": "^3.1.4", "jest": "^27.3.1", "node-globals": "^0.1.5", "rollup": "^2.60.0", "rollup-plugin-node-builtins": "^2.1.2", + "rollup-plugin-node-globals": "^1.4.0", "rollup-plugin-postcss": "^4.0.1", - "@rollup/plugin-typescript": "^8.3.0", "stylus": "^0.55.0", "ts-jest": "^27.0.7", "tslib": "^2.3.1", diff -r 0c188ed3bcd8 -r 7c93e17b1111 pnpm-lock.yaml --- a/pnpm-lock.yaml Wed Nov 17 13:01:08 2021 -0800 +++ b/pnpm-lock.yaml Wed Nov 17 15:00:17 2021 -0800 @@ -16,6 +16,7 @@ node-globals: 0.1.5 rollup: 2.60.0 rollup-plugin-node-builtins: 2.1.2 + rollup-plugin-node-globals: 1.4.0 rollup-plugin-postcss: 4.0.1 stylus: 0.55.0 ts-jest: 27.0.7_2c4ca6574207836d1023f54689cc81ac @@ -510,7 +511,7 @@ '@rollup/pluginutils': 3.1.0_rollup@2.60.0 commondir: 1.0.1 estree-walker: 2.0.2 - glob: 7.1.6 + glob: 7.2.0 is-reference: 1.2.1 magic-string: 0.25.7 resolve: 1.20.0 @@ -638,10 +639,10 @@ dev: true resolution: integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - /@types/estree/0.0.42: - dev: true - resolution: - integrity: sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ== + /@types/estree/0.0.50: + dev: true + resolution: + integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== /@types/graceful-fs/4.1.5: dependencies: '@types/node': 13.1.7 @@ -780,6 +781,13 @@ hasBin: true resolution: integrity: sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + /acorn/5.7.4: + dev: true + engines: + node: '>=0.4.0' + hasBin: true + resolution: + integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== /acorn/7.1.0: dev: true engines: @@ -1707,10 +1715,10 @@ hasBin: true resolution: integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - /balanced-match/1.0.0: - dev: true - resolution: - integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + /balanced-match/1.0.2: + dev: true + resolution: + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== /base/0.11.2: dependencies: cache-base: 1.0.1 @@ -1764,7 +1772,7 @@ integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24= /brace-expansion/1.1.11: dependencies: - balanced-match: 1.0.0 + balanced-match: 1.0.2 concat-map: 0.0.1 dev: true resolution: @@ -2793,6 +2801,10 @@ node: '>=4.0' resolution: integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + /estree-walker/0.5.2: + dev: true + resolution: + integrity: sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig== /estree-walker/0.6.1: dev: true resolution: @@ -3182,6 +3194,17 @@ dev: true resolution: integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + /glob/7.2.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + resolution: + integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== /globals/11.12.0: dev: true engines: @@ -3678,7 +3701,7 @@ integrity: sha1-IHurkWOEmcB7Kt8kCkGochADRXU= /is-reference/1.2.1: dependencies: - '@types/estree': 0.0.42 + '@types/estree': 0.0.50 dev: true resolution: integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== @@ -4615,9 +4638,15 @@ dev: true resolution: integrity: sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + /magic-string/0.22.5: + dependencies: + vlq: 0.2.3 + dev: true + resolution: + integrity: sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== /magic-string/0.25.7: dependencies: - sourcemap-codec: 1.4.7 + sourcemap-codec: 1.4.8 dev: true resolution: integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== @@ -5200,6 +5229,10 @@ dev: true resolution: integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + /path-parse/1.0.7: + dev: true + resolution: + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== /path-platform/0.11.15: dev: true engines: @@ -5978,7 +6011,7 @@ /resolve/1.20.0: dependencies: is-core-module: 2.8.0 - path-parse: 1.0.6 + path-parse: 1.0.7 dev: true resolution: integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -6012,6 +6045,17 @@ dev: true resolution: integrity: sha1-JKH+1KQyV7a2Q3HYq8bOGrFFl+k= + /rollup-plugin-node-globals/1.4.0: + dependencies: + acorn: 5.7.4 + buffer-es6: 4.9.3 + estree-walker: 0.5.2 + magic-string: 0.22.5 + process-es6: 0.11.6 + rollup-pluginutils: 2.8.2 + dev: true + resolution: + integrity: sha512-xRkB+W/m1KLIzPUmG0ofvR+CPNcvuCuNdjVBVS7ALKSxr3EDhnzNceGkGi1m8MToSli13AzKFYH4ie9w3I5L3g== /rollup-plugin-postcss/4.0.1: dependencies: chalk: 4.1.2 @@ -6291,10 +6335,10 @@ node: '>= 8' resolution: integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - /sourcemap-codec/1.4.7: - dev: true - resolution: - integrity: sha512-RuN23NzhAOuUtaivhcrjXx1OPXsFeH9m5sI373/U7+tGLKihjUyboZAzOadytMjnqHp1f45RGk1IzDKCpDpSYA== + /sourcemap-codec/1.4.8: + dev: true + resolution: + integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== /split-string/3.1.0: dependencies: extend-shallow: 3.0.2 @@ -6837,6 +6881,10 @@ node: '>= 0.10.0' resolution: integrity: sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + /vlq/0.2.3: + dev: true + resolution: + integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== /vm-browserify/0.0.4: dependencies: indexof: 0.0.1 @@ -7042,6 +7090,7 @@ rdf-js: ^4.0.2 rollup: ^2.60.0 rollup-plugin-node-builtins: ^2.1.2 + rollup-plugin-node-globals: ^1.4.0 rollup-plugin-postcss: ^4.0.1 stylus: ^0.55.0 ts-jest: ^27.0.7 diff -r 0c188ed3bcd8 -r 7c93e17b1111 rollup.config.js --- a/rollup.config.js Wed Nov 17 13:01:08 2021 -0800 +++ b/rollup.config.js Wed Nov 17 15:00:17 2021 -0800 @@ -1,7 +1,10 @@ -import builtins from "rollup-plugin-node-builtins"; +// import copy from 'rollup-plugin-copy'; // import postcss from "rollup-plugin-postcss"; +import builtins from 'rollup-plugin-node-builtins'; +import commonjs from '@rollup/plugin-commonjs'; import resolve from "@rollup/plugin-node-resolve"; import typescript from "@rollup/plugin-typescript"; +import globals from 'rollup-plugin-node-globals'; const workaround_jsonld_module_system_picker = "process = {version: '1.0.0'}"; const workaround_some_browser_detector = "global = window"; @@ -24,19 +27,23 @@ input: "src/index.ts", output: { file: "build/lib.bundle.js", - format: "esm", + format: "es", sourcemap: true, // intro: `const ${workaround_some_browser_detector}, ${workaround_jsonld_module_system_picker};` }, // external: moduleIsntLocal, plugins: [ - // builtins(), - // resolve({ - // extensions: [".js", ".ts"], - // browser: true, - // }), + builtins(), + resolve({ + extensions: [".js", ".ts"], + browser: true, + + }), + commonjs(), + globals(), typescript({ - outDir: "build" + outDir: "build", + declaration: true }), // postcss({ // inject: false diff -r 0c188ed3bcd8 -r 7c93e17b1111 src/index.ts --- a/src/index.ts Wed Nov 17 13:01:08 2021 -0800 +++ b/src/index.ts Wed Nov 17 15:00:17 2021 -0800 @@ -5,7 +5,7 @@ // import { GraphView } from './graph_view'; -// import { StreamedGraphClient } from './streamed_graph_client'; +import { StreamedGraphClient } from './streamed_graph_client'; // import style from './style.styl'; // export * from "./graph_queries"; @@ -17,83 +17,81 @@ @customElement("streamed-graph") export class StreamedGraph extends LitElement { -// @property({ type: String }) -// url: string = ""; + + @property({ type: String }) + url: string = ""; // @property({ type: Object }) // graph!: VersionedGraph; -// @property({ type: Boolean }) -// expanded: boolean = false; + @property({ type: Boolean }) + expanded: boolean = false; + -// // @computed("expanded") -// // get expandAction() { -// // return this.expanded ? "-" : "+"; -// // } + @property({ type: String }) + status: string = ""; -// @property({ type: String }) -// status: string = ""; - -// sg!: StreamedGraphClient; + sg!: StreamedGraphClient; // graphViewEl!: Element; // graphViewDirty = true; -// static get template() { -// return html` -//
-// -// StreamedGraph [source]: {{status}} -//
-//
-// ` -// ; -// } + render() { + const expandAction = this.expanded ? '-' : '+'; + return html` +
+ + StreamedGraph [source]: ${this.status} +
+
+ ` + ; + } -// connectedCallback() { -// super.connectedCallback(); + connectedCallback() { + super.connectedCallback(); // const emptyStore = new Store(); // this.graph = { version: -1, store: emptyStore }; // this.graphViewEl = (this.shadowRoot as ShadowRoot).getElementById( // "graphView" // ) as Element; -// this._onUrl(this.url); // todo: watch for changes and rebuild -// if (this.expanded) { + this._onUrl(this.url); // todo: watch for changes and rebuild + if (this.expanded) { // this.redrawGraph(); -// } -// } + } + } -// toggleExpand() { -// this.expanded = !this.expanded; + toggleExpand() { + this.expanded = !this.expanded; // if (this.expanded) { // this.redrawGraph(); // } else { // this.graphViewDirty = false; // this._graphAreaClose(); // } -// } + } // redrawGraph() { // this.graphViewDirty = true; // requestAnimationFrame(this._redrawLater.bind(this)); // } -// _onUrl(url: string) { -// if (this.sg) { -// this.sg.close(); -// } -// this.sg = new StreamedGraphClient( -// url, -// this.onGraphChanged.bind(this), -// function(st){},//this.set.bind(this, "status"), -// [], //window.NS, -// [] -// ); -// } + _onUrl(url: string) { + if (this.sg) { + this.sg.close(); + } + this.sg = new StreamedGraphClient( + url, + this.onGraphChanged.bind(this), + (st) => {this.status = st}, + [], //window.NS, + [] + ); + } -// onGraphChanged() { + onGraphChanged() { // this.graph = { // version: this.graph.version + 1, // store: this.sg.store @@ -104,7 +102,7 @@ // this.dispatchEvent( // new CustomEvent("graph-changed", { detail: { graph: this.graph } }) // ); -// } + } // _redrawLater() { // if (!this.graphViewDirty) return; diff -r 0c188ed3bcd8 -r 7c93e17b1111 src/streamed_graph_client.ts --- a/src/streamed_graph_client.ts Wed Nov 17 13:01:08 2021 -0800 +++ b/src/streamed_graph_client.ts Wed Nov 17 15:00:17 2021 -0800 @@ -2,36 +2,36 @@ // import { eachJsonLdQuad } from "./json_ld_quads"; // import { N3Store } from "n3"; -// import { Store } from "n3"; +import { Store } from "n3"; -// export class StreamedGraphClient { +export class StreamedGraphClient { // // holds a n3 Store, which is synced to a server-side // // store that sends patches over SSE -// onStatus: (msg: string) => void; -// onGraphChanged: () => void; -// store: N3Store; + onStatus: (msg: string) => void = function(m){}; + onGraphChanged: () => void = function(){}; + store: Store; // _deletedCount: number = 0; // events!: EventSource; -// constructor( -// eventsUrl: string, -// onGraphChanged: () => void, -// onStatus: (status: string) => void, -// prefixes: Array>, -// staticGraphUrls: Array -// ) { -// console.log("new StreamedGraph", eventsUrl); -// this.onStatus = onStatus; -// this.onGraphChanged = onGraphChanged; -// this.onStatus("startup..."); + constructor( + eventsUrl: string, + onGraphChanged: () => void, + onStatus: (status: string) => void, + prefixes: Array>, + staticGraphUrls: Array + ) { + console.log("new StreamedGraph", eventsUrl); + this.onStatus = onStatus; + this.onGraphChanged = onGraphChanged; + this.onStatus("startup..."); -// this.store = new Store(); + this.store = new Store(); // // // Object.keys(prefixes).forEach((prefix) => { // // // this.store.setPrefix(prefix, prefixes[prefix]); // // // }); -// this.connect(eventsUrl); + this.connect(eventsUrl); // this.reconnectOnWake(); // // staticGraphUrls.forEach((url) => { @@ -40,7 +40,7 @@ // // // parse with n3, add to output // // }); // // }); -// } + } // _vacuum() { // // workaround for the growing _ids map @@ -52,7 +52,7 @@ // //window.addEventListener('focus', function() { this.connect(eventsUrl); }.bind(this)); // } -// connect(eventsUrl: string) { + connect(eventsUrl: string) { // // need to exit here if this obj has been replaced // this.onStatus("start connect..."); @@ -88,8 +88,8 @@ // this.onStatus(`synced ${this.store.size}`); // this.onGraphChanged(); // }); -// this.onStatus("connecting..."); -// } + this.onStatus("connecting..."); + } // // these need some locks // async replaceFullGraph(jsonLdText: string) { @@ -115,11 +115,11 @@ // } // } -// close() { + close() { // if (this.events) { // this.events.close(); // } -// } + } // async testEventUrl(eventsUrl: string): Promise { // return new Promise((resolve, reject) => { @@ -139,5 +139,5 @@ // reject(); // }); // }); -// } -// } + // } +} diff -r 0c188ed3bcd8 -r 7c93e17b1111 tsconfig.json --- a/tsconfig.json Wed Nov 17 13:01:08 2021 -0800 +++ b/tsconfig.json Wed Nov 17 15:00:17 2021 -0800 @@ -20,7 +20,7 @@ "experimentalDecorators": true, "allowJs": true, "esModuleInterop": true, - "traceResolution": true, + // "traceResolution": true, // "allowSyntheticDefaultImports": true, // "rootDir": ".", // "outDir": "./build", @@ -28,6 +28,6 @@ // "emitDecoratorMetadata": true, // "lib": [ "es6", "dom" ], }, - "include": ["src/**/*.ts"] + "include": ["src/**/*.ts", "demo/demo.ts"], // "exclude": ["src/**/*.test.ts"] }