apprun 3.38.0 → 6.0.0-rc.0

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 (113) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/README.md +18 -10
  3. package/apprun.d.ts +67 -23
  4. package/dist/apprun-code.js +1 -1
  5. package/dist/apprun-code.js.map +1 -1
  6. package/dist/apprun-dev-tools.js +1 -1
  7. package/dist/apprun-dev-tools.js.map +1 -1
  8. package/dist/apprun-html.esm.js +7 -7
  9. package/dist/apprun-html.esm.js.map +1 -1
  10. package/dist/apprun-html.js +1 -1
  11. package/dist/apprun-html.js.map +1 -1
  12. package/dist/apprun-play.js +1 -1
  13. package/dist/apprun-play.js.map +1 -1
  14. package/dist/apprun.esm.js +1 -1
  15. package/dist/apprun.esm.js.map +1 -1
  16. package/dist/apprun.js +1 -1
  17. package/dist/apprun.js.map +1 -1
  18. package/esm/add-components.js +7 -7
  19. package/esm/add-components.js.map +1 -1
  20. package/esm/app.js +81 -32
  21. package/esm/app.js.map +1 -1
  22. package/esm/apprun-code.js +8 -2
  23. package/esm/apprun-code.js.map +1 -1
  24. package/esm/apprun-html.js +14 -9
  25. package/esm/apprun-html.js.map +1 -1
  26. package/esm/apprun-play.js +7 -1
  27. package/esm/apprun-play.js.map +1 -1
  28. package/esm/apprun.js +38 -19
  29. package/esm/apprun.js.map +1 -1
  30. package/esm/component.js +90 -37
  31. package/esm/component.js.map +1 -1
  32. package/esm/directive.js +1 -1
  33. package/esm/directive.js.map +1 -1
  34. package/esm/router.js +73 -19
  35. package/esm/router.js.map +1 -1
  36. package/esm/types.js +2 -1
  37. package/esm/types.js.map +1 -1
  38. package/esm/vdom-my.js +52 -52
  39. package/esm/vdom-my.js.map +1 -1
  40. package/esm/vdom-to-html.js +8 -1
  41. package/esm/vdom-to-html.js.map +1 -1
  42. package/esm/vdom.js +3 -3
  43. package/esm/vdom.js.map +1 -1
  44. package/esm/version.js +1 -1
  45. package/esm/version.js.map +1 -1
  46. package/esm/web-component.js +23 -6
  47. package/esm/web-component.js.map +1 -1
  48. package/jsx-runtime.js +1 -1
  49. package/jsx-runtime.js.map +1 -1
  50. package/package.json +62 -2
  51. package/.clinerules +0 -1
  52. package/.travis.yml +0 -10
  53. package/BACKERS.md +0 -8
  54. package/CNAME +0 -1
  55. package/WHATSNEW.md +0 -367
  56. package/ai/apprun-html.prompt.md +0 -290
  57. package/ai/apprun.prompt.md +0 -602
  58. package/apprun-book.jpg +0 -0
  59. package/dist/apprun-dev-tools-tests.js +0 -1
  60. package/dist/apprun-dev-tools.js.LICENSE.txt +0 -1
  61. package/dist/apprun-play-html.esm.js +0 -34
  62. package/dist/apprun-play-html.esm.js.map +0 -1
  63. package/error.log +0 -0
  64. package/esm/apprun-play-html.js +0 -210
  65. package/esm/apprun-play-html.js.map +0 -1
  66. package/esm/shadow.js +0 -8
  67. package/esm/shadow.js.map +0 -1
  68. package/esm/vdom-html.js +0 -22
  69. package/esm/vdom-html.js.map +0 -1
  70. package/esm/vdom-my-new.js +0 -327
  71. package/esm/vdom-my-new.js.map +0 -1
  72. package/esm/vdom-patch.js +0 -103
  73. package/esm/vdom-patch.js.map +0 -1
  74. package/index.html +0 -87
  75. package/jest.config.js +0 -57
  76. package/jest.setup.js +0 -73
  77. package/logo.png +0 -0
  78. package/react.js +0 -13
  79. package/rollup.config.js +0 -62
  80. package/src/add-components.ts +0 -103
  81. package/src/app.ts +0 -173
  82. package/src/apprun-code.tsx +0 -177
  83. package/src/apprun-dev-tools-tests.tsx +0 -101
  84. package/src/apprun-dev-tools.tsx +0 -307
  85. package/src/apprun-html.ts +0 -25
  86. package/src/apprun-play.tsx +0 -249
  87. package/src/apprun.ts +0 -238
  88. package/src/component.ts +0 -388
  89. package/src/createState.ts +0 -11
  90. package/src/decorator.ts +0 -98
  91. package/src/directive.ts +0 -303
  92. package/src/global.d.ts +0 -22
  93. package/src/router.ts +0 -311
  94. package/src/shadow.tsx +0 -8
  95. package/src/tsconfig.json +0 -16
  96. package/src/type-utils.ts +0 -130
  97. package/src/types.ts +0 -151
  98. package/src/vdom-html.ts_ +0 -20
  99. package/src/vdom-lit-html.ts +0 -67
  100. package/src/vdom-my-new.ts +0 -311
  101. package/src/vdom-my-prop-attr.ts +0 -241
  102. package/src/vdom-my.ts +0 -286
  103. package/src/vdom-patch.ts +0 -108
  104. package/src/vdom-to-html.tsx +0 -49
  105. package/src/vdom.ts +0 -28
  106. package/src/version.ts +0 -16
  107. package/src/web-component.ts +0 -154
  108. package/tsconfig.jest.json +0 -49
  109. package/tsconfig.json +0 -16
  110. package/tslint.json +0 -114
  111. package/typescriptreact.json +0 -87
  112. package/viewEngine.js +0 -54
  113. package/webpack.config.cjs +0 -41
@@ -72,14 +72,14 @@ export default async (element, components) => {
72
72
  // If resolved result is still a function or anything else, treat original as event handler with render wrapper
73
73
  app.on(route, (...args) => {
74
74
  const result = component(...args);
75
- if (typeof element === 'string') {
76
- element = document.querySelector(element);
77
- if (!element) {
78
- console.error(`Element not found: ${element}`);
79
- return;
80
- }
75
+ const target = typeof element === 'string'
76
+ ? document.querySelector(element)
77
+ : element;
78
+ if (!target) {
79
+ console.error(`Element not found: ${element}`);
80
+ return;
81
81
  }
82
- return app.render(element, result);
82
+ return app.render(target, result);
83
83
  });
84
84
  continue;
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add-components.js","sourceRoot":"","sources":["../src/add-components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-components.js","sourceRoot":"","sources":["../src/add-components.ts"],"names":[],"mappings":"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"}
package/esm/app.js CHANGED
@@ -5,9 +5,8 @@
5
5
  * 1. App class - The core event system implementation with pub/sub capabilities
6
6
  * - on(): Subscribe to events with options (once, delay, global)
7
7
  * - off(): Unsubscribe from events with proper cleanup
8
- * - run(): Publish events synchronously with error handling
8
+ * - run(): Publish events synchronously with error-event reporting
9
9
  * - runAsync(): Publish events asynchronously with Promise support, returns handler values
10
- * - query(): Deprecated alias for runAsync() - use runAsync() instead
11
10
  *
12
11
  * 2. Default app singleton - Global event bus instance
13
12
  * - Created once and reused across the application
@@ -15,10 +14,11 @@
15
14
  * - Prevents duplicate instances across different versions
16
15
  *
17
16
  * Features:
18
- * - Event wildcards support (events ending with '*')
19
- * - Delayed event execution with timeout management
20
- * - Once-only event subscriptions
17
+ * - Event wildcards support with indexed wildcard subscriptions (events ending with '*')
18
+ * - Delayed event execution with subscription-owned timeout management
19
+ * - Once-only event subscriptions, including wildcard subscriptions
21
20
  * - Async event handling with Promise.all
21
+ * - Central error event reporting with console fallback
22
22
  * - Global event bus shared across components
23
23
  * - Memory leak prevention with proper cleanup
24
24
  *
@@ -47,22 +47,33 @@
47
47
  import { APPRUN_VERSION_GLOBAL } from './version';
48
48
  export class App {
49
49
  constructor() {
50
+ this._reporting_error = false;
50
51
  this._events = {};
52
+ this._wildcard_events = [];
51
53
  }
52
54
  on(name, fn, options = {}) {
53
55
  this._events[name] = this._events[name] || [];
54
- this._events[name].push({ fn, options });
56
+ const sub = { fn, options };
57
+ this._events[name].push(sub);
58
+ if (name.endsWith('*')) {
59
+ this._wildcard_events.push({ name, prefix: name.replace('*', ''), sub });
60
+ this._wildcard_events.sort((a, b) => b.name.length - a.name.length);
61
+ }
55
62
  }
56
63
  off(name, fn) {
57
64
  const subscribers = this._events[name] || [];
58
65
  this._events[name] = subscribers.filter((sub) => sub.fn !== fn);
66
+ if (name.endsWith('*')) {
67
+ this._wildcard_events = this._wildcard_events.filter(item => !(item.name === name && item.sub.fn === fn));
68
+ }
59
69
  }
60
70
  find(name) {
61
71
  return this._events[name];
62
72
  }
63
73
  run(name, ...args) {
64
74
  const subscribers = this.getSubscribers(name, this._events);
65
- console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);
75
+ if (this.debug)
76
+ console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);
66
77
  subscribers.forEach((sub) => {
67
78
  const { fn, options } = sub;
68
79
  if (!fn || typeof fn !== 'function') {
@@ -70,39 +81,42 @@ export class App {
70
81
  return false;
71
82
  }
72
83
  if (options.delay) {
73
- this.delay(name, fn, args, options);
84
+ this.delay(name, sub, args);
74
85
  }
75
86
  else {
76
87
  try {
77
88
  Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);
78
89
  }
79
90
  catch (error) {
80
- console.error(`Error in event handler for '${name}':`, error);
91
+ this.reportError(name, error, { phase: 'run', args });
81
92
  }
82
93
  }
83
- return !sub.options.once;
84
94
  });
85
95
  return subscribers.length;
86
96
  }
87
97
  once(name, fn, options = {}) {
88
98
  this.on(name, fn, { ...options, once: true });
89
99
  }
90
- delay(name, fn, args, options) {
91
- if (options._t)
92
- clearTimeout(options._t);
93
- options._t = setTimeout(() => {
94
- clearTimeout(options._t);
100
+ delay(name, sub, args) {
101
+ const source = sub._source || sub;
102
+ const { fn, options } = sub;
103
+ if (source._t)
104
+ clearTimeout(source._t);
105
+ source._t = setTimeout(() => {
106
+ clearTimeout(source._t);
107
+ source._t = null;
95
108
  try {
96
109
  Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);
97
110
  }
98
111
  catch (error) {
99
- console.error(`Error in delayed event handler for '${name}':`, error);
112
+ this.reportError(name, error, { phase: 'delay', args });
100
113
  }
101
114
  }, options.delay);
102
115
  }
103
116
  runAsync(name, ...args) {
104
117
  const subscribers = this.getSubscribers(name, this._events);
105
- console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);
118
+ if (this.debug)
119
+ console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);
106
120
  const promises = subscribers.map(sub => {
107
121
  const { fn, options } = sub;
108
122
  if (!fn || typeof fn !== 'function') {
@@ -110,37 +124,72 @@ export class App {
110
124
  return Promise.resolve(null);
111
125
  }
112
126
  try {
113
- return Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);
127
+ const result = Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);
128
+ return Promise.resolve(result).catch(error => {
129
+ this.reportError(name, error, { phase: 'runAsync', args });
130
+ return Promise.reject(error);
131
+ });
114
132
  }
115
133
  catch (error) {
116
- console.error(`Error in async event handler for '${name}':`, error);
134
+ this.reportError(name, error, { phase: 'runAsync', args });
117
135
  return Promise.reject(error);
118
136
  }
119
137
  });
120
138
  return Promise.all(promises);
121
139
  }
122
- /**
123
- * @deprecated Use runAsync() instead. app.query() will be removed in a future version.
124
- */
125
- query(name, ...args) {
126
- console.warn('app.query() is deprecated. Use app.runAsync() instead.');
127
- return this.runAsync(name, ...args);
140
+ reportError(name, error, context = {}) {
141
+ const payload = { event: name, error, app: this, ...context };
142
+ const errorSubscribers = name === 'error' || this._reporting_error ? [] : this.getSubscribers('error', this._events);
143
+ if (errorSubscribers.length > 0) {
144
+ this._reporting_error = true;
145
+ try {
146
+ errorSubscribers.forEach(sub => {
147
+ try {
148
+ sub.fn.call(this, payload);
149
+ }
150
+ catch (errorHandlerError) {
151
+ console.error(`Error in error event handler:`, errorHandlerError);
152
+ }
153
+ });
154
+ }
155
+ finally {
156
+ this._reporting_error = false;
157
+ }
158
+ }
159
+ else if (context.phase === 'delay') {
160
+ console.error(`Error in delayed event handler for '${name}':`, error);
161
+ }
162
+ else if (context.phase === 'runAsync') {
163
+ console.error(`Error in async event handler for '${name}':`, error);
164
+ }
165
+ else {
166
+ console.error(`Error in event handler for '${name}':`, error);
167
+ }
168
+ }
169
+ removeOnceWildcardSubscriber(evt, sub) {
170
+ this._events[evt] = (this._events[evt] || []).filter(item => item !== sub);
171
+ this._wildcard_events = this._wildcard_events.filter(item => item.sub !== sub);
128
172
  }
129
173
  getSubscribers(name, events) {
130
174
  const subscribers = events[name] || [];
175
+ const calls = subscribers.slice();
131
176
  // Update the list of subscribers by pulling out those which will run once.
132
177
  // We must do this update prior to running any of the events in case they
133
178
  // cause additional events to be turned off or on.
134
179
  events[name] = subscribers.filter((sub) => {
135
180
  return !sub.options.once;
136
181
  });
137
- Object.keys(events).filter(evt => evt.endsWith('*') && name.startsWith(evt.replace('*', '')))
138
- .sort((a, b) => b.length - a.length)
139
- .forEach(evt => subscribers.push(...events[evt].map(sub => ({
140
- ...sub,
141
- options: { ...sub.options, event: name }
142
- }))));
143
- return subscribers;
182
+ this._wildcard_events.filter(({ name: evt, prefix }) => evt !== name && name.startsWith(prefix))
183
+ .forEach(({ name: evt, sub }) => {
184
+ if (sub.options.once)
185
+ this.removeOnceWildcardSubscriber(evt, sub);
186
+ calls.push({
187
+ ...sub,
188
+ _source: sub,
189
+ options: { ...sub.options, event: name }
190
+ });
191
+ });
192
+ return calls;
144
193
  }
145
194
  }
146
195
  const AppRunVersions = APPRUN_VERSION_GLOBAL;
package/esm/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Inline AppRun code playground component.
3
+ *
4
+ * Renders editable source alongside an iframe preview and keeps DOM element
5
+ * access explicit now that Component.element is concretely typed.
6
+ */
1
7
  import { app, Component } from './apprun';
2
8
  const styles = `
3
9
  .CodeMirror, .apprun-play iframe {
@@ -101,7 +107,7 @@ class Play extends Component {
101
107
  app.h("iframe", { class: "preview" }))));
102
108
  };
103
109
  this.mounted = props => {
104
- const element = this['element'];
110
+ const element = this.element;
105
111
  const code_id = props['code-id'];
106
112
  const hide_code = props['hide-code'];
107
113
  const code_width = props['code-width'];
@@ -121,7 +127,7 @@ class Play extends Component {
121
127
  return { code, hide_code, code_width };
122
128
  };
123
129
  this.rendered = ({ code, hide_code, code_width }) => {
124
- const element = this['element'];
130
+ const element = this.element;
125
131
  const textarea = element.querySelector(".apprun-play .editor");
126
132
  let iframe = element.querySelector('.apprun-play .preview');
127
133
  if (!iframe || !textarea)
@@ -1 +1 @@
1
- {"version":3,"file":"apprun-code.js","sourceRoot":"","sources":["../src/apprun-code.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;CAoBd,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;IACxB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACjC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;sCAiBY,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAuC9C,CAAC;AAGT,MAAM,IAAK,SAAQ,SAAS;IAA5B;;QACE,SAAI,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;YAC7B,OAAO;gBACL,qBAAQ,MAAM,CAAS;gBACtB,SAAS,CAAC,CAAC;oBACV,eAAK,KAAK,EAAC,aAAa;wBACtB,kBAAQ,KAAK,EAAC,SAAS,GAAG,CACtB;oBACN,CAAC;wBACD,eAAK,KAAK,EAAC,aAAa;4BACtB,eAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,WAAW;gCAChC,oBAAU,KAAK,EAAC,QAAQ,IAAE,IAAI,CAAY,CACtC;4BACN,eAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,QAAQ;gCAC7B,kBAAQ,KAAK,EAAC,SAAS,GAAG,CACtB,CACF,CACP,CAAC;QACN,CAAC,CAAA;QAED,YAAO,GAAG,KAAK,CAAC,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YAEvC,IAAI,SAAS,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,OAAO,CAAC,sBAAsB;oBACxC,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,EAAE,SAAS,CAAC,WAAW;mBACxC,SAAS,EAAE,KAAK,CAAC,gBAAgB;mBACjC,OAAO,CAAC,WAAW,CAAA,CAAC,kBAAkB;YAE3C,IAAI,SAAS;gBAAE,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAEhD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,CAAC,CAAA;QAGD,aAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAQ,CAAC;YACtE,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;gBACtB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACtD,MAAM,GAAG,YAAY,CAAC;gBACtB,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;gBAC3C,IAAI,CAAC,GAAG;oBAAE,OAAO;gBACjB,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC5B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;oBAEhB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC,CAAA;YAED,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,SAAS,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEnC,IAAI,UAAU;gBAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YAEhE,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC/C,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;gBACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAA;IACH,CAAC;CAAA;AAED,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"apprun-code.js","sourceRoot":"","sources":["../src/apprun-code.tsx"],"names":[],"mappings":"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"}
@@ -1,19 +1,24 @@
1
+ /**
2
+ * AppRun lit-html renderer entry point
3
+ *
4
+ * Provides the AppRun public API with lit-html rendering primitives. The script-tag
5
+ * build keeps the browser authoring surface: app, Component, on, customElement,
6
+ * trustedHTML, safeHTML, html, svg, and run.
7
+ */
1
8
  import app from './apprun';
2
9
  import { safeGlobalAssign } from './type-utils';
3
- export { app, Component, on, update, event, customElement, ROUTER_404_EVENT, ROUTER_EVENT, safeHTML } from './apprun';
10
+ export { app, Component, on, update, event, customElement, ROUTER_404_EVENT, ROUTER_EVENT, trustedHTML, safeHTML } from './apprun';
4
11
  import { createElement, render, Fragment, html, svg, run } from './vdom-lit-html';
5
12
  export { html, svg, render, run };
6
13
  app.createElement = createElement;
7
14
  app.render = render;
8
15
  app.Fragment = Fragment;
9
16
  export default app;
10
- if (typeof window === 'object') {
17
+ const installHtmlGlobals = () => {
18
+ if (typeof window !== 'object')
19
+ return;
11
20
  const globalWindow = window;
12
- safeGlobalAssign(globalWindow, {
13
- 'React': globalWindow['_React'] || app,
14
- 'html': html,
15
- 'svg': svg,
16
- 'run': run
17
- });
18
- }
21
+ safeGlobalAssign(globalWindow, { html, svg, run });
22
+ };
23
+ installHtmlGlobals();
19
24
  //# sourceMappingURL=apprun-html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apprun-html.js","sourceRoot":"","sources":["../src/apprun-html.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAqB,MAAM,cAAc,CAAC;AACnE,OAAO,EACL,GAAG,EAAE,SAAS,EAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EACvD,aAAa,EACb,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EACzC,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;AAEjC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AAClC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;AACpB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAExB,eAAe,GAAG,CAAC;AAEnB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,MAA2B,CAAC;IACjD,gBAAgB,CAAC,YAAY,EAAE;QAC7B,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG;QACtC,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"apprun-html.js","sourceRoot":"","sources":["../src/apprun-html.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAqB,MAAM,cAAc,CAAC;AACnE,OAAO,EACL,GAAG,EAAE,SAAS,EAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EACvD,aAAa,EACb,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EACtD,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;AAEjC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AAClC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;AACpB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAExB,eAAe,GAAG,CAAC;AAEnB,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO;IACvC,MAAM,YAAY,GAAG,MAA2B,CAAC;IACjD,gBAAgB,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,kBAAkB,EAAE,CAAC"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * AppRun play popup component for running embedded examples.
3
+ *
4
+ * Builds the popup preview/editor UI and uses explicit HTMLElement casts for
5
+ * mounted DOM access under the Phase 3 component typing contract.
6
+ */
1
7
  import { app, Component } from './apprun';
2
8
  const popup_div = `<div id="play-popup" class="overlay">
3
9
  <style id="apprun-play-style">
@@ -110,7 +116,7 @@ const code_html = code => `<!DOCTYPE html>
110
116
  margin: 2em;
111
117
  }
112
118
  </style>
113
- <script src="https://cdn.jsdelivr.net/npm/typescript@latest"></script>
119
+ <script src="https://cdn.jsdelivr.net/npm/typescript@5.8.3"></script>
114
120
  <script src="https://unpkg.com/apprun/dist/apprun-html.js"></script>
115
121
  </head>
116
122
  <body>
@@ -1 +1 @@
1
- {"version":3,"file":"apprun-play.js","sourceRoot":"","sources":["../src/apprun-play.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apprun-play.js","sourceRoot":"","sources":["../src/apprun-play.tsx"],"names":[],"mappings":"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"}
package/esm/apprun.js CHANGED
@@ -18,12 +18,13 @@
18
18
  * - Decorators: @on, @update, @customElement
19
19
  * - Router events and configuration
20
20
  * - Web component registration
21
+ * - trustedHTML: Parses caller-owned trusted HTML
21
22
  *
22
23
  * Features:
23
24
  * - Event-driven architecture with pub/sub pattern
24
25
  * - Virtual DOM rendering with multiple renderer support
25
26
  * - Component lifecycle management
26
- * - Client-side routing with hash/path support
27
+ * - Client-side routing with hash/path support and native link behavior guards
27
28
  * - Web Components integration
28
29
  * - React compatibility layer
29
30
  * - TypeScript support with strong typing
@@ -31,7 +32,7 @@
31
32
  *
32
33
  * Type Safety Improvements (v3.35.1):
33
34
  * - Added null checks for DOM event targets
34
- * - Improved global window object assignments with proper typing
35
+ * - Browser script-tag globals are limited to the app singleton in core builds
35
36
  * - Enhanced React integration parameter validation
36
37
  * - Better error handling for invalid event handlers
37
38
  * - Safer element access with proper type assertions
@@ -61,7 +62,7 @@
61
62
  * ```
62
63
  */
63
64
  import _app, { App } from './app';
64
- import { createElement, render, Fragment, safeHTML } from './vdom';
65
+ import { createElement, render, Fragment, trustedHTML, safeHTML } from './vdom';
65
66
  import { Component } from './component';
66
67
  import { on, update, customElement } from './decorator';
67
68
  import { route, ROUTER_EVENT, ROUTER_404_EVENT } from './router';
@@ -70,7 +71,35 @@ import addComponents from './add-components';
70
71
  import { APPRUN_VERSION } from './version';
71
72
  const app = _app;
72
73
  export default app;
73
- export { App, app, Component, on, update, Fragment, safeHTML };
74
+ const shouldRouteLinkClick = (e, menu) => {
75
+ if (!menu)
76
+ return false;
77
+ if (e.defaultPrevented)
78
+ return false;
79
+ if (e.button !== 0)
80
+ return false;
81
+ if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey)
82
+ return false;
83
+ if (menu.target && menu.target.toLowerCase() !== '_self')
84
+ return false;
85
+ if (menu.hasAttribute('download'))
86
+ return false;
87
+ if ((menu.getAttribute('rel') || '').toLowerCase().split(/\s+/).includes('external'))
88
+ return false;
89
+ return menu.origin === location.origin && !!menu.pathname;
90
+ };
91
+ const routeLinkClick = (e, menu) => {
92
+ if (!shouldRouteLinkClick(e, menu))
93
+ return false;
94
+ e.preventDefault();
95
+ // Handle base path for navigation
96
+ const basePath = app.basePath || '';
97
+ const fullPath = basePath + menu.pathname;
98
+ history.pushState(null, '', fullPath);
99
+ route(menu.pathname); // Route with relative path (without base path)
100
+ return true;
101
+ };
102
+ export { App, app, Component, on, update, Fragment, trustedHTML, safeHTML };
74
103
  export { update as event };
75
104
  export { ROUTER_EVENT, ROUTER_404_EVENT };
76
105
  export { customElement };
@@ -80,6 +109,7 @@ if (!app.start) {
80
109
  app.render = render;
81
110
  app.Fragment = Fragment;
82
111
  app.webComponent = webComponent;
112
+ app.trustedHTML = trustedHTML;
83
113
  app.safeHTML = safeHTML;
84
114
  app.start = (element, state, view, update, options) => {
85
115
  const opts = { render: true, global_event: true, ...options };
@@ -91,8 +121,6 @@ if (!app.start) {
91
121
  component.start(element, opts);
92
122
  return component;
93
123
  };
94
- // Deprecated: app.query is deprecated in favor of app.runAsync
95
- app.query = app.query || app.runAsync;
96
124
  const NOOP = _ => { };
97
125
  app.on('/', NOOP);
98
126
  app.on('debug', _ => NOOP);
@@ -123,20 +151,12 @@ if (!app.start) {
123
151
  route(initialPath);
124
152
  })();
125
153
  document.body.addEventListener('click', e => {
126
- const element = e.target;
154
+ const target = e.target;
155
+ const element = target instanceof Element ? target : target?.parentElement;
127
156
  if (!element)
128
157
  return;
129
158
  const menu = (element.tagName === 'A' ? element : element.closest('a'));
130
- if (menu &&
131
- menu.origin === location.origin &&
132
- menu.pathname) {
133
- e.preventDefault();
134
- // Handle base path for navigation
135
- const basePath = app.basePath || '';
136
- const fullPath = basePath + menu.pathname;
137
- history.pushState(null, '', fullPath);
138
- route(menu.pathname); // Route with relative path (without base path)
139
- }
159
+ routeLinkClick(e, menu);
140
160
  });
141
161
  }
142
162
  });
@@ -144,10 +164,9 @@ if (!app.start) {
144
164
  if (typeof window === 'object') {
145
165
  const globalWindow = window;
146
166
  globalWindow['Component'] = Component;
147
- globalWindow['_React'] = globalWindow['React'];
148
- globalWindow['React'] = app;
149
167
  globalWindow['on'] = on;
150
168
  globalWindow['customElement'] = customElement;
169
+ globalWindow['trustedHTML'] = trustedHTML;
151
170
  globalWindow['safeHTML'] = safeHTML;
152
171
  }
153
172
  app.use_render = (render, mode = 0) => {
package/esm/apprun.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apprun.js","sourceRoot":"","sources":["../src/apprun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apprun.js","sourceRoot":"","sources":["../src/apprun.ts"],"names":[],"mappings":"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"}