Commit Graph
43 Commits
Author SHA1 Message Date
SatoshiQaziMuhammedandClaude Opus 5 31b40114a7 Say where this repository actually is (#7)
* Say where this repository actually is

On 2026-04-21 a commit pointed repository, homepage and bugs at our Gitea
instance — "migrate git dependencies to Gitea mirror". Nothing else moved.
origin is still GitHub, the published @pezkuwi/phishing still says GitHub, and
git.pezkuwichain.io/pezkuwichain/phishing answers 500, so everyone who installs
the package has been given a dead homepage and a dead bug tracker.

It also broke the Master build on 2026-09-13, when the toolchain began reading
the field. @pezkuwi/dev, which is ours, does this:

    const repoPath = pkg.repository.url
      .split('https://github.com/')[1]
      .split('.git')[0];

A URL from any other host makes [1] undefined and the build dies with "Cannot
read properties of undefined (reading 'split')" — a message that names neither
the field nor the file. Three runs failed that way and master has had no green
build since.

The metadata now says what is true today. This is not a decision about where
the project should live: it is an alignment with where the code already is and
with what we already publish.

That migration is still worth finishing, and this is the sequencing it needs.
Moving the repository to Gitea for real means fixing @pezkuwi/dev first, so a
toolchain built for a state that hosts its own git stops assuming github.com.
scripts/checkRepoMeta.mjs is the tripwire: it fails the metadata here rather
than letting it surface as an unreadable stack trace or ship as a dead link.

The check runs in the Lists workflow, which has no toolchain to install and so
still runs when the build does not. Nails: restoring the April commit turns
three cases red, migrating only half the repository turns two red, and leaving
homepage behind on the old host turns one red.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Hold the new check to the repository's own lint rules

The file I added failed all seven of them and lint had been green: the licence
header every file here carries, import order, an optional chain, object keys in
ascending order and an argument on its own line. Verified with eslint run the
way CI runs it, without --fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 16:44:00 +04:00
SatoshiQaziMuhammed 767a92904d Sync the lists with polkadot-js/phishing every day, and publish them with checks (#4)
* feat: sync the lists with polkadot-js/phishing daily, and check them before publishing

The lists had not moved since January 2026, the site that serves them was
copied by hand, and the rebrand had turned five real phishing domains into
pezkuwichain.* names, unblocking them.

- scripts/syncUpstream.mjs and sync-upstream.yml take upstream's lists every
  day, lay pezkuwi/overlay.json over them, and commit to master. A day out of
  bounds (too many sites unblocked or added, scam addresses dropped, one of our
  domains blocked, one of our entries lost) writes nothing and opens an issue.
- pezkuwi/overlay.json holds our own entries with their reasons: the five
  pezkuwichain.* names stay blocked on purpose, and our domains are protected.
- scripts/lists.mjs holds the rules; scripts/lists.test.mjs tests them and the
  sync end to end; scripts/checkLists.mjs checks the committed files, including
  that they are what sortAll writes. lists.yml runs all three.
- pezkuwi/host/ is what phishing.pezkuwichain.io runs: it pulls master hourly
  and refuses a rewritten history, a blocked own domain, a shrink over 2%, or
  shards that disagree, with a sandbox test of each refusal.
- sortAll strips a trailing dot. Upstream's 817 "scam.xyz." entries were filed
  under an empty top-level domain in all/all.json, where checkIfDenied never
  looks; 816 repeated a listed name, and prenads.xyz was blocked nowhere else.
- sortAll uses Node's own directory functions instead of @pezkuwi/dev, so the
  sync and the checks run without installing the build toolchain.
- The auto-approve, auto-merge and crosscheck workflows, and the IPFS job,
  depended on tokens and secrets this repository does not have; removed. The
  remaining workflows are pinned to commits, with no default permissions and
  a timeout on every job.

* chore(lists): first sync with polkadot-js/phishing

Written by scripts/syncUpstream.mjs from upstream bf5e7c6:
658 sites added; nodelinkapp.xyz, org.in and terra-claim.com unblocked by
upstream; the five polkadot-js domains the rebrand had renamed blocked again;
816 duplicate "scam.xyz." entries folded into their names and the stray
all/all.json gone. 54,051 blocked sites, 279 scam addresses.

* fix(lists): commit the .build shard, and refuse a shard git ignores

.gitignore held "build/", which also matched all/build/all.json, the shard of
the .build top-level domain. Every sort wrote it and no commit held it, so the
eight .build scam sites were never published; upstream has the same gap. The
directory is excluded from the ignore rule, the shard is committed, and
checkLists.mjs now fails on any shard git would ignore (with the old rule
restored it does).

Also clears the repository's lint on lists.test.mjs: imports sorted, and
node:test's describe and it calls marked void.

* test(lists): await describe and it, as the repository's lint requires

no-floating-promises requires the promises node:test's describe and it return
to be handled, and no-void forbids handling them with void. Awaited, the 25
cases run as before.
2026-09-13 17:34:51 +04:00
Kurdistan Tech Ministry a4bb93cb33 feat: complete Pezkuwi rebrand
- Update phishing URL to phishing.pezkuwichain.io
- Update author to Dijital Kurdistan Tech Inst
- Update README with Pezkuwi project references
- Update IPFS reference to pezkuwichain.io
- Rebrand all package references from @polkadot to @pezkuwi
2026-01-09 04:11:37 +03:00
Husni 78a6704878 Update all.json (#5627)
* update all.json

* update all.json

* fix: update headers
2026-01-02 02:08:14 +01:00
Frank 5dd16747b8 Update findSubs.mjs (#4849) 2025-01-02 17:42:21 +01:00
Frank 59619a83fc Update ipfsUpload.mjs (#4850) 2025-01-02 17:42:03 +01:00
Frank f518ac6f23 Update sortAll.mjs (#4851) 2025-01-02 17:41:43 +01:00
kindknow f450a4af76 chore: remove repetitive word (#4376)
Signed-off-by: kindknow <iturf@sina.com>
2024-04-12 16:26:27 +02:00
Jaco 46c08c0c49 Allow addition of denySub entries (#4223)
* Allow addition of denySub entries

* Section does exist (now)

* s/twitter.com/x.com/
2024-01-22 14:35:17 +01:00
Frank 08700e91aa Update header findSubs.mjs (#4149) 2024-01-03 15:50:48 +01:00
Frank 7b9cdd2a34 Update header ipfsPrep.sh (#4148) 2024-01-03 15:50:31 +01:00
Frank aa366919c2 Update header ipfsUpload.mjs (#4147) 2024-01-03 15:50:09 +01:00
Frank 6d523b009e Update header sortAll.mjs (#4146) 2024-01-03 15:43:58 +01:00
Jaco 9c19e5f16a Bump deps (#3802)
* Bump deps

* Cleanups
2023-08-18 10:31:41 +03:00
Jaco 3aa09462b3 Bump dev (w/ eslint config updates) (#3386) 2023-05-20 20:39:58 +03:00
Jaco 80c71a5938 Bump dev deps (#3371) 2023-05-18 11:21:13 +03:00
Jaco 7a390bf2e5 Add repo dev req. for Node.js (#3186) 2023-03-25 17:40:31 +02:00
Jaco b2338ea420 Update Pinata SDK (#3124) 2023-03-14 15:16:46 +02:00
Jaco 718f06101a Bump dev & update gh workflows (#3075) 2023-03-03 11:21:46 +02:00
Jaco f587f1c273 Cater for pinata unpin rate limits (#2939)
* Cater for pinata unpin rate limits

* Delay after pin

* Additional delay
2023-02-09 19:56:53 +02:00
Jaco 4464f759f2 Resplit all/* directory (based on domain) (#2853) 2023-01-23 09:27:47 +02:00
Jaco 754828f913 Allow all/*.json for alphabetical split (future use) (#2845) 2023-01-22 10:31:35 +02:00
Jaco c137733de4 Update headers for 2023 (#2741)
* Update headers for 2023

* Update in scripts
2023-01-01 10:21:28 +02:00
Jaco ca55cabe4e 0.18.5 (#2056) 2022-08-13 10:56:44 +03:00
Jaco d9c093946e Plesk site flatenning (#1933) 2022-07-27 13:08:19 +03:00
Jaco af0d945c38 Keep sub-domains in meta, remove from deny (#1801)
* Keep sub-domains in meta, remove from deny

* Multi-layer subdomains

* isSubdomain check
2022-07-13 08:07:26 +03:00
Jaco 9ab2487378 Swap to using tabs in json (#1304)
* Swap to using tabs in json

* Update .editorconfig
2022-03-19 14:38:19 +02:00
Jaco 60bd4b6d64 Split addition tests, expand non-url checks (#885)
* Split addition tests, expand non-url checks

* Spelling

* Additional valid url check

* Meta changes
2022-01-02 10:20:34 +02:00
Jaco be87898397 2022 (#879) 2022-01-01 09:26:48 +02:00
Jaco d5847e8d2c Split meta on a per-month basis (#775) 2021-12-06 10:14:57 +02:00
Jaco c0648be840 Bump deps (& filter urlmeta on deny) (#655) 2021-11-03 13:00:11 +02:00
Jaco 8a4ab2593e URL sanitize (#481)
* URL sanitize

* test

* Fix condition
2021-09-05 08:20:06 +02:00
Jaco Greeff b81f754e21 Dedupe list, don't fail build (#233)
* Dedupe list, don't fail build

* Erk, reduce

* Cleanups
2021-04-08 09:38:48 +02:00
Jaco Greeff 115f4758f3 CI combine of keys from address.json (#183) 2021-03-22 21:06:34 +01:00
Jaco Greeff 465e24f791 Update ipfsPrep.sh 2021-02-15 08:19:51 +01:00
Jaco Greeff 0fcbabc7db Pin content to ipfs (#101)
* Pin content to ipfs

* Update scripts/ipfsPrep.sh

* Add actual packages

* Update .github/workflows/push-master.yml
2021-02-15 08:15:51 +01:00
Jaco Greeff 0ca51f6897 Check for unique entries (#62)
* Check for unique entries

* Update scripts/sortAll.mjs

* Updated CHANGELOG

* 0.4
2021-01-24 09:21:35 +01:00
Jaco Greeff 53be1b8416 List of known phishing addresses (for use in wallets) (#57)
* Add list of known addresses

* Sorted

* Add polkadot.express

* typo

* Add checkAddress & tests

* Update comments

* Return error

* U8a cache
2021-01-22 12:16:41 +01:00
Jaco Greeff 40422aee06 Add month headers (#48)
* Add month headers

* opacity
2021-01-09 10:36:47 +01:00
Jaco Greeff ea5bdb2bc5 Add urlmeta with added-at info (#44) 2021-01-06 13:03:10 +01:00
Jaco Greeff 4cf633a0c2 Adjust sort rewrite (newline) (#43)
* Adjust sort rewrite (newline)

* Updat js-yaml
2021-01-06 12:18:42 +01:00
Jaco Greeff f0d1b7cec1 2021 (#41) 2021-01-03 11:12:06 +01:00
Jaco Greeff 81169894f3 Sort all.json inside build (#40) 2020-12-30 17:22:27 +01:00