@frontiers-labs/argon 0.4.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.
- package/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/annotations.d.ts +23 -0
- package/dist/annotations.d.ts.map +1 -0
- package/dist/annotations.js +23 -0
- package/dist/annotations.js.map +1 -0
- package/dist/codegen/client.d.ts +14 -0
- package/dist/codegen/client.d.ts.map +1 -0
- package/dist/codegen/client.js +964 -0
- package/dist/codegen/client.js.map +1 -0
- package/dist/codegen/dts.d.ts +3 -0
- package/dist/codegen/dts.d.ts.map +1 -0
- package/dist/codegen/dts.js +82 -0
- package/dist/codegen/dts.js.map +1 -0
- package/dist/codegen/js.d.ts +3 -0
- package/dist/codegen/js.d.ts.map +1 -0
- package/dist/codegen/js.js +278 -0
- package/dist/codegen/js.js.map +1 -0
- package/dist/codegen/rust.d.ts +6 -0
- package/dist/codegen/rust.d.ts.map +1 -0
- package/dist/codegen/rust.js +1076 -0
- package/dist/codegen/rust.js.map +1 -0
- package/dist/component.d.ts +35 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +120 -0
- package/dist/component.js.map +1 -0
- package/dist/diagnostics.d.ts +20 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +40 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/docs.d.ts +3 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.js +42 -0
- package/dist/docs.js.map +1 -0
- package/dist/error-catalog.d.ts +11 -0
- package/dist/error-catalog.d.ts.map +1 -0
- package/dist/error-catalog.js +92 -0
- package/dist/error-catalog.js.map +1 -0
- package/dist/html-attrs.d.ts +2 -0
- package/dist/html-attrs.d.ts.map +1 -0
- package/dist/html-attrs.js +37 -0
- package/dist/html-attrs.js.map +1 -0
- package/dist/html.d.ts +41 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +188 -0
- package/dist/html.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +139 -0
- package/dist/index.js.map +1 -0
- package/dist/ir.d.ts +321 -0
- package/dist/ir.d.ts.map +1 -0
- package/dist/ir.js +243 -0
- package/dist/ir.js.map +1 -0
- package/dist/jsx.d.ts +31 -0
- package/dist/jsx.d.ts.map +1 -0
- package/dist/jsx.js +242 -0
- package/dist/jsx.js.map +1 -0
- package/dist/lower.d.ts +6 -0
- package/dist/lower.d.ts.map +1 -0
- package/dist/lower.js +1341 -0
- package/dist/lower.js.map +1 -0
- package/dist/parser.d.ts +3 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +714 -0
- package/dist/parser.js.map +1 -0
- package/dist/ssr-subset.d.ts +29 -0
- package/dist/ssr-subset.d.ts.map +1 -0
- package/dist/ssr-subset.js +119 -0
- package/dist/ssr-subset.js.map +1 -0
- package/dist/template.d.ts +32 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +90 -0
- package/dist/template.js.map +1 -0
- package/package.json +67 -0
package/dist/ir.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAID,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAEnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAE/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAE7C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAEhC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,eAAO,MAAM,MAAM,EAAE,MAA2B,CAAC;AACjD,eAAO,MAAM,MAAM,EAAE,MAA2B,CAAC;AACjD,eAAO,MAAM,OAAO,EAAE,MAA4B,CAAC;AACnD,eAAO,MAAM,OAAO,EAAE,MAA4B,CAAC;AAEnD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1C;AAID,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,KAAK,GACb,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GACrC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvB,MAAM,MAAM,MAAM,GAGd;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAE9D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAE5D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAGlE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAOjF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAEnG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAE1D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAGlE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAE1D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAInF;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClH;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAIzF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAKnE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChI,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IAGvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,MAAM,MAAM,GACd;IACE,IAAI,EAAE,KAAK,CAAC;IAEZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,OAAO,EAAE,OAAO,CAAC;CAClB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAGjC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAI9G;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAG/G;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAItC,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAE3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAGjI;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAGvI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAI/E,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;IAG5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAGhB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,EAAE,CAAC;IAElB,IAAI,EAAE,MAAM,EAAE,CAAC;IAGf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IAEvB,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC;IAKpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,WAAW,EAAE,CAAC;CAC3B;AAID,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CA6ErE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAQrE;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CASzD;AAOD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAqBxG;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAC/B,GAAG,CAAC,MAAM,CAAC,CASb;AASD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAiB3C;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAGzE;AAMD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAsBzD;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,EAAE,CAG/D"}
|
package/dist/ir.js
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
// The compiler IR. Source TypeScript is lowered (lower.ts) into these
|
|
2
|
+
// target-independent trees; both code generators consume only the IR.
|
|
3
|
+
//
|
|
4
|
+
// Code the SSR subset cannot express is represented explicitly as `opaque`
|
|
5
|
+
// nodes that carry the original source text plus a ready-made diagnostic:
|
|
6
|
+
// the JS backend emits the text verbatim (rewriting prop/state references),
|
|
7
|
+
// the Rust backend reports the diagnostic. Event handler expressions are
|
|
8
|
+
// always opaque by design — they are client-only.
|
|
9
|
+
export const STRING = { kind: "string" };
|
|
10
|
+
export const NUMBER = { kind: "number" };
|
|
11
|
+
export const BOOLEAN = { kind: "boolean" };
|
|
12
|
+
export const UNKNOWN = { kind: "unknown" };
|
|
13
|
+
// ── IR traversal ─────────────────────────────────────────────────────────────
|
|
14
|
+
export function visitExpr(expr, fn) {
|
|
15
|
+
fn(expr);
|
|
16
|
+
switch (expr.kind) {
|
|
17
|
+
case "member":
|
|
18
|
+
case "length":
|
|
19
|
+
case "exists":
|
|
20
|
+
case "unwrap":
|
|
21
|
+
visitExpr(expr.object, fn);
|
|
22
|
+
break;
|
|
23
|
+
case "raw":
|
|
24
|
+
visitExpr(expr.inner, fn);
|
|
25
|
+
break;
|
|
26
|
+
case "index":
|
|
27
|
+
visitExpr(expr.object, fn);
|
|
28
|
+
visitExpr(expr.index, fn);
|
|
29
|
+
break;
|
|
30
|
+
case "lookup":
|
|
31
|
+
visitExpr(expr.key, fn);
|
|
32
|
+
break;
|
|
33
|
+
case "unary":
|
|
34
|
+
visitExpr(expr.operand, fn);
|
|
35
|
+
break;
|
|
36
|
+
case "binary":
|
|
37
|
+
visitExpr(expr.left, fn);
|
|
38
|
+
visitExpr(expr.right, fn);
|
|
39
|
+
break;
|
|
40
|
+
case "cond":
|
|
41
|
+
visitExpr(expr.cond, fn);
|
|
42
|
+
visitExpr(expr.whenTrue, fn);
|
|
43
|
+
visitExpr(expr.whenFalse, fn);
|
|
44
|
+
break;
|
|
45
|
+
case "template":
|
|
46
|
+
for (const part of expr.parts)
|
|
47
|
+
visitExpr(part, fn);
|
|
48
|
+
if (expr.key)
|
|
49
|
+
visitExpr(expr.key, fn);
|
|
50
|
+
break;
|
|
51
|
+
case "call":
|
|
52
|
+
for (const arg of expr.args)
|
|
53
|
+
visitExpr(arg, fn);
|
|
54
|
+
break;
|
|
55
|
+
case "map":
|
|
56
|
+
visitExpr(expr.array, fn);
|
|
57
|
+
for (const stmt of expr.body.stmts)
|
|
58
|
+
visitStmt(stmt, fn);
|
|
59
|
+
visitExpr(expr.body.result, fn);
|
|
60
|
+
break;
|
|
61
|
+
case "join":
|
|
62
|
+
case "minmax":
|
|
63
|
+
visitExpr(expr.array, fn);
|
|
64
|
+
break;
|
|
65
|
+
case "math":
|
|
66
|
+
for (const arg of expr.args)
|
|
67
|
+
visitExpr(arg, fn);
|
|
68
|
+
break;
|
|
69
|
+
case "strmethod":
|
|
70
|
+
visitExpr(expr.object, fn);
|
|
71
|
+
for (const arg of expr.args)
|
|
72
|
+
visitExpr(arg, fn);
|
|
73
|
+
break;
|
|
74
|
+
case "arrmethod":
|
|
75
|
+
visitExpr(expr.object, fn);
|
|
76
|
+
if (expr.body)
|
|
77
|
+
visitExpr(expr.body, fn);
|
|
78
|
+
for (const arg of expr.args)
|
|
79
|
+
visitExpr(arg, fn);
|
|
80
|
+
break;
|
|
81
|
+
case "toFixed":
|
|
82
|
+
visitExpr(expr.value, fn);
|
|
83
|
+
break;
|
|
84
|
+
case "arr":
|
|
85
|
+
for (const el of expr.elems)
|
|
86
|
+
visitExpr(el, fn);
|
|
87
|
+
break;
|
|
88
|
+
case "obj":
|
|
89
|
+
for (const field of expr.fields)
|
|
90
|
+
visitExpr(field.value, fn);
|
|
91
|
+
break;
|
|
92
|
+
case "propattr":
|
|
93
|
+
visitExpr(expr.value, fn);
|
|
94
|
+
break;
|
|
95
|
+
case "construct":
|
|
96
|
+
for (const prop of expr.props) {
|
|
97
|
+
if (prop.value)
|
|
98
|
+
visitExpr(prop.value, fn);
|
|
99
|
+
}
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export function visitStmt(stmt, fn) {
|
|
104
|
+
if (stmt.kind === "let")
|
|
105
|
+
visitExpr(stmt.init, fn);
|
|
106
|
+
else if (stmt.kind === "return")
|
|
107
|
+
visitExpr(stmt.value, fn);
|
|
108
|
+
else if (stmt.kind === "if") {
|
|
109
|
+
visitExpr(stmt.cond, fn);
|
|
110
|
+
for (const s of stmt.then)
|
|
111
|
+
visitStmt(s, fn);
|
|
112
|
+
for (const s of stmt.else ?? [])
|
|
113
|
+
visitStmt(s, fn);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Names an expression references: refs of any space, called functions, lookup
|
|
117
|
+
// tables, and the free identifiers of opaque code.
|
|
118
|
+
export function referencedNames(expr) {
|
|
119
|
+
const names = new Set();
|
|
120
|
+
visitExpr(expr, e => {
|
|
121
|
+
if (e.kind === "ref")
|
|
122
|
+
names.add(e.name);
|
|
123
|
+
else if (e.kind === "call")
|
|
124
|
+
names.add(e.fn);
|
|
125
|
+
else if (e.kind === "lookup")
|
|
126
|
+
names.add(e.table);
|
|
127
|
+
else if (e.kind === "opaque")
|
|
128
|
+
for (const id of e.freeIds)
|
|
129
|
+
names.add(id);
|
|
130
|
+
});
|
|
131
|
+
return names;
|
|
132
|
+
}
|
|
133
|
+
// ── Reactive dependency analysis ─────────────────────────────────────────────
|
|
134
|
+
//
|
|
135
|
+
// For each template binding the JS backend needs the set of props/states whose
|
|
136
|
+
// change can affect it, flowing through component-local declarations.
|
|
137
|
+
export function localDependencies(component, tracked) {
|
|
138
|
+
const locals = new Map();
|
|
139
|
+
const expand = (names) => {
|
|
140
|
+
const deps = new Set();
|
|
141
|
+
for (const name of names) {
|
|
142
|
+
if (tracked.has(name))
|
|
143
|
+
deps.add(name);
|
|
144
|
+
else
|
|
145
|
+
for (const dep of locals.get(name) ?? [])
|
|
146
|
+
deps.add(dep);
|
|
147
|
+
}
|
|
148
|
+
return deps;
|
|
149
|
+
};
|
|
150
|
+
for (const stmt of component.setup) {
|
|
151
|
+
if (stmt.kind === "let" && !stmt.isState) {
|
|
152
|
+
const deps = expand(referencedNames(stmt.init));
|
|
153
|
+
for (const name of stmt.names)
|
|
154
|
+
locals.set(name, deps);
|
|
155
|
+
}
|
|
156
|
+
else if (stmt.kind === "opaque") {
|
|
157
|
+
const deps = expand(stmt.freeIds);
|
|
158
|
+
for (const name of stmt.names)
|
|
159
|
+
locals.set(name, deps);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return locals;
|
|
163
|
+
}
|
|
164
|
+
export function bindingDependencies(component, exprIndices, tracked, locals) {
|
|
165
|
+
const deps = new Set();
|
|
166
|
+
for (const index of exprIndices) {
|
|
167
|
+
for (const name of referencedNames(component.template.exprs[index])) {
|
|
168
|
+
if (tracked.has(name))
|
|
169
|
+
deps.add(name);
|
|
170
|
+
else
|
|
171
|
+
for (const dep of locals.get(name) ?? [])
|
|
172
|
+
deps.add(dep);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return deps;
|
|
176
|
+
}
|
|
177
|
+
// ── Markup vs text ───────────────────────────────────────────────────────────
|
|
178
|
+
//
|
|
179
|
+
// A string expression whose value is already HTML markup (JSX-derived, a
|
|
180
|
+
// composed child, or `unsafeHtml`). Such values render raw; every other string
|
|
181
|
+
// is HTML-escaped at the text-render site so interpolation cannot inject
|
|
182
|
+
// markup. Both backends share this so SSR and CSR escape identically.
|
|
183
|
+
export function isMarkup(e) {
|
|
184
|
+
switch (e.kind) {
|
|
185
|
+
case "str":
|
|
186
|
+
case "template":
|
|
187
|
+
return e.html === true;
|
|
188
|
+
case "raw":
|
|
189
|
+
case "construct":
|
|
190
|
+
return true;
|
|
191
|
+
case "cond":
|
|
192
|
+
// Either branch being markup makes the whole conditional markup; each
|
|
193
|
+
// branch is then rendered by its own kind (markup raw, text escaped).
|
|
194
|
+
return isMarkup(e.whenTrue) || isMarkup(e.whenFalse);
|
|
195
|
+
case "join":
|
|
196
|
+
return e.array.kind === "map" && isMarkup(e.array.body.result);
|
|
197
|
+
default:
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// isMarkup, plus a read of a setup local that itself holds markup.
|
|
202
|
+
export function markupValue(e, markupLocals) {
|
|
203
|
+
if (e.kind === "ref" && markupLocals.has(e.name))
|
|
204
|
+
return true;
|
|
205
|
+
return isMarkup(e);
|
|
206
|
+
}
|
|
207
|
+
// For a JSX-derived template's parts, whether each interpolation sits inside a
|
|
208
|
+
// quoted attribute value (attribute-escape) rather than text content
|
|
209
|
+
// (text-escape). The template generator always writes `name="` before an
|
|
210
|
+
// attribute value, so a scan of the static quasis recovers the position.
|
|
211
|
+
export function attrPositions(quasis) {
|
|
212
|
+
const positions = [];
|
|
213
|
+
const st = { inAttr: false, quote: "" };
|
|
214
|
+
for (let i = 0; i < quasis.length - 1; i++) {
|
|
215
|
+
const text = quasis[i];
|
|
216
|
+
for (let c = 0; c < text.length; c++) {
|
|
217
|
+
const ch = text[c];
|
|
218
|
+
if (st.inAttr) {
|
|
219
|
+
if (ch === st.quote)
|
|
220
|
+
st.inAttr = false;
|
|
221
|
+
}
|
|
222
|
+
else if (ch === '"' || ch === "'") {
|
|
223
|
+
// An attribute-opening quote is preceded by '=' (name="value").
|
|
224
|
+
let j = c - 1;
|
|
225
|
+
while (j >= 0 && (text[j] === " " || text[j] === "\t"))
|
|
226
|
+
j--;
|
|
227
|
+
if (text[j] === "=") {
|
|
228
|
+
st.inAttr = true;
|
|
229
|
+
st.quote = ch;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
positions.push(st.inAttr);
|
|
234
|
+
}
|
|
235
|
+
return positions;
|
|
236
|
+
}
|
|
237
|
+
// Indices of template expressions that are not event handlers (i.e. rendered
|
|
238
|
+
// values — the SSR-relevant subset).
|
|
239
|
+
export function valueExprIndices(template) {
|
|
240
|
+
const events = new Set(template.events.map(b => b.exprIndex));
|
|
241
|
+
return template.exprs.map((_e, i) => i).filter(i => !events.has(i));
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=ir.js.map
|
package/dist/ir.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"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"}
|
package/dist/jsx.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import type { Template } from "./component.js";
|
|
3
|
+
import type { ExprIR, TypeIR } from "./ir.js";
|
|
4
|
+
export type JsxRoot = ts.JsxElement | ts.JsxSelfClosingElement | ts.JsxFragment;
|
|
5
|
+
export interface ResolvedProp {
|
|
6
|
+
name: string;
|
|
7
|
+
type: TypeIR;
|
|
8
|
+
default?: ExprIR;
|
|
9
|
+
optional: boolean;
|
|
10
|
+
required: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface ResolvedComponent {
|
|
13
|
+
className: string;
|
|
14
|
+
tagName: string;
|
|
15
|
+
module?: string;
|
|
16
|
+
props: ResolvedProp[];
|
|
17
|
+
}
|
|
18
|
+
export type ComposeResolver = (name: string, node: ts.Node) => ResolvedComponent;
|
|
19
|
+
export type TemplateMeta = {
|
|
20
|
+
kind: "propattr";
|
|
21
|
+
component: ResolvedComponent;
|
|
22
|
+
prop: ResolvedProp;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "construct";
|
|
25
|
+
component: ResolvedComponent;
|
|
26
|
+
provided: Map<string, ts.Expression | true>;
|
|
27
|
+
};
|
|
28
|
+
export declare function isJsxRoot(node: ts.Node): node is JsxRoot;
|
|
29
|
+
export declare function containsJsx(node: ts.Node): boolean;
|
|
30
|
+
export declare function jsxToTemplate(root: JsxRoot, source: ts.SourceFile, allowEvents: boolean, resolve?: ComposeResolver): Template;
|
|
31
|
+
//# sourceMappingURL=jsx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,GAAG,EAAE,CAAC,WAAW,CAAC;AAahF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,iBAAiB,CAAC;AAEjF,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CAAE,CAAC;AAErG,wBAAgB,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,CAExD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAYlD;AAKD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CAiM7H"}
|
package/dist/jsx.js
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
// JSX templates: convert a TSX element tree into the Template shape
|
|
2
|
+
// (static chunks interleaved with expressions) the downstream pipeline
|
|
3
|
+
// consumes — marker encoding, binding extraction, IR lowering, codegen.
|
|
4
|
+
//
|
|
5
|
+
// Mapping rules:
|
|
6
|
+
// - lowercase tags only (no component composition yet)
|
|
7
|
+
// - onXxx={handler} → an @xxx event-binding attribute
|
|
8
|
+
// - attr={expr} / {expr} children → template expressions
|
|
9
|
+
// - JSX text follows React whitespace rules: indentation-only lines vanish,
|
|
10
|
+
// inner newlines collapse to a single space
|
|
11
|
+
// - non-void elements always close (`<div/>` would not self-close in HTML)
|
|
12
|
+
import * as ts from "typescript";
|
|
13
|
+
import { ArgonCompileError, diagnosticForNode } from "./diagnostics.js";
|
|
14
|
+
import { isVoidElement } from "./html.js";
|
|
15
|
+
export function isJsxRoot(node) {
|
|
16
|
+
return ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node) || ts.isJsxFragment(node);
|
|
17
|
+
}
|
|
18
|
+
export function containsJsx(node) {
|
|
19
|
+
let found = false;
|
|
20
|
+
const visit = (n) => {
|
|
21
|
+
if (found)
|
|
22
|
+
return;
|
|
23
|
+
if (isJsxRoot(n)) {
|
|
24
|
+
found = true;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
ts.forEachChild(n, visit);
|
|
28
|
+
};
|
|
29
|
+
visit(node);
|
|
30
|
+
return found;
|
|
31
|
+
}
|
|
32
|
+
// `allowEvents` is true only for a component's top-level template: nested JSX
|
|
33
|
+
// (inside map callbacks or conditionals) compiles to plain strings, where an
|
|
34
|
+
// event handler would have nothing to bind to.
|
|
35
|
+
export function jsxToTemplate(root, source, allowEvents, resolve) {
|
|
36
|
+
const quasis = [""];
|
|
37
|
+
const expressions = [];
|
|
38
|
+
const expressionNodes = [];
|
|
39
|
+
const meta = new Map();
|
|
40
|
+
let key;
|
|
41
|
+
const text = (s) => {
|
|
42
|
+
quasis[quasis.length - 1] += s;
|
|
43
|
+
};
|
|
44
|
+
const expr = (e, m) => {
|
|
45
|
+
if (m)
|
|
46
|
+
meta.set(expressions.length, m);
|
|
47
|
+
expressions.push(e.getText(source));
|
|
48
|
+
expressionNodes.push(e);
|
|
49
|
+
quasis.push("");
|
|
50
|
+
};
|
|
51
|
+
const fail = (node, message, hint) => {
|
|
52
|
+
throw new ArgonCompileError([diagnosticForNode("ARGON120", "all", message, node, source, hint)], source);
|
|
53
|
+
};
|
|
54
|
+
const attribute = (attr, isRoot) => {
|
|
55
|
+
if (!ts.isJsxAttribute(attr)) {
|
|
56
|
+
return fail(attr, "JSX spread attributes are not supported.", "List the attributes explicitly.");
|
|
57
|
+
}
|
|
58
|
+
const name = attr.name.getText(source);
|
|
59
|
+
// React semantics: `key` identifies a list item for reconciliation and
|
|
60
|
+
// never renders. It belongs on the root element of a map() callback.
|
|
61
|
+
if (name === "key") {
|
|
62
|
+
if (allowEvents) {
|
|
63
|
+
fail(attr, "'key' is only supported on list items rendered inside map(), not in the component's top-level template.", "Remove the key, or move this element into a map() callback.");
|
|
64
|
+
}
|
|
65
|
+
if (!isRoot) {
|
|
66
|
+
fail(attr, "'key' must be on the root element of the list item.", "Move the key to the outermost element returned from the map() callback.");
|
|
67
|
+
}
|
|
68
|
+
const init = attr.initializer;
|
|
69
|
+
if (init && ts.isJsxExpression(init) && init.expression) {
|
|
70
|
+
key = init.expression;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (init && ts.isStringLiteral(init)) {
|
|
74
|
+
key = init;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
return fail(attr, "'key' needs a {expression} or string value.");
|
|
78
|
+
}
|
|
79
|
+
// `ref` resolves a setup-declared ref() to this element on the client; it
|
|
80
|
+
// compiles to a stable data attribute and never reaches Rust as a value.
|
|
81
|
+
if (name === "ref") {
|
|
82
|
+
if (!allowEvents) {
|
|
83
|
+
fail(attr, "'ref' is only supported in the component's top-level template, not in nested JSX fragments.", "Hoist the element into the main template.");
|
|
84
|
+
}
|
|
85
|
+
const init = attr.initializer;
|
|
86
|
+
if (!init || !ts.isJsxExpression(init) || !init.expression || !ts.isIdentifier(init.expression)) {
|
|
87
|
+
return fail(attr, "'ref' needs a {identifier} naming a ref() declared in the component setup.");
|
|
88
|
+
}
|
|
89
|
+
text(` data-argon-ref="${init.expression.text}"`);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (/^on[A-Z]/.test(name)) {
|
|
93
|
+
if (!allowEvents) {
|
|
94
|
+
fail(attr, "Event handlers are only supported in the component's top-level template, not in nested JSX fragments.", "Hoist the element into the main template, or handle the event on an enclosing element.");
|
|
95
|
+
}
|
|
96
|
+
const handler = attr.initializer;
|
|
97
|
+
if (!handler || !ts.isJsxExpression(handler) || !handler.expression) {
|
|
98
|
+
return fail(attr, `Event attribute '${name}' needs a {handler} expression.`);
|
|
99
|
+
}
|
|
100
|
+
text(` @${name.slice(2).toLowerCase()}="`);
|
|
101
|
+
expr(handler.expression);
|
|
102
|
+
text(`"`);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (!attr.initializer) {
|
|
106
|
+
text(` ${name}`);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (ts.isStringLiteral(attr.initializer)) {
|
|
110
|
+
text(` ${name}="${attr.initializer.text.replace(/"/g, """)}"`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (ts.isJsxExpression(attr.initializer) && attr.initializer.expression) {
|
|
114
|
+
text(` ${name}="`);
|
|
115
|
+
expr(attr.initializer.expression);
|
|
116
|
+
text(`"`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
fail(attr, `Unsupported JSX attribute value on '${name}'.`);
|
|
120
|
+
};
|
|
121
|
+
const composed = (node, tag) => {
|
|
122
|
+
const opening = ts.isJsxElement(node) ? node.openingElement : node;
|
|
123
|
+
if (!resolve) {
|
|
124
|
+
return fail(opening, `'<${tag}>' — components can only be composed inside component templates.`, "Move this markup into a component's template.");
|
|
125
|
+
}
|
|
126
|
+
const sig = resolve(tag, opening);
|
|
127
|
+
const propByName = new Map(sig.props.map(p => [p.name, p]));
|
|
128
|
+
text(`<${sig.tagName}`);
|
|
129
|
+
const provided = new Map();
|
|
130
|
+
for (const attr of opening.attributes.properties) {
|
|
131
|
+
const name = ts.isJsxAttribute(attr) ? attr.name.getText(source) : "";
|
|
132
|
+
const prop = propByName.get(name);
|
|
133
|
+
if (!prop || /^on[A-Z]/.test(name)) {
|
|
134
|
+
// Events, key, ref, and passthrough host attributes (class, slot, ...).
|
|
135
|
+
attribute(attr, node === root);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
provided.set(name, propValue(attr, tag, name));
|
|
139
|
+
const value = provided.get(name);
|
|
140
|
+
if (value === true) {
|
|
141
|
+
text(` data-${kebab(name)}="true"`);
|
|
142
|
+
}
|
|
143
|
+
else if (ts.isStringLiteral(value)) {
|
|
144
|
+
text(` data-${kebab(name)}="${value.text.replace(/"/g, """)}"`);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
text(` data-${kebab(name)}="`);
|
|
148
|
+
expr(value, { kind: "propattr", component: sig, prop });
|
|
149
|
+
text(`"`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
for (const prop of sig.props) {
|
|
153
|
+
if (prop.required && !provided.has(prop.name)) {
|
|
154
|
+
fail(opening, `'<${tag}>' requires prop '${prop.name}'.`, "Pass it as an attribute, or give it a default in the component.");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
text(">");
|
|
158
|
+
// The construct marker anchors the child's server-rendered shadow DOM.
|
|
159
|
+
expr(node, { kind: "construct", component: sig, provided });
|
|
160
|
+
if (ts.isJsxElement(node)) {
|
|
161
|
+
for (const child of node.children)
|
|
162
|
+
visit(child);
|
|
163
|
+
}
|
|
164
|
+
text(`</${sig.tagName}>`);
|
|
165
|
+
};
|
|
166
|
+
const propValue = (attr, tag, name) => {
|
|
167
|
+
if (!attr.initializer)
|
|
168
|
+
return true;
|
|
169
|
+
if (ts.isStringLiteral(attr.initializer))
|
|
170
|
+
return attr.initializer;
|
|
171
|
+
if (ts.isJsxExpression(attr.initializer) && attr.initializer.expression)
|
|
172
|
+
return attr.initializer.expression;
|
|
173
|
+
return fail(attr, `Unsupported value for prop '${name}' of '<${tag}>'.`);
|
|
174
|
+
};
|
|
175
|
+
const element = (node) => {
|
|
176
|
+
const opening = ts.isJsxElement(node) ? node.openingElement : node;
|
|
177
|
+
const tag = opening.tagName.getText(source);
|
|
178
|
+
if (/^[A-Z]/.test(tag)) {
|
|
179
|
+
composed(node, tag);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
if (!/^[a-z]/.test(tag)) {
|
|
183
|
+
fail(opening, `'<${tag}>' must be a lowercase HTML/SVG tag or a capitalized Argon component.`);
|
|
184
|
+
}
|
|
185
|
+
text(`<${tag}`);
|
|
186
|
+
for (const attr of opening.attributes.properties)
|
|
187
|
+
attribute(attr, node === root);
|
|
188
|
+
text(">");
|
|
189
|
+
if (isVoidElement(tag)) {
|
|
190
|
+
if (ts.isJsxElement(node) && node.children.some(c => !isBlankJsxText(c))) {
|
|
191
|
+
fail(node, `<${tag}> is a void element and cannot have children.`);
|
|
192
|
+
}
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (ts.isJsxElement(node)) {
|
|
196
|
+
for (const child of node.children)
|
|
197
|
+
visit(child);
|
|
198
|
+
}
|
|
199
|
+
text(`</${tag}>`);
|
|
200
|
+
};
|
|
201
|
+
const visit = (node) => {
|
|
202
|
+
if (ts.isJsxText(node)) {
|
|
203
|
+
text(jsxText(node.text));
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (ts.isJsxExpression(node)) {
|
|
207
|
+
if (node.expression)
|
|
208
|
+
expr(node.expression);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (ts.isJsxFragment(node)) {
|
|
212
|
+
for (const child of node.children)
|
|
213
|
+
visit(child);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node)) {
|
|
217
|
+
element(node);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
fail(node, `Unsupported JSX construct: ${ts.SyntaxKind[node.kind]}`);
|
|
221
|
+
};
|
|
222
|
+
visit(root);
|
|
223
|
+
return { quasis, expressions, expressionNodes, meta, key };
|
|
224
|
+
}
|
|
225
|
+
function kebab(name) {
|
|
226
|
+
return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
227
|
+
}
|
|
228
|
+
function isBlankJsxText(node) {
|
|
229
|
+
return ts.isJsxText(node) && /^\s*$/.test(node.text);
|
|
230
|
+
}
|
|
231
|
+
// React whitespace rules: whitespace-only runs containing a newline vanish;
|
|
232
|
+
// leading/trailing newline indentation is trimmed; inner newlines collapse
|
|
233
|
+
// to one space.
|
|
234
|
+
function jsxText(raw) {
|
|
235
|
+
if (/^\s*$/.test(raw))
|
|
236
|
+
return raw.includes("\n") ? "" : raw;
|
|
237
|
+
return raw
|
|
238
|
+
.replace(/^\s*\n\s*/, "")
|
|
239
|
+
.replace(/\s*\n\s*$/, "")
|
|
240
|
+
.replace(/\s*\n\s*/g, " ");
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=jsx.js.map
|
package/dist/jsx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"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"}
|
package/dist/lower.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { type ModuleIR } from "./ir.js";
|
|
3
|
+
export { SSR_HINT } from "./ssr-subset.js";
|
|
4
|
+
export declare function lowerProgram(source: ts.SourceFile, sourceText: string): ModuleIR;
|
|
5
|
+
export declare function freeIdentifiers(node: ts.Node): Set<string>;
|
|
6
|
+
//# sourceMappingURL=lower.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lower.d.ts","sourceRoot":"","sources":["../src/lower.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAiBjC,OAAO,EAWL,KAAK,QAAQ,EASd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAyB3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,CAEhF;AAs0CD,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAkB1D"}
|