pasika 0.5.0 → 0.5.1

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.
@@ -92,15 +92,17 @@ function jsxTagName(element) {
92
92
  return ts.isIdentifier(tagName2) ? tagName2.text : void 0;
93
93
  }
94
94
  function rootFromExpression(expression) {
95
- if (ts.isJsxSelfClosingElement(expression)) {
96
- const tagName2 = jsxTagName(expression);
95
+ let unwrapped = expression;
96
+ while (ts.isParenthesizedExpression(unwrapped)) unwrapped = unwrapped.expression;
97
+ if (ts.isJsxSelfClosingElement(unwrapped)) {
98
+ const tagName2 = jsxTagName(unwrapped);
97
99
  if (!tagName2?.startsWith(tagName2[0]?.toLowerCase() ?? "")) return void 0;
98
- return { tagName: tagName2, attributes: [...expression.attributes.properties] };
100
+ return { tagName: tagName2, attributes: [...unwrapped.attributes.properties] };
99
101
  }
100
- if (ts.isJsxElement(expression)) {
101
- const tagName2 = jsxTagName(expression);
102
+ if (ts.isJsxElement(unwrapped)) {
103
+ const tagName2 = jsxTagName(unwrapped);
102
104
  if (!tagName2?.startsWith(tagName2[0]?.toLowerCase() ?? "")) return void 0;
103
- return { tagName: tagName2, attributes: [...expression.openingElement.attributes.properties] };
105
+ return { tagName: tagName2, attributes: [...unwrapped.openingElement.attributes.properties] };
104
106
  }
105
107
  return void 0;
106
108
  }
@@ -141,12 +143,21 @@ var NEXT_ROUTING_FILES = /* @__PURE__ */ new Set([
141
143
  "layout",
142
144
  "loading",
143
145
  "error",
146
+ "global-error",
144
147
  "not-found",
145
148
  "route",
146
149
  "template",
147
150
  "default",
148
151
  "middleware",
149
- "instrumentation"
152
+ "instrumentation",
153
+ // File conventions that Next.js requires to keep their exact kebab-case names
154
+ "apple-icon",
155
+ "icon",
156
+ "manifest",
157
+ "opengraph-image",
158
+ "robots",
159
+ "sitemap",
160
+ "twitter-image"
150
161
  ]);
151
162
  var COMPOUND_SUFFIXES = /* @__PURE__ */ new Set(["example", "test", "spec", "stories"]);
152
163
  function isKebabCase(str) {
@@ -1757,14 +1768,24 @@ var applicationStructureRule = {
1757
1768
  // eslint/rules/named-exports.ts
1758
1769
  import path13 from "path";
1759
1770
  var FRAMEWORK_DEFAULT_EXPORT_FILES = /* @__PURE__ */ new Set([
1771
+ // App Router routing files
1760
1772
  "default",
1761
1773
  "error",
1774
+ "global-error",
1762
1775
  "layout",
1763
1776
  "loading",
1764
1777
  "not-found",
1765
1778
  "page",
1766
1779
  "route",
1767
- "template"
1780
+ "template",
1781
+ // File conventions (metadata, icons) that must default-export their handler
1782
+ "apple-icon",
1783
+ "icon",
1784
+ "manifest",
1785
+ "opengraph-image",
1786
+ "robots",
1787
+ "sitemap",
1788
+ "twitter-image"
1768
1789
  ]);
1769
1790
  function isFrameworkDefaultExportFile(filename) {
1770
1791
  const normalized = filename.replaceAll(path13.sep, "/");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pasika",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Reusable agent setup package",
5
5
  "repository": {
6
6
  "type": "git",