changeset 80:7c93e17b1111

more fixes, more original code uncommented
author drewp@bigasterisk.com
date Wed, 17 Nov 2021 15:00:17 -0800
parents 0c188ed3bcd8
children 099b62d6d0b3
files package.json pnpm-lock.yaml rollup.config.js src/index.ts src/streamed_graph_client.ts tsconfig.json
diffstat 6 files changed, 158 insertions(+), 103 deletions(-) [+]
line wrap: on
line diff
--- 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",
--- 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
--- 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
--- 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`
-//         <div id="ui">
-//           <span class="expander"
-//             ><button on-click="toggleExpand">{{expandAction}}</button></span
-//           >
-//           StreamedGraph <a href="{{url}}">[source]</a>: {{status}}
-//         </div>
-//         <div id="graphView"></div>
-//       `
-//     ;
-//   }
+  render()  {
+    const expandAction = this.expanded ? '-' : '+';
+    return html`
+         <div id="ui">
+           <span class="expander"
+             ><button @click="${this.toggleExpand}">${expandAction}</button></span
+           >
+           StreamedGraph <a href="${this.url}">[source]</a>: ${this.status}
+         </div>
+         <div id="graphView"></div>
+       `
+     ;
+   }
 
-//   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;
--- 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<Record<string, string>>,
-//     staticGraphUrls: Array<string>
-//   ) {
-//     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<Record<string, string>>,
+    staticGraphUrls: Array<string>
+  ) {
+    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<void> {
 //     return new Promise<void>((resolve, reject) => {
@@ -139,5 +139,5 @@
 //           reject();
 //         });
 //     });
-//   }
-// }
+  // }
+}
--- 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"]
 }