@jay-framework/compiler-shared 0.15.5 → 0.16.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/dist/index.d.ts CHANGED
@@ -587,6 +587,34 @@ interface PluginManifest {
587
587
  actions?: ActionManifestEntry[];
588
588
  /** Plugin initialization configuration */
589
589
  init?: PluginInitConfig;
590
+ /** Server-side services provided by this plugin (DL#125) */
591
+ services?: Array<{
592
+ name: string;
593
+ marker: string;
594
+ description?: string;
595
+ doc?: string;
596
+ }>;
597
+ /** Client-side contexts provided by this plugin (DL#125) */
598
+ contexts?: Array<{
599
+ name: string;
600
+ marker: string;
601
+ description?: string;
602
+ doc?: string;
603
+ }>;
604
+ /** Plugin-provided routes — full pages served by the dev server (DL#130).
605
+ * Each route is a headless component + jay-html template + route path. */
606
+ routes?: Array<{
607
+ /** Route path (e.g., "/aiditor", "/aiditor/pages/[route]") */
608
+ path: string;
609
+ /** Export subpath for the jay-html file (resolved via package.json exports) */
610
+ jayHtml: string;
611
+ /** Export subpath for the CSS file (optional, resolved via package.json exports) */
612
+ css?: string;
613
+ /** Exported member name for the page component */
614
+ component: string;
615
+ /** Human-readable description */
616
+ description?: string;
617
+ }>;
590
618
  /** Plugin setup configuration (Design Log #87) */
591
619
  setup?: {
592
620
  /** Export name (NPM) or relative path (local) to setup handler function */
package/dist/index.js CHANGED
@@ -1160,7 +1160,21 @@ var SourceFileFormat = /* @__PURE__ */ ((SourceFileFormat2) => {
1160
1160
  return SourceFileFormat2;
1161
1161
  })(SourceFileFormat || {});
1162
1162
  function mergeRefsTrees(...trees) {
1163
- const allRefs = trees.flatMap((tree) => tree.refs);
1163
+ const refsByConstName = /* @__PURE__ */ new Map();
1164
+ const refsWithoutConstName = [];
1165
+ for (const tree of trees) {
1166
+ for (const ref of tree.refs) {
1167
+ if (ref.constName == null) {
1168
+ refsWithoutConstName.push(ref);
1169
+ } else {
1170
+ const existing = refsByConstName.get(ref.constName);
1171
+ if (!existing || !existing.repeated && ref.repeated) {
1172
+ refsByConstName.set(ref.constName, ref);
1173
+ }
1174
+ }
1175
+ }
1176
+ }
1177
+ const allRefs = [...refsWithoutConstName, ...refsByConstName.values()];
1164
1178
  const allChildren = {};
1165
1179
  const allKeys = new Set(trees.flatMap((tree) => Object.keys(tree.children)));
1166
1180
  for (const key of allKeys) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jay-framework/compiler-shared",
3
- "version": "0.15.5",
3
+ "version": "0.16.0",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "license": "Apache-2.0",
@@ -25,10 +25,10 @@
25
25
  },
26
26
  "author": "",
27
27
  "dependencies": {
28
- "@jay-framework/component": "^0.15.5",
29
- "@jay-framework/runtime": "^0.15.5",
30
- "@jay-framework/secure": "^0.15.5",
31
- "@jay-framework/typescript-bridge": "^0.15.5",
28
+ "@jay-framework/component": "^0.16.0",
29
+ "@jay-framework/runtime": "^0.16.0",
30
+ "@jay-framework/secure": "^0.16.0",
31
+ "@jay-framework/typescript-bridge": "^0.16.0",
32
32
  "@types/js-yaml": "^4.0.9",
33
33
  "change-case": "^4.1.2",
34
34
  "js-beautify": "^1.14.11",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "@caiogondim/strip-margin": "^1.0.0",
44
- "@jay-framework/dev-environment": "^0.15.5",
44
+ "@jay-framework/dev-environment": "^0.16.0",
45
45
  "@testing-library/jest-dom": "^6.2.0",
46
46
  "@types/js-beautify": "^1",
47
47
  "@types/node": "^20.11.5",