bitwrench 2.0.25 → 2.0.31

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.
Files changed (75) hide show
  1. package/README.md +10 -4
  2. package/dist/bitwrench-bccl.cjs.js +1 -1
  3. package/dist/bitwrench-bccl.cjs.min.js +1 -1
  4. package/dist/bitwrench-bccl.cjs.min.js.gz +0 -0
  5. package/dist/bitwrench-bccl.esm.js +1 -1
  6. package/dist/bitwrench-bccl.esm.min.js +1 -1
  7. package/dist/bitwrench-bccl.esm.min.js.gz +0 -0
  8. package/dist/bitwrench-bccl.umd.js +1 -1
  9. package/dist/bitwrench-bccl.umd.min.js +1 -1
  10. package/dist/bitwrench-bccl.umd.min.js.gz +0 -0
  11. package/dist/bitwrench-code-edit.cjs.js +1 -1
  12. package/dist/bitwrench-code-edit.cjs.min.js +1 -1
  13. package/dist/bitwrench-code-edit.es5.js +1 -1
  14. package/dist/bitwrench-code-edit.es5.min.js +1 -1
  15. package/dist/bitwrench-code-edit.esm.js +1 -1
  16. package/dist/bitwrench-code-edit.esm.min.js +1 -1
  17. package/dist/bitwrench-code-edit.umd.js +1 -1
  18. package/dist/bitwrench-code-edit.umd.min.js +1 -1
  19. package/dist/bitwrench-code-edit.umd.min.js.gz +0 -0
  20. package/dist/bitwrench-debug.js +1 -1
  21. package/dist/bitwrench-debug.min.js +1 -1
  22. package/dist/bitwrench-lean.cjs.js +623 -155
  23. package/dist/bitwrench-lean.cjs.min.js +7 -7
  24. package/dist/bitwrench-lean.cjs.min.js.gz +0 -0
  25. package/dist/bitwrench-lean.es5.js +650 -157
  26. package/dist/bitwrench-lean.es5.min.js +5 -5
  27. package/dist/bitwrench-lean.es5.min.js.gz +0 -0
  28. package/dist/bitwrench-lean.esm.js +623 -155
  29. package/dist/bitwrench-lean.esm.min.js +6 -6
  30. package/dist/bitwrench-lean.esm.min.js.gz +0 -0
  31. package/dist/bitwrench-lean.umd.js +623 -155
  32. package/dist/bitwrench-lean.umd.min.js +7 -7
  33. package/dist/bitwrench-lean.umd.min.js.gz +0 -0
  34. package/dist/bitwrench-util-css.cjs.js +1 -1
  35. package/dist/bitwrench-util-css.cjs.min.js +1 -1
  36. package/dist/bitwrench-util-css.es5.js +1 -1
  37. package/dist/bitwrench-util-css.es5.min.js +1 -1
  38. package/dist/bitwrench-util-css.esm.js +1 -1
  39. package/dist/bitwrench-util-css.esm.min.js +1 -1
  40. package/dist/bitwrench-util-css.umd.js +1 -1
  41. package/dist/bitwrench-util-css.umd.min.js +1 -1
  42. package/dist/bitwrench-util-css.umd.min.js.gz +0 -0
  43. package/dist/bitwrench.cjs.js +621 -153
  44. package/dist/bitwrench.cjs.min.js +6 -6
  45. package/dist/bitwrench.cjs.min.js.gz +0 -0
  46. package/dist/bitwrench.css +1 -1
  47. package/dist/bitwrench.d.ts +18 -11
  48. package/dist/bitwrench.es5.js +647 -154
  49. package/dist/bitwrench.es5.min.js +6 -6
  50. package/dist/bitwrench.es5.min.js.gz +0 -0
  51. package/dist/bitwrench.esm.js +621 -153
  52. package/dist/bitwrench.esm.min.js +5 -5
  53. package/dist/bitwrench.esm.min.js.gz +0 -0
  54. package/dist/bitwrench.umd.js +621 -153
  55. package/dist/bitwrench.umd.min.js +6 -6
  56. package/dist/bitwrench.umd.min.js.gz +0 -0
  57. package/dist/builds.json +92 -92
  58. package/dist/bwserve.cjs.js +140 -7
  59. package/dist/bwserve.esm.js +141 -8
  60. package/dist/sri.json +45 -45
  61. package/docs/bitwrench-for-wasm.md +851 -0
  62. package/docs/bitwrench_api.md +133 -23
  63. package/docs/llm-bitwrench-guide.md +6 -5
  64. package/docs/state-management.md +27 -3
  65. package/docs/thinking-in-bitwrench.md +3 -2
  66. package/package.json +11 -9
  67. package/readme.html +17 -8
  68. package/src/bitwrench.d.ts +18 -11
  69. package/src/bitwrench.js +617 -148
  70. package/src/bwserve/bwclient.js +3 -3
  71. package/src/bwserve/client.js +26 -0
  72. package/src/bwserve/index.js +110 -3
  73. package/src/cli/attach.js +7 -5
  74. package/src/cli/serve.js +53 -10
  75. package/src/version.js +3 -3
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![License](https://img.shields.io/badge/License-BSD%202--Clause-blue.svg)](https://opensource.org/licenses/BSD-2-Clause)
4
4
  [![NPM version](https://img.shields.io/npm/v/bitwrench.svg?style=flat-square)](https://www.npmjs.com/package/bitwrench)
5
5
  [![CI](https://github.com/deftio/bitwrench/actions/workflows/ci.yml/badge.svg)](https://github.com/deftio/bitwrench/actions/workflows/ci.yml)
6
- [![Coverage](https://img.shields.io/badge/coverage-97.3%25-brightgreen.svg)](https://github.com/deftio/bitwrench)
6
+ [![Coverage](https://img.shields.io/badge/coverage-97.5%25-brightgreen.svg)](https://github.com/deftio/bitwrench)
7
7
 
8
8
  [![bitwrench](./images/bitwrench-logo-med.png)](https://deftio.github.io/bitwrench/pages/)
9
9
 
@@ -155,6 +155,11 @@ bw.sub('item-added', function(detail) {
155
155
  });
156
156
 
157
157
  bw.pub('item-added', { name: 'Widget' });
158
+
159
+ // Wildcard: listen to a group of related topics
160
+ bw.sub('item:*', function(detail, topic) {
161
+ console.log(topic, detail); // e.g. 'item:added', 'item:removed'
162
+ });
158
163
  ```
159
164
 
160
165
 
@@ -211,9 +216,10 @@ bw.toggleStyles(); // switch between primary and alternate palettes
211
216
  | `bw.patch(id, content)` | Update a specific element by id or UUID |
212
217
  | `bw.update(el)` | Re-render via the element's `o.render` function |
213
218
  | `bw.message(target, action, data)` | Dispatch a method call to a component's `el.bw` handle |
214
- | `bw.pub(topic, detail)` | Publish a message to subscribers |
215
- | `bw.sub(topic, handler)` | Subscribe to a topic; returns an unsub function |
216
- | `bw.inspect(target)` | Debug a component's state, handles, and metadata in the console |
219
+ | `bw.pub(topic, detail)` | Publish to subscribers (exact + wildcard matches) |
220
+ | `bw.sub(topic, handler, el?)` | Subscribe to topic (supports wildcard `'ns:*'`); returns unsub function |
221
+ | `bw.once(topic, handler, el?)` | One-shot subscribe; auto-unsub after first fire |
222
+ | `bw.inspect(target, depth)` | Introspect a DOM subtree with bitwrench metadata (state, handles, type) |
217
223
  | `bw.apply(msg)` | Apply a bwserve protocol message to the DOM |
218
224
 
219
225
  See the full [API Reference](https://deftio.github.io/bitwrench/pages/08-api-reference.html) for all functions.
@@ -1,4 +1,4 @@
1
- /*! bitwrench-bccl v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-bccl v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  'use strict';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- /*! bitwrench-bccl v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-bccl v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  "use strict";
3
3
  /**
4
4
  * Bitwrench v2 Components
Binary file
@@ -1,4 +1,4 @@
1
- /*! bitwrench-bccl v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-bccl v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  /**
3
3
  * Bitwrench v2 Components
4
4
  *
@@ -1,4 +1,4 @@
1
- /*! bitwrench-bccl v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-bccl v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  /**
3
3
  * Bitwrench v2 Components
4
4
  *
Binary file
@@ -1,4 +1,4 @@
1
- /*! bitwrench-bccl v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-bccl v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -1,4 +1,4 @@
1
- /*! bitwrench-bccl v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-bccl v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).bwBCCL={})}(this,function(e){"use strict";
3
3
  /**
4
4
  * Bitwrench v2 Components
Binary file
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
3
3
  /**
4
4
  * bitwrench-code-edit.js - syntax-highlighted contenteditable code editor addon
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).bwCodeEdit={})}(this,function(e){"use strict";
3
3
  /**
4
4
  * bitwrench-code-edit.js - syntax-highlighted contenteditable code editor addon
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  /**
3
3
  * bitwrench-code-edit.js - syntax-highlighted contenteditable code editor addon
4
4
  *
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  /**
3
3
  * bitwrench-code-edit.js - syntax-highlighted contenteditable code editor addon
4
4
  *
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).bwCodeEdit={})}(this,function(e){"use strict";
3
3
  /**
4
4
  * bitwrench-code-edit.js - syntax-highlighted contenteditable code editor addon
@@ -1,4 +1,4 @@
1
- /*! bitwrench-debug v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-debug v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -1,3 +1,3 @@
1
- /*! bitwrench-debug v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-debug v2.0.31 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).bwd=n()}(this,function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n={exports:{}};return function(e){!function(){var n={};function o(e){return new Promise(function(n,o){var t=document.createElement("script");t.src=e,t.onload=function(){n()},t.onerror=function(){o(new Error("Failed to load "+e))},document.head.appendChild(t)})}function t(e,n,o){if(!e||n>o)return null;var l={tag:e.tagName?e.tagName.toLowerCase():"#text"};if(e.id&&(l.id=e.id),e.className&&"string"==typeof e.className&&(l.cls=e.className.split(" ").slice(0,5).join(" ")),e.children&&e.children.length>0&&n<o){l.children=[];for(var i=0;i<Math.min(e.children.length,20);i++){var r=t(e.children[i],n+1,o);r&&l.children.push(r)}}return l}function l(e,n){if(e){var o=e.tag||"?";if(e.id&&(o+="#"+e.id),e.cls&&(o+="."+e.cls.split(" ").join(".")),console.log(" ".repeat(n)+o),e.children)for(var t=0;t<e.children.length;t++)l(e.children[t],n+1)}}var i={tree:function(e,n){e=e||"body",n=n||3;var o=document.querySelector(e);if(!o)return console.log('(no element found for "'+e+'")'),null;var i=t(o,0,n);return l(i,0),i},listen:function(e,o){var t=e+":::"+o;if(n[t])console.log("[bwd] already listening for "+o+" on "+e);else{var l=function(n){var t=n.target.closest?n.target.closest(e):null;t&&console.log("[bwd] "+o+" on "+e+" -> "+t.tagName+(t.id?"#"+t.id:"")+(t.textContent?' "'+t.textContent.slice(0,50).trim()+'"':""))};document.addEventListener(o,l,!0),n[t]={fn:l,event:o},console.log("[bwd] listening for "+o+" on "+e)}},unlisten:function(e,o){var t=e+":::"+o,l=n[t];l?(document.removeEventListener(l.event,l.fn,!0),delete n[t],console.log("[bwd] stopped listening for "+o+" on "+e)):console.log("[bwd] no listener for "+o+" on "+e)},state:function(e){e=e||".bw_lc";for(var n=document.querySelectorAll(e),o=[],t=0;t<n.length;t++){var l=n[t],i="";"undefined"!=typeof window&&window.bw&&window.bw.getUUID&&(i=window.bw.getUUID(l)||""),o.push({id:l.id||"",uuid:i,state:l._bw_state||null})}return 0===o.length?console.log('[bwd] no stateful elements found for "'+e+'"'):"function"==typeof console.table?console.table(o):console.log(o),o},screenshot:function(e){e=e||"body";var n=document.querySelector(e);return n?("undefined"!=typeof window&&window.html2canvas?Promise.resolve(window.html2canvas):o("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js").then(function(){return window.html2canvas})).then(function(o){return console.log("[bwd] capturing "+e+" ..."),o(n,{useCORS:!0})}).then(function(e){var n="screenshot-"+Date.now()+".png";e.toBlob(function(e){if("undefined"!=typeof window&&window.bw&&window.bw.saveClientFile)window.bw.saveClientFile(n,e);else{var o=document.createElement("a");o.href=URL.createObjectURL(e),o.download=n,o.click(),URL.revokeObjectURL(o.href)}console.log("[bwd] saved: "+n)})}).catch(function(e){console.error("[bwd] screenshot failed: "+e.message)}):(console.log('[bwd] no element found for "'+e+'"'),Promise.resolve(null))},_listeners:n};function r(){console.log("[bwd] bitwrench debug toolkit ready"),console.log(" bwd.tree(sel?, depth?) -- print DOM tree"),console.log(" bwd.listen(sel, event) -- log events"),console.log(" bwd.unlisten(sel, event) -- stop logging"),console.log(" bwd.state(sel?) -- dump stateful elements"),console.log(" bwd.screenshot(sel?) -- capture screenshot")}e.exports&&(e.exports=i),"undefined"!=typeof window&&(window.bwd=i),"undefined"!=typeof window&&(window.bw&&window.bw.version?r():(console.log("[bwd] bitwrench not detected, loading from CDN..."),o("https://cdn.jsdelivr.net/npm/bitwrench@2/dist/bitwrench.umd.min.js").then(function(){r()}).catch(function(e){console.warn("[bwd] could not load bitwrench: "+e.message),console.log("[bwd] toolkit ready (limited -- bw.* not available)"),console.log(" bwd.tree, bwd.listen, bwd.unlisten still work")})))}()}(n),e(n.exports)});
3
3
  //# sourceMappingURL=bitwrench-debug.min.js.map