Thanks Thiago.

We have 1 project with:
9 files depending on t5/core/ajax
2 files depending on t5/core/console
8 files depending on t5/core/dom
21 files depending on t5/core/events
16 files depending on t5/core/zone

Another project with:
1 file depending on t5/core/dom
1 file depending on t5/core/events
2 files depending on t5/core/zone

We should be fine to manually update these files too.

Thanks

--
Niran Abeygunawardena
Senior Technical Architect
clarivate.com<https://clarivate.com/>


From: Dongmei Cao <dongmei....@icann.org>
Date: Thursday, 12 June 2025 at 12:14
To: Tapestry users <users@tapestry.apache.org>
Subject: Re: [Ext] [SURVEY] Do your Tapestry projects use Tapestry's own JS 
directly?
[You don't often get email from dongmei....@icann.org. Learn why this is 
important at https://aka.ms/LearnAboutSenderIdentification ]

Thanks!

5 files depending on
t5/core/zone
t5/core/ajax

Manually upgrading is not a problem.

Best regards,
Dongmei

On 6/8/25, 3:03 PM, "Thiago H. de Paula Figueiredo" <thiag...@gmail.com 
<mailto:thiag...@gmail.com>> wrote:


Hello!


TL;DR: do your Tapestry projects have JavaScript code that uses Tapestry's
own JS like t5/core/dom, t5/core/zone, t5/core/ajax, etc? How many JS files
have at least one of these dependencies? No exact numbers needed. We're
just trying to figure out the size of possible backward
compatibility problems.


We've been working on improving the Tapestry's JavaScript support,
including support for ES6 modules[1], creating a non-Require.js mode (based
on ES6 modules) and converting Tapestry's own JavaScript sources from
CoffeeScript to TypeScript.


The last part should help everyone developing Tapestry's JavaScript, since
CoffeeScript's syntax is way closer to Ruby than to JavaScript itself. In
addition, CoffeeScript is old and its last commit was more than 2.5 years
ago [2], while TypeScript is being actively developed and gaining adoption.


There's one problem with TS's code generation, though: while it can output
both ES6 modules or AMD ones (the ones used by Require.js), the AMD
modules' exports are done in a bit different way. For example, if you have
this:


define(["t5/core/dom", "t5/core/ajax"]], function(dom) {
var foo = dom("bar");
ajax(...);
);


you'd need to change your code to


define(["t5/core/dom"], function(dom) {
// The __importDefault function is generated by the Ts
// compiler and fixes the problem
dom = __importDefault(dom);
ajax = __importDefault(ajax);
var foo = dom("bar");
ajax(...);
);


or


define(["t5/core/dom", "t5/core/ajax"], function(dom) {
var foo = dom.default("bar"); // Notice the '.default' part
ajax.default(...);
);


Notice the changes would only need to be done once, when upgrading to
5.10.0, and they're simple.


This problem only happens for Require.js/AMD modules. If, after upgrading
to 5.10.0, your ES6 modules will import the ones provided by Tapestry
normally. There are tools for converting AMD modules to ES6 like
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fbuxlabs%2Famd-to-es6__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980076965%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=k78F3H1aEP0THbOzjPlw%2Bk4W3rFkvHUajpnpNat%2FIGU%3D&reserved=0<https://urldefense.com/v3/__https://github.com/buxlabs/amd-to-es6__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p$>
 
<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fbuxlabs%2Famd-to-es6__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980097898%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=h5u4JivkfFN4EYG9yrmB0iJIYzhehH6K03L506CDtSo%3D&reserved=0<https://urldefense.com/v3/__https://github.com/buxlabs/amd-to-es6__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p$>>
 [github[.]com]. If you have a small number of files,
doing it manually only takes a few minutes each at most (my own experience
while converting Tapestry's AMD modules to ES6) and your code will look
better and more modern in the end.


We, the Tapestry team, would like to know whether this would be a problem
for your projects, especially if it would prevent upgrading from 5.7.0+ to
5.10.0. With your feedback, we'll be able to define how to best use our
time, either trying to configure some source code transformation tool to
change TypeScript's output to avoid the problem above [3], creating a
migration tool or just investing in other Tapestry parts if this backward
incompatibility isn't a big deal for your projects.


Thanks in advance.


Cheers!


[1] In other words, the modules supported by browsers using <script
type="module">. See
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FGuide%2FModules__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980114709%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=UPS1FAdHz33GaR62QYidAyWzuVxD2jD5xG7nMziSU3U%3D&reserved=0<https://urldefense.com/v3/__https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K$>
 
<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FGuide%2FModules__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980130247%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=X0kZS01tkbklQBC%2FHS05%2BFlwDFIQ858xrj1bwu9WWtw%3D&reserved=0<https://urldefense.com/v3/__https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K$>>
 [developer[.]mozilla[.]org].


[2] 
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fjashkenas%2Fcoffeescript%2F__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980145678%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=GoMXsRgDmwNeerSu6jh5670MD2PBGQYSZiicGNRw2LE%3D&reserved=0<https://urldefense.com/v3/__https://github.com/jashkenas/coffeescript/__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93$>
 
<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fjashkenas%2Fcoffeescript%2F__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980161223%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=AOi0D60zenugtmm%2FiN5nrwzuBYjVg2YuNNMuOKTZ1XI%3D&reserved=0<https://urldefense.com/v3/__https://github.com/jashkenas/coffeescript/__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93$>>
 [github[.]com]


[3] Something like the approach described in this article:
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fwww.toptal.com%2Fjavascript%2Fwrite-code-to-rewrite-your-code__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980176551%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=T3lEPumyawIxQCx%2FfgSoa4O7KmqMCsY45UknxyZYegQ%3D&reserved=0<https://urldefense.com/v3/__https://www.toptal.com/javascript/write-code-to-rewrite-your-code__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE$>
 
<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fwww.toptal.com%2Fjavascript%2Fwrite-code-to-rewrite-your-code__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980191826%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=UO4EGcjg06bh8nKz9gUt0yRTjRXRblhj6W22WFyEmjs%3D&reserved=0<https://urldefense.com/v3/__https://www.toptal.com/javascript/write-code-to-rewrite-your-code__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE$>>
 [toptal[.]com] .


--
Thiago H. de Paula Figueiredo
Software developer/engineer
Apache Tapestry consultant, committer and project management committee
member
You can sponsor my work on Tapestry at
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fsponsors%2Fmachina-br__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980207108%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=mtI8%2Fzz%2BGqf%2Bfr0yKgSA5ufhAKWxU0KHf7lBmByNgb8%3D&reserved=0<https://urldefense.com/v3/__https://github.com/sponsors/machina-br__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN$>
 
<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fsponsors%2Fmachina-br__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980222496%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=D83onXRFPzf644YOzEkgRfK%2FjmDZRZ2bCYaIPvstyuY%3D&reserved=0<https://urldefense.com/v3/__https://github.com/sponsors/machina-br__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN$>>
 [github[.]com]



Т���������������������������������������������������������������������ХF�V�7V'67&�&R�R���âW6W'2�V�7V'67&�&TFW7G'��6�R��&pФf�"FF�F����6����G2�R���âW6W'2ֆV�FW7G'��6�R��&p

Confidentiality note: This e-mail may contain confidential information from 
Clarivate. If you are not the intended recipient, be aware that any disclosure, 
copying, distribution or use of the contents of this e-mail is strictly 
prohibited. If you have received this e-mail in error, please delete this 
e-mail and notify the sender as soon as possible.

Reply via email to