@openelement/core 0.41.0-alpha.1 → 0.41.0-alpha.2

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.
package/src/csr.js CHANGED
@@ -6,9 +6,10 @@
6
6
  *
7
7
  * ADR-0109 Phase 1: split @openelement/core into static, hydrate, and csr.
8
8
  */ export * from './static.js';
9
- export { applyBindingDescriptor } from './binding-activation.js';
9
+ export { bindAttr, bindClass, bindConditional, bindEvent, bindHtml, bindList, bindRef, bindRender, bindStaticAttr, bindStaticBoolean, bindStaticProp, bindStaticStyle, bindText } from './binding-descriptor.js';
10
+ export { applyBindingDescriptor, commitBindings, registerBindingKind } from './binding-activation.js';
10
11
  // Full DOM renderer
11
12
  export { applyProps, collectPropBindings, renderToDom } from './jsx-render-dom.js';
12
13
  // Event hydration (DOM-specific parts not already in static.ts)
13
14
  export { collectEventBindings, eventRecordsToDescriptors, hydrateEventMarkers } from './event-hydration.js';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9jc3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAb3BlbmVsZW1lbnQvY29yZS9jc3IgLSBDbGllbnQtc2lkZSByZW5kZXJpbmcgcnVudGltZSBzdXJmYWNlLlxuICpcbiAqIEluY2x1ZGVzIHRoZSBzdGF0aWMgcmVuZGVyaW5nIHN1cmZhY2UgcGx1cyB0aGUgZnVsbCBET00gcmVuZGVyZXIgYW5kIGV2ZW50XG4gKiBoeWRyYXRpb24gaGVscGVycy4gVXNlZCBmb3IgQ1NSIGZhbGxiYWNrcyBhbmQgcHVyZSBpc2xhbmRzLlxuICpcbiAqIEFEUi0wMTA5IFBoYXNlIDE6IHNwbGl0IEBvcGVuZWxlbWVudC9jb3JlIGludG8gc3RhdGljLCBoeWRyYXRlLCBhbmQgY3NyLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3RhdGljLmpzJztcblxuLy8gQmluZGluZyBsYXllclxuZXhwb3J0IHR5cGUgeyBCaW5kaW5nRGVzY3JpcHRvciwgQmluZGluZ0Rpc3Bvc2UsIEJpbmRpbmdMaWZlY3ljbGUgfSBmcm9tICcuL2JpbmRpbmctZGVzY3JpcHRvci5qcyc7XG5leHBvcnQgeyBhcHBseUJpbmRpbmdEZXNjcmlwdG9yIH0gZnJvbSAnLi9iaW5kaW5nLWFjdGl2YXRpb24uanMnO1xuXG4vLyBGdWxsIERPTSByZW5kZXJlclxuZXhwb3J0IHsgYXBwbHlQcm9wcywgY29sbGVjdFByb3BCaW5kaW5ncywgcmVuZGVyVG9Eb20gfSBmcm9tICcuL2pzeC1yZW5kZXItZG9tLmpzJztcblxuLy8gRXZlbnQgaHlkcmF0aW9uIChET00tc3BlY2lmaWMgcGFydHMgbm90IGFscmVhZHkgaW4gc3RhdGljLnRzKVxuZXhwb3J0IHtcbiAgY29sbGVjdEV2ZW50QmluZGluZ3MsXG4gIGV2ZW50UmVjb3Jkc1RvRGVzY3JpcHRvcnMsXG4gIGh5ZHJhdGVFdmVudE1hcmtlcnMsXG59IGZyb20gJy4vZXZlbnQtaHlkcmF0aW9uLmpzJztcbmV4cG9ydCB0eXBlIHsgRXZlbnRCaW5kaW5nLCBFdmVudEJpbmRpbmdSZWNvcmQgfSBmcm9tICcuL2V2ZW50LWh5ZHJhdGlvbi5qcyc7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Q0FPQyxHQUVELGNBQWMsY0FBYztBQUk1QixTQUFTLHNCQUFzQixRQUFRLDBCQUEwQjtBQUVqRSxvQkFBb0I7QUFDcEIsU0FBUyxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxRQUFRLHNCQUFzQjtBQUVuRixnRUFBZ0U7QUFDaEUsU0FDRSxvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLG1CQUFtQixRQUNkLHVCQUF1QiJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9jc3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAb3BlbmVsZW1lbnQvY29yZS9jc3IgLSBDbGllbnQtc2lkZSByZW5kZXJpbmcgcnVudGltZSBzdXJmYWNlLlxuICpcbiAqIEluY2x1ZGVzIHRoZSBzdGF0aWMgcmVuZGVyaW5nIHN1cmZhY2UgcGx1cyB0aGUgZnVsbCBET00gcmVuZGVyZXIgYW5kIGV2ZW50XG4gKiBoeWRyYXRpb24gaGVscGVycy4gVXNlZCBmb3IgQ1NSIGZhbGxiYWNrcyBhbmQgcHVyZSBpc2xhbmRzLlxuICpcbiAqIEFEUi0wMTA5IFBoYXNlIDE6IHNwbGl0IEBvcGVuZWxlbWVudC9jb3JlIGludG8gc3RhdGljLCBoeWRyYXRlLCBhbmQgY3NyLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3RhdGljLmpzJztcblxuLy8gQmluZGluZyBsYXllclxuZXhwb3J0IHR5cGUge1xuICBCaW5kaW5nRGVzY3JpcHRvcixcbiAgQmluZGluZ0Rpc3Bvc2UsXG4gIEJpbmRpbmdMaWZlY3ljbGUsXG4gIEJpbmRpbmdSZW5kZXJlcixcbn0gZnJvbSAnLi9iaW5kaW5nLWRlc2NyaXB0b3IuanMnO1xuZXhwb3J0IHtcbiAgYmluZEF0dHIsXG4gIGJpbmRDbGFzcyxcbiAgYmluZENvbmRpdGlvbmFsLFxuICBiaW5kRXZlbnQsXG4gIGJpbmRIdG1sLFxuICBiaW5kTGlzdCxcbiAgYmluZFJlZixcbiAgYmluZFJlbmRlcixcbiAgYmluZFN0YXRpY0F0dHIsXG4gIGJpbmRTdGF0aWNCb29sZWFuLFxuICBiaW5kU3RhdGljUHJvcCxcbiAgYmluZFN0YXRpY1N0eWxlLFxuICBiaW5kVGV4dCxcbn0gZnJvbSAnLi9iaW5kaW5nLWRlc2NyaXB0b3IuanMnO1xuZXhwb3J0IHtcbiAgYXBwbHlCaW5kaW5nRGVzY3JpcHRvcixcbiAgY29tbWl0QmluZGluZ3MsXG4gIHJlZ2lzdGVyQmluZGluZ0tpbmQsXG59IGZyb20gJy4vYmluZGluZy1hY3RpdmF0aW9uLmpzJztcblxuLy8gRnVsbCBET00gcmVuZGVyZXJcbmV4cG9ydCB7IGFwcGx5UHJvcHMsIGNvbGxlY3RQcm9wQmluZGluZ3MsIHJlbmRlclRvRG9tIH0gZnJvbSAnLi9qc3gtcmVuZGVyLWRvbS5qcyc7XG5cbi8vIEV2ZW50IGh5ZHJhdGlvbiAoRE9NLXNwZWNpZmljIHBhcnRzIG5vdCBhbHJlYWR5IGluIHN0YXRpYy50cylcbmV4cG9ydCB7XG4gIGNvbGxlY3RFdmVudEJpbmRpbmdzLFxuICBldmVudFJlY29yZHNUb0Rlc2NyaXB0b3JzLFxuICBoeWRyYXRlRXZlbnRNYXJrZXJzLFxufSBmcm9tICcuL2V2ZW50LWh5ZHJhdGlvbi5qcyc7XG5leHBvcnQgdHlwZSB7IEV2ZW50QmluZGluZywgRXZlbnRCaW5kaW5nUmVjb3JkIH0gZnJvbSAnLi9ldmVudC1oeWRyYXRpb24uanMnO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0NBT0MsR0FFRCxjQUFjLGNBQWM7QUFTNUIsU0FDRSxRQUFRLEVBQ1IsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsRUFDZixRQUFRLFFBQ0gsMEJBQTBCO0FBQ2pDLFNBQ0Usc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCxtQkFBbUIsUUFDZCwwQkFBMEI7QUFFakMsb0JBQW9CO0FBQ3BCLFNBQVMsVUFBVSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsUUFBUSxzQkFBc0I7QUFFbkYsZ0VBQWdFO0FBQ2hFLFNBQ0Usb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixtQkFBbUIsUUFDZCx1QkFBdUIifQ==
@@ -10,6 +10,7 @@ import { isSignalLike } from '@openelement/signal';
10
10
  import { isComponentCtor, isVNode } from './vnode.js';
11
11
  import { DATA_EID } from '@openelement/protocol/hydration-markers';
12
12
  import { applyBindingDescriptor } from './binding-activation.js';
13
+ import { bindEvent } from './binding-descriptor.js';
13
14
  import { eventMarkerId, eventTypeFromProp } from './event-marker.js';
14
15
  // Re-export pure marker helpers so existing consumers keep working.
15
16
  export { createEventMarkerContext, eventMarkerId, eventTypeFromProp, serializeEventMarkers } from './event-marker.js';
@@ -95,12 +96,7 @@ export function collectEventBindings(node) {
95
96
  export function eventRecordsToDescriptors(el, records, owner) {
96
97
  return records.map((record)=>{
97
98
  const handler = owner && typeof record.handler === 'function' ? record.handler.bind(owner) : record.handler;
98
- return {
99
- kind: 'event',
100
- el,
101
- type: record.type,
102
- handler
103
- };
99
+ return bindEvent(el, record.type, handler);
104
100
  });
105
101
  }
106
102
  export function hydrateEventMarkers(root, bindings, cleanupBag, owner) {
@@ -115,4 +111,4 @@ export function hydrateEventMarkers(root, bindings, cleanupBag, owner) {
115
111
  }
116
112
  }
117
113
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9ldmVudC1oeWRyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXJrZXItYmFzZWQgZXZlbnQgaHlkcmF0aW9uIGZvciBTU1IgVk5vZGUgb3V0cHV0LlxuICpcbiAqIFNTUiBlbWl0cyBkZXRlcm1pbmlzdGljIGBkYXRhLWVpZGAgbWFya2Vycy4gRHVyaW5nIERTRCB1cGdyYWRlLFxuICogRHNkRWxlbWVudCByZW5kZXJzIHRoZSBzYW1lIFZOb2RlIHRyZWUgaW4gbWVtb3J5LCBjb2xsZWN0cyBldmVudCBoYW5kbGVycyBpblxuICogdGhlIHNhbWUgdHJhdmVyc2FsIG9yZGVyLCBhbmQgYmluZHMgdGhlbSB0byBtYXRjaGluZyBET00gbWFya2VycyB3aXRob3V0XG4gKiByZXBsYWNpbmcgdGhlIGV4aXN0aW5nIERTRCBET00uXG4gKi9cblxuaW1wb3J0IHsgRk9SX1RBRywgRnJhZ21lbnQsIFNIT1dfVEFHIH0gZnJvbSAnLi9qc3gtcnVudGltZS5qcyc7XG5pbXBvcnQgeyBpc1NpZ25hbExpa2UgfSBmcm9tICdAb3BlbmVsZW1lbnQvc2lnbmFsJztcbmltcG9ydCB7IGlzQ29tcG9uZW50Q3RvciwgaXNWTm9kZSB9IGZyb20gJy4vdm5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBSZW5kZXJGbiwgVk5vZGUgfSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvdm5vZGUnO1xuaW1wb3J0IHsgREFUQV9FSUQgfSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvaHlkcmF0aW9uLW1hcmtlcnMnO1xuaW1wb3J0IHsgYXBwbHlCaW5kaW5nRGVzY3JpcHRvciB9IGZyb20gJy4vYmluZGluZy1hY3RpdmF0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgRXZlbnRCaW5kaW5nRGVzY3JpcHRvciB9IGZyb20gJy4vYmluZGluZy1kZXNjcmlwdG9yLmpzJztcbmltcG9ydCB7IGV2ZW50TWFya2VySWQsIGV2ZW50VHlwZUZyb21Qcm9wIH0gZnJvbSAnLi9ldmVudC1tYXJrZXIuanMnO1xuXG4vLyBSZS1leHBvcnQgcHVyZSBtYXJrZXIgaGVscGVycyBzbyBleGlzdGluZyBjb25zdW1lcnMga2VlcCB3b3JraW5nLlxuZXhwb3J0IHtcbiAgY3JlYXRlRXZlbnRNYXJrZXJDb250ZXh0LFxuICBldmVudE1hcmtlcklkLFxuICBldmVudFR5cGVGcm9tUHJvcCxcbiAgc2VyaWFsaXplRXZlbnRNYXJrZXJzLFxufSBmcm9tICcuL2V2ZW50LW1hcmtlci5qcyc7XG5leHBvcnQgdHlwZSB7IEV2ZW50TWFya2VyQ29udGV4dCB9IGZyb20gJy4vZXZlbnQtbWFya2VyLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJpbmRpbmdSZWNvcmQge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXI7XG59XG5cbi8qKiBIeWRyYXRpb24tdGltZSBldmVudCBiaW5kaW5nIGNvbnRyYWN0IChtaXJyb3JzIEJpbmRpbmdEZXNjcmlwdG9yKS4gKi9cbmV4cG9ydCB0eXBlIEV2ZW50QmluZGluZyA9IEV2ZW50QmluZGluZ0Rlc2NyaXB0b3I7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0RXZlbnRCaW5kaW5ncyhub2RlOiB1bmtub3duKTogTWFwPHN0cmluZywgRXZlbnRCaW5kaW5nUmVjb3JkW10+IHtcbiAgY29uc3QgYmluZGluZ3MgPSBuZXcgTWFwPHN0cmluZywgRXZlbnRCaW5kaW5nUmVjb3JkW10+KCk7XG4gIGxldCBjb3VudCA9IDA7XG5cbiAgY29uc3QgdmlzaXQgPSAodmFsdWU6IHVua25vd24pOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSBmYWxzZSB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcidcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlzU2lnbmFsTGlrZSh2YWx1ZSkpIHtcbiAgICAgIHZpc2l0KCh2YWx1ZSBhcyB7IHZhbHVlOiB1bmtub3duIH0pLnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1ZOb2RlKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgeyB0YWcsIHByb3BzLCBjaGlsZHJlbiB9ID0gdmFsdWUgYXMgVk5vZGU7XG5cbiAgICBpZiAoXG4gICAgICB0YWcgPT09IEZyYWdtZW50IHx8XG4gICAgICAodHlwZW9mIHRhZyA9PT0gJ3N5bWJvbCcgJiYgU3RyaW5nKHRhZykgPT09ICdTeW1ib2wob3BlbmVsZW1lbnQuZnJhZ21lbnQpJylcbiAgICApIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHZpc2l0KGNoaWxkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSBTSE9XX1RBRyB8fCB0YWcgPT09ICdzaG93Jykge1xuICAgICAgY29uc3Qgd2hlblZhbCA9IGlzU2lnbmFsTGlrZShwcm9wcz8ud2hlbilcbiAgICAgICAgPyAocHJvcHMhLndoZW4gYXMgeyB2YWx1ZTogdW5rbm93biB9KS52YWx1ZVxuICAgICAgICA6IHByb3BzPy53aGVuO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gd2hlblZhbCA/IGNoaWxkcmVuWzBdIDogY2hpbGRyZW5bMV07XG4gICAgICB2aXNpdCh0YXJnZXQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09IEZPUl9UQUcgfHwgdGFnID09PSAnZm9yZScpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gKGlzU2lnbmFsTGlrZShwcm9wcz8uZWFjaClcbiAgICAgICAgPyAocHJvcHMhLmVhY2ggYXMgeyB2YWx1ZTogdW5rbm93biB9KS52YWx1ZVxuICAgICAgICA6IHByb3BzPy5lYWNoKSBhcyB1bmtub3duW107XG4gICAgICBjb25zdCByZW5kZXJGbiA9IGNoaWxkcmVuWzBdIGFzIFJlbmRlckZuO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpICYmIHR5cGVvZiByZW5kZXJGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PlxuICAgICAgICAgIHZpc2l0KHJlbmRlckZuKGl0ZW0sIGkpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0NvbXBvbmVudEN0b3IodGFnKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgdGFnKCk7XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgICAgICAgIChpbnN0YW5jZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba10gPSB2O1xuICAgICAgICB9XG4gICAgICAgIHZpc2l0KGluc3RhbmNlLnJlbmRlcigpKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0YWcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZpc2l0KCh0YWcgYXMgKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdW5rbm93bikoeyAuLi5wcm9wcywgY2hpbGRyZW4gfSkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWNvcmRzOiBFdmVudEJpbmRpbmdSZWNvcmRbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzID8/IHt9KSkge1xuICAgICAgY29uc3QgdHlwZSA9IGV2ZW50VHlwZUZyb21Qcm9wKGtleSk7XG4gICAgICBpZiAodHlwZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVjb3Jkcy5wdXNoKHtcbiAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBoYW5kbGVyOiB2YWx1ZSBhcyBFdmVudExpc3RlbmVyLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWaXNpdCBjaGlsZHJlbiBiZWZvcmUgYXNzaWduaW5nIGFuIElEIHRvIHRoaXMgZWxlbWVudCBzbyB0aGUgb3JkZXJcbiAgICAvLyBtYXRjaGVzIFNTUiAocmVuZGVyVG9Ob2RlIHNlcmlhbGl6ZXMgY2hpbGRyZW4gZmlyc3QpLlxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHZpc2l0KGNoaWxkKTtcblxuICAgIGlmIChyZWNvcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGlkID0gZXZlbnRNYXJrZXJJZChjb3VudCsrKTtcbiAgICAgIGJpbmRpbmdzLnNldChpZCwgcmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gKHsgLi4ucmVjb3JkLCBpZCB9KSkpO1xuICAgIH1cbiAgfTtcblxuICB2aXNpdChub2RlKTtcbiAgcmV0dXJuIGJpbmRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRSZWNvcmRzVG9EZXNjcmlwdG9ycyhcbiAgZWw6IEVsZW1lbnQsXG4gIHJlY29yZHM6IEV2ZW50QmluZGluZ1JlY29yZFtdLFxuICBvd25lcj86IHVua25vd24sXG4pOiBFdmVudEJpbmRpbmdbXSB7XG4gIHJldHVybiByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IG93bmVyICYmIHR5cGVvZiByZWNvcmQuaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyAocmVjb3JkLmhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcikuYmluZChvd25lcilcbiAgICAgIDogcmVjb3JkLmhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcjtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogJ2V2ZW50JyxcbiAgICAgIGVsLFxuICAgICAgdHlwZTogcmVjb3JkLnR5cGUsXG4gICAgICBoYW5kbGVyLFxuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHlkcmF0ZUV2ZW50TWFya2VycyhcbiAgcm9vdDogRWxlbWVudCB8IFNoYWRvd1Jvb3QsXG4gIGJpbmRpbmdzOiBNYXA8c3RyaW5nLCBFdmVudEJpbmRpbmdSZWNvcmRbXT4sXG4gIGNsZWFudXBCYWc6IEFycmF5PCgpID0+IHZvaWQ+LFxuICBvd25lcj86IHVua25vd24sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBlbCBvZiByb290LnF1ZXJ5U2VsZWN0b3JBbGwoYFske0RBVEFfRUlEfV1gKSkge1xuICAgIGNvbnN0IGlkID0gZWwuZ2V0QXR0cmlidXRlKERBVEFfRUlEKTtcbiAgICBpZiAoIWlkKSBjb250aW51ZTtcbiAgICBjb25zdCByZWNvcmRzID0gYmluZGluZ3MuZ2V0KGlkKTtcbiAgICBpZiAoIXJlY29yZHMpIGNvbnRpbnVlO1xuICAgIGZvciAoY29uc3QgZGVzYyBvZiBldmVudFJlY29yZHNUb0Rlc2NyaXB0b3JzKGVsLCByZWNvcmRzLCBvd25lcikpIHtcbiAgICAgIGNvbnN0IGRpc3Bvc2UgPSBhcHBseUJpbmRpbmdEZXNjcmlwdG9yKGRlc2MsIHt9KTtcbiAgICAgIGNsZWFudXBCYWcucHVzaChkaXNwb3NlKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztDQU9DLEdBRUQsU0FBUyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsUUFBUSxtQkFBbUI7QUFDL0QsU0FBUyxZQUFZLFFBQVEsc0JBQXNCO0FBQ25ELFNBQVMsZUFBZSxFQUFFLE9BQU8sUUFBUSxhQUFhO0FBRXRELFNBQVMsUUFBUSxRQUFRLDBDQUEwQztBQUNuRSxTQUFTLHNCQUFzQixRQUFRLDBCQUEw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
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9ldmVudC1oeWRyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXJrZXItYmFzZWQgZXZlbnQgaHlkcmF0aW9uIGZvciBTU1IgVk5vZGUgb3V0cHV0LlxuICpcbiAqIFNTUiBlbWl0cyBkZXRlcm1pbmlzdGljIGBkYXRhLWVpZGAgbWFya2Vycy4gRHVyaW5nIERTRCB1cGdyYWRlLFxuICogRHNkRWxlbWVudCByZW5kZXJzIHRoZSBzYW1lIFZOb2RlIHRyZWUgaW4gbWVtb3J5LCBjb2xsZWN0cyBldmVudCBoYW5kbGVycyBpblxuICogdGhlIHNhbWUgdHJhdmVyc2FsIG9yZGVyLCBhbmQgYmluZHMgdGhlbSB0byBtYXRjaGluZyBET00gbWFya2VycyB3aXRob3V0XG4gKiByZXBsYWNpbmcgdGhlIGV4aXN0aW5nIERTRCBET00uXG4gKi9cblxuaW1wb3J0IHsgRk9SX1RBRywgRnJhZ21lbnQsIFNIT1dfVEFHIH0gZnJvbSAnLi9qc3gtcnVudGltZS5qcyc7XG5pbXBvcnQgeyBpc1NpZ25hbExpa2UgfSBmcm9tICdAb3BlbmVsZW1lbnQvc2lnbmFsJztcbmltcG9ydCB7IGlzQ29tcG9uZW50Q3RvciwgaXNWTm9kZSB9IGZyb20gJy4vdm5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBSZW5kZXJGbiwgVk5vZGUgfSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvdm5vZGUnO1xuaW1wb3J0IHsgREFUQV9FSUQgfSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvaHlkcmF0aW9uLW1hcmtlcnMnO1xuaW1wb3J0IHsgYXBwbHlCaW5kaW5nRGVzY3JpcHRvciB9IGZyb20gJy4vYmluZGluZy1hY3RpdmF0aW9uLmpzJztcbmltcG9ydCB7IGJpbmRFdmVudCB9IGZyb20gJy4vYmluZGluZy1kZXNjcmlwdG9yLmpzJztcbmltcG9ydCB0eXBlIHsgRXZlbnRCaW5kaW5nRGVzY3JpcHRvciB9IGZyb20gJy4vYmluZGluZy1kZXNjcmlwdG9yLmpzJztcbmltcG9ydCB7IGV2ZW50TWFya2VySWQsIGV2ZW50VHlwZUZyb21Qcm9wIH0gZnJvbSAnLi9ldmVudC1tYXJrZXIuanMnO1xuXG4vLyBSZS1leHBvcnQgcHVyZSBtYXJrZXIgaGVscGVycyBzbyBleGlzdGluZyBjb25zdW1lcnMga2VlcCB3b3JraW5nLlxuZXhwb3J0IHtcbiAgY3JlYXRlRXZlbnRNYXJrZXJDb250ZXh0LFxuICBldmVudE1hcmtlcklkLFxuICBldmVudFR5cGVGcm9tUHJvcCxcbiAgc2VyaWFsaXplRXZlbnRNYXJrZXJzLFxufSBmcm9tICcuL2V2ZW50LW1hcmtlci5qcyc7XG5leHBvcnQgdHlwZSB7IEV2ZW50TWFya2VyQ29udGV4dCB9IGZyb20gJy4vZXZlbnQtbWFya2VyLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJpbmRpbmdSZWNvcmQge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXI7XG59XG5cbi8qKiBIeWRyYXRpb24tdGltZSBldmVudCBiaW5kaW5nIGNvbnRyYWN0IChtaXJyb3JzIEJpbmRpbmdEZXNjcmlwdG9yKS4gKi9cbmV4cG9ydCB0eXBlIEV2ZW50QmluZGluZyA9IEV2ZW50QmluZGluZ0Rlc2NyaXB0b3I7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0RXZlbnRCaW5kaW5ncyhub2RlOiB1bmtub3duKTogTWFwPHN0cmluZywgRXZlbnRCaW5kaW5nUmVjb3JkW10+IHtcbiAgY29uc3QgYmluZGluZ3MgPSBuZXcgTWFwPHN0cmluZywgRXZlbnRCaW5kaW5nUmVjb3JkW10+KCk7XG4gIGxldCBjb3VudCA9IDA7XG5cbiAgY29uc3QgdmlzaXQgPSAodmFsdWU6IHVua25vd24pOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSBmYWxzZSB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcidcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlzU2lnbmFsTGlrZSh2YWx1ZSkpIHtcbiAgICAgIHZpc2l0KCh2YWx1ZSBhcyB7IHZhbHVlOiB1bmtub3duIH0pLnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1ZOb2RlKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgeyB0YWcsIHByb3BzLCBjaGlsZHJlbiB9ID0gdmFsdWUgYXMgVk5vZGU7XG5cbiAgICBpZiAoXG4gICAgICB0YWcgPT09IEZyYWdtZW50IHx8XG4gICAgICAodHlwZW9mIHRhZyA9PT0gJ3N5bWJvbCcgJiYgU3RyaW5nKHRhZykgPT09ICdTeW1ib2wob3BlbmVsZW1lbnQuZnJhZ21lbnQpJylcbiAgICApIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHZpc2l0KGNoaWxkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSBTSE9XX1RBRyB8fCB0YWcgPT09ICdzaG93Jykge1xuICAgICAgY29uc3Qgd2hlblZhbCA9IGlzU2lnbmFsTGlrZShwcm9wcz8ud2hlbilcbiAgICAgICAgPyAocHJvcHMhLndoZW4gYXMgeyB2YWx1ZTogdW5rbm93biB9KS52YWx1ZVxuICAgICAgICA6IHByb3BzPy53aGVuO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gd2hlblZhbCA/IGNoaWxkcmVuWzBdIDogY2hpbGRyZW5bMV07XG4gICAgICB2aXNpdCh0YXJnZXQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09IEZPUl9UQUcgfHwgdGFnID09PSAnZm9yZScpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gKGlzU2lnbmFsTGlrZShwcm9wcz8uZWFjaClcbiAgICAgICAgPyAocHJvcHMhLmVhY2ggYXMgeyB2YWx1ZTogdW5rbm93biB9KS52YWx1ZVxuICAgICAgICA6IHByb3BzPy5lYWNoKSBhcyB1bmtub3duW107XG4gICAgICBjb25zdCByZW5kZXJGbiA9IGNoaWxkcmVuWzBdIGFzIFJlbmRlckZuO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpICYmIHR5cGVvZiByZW5kZXJGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PlxuICAgICAgICAgIHZpc2l0KHJlbmRlckZuKGl0ZW0sIGkpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0NvbXBvbmVudEN0b3IodGFnKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgdGFnKCk7XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgICAgICAgIChpbnN0YW5jZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba10gPSB2O1xuICAgICAgICB9XG4gICAgICAgIHZpc2l0KGluc3RhbmNlLnJlbmRlcigpKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0YWcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZpc2l0KCh0YWcgYXMgKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdW5rbm93bikoeyAuLi5wcm9wcywgY2hpbGRyZW4gfSkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWNvcmRzOiBFdmVudEJpbmRpbmdSZWNvcmRbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzID8/IHt9KSkge1xuICAgICAgY29uc3QgdHlwZSA9IGV2ZW50VHlwZUZyb21Qcm9wKGtleSk7XG4gICAgICBpZiAodHlwZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVjb3Jkcy5wdXNoKHtcbiAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBoYW5kbGVyOiB2YWx1ZSBhcyBFdmVudExpc3RlbmVyLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWaXNpdCBjaGlsZHJlbiBiZWZvcmUgYXNzaWduaW5nIGFuIElEIHRvIHRoaXMgZWxlbWVudCBzbyB0aGUgb3JkZXJcbiAgICAvLyBtYXRjaGVzIFNTUiAocmVuZGVyVG9Ob2RlIHNlcmlhbGl6ZXMgY2hpbGRyZW4gZmlyc3QpLlxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHZpc2l0KGNoaWxkKTtcblxuICAgIGlmIChyZWNvcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGlkID0gZXZlbnRNYXJrZXJJZChjb3VudCsrKTtcbiAgICAgIGJpbmRpbmdzLnNldChpZCwgcmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gKHsgLi4ucmVjb3JkLCBpZCB9KSkpO1xuICAgIH1cbiAgfTtcblxuICB2aXNpdChub2RlKTtcbiAgcmV0dXJuIGJpbmRpbmdzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRSZWNvcmRzVG9EZXNjcmlwdG9ycyhcbiAgZWw6IEVsZW1lbnQsXG4gIHJlY29yZHM6IEV2ZW50QmluZGluZ1JlY29yZFtdLFxuICBvd25lcj86IHVua25vd24sXG4pOiBFdmVudEJpbmRpbmdbXSB7XG4gIHJldHVybiByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IG93bmVyICYmIHR5cGVvZiByZWNvcmQuaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyAocmVjb3JkLmhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcikuYmluZChvd25lcilcbiAgICAgIDogcmVjb3JkLmhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcjtcbiAgICByZXR1cm4gYmluZEV2ZW50KGVsLCByZWNvcmQudHlwZSwgaGFuZGxlcik7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHlkcmF0ZUV2ZW50TWFya2VycyhcbiAgcm9vdDogRWxlbWVudCB8IFNoYWRvd1Jvb3QsXG4gIGJpbmRpbmdzOiBNYXA8c3RyaW5nLCBFdmVudEJpbmRpbmdSZWNvcmRbXT4sXG4gIGNsZWFudXBCYWc6IEFycmF5PCgpID0+IHZvaWQ+LFxuICBvd25lcj86IHVua25vd24sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBlbCBvZiByb290LnF1ZXJ5U2VsZWN0b3JBbGwoYFske0RBVEFfRUlEfV1gKSkge1xuICAgIGNvbnN0IGlkID0gZWwuZ2V0QXR0cmlidXRlKERBVEFfRUlEKTtcbiAgICBpZiAoIWlkKSBjb250aW51ZTtcbiAgICBjb25zdCByZWNvcmRzID0gYmluZGluZ3MuZ2V0KGlkKTtcbiAgICBpZiAoIXJlY29yZHMpIGNvbnRpbnVlO1xuICAgIGZvciAoY29uc3QgZGVzYyBvZiBldmVudFJlY29yZHNUb0Rlc2NyaXB0b3JzKGVsLCByZWNvcmRzLCBvd25lcikpIHtcbiAgICAgIGNvbnN0IGRpc3Bvc2UgPSBhcHBseUJpbmRpbmdEZXNjcmlwdG9yKGRlc2MsIHt9KTtcbiAgICAgIGNsZWFudXBCYWcucHVzaChkaXNwb3NlKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztDQU9DLEdBRUQsU0FBUyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsUUFBUSxtQkFBbUI7QUFDL0QsU0FBUyxZQUFZLFFBQVEsc0JBQXNCO0FBQ25ELFNBQVMsZUFBZSxFQUFFLE9BQU8sUUFBUSxhQUFhO0FBRXRELFNBQVMsUUFBUSxRQUFRLDBDQUEwQztBQUNuRSxTQUFTLHNCQUFzQixRQUFR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
package/src/hydrate.d.ts CHANGED
@@ -6,10 +6,12 @@
6
6
  *
7
7
  * ADR-0109 Phase 1: split @openelement/core into static, hydrate, and csr.
8
8
  */ export * from "./static.js";
9
- export type { BindingDescriptor, BindingDispose, BindingLifecycle } from "./binding-descriptor.js";
10
- export { applyBindingDescriptor } from "./binding-activation.js";
9
+ export { HydrationScope } from "./hydration-scope.js";
10
+ export type { HydrationScopeDebug, HydrationScopeOptions } from "./hydration-scope.js";
11
+ export type { BindingDescriptor, BindingDispose, BindingLifecycle, BindingRenderer } from "./binding-descriptor.js";
12
+ export { bindAttr, bindClass, bindConditional, bindEvent, bindHtml, bindList, bindRef, bindRender, bindStaticAttr, bindStaticBoolean, bindStaticProp, bindStaticStyle, bindText } from "./binding-descriptor.js";
13
+ export { applyBindingDescriptor, commitBindings, registerBindingKind } from "./binding-activation.js";
11
14
  export { collectEventBindings, eventRecordsToDescriptors, hydrateEventMarkers } from "./event-hydration.js";
12
15
  export type { EventBinding, EventBindingRecord } from "./event-hydration.js";
13
16
  export { createDsdRenderRoot, hydrateDsdEvents } from "./dsd-hydration.js";
14
17
  export type { Constructor, DsdHydration } from "./dsd-hydration.js";
15
- export { bindHydrateEvents } from "./dsd-hydration-events.js";
package/src/hydrate.js CHANGED
@@ -6,10 +6,12 @@
6
6
  *
7
7
  * ADR-0109 Phase 1: split @openelement/core into static, hydrate, and csr.
8
8
  */ export * from './static.js';
9
- export { applyBindingDescriptor } from './binding-activation.js';
9
+ // Hydration scope
10
+ export { HydrationScope } from './hydration-scope.js';
11
+ export { bindAttr, bindClass, bindConditional, bindEvent, bindHtml, bindList, bindRef, bindRender, bindStaticAttr, bindStaticBoolean, bindStaticProp, bindStaticStyle, bindText } from './binding-descriptor.js';
12
+ export { applyBindingDescriptor, commitBindings, registerBindingKind } from './binding-activation.js';
10
13
  // Marker-based event hydration (DOM-specific parts not in static.ts)
11
14
  export { collectEventBindings, eventRecordsToDescriptors, hydrateEventMarkers } from './event-hydration.js';
12
15
  // DSD hydration contract
13
16
  export { createDsdRenderRoot, hydrateDsdEvents } from './dsd-hydration.js';
14
- export { bindHydrateEvents } from './dsd-hydration-events.js';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9oeWRyYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG9wZW5lbGVtZW50L2NvcmUvaHlkcmF0ZSAtIERTRCBpbnRlcmFjdGl2ZSBydW50aW1lIHN1cmZhY2UuXG4gKlxuICogSW5jbHVkZXMgdGhlIHN0YXRpYyByZW5kZXJpbmcgc3VyZmFjZSBwbHVzIG1hcmtlci1iYXNlZCBldmVudCBoeWRyYXRpb25cbiAqIGFuZCBEU0Qgc2hhZG93LXJvb3QgaHlkcmF0aW9uIGhlbHBlcnMuIFVzZWQgYnkgRFNEIGludGVyYWN0aXZlIGlzbGFuZHMuXG4gKlxuICogQURSLTAxMDkgUGhhc2UgMTogc3BsaXQgQG9wZW5lbGVtZW50L2NvcmUgaW50byBzdGF0aWMsIGh5ZHJhdGUsIGFuZCBjc3IuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9zdGF0aWMuanMnO1xuXG4vLyBCaW5kaW5nIGxheWVyXG5leHBvcnQgdHlwZSB7IEJpbmRpbmdEZXNjcmlwdG9yLCBCaW5kaW5nRGlzcG9zZSwgQmluZGluZ0xpZmVjeWNsZSB9IGZyb20gJy4vYmluZGluZy1kZXNjcmlwdG9yLmpzJztcbmV4cG9ydCB7IGFwcGx5QmluZGluZ0Rlc2NyaXB0b3IgfSBmcm9tICcuL2JpbmRpbmctYWN0aXZhdGlvbi5qcyc7XG5cbi8vIE1hcmtlci1iYXNlZCBldmVudCBoeWRyYXRpb24gKERPTS1zcGVjaWZpYyBwYXJ0cyBub3QgaW4gc3RhdGljLnRzKVxuZXhwb3J0IHtcbiAgY29sbGVjdEV2ZW50QmluZGluZ3MsXG4gIGV2ZW50UmVjb3Jkc1RvRGVzY3JpcHRvcnMsXG4gIGh5ZHJhdGVFdmVudE1hcmtlcnMsXG59IGZyb20gJy4vZXZlbnQtaHlkcmF0aW9uLmpzJztcbmV4cG9ydCB0eXBlIHsgRXZlbnRCaW5kaW5nLCBFdmVudEJpbmRpbmdSZWNvcmQgfSBmcm9tICcuL2V2ZW50LWh5ZHJhdGlvbi5qcyc7XG5cbi8vIERTRCBoeWRyYXRpb24gY29udHJhY3RcbmV4cG9ydCB7IGNyZWF0ZURzZFJlbmRlclJvb3QsIGh5ZHJhdGVEc2RFdmVudHMgfSBmcm9tICcuL2RzZC1oeWRyYXRpb24uanMnO1xuZXhwb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciwgRHNkSHlkcmF0aW9uIH0gZnJvbSAnLi9kc2QtaHlkcmF0aW9uLmpzJztcbmV4cG9ydCB7IGJpbmRIeWRyYXRlRXZlbnRzIH0gZnJvbSAnLi9kc2QtaHlkcmF0aW9uLWV2ZW50cy5qcyc7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Q0FPQyxHQUVELGNBQWMsY0FBYztBQUk1QixTQUFTLHNCQUFzQixRQUFRLDBCQUEwQjtBQUVqRSxxRUFBcUU7QUFDckUsU0FDRSxvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLG1CQUFtQixRQUNkLHVCQUF1QjtBQUc5Qix5QkFBeUI7QUFDekIsU0FBUyxtQkFBbUIsRUFBRSxnQkFBZ0IsUUFBUSxxQkFBcUI7QUFFM0UsU0FBUyxpQkFBaUIsUUFBUSw0QkFBNEIifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9oeWRyYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG9wZW5lbGVtZW50L2NvcmUvaHlkcmF0ZSAtIERTRCBpbnRlcmFjdGl2ZSBydW50aW1lIHN1cmZhY2UuXG4gKlxuICogSW5jbHVkZXMgdGhlIHN0YXRpYyByZW5kZXJpbmcgc3VyZmFjZSBwbHVzIG1hcmtlci1iYXNlZCBldmVudCBoeWRyYXRpb25cbiAqIGFuZCBEU0Qgc2hhZG93LXJvb3QgaHlkcmF0aW9uIGhlbHBlcnMuIFVzZWQgYnkgRFNEIGludGVyYWN0aXZlIGlzbGFuZHMuXG4gKlxuICogQURSLTAxMDkgUGhhc2UgMTogc3BsaXQgQG9wZW5lbGVtZW50L2NvcmUgaW50byBzdGF0aWMsIGh5ZHJhdGUsIGFuZCBjc3IuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9zdGF0aWMuanMnO1xuXG4vLyBIeWRyYXRpb24gc2NvcGVcbmV4cG9ydCB7IEh5ZHJhdGlvblNjb3BlIH0gZnJvbSAnLi9oeWRyYXRpb24tc2NvcGUuanMnO1xuZXhwb3J0IHR5cGUgeyBIeWRyYXRpb25TY29wZURlYnVnLCBIeWRyYXRpb25TY29wZU9wdGlvbnMgfSBmcm9tICcuL2h5ZHJhdGlvbi1zY29wZS5qcyc7XG5cbi8vIEJpbmRpbmcgbGF5ZXJcbmV4cG9ydCB0eXBlIHtcbiAgQmluZGluZ0Rlc2NyaXB0b3IsXG4gIEJpbmRpbmdEaXNwb3NlLFxuICBCaW5kaW5nTGlmZWN5Y2xlLFxuICBCaW5kaW5nUmVuZGVyZXIsXG59IGZyb20gJy4vYmluZGluZy1kZXNjcmlwdG9yLmpzJztcbmV4cG9ydCB7XG4gIGJpbmRBdHRyLFxuICBiaW5kQ2xhc3MsXG4gIGJpbmRDb25kaXRpb25hbCxcbiAgYmluZEV2ZW50LFxuICBiaW5kSHRtbCxcbiAgYmluZExpc3QsXG4gIGJpbmRSZWYsXG4gIGJpbmRSZW5kZXIsXG4gIGJpbmRTdGF0aWNBdHRyLFxuICBiaW5kU3RhdGljQm9vbGVhbixcbiAgYmluZFN0YXRpY1Byb3AsXG4gIGJpbmRTdGF0aWNTdHlsZSxcbiAgYmluZFRleHQsXG59IGZyb20gJy4vYmluZGluZy1kZXNjcmlwdG9yLmpzJztcbmV4cG9ydCB7XG4gIGFwcGx5QmluZGluZ0Rlc2NyaXB0b3IsXG4gIGNvbW1pdEJpbmRpbmdzLFxuICByZWdpc3RlckJpbmRpbmdLaW5kLFxufSBmcm9tICcuL2JpbmRpbmctYWN0aXZhdGlvbi5qcyc7XG5cbi8vIE1hcmtlci1iYXNlZCBldmVudCBoeWRyYXRpb24gKERPTS1zcGVjaWZpYyBwYXJ0cyBub3QgaW4gc3RhdGljLnRzKVxuZXhwb3J0IHtcbiAgY29sbGVjdEV2ZW50QmluZGluZ3MsXG4gIGV2ZW50UmVjb3Jkc1RvRGVzY3JpcHRvcnMsXG4gIGh5ZHJhdGVFdmVudE1hcmtlcnMsXG59IGZyb20gJy4vZXZlbnQtaHlkcmF0aW9uLmpzJztcbmV4cG9ydCB0eXBlIHsgRXZlbnRCaW5kaW5nLCBFdmVudEJpbmRpbmdSZWNvcmQgfSBmcm9tICcuL2V2ZW50LWh5ZHJhdGlvbi5qcyc7XG5cbi8vIERTRCBoeWRyYXRpb24gY29udHJhY3RcbmV4cG9ydCB7IGNyZWF0ZURzZFJlbmRlclJvb3QsIGh5ZHJhdGVEc2RFdmVudHMgfSBmcm9tICcuL2RzZC1oeWRyYXRpb24uanMnO1xuZXhwb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciwgRHNkSHlkcmF0aW9uIH0gZnJvbSAnLi9kc2QtaHlkcmF0aW9uLmpzJztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztDQU9DLEdBRUQsY0FBYyxjQUFjO0FBRTVCLGtCQUFrQjtBQUNsQixTQUFTLGNBQWMsUUFBUSx1QkFBdUI7QUFVdEQsU0FDRSxRQUFRLEVBQ1IsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsRUFDZixRQUFRLFFBQ0gsMEJBQTBCO0FBQ2pDLFNBQ0Usc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCxtQkFBbUIsUUFDZCwwQkFBMEI7QUFFakMscUVBQXFFO0FBQ3JFLFNBQ0Usb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixtQkFBbUIsUUFDZCx1QkFBdUI7QUFHOUIseUJBQXlCO0FBQ3pCLFNBQVMsbUJBQW1CLEVBQUUsZ0JBQWdCLFFBQVEscUJBQXFCIn0=
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @openelement/core/hydrate - HydrationScope value object.
3
+ *
4
+ * Standalone container for the lifecycle state of a hydrated shadow root.
5
+ * Owns effect disposers, event cleanups, and the cached VNode used for
6
+ * declarative event marker binding. Designed to be usable without an
7
+ * OpenElement instance so third-party framework runtimes can hydrate the
8
+ * same DSD shadow root later.
9
+ *
10
+ * @module @openelement/core/hydrate
11
+ */ import type { Signal } from '@openelement/protocol/signal';
12
+ import type { BindingLifecycle, BindingRenderer } from "./binding-descriptor.js";
13
+ /** Options for creating a HydrationScope. */ export interface HydrationScopeOptions {
14
+ /** Signal registry used to resolve data-signal markers. */ signalRegistry?: Map<string, Signal<unknown>>;
15
+ /** Renderer used for signal-render and event-marker VNode rendering. */ renderer?: BindingRenderer;
16
+ /** Render function that produces the VNode used for event-marker hydration. */ render?: () => unknown;
17
+ }
18
+ /** Read-only observables exposed for debugging. */ export interface HydrationScopeDebug {
19
+ isActive: boolean;
20
+ effectCount: number;
21
+ eventCleanupCount: number;
22
+ }
23
+ /**
24
+ * Lifecycle scope for a hydrated shadow root.
25
+ *
26
+ * Keeps effect disposers, event listener cleanups, and the cached VNode in one
27
+ * place so they can be disposed as a unit. The scope does not depend on
28
+ * OpenElement; callers provide the signal registry and optional render function.
29
+ */ export declare class HydrationScope {
30
+ constructor(options?: HydrationScopeOptions);
31
+ /** Create a BindingLifecycle backed by this scope's effect disposers. */ createLifecycle(): BindingLifecycle;
32
+ /** Set the cached VNode for event-marker hydration. */ setCachedVNode(vnode: unknown): void;
33
+ /** Resolve data-signal markers in a shadow root and activate bindings. */ hydrate(shadowRoot: ShadowRoot, signalRegistry?: Map<string, Signal<unknown>>): void;
34
+ /** Dispose all effects and event listeners tracked by this scope. */ dispose(): void;
35
+ /**
36
+ * Clear effects and event listeners without deactivating the scope.
37
+ *
38
+ * Used before re-rendering or re-hydrating an existing shadow root so the
39
+ * scope can accept a fresh set of bindings. Does not gate on #active so
40
+ * that a disconnected-then-reconnected element can be re-hydrated.
41
+ */ reset(): void;
42
+ /** Debug observables for testing and devtools. */ get debug(): HydrationScopeDebug;
43
+ }
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @openelement/core/hydrate - HydrationScope value object.
3
+ *
4
+ * Standalone container for the lifecycle state of a hydrated shadow root.
5
+ * Owns effect disposers, event cleanups, and the cached VNode used for
6
+ * declarative event marker binding. Designed to be usable without an
7
+ * OpenElement instance so third-party framework runtimes can hydrate the
8
+ * same DSD shadow root later.
9
+ *
10
+ * @module @openelement/core/hydrate
11
+ */ import { applyBindingDescriptor } from './binding-activation.js';
12
+ import { collectEventBindings, hydrateEventMarkers } from './event-hydration.js';
13
+ import { renderToDom } from './jsx-render-dom.js';
14
+ import { isVNode } from './vnode.js';
15
+ import { bindAttr, bindClass, bindRender, bindText } from './binding-descriptor.js';
16
+ import { DATA_SIGNAL, DATA_SIGNAL_ATTR, DATA_SIGNAL_CLASS, DATA_SIGNAL_RENDER, parseSignalAttrSpec } from '@openelement/protocol/hydration-markers';
17
+ /** Collect binding descriptors from data-signal markers in a shadow root. */ function collectHydrationBindings(shadowRoot, signalRegistry, lifecycle) {
18
+ const descriptors = [];
19
+ for (const el of shadowRoot.querySelectorAll(`[${DATA_SIGNAL}]`)){
20
+ const name = el.getAttribute(DATA_SIGNAL);
21
+ if (!name) continue;
22
+ const sig = signalRegistry.get(name);
23
+ if (!sig) continue;
24
+ const hasClass = el.hasAttribute(DATA_SIGNAL_CLASS);
25
+ const hasAttr = el.hasAttribute(DATA_SIGNAL_ATTR);
26
+ if (hasClass) {
27
+ const className = el.getAttribute(DATA_SIGNAL_CLASS);
28
+ if (className) {
29
+ descriptors.push(bindClass(el, className, sig));
30
+ }
31
+ }
32
+ if (hasAttr) {
33
+ const attrSpec = el.getAttribute(DATA_SIGNAL_ATTR);
34
+ if (attrSpec) {
35
+ const attrNames = parseSignalAttrSpec(attrSpec);
36
+ if (attrNames.length > 0) {
37
+ descriptors.push(bindAttr(el, attrNames, sig));
38
+ }
39
+ }
40
+ }
41
+ if (!hasClass && !hasAttr) {
42
+ descriptors.push(bindText(el, sig));
43
+ }
44
+ }
45
+ for (const el of shadowRoot.querySelectorAll(`[${DATA_SIGNAL_RENDER}]`)){
46
+ const name = el.getAttribute(DATA_SIGNAL_RENDER);
47
+ if (!name) continue;
48
+ const sig = signalRegistry.get(name);
49
+ if (!sig) continue;
50
+ descriptors.push(bindRender(el, sig, lifecycle));
51
+ }
52
+ return descriptors;
53
+ }
54
+ /**
55
+ * Lifecycle scope for a hydrated shadow root.
56
+ *
57
+ * Keeps effect disposers, event listener cleanups, and the cached VNode in one
58
+ * place so they can be disposed as a unit. The scope does not depend on
59
+ * OpenElement; callers provide the signal registry and optional render function.
60
+ */ export class HydrationScope {
61
+ #effectDisposers = new Set();
62
+ #eventCleanups = [];
63
+ #signalRegistry;
64
+ #renderer;
65
+ #render;
66
+ #cachedVNode = undefined;
67
+ #cacheValid = false;
68
+ #active = true;
69
+ constructor(options = {}){
70
+ this.#signalRegistry = options.signalRegistry ?? new Map();
71
+ this.#renderer = options.renderer ?? {
72
+ render: (node, lifecycle)=>renderToDom(node, lifecycle)
73
+ };
74
+ this.#render = options.render;
75
+ }
76
+ /** Create a BindingLifecycle backed by this scope's effect disposers. */ createLifecycle() {
77
+ return {
78
+ disposers: this.#effectDisposers
79
+ };
80
+ }
81
+ /** Set the cached VNode for event-marker hydration. */ setCachedVNode(vnode) {
82
+ this.#cachedVNode = vnode;
83
+ this.#cacheValid = true;
84
+ }
85
+ /** Resolve data-signal markers in a shadow root and activate bindings. */ hydrate(shadowRoot, signalRegistry) {
86
+ if (!this.#active) return;
87
+ const registry = signalRegistry ?? this.#signalRegistry;
88
+ const lifecycle = {
89
+ disposers: this.#effectDisposers
90
+ };
91
+ const descriptors = collectHydrationBindings(shadowRoot, registry, lifecycle);
92
+ for (const desc of descriptors){
93
+ if (desc.kind === 'signal-render') {
94
+ // Preserve the original DSD hydration contract: replace any SSR content
95
+ // with the client-rendered VNode tree on first activation.
96
+ while(desc.el.firstChild)desc.el.removeChild(desc.el.firstChild);
97
+ }
98
+ applyBindingDescriptor(desc, lifecycle, this.#renderer);
99
+ }
100
+ // Bind declarative event markers from the cached or freshly-rendered VNode.
101
+ const vnode = this.#resolveVNode();
102
+ if (isVNode(vnode)) {
103
+ const eventBindings = collectEventBindings(vnode);
104
+ hydrateEventMarkers(shadowRoot, eventBindings, this.#eventCleanups, shadowRoot.host ?? undefined);
105
+ }
106
+ // Chromium DSD layout fix: force reflow without DOM rebuild.
107
+ requestAnimationFrame(()=>{
108
+ void shadowRoot.host?.offsetHeight;
109
+ });
110
+ }
111
+ /** Dispose all effects and event listeners tracked by this scope. */ dispose() {
112
+ if (!this.#active) return;
113
+ this.#active = false;
114
+ this.#clearBindings();
115
+ }
116
+ /**
117
+ * Clear effects and event listeners without deactivating the scope.
118
+ *
119
+ * Used before re-rendering or re-hydrating an existing shadow root so the
120
+ * scope can accept a fresh set of bindings. Does not gate on #active so
121
+ * that a disconnected-then-reconnected element can be re-hydrated.
122
+ */ reset() {
123
+ this.#clearBindings();
124
+ this.#active = true;
125
+ }
126
+ #clearBindings() {
127
+ for (const d of this.#effectDisposers){
128
+ try {
129
+ d();
130
+ } catch {}
131
+ }
132
+ this.#effectDisposers.clear();
133
+ for (const f of this.#eventCleanups){
134
+ try {
135
+ f();
136
+ } catch {}
137
+ }
138
+ this.#eventCleanups = [];
139
+ this.#cachedVNode = undefined;
140
+ this.#cacheValid = false;
141
+ }
142
+ /** Debug observables for testing and devtools. */ get debug() {
143
+ return {
144
+ isActive: this.#active,
145
+ effectCount: this.#effectDisposers.size,
146
+ eventCleanupCount: this.#eventCleanups.length
147
+ };
148
+ }
149
+ #resolveVNode() {
150
+ if (this.#cacheValid) return this.#cachedVNode;
151
+ if (this.#render) {
152
+ const vnode = this.#render();
153
+ this.#cachedVNode = vnode;
154
+ this.#cacheValid = true;
155
+ return vnode;
156
+ }
157
+ return undefined;
158
+ }
159
+ }
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9oeWRyYXRpb24tc2NvcGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAb3BlbmVsZW1lbnQvY29yZS9oeWRyYXRlIC0gSHlkcmF0aW9uU2NvcGUgdmFsdWUgb2JqZWN0LlxuICpcbiAqIFN0YW5kYWxvbmUgY29udGFpbmVyIGZvciB0aGUgbGlmZWN5Y2xlIHN0YXRlIG9mIGEgaHlkcmF0ZWQgc2hhZG93IHJvb3QuXG4gKiBPd25zIGVmZmVjdCBkaXNwb3NlcnMsIGV2ZW50IGNsZWFudXBzLCBhbmQgdGhlIGNhY2hlZCBWTm9kZSB1c2VkIGZvclxuICogZGVjbGFyYXRpdmUgZXZlbnQgbWFya2VyIGJpbmRpbmcuIERlc2lnbmVkIHRvIGJlIHVzYWJsZSB3aXRob3V0IGFuXG4gKiBPcGVuRWxlbWVudCBpbnN0YW5jZSBzbyB0aGlyZC1wYXJ0eSBmcmFtZXdvcmsgcnVudGltZXMgY2FuIGh5ZHJhdGUgdGhlXG4gKiBzYW1lIERTRCBzaGFkb3cgcm9vdCBsYXRlci5cbiAqXG4gKiBAbW9kdWxlIEBvcGVuZWxlbWVudC9jb3JlL2h5ZHJhdGVcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNpZ25hbCB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9zaWduYWwnO1xuaW1wb3J0IHsgYXBwbHlCaW5kaW5nRGVzY3JpcHRvciB9IGZyb20gJy4vYmluZGluZy1hY3RpdmF0aW9uLmpzJztcbmltcG9ydCB7IGNvbGxlY3RFdmVudEJpbmRpbmdzLCBoeWRyYXRlRXZlbnRNYXJrZXJzIH0gZnJvbSAnLi9ldmVudC1oeWRyYXRpb24uanMnO1xuaW1wb3J0IHsgcmVuZGVyVG9Eb20gfSBmcm9tICcuL2pzeC1yZW5kZXItZG9tLmpzJztcbmltcG9ydCB7IGlzVk5vZGUgfSBmcm9tICcuL3Zub2RlLmpzJztcbmltcG9ydCB7IGJpbmRBdHRyLCBiaW5kQ2xhc3MsIGJpbmRSZW5kZXIsIGJpbmRUZXh0IH0gZnJvbSAnLi9iaW5kaW5nLWRlc2NyaXB0b3IuanMnO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nRGVzY3JpcHRvciwgQmluZGluZ0xpZmVjeWNsZSwgQmluZGluZ1JlbmRlcmVyIH0gZnJvbSAnLi9iaW5kaW5nLWRlc2NyaXB0b3IuanMnO1xuaW1wb3J0IHtcbiAgREFUQV9TSUdOQUwsXG4gIERBVEFfU0lHTkFMX0FUVFIsXG4gIERBVEFfU0lHTkFMX0NMQVNTLFxuICBEQVRBX1NJR05BTF9SRU5ERVIsXG4gIHBhcnNlU2lnbmFsQXR0clNwZWMsXG59IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9oeWRyYXRpb24tbWFya2Vycyc7XG5cbi8qKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIEh5ZHJhdGlvblNjb3BlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIeWRyYXRpb25TY29wZU9wdGlvbnMge1xuICAvKiogU2lnbmFsIHJlZ2lzdHJ5IHVzZWQgdG8gcmVzb2x2ZSBkYXRhLXNpZ25hbCBtYXJrZXJzLiAqL1xuICBzaWduYWxSZWdpc3RyeT86IE1hcDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj47XG4gIC8qKiBSZW5kZXJlciB1c2VkIGZvciBzaWduYWwtcmVuZGVyIGFuZCBldmVudC1tYXJrZXIgVk5vZGUgcmVuZGVyaW5nLiAqL1xuICByZW5kZXJlcj86IEJpbmRpbmdSZW5kZXJlcjtcbiAgLyoqIFJlbmRlciBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIHRoZSBWTm9kZSB1c2VkIGZvciBldmVudC1tYXJrZXIgaHlkcmF0aW9uLiAqL1xuICByZW5kZXI/OiAoKSA9PiB1bmtub3duO1xufVxuXG4vKiogUmVhZC1vbmx5IG9ic2VydmFibGVzIGV4cG9zZWQgZm9yIGRlYnVnZ2luZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHlkcmF0aW9uU2NvcGVEZWJ1ZyB7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBlZmZlY3RDb3VudDogbnVtYmVyO1xuICBldmVudENsZWFudXBDb3VudDogbnVtYmVyO1xufVxuXG4vKiogQ29sbGVjdCBiaW5kaW5nIGRlc2NyaXB0b3JzIGZyb20gZGF0YS1zaWduYWwgbWFya2VycyBpbiBhIHNoYWRvdyByb290LiAqL1xuZnVuY3Rpb24gY29sbGVjdEh5ZHJhdGlvbkJpbmRpbmdzKFxuICBzaGFkb3dSb290OiBTaGFkb3dSb290LFxuICBzaWduYWxSZWdpc3RyeTogTWFwPHN0cmluZywgU2lnbmFsPHVua25vd24+PixcbiAgbGlmZWN5Y2xlOiBCaW5kaW5nTGlmZWN5Y2xlLFxuKTogQmluZGluZ0Rlc2NyaXB0b3JbXSB7XG4gIGNvbnN0IGRlc2NyaXB0b3JzOiBCaW5kaW5nRGVzY3JpcHRvcltdID0gW107XG5cbiAgZm9yIChjb25zdCBlbCBvZiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoYFske0RBVEFfU0lHTkFMfV1gKSkge1xuICAgIGNvbnN0IG5hbWUgPSBlbC5nZXRBdHRyaWJ1dGUoREFUQV9TSUdOQUwpO1xuICAgIGlmICghbmFtZSkgY29udGludWU7XG4gICAgY29uc3Qgc2lnID0gc2lnbmFsUmVnaXN0cnkuZ2V0KG5hbWUpO1xuICAgIGlmICghc2lnKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGhhc0NsYXNzID0gZWwuaGFzQXR0cmlidXRlKERBVEFfU0lHTkFMX0NMQVNTKTtcbiAgICBjb25zdCBoYXNBdHRyID0gZWwuaGFzQXR0cmlidXRlKERBVEFfU0lHTkFMX0FUVFIpO1xuXG4gICAgaWYgKGhhc0NsYXNzKSB7XG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBlbC5nZXRBdHRyaWJ1dGUoREFUQV9TSUdOQUxfQ0xBU1MpO1xuICAgICAgaWYgKGNsYXNzTmFtZSkge1xuICAgICAgICBkZXNjcmlwdG9ycy5wdXNoKGJpbmRDbGFzcyhlbCwgY2xhc3NOYW1lLCBzaWcpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzQXR0cikge1xuICAgICAgY29uc3QgYXR0clNwZWMgPSBlbC5nZXRBdHRyaWJ1dGUoREFUQV9TSUdOQUxfQVRUUik7XG4gICAgICBpZiAoYXR0clNwZWMpIHtcbiAgICAgICAgY29uc3QgYXR0ck5hbWVzID0gcGFyc2VTaWduYWxBdHRyU3BlYyhhdHRyU3BlYyk7XG4gICAgICAgIGlmIChhdHRyTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGRlc2NyaXB0b3JzLnB1c2goYmluZEF0dHIoZWwsIGF0dHJOYW1lcywgc2lnKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWhhc0NsYXNzICYmICFoYXNBdHRyKSB7XG4gICAgICBkZXNjcmlwdG9ycy5wdXNoKGJpbmRUZXh0KGVsLCBzaWcpKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGVsIG9mIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbChgWyR7REFUQV9TSUdOQUxfUkVOREVSfV1gKSkge1xuICAgIGNvbnN0IG5hbWUgPSBlbC5nZXRBdHRyaWJ1dGUoREFUQV9TSUdOQUxfUkVOREVSKTtcbiAgICBpZiAoIW5hbWUpIGNvbnRpbnVlO1xuICAgIGNvbnN0IHNpZyA9IHNpZ25hbFJlZ2lzdHJ5LmdldChuYW1lKTtcbiAgICBpZiAoIXNpZykgY29udGludWU7XG5cbiAgICBkZXNjcmlwdG9ycy5wdXNoKGJpbmRSZW5kZXIoZWwsIHNpZywgbGlmZWN5Y2xlKSk7XG4gIH1cblxuICByZXR1cm4gZGVzY3JpcHRvcnM7XG59XG5cbi8qKlxuICogTGlmZWN5Y2xlIHNjb3BlIGZvciBhIGh5ZHJhdGVkIHNoYWRvdyByb290LlxuICpcbiAqIEtlZXBzIGVmZmVjdCBkaXNwb3NlcnMsIGV2ZW50IGxpc3RlbmVyIGNsZWFudXBzLCBhbmQgdGhlIGNhY2hlZCBWTm9kZSBpbiBvbmVcbiAqIHBsYWNlIHNvIHRoZXkgY2FuIGJlIGRpc3Bvc2VkIGFzIGEgdW5pdC4gVGhlIHNjb3BlIGRvZXMgbm90IGRlcGVuZCBvblxuICogT3BlbkVsZW1lbnQ7IGNhbGxlcnMgcHJvdmlkZSB0aGUgc2lnbmFsIHJlZ2lzdHJ5IGFuZCBvcHRpb25hbCByZW5kZXIgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBIeWRyYXRpb25TY29wZSB7XG4gICNlZmZlY3REaXNwb3NlcnM6IFNldDwoKSA9PiB2b2lkPiA9IG5ldyBTZXQoKTtcbiAgI2V2ZW50Q2xlYW51cHM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG4gICNzaWduYWxSZWdpc3RyeTogTWFwPHN0cmluZywgU2lnbmFsPHVua25vd24+PjtcbiAgI3JlbmRlcmVyOiBCaW5kaW5nUmVuZGVyZXI7XG4gICNyZW5kZXI/OiAoKSA9PiB1bmtub3duO1xuICAjY2FjaGVkVk5vZGU6IHVua25vd24gPSB1bmRlZmluZWQ7XG4gICNjYWNoZVZhbGlkID0gZmFsc2U7XG4gICNhY3RpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEh5ZHJhdGlvblNjb3BlT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy4jc2lnbmFsUmVnaXN0cnkgPSBvcHRpb25zLnNpZ25hbFJlZ2lzdHJ5ID8/IG5ldyBNYXAoKTtcbiAgICB0aGlzLiNyZW5kZXJlciA9IG9wdGlvbnMucmVuZGVyZXIgPz8ge1xuICAgICAgcmVuZGVyOiAobm9kZSwgbGlmZWN5Y2xlKSA9PiByZW5kZXJUb0RvbShub2RlLCBsaWZlY3ljbGUpLFxuICAgIH07XG4gICAgdGhpcy4jcmVuZGVyID0gb3B0aW9ucy5yZW5kZXI7XG4gIH1cblxuICAvKiogQ3JlYXRlIGEgQmluZGluZ0xpZmVjeWNsZSBiYWNrZWQgYnkgdGhpcyBzY29wZSdzIGVmZmVjdCBkaXNwb3NlcnMuICovXG4gIGNyZWF0ZUxpZmVjeWNsZSgpOiBCaW5kaW5nTGlmZWN5Y2xlIHtcbiAgICByZXR1cm4geyBkaXNwb3NlcnM6IHRoaXMuI2VmZmVjdERpc3Bvc2VycyB9O1xuICB9XG5cbiAgLyoqIFNldCB0aGUgY2FjaGVkIFZOb2RlIGZvciBldmVudC1tYXJrZXIgaHlkcmF0aW9uLiAqL1xuICBzZXRDYWNoZWRWTm9kZSh2bm9kZTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuI2NhY2hlZFZOb2RlID0gdm5vZGU7XG4gICAgdGhpcy4jY2FjaGVWYWxpZCA9IHRydWU7XG4gIH1cblxuICAvKiogUmVzb2x2ZSBkYXRhLXNpZ25hbCBtYXJrZXJzIGluIGEgc2hhZG93IHJvb3QgYW5kIGFjdGl2YXRlIGJpbmRpbmdzLiAqL1xuICBoeWRyYXRlKHNoYWRvd1Jvb3Q6IFNoYWRvd1Jvb3QsIHNpZ25hbFJlZ2lzdHJ5PzogTWFwPHN0cmluZywgU2lnbmFsPHVua25vd24+Pik6IHZvaWQge1xuICAgIGlmICghdGhpcy4jYWN0aXZlKSByZXR1cm47XG5cbiAgICBjb25zdCByZWdpc3RyeSA9IHNpZ25hbFJlZ2lzdHJ5ID8/IHRoaXMuI3NpZ25hbFJlZ2lzdHJ5O1xuICAgIGNvbnN0IGxpZmVjeWNsZTogQmluZGluZ0xpZmVjeWNsZSA9IHsgZGlzcG9zZXJzOiB0aGlzLiNlZmZlY3REaXNwb3NlcnMgfTtcbiAgICBjb25zdCBkZXNjcmlwdG9ycyA9IGNvbGxlY3RIeWRyYXRpb25CaW5kaW5ncyhzaGFkb3dSb290LCByZWdpc3RyeSwgbGlmZWN5Y2xlKTtcblxuICAgIGZvciAoY29uc3QgZGVzYyBvZiBkZXNjcmlwdG9ycykge1xuICAgICAgaWYgKGRlc2Mua2luZCA9PT0gJ3NpZ25hbC1yZW5kZXInKSB7XG4gICAgICAgIC8vIFByZXNlcnZlIHRoZSBvcmlnaW5hbCBEU0QgaHlkcmF0aW9uIGNvbnRyYWN0OiByZXBsYWNlIGFueSBTU1IgY29udGVudFxuICAgICAgICAvLyB3aXRoIHRoZSBjbGllbnQtcmVuZGVyZWQgVk5vZGUgdHJlZSBvbiBmaXJzdCBhY3RpdmF0aW9uLlxuICAgICAgICB3aGlsZSAoZGVzYy5lbC5maXJzdENoaWxkKSBkZXNjLmVsLnJlbW92ZUNoaWxkKGRlc2MuZWwuZmlyc3RDaGlsZCk7XG4gICAgICB9XG4gICAgICBhcHBseUJpbmRpbmdEZXNjcmlwdG9yKGRlc2MsIGxpZmVjeWNsZSwgdGhpcy4jcmVuZGVyZXIpO1xuICAgIH1cblxuICAgIC8vIEJpbmQgZGVjbGFyYXRpdmUgZXZlbnQgbWFya2VycyBmcm9tIHRoZSBjYWNoZWQgb3IgZnJlc2hseS1yZW5kZXJlZCBWTm9kZS5cbiAgICBjb25zdCB2bm9kZSA9IHRoaXMuI3Jlc29sdmVWTm9kZSgpO1xuICAgIGlmIChpc1ZOb2RlKHZub2RlKSkge1xuICAgICAgY29uc3QgZXZlbnRCaW5kaW5ncyA9IGNvbGxlY3RFdmVudEJpbmRpbmdzKHZub2RlKTtcbiAgICAgIGh5ZHJhdGVFdmVudE1hcmtlcnMoXG4gICAgICAgIHNoYWRvd1Jvb3QsXG4gICAgICAgIGV2ZW50QmluZGluZ3MsXG4gICAgICAgIHRoaXMuI2V2ZW50Q2xlYW51cHMsXG4gICAgICAgIHNoYWRvd1Jvb3QuaG9zdCA/PyB1bmRlZmluZWQsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENocm9taXVtIERTRCBsYXlvdXQgZml4OiBmb3JjZSByZWZsb3cgd2l0aG91dCBET00gcmVidWlsZC5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdm9pZCAoc2hhZG93Um9vdC5ob3N0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkKT8ub2Zmc2V0SGVpZ2h0O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIERpc3Bvc2UgYWxsIGVmZmVjdHMgYW5kIGV2ZW50IGxpc3RlbmVycyB0cmFja2VkIGJ5IHRoaXMgc2NvcGUuICovXG4gIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNhY3RpdmUpIHJldHVybjtcbiAgICB0aGlzLiNhY3RpdmUgPSBmYWxzZTtcblxuICAgIHRoaXMuI2NsZWFyQmluZGluZ3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBlZmZlY3RzIGFuZCBldmVudCBsaXN0ZW5lcnMgd2l0aG91dCBkZWFjdGl2YXRpbmcgdGhlIHNjb3BlLlxuICAgKlxuICAgKiBVc2VkIGJlZm9yZSByZS1yZW5kZXJpbmcgb3IgcmUtaHlkcmF0aW5nIGFuIGV4aXN0aW5nIHNoYWRvdyByb290IHNvIHRoZVxuICAgKiBzY29wZSBjYW4gYWNjZXB0IGEgZnJlc2ggc2V0IG9mIGJpbmRpbmdzLiBEb2VzIG5vdCBnYXRlIG9uICNhY3RpdmUgc29cbiAgICogdGhhdCBhIGRpc2Nvbm5lY3RlZC10aGVuLXJlY29ubmVjdGVkIGVsZW1lbnQgY2FuIGJlIHJlLWh5ZHJhdGVkLlxuICAgKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy4jY2xlYXJCaW5kaW5ncygpO1xuICAgIHRoaXMuI2FjdGl2ZSA9IHRydWU7XG4gIH1cblxuICAjY2xlYXJCaW5kaW5ncygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGQgb2YgdGhpcy4jZWZmZWN0RGlzcG9zZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBkKCk7XG4gICAgICB9IGNhdGNoIHsgLyogaWdub3JlIGRpc3Bvc2UgZXJyb3JzICovIH1cbiAgICB9XG4gICAgdGhpcy4jZWZmZWN0RGlzcG9zZXJzLmNsZWFyKCk7XG5cbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy4jZXZlbnRDbGVhbnVwcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZigpO1xuICAgICAgfSBjYXRjaCB7IC8qIGlnbm9yZSBjbGVhbnVwIGVycm9ycyAqLyB9XG4gICAgfVxuICAgIHRoaXMuI2V2ZW50Q2xlYW51cHMgPSBbXTtcblxuICAgIHRoaXMuI2NhY2hlZFZOb2RlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuI2NhY2hlVmFsaWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBEZWJ1ZyBvYnNlcnZhYmxlcyBmb3IgdGVzdGluZyBhbmQgZGV2dG9vbHMuICovXG4gIGdldCBkZWJ1ZygpOiBIeWRyYXRpb25TY29wZURlYnVnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNBY3RpdmU6IHRoaXMuI2FjdGl2ZSxcbiAgICAgIGVmZmVjdENvdW50OiB0aGlzLiNlZmZlY3REaXNwb3NlcnMuc2l6ZSxcbiAgICAgIGV2ZW50Q2xlYW51cENvdW50OiB0aGlzLiNldmVudENsZWFudXBzLmxlbmd0aCxcbiAgICB9O1xuICB9XG5cbiAgI3Jlc29sdmVWTm9kZSgpOiB1bmtub3duIHtcbiAgICBpZiAodGhpcy4jY2FjaGVWYWxpZCkgcmV0dXJuIHRoaXMuI2NhY2hlZFZOb2RlO1xuICAgIGlmICh0aGlzLiNyZW5kZXIpIHtcbiAgICAgIGNvbnN0IHZub2RlID0gdGhpcy4jcmVuZGVyKCk7XG4gICAgICB0aGlzLiNjYWNoZWRWTm9kZSA9IHZub2RlO1xuICAgICAgdGhpcy4jY2FjaGVWYWxpZCA9IHRydWU7XG4gICAgICByZXR1cm4gdm5vZGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztDQVVDLEdBR0QsU0FBUyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBUyxvQkFBb0IsRUFBRSxtQkFBbUIsUUFBUSx1QkFBdUI7QUFDakYsU0FBUyxXQUFXLFFBQVEsc0JBQXNCO0FBQ2xELFNBQVMsT0FBTyxRQUFRLGFBQWE7QUFDckMsU0FBUyxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLFFBQVEsMEJBQTBCO0FBRXBGLFNBQ0UsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLG1CQUFtQixRQUNkLDBDQUEwQztBQW1CakQsMkVBQTJFLEdBQzNFLFNBQVMseUJBQ1AsVUFBc0IsRUFDdEIsY0FBNEMsRUFDNUMsU0FBMkI7RUFFM0IsTUFBTSxjQUFtQyxFQUFFO0VBRTNDLEtBQUssTUFBTSxNQUFNLFdBQVcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFBRztJQUNoRSxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFDN0IsSUFBSSxDQUFDLE1BQU07SUFDWCxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUM7SUFDL0IsSUFBSSxDQUFDLEtBQUs7SUFFVixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7SUFD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
package/src/index.d.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  * Islands: Custom Element registration + prop deserialization
12
12
  *
13
13
  * Build orchestration (Vite plugins) lives in @openelement/adapter-vite.
14
- * For the unified openElement() entry, use @openelement/app/vite instead.
14
+ * For the unified openElement() entry, use @openelement/adapter-vite.
15
15
  */ export type { AppShellConfig, AppShellDefinition, ComponentLayer, FrameworkOptions, HydrateEventDescriptor, HydrationStrategy, IsrManifestEntry, LayoutsConfig, LocalePath, OpenElementApiContext, OpenElementBuildContextLike, OpenElementMiddleware, OpenElementMiddlewareContext, OpenElementRenderer, RegistryIndex, RegistryIndexEntry, RouteEntry, SafeHtml, SpecialFileType, StrategySource, UnsafeHtml, ValidationError, ValidationResult, ValidationWarning } from '@openelement/protocol/framework';
16
16
  export type { IslandDescriptor, SsrContext } from '@openelement/protocol/context';
17
17
  export { ERROR_PREFIX, ErrorCode, OpenElementError, PropValidationError, RenderError, reportError, setErrorTelemetryHook, SsrRenderError } from "./errors.js";
@@ -30,22 +30,22 @@ export { createRenderDsdStreamMetrics, renderDsd, renderDsdStream } from "./rend
30
30
  export type { RenderDsdOptions } from "./render-dsd.js";
31
31
  export type { RenderDsdStreamChunk, RenderDsdStreamComponent, RenderDsdStreamMetrics, RenderDsdStreamOptions } from "./render-dsd-stream.js";
32
32
  export { camelToKebab, serializeAttrs } from "./render-ir.js";
33
- export type { DomSimulationAttempt, DomSimulationReport, DsdBuildReport, DsdComponent, DsdComponentConstructor, DsdHydrationHintSummary, DsdHydrationStrategySummary, DsdMetricsSummary, DsdOptions, DsdPageDiagnostics, DsdRenderMetrics, HydrationHint, IsrRouteRecord, ManifestDecision, RendererProtocol, RenderErrorCode, RenderHooks, RenderInput, RenderOutput, RenderPhase, SsrAdmissionDecision } from '@openelement/protocol/render';
34
- export type { OpenElementAttribute, OpenElementCssPart, OpenElementCssProperty, OpenElementDeclaration, OpenElementEvent, OpenElementExport, OpenElementExtensions, OpenElementMember, OpenElementModule, OpenElementPackageExtensions, OpenElementPackageManifest, OpenElementSlot } from '@openelement/protocol/manifest';
35
- export type { CemCompatibilityReport, CompatibilityClassification, CompatibilityTier, ManifestValidationReport, ValidatedTag, ValidationDiagnostic } from '@openelement/protocol/manifest';
33
+ export type { DomSimulationAttempt, DomSimulationReport, DsdBuildReport, DsdComponent, DsdComponentConstructor, DsdHydrationHintSummary, DsdHydrationStrategySummary, DsdMetricsSummary, DsdOptions, DsdPageDiagnostics, DsdRenderMetrics, HydrationHint, IsrRouteRecord, ManifestDecision, RenderErrorCode, RenderHooks, RenderInput, RenderOutput, RenderPhase, SsrAdmissionDecision } from '@openelement/protocol/render';
34
+ export type { OpenElementAttribute, OpenElementCssPart, OpenElementDeclaration, OpenElementEvent, OpenElementExport, OpenElementExtensions, OpenElementModule, OpenElementPackageManifest, OpenElementSlot } from '@openelement/protocol/manifest';
35
+ export type { CemCompatibilityReport, CompatibilityClassification, CompatibilityTier } from '@openelement/protocol/manifest';
36
36
  export { escapeAttr, escapeAttrValue, escapeHtml } from "./html-escape.js";
37
37
  export { isSignalLike, unwrapSignalLike } from '@openelement/signal';
38
38
  export type { SignalLike, Unsubscribe } from '@openelement/protocol/signal';
39
39
  export { consumeContext, type Context, createContext, provideContext } from "./signal-context.js";
40
40
  export { createLogger } from "./logger.js";
41
- /** @internal — use @openelement/core/security subpath */ export { DANGEROUS_KEYS } from "./security.js";
42
41
  export { isValidTagName } from "./tag-utils.js";
43
42
  export { bindSsrProps, defineCustomElement, defineIsland, getIslandMeta, getSsrProps } from "./island.js";
44
43
  export type { IslandMeta, IslandOptions } from '@openelement/protocol/island';
45
44
  export { transformIslandSource } from "./island-transform.js";
46
45
  export type { IslandTransformOptions, IslandTransformResult } from '@openelement/protocol/island';
47
- export { applyBindingDescriptor } from "./binding-activation.js";
48
- export type { BindingDescriptor, BindingDispose, BindingLifecycle } from "./binding-descriptor.js";
46
+ export { applyBindingDescriptor, commitBindings, registerBindingKind } from "./binding-activation.js";
47
+ export { bindAttr, bindClass, bindConditional, bindEvent, bindHtml, bindList, bindRef, bindRender, bindStaticAttr, bindStaticBoolean, bindStaticProp, bindStaticStyle, bindText } from "./binding-descriptor.js";
48
+ export type { BindingDescriptor, BindingDispose, BindingLifecycle, BindingRenderer } from "./binding-descriptor.js";
49
49
  export type { Action, ActionContext, DataAdapter, Loader, LoaderContext } from '@openelement/protocol/data';
50
50
  export { clear as clearRegistry, generateIndex, getAll as getAllManifests, getByTagName, register as registerManifest, validate as validateManifest } from "./registry.js";
51
51
  export type { VNode } from '@openelement/protocol/vnode';
package/src/index.js CHANGED
@@ -11,7 +11,7 @@
11
11
  * Islands: Custom Element registration + prop deserialization
12
12
  *
13
13
  * Build orchestration (Vite plugins) lives in @openelement/adapter-vite.
14
- * For the unified openElement() entry, use @openelement/app/vite instead.
14
+ * For the unified openElement() entry, use @openelement/adapter-vite.
15
15
  */ // --- Public API re-exports -----------------------------------------
16
16
  export { ERROR_PREFIX, ErrorCode, OpenElementError, PropValidationError, RenderError, reportError, setErrorTelemetryHook, SsrRenderError } from './errors.js';
17
17
  export { createSsrContext, extractParams, parseQuery } from './context.js';
@@ -27,12 +27,12 @@ export { // v0.24.3: Neutral signal utilities — no template dependency
27
27
  isSignalLike, unwrapSignalLike } from '@openelement/signal';
28
28
  export { consumeContext, createContext, provideContext } from './signal-context.js';
29
29
  export { createLogger } from './logger.js';
30
- /** @internal — use @openelement/core/security subpath */ export { DANGEROUS_KEYS } from './security.js';
31
30
  export { isValidTagName } from './tag-utils.js';
32
31
  export { bindSsrProps, defineCustomElement, defineIsland, getIslandMeta, getSsrProps } from './island.js';
33
32
  export { transformIslandSource } from './island-transform.js';
34
33
  // Unified binding layer (ADR-0109 Phase 1)
35
- export { applyBindingDescriptor } from './binding-activation.js';
34
+ export { applyBindingDescriptor, commitBindings, registerBindingKind } from './binding-activation.js';
35
+ export { bindAttr, bindClass, bindConditional, bindEvent, bindHtml, bindList, bindRef, bindRender, bindStaticAttr, bindStaticBoolean, bindStaticProp, bindStaticStyle, bindText } from './binding-descriptor.js';
36
36
  // WC Package Protocol (v0.17+)
37
37
  export { clear as clearRegistry, generateIndex, getAll as getAllManifests, getByTagName, register as registerManifest, validate as validateManifest } from './registry.js';
38
38
  export { isVNode } from './vnode.js';
@@ -43,4 +43,4 @@ export { renderDsdTree } from './render-ir.js';
43
43
  export { collectEventBindings, createEventMarkerContext, eventMarkerId, eventTypeFromProp, hydrateEventMarkers, serializeEventMarkers } from './event-hydration.js';
44
44
  // static props runtime + Signal unwrap
45
45
  export { disposeStaticProps, handleStaticPropAttributeChange, initializeStaticProps, registerStaticObservedAttributes, syncStaticPropsFromAttributes, unwrap } from './prop.js';
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBvcGVuZWxlbWVudC9jb3JlIC0gUHVyZSBydW50aW1lLlxuICpcbiAqIG9wZW5FbGVtZW50IGlzIGEgc3RhdGljLWZpcnN0IGZyYW1ld29yayB3aXRoIGEgcHVyZSBydW50aW1lIGNvcmU6XG4gKiAtIFplcm8gbm9kZToqIGltcG9ydHMgLSBubyBmaWxlc3lzdGVtLCBubyBwcm9jZXNzLCBubyBwYXRoXG4gKiAtIFplcm8gVml0ZSBkZXBlbmRlbmN5IC0gbm8gUGx1Z2luLCBubyBidWlsZCBvcmNoZXN0cmF0aW9uXG4gKiAtIFplcm8gbnBtOiBzcGVjaWZpZXJzIC0gd29ya3MgaW4gRGVubywgTm9kZSwgQnVuLCBFZGdlXG4gKiAtIFB1cmUgV2ViIFN0YW5kYXJkOiBVUkwsIGZldGNoLCBpbXBvcnQubWV0YS51cmwsIGNvbnNvbGVcbiAqXG4gKiBSZW5kZXJpbmc6IERTRCAoRGVjbGFyYXRpdmUgU2hhZG93IERPTSkgc3RyaW5nIGNvbmNhdGVuYXRpb25cbiAqIElzbGFuZHM6IEN1c3RvbSBFbGVtZW50IHJlZ2lzdHJhdGlvbiArIHByb3AgZGVzZXJpYWxpemF0aW9uXG4gKlxuICogQnVpbGQgb3JjaGVzdHJhdGlvbiAoVml0ZSBwbHVnaW5zKSBsaXZlcyBpbiBAb3BlbmVsZW1lbnQvYWRhcHRlci12aXRlLlxuICogRm9yIHRoZSB1bmlmaWVkIG9wZW5FbGVtZW50KCkgZW50cnksIHVzZSBAb3BlbmVsZW1lbnQvYXBwL3ZpdGUgaW5zdGVhZC5cbiAqL1xuXG4vLyAtLS0gUHVibGljIEFQSSByZS1leHBvcnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIHtcbiAgQXBwU2hlbGxDb25maWcsXG4gIEFwcFNoZWxsRGVmaW5pdGlvbixcbiAgQ29tcG9uZW50TGF5ZXIsXG4gIEZyYW1ld29ya09wdGlvbnMsXG4gIEh5ZHJhdGVFdmVudERlc2NyaXB0b3IsXG4gIEh5ZHJhdGlvblN0cmF0ZWd5LFxuICBJc3JNYW5pZmVzdEVudHJ5LFxuICBMYXlvdXRzQ29uZmlnLFxuICBMb2NhbGVQYXRoLFxuICBPcGVuRWxlbWVudEFwaUNvbnRleHQsXG4gIE9wZW5FbGVtZW50QnVpbGRDb250ZXh0TGlrZSxcbiAgT3BlbkVsZW1lbnRNaWRkbGV3YXJlLFxuICBPcGVuRWxlbWVudE1pZGRsZXdhcmVDb250ZXh0LFxuICBPcGVuRWxlbWVudFJlbmRlcmVyLFxuICBSZWdpc3RyeUluZGV4LFxuICBSZWdpc3RyeUluZGV4RW50cnksXG4gIFJvdXRlRW50cnksXG4gIFNhZmVIdG1sLFxuICBTcGVjaWFsRmlsZVR5cGUsXG4gIFN0cmF0ZWd5U291cmNlLFxuICBVbnNhZmVIdG1sLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFZhbGlkYXRpb25SZXN1bHQsXG4gIFZhbGlkYXRpb25XYXJuaW5nLFxufSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvZnJhbWV3b3JrJztcbmV4cG9ydCB0eXBlIHsgSXNsYW5kRGVzY3JpcHRvciwgU3NyQ29udGV4dCB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9jb250ZXh0JztcblxuZXhwb3J0IHtcbiAgRVJST1JfUFJFRklYLFxuICBFcnJvckNvZGUsXG4gIE9wZW5FbGVtZW50RXJyb3IsXG4gIFByb3BWYWxpZGF0aW9uRXJyb3IsXG4gIFJlbmRlckVycm9yLFxuICByZXBvcnRFcnJvcixcbiAgc2V0RXJyb3JUZWxlbWV0cnlIb29rLFxuICBTc3JSZW5kZXJFcnJvcixcbn0gZnJvbSAnLi9lcnJvcnMuanMnO1xuZXhwb3J0IHR5cGUgeyBFcnJvclBoYXNlLCBFcnJvclNldmVyaXR5LCBFcnJvclRlbGVtZXRyeUhvb2sgfSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvZXJyb3JzJztcbmV4cG9ydCB7IGNyZWF0ZVNzckNvbnRleHQsIGV4dHJhY3RQYXJhbXMsIHBhcnNlUXVlcnkgfSBmcm9tICcuL2NvbnRleHQuanMnO1xuZXhwb3J0IHsgcmVuZGVyU3NyRXJyb3IsIHdyYXBJbkRvY3VtZW50IH0gZnJvbSAnLi9odG1sLWVzY2FwZS5qcyc7XG5leHBvcnQgeyBjcmVhdGVJc3JDYWNoZUtleSwgaXNJc3JSb3V0ZUNvbmZpZywgTWVtb3J5SXNyQ2FjaGUgfSBmcm9tICcuL2lzci5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIENhY2hlQWRhcHRlcixcbiAgQ2FjaGVFbnRyeSxcbiAgSXNyQ2FjaGVFbnRyeSxcbiAgSXNyQ2FjaGVSZXN1bHQsXG4gIElzckNhY2hlU3RhdGUsXG4gIElzclJvdXRlQ29uZmlnLFxufSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvaXNyJztcbmV4cG9ydCB7IGZpbmRJc3JNYW5pZmVzdEVudHJ5LCByZW5kZXJJc3JSZXNwb25zZSB9IGZyb20gJy4vaXNyLXJ1bnRpbWUuanMnO1xuZXhwb3J0IHR5cGUge1xuICBJc3JSdW50aW1lT3B0aW9ucyxcbiAgSXNyUnVudGltZVJlbmRlckNvbnRleHQsXG4gIElzclJ1bnRpbWVSZW5kZXJSZXN1bHQsXG4gIElzclJ1bnRpbWVSZXN1bHQsXG4gIElzclJ1bnRpbWVTdGF0ZSxcbn0gZnJvbSAnLi9pc3ItcnVudGltZS5qcyc7XG5leHBvcnQgeyBTdHlsZVNoZWV0IH0gZnJvbSAnLi9zdHlsZS1zaGVldC5qcyc7XG5leHBvcnQgdHlwZSB7IFN0eWxlU2hlZXRMaWtlLCBTdHlsZVNoZWV0UnVsZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9zdHlsZS1zaGVldCc7XG5leHBvcnQgeyBiaW5kSHlkcmF0ZUV2ZW50cyB9IGZyb20gJy4vZHNkLWh5ZHJhdGlvbi1ldmVudHMuanMnO1xuZXhwb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciwgRHNkSHlkcmF0aW9uIH0gZnJvbSAnLi9kc2QtaHlkcmF0aW9uLmpzJztcbmV4cG9ydCB7IGNyZWF0ZVJlbmRlckRzZFN0cmVhbU1ldHJpY3MsIHJlbmRlckRzZCwgcmVuZGVyRHNkU3RyZWFtIH0gZnJvbSAnLi9yZW5kZXItZHNkLmpzJztcbmV4cG9ydCB0eXBlIHsgUmVuZGVyRHNkT3B0aW9ucyB9IGZyb20gJy4vcmVuZGVyLWRzZC5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIFJlbmRlckRzZFN0cmVhbUNodW5rLFxuICBSZW5kZXJEc2RTdHJlYW1Db21wb25lbnQsXG4gIFJlbmRlckRzZFN0cmVhbU1ldHJpY3MsXG4gIFJlbmRlckRzZFN0cmVhbU9wdGlvbnMsXG59IGZyb20gJy4vcmVuZGVyLWRzZC1zdHJlYW0uanMnO1xuZXhwb3J0IHsgY2FtZWxUb0tlYmFiLCBzZXJpYWxpemVBdHRycyB9IGZyb20gJy4vcmVuZGVyLWlyLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgRG9tU2ltdWxhdGlvbkF0dGVtcHQsXG4gIERvbVNpbXVsYXRpb25SZXBvcnQsXG4gIERzZEJ1aWxkUmVwb3J0LFxuICBEc2RDb21wb25lbnQsXG4gIERzZENvbXBvbmVudENvbnN0cnVjdG9yLFxuICBEc2RIeWRyYXRpb25IaW50U3VtbWFyeSxcbiAgRHNkSHlkcmF0aW9uU3RyYXRlZ3lTdW1tYXJ5LFxuICBEc2RNZXRyaWNzU3VtbWFyeSxcbiAgRHNkT3B0aW9ucyxcbiAgRHNkUGFnZURpYWdub3N0aWNzLFxuICBEc2RSZW5kZXJNZXRyaWNzLFxuICBIeWRyYXRpb25IaW50LFxuICBJc3JSb3V0ZVJlY29yZCxcbiAgTWFuaWZlc3REZWNpc2lvbixcbiAgUmVuZGVyZXJQcm90b2NvbCxcbiAgUmVuZGVyRXJyb3JDb2RlLFxuICBSZW5kZXJIb29rcyxcbiAgUmVuZGVySW5wdXQsXG4gIFJlbmRlck91dHB1dCxcbiAgUmVuZGVyUGhhc2UsXG4gIFNzckFkbWlzc2lvbkRlY2lzaW9uLFxufSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvcmVuZGVyJztcbmV4cG9ydCB0eXBlIHtcbiAgT3BlbkVsZW1lbnRBdHRyaWJ1dGUsXG4gIE9wZW5FbGVtZW50Q3NzUGFydCxcbiAgT3BlbkVsZW1lbnRDc3NQcm9wZXJ0eSxcbiAgT3BlbkVsZW1lbnREZWNsYXJhdGlvbixcbiAgT3BlbkVsZW1lbnRFdmVudCxcbiAgT3BlbkVsZW1lbnRFeHBvcnQsXG4gIE9wZW5FbGVtZW50RXh0ZW5zaW9ucyxcbiAgT3BlbkVsZW1lbnRNZW1iZXIsXG4gIE9wZW5FbGVtZW50TW9kdWxlLFxuICBPcGVuRWxlbWVudFBhY2thZ2VFeHRlbnNpb25zLFxuICBPcGVuRWxlbWVudFBhY2thZ2VNYW5pZmVzdCxcbiAgT3BlbkVsZW1lbnRTbG90LFxufSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvbWFuaWZlc3QnO1xuZXhwb3J0IHR5cGUge1xuICBDZW1Db21wYXRpYmlsaXR5UmVwb3J0LFxuICBDb21wYXRpYmlsaXR5Q2xhc3NpZmljYXRpb24sXG4gIENvbXBhdGliaWxpdHlUaWVyLFxuICBNYW5pZmVzdFZhbGlkYXRpb25SZXBvcnQsXG4gIFZhbGlkYXRlZFRhZyxcbiAgVmFsaWRhdGlvbkRpYWdub3N0aWMsXG59IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9tYW5pZmVzdCc7XG5leHBvcnQgeyBlc2NhcGVBdHRyLCBlc2NhcGVBdHRyVmFsdWUsIGVzY2FwZUh0bWwgfSBmcm9tICcuL2h0bWwtZXNjYXBlLmpzJztcbmV4cG9ydCB7XG4gIC8vIHYwLjI0LjM6IE5ldXRyYWwgc2lnbmFsIHV0aWxpdGllcyDigJQgbm8gdGVtcGxhdGUgZGVwZW5kZW5jeVxuICBpc1NpZ25hbExpa2UsXG4gIHVud3JhcFNpZ25hbExpa2UsXG59IGZyb20gJ0BvcGVuZWxlbWVudC9zaWduYWwnO1xuZXhwb3J0IHR5cGUgeyBTaWduYWxMaWtlLCBVbnN1YnNjcmliZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9zaWduYWwnO1xuZXhwb3J0IHsgY29uc3VtZUNvbnRleHQsIHR5cGUgQ29udGV4dCwgY3JlYXRlQ29udGV4dCwgcHJvdmlkZUNvbnRleHQgfSBmcm9tICcuL3NpZ25hbC1jb250ZXh0LmpzJztcbmV4cG9ydCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyLmpzJztcbi8qKiBAaW50ZXJuYWwg4oCUIHVzZSBAb3BlbmVsZW1lbnQvY29yZS9zZWN1cml0eSBzdWJwYXRoICovXG5leHBvcnQgeyBEQU5HRVJPVVNfS0VZUyB9IGZyb20gJy4vc2VjdXJpdHkuanMnO1xuZXhwb3J0IHsgaXNWYWxpZFRhZ05hbWUgfSBmcm9tICcuL3RhZy11dGlscy5qcyc7XG5leHBvcnQge1xuICBiaW5kU3NyUHJvcHMsXG4gIGRlZmluZUN1c3RvbUVsZW1lbnQsXG4gIGRlZmluZUlzbGFuZCxcbiAgZ2V0SXNsYW5kTWV0YSxcbiAgZ2V0U3NyUHJvcHMsXG59IGZyb20gJy4vaXNsYW5kLmpzJztcbmV4cG9ydCB0eXBlIHsgSXNsYW5kTWV0YSwgSXNsYW5kT3B0aW9ucyB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9pc2xhbmQnO1xuZXhwb3J0IHsgdHJhbnNmb3JtSXNsYW5kU291cmNlIH0gZnJvbSAnLi9pc2xhbmQtdHJhbnNmb3JtLmpzJztcbmV4cG9ydCB0eXBlIHsgSXNsYW5kVHJhbnNmb3JtT3B0aW9ucywgSXNsYW5kVHJhbnNmb3JtUmVzdWx0IH0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL2lzbGFuZCc7XG5cbi8vIFVuaWZpZWQgYmluZGluZyBsYXllciAoQURSLTAxMDkgUGhhc2UgMSlcbmV4cG9ydCB7IGFwcGx5QmluZGluZ0Rlc2NyaXB0b3IgfSBmcm9tICcuL2JpbmRpbmctYWN0aXZhdGlvbi5qcyc7XG5leHBvcnQgdHlwZSB7IEJpbmRpbmdEZXNjcmlwdG9yLCBCaW5kaW5nRGlzcG9zZSwgQmluZGluZ0xpZmVjeWNsZSB9IGZyb20gJy4vYmluZGluZy1kZXNjcmlwdG9yLmpzJztcblxuLy8gRGF0YSBhZGFwdGVycyDigJQgdHlwZSBjb250cmFjdCBzdXJmYWNlIG9ubHkgKEFEUi0wMDk1KVxuZXhwb3J0IHR5cGUge1xuICBBY3Rpb24sXG4gIEFjdGlvbkNvbnRleHQsXG4gIERhdGFBZGFwdGVyLFxuICBMb2FkZXIsXG4gIExvYWRlckNvbnRleHQsXG59IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9kYXRhJztcblxuLy8gV0MgUGFja2FnZSBQcm90b2NvbCAodjAuMTcrKVxuZXhwb3J0IHtcbiAgY2xlYXIgYXMgY2xlYXJSZWdpc3RyeSxcbiAgZ2VuZXJhdGVJbmRleCxcbiAgZ2V0QWxsIGFzIGdldEFsbE1hbmlmZXN0cyxcbiAgZ2V0QnlUYWdOYW1lLFxuICByZWdpc3RlciBhcyByZWdpc3Rlck1hbmlmZXN0LFxuICB2YWxpZGF0ZSBhcyB2YWxpZGF0ZU1hbmlmZXN0LFxufSBmcm9tICcuL3JlZ2lzdHJ5LmpzJztcbi8vIHYwLjI0LjEgKEFEUi0wMDU3KTogSlNYICsgU2lnbmFsIGNvbXBvbmVudCBtb2RlbFxuLy8gVk5vZGUgJiBqc3gtcnVudGltZVxuZXhwb3J0IHR5cGUgeyBWTm9kZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC92bm9kZSc7XG5leHBvcnQgeyBpc1ZOb2RlIH0gZnJvbSAnLi92bm9kZS5qcyc7XG5leHBvcnQgeyBGcmFnbWVudCwgdHJ1c3RlZEh0bWwgfSBmcm9tICcuL2pzeC1ydW50aW1lLmpzJztcbi8vIFJlbmRlcmVyc1xuZXhwb3J0IHsgcmVuZGVyVG9Eb20gfSBmcm9tICcuL2pzeC1yZW5kZXItZG9tLmpzJztcbmV4cG9ydCB7IHJlbmRlckRzZFRyZWUgfSBmcm9tICcuL3JlbmRlci1pci5qcyc7XG5leHBvcnQge1xuICBjb2xsZWN0RXZlbnRCaW5kaW5ncyxcbiAgY3JlYXRlRXZlbnRNYXJrZXJDb250ZXh0LFxuICB0eXBlIEV2ZW50QmluZGluZ1JlY29yZCxcbiAgdHlwZSBFdmVudE1hcmtlckNvbnRleHQsXG4gIGV2ZW50TWFya2VySWQsXG4gIGV2ZW50VHlwZUZyb21Qcm9wLFxuICBoeWRyYXRlRXZlbnRNYXJrZXJzLFxuICBzZXJpYWxpemVFdmVudE1hcmtlcnMsXG59IGZyb20gJy4vZXZlbnQtaHlkcmF0aW9uLmpzJztcbi8vIHN0YXRpYyBwcm9wcyBydW50aW1lICsgU2lnbmFsIHVud3JhcFxuZXhwb3J0IHtcbiAgZGlzcG9zZVN0YXRpY1Byb3BzLFxuICBoYW5kbGVTdGF0aWNQcm9wQXR0cmlidXRlQ2hhbmdlLFxuICBpbml0aWFsaXplU3RhdGljUHJvcHMsXG4gIHJlZ2lzdGVyU3RhdGljT2JzZXJ2ZWRBdHRyaWJ1dGVzLFxuICBzeW5jU3RhdGljUHJvcHNGcm9tQXR0cmlidXRlcyxcbiAgdW53cmFwLFxufSBmcm9tICcuL3Byb3AuanMnO1xuZXhwb3J0IHR5cGUge1xuICBOb3JtYWxpemVkUHJvcERlY2wsXG4gIFByb3BEZWNsLFxuICBQcm9wRGVjbEZ1bGwsXG4gIFByb3BEZWNsU2hvcnRoYW5kLFxuICBQcm9wc0Zyb20sXG4gIFByb3BUeXBlLFxufSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvcHJvcCc7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FFRCxzRUFBc0U7QUE4QnRFLFNBQ0UsWUFBWSxFQUNaLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLGNBQWMsUUFDVCxjQUFjO0FBRXJCLFNBQVMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVUsUUFBUSxlQUFlO0FBQzNFLFNBQVMsY0FBYyxFQUFFLGNBQWMsUUFBUSxtQkFBbUI7QUFDbEUsU0FBUyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLFFBQVEsV0FBVztBQVMvRSxTQUFTLG9CQUFvQixFQUFFLGlCQUFpQixRQUFRLG1CQUFtQjtBQVEzRSxTQUFTLFVBQVUsUUFBUSxtQkFBbUI7QUFFOUMsU0FBUyxpQkFBaUIsUUFBUSw0QkFBNEI7QUFFOUQsU0FBUyw0QkFBNEIsRUFBRSxTQUFTLEVBQUUsZUFBZSxRQUFRLGtCQUFrQjtBQVEzRixTQUFTLFlBQVksRUFBRSxjQUFjLFFBQVEsaUJBQWlCO0FBOEM5RCxTQUFTLFVBQVUsRUFBRSxlQUFlLEVBQUUsVUFBVSxRQUFRLG1CQUFtQjtBQUMzRSxTQUNFLDZEQUE2RDtBQUM3RCxZQUFZLEVBQ1osZ0JBQWdCLFFBQ1gsc0JBQXNCO0FBRTdCLFNBQVMsY0FBYyxFQUFnQixhQUFhLEVBQUUsY0FBYyxRQUFRLHNCQUFzQjtBQUNsRyxTQUFTLFlBQVksUUFBUSxjQUFjO0FBQzNDLHVEQUF1RCxHQUN2RCxTQUFTLGNBQWMsUUFBUSxnQkFBZ0I7QUFDL0MsU0FBUyxjQUFjLFFBQVEsaUJBQWlCO0FBQ2hELFNBQ0UsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osYUFBYSxFQUNiLFdBQVcsUUFDTixjQUFjO0FBRXJCLFNBQVMscUJBQXFCLFFBQVEsd0JBQXdCO0FBRzlELDJDQUEyQztBQUMzQyxTQUFTLHNCQUFzQixRQUFRLDBCQUEwQjtBQVlqRSwrQkFBK0I7QUFDL0IsU0FDRSxTQUFTLGFBQWEsRUFDdEIsYUFBYSxFQUNiLFVBQVUsZUFBZSxFQUN6QixZQUFZLEVBQ1osWUFBWSxnQkFBZ0IsRUFDNUIsWUFBWSxnQkFBZ0IsUUFDdkIsZ0JBQWdCO0FBSXZCLFNBQVMsT0FBTyxRQUFRLGFBQWE7QUFDckMsU0FBUyxRQUFRLEVBQUUsV0FBVyxRQUFRLG1CQUFtQjtBQUN6RCxZQUFZO0FBQ1osU0FBUyxXQUFXLFFBQVEsc0JBQXNCO0FBQ2xELFNBQVMsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUNFLG9CQUFvQixFQUNwQix3QkFBd0IsRUFHeEIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIscUJBQXFCLFFBQ2hCLHVCQUF1QjtBQUM5Qix1Q0FBdUM7QUFDdkMsU0FDRSxrQkFBa0IsRUFDbEIsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQixnQ0FBZ0MsRUFDaEMsNkJBQTZCLEVBQzdCLE1BQU0sUUFDRCxZQUFZIn0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy9jb3JlL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBvcGVuZWxlbWVudC9jb3JlIC0gUHVyZSBydW50aW1lLlxuICpcbiAqIG9wZW5FbGVtZW50IGlzIGEgc3RhdGljLWZpcnN0IGZyYW1ld29yayB3aXRoIGEgcHVyZSBydW50aW1lIGNvcmU6XG4gKiAtIFplcm8gbm9kZToqIGltcG9ydHMgLSBubyBmaWxlc3lzdGVtLCBubyBwcm9jZXNzLCBubyBwYXRoXG4gKiAtIFplcm8gVml0ZSBkZXBlbmRlbmN5IC0gbm8gUGx1Z2luLCBubyBidWlsZCBvcmNoZXN0cmF0aW9uXG4gKiAtIFplcm8gbnBtOiBzcGVjaWZpZXJzIC0gd29ya3MgaW4gRGVubywgTm9kZSwgQnVuLCBFZGdlXG4gKiAtIFB1cmUgV2ViIFN0YW5kYXJkOiBVUkwsIGZldGNoLCBpbXBvcnQubWV0YS51cmwsIGNvbnNvbGVcbiAqXG4gKiBSZW5kZXJpbmc6IERTRCAoRGVjbGFyYXRpdmUgU2hhZG93IERPTSkgc3RyaW5nIGNvbmNhdGVuYXRpb25cbiAqIElzbGFuZHM6IEN1c3RvbSBFbGVtZW50IHJlZ2lzdHJhdGlvbiArIHByb3AgZGVzZXJpYWxpemF0aW9uXG4gKlxuICogQnVpbGQgb3JjaGVzdHJhdGlvbiAoVml0ZSBwbHVnaW5zKSBsaXZlcyBpbiBAb3BlbmVsZW1lbnQvYWRhcHRlci12aXRlLlxuICogRm9yIHRoZSB1bmlmaWVkIG9wZW5FbGVtZW50KCkgZW50cnksIHVzZSBAb3BlbmVsZW1lbnQvYWRhcHRlci12aXRlLlxuICovXG5cbi8vIC0tLSBQdWJsaWMgQVBJIHJlLWV4cG9ydHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUge1xuICBBcHBTaGVsbENvbmZpZyxcbiAgQXBwU2hlbGxEZWZpbml0aW9uLFxuICBDb21wb25lbnRMYXllcixcbiAgRnJhbWV3b3JrT3B0aW9ucyxcbiAgSHlkcmF0ZUV2ZW50RGVzY3JpcHRvcixcbiAgSHlkcmF0aW9uU3RyYXRlZ3ksXG4gIElzck1hbmlmZXN0RW50cnksXG4gIExheW91dHNDb25maWcsXG4gIExvY2FsZVBhdGgsXG4gIE9wZW5FbGVtZW50QXBpQ29udGV4dCxcbiAgT3BlbkVsZW1lbnRCdWlsZENvbnRleHRMaWtlLFxuICBPcGVuRWxlbWVudE1pZGRsZXdhcmUsXG4gIE9wZW5FbGVtZW50TWlkZGxld2FyZUNvbnRleHQsXG4gIE9wZW5FbGVtZW50UmVuZGVyZXIsXG4gIFJlZ2lzdHJ5SW5kZXgsXG4gIFJlZ2lzdHJ5SW5kZXhFbnRyeSxcbiAgUm91dGVFbnRyeSxcbiAgU2FmZUh0bWwsXG4gIFNwZWNpYWxGaWxlVHlwZSxcbiAgU3RyYXRlZ3lTb3VyY2UsXG4gIFVuc2FmZUh0bWwsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgVmFsaWRhdGlvblJlc3VsdCxcbiAgVmFsaWRhdGlvbldhcm5pbmcsXG59IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9mcmFtZXdvcmsnO1xuZXhwb3J0IHR5cGUgeyBJc2xhbmREZXNjcmlwdG9yLCBTc3JDb250ZXh0IH0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL2NvbnRleHQnO1xuXG5leHBvcnQge1xuICBFUlJPUl9QUkVGSVgsXG4gIEVycm9yQ29kZSxcbiAgT3BlbkVsZW1lbnRFcnJvcixcbiAgUHJvcFZhbGlkYXRpb25FcnJvcixcbiAgUmVuZGVyRXJyb3IsXG4gIHJlcG9ydEVycm9yLFxuICBzZXRFcnJvclRlbGVtZXRyeUhvb2ssXG4gIFNzclJlbmRlckVycm9yLFxufSBmcm9tICcuL2Vycm9ycy5qcyc7XG5leHBvcnQgdHlwZSB7IEVycm9yUGhhc2UsIEVycm9yU2V2ZXJpdHksIEVycm9yVGVsZW1ldHJ5SG9vayB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9lcnJvcnMnO1xuZXhwb3J0IHsgY3JlYXRlU3NyQ29udGV4dCwgZXh0cmFjdFBhcmFtcywgcGFyc2VRdWVyeSB9IGZyb20gJy4vY29udGV4dC5qcyc7XG5leHBvcnQgeyByZW5kZXJTc3JFcnJvciwgd3JhcEluRG9jdW1lbnQgfSBmcm9tICcuL2h0bWwtZXNjYXBlLmpzJztcbmV4cG9ydCB7IGNyZWF0ZUlzckNhY2hlS2V5LCBpc0lzclJvdXRlQ29uZmlnLCBNZW1vcnlJc3JDYWNoZSB9IGZyb20gJy4vaXNyLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2FjaGVBZGFwdGVyLFxuICBDYWNoZUVudHJ5LFxuICBJc3JDYWNoZUVudHJ5LFxuICBJc3JDYWNoZVJlc3VsdCxcbiAgSXNyQ2FjaGVTdGF0ZSxcbiAgSXNyUm91dGVDb25maWcsXG59IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9pc3InO1xuZXhwb3J0IHsgZmluZElzck1hbmlmZXN0RW50cnksIHJlbmRlcklzclJlc3BvbnNlIH0gZnJvbSAnLi9pc3ItcnVudGltZS5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIElzclJ1bnRpbWVPcHRpb25zLFxuICBJc3JSdW50aW1lUmVuZGVyQ29udGV4dCxcbiAgSXNyUnVudGltZVJlbmRlclJlc3VsdCxcbiAgSXNyUnVudGltZVJlc3VsdCxcbiAgSXNyUnVudGltZVN0YXRlLFxufSBmcm9tICcuL2lzci1ydW50aW1lLmpzJztcbmV4cG9ydCB7IFN0eWxlU2hlZXQgfSBmcm9tICcuL3N0eWxlLXNoZWV0LmpzJztcbmV4cG9ydCB0eXBlIHsgU3R5bGVTaGVldExpa2UsIFN0eWxlU2hlZXRSdWxlIH0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL3N0eWxlLXNoZWV0JztcbmV4cG9ydCB7IGJpbmRIeWRyYXRlRXZlbnRzIH0gZnJvbSAnLi9kc2QtaHlkcmF0aW9uLWV2ZW50cy5qcyc7XG5leHBvcnQgdHlwZSB7IENvbnN0cnVjdG9yLCBEc2RIeWRyYXRpb24gfSBmcm9tICcuL2RzZC1oeWRyYXRpb24uanMnO1xuZXhwb3J0IHsgY3JlYXRlUmVuZGVyRHNkU3RyZWFtTWV0cmljcywgcmVuZGVyRHNkLCByZW5kZXJEc2RTdHJlYW0gfSBmcm9tICcuL3JlbmRlci1kc2QuanMnO1xuZXhwb3J0IHR5cGUgeyBSZW5kZXJEc2RPcHRpb25zIH0gZnJvbSAnLi9yZW5kZXItZHNkLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVuZGVyRHNkU3RyZWFtQ2h1bmssXG4gIFJlbmRlckRzZFN0cmVhbUNvbXBvbmVudCxcbiAgUmVuZGVyRHNkU3RyZWFtTWV0cmljcyxcbiAgUmVuZGVyRHNkU3RyZWFtT3B0aW9ucyxcbn0gZnJvbSAnLi9yZW5kZXItZHNkLXN0cmVhbS5qcyc7XG5leHBvcnQgeyBjYW1lbFRvS2ViYWIsIHNlcmlhbGl6ZUF0dHJzIH0gZnJvbSAnLi9yZW5kZXItaXIuanMnO1xuZXhwb3J0IHR5cGUge1xuICBEb21TaW11bGF0aW9uQXR0ZW1wdCxcbiAgRG9tU2ltdWxhdGlvblJlcG9ydCxcbiAgRHNkQnVpbGRSZXBvcnQsXG4gIERzZENvbXBvbmVudCxcbiAgRHNkQ29tcG9uZW50Q29uc3RydWN0b3IsXG4gIERzZEh5ZHJhdGlvbkhpbnRTdW1tYXJ5LFxuICBEc2RIeWRyYXRpb25TdHJhdGVneVN1bW1hcnksXG4gIERzZE1ldHJpY3NTdW1tYXJ5LFxuICBEc2RPcHRpb25zLFxuICBEc2RQYWdlRGlhZ25vc3RpY3MsXG4gIERzZFJlbmRlck1ldHJpY3MsXG4gIEh5ZHJhdGlvbkhpbnQsXG4gIElzclJvdXRlUmVjb3JkLFxuICBNYW5pZmVzdERlY2lzaW9uLFxuICBSZW5kZXJFcnJvckNvZGUsXG4gIFJlbmRlckhvb2tzLFxuICBSZW5kZXJJbnB1dCxcbiAgUmVuZGVyT3V0cHV0LFxuICBSZW5kZXJQaGFzZSxcbiAgU3NyQWRtaXNzaW9uRGVjaXNpb24sXG59IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9yZW5kZXInO1xuZXhwb3J0IHR5cGUge1xuICBPcGVuRWxlbWVudEF0dHJpYnV0ZSxcbiAgT3BlbkVsZW1lbnRDc3NQYXJ0LFxuICBPcGVuRWxlbWVudERlY2xhcmF0aW9uLFxuICBPcGVuRWxlbWVudEV2ZW50LFxuICBPcGVuRWxlbWVudEV4cG9ydCxcbiAgT3BlbkVsZW1lbnRFeHRlbnNpb25zLFxuICBPcGVuRWxlbWVudE1vZHVsZSxcbiAgT3BlbkVsZW1lbnRQYWNrYWdlTWFuaWZlc3QsXG4gIE9wZW5FbGVtZW50U2xvdCxcbn0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL21hbmlmZXN0JztcbmV4cG9ydCB0eXBlIHtcbiAgQ2VtQ29tcGF0aWJpbGl0eVJlcG9ydCxcbiAgQ29tcGF0aWJpbGl0eUNsYXNzaWZpY2F0aW9uLFxuICBDb21wYXRpYmlsaXR5VGllcixcbn0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL21hbmlmZXN0JztcbmV4cG9ydCB7IGVzY2FwZUF0dHIsIGVzY2FwZUF0dHJWYWx1ZSwgZXNjYXBlSHRtbCB9IGZyb20gJy4vaHRtbC1lc2NhcGUuanMnO1xuZXhwb3J0IHtcbiAgLy8gdjAuMjQuMzogTmV1dHJhbCBzaWduYWwgdXRpbGl0aWVzIOKAlCBubyB0ZW1wbGF0ZSBkZXBlbmRlbmN5XG4gIGlzU2lnbmFsTGlrZSxcbiAgdW53cmFwU2lnbmFsTGlrZSxcbn0gZnJvbSAnQG9wZW5lbGVtZW50L3NpZ25hbCc7XG5leHBvcnQgdHlwZSB7IFNpZ25hbExpa2UsIFVuc3Vic2NyaWJlIH0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL3NpZ25hbCc7XG5leHBvcnQgeyBjb25zdW1lQ29udGV4dCwgdHlwZSBDb250ZXh0LCBjcmVhdGVDb250ZXh0LCBwcm92aWRlQ29udGV4dCB9IGZyb20gJy4vc2lnbmFsLWNvbnRleHQuanMnO1xuZXhwb3J0IHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXIuanMnO1xuZXhwb3J0IHsgaXNWYWxpZFRhZ05hbWUgfSBmcm9tICcuL3RhZy11dGlscy5qcyc7XG5leHBvcnQge1xuICBiaW5kU3NyUHJvcHMsXG4gIGRlZmluZUN1c3RvbUVsZW1lbnQsXG4gIGRlZmluZUlzbGFuZCxcbiAgZ2V0SXNsYW5kTWV0YSxcbiAgZ2V0U3NyUHJvcHMsXG59IGZyb20gJy4vaXNsYW5kLmpzJztcbmV4cG9ydCB0eXBlIHsgSXNsYW5kTWV0YSwgSXNsYW5kT3B0aW9ucyB9IGZyb20gJ0BvcGVuZWxlbWVudC9wcm90b2NvbC9pc2xhbmQnO1xuZXhwb3J0IHsgdHJhbnNmb3JtSXNsYW5kU291cmNlIH0gZnJvbSAnLi9pc2xhbmQtdHJhbnNmb3JtLmpzJztcbmV4cG9ydCB0eXBlIHsgSXNsYW5kVHJhbnNmb3JtT3B0aW9ucywgSXNsYW5kVHJhbnNmb3JtUmVzdWx0IH0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL2lzbGFuZCc7XG5cbi8vIFVuaWZpZWQgYmluZGluZyBsYXllciAoQURSLTAxMDkgUGhhc2UgMSlcbmV4cG9ydCB7XG4gIGFwcGx5QmluZGluZ0Rlc2NyaXB0b3IsXG4gIGNvbW1pdEJpbmRpbmdzLFxuICByZWdpc3RlckJpbmRpbmdLaW5kLFxufSBmcm9tICcuL2JpbmRpbmctYWN0aXZhdGlvbi5qcyc7XG5leHBvcnQge1xuICBiaW5kQXR0cixcbiAgYmluZENsYXNzLFxuICBiaW5kQ29uZGl0aW9uYWwsXG4gIGJpbmRFdmVudCxcbiAgYmluZEh0bWwsXG4gIGJpbmRMaXN0LFxuICBiaW5kUmVmLFxuICBiaW5kUmVuZGVyLFxuICBiaW5kU3RhdGljQXR0cixcbiAgYmluZFN0YXRpY0Jvb2xlYW4sXG4gIGJpbmRTdGF0aWNQcm9wLFxuICBiaW5kU3RhdGljU3R5bGUsXG4gIGJpbmRUZXh0LFxufSBmcm9tICcuL2JpbmRpbmctZGVzY3JpcHRvci5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIEJpbmRpbmdEZXNjcmlwdG9yLFxuICBCaW5kaW5nRGlzcG9zZSxcbiAgQmluZGluZ0xpZmVjeWNsZSxcbiAgQmluZGluZ1JlbmRlcmVyLFxufSBmcm9tICcuL2JpbmRpbmctZGVzY3JpcHRvci5qcyc7XG5cbi8vIERhdGEgYWRhcHRlcnMg4oCUIHR5cGUgY29udHJhY3Qgc3VyZmFjZSBvbmx5IChBRFItMDA5NSlcbmV4cG9ydCB0eXBlIHtcbiAgQWN0aW9uLFxuICBBY3Rpb25Db250ZXh0LFxuICBEYXRhQWRhcHRlcixcbiAgTG9hZGVyLFxuICBMb2FkZXJDb250ZXh0LFxufSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvZGF0YSc7XG5cbi8vIFdDIFBhY2thZ2UgUHJvdG9jb2wgKHYwLjE3KylcbmV4cG9ydCB7XG4gIGNsZWFyIGFzIGNsZWFyUmVnaXN0cnksXG4gIGdlbmVyYXRlSW5kZXgsXG4gIGdldEFsbCBhcyBnZXRBbGxNYW5pZmVzdHMsXG4gIGdldEJ5VGFnTmFtZSxcbiAgcmVnaXN0ZXIgYXMgcmVnaXN0ZXJNYW5pZmVzdCxcbiAgdmFsaWRhdGUgYXMgdmFsaWRhdGVNYW5pZmVzdCxcbn0gZnJvbSAnLi9yZWdpc3RyeS5qcyc7XG4vLyB2MC4yNC4xIChBRFItMDA1Nyk6IEpTWCArIFNpZ25hbCBjb21wb25lbnQgbW9kZWxcbi8vIFZOb2RlICYganN4LXJ1bnRpbWVcbmV4cG9ydCB0eXBlIHsgVk5vZGUgfSBmcm9tICdAb3BlbmVsZW1lbnQvcHJvdG9jb2wvdm5vZGUnO1xuZXhwb3J0IHsgaXNWTm9kZSB9IGZyb20gJy4vdm5vZGUuanMnO1xuZXhwb3J0IHsgRnJhZ21lbnQsIHRydXN0ZWRIdG1sIH0gZnJvbSAnLi9qc3gtcnVudGltZS5qcyc7XG4vLyBSZW5kZXJlcnNcbmV4cG9ydCB7IHJlbmRlclRvRG9tIH0gZnJvbSAnLi9qc3gtcmVuZGVyLWRvbS5qcyc7XG5leHBvcnQgeyByZW5kZXJEc2RUcmVlIH0gZnJvbSAnLi9yZW5kZXItaXIuanMnO1xuZXhwb3J0IHtcbiAgY29sbGVjdEV2ZW50QmluZGluZ3MsXG4gIGNyZWF0ZUV2ZW50TWFya2VyQ29udGV4dCxcbiAgdHlwZSBFdmVudEJpbmRpbmdSZWNvcmQsXG4gIHR5cGUgRXZlbnRNYXJrZXJDb250ZXh0LFxuICBldmVudE1hcmtlcklkLFxuICBldmVudFR5cGVGcm9tUHJvcCxcbiAgaHlkcmF0ZUV2ZW50TWFya2VycyxcbiAgc2VyaWFsaXplRXZlbnRNYXJrZXJzLFxufSBmcm9tICcuL2V2ZW50LWh5ZHJhdGlvbi5qcyc7XG4vLyBzdGF0aWMgcHJvcHMgcnVudGltZSArIFNpZ25hbCB1bndyYXBcbmV4cG9ydCB7XG4gIGRpc3Bvc2VTdGF0aWNQcm9wcyxcbiAgaGFuZGxlU3RhdGljUHJvcEF0dHJpYnV0ZUNoYW5nZSxcbiAgaW5pdGlhbGl6ZVN0YXRpY1Byb3BzLFxuICByZWdpc3RlclN0YXRpY09ic2VydmVkQXR0cmlidXRlcyxcbiAgc3luY1N0YXRpY1Byb3BzRnJvbUF0dHJpYnV0ZXMsXG4gIHVud3JhcCxcbn0gZnJvbSAnLi9wcm9wLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgTm9ybWFsaXplZFByb3BEZWNsLFxuICBQcm9wRGVjbCxcbiAgUHJvcERlY2xGdWxsLFxuICBQcm9wRGVjbFNob3J0aGFuZCxcbiAgUHJvcHNGcm9tLFxuICBQcm9wVHlwZSxcbn0gZnJvbSAnQG9wZW5lbGVtZW50L3Byb3RvY29sL3Byb3AnO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztDQWNDLEdBRUQsc0VBQXNFO0FBOEJ0RSxTQUNFLFlBQVksRUFDWixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixjQUFjLFFBQ1QsY0FBYztBQUVyQixTQUFTLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxVQUFVLFFBQVEsZUFBZTtBQUMzRSxTQUFTLGNBQWMsRUFBRSxjQUFjLFFBQVEsbUJBQW1CO0FBQ2xFLFNBQVMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxRQUFRLFdBQVc7QUFTL0UsU0FBUyxvQkFBb0IsRUFBRSxpQkFBaUIsUUFBUSxtQkFBbUI7QUFRM0UsU0FBUyxVQUFVLFFBQVEsbUJBQW1CO0FBRTlDLFNBQVMsaUJBQWlCLFFBQVEsNEJBQTRCO0FBRTlELFNBQVMsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLGVBQWUsUUFBUSxrQkFBa0I7QUFRM0YsU0FBUyxZQUFZLEVBQUUsY0FBYyxRQUFRLGlCQUFpQjtBQXVDOUQsU0FBUyxVQUFVLEVBQUUsZUFBZSxFQUFFLFVBQVUsUUFBUSxtQkFBbUI7QUFDM0UsU0FDRSw2REFBNkQ7QUFDN0QsWUFBWSxFQUNaLGdCQUFnQixRQUNYLHNCQUFzQjtBQUU3QixTQUFTLGNBQWMsRUFBZ0IsYUFBYSxFQUFFLGNBQWMsUUFBUSxzQkFBc0I7QUFDbEcsU0FBUyxZQUFZLFFBQVEsY0FBYztBQUMzQyxTQUFTLGNBQWMsUUFBUSxpQkFBaUI7QUFDaEQsU0FDRSxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxRQUNOLGNBQWM7QUFFckIsU0FBUyxxQkFBcUIsUUFBUSx3QkFBd0I7QUFHOUQsMkNBQTJDO0FBQzNDLFNBQ0Usc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCxtQkFBbUIsUUFDZCwwQkFBMEI7QUFDakMsU0FDRSxRQUFRLEVBQ1IsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsRUFDZixRQUFRLFFBQ0gsMEJBQTBCO0FBaUJqQywrQkFBK0I7QUFDL0IsU0FDRSxTQUFTLGFBQWEsRUFDdEIsYUFBYSxFQUNiLFVBQVUsZUFBZSxFQUN6QixZQUFZLEVBQ1osWUFBWSxnQkFBZ0IsRUFDNUIsWUFBWSxnQkFBZ0IsUUFDdkIsZ0JBQWdCO0FBSXZCLFNBQVMsT0FBTyxRQUFRLGFBQWE7QUFDckMsU0FBUyxRQUFRLEVBQUUsV0FBVyxRQUFRLG1CQUFtQjtBQUN6RCxZQUFZO0FBQ1osU0FBUyxXQUFXLFFBQVEsc0JBQXNCO0FBQ2xELFNBQVMsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUNFLG9CQUFvQixFQUNwQix3QkFBd0IsRUFHeEIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIscUJBQXFCLFFBQ2hCLHVCQUF1QjtBQUM5Qix1Q0FBdUM7QUFDdkMsU0FDRSxrQkFBa0IsRUFDbEIsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQixnQ0FBZ0MsRUFDaEMsNkJBQTZCLEVBQzdCLE1BQU0sUUFDRCxZQUFZIn0=