Commit Graph
7 Commits
Author SHA1 Message Date
Satoshi Qazi Muhammed bda5d06bac Move the toolchain to eslint 10, typescript-eslint 8 and current plugins
eslint 8 and typescript-eslint 6 are past their support, and the webpack
dev server chain carried the dependency alerts every repository using this
package inherited. Upstream @polkadot/dev still pins the same versions, so
this leaves it on purpose.

The rules are carried over with their options, so the lint means what it
meant:

- eslint-config-standard 17 (written for eslint 8) is replaced by its 161
  rules in config/eslint.standard.js, with their options. Its 48 formatting
  rules, deprecated in eslint core, are the same rules in @stylistic;
  no-new-object and no-new-symbol are no-object-constructor and
  no-new-native-nonconstructor; import/* is import-x/*.
- eslint-plugin-import (eslint <= 9) is eslint-plugin-import-x;
  eslint-plugin-deprecation is @typescript-eslint/no-deprecated; the
  formatting rules of core, typescript-eslint and eslint-plugin-react used
  in eslint.rules.js are their @stylistic versions with the same options.
- typescript-eslint 8's preset swaps core no-unused-expressions for its own
  with default options; standard's (short circuit, ternary and tagged
  templates allowed) are carried over to it.
- eslint-plugin-react and eslint-plugin-header still call context methods
  eslint 10 removed; @eslint/compat's fixupPluginRules supplies them. The
  header rule also gets `schema: false`, as eslint 9+ rejects options for a
  rule with no schema. The original header plugin stays rather than its
  fork: it reports at the first token after leading comments, so a
  generated file's /* eslint-disable */ still covers it, as it always has.

The effective config was compared rule by rule (--print-config) for .ts,
.tsx, .spec.ts and .mjs files before and after. Every rule that left has
its successor active; option differences are eslint 10 spelling out
defaults. New rules come from the eslint 10, typescript-eslint 8 and
react-hooks 7 presets. no-inner-declarations left eslint's preset upstream.

Also current: webpack-dev-server 6, webpack-cli 7, webpack-merge 6, rollup
plugins, madge 8, gh-release 8, globals 17, espree 11; Node >= 20.19 for
the dev package, which eslint 10 requires.

In this repository the new rules found: Function types now named by
no-unsafe-function-type; optional chains, includes() and RegExp#exec where
they say the same thing; createWrapper returns Describe, so its three casts
were redundant; rootCjs.spec casts through unknown, so the lint result does
not depend on whether build/ exists. lint, build and test (149 passed) pass,
and lint leaves the tree unchanged with and without a build.
2026-10-09 08:54:50 +04:00
Satoshi Qazi MuhammedandClaude Opus 5.5 a4ab0148a3 Keep import() of an ES module in the CommonJS output
The CJS build transpiled with module CommonJS and NodeNext resolution. On
TypeScript 5.5 that kept import() of an ES module; from 5.6 it becomes
require(), which an ES module cannot answer on Node before 22. CJS is now
emitted with module NodeNext, under which TypeScript must keep import() for
an ES module. Across this repository's output the only change is that line,
plus a strict-mode header on one file with no imports.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-07 08:14:02 +04:00
Kurdistan Tech Ministry e419fceaa9 Take the repository address from package.json instead of assuming GitHub
build-ts split repository.url on 'https://github.com/'. Since the April
move of repository URLs to git.pezkuwichain.io that split returns
undefined and the build stops with "Cannot read properties of undefined
(reading 'split')" in every repo on the new host (pezkuwi-wasm, and this
one). Where it did not throw, orderPackageJson rebuilt bugs, homepage and
repository.url as github.com, silently reverting the declared host in
every package it built.

repoBaseFromUrl now parses the declared URL (accepting a git+ prefix and
a trailing .git) and the published metadata is derived from it.

Checked end to end on pezkuwi-wasm: the build completes and leaves every
package.json unchanged; the built package keeps its git.pezkuwichain.io
repository URL.
2026-10-07 08:14:02 +04:00
Kurdistan Tech Ministry 4db0839e91 chore: migrate git dependencies to Gitea mirror (git.pezkuwichain.io) 2026-04-21 18:53:18 +03:00
Kurdistan Tech MinistryandClaude Opus 4.5 4fbef2fcd2 Fix: prevent double ./cjs/ prefix in main field
When package.json already has main: './cjs/index.js', the build script
was incorrectly adding another ./cjs/ prefix resulting in './cjs/cjs/index.js'

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 07:07:02 +03:00
Kurdistan Tech Ministry cb6801a3cc Fix lint errors: Update copyright years to 2026 and ignore build outputs
- Updated all copyright headers from 2025 to 2026 (system date shows 2026)
- Added build output files to eslint ignore list in packages/dev/config/eslint.js
- Added build output patterns to .gitignore
- Ignored: packages/*/*.{d.ts,js,mjs,cjs}, packages/*/cjs/**, packages/*/env/**,
  packages/*/rootJs/**, packages/*/rootStatic/**
- Successfully resolved 521 lint errors by properly ignoring generated files
- Build outputs should not be linted (source files are linted instead)
- Lint and build now pass successfully
2026-01-17 21:02:45 +03:00
Kurdistan Tech Ministry 60f7beb120 fix: update header pattern to allow 'authors & contributors' suffix 2026-01-08 01:35:27 +03:00