npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@il-address/data

v1.0.0

Published

Israeli city and street data for @il-address/core

Readme

@il-address/data

npm version

Israeli city and street data for @il-address/core. Typically installed automatically as a transitive dependency — you usually don't import this package directly.

Data is sourced from the official data.gov.il CKAN API (Population & Immigration Authority / רשות האוכלוסין וההגירה).

Official sources

| Dataset | CKAN resource ID | Approx. size | |---------|------------------|--------------| | Cities (ישובים) | 8f714b6f-c35c-4b40-a0e7-547b675eee0e | ~1,310 records | | Streets + synonyms (רחובות עם שמות נרדפים) | bf185c7f-1a4e-4662-88c5-fa118a244bda | ~152k raw rows → ~63k unique streets |

Fetched via:

GET https://data.gov.il/api/3/action/datastore_search?resource_id=<id>

No API key required. See data.gov.il for the full catalog.

Contents (published)

| Path | Description | |------|-------------| | generated/cities.json | All cities (~1,300) | | generated/streets/{cityCode}.json | Streets for one city | | generated/street-loader.js | Lazy loader map (cityCode → import(...)) | | manifest.json | CKAN lastModified, record counts, build timestamp |

Data shapes

Raw CKAN — cities

What we download into raw/cities.json (gitignored):

{
  _id: number;
  city_code: number;
  city_name_he: string;
  city_name_en: string;
  region_code: number;
  region_name: string;
  PIBA_bureau_code: number;
  PIBA_bureau_name: string;
  Regional_Council_code: number;
  Regional_Council_name: string | null;
}

Raw CKAN — streets

What we download into raw/streets.json (gitignored). Each street can appear multiple times — once as official, plus synonym rows:

{
  _id: number;
  region_code: number;
  region_name: string;
  city_code: number;
  city_name: string;
  street_code: string;
  street_name: string;
  street_name_status: string; // e.g. "official" | "synonym of 100"
  official_code: number;
}

Built — cities (generated/cities.json)

{
  code: number;        // city_code
  nameHe: string;      // city_name_he
  nameEn: string | null; // city_name_en
  regionCode: number;
  regionName: string;
}

Built — streets (generated/streets/{cityCode}.json)

Official name + aliases collapsed into one record per official_code:

{
  code: number;        // official_code
  nameHe: string;      // official street name
  aliases: string[];   // synonym spellings (excluding the official name)
}

Example:

{
  "code": 100,
  "nameHe": "דיזנגוף",
  "aliases": ["דיזינגוף"]
}

Manifest (manifest.json)

{
  sources: {
    cities: { resourceId: string; lastModified: string; recordCount: number };
    streets: { resourceId: string; lastModified: string; recordCount: number };
  };
  built: {
    cityCount: number;
    uniqueStreetCount: number;
    rawStreetRecordCount: number;
    streetCountByCity: Record<string, number>;
    generatedAt: string;
  };
}

sources.*.lastModified comes from the government CKAN metadata (when gov.il last updated the file). built.generatedAt is when we last ran the build.

Transform notes

  • City/street strings are trimmed; empty Hebrew names are dropped
  • Street rows with status starting with official become nameHe; other statuses become aliases
  • Streets are grouped by city_code + official_code, then written one JSON file per city
  • Cities and streets are sorted Hebrew-locale (he)

Rebuild

pnpm data:sync      # fetch from CKAN + build
pnpm data:build     # rebuild from packages/data/raw/
pnpm data:validate  # compare local counts against live CKAN

Bring your own JSON

Drop files in packages/data/raw/:

  • cities.json — see raw/cities.json.example
  • streets.json — see raw/streets.json.example

Then run pnpm data:build.

License

MIT — underlying geographic names are public data from data.gov.il.