pasika 0.5.16 → 0.5.17

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/README.md CHANGED
@@ -9,10 +9,10 @@ Documentation, the lint rules derived from it, and the checks that apply and dia
9
9
  ```text
10
10
  docs/
11
11
  repository-policy.md # repo-wide code and documentation requirements (Policy)
12
- code-organization-guide/ # placement, extraction, module conventions
12
+ next-codebase-guide/ # placement, extraction, module conventions
13
13
  documentation-guide/ # how documents themselves are written
14
14
  pasika-adoption-guide/ # adopting and updating the framework
15
- styling-guide/ # Tailwind theme, composition, variants, states
15
+ next-tailwind-guide/ # Tailwind theme, composition, variants, states
16
16
  scripts/
17
17
  registry.json # requirement → enforcement, keyed by content hash
18
18
  coverage.ts # reconciles the docs against the registry
@@ -39,7 +39,7 @@ Requirements are identified by a hash of their canonical text, not by a hand-wri
39
39
 
40
40
  ```jsonc
41
41
  {
42
- "doc": "code-organization-guide/rules/no-mixed-concerns-rule.md",
42
+ "doc": "next-codebase-guide/rules/no-mixed-concerns-rule.md",
43
43
  "text": "A .tsx file that defines a component MUST contain exactly one component.",
44
44
  "hash": "b19fe3bd34",
45
45
  "ref": "pasika/no-mixed-concerns",
@@ -395,7 +395,7 @@ var noMixedConcernsRule = {
395
395
  for (const extra of components.slice(1)) {
396
396
  context.report({
397
397
  loc: { line: 1, column: 0 },
398
- message: `File defines multiple components. "${extra.name}" is an extra component. Move it to its own file. Each component file MUST define exactly one component. See docs/code-organization-guide/rules/no-mixed-concerns-rule.md`
398
+ message: `File defines multiple components. "${extra.name}" is an extra component. Move it to its own file. Each component file MUST define exactly one component. See docs/next-codebase-guide/rules/no-mixed-concerns-rule.md`
399
399
  });
400
400
  }
401
401
  }
@@ -421,7 +421,7 @@ var noArbitraryTailwindRule = {
421
421
  if (!match) return;
422
422
  context.report({
423
423
  node,
424
- message: `Tailwind arbitrary-value class "${match[0]}" is not allowed. Use a named token or custom utility. See docs/styling-guide/rules/arbitrary-value-rule.md`
424
+ message: `Tailwind arbitrary-value class "${match[0]}" is not allowed. Use a named token or custom utility. See docs/next-tailwind-guide/rules/arbitrary-value-rule.md`
425
425
  });
426
426
  }
427
427
  function checkExpression(node, expression) {
@@ -1178,7 +1178,7 @@ var enforceCnMergeRule = {
1178
1178
  if (isComponentProp && attributeName !== "className" && attributeName.endsWith("ClassName")) {
1179
1179
  context.report({
1180
1180
  node,
1181
- message: "Expose appearance through typed variant props instead of separate internal class-name props. See docs/styling-guide/rules/class-composition-rule.md"
1181
+ message: "Expose appearance through typed variant props instead of separate internal class-name props. See docs/next-tailwind-guide/rules/class-composition-rule.md"
1182
1182
  });
1183
1183
  return;
1184
1184
  }
@@ -1192,7 +1192,7 @@ var enforceCnMergeRule = {
1192
1192
  if (invalidClass) {
1193
1193
  context.report({
1194
1194
  node,
1195
- message: `Passed className contains non-layout utility "${invalidClass}". Expose appearance through typed variant props. See docs/styling-guide/rules/class-composition-rule.md`
1195
+ message: `Passed className contains non-layout utility "${invalidClass}". Expose appearance through typed variant props. See docs/next-tailwind-guide/rules/class-composition-rule.md`
1196
1196
  });
1197
1197
  }
1198
1198
  return;
@@ -1201,7 +1201,7 @@ var enforceCnMergeRule = {
1201
1201
  if (classCount(valueNode.value) > 5) {
1202
1202
  context.report({
1203
1203
  node,
1204
- message: "Static className with more than 5 classes must use cn() with grouped string literals. See docs/styling-guide/rules/class-composition-rule.md"
1204
+ message: "Static className with more than 5 classes must use cn() with grouped string literals. See docs/next-tailwind-guide/rules/class-composition-rule.md"
1205
1205
  });
1206
1206
  }
1207
1207
  return;
@@ -1211,28 +1211,28 @@ var enforceCnMergeRule = {
1211
1211
  if (expr.type === "BinaryExpression" && expr.operator === "+") {
1212
1212
  context.report({
1213
1213
  node,
1214
- message: "Use cn() instead of + operator for className. See docs/styling-guide/rules/class-composition-rule.md"
1214
+ message: "Use cn() instead of + operator for className. See docs/next-tailwind-guide/rules/class-composition-rule.md"
1215
1215
  });
1216
1216
  return;
1217
1217
  }
1218
1218
  if (expr.type === "TemplateLiteral" && expr.expressions.length > 0) {
1219
1219
  context.report({
1220
1220
  node,
1221
- message: "Use cn() instead of template literals with conditionals for className. See docs/styling-guide/rules/class-composition-rule.md"
1221
+ message: "Use cn() instead of template literals with conditionals for className. See docs/next-tailwind-guide/rules/class-composition-rule.md"
1222
1222
  });
1223
1223
  return;
1224
1224
  }
1225
1225
  if (expr.type === "LogicalExpression" || expr.type === "ConditionalExpression") {
1226
1226
  context.report({
1227
1227
  node,
1228
- message: "Use cn() for conditional classes in className. See docs/styling-guide/rules/class-composition-rule.md"
1228
+ message: "Use cn() for conditional classes in className. See docs/next-tailwind-guide/rules/class-composition-rule.md"
1229
1229
  });
1230
1230
  return;
1231
1231
  }
1232
1232
  if (expr.type === "Literal" && typeof expr.value === "string" && classCount(expr.value) > 5) {
1233
1233
  context.report({
1234
1234
  node,
1235
- message: "Static className with more than 5 classes must use cn() with grouped string literals. See docs/styling-guide/rules/class-composition-rule.md"
1235
+ message: "Static className with more than 5 classes must use cn() with grouped string literals. See docs/next-tailwind-guide/rules/class-composition-rule.md"
1236
1236
  });
1237
1237
  return;
1238
1238
  }
@@ -1241,7 +1241,7 @@ var enforceCnMergeRule = {
1241
1241
  if (arg.type === "Literal" && typeof arg.value === "string" && classCount(arg.value) > 5) {
1242
1242
  context.report({
1243
1243
  node: arg,
1244
- message: "Each cn() string argument must contain at most 5 class names. Group by styling concern. See docs/styling-guide/rules/class-composition-rule.md"
1244
+ message: "Each cn() string argument must contain at most 5 class names. Group by styling concern. See docs/next-tailwind-guide/rules/class-composition-rule.md"
1245
1245
  });
1246
1246
  }
1247
1247
  }
@@ -1339,7 +1339,7 @@ var enforceCvaVariantPropsRule = {
1339
1339
  if (variantNames.includes(keyName2)) {
1340
1340
  context.report({
1341
1341
  node,
1342
- message: `Variant prop "${keyName2}" duplicates CVA variant values. Use VariantProps<typeof variants> instead of manually writing union types. See docs/styling-guide/rules/component-variant-rule.md`
1342
+ message: `Variant prop "${keyName2}" duplicates CVA variant values. Use VariantProps<typeof variants> instead of manually writing union types. See docs/next-tailwind-guide/rules/component-variant-rule.md`
1343
1343
  });
1344
1344
  return;
1345
1345
  }
@@ -1407,7 +1407,7 @@ var enforceBarrelExportsRule = {
1407
1407
  if (!reExportedNames.has(parentName)) {
1408
1408
  context.report({
1409
1409
  loc: { line: 1, column: 0 },
1410
- message: `index.ts in "${folderName}/" must re-export "${parentName}". See docs/code-organization-guide/rules/folder-nesting-rule.md`
1410
+ message: `index.ts in "${folderName}/" must re-export "${parentName}". See docs/next-codebase-guide/rules/folder-nesting-rule.md`
1411
1411
  });
1412
1412
  return;
1413
1413
  }
@@ -1415,7 +1415,7 @@ var enforceBarrelExportsRule = {
1415
1415
  if (nonParentExports.length > 0) {
1416
1416
  context.report({
1417
1417
  loc: { line: 1, column: 0 },
1418
- message: `index.ts must not re-export exclusive children: ${nonParentExports.join(", ")}. Only "${parentName}" may be re-exported. See docs/code-organization-guide/rules/folder-nesting-rule.md`
1418
+ message: `index.ts must not re-export exclusive children: ${nonParentExports.join(", ")}. Only "${parentName}" may be re-exported. See docs/next-codebase-guide/rules/folder-nesting-rule.md`
1419
1419
  });
1420
1420
  }
1421
1421
  }
@@ -1559,7 +1559,7 @@ var componentPlacementRule = {
1559
1559
  context.report({
1560
1560
  node,
1561
1561
  loc: { line: 1, column: 0 },
1562
- message: `This component has no consumer outside src/app/ or a configuration module, so it belongs in the feature folder it represents, not in ${formatFolder(currentFolder)}. See docs/code-organization-guide/rules/component-placement-rule.md`
1562
+ message: `This component has no consumer outside src/app/ or a configuration module, so it belongs in the feature folder it represents, not in ${formatFolder(currentFolder)}. See docs/next-codebase-guide/rules/component-placement-rule.md`
1563
1563
  });
1564
1564
  }
1565
1565
  return;
@@ -1570,7 +1570,7 @@ var componentPlacementRule = {
1570
1570
  context.report({
1571
1571
  node,
1572
1572
  loc: { line: 1, column: 0 },
1573
- message: `Move this component to ${formatFolder(placement.expectedFolder)} \u2014 ${explanation}. Imported by ${describeConsumers(placement.countedConsumers, sourceRoot)}. See docs/code-organization-guide/rules/component-placement-rule.md`
1573
+ message: `Move this component to ${formatFolder(placement.expectedFolder)} \u2014 ${explanation}. Imported by ${describeConsumers(placement.countedConsumers, sourceRoot)}. See docs/next-codebase-guide/rules/component-placement-rule.md`
1574
1574
  });
1575
1575
  }
1576
1576
  };
@@ -1857,7 +1857,7 @@ var namedExportsRule = {
1857
1857
  ExportDefaultDeclaration(node) {
1858
1858
  context.report({
1859
1859
  node,
1860
- message: "Files that export values must use named exports unless a framework or third-party package requires a different export style for that file. See docs/code-organization-guide/rules/exports-and-imports-rule.md"
1860
+ message: "Files that export values must use named exports unless a framework or third-party package requires a different export style for that file. See docs/next-codebase-guide/rules/exports-and-imports-rule.md"
1861
1861
  });
1862
1862
  }
1863
1863
  };
@@ -1928,7 +1928,7 @@ var dataTestIdCaseRule = {
1928
1928
  } else if (component.smart) {
1929
1929
  context.report({
1930
1930
  node,
1931
- message: `Smart component "${component.name}" has no single outer element; wrap its content in one outer element with data-testid="${component.name}" instead of rendering multiple roots. See docs/code-organization-guide/rules/smart-vs-dumb-component-rule.md`
1931
+ message: `Smart component "${component.name}" has no single outer element; wrap its content in one outer element with data-testid="${component.name}" instead of rendering multiple roots. See docs/next-codebase-guide/rules/smart-vs-dumb-component-rule.md`
1932
1932
  });
1933
1933
  }
1934
1934
  }
@@ -1986,7 +1986,7 @@ var supportFolderShapeRule = {
1986
1986
  if (missing.length === 0) return;
1987
1987
  context.report({
1988
1988
  node,
1989
- message: `${folder}/index.ts must named-re-export every support file: ${missing.join(", ")}. See docs/code-organization-guide/rules/${folder === "constants" ? "constants" : "types-and-schemas"}-rule.md`
1989
+ message: `${folder}/index.ts must named-re-export every support file: ${missing.join(", ")}. See docs/next-codebase-guide/rules/${folder === "constants" ? "constants" : "types-and-schemas"}-rule.md`
1990
1990
  });
1991
1991
  }
1992
1992
  };
@@ -2021,7 +2021,7 @@ var importThroughIndexRule = {
2021
2021
  const expected = `@/${folderIndex.join("/")}`;
2022
2022
  context.report({
2023
2023
  node,
2024
- message: `Import support files through ${expected} instead of "${specifier}". See the code-organization-guide exports and imports rules.`
2024
+ message: `Import support files through ${expected} instead of "${specifier}". See the next-codebase-guide exports and imports rules.`
2025
2025
  });
2026
2026
  }
2027
2027
  }
@@ -2108,7 +2108,7 @@ var noUtilBarrelRule = {
2108
2108
  if (utilsIndex < 0 || !path19.basename(target).startsWith("index.")) continue;
2109
2109
  context.report({
2110
2110
  node,
2111
- message: `Import utilities directly instead of through "${specifier}". See docs/code-organization-guide/rules/utilities-rule.md`
2111
+ message: `Import utilities directly instead of through "${specifier}". See docs/next-codebase-guide/rules/utilities-rule.md`
2112
2112
  });
2113
2113
  }
2114
2114
  }
@@ -2207,7 +2207,7 @@ var jsxHygieneRule = {
2207
2207
  if (!violation) return;
2208
2208
  context.report({
2209
2209
  node,
2210
- message: `Extract ${violation} from JSX before return. See docs/code-organization-guide/rules/jsx-hygiene-rule.md`
2210
+ message: `Extract ${violation} from JSX before return. See docs/next-codebase-guide/rules/jsx-hygiene-rule.md`
2211
2211
  });
2212
2212
  }
2213
2213
  return {
@@ -2389,7 +2389,7 @@ var interactiveComponentRule = {
2389
2389
  if (name === void 0) return;
2390
2390
  context.report({
2391
2391
  node,
2392
- message: `Extract the interactive <${name}> into a descriptive component. See docs/code-organization-guide/rules/interactive-component-rule.md`
2392
+ message: `Extract the interactive <${name}> into a descriptive component. See docs/next-codebase-guide/rules/interactive-component-rule.md`
2393
2393
  });
2394
2394
  }
2395
2395
  };
@@ -2453,7 +2453,7 @@ var uiStateRule = {
2453
2453
  if (!hasNativeState) {
2454
2454
  context.report({
2455
2455
  node: attribute,
2456
- message: `UI state prop "${name}" should be expressed with a native or ARIA state attribute. See docs/styling-guide/rules/component-ui-state-rule.md`
2456
+ message: `UI state prop "${name}" should be expressed with a native or ARIA state attribute. See docs/next-tailwind-guide/rules/component-ui-state-rule.md`
2457
2457
  });
2458
2458
  }
2459
2459
  }
@@ -2470,7 +2470,7 @@ var uiStateRule = {
2470
2470
  if (classes.length > 0 && !classes.some((className) => STATE_CLASS_RE.test(className))) {
2471
2471
  context.report({
2472
2472
  node: attribute,
2473
- message: "Use a Tailwind state variant for a UI state instead of conditional replacement classes. See docs/styling-guide/rules/component-ui-state-rule.md"
2473
+ message: "Use a Tailwind state variant for a UI state instead of conditional replacement classes. See docs/next-tailwind-guide/rules/component-ui-state-rule.md"
2474
2474
  });
2475
2475
  }
2476
2476
  }
@@ -2532,7 +2532,7 @@ var cvaAppearancePropsRule = {
2532
2532
  if (typeAnnotation.type === "TSUnionType" || typeAnnotation.type === "TSTypeLiteral") {
2533
2533
  context.report({
2534
2534
  node,
2535
- message: `Visual option prop "${keyName2}" must be defined through a cva() call rather than a manual union type. See docs/styling-guide/rules/component-variant-rule.md`
2535
+ message: `Visual option prop "${keyName2}" must be defined through a cva() call rather than a manual union type. See docs/next-tailwind-guide/rules/component-variant-rule.md`
2536
2536
  });
2537
2537
  }
2538
2538
  }
@@ -2606,7 +2606,7 @@ var cvaBooleanVariantsRule = {
2606
2606
  if (info.variantNames.has(propName)) {
2607
2607
  context.report({
2608
2608
  node,
2609
- message: `Boolean prop "${propName}" is used as a standalone conditional in cn() but is also defined as a CVA variant. Move it to one place: either CVA (with both true/false treatments) or cn() (standalone). See docs/styling-guide/rules/component-variant-rule.md`
2609
+ message: `Boolean prop "${propName}" is used as a standalone conditional in cn() but is also defined as a CVA variant. Move it to one place: either CVA (with both true/false treatments) or cn() (standalone). See docs/next-tailwind-guide/rules/component-variant-rule.md`
2610
2610
  });
2611
2611
  }
2612
2612
  }
@@ -2665,7 +2665,7 @@ var crossFeatureImportRule = {
2665
2665
  const names = [...importedFeatures].sort().join(", ");
2666
2666
  context.report({
2667
2667
  node,
2668
- message: `This component imports from two or more feature folders (${names}) and must live in src/compositions/. See docs/code-organization-guide/rules/component-placement-rule.md`
2668
+ message: `This component imports from two or more feature folders (${names}) and must live in src/compositions/. See docs/next-codebase-guide/rules/component-placement-rule.md`
2669
2669
  });
2670
2670
  }
2671
2671
  }
@@ -2713,7 +2713,7 @@ var pureFunctionExtractRule = {
2713
2713
  function report3(node, name) {
2714
2714
  context.report({
2715
2715
  node,
2716
- message: `Extract pure function "${name}" to utils/. See docs/code-organization-guide/rules/utilities-rule.md`
2716
+ message: `Extract pure function "${name}" to utils/. See docs/next-codebase-guide/rules/utilities-rule.md`
2717
2717
  });
2718
2718
  }
2719
2719
  return {
@@ -2812,12 +2812,12 @@ var hookComplexityRule = {
2812
2812
  if (imperativeCount >= 2 && !inSupportFolder) {
2813
2813
  context.report({
2814
2814
  node,
2815
- message: `Hook "${name}" has ${String(imperativeCount)} imperative categories and must be extracted to a hooks/ folder. See docs/code-organization-guide/rules/hook-extraction-rule.md`
2815
+ message: `Hook "${name}" has ${String(imperativeCount)} imperative categories and must be extracted to a hooks/ folder. See docs/next-codebase-guide/rules/hook-extraction-rule.md`
2816
2816
  });
2817
2817
  } else if (imperativeCount < 2 && inSupportFolder) {
2818
2818
  context.report({
2819
2819
  node,
2820
- message: `Hook "${name}" has fewer than two imperative categories and must stay inline in its consumer file. See docs/code-organization-guide/rules/hook-extraction-rule.md`
2820
+ message: `Hook "${name}" has fewer than two imperative categories and must stay inline in its consumer file. See docs/next-codebase-guide/rules/hook-extraction-rule.md`
2821
2821
  });
2822
2822
  }
2823
2823
  }
@@ -2964,7 +2964,7 @@ var hookExtractionRule = {
2964
2964
  context.report({
2965
2965
  node,
2966
2966
  loc: { line: exp.line, column: 0 },
2967
- message: `Hook "${exp.name}" has ${String(consumers?.size ?? 0)} consumers; extract it to its own file in a hooks/ folder. See docs/code-organization-guide/rules/hook-extraction-rule.md`
2967
+ message: `Hook "${exp.name}" has ${String(consumers?.size ?? 0)} consumers; extract it to its own file in a hooks/ folder. See docs/next-codebase-guide/rules/hook-extraction-rule.md`
2968
2968
  });
2969
2969
  }
2970
2970
  }
@@ -2997,7 +2997,7 @@ var valueExtractionRule = {
2997
2997
  context.report({
2998
2998
  node,
2999
2999
  loc: { line: 1, column: 0 },
3000
- message: `This file in src/app/ is imported by ${describeConsumers(outsideApp, sourceRoot)} outside src/app/. Extract the value to a shared or feature folder so it can be imported independently. See docs/code-organization-guide/rules/constants-rule.md`
3000
+ message: `This file in src/app/ is imported by ${describeConsumers(outsideApp, sourceRoot)} outside src/app/. Extract the value to a shared or feature folder so it can be imported independently. See docs/next-codebase-guide/rules/constants-rule.md`
3001
3001
  });
3002
3002
  }
3003
3003
  };
@@ -3033,12 +3033,12 @@ var configExtractionRule = {
3033
3033
  if (outsideConfig.length > 0) {
3034
3034
  findings.push({
3035
3035
  line: exp.line,
3036
- message: `${exp.kind} "${exp.name}" in a configuration module is imported by ${describeConsumers(outsideConfig, sourceRoot)} outside src/config/. Move it to the matching root support folder. See docs/code-organization-guide/rules/configuration-rule.md`
3036
+ message: `${exp.kind} "${exp.name}" in a configuration module is imported by ${describeConsumers(outsideConfig, sourceRoot)} outside src/config/. Move it to the matching root support folder. See docs/next-codebase-guide/rules/configuration-rule.md`
3037
3037
  });
3038
3038
  } else if (consumers.length > 0) {
3039
3039
  findings.push({
3040
3040
  line: exp.line,
3041
- message: `${exp.kind} "${exp.name}" is used only to implement this configuration module; extract it to the module's ${exp.kind === "schema" ? "schemas/" : "types/"} folder even with one consumer. See docs/code-organization-guide/rules/configuration-rule.md`
3041
+ message: `${exp.kind} "${exp.name}" is used only to implement this configuration module; extract it to the module's ${exp.kind === "schema" ? "schemas/" : "types/"} folder even with one consumer. See docs/next-codebase-guide/rules/configuration-rule.md`
3042
3042
  });
3043
3043
  }
3044
3044
  }
@@ -3090,7 +3090,7 @@ var componentNestingRule = {
3090
3090
  context.report({
3091
3091
  node,
3092
3092
  loc: { line: 1, column: 0 },
3093
- message: `This component is nested in src/${folder.join("/")}/ but its folder has no exclusive child components \u2014 only support files. Flatten it back into src/${flatFolder}/. See docs/code-organization-guide/rules/folder-nesting-rule.md`
3093
+ message: `This component is nested in src/${folder.join("/")}/ but its folder has no exclusive child components \u2014 only support files. Flatten it back into src/${flatFolder}/. See docs/next-codebase-guide/rules/folder-nesting-rule.md`
3094
3094
  });
3095
3095
  }
3096
3096
  };
@@ -3141,7 +3141,7 @@ var stayFlatRule = {
3141
3141
  context.report({
3142
3142
  node,
3143
3143
  loc: { line: 1, column: 0 },
3144
- message: `This component has exclusive child component(s) ${childNames.join(", ")}; nest it in a folder named after it inside src/features/${featureName}/. See docs/code-organization-guide/rules/folder-nesting-rule.md`
3144
+ message: `This component has exclusive child component(s) ${childNames.join(", ")}; nest it in a folder named after it inside src/features/${featureName}/. See docs/next-codebase-guide/rules/folder-nesting-rule.md`
3145
3145
  });
3146
3146
  }
3147
3147
  };
@@ -3180,7 +3180,7 @@ var typeExtractionRule = {
3180
3180
  if (independent2.length === 0) continue;
3181
3181
  findings.push({
3182
3182
  line: exp.line,
3183
- message: `${exp.kind} "${exp.name}" is imported by ${describeConsumers(independent2, sourceRoot)} without the component "${componentExport.name}" that defines it. Extract it to a types/ or schemas/ folder. See docs/code-organization-guide/rules/types-and-schemas-rule.md`
3183
+ message: `${exp.kind} "${exp.name}" is imported by ${describeConsumers(independent2, sourceRoot)} without the component "${componentExport.name}" that defines it. Extract it to a types/ or schemas/ folder. See docs/next-codebase-guide/rules/types-and-schemas-rule.md`
3184
3184
  });
3185
3185
  continue;
3186
3186
  }
@@ -3191,7 +3191,7 @@ var typeExtractionRule = {
3191
3191
  if (independent.length === 0) continue;
3192
3192
  findings.push({
3193
3193
  line: exp.line,
3194
- message: `${exp.kind} "${exp.name}" is imported by ${describeConsumers(independent, sourceRoot)} without using the code in this file. Extract it to a types/ or schemas/ folder. See docs/code-organization-guide/rules/types-and-schemas-rule.md`
3194
+ message: `${exp.kind} "${exp.name}" is imported by ${describeConsumers(independent, sourceRoot)} without using the code in this file. Extract it to a types/ or schemas/ folder. See docs/next-codebase-guide/rules/types-and-schemas-rule.md`
3195
3195
  });
3196
3196
  }
3197
3197
  if (findings.length === 0) return {};
@@ -3300,7 +3300,7 @@ var localePlacementRule = {
3300
3300
  if (current?.kind === "nested") {
3301
3301
  findings.push({
3302
3302
  line: current.line,
3303
- message: `Locale "${key}" is read by ${describeConsumers([...readers], sourceRoot)} and must live at the top level of locales. See docs/code-organization-guide/rules/locales-rule.md`
3303
+ message: `Locale "${key}" is read by ${describeConsumers([...readers], sourceRoot)} and must live at the top level of locales. See docs/next-codebase-guide/rules/locales-rule.md`
3304
3304
  });
3305
3305
  }
3306
3306
  continue;
@@ -3311,12 +3311,12 @@ var localePlacementRule = {
3311
3311
  if (current?.kind === "top") {
3312
3312
  findings.push({
3313
3313
  line: current.line,
3314
- message: `Locale "${key}" is read only by the ${featureName} feature; it must live in an object named "${expected}". See docs/code-organization-guide/rules/locales-rule.md`
3314
+ message: `Locale "${key}" is read only by the ${featureName} feature; it must live in an object named "${expected}". See docs/next-codebase-guide/rules/locales-rule.md`
3315
3315
  });
3316
3316
  } else if (current?.kind === "nested" && key !== expected) {
3317
3317
  findings.push({
3318
3318
  line: current.line,
3319
- message: `Locale "${key}" is read only by the ${featureName} feature; it must live in an object named "${expected}", not "${key}". See docs/code-organization-guide/rules/locales-rule.md`
3319
+ message: `Locale "${key}" is read only by the ${featureName} feature; it must live in an object named "${expected}", not "${key}". See docs/next-codebase-guide/rules/locales-rule.md`
3320
3320
  });
3321
3321
  }
3322
3322
  }
@@ -3428,7 +3428,7 @@ var soleStateOwnerRule = {
3428
3428
  context.report({
3429
3429
  node,
3430
3430
  loc: { line: 1, column: 0 },
3431
- message: `Component "${component.name}" uses state "${hook.value}" in ${String(run)} contiguous top-level JSX part${run === 1 ? "" : "s"}; extract that part into a named component that owns useState instead of reading it in the parent. See docs/code-organization-guide/rules/sole-state-owner-rule.md`
3431
+ message: `Component "${component.name}" uses state "${hook.value}" in ${String(run)} contiguous top-level JSX part${run === 1 ? "" : "s"}; extract that part into a named component that owns useState instead of reading it in the parent. See docs/next-codebase-guide/rules/sole-state-owner-rule.md`
3432
3432
  });
3433
3433
  }
3434
3434
  }
@@ -3558,7 +3558,7 @@ function checkKey(context, node, name) {
3558
3558
  reportFor(
3559
3559
  context,
3560
3560
  node,
3561
- `Locale key "${name}" must be English; write it in the Latin alphabet. See docs/code-organization-guide/rules/locales-rule.md`
3561
+ `Locale key "${name}" must be English; write it in the Latin alphabet. See docs/next-codebase-guide/rules/locales-rule.md`
3562
3562
  );
3563
3563
  return;
3564
3564
  }
@@ -3566,7 +3566,7 @@ function checkKey(context, node, name) {
3566
3566
  reportFor(
3567
3567
  context,
3568
3568
  node,
3569
- `Locale key "${name}" must be camelCase English based on the text. See docs/code-organization-guide/rules/locales-rule.md`
3569
+ `Locale key "${name}" must be camelCase English based on the text. See docs/next-codebase-guide/rules/locales-rule.md`
3570
3570
  );
3571
3571
  return;
3572
3572
  }
@@ -3576,7 +3576,7 @@ function checkKey(context, node, name) {
3576
3576
  reportFor(
3577
3577
  context,
3578
3578
  node,
3579
- `Locale key "${name}" is longer than ${String(MAX_KEY_LENGTH)} characters, so it must describe the message's purpose instead of the text; end it with an element role such as "Button", "Link", or "Dialog" (see WAI-ARIA roles). See docs/code-organization-guide/rules/locales-rule.md`
3579
+ `Locale key "${name}" is longer than ${String(MAX_KEY_LENGTH)} characters, so it must describe the message's purpose instead of the text; end it with an element role such as "Button", "Link", or "Dialog" (see WAI-ARIA roles). See docs/next-codebase-guide/rules/locales-rule.md`
3580
3580
  );
3581
3581
  }
3582
3582
  var localeKeyShapeRule = {
@@ -3668,7 +3668,7 @@ var sharedStyleDedupRule = {
3668
3668
  context.report({
3669
3669
  node,
3670
3670
  loc: { line: 1, column: 0 },
3671
- message: `Class combination "${combo}" is used by ${String(users.size)} components and should change together; create a named custom Tailwind utility for it. See docs/styling-guide/rules/theme-and-utility-definition-rule.md`
3671
+ message: `Class combination "${combo}" is used by ${String(users.size)} components and should change together; create a named custom Tailwind utility for it. See docs/next-tailwind-guide/rules/theme-and-utility-definition-rule.md`
3672
3672
  });
3673
3673
  }
3674
3674
  }
@@ -3777,7 +3777,7 @@ var repeatedStructureRule = {
3777
3777
  if (!first || !isSubstantial(first)) continue;
3778
3778
  context.report({
3779
3779
  node: first,
3780
- message: `The same arrangement of elements appears ${String(group.length)} times here; extract it as a named component. Different data or labels do not prevent extraction. See docs/code-organization-guide/rules/repeated-structure-rule.md`
3780
+ message: `The same arrangement of elements appears ${String(group.length)} times here; extract it as a named component. Different data or labels do not prevent extraction. See docs/next-codebase-guide/rules/repeated-structure-rule.md`
3781
3781
  });
3782
3782
  }
3783
3783
  }
@@ -5911,8 +5911,8 @@ var BASE_REQUIRED_DOCS = [
5911
5911
  { name: "repository-policy", path: "docs/repository-policy.md" }
5912
5912
  ];
5913
5913
  var NEXTJS_REQUIRED_DOCS = [
5914
- { name: "code-organization-guide", path: "docs/code-organization-guide" },
5915
- { name: "styling-guide", path: "docs/styling-guide" }
5914
+ { name: "next-codebase-guide", path: "docs/next-codebase-guide" },
5915
+ { name: "next-tailwind-guide", path: "docs/next-tailwind-guide" }
5916
5916
  ];
5917
5917
  function memberName5(member) {
5918
5918
  return member.name.type === "String" ? member.name.value : member.name.name;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pasika",
3
- "version": "0.5.16",
3
+ "version": "0.5.17",
4
4
  "description": "Reusable agent setup package",
5
5
  "repository": {
6
6
  "type": "git",