@adaas/are-html 0.0.12 → 0.0.13

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 (108) hide show
  1. package/dist/browser/index.d.mts +19 -4
  2. package/dist/browser/index.mjs +104 -7
  3. package/dist/browser/index.mjs.map +1 -1
  4. package/dist/node/{AreBinding.attribute-C6JasbJL.d.ts → AreBinding.attribute-Bm5LlOyE.d.ts} +7 -0
  5. package/dist/node/{AreBinding.attribute-C6qrxN8K.d.mts → AreBinding.attribute-doUvtOjc.d.mts} +7 -0
  6. package/dist/node/attributes/AreBinding.attribute.d.mts +1 -1
  7. package/dist/node/attributes/AreBinding.attribute.d.ts +1 -1
  8. package/dist/node/attributes/AreDirective.attribute.d.mts +1 -1
  9. package/dist/node/attributes/AreDirective.attribute.d.ts +1 -1
  10. package/dist/node/attributes/AreEvent.attribute.d.mts +1 -1
  11. package/dist/node/attributes/AreEvent.attribute.d.ts +1 -1
  12. package/dist/node/attributes/AreStatic.attribute.d.mts +1 -1
  13. package/dist/node/attributes/AreStatic.attribute.d.ts +1 -1
  14. package/dist/node/directives/AreDirectiveFor.directive.d.mts +1 -1
  15. package/dist/node/directives/AreDirectiveFor.directive.d.ts +1 -1
  16. package/dist/node/directives/AreDirectiveIf.directive.d.mts +1 -1
  17. package/dist/node/directives/AreDirectiveIf.directive.d.ts +1 -1
  18. package/dist/node/engine/AreHTML.compiler.d.mts +8 -1
  19. package/dist/node/engine/AreHTML.compiler.d.ts +8 -1
  20. package/dist/node/engine/AreHTML.compiler.js +17 -0
  21. package/dist/node/engine/AreHTML.compiler.js.map +1 -1
  22. package/dist/node/engine/AreHTML.compiler.mjs +17 -0
  23. package/dist/node/engine/AreHTML.compiler.mjs.map +1 -1
  24. package/dist/node/engine/AreHTML.context.js +2 -2
  25. package/dist/node/engine/AreHTML.context.js.map +1 -1
  26. package/dist/node/engine/AreHTML.context.mjs +3 -3
  27. package/dist/node/engine/AreHTML.context.mjs.map +1 -1
  28. package/dist/node/engine/AreHTML.interpreter.d.mts +3 -0
  29. package/dist/node/engine/AreHTML.interpreter.d.ts +3 -0
  30. package/dist/node/engine/AreHTML.interpreter.js +44 -0
  31. package/dist/node/engine/AreHTML.interpreter.js.map +1 -1
  32. package/dist/node/engine/AreHTML.interpreter.mjs +44 -0
  33. package/dist/node/engine/AreHTML.interpreter.mjs.map +1 -1
  34. package/dist/node/engine/AreHTML.lifecycle.d.mts +2 -1
  35. package/dist/node/engine/AreHTML.lifecycle.d.ts +2 -1
  36. package/dist/node/engine/AreHTML.lifecycle.js +13 -1
  37. package/dist/node/engine/AreHTML.lifecycle.js.map +1 -1
  38. package/dist/node/engine/AreHTML.lifecycle.mjs +13 -1
  39. package/dist/node/engine/AreHTML.lifecycle.mjs.map +1 -1
  40. package/dist/node/engine/AreHTML.tokenizer.d.mts +1 -1
  41. package/dist/node/engine/AreHTML.tokenizer.d.ts +1 -1
  42. package/dist/node/engine/AreHTML.transformer.d.mts +1 -1
  43. package/dist/node/engine/AreHTML.transformer.d.ts +1 -1
  44. package/dist/node/index.d.mts +1 -1
  45. package/dist/node/index.d.ts +1 -1
  46. package/dist/node/instructions/AreHTML.instructions.types.d.mts +2 -4
  47. package/dist/node/instructions/AreHTML.instructions.types.d.ts +2 -4
  48. package/dist/node/lib/AreDirective/AreDirective.component.d.mts +1 -1
  49. package/dist/node/lib/AreDirective/AreDirective.component.d.ts +1 -1
  50. package/dist/node/lib/AreDirective/AreDirective.types.d.mts +1 -1
  51. package/dist/node/lib/AreDirective/AreDirective.types.d.ts +1 -1
  52. package/dist/node/lib/AreHTML/AreHTML.tokenizer.d.mts +1 -1
  53. package/dist/node/lib/AreHTML/AreHTML.tokenizer.d.ts +1 -1
  54. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.d.mts +1 -1
  55. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.d.ts +1 -1
  56. package/dist/node/lib/AreHTMLNode/AreHTMLNode.d.mts +1 -1
  57. package/dist/node/lib/AreHTMLNode/AreHTMLNode.d.ts +1 -1
  58. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js +14 -0
  59. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js.map +1 -1
  60. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs +14 -0
  61. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs.map +1 -1
  62. package/dist/node/lib/AreRoot/AreRoot.component.js +16 -3
  63. package/dist/node/lib/AreRoot/AreRoot.component.js.map +1 -1
  64. package/dist/node/lib/AreRoot/AreRoot.component.mjs +16 -3
  65. package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +1 -1
  66. package/dist/node/nodes/AreComment.d.mts +1 -1
  67. package/dist/node/nodes/AreComment.d.ts +1 -1
  68. package/dist/node/nodes/AreComponent.d.mts +1 -1
  69. package/dist/node/nodes/AreComponent.d.ts +1 -1
  70. package/dist/node/nodes/AreInterpolation.d.mts +1 -1
  71. package/dist/node/nodes/AreInterpolation.d.ts +1 -1
  72. package/dist/node/nodes/AreRoot.d.mts +1 -1
  73. package/dist/node/nodes/AreRoot.d.ts +1 -1
  74. package/dist/node/nodes/AreText.d.mts +1 -1
  75. package/dist/node/nodes/AreText.d.ts +1 -1
  76. package/examples/component-styles/concept.ts +41 -0
  77. package/examples/component-styles/containers/UI.container.ts +122 -0
  78. package/examples/component-styles/dist/index.html +25 -0
  79. package/examples/{jumpstart/dist/mor90p6y-0plg7g.js → component-styles/dist/mpq29j47-owas2v.js} +8326 -5942
  80. package/examples/component-styles/public/index.html +25 -0
  81. package/examples/component-styles/src/components/AppPage.component.ts +74 -0
  82. package/examples/component-styles/src/components/TheAlert.component.ts +81 -0
  83. package/examples/component-styles/src/components/TheButton.component.ts +71 -0
  84. package/examples/component-styles/src/components/TheCard.component.ts +64 -0
  85. package/examples/component-styles/src/concept.ts +70 -0
  86. package/examples/dashboard/dist/index.html +1 -1
  87. package/examples/dashboard/dist/{mpmt0gys-1r9rcu.js → mppzjw80-9gwa4h.js} +1223 -863
  88. package/examples/jumpstart/dist/index.html +1 -1
  89. package/examples/jumpstart/dist/{mor90p7p-1898bz.js → mppwx932-xbmb0x.js} +4215 -1984
  90. package/examples/signal-routing/concept.ts +41 -0
  91. package/examples/signal-routing/containers/UI.container.ts +126 -0
  92. package/examples/signal-routing/dist/index.html +18 -0
  93. package/examples/signal-routing/dist/mpq6u1wz-2pkqe2.js +14002 -0
  94. package/examples/signal-routing/public/index.html +18 -0
  95. package/examples/signal-routing/src/components/AboutPage.component.ts +74 -0
  96. package/examples/signal-routing/src/components/AppShell.component.ts +42 -0
  97. package/examples/signal-routing/src/components/HomePage.component.ts +76 -0
  98. package/examples/signal-routing/src/components/NavBar.component.ts +104 -0
  99. package/examples/signal-routing/src/components/SettingsPage.component.ts +98 -0
  100. package/examples/signal-routing/src/concept.ts +114 -0
  101. package/package.json +7 -5
  102. package/src/engine/AreHTML.compiler.ts +24 -7
  103. package/src/engine/AreHTML.context.ts +6 -4
  104. package/src/engine/AreHTML.interpreter.ts +54 -0
  105. package/src/engine/AreHTML.lifecycle.ts +16 -12
  106. package/src/instructions/AreHTML.instructions.types.ts +2 -4
  107. package/src/lib/AreHTMLNode/AreHTMLNode.ts +15 -0
  108. package/src/lib/AreRoot/AreRoot.component.ts +31 -7
@@ -0,0 +1,41 @@
1
+ import { A_Concept, A_Context } from "@adaas/a-concept";
2
+ import { UIContainer } from "./containers/UI.container";
3
+ import { A_Logger } from "@adaas/a-utils/a-logger";
4
+ import { A_Polyfill } from "@adaas/a-utils/a-polyfill";
5
+ import { A_Config, ENVConfigReader } from "@adaas/a-utils/a-config";
6
+
7
+
8
+ (async () => {
9
+ try {
10
+ const Application = new UIContainer({
11
+ name: 'ARE Signal Routing',
12
+ components: [
13
+ A_Polyfill,
14
+ ENVConfigReader,
15
+ A_Logger,
16
+ ],
17
+ fragments: [
18
+ new A_Config({
19
+ defaults: {
20
+ PORT: 8082,
21
+ CONFIG_VERBOSE: true,
22
+ DEV_MODE: true,
23
+ }
24
+ }),
25
+ ]
26
+ });
27
+
28
+ const concept = new A_Concept({
29
+ name: 'adaas-are-example-signal-routing',
30
+ components: [A_Logger, A_Polyfill, ENVConfigReader],
31
+ containers: [Application],
32
+ });
33
+
34
+ await concept.load();
35
+ await concept.start();
36
+
37
+ } catch (error) {
38
+ const logger = A_Context.root.resolve<A_Logger>(A_Logger)!;
39
+ logger.error(error);
40
+ }
41
+ })();
@@ -0,0 +1,126 @@
1
+ import { A_Concept, A_Error, A_IdentityHelper, A_Inject } from "@adaas/a-concept";
2
+ import { A_Config } from "@adaas/a-utils/a-config";
3
+ import { A_Logger } from "@adaas/a-utils/a-logger";
4
+ import { A_Service } from "@adaas/a-utils/a-service";
5
+ import { build } from "esbuild";
6
+ import fs from "fs";
7
+ import http from "http";
8
+ import path from "path";
9
+
10
+
11
+ export class UIContainer extends A_Service {
12
+
13
+ protected server!: any;
14
+
15
+ @A_Concept.Build()
16
+ async build(
17
+ @A_Inject(A_Logger) logger: A_Logger,
18
+ @A_Inject(A_Config) config: A_Config
19
+ ): Promise<void> {
20
+ logger.log('Building Signal Routing example...');
21
+ const entryFile = path.resolve(__dirname, "../src/concept.ts");
22
+ const BundleID = A_IdentityHelper.generateTimeId();
23
+ const outFile = path.resolve(__dirname, `../dist/${BundleID}.js`);
24
+
25
+ if (fs.existsSync(path.resolve(__dirname, "../dist"))) {
26
+ fs.rmSync(path.resolve(__dirname, "../dist"), { recursive: true, force: true });
27
+ }
28
+
29
+ await build({
30
+ entryPoints: [entryFile],
31
+ outfile: outFile,
32
+ bundle: true,
33
+ minify: false,
34
+ keepNames: true,
35
+ sourcemap: false,
36
+ target: "es2020",
37
+ format: "esm",
38
+ });
39
+
40
+ logger.log('green', 'Bundle built successfully.');
41
+
42
+ // Replace {{BUNDLE_ID}} in index.html
43
+ let indexHtml = await fs.promises.readFile(
44
+ path.resolve(__dirname, "../public/index.html"), 'utf-8'
45
+ );
46
+ indexHtml = indexHtml.replace('{{BUNDLE_ID}}', BundleID);
47
+ await fs.promises.writeFile(path.resolve(__dirname, "../dist/index.html"), indexHtml);
48
+
49
+ // Copy static assets recursively
50
+ const publicDir = path.resolve(__dirname, "../public");
51
+ const distDir = path.resolve(__dirname, "../dist");
52
+ const copyRecursive = async (src: string, dest: string) => {
53
+ const entries = await fs.promises.readdir(src, { withFileTypes: true });
54
+ await fs.promises.mkdir(dest, { recursive: true });
55
+ for (const entry of entries) {
56
+ const srcPath = path.join(src, entry.name);
57
+ const destPath = path.join(dest, entry.name);
58
+ if (entry.isDirectory()) {
59
+ await copyRecursive(srcPath, destPath);
60
+ } else if (entry.name !== 'index.html') {
61
+ await fs.promises.copyFile(srcPath, destPath);
62
+ }
63
+ }
64
+ };
65
+ await copyRecursive(publicDir, distDir);
66
+
67
+ logger.log('green', 'Static assets copied.');
68
+ }
69
+
70
+ @A_Concept.Load()
71
+ async preLoadBuild(
72
+ @A_Inject(A_Logger) logger: A_Logger,
73
+ @A_Inject(A_Config) config: A_Config
74
+ ) {
75
+ await this.build(logger, config);
76
+ }
77
+
78
+ @A_Concept.Start()
79
+ async startStaticServer(
80
+ @A_Inject(A_Logger) logger: A_Logger,
81
+ @A_Inject(A_Config) config: A_Config
82
+ ) {
83
+ this.server = http.createServer(this.serveStaticFiles.bind(this));
84
+ const PORT = config.get('PORT') || 8082;
85
+ this.server.listen(PORT, () => {
86
+ logger.log('green', `Signal Routing example running at http://localhost:${PORT}`);
87
+ });
88
+ }
89
+
90
+ protected async serveStaticFiles(
91
+ req: http.IncomingMessage,
92
+ res: http.ServerResponse,
93
+ ) {
94
+ const url = req.url || '/';
95
+ let filePath = path.join(__dirname, '../dist', url === '/' ? 'index.html' : url);
96
+
97
+ const logger = this.scope.resolve<A_Logger>(A_Logger)!;
98
+ logger.log('blue', `Serving: ${filePath}`);
99
+
100
+ const mimeTypes: Record<string, string> = {
101
+ '.html': 'text/html',
102
+ '.js': 'text/javascript',
103
+ '.css': 'text/css',
104
+ '.json': 'application/json',
105
+ '.png': 'image/png',
106
+ '.svg': 'image/svg+xml',
107
+ };
108
+ const ext = path.extname(filePath).toLowerCase();
109
+ const contentType = mimeTypes[ext] || 'application/octet-stream';
110
+
111
+ if (!fs.existsSync(filePath)) {
112
+ // SPA fallback — serve index.html for all unknown paths
113
+ filePath = path.join(__dirname, '../dist', 'index.html');
114
+ }
115
+
116
+ fs.readFile(filePath, (err, content) => {
117
+ if (err) {
118
+ res.writeHead(500);
119
+ res.end(`Server Error: ${err.code}`, 'utf-8');
120
+ } else {
121
+ res.writeHead(200, { 'Content-Type': contentType });
122
+ res.end(content, 'utf-8');
123
+ }
124
+ });
125
+ }
126
+ }
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>ARE · Signal Routing</title>
7
+ <style>
8
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
9
+ body { background: #09090b; color: #f4f4f5; }
10
+ are-root { display: block; }
11
+ </style>
12
+ </head>
13
+ <body>
14
+ <are-root id="app"><app-shell></app-shell></are-root>
15
+
16
+ <script type="module" src="./mpq6u1wz-2pkqe2.js"></script>
17
+ </body>
18
+ </html>