cabloy 5.1.140 → 5.1.142

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 (142) hide show
  1. package/.cabloy-version +1 -1
  2. package/.github/workflows/playwright-e2e.yml +2 -2
  3. package/CHANGELOG.md +32 -0
  4. package/cabloy-docs/frontend/form-guide.md +47 -0
  5. package/cabloy-docs/frontend/markdown-guide.md +50 -17
  6. package/cabloy-docs/frontend/route-alias-guide.md +20 -0
  7. package/cabloy-docs/frontend/scripts.md +9 -11
  8. package/cabloy-docs/frontend/zova-form-under-the-hood.md +25 -0
  9. package/cabloy-docs/fullstack/framework-performance.md +3 -3
  10. package/cabloy-docs/fullstack/parallel-worktree-environment.md +1 -1
  11. package/cabloy-docs/fullstack/quickstart.md +5 -4
  12. package/cabloy-docs/reference/repo-scripts.md +29 -42
  13. package/e2e/config/playwright.config.ts +34 -0
  14. package/e2e/scripts/e2e.ts +2 -27
  15. package/e2e/scripts/runE2e.ts +62 -0
  16. package/e2e/scripts/runE2eArgs.test.ts +75 -0
  17. package/e2e/scripts/runE2eArgs.ts +158 -0
  18. package/e2e/specs/{a-commerce/commerce.spec.ts → a-commerce.spec.ts} +364 -33
  19. package/e2e/specs/{cabloy-basic/account.spec.ts → account.spec.ts} +1 -2
  20. package/e2e/specs/{cabloy-basic/basic.spec.ts → cabloy-basic.spec.ts} +6 -8
  21. package/oxlint.config.ts +3 -0
  22. package/package.json +3 -9
  23. package/scripts/upgrade.ts +63 -68
  24. package/vona/packages-utils/lint/package.json +1 -1
  25. package/vona/packages-utils/lint/src/oxc/lint.ts +1 -1
  26. package/vona/packages-utils/lint/src/oxc/lintVue.ts +1 -1
  27. package/vona/pnpm-lock.yaml +100 -657
  28. package/vona/src/suite/a-commerce/modules/commerce-trade/src/dto/refundRecoveryView.tsx +7 -2
  29. package/vona/src/suite/a-commerce/modules/commerce-trade/src/service/order.ts +31 -15
  30. package/vona/src/suite/a-home/modules/home-user/package.json +1 -0
  31. package/vona/src/suite/a-home/modules/home-user/src/service/account.ts +15 -2
  32. package/vona/src/suite/a-home/modules/home-user/test/accountActivation.test.ts +34 -4
  33. package/vona/src/suite-vendor/a-cabloy/modules/a-markdown/package.json +2 -1
  34. package/vona/src/suite-vendor/a-cabloy/modules/a-markdown/src/.metadata/index.ts +26 -0
  35. package/vona/src/suite-vendor/a-cabloy/modules/a-markdown/src/bean/imageScene.markdown.ts +13 -0
  36. package/vona/src/suite-vendor/a-cabloy/package.json +2 -2
  37. package/vona/src/suite-vendor/a-pay/modules/a-pay/package.json +1 -1
  38. package/vona/src/suite-vendor/a-pay/modules/a-pay/src/service/providerOperation.ts +23 -0
  39. package/vona/src/suite-vendor/a-pay/modules/a-pay/src/service/refundOperation.ts +7 -0
  40. package/vona/src/suite-vendor/a-pay/modules/pay-mock/package.json +1 -1
  41. package/vona/src/suite-vendor/a-pay/modules/pay-paypal/package.json +1 -1
  42. package/vona/src/suite-vendor/a-pay/modules/pay-stripe/package.json +1 -1
  43. package/vona/src/suite-vendor/a-pay/package.json +5 -5
  44. package/zova/packages-utils/zova-jsx/package.json +2 -2
  45. package/zova/packages-zova/zova/package.json +3 -3
  46. package/zova/packages-zova/zova-core/package.json +1 -1
  47. package/zova/packages-zova/zova-core/src/bean/resource/locale/type.ts +1 -0
  48. package/zova/pnpm-lock.yaml +63 -18
  49. package/zova/src/front/config/config/config.cabloyBasicWeb.ts +3 -1
  50. package/zova/src/front/config/config/config.cabloyCommerce.ts +4 -2
  51. package/zova/src/suite/a-commerce/modules/commerce-catalog/src/api/openapi/schemas.ts +0 -11
  52. package/zova/src/suite/a-commerce/modules/commerce-catalog/src/api/openapi/types.ts +23 -170
  53. package/zova/src/suite/a-commerce/modules/commerce-member/src/api/openapi/schemas.ts +0 -11
  54. package/zova/src/suite/a-commerce/modules/commerce-member/src/api/openapi/types.ts +23 -170
  55. package/zova/src/suite/a-commerce/modules/commerce-member/src/page/address/controller.tsx +64 -63
  56. package/zova/src/suite/a-commerce/modules/commerce-promotion/src/api/openapi/schemas.ts +0 -11
  57. package/zova/src/suite/a-commerce/modules/commerce-promotion/src/api/openapi/types.ts +23 -170
  58. package/zova/src/suite/a-commerce/modules/commerce-siteadmin/src/api/openapi/schemas.ts +0 -11
  59. package/zova/src/suite/a-commerce/modules/commerce-siteadmin/src/api/openapi/types.ts +23 -170
  60. package/zova/src/suite/a-commerce/modules/commerce-trade/src/api/openapi/schemas.ts +0 -11
  61. package/zova/src/suite/a-commerce/modules/commerce-trade/src/api/openapi/types.ts +29 -171
  62. package/zova/src/suite/a-commerce/modules/commerce-trade/src/component/tableCellActionRefund/controller.tsx +413 -134
  63. package/zova/src/suite/a-commerce/modules/commerce-trade/src/config/locale/en-us.ts +76 -0
  64. package/zova/src/suite/a-commerce/modules/commerce-trade/src/config/locale/zh-cn.ts +67 -0
  65. package/zova/src/suite/a-commerce/modules/commerce-trade/src/model/order.ts +1 -0
  66. package/zova/src/suite/a-commerce/modules/commerce-trade/src/page/cart/controller.tsx +1 -1
  67. package/zova/src/suite/a-commerce/modules/commerce-trade/src/page/checkout/controller.tsx +7 -7
  68. package/zova/src/suite/a-commerce/modules/commerce-trade/src/page/order/controller.tsx +46 -9
  69. package/zova/src/suite/a-commerce/modules/commerce-trade/src/page/payment/controller.tsx +50 -30
  70. package/zova/src/suite/a-home/modules/home-api/src/api/openapi/schemas.ts +0 -11
  71. package/zova/src/suite/a-home/modules/home-api/src/api/openapi/types.ts +23 -170
  72. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +0 -11
  73. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +23 -170
  74. package/zova/src/suite/cabloy-basic/modules/basic-captcha/src/component/formFieldCaptcha/controller.tsx +6 -2
  75. package/zova/src/suite/cabloy-basic/modules/basic-file/src/api/openapi/schemas.ts +0 -11
  76. package/zova/src/suite/cabloy-basic/modules/basic-file/src/api/openapi/types.ts +23 -170
  77. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/schemas.ts +0 -11
  78. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/types.ts +23 -170
  79. package/zova/src/suite/cabloy-basic/modules/basic-image/src/component/formFieldImage/controller.tsx +9 -15
  80. package/zova/src/suite/cabloy-basic/modules/basic-markdown/package.json +10 -2
  81. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/.metadata/index.ts +11 -2
  82. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/.metadata/locales.ts +7 -0
  83. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/component/formFieldMarkdown/controller.tsx +723 -5
  84. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/component/formFieldMarkdown/render.tsx +461 -2
  85. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/config/locale/en-us.ts +59 -0
  86. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/config/locale/zh-cn.ts +59 -0
  87. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/index.ts +1 -0
  88. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/lib/codeBlockLanguages.ts +42 -0
  89. package/zova/src/suite/cabloy-basic/modules/basic-markdown/src/lib/richTextContentStyle.ts +20 -0
  90. package/zova/src/suite/cabloy-basic/modules/basic-markdown/test/lib/codeBlockLanguages.test.ts +25 -0
  91. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +1 -1
  92. package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/model/resource.ts +1 -0
  93. package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
  94. package/zova/src/suite-vendor/a-pay/modules/a-pay/package.json +1 -1
  95. package/zova/src/suite-vendor/a-pay/modules/a-pay/src/api/openapi/schemas.ts +0 -11
  96. package/zova/src/suite-vendor/a-pay/modules/a-pay/src/api/openapi/types.ts +23 -170
  97. package/zova/src/suite-vendor/a-pay/modules/a-pay/src/component/paymentNextAction/controller.tsx +26 -12
  98. package/zova/src/suite-vendor/a-pay/modules/pay-mock/cli/openapi.config.ts +1 -1
  99. package/zova/src/suite-vendor/a-pay/modules/pay-mock/package.json +1 -1
  100. package/zova/src/suite-vendor/a-pay/modules/pay-mock/src/api/openapi/schemas.ts +0 -11
  101. package/zova/src/suite-vendor/a-pay/modules/pay-mock/src/api/openapi/types.ts +23 -170
  102. package/zova/src/suite-vendor/a-pay/modules/pay-mock/src/api/payMockMockPayment.ts +26 -0
  103. package/zova/src/suite-vendor/a-pay/modules/pay-mock/src/apiSchema/payMockMockPayment.ts +8 -1
  104. package/zova/src/suite-vendor/a-pay/modules/pay-mock/src/model/payMockPayment.ts +13 -1
  105. package/zova/src/suite-vendor/a-pay/package.json +3 -3
  106. package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +1 -1
  107. package/zova/src/suite-vendor/a-zova/modules/a-form/src/component/formField/controller.tsx +2 -0
  108. package/zova/src/suite-vendor/a-zova/modules/a-form/src/types/formField.ts +7 -6
  109. package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +1 -1
  110. package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/src/service/ssrHandler.ts +1 -1
  111. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
  112. package/zova/src/suite-vendor/a-zova/package.json +4 -4
  113. package/e2e/config/playwright.basic.config.ts +0 -3
  114. package/e2e/config/playwright.commerce.config.ts +0 -3
  115. package/e2e/config/playwright.shared.config.ts +0 -38
  116. package/e2e/scripts/testE2eClean.ts +0 -56
  117. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/package.json +0 -56
  118. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/.metadata/index.ts +0 -404
  119. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/.metadata/locales.ts +0 -18
  120. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/.metadata/this.ts +0 -2
  121. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/bean/bean.paypal.ts +0 -99
  122. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/bean/event.paypalCancelOrder.ts +0 -15
  123. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/bean/event.paypalCaptureOrder.ts +0 -22
  124. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/bean/meta.version.ts +0 -24
  125. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/config/config.ts +0 -14
  126. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/config/errors.ts +0 -3
  127. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/config/locale/en-us.ts +0 -3
  128. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/config/locale/zh-cn.ts +0 -3
  129. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/controller/paypal.ts +0 -39
  130. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/dto/paypalOrderRecordOptions.tsx +0 -31
  131. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/dto/paypalOrderRecordPayload.tsx +0 -18
  132. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/entity/paypalRecord.tsx +0 -30
  133. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/index.ts +0 -3
  134. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/model/paypalRecord.ts +0 -10
  135. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/service/paypal.ts +0 -83
  136. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/types/index.ts +0 -1
  137. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/src/types/paypal.ts +0 -18
  138. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/tsconfig.build.json +0 -11
  139. package/vona/src/suite-vendor/a-paypal/modules/a-paypal/tsconfig.json +0 -7
  140. package/vona/src/suite-vendor/a-paypal/package.json +0 -13
  141. package/vona/src/suite-vendor/a-paypal/tsconfig.base.json +0 -4
  142. package/vona/src/suite-vendor/a-paypal/tsconfig.json +0 -10
@@ -59,14 +59,17 @@ const OVERWRITE_DIRS_CABLOY_BASIC: string[] = [
59
59
  'zova/src/suite/a-devui',
60
60
  ];
61
61
 
62
- const FRAMEWORK_E2E_DIRS_CABLOY_BASIC: string[] = [
63
- 'e2e/config',
64
- 'e2e/scripts',
65
- 'e2e/specs/cabloy-basic',
66
- 'e2e/specs/a-commerce',
62
+ const FRAMEWORK_E2E_DIRS_CABLOY_BASIC: string[] = ['e2e/config', 'e2e/scripts'];
63
+
64
+ const FRAMEWORK_E2E_FILES_CABLOY_BASIC: string[] = [
65
+ 'e2e/specs/cabloy-basic.spec.ts',
66
+ 'e2e/specs/account.spec.ts',
67
+ 'e2e/specs/a-commerce.spec.ts',
67
68
  ];
68
69
 
69
- const FRAMEWORK_E2E_SCRIPT_NAMES_CABLOY_BASIC: string[] = [
70
+ const FRAMEWORK_E2E_SCRIPT_NAMES_CABLOY_BASIC: string[] = ['test:e2e', 'test:e2e:fast'];
71
+
72
+ const FRAMEWORK_E2E_LEGACY_SCRIPT_NAMES_CABLOY_BASIC: string[] = [
70
73
  'test:e2e:basic',
71
74
  'test:e2e:basic:web',
72
75
  'test:e2e:basic:admin',
@@ -75,15 +78,11 @@ const FRAMEWORK_E2E_SCRIPT_NAMES_CABLOY_BASIC: string[] = [
75
78
  'test:e2e:commerce:web',
76
79
  'test:e2e:commerce:admin',
77
80
  'test:e2e:commerce:clean',
81
+ 'test:e2e:basic:flow',
78
82
  ];
79
83
 
80
84
  const FRAMEWORK_E2E_DEV_DEPENDENCY_CABLOY_BASIC = '@playwright/test';
81
85
 
82
- const OBSOLETE_FRAMEWORK_E2E_SCRIPTS_CABLOY_BASIC: Record<string, string> = {
83
- 'test:e2e:basic:flow':
84
- 'playwright test --config e2e/config/playwright.basic.config.ts --grep ATP-BASIC-FLOW-01',
85
- };
86
-
87
86
  const MERGE_DIRS: string[] = [
88
87
  // Claude project assets
89
88
  '.claude/commands',
@@ -231,24 +230,6 @@ async function extractTarball(tarballPath: string, targetDir: string): Promise<v
231
230
  }
232
231
  }
233
232
 
234
- function needsBasicE2eReconciliation(): boolean {
235
- if (!isCabloyBasic()) return false;
236
-
237
- for (const dir of FRAMEWORK_E2E_DIRS_CABLOY_BASIC) {
238
- if (!existsSync(resolve(ROOT_DIR, dir))) return true;
239
- }
240
-
241
- const packageJson = readPackageJson(resolve(ROOT_DIR, 'package.json'));
242
- for (const name of FRAMEWORK_E2E_SCRIPT_NAMES_CABLOY_BASIC) {
243
- const script = packageJson.scripts?.[name];
244
- if (!script?.includes('e2e/')) return true;
245
- }
246
- for (const [name, value] of Object.entries(OBSOLETE_FRAMEWORK_E2E_SCRIPTS_CABLOY_BASIC)) {
247
- if (packageJson.scripts?.[name] === value) return true;
248
- }
249
- return !packageJson.devDependencies?.[FRAMEWORK_E2E_DEV_DEPENDENCY_CABLOY_BASIC];
250
- }
251
-
252
233
  function mergeFrameworkE2eAssets(dryRun?: boolean): void {
253
234
  if (!isCabloyBasic()) return;
254
235
 
@@ -264,6 +245,38 @@ function mergeFrameworkE2eAssets(dryRun?: boolean): void {
264
245
  }
265
246
  copyDirectory(src, dest);
266
247
  }
248
+
249
+ for (const file of FRAMEWORK_E2E_FILES_CABLOY_BASIC) {
250
+ const src = resolve(TEMP_DIR, file);
251
+ const dest = resolve(ROOT_DIR, file);
252
+ if (!existsSync(src)) {
253
+ throw new Error(`Expected framework E2E file in package: ${file}`);
254
+ }
255
+ if (dryRun) {
256
+ log(` [dry-run] Overwrite framework E2E file: ${file}`);
257
+ continue;
258
+ }
259
+ mkdirSync(dirname(dest), { recursive: true });
260
+ cpSync(src, dest);
261
+ }
262
+
263
+ const legacyFrameworkFiles: string[] = [
264
+ 'e2e/config/playwright.basic.config.ts',
265
+ 'e2e/config/playwright.commerce.config.ts',
266
+ 'e2e/config/playwright.shared.config.ts',
267
+ 'e2e/specs/cabloy-basic/basic.spec.ts',
268
+ 'e2e/specs/cabloy-basic/account.spec.ts',
269
+ 'e2e/specs/a-commerce/commerce.spec.ts',
270
+ ];
271
+ for (const file of legacyFrameworkFiles) {
272
+ const dest = resolve(ROOT_DIR, file);
273
+ if (!existsSync(dest)) continue;
274
+ if (dryRun) {
275
+ log(` [dry-run] Remove legacy framework E2E file: ${file}`);
276
+ continue;
277
+ }
278
+ rmSync(dest, { force: true });
279
+ }
267
280
  }
268
281
 
269
282
  function reconcileFrameworkE2ePackageJson(dryRun?: boolean): void {
@@ -324,18 +337,11 @@ function reconcileFrameworkE2ePackageJson(dryRun?: boolean): void {
324
337
  }
325
338
  }
326
339
 
327
- for (const [name, value] of Object.entries(OBSOLETE_FRAMEWORK_E2E_SCRIPTS_CABLOY_BASIC)) {
328
- const currentValue = projectPackage.scripts?.[name];
329
- if (!currentValue) continue;
330
- if (currentValue !== value) {
331
- log(
332
- ` Retain customized obsolete framework E2E script package.json scripts.${name}; remove it manually if no longer needed.`,
333
- );
334
- continue;
335
- }
340
+ for (const name of FRAMEWORK_E2E_LEGACY_SCRIPT_NAMES_CABLOY_BASIC) {
341
+ if (!projectPackage.scripts?.[name]) continue;
336
342
  changed = true;
337
343
  if (dryRun) {
338
- log(` [dry-run] Remove obsolete framework E2E script package.json scripts.${name}`);
344
+ log(` [dry-run] Remove legacy framework E2E script package.json scripts.${name}`);
339
345
  } else {
340
346
  delete projectPackage.scripts?.[name];
341
347
  }
@@ -513,41 +519,30 @@ async function main(): Promise<void> {
513
519
 
514
520
  const latestPackageInfo = await fetchLatestPackageInfo();
515
521
  const currentVersion = readVersionMarker();
516
- const basicE2eIncomplete = needsBasicE2eReconciliation();
517
-
518
- if (currentVersion) {
519
- log(`Current project Cabloy version: ${currentVersion}`);
520
- } else {
521
- log(
522
- `Warning: Missing ${VERSION_MARKER_FILE}, continuing with upgrade for backward compatibility.`,
522
+ if (!currentVersion) {
523
+ throw new Error(
524
+ `Missing ${VERSION_MARKER_FILE}; this project is not a supported Cabloy upgrade target.`,
523
525
  );
524
526
  }
527
+
528
+ log(`Current project Cabloy version: ${currentVersion}`);
525
529
  log(`Latest Cabloy version: ${latestPackageInfo.version}`);
526
530
 
527
- if (currentVersion) {
528
- const comparison = compareVersions(currentVersion, latestPackageInfo.version);
529
- if (comparison === 0) {
530
- if (basicE2eIncomplete) {
531
- log(
532
- `Cabloy is already up to date (current: ${currentVersion}), but the Cabloy Basic E2E baseline is incomplete. Repairing it in this upgrade; no additional upgrade command is required.\n`,
533
- );
534
- } else if (!dryRun) {
535
- log(`Cabloy is already up to date (current: ${currentVersion}). Skipping upgrade.`);
536
- return;
537
- } else {
538
- log(
539
- `Cabloy is already up to date (current: ${currentVersion}). Continuing dry-run to show overwrite plan.\n`,
540
- );
541
- }
542
- } else if (comparison > 0) {
543
- throw new Error(
544
- `Project Cabloy version ${currentVersion} is newer than npm latest ${latestPackageInfo.version}. Aborting upgrade.`,
545
- );
546
- } else {
547
- log(`Upgrading Cabloy from ${currentVersion} to ${latestPackageInfo.version}...\n`);
531
+ const comparison = compareVersions(currentVersion, latestPackageInfo.version);
532
+ if (comparison === 0) {
533
+ if (!dryRun) {
534
+ log(`Cabloy is already up to date (current: ${currentVersion}). Skipping upgrade.`);
535
+ return;
548
536
  }
537
+ log(
538
+ `Cabloy is already up to date (current: ${currentVersion}). Continuing dry-run to show overwrite plan.\n`,
539
+ );
540
+ } else if (comparison > 0) {
541
+ throw new Error(
542
+ `Project Cabloy version ${currentVersion} is newer than npm latest ${latestPackageInfo.version}. Aborting upgrade.`,
543
+ );
549
544
  } else {
550
- log(`Upgrading Cabloy to ${latestPackageInfo.version}...\n`);
545
+ log(`Upgrading Cabloy from ${currentVersion} to ${latestPackageInfo.version}...\n`);
551
546
  }
552
547
 
553
548
  try {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cabloy/lint",
3
- "version": "5.1.31",
3
+ "version": "5.1.32",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "Node Style Guide for Cabloy.",
6
6
  "files": [
@@ -452,7 +452,7 @@ const _configDefault: OxlintConfig = {
452
452
  propElementValues: 'always',
453
453
  },
454
454
  ],
455
- '@stylistic/jsx-curly-newline': 'error',
455
+ '@stylistic/jsx-curly-newline': 'off',
456
456
  '@stylistic/jsx-curly-spacing': ['error', 'never'],
457
457
  '@stylistic/jsx-equals-spacing': 'error',
458
458
  '@stylistic/jsx-first-prop-new-line': 'error',
@@ -450,7 +450,7 @@ const _configDefault: OxlintConfig = {
450
450
  propElementValues: 'always',
451
451
  },
452
452
  ],
453
- '@stylistic/jsx-curly-newline': 'error',
453
+ '@stylistic/jsx-curly-newline': 'off',
454
454
  '@stylistic/jsx-curly-spacing': ['error', 'never'],
455
455
  '@stylistic/jsx-equals-spacing': 'error',
456
456
  '@stylistic/jsx-first-prop-new-line': 'error',