open-index/open-npm huggingface dataset:
npm package: @sidp/iframes
Description: Give control of the parent window in an iframed page. Works cross-domain by utilizing the postMessage API. It is under development and things might still break.
Author: Peter Simonsson
Latest version: 0.1.3

# @sidp/iframes

Give control of the parent window in an iframed page. Works cross-domain by utilizing the postMessage API. It is under development and things might still break.

## API

In the parent document:

```html
<iframe src="https://[...]" id="iframe"></iframe>
```

```js
import { setup } from '@sidp/iframes';
const iframe = setup(document.getElementById('iframe'));
```

In the iframed document:

```js
import { parentWindow, iframe } from '@sidp/iframes';
```

The `parentWindow` object contains functions referring to the parent window and and `iframe` contains functions referring ot the iframe element in the parent document.

### Set the scroll position

```js
parentWindow.scrollTo(x, y);
```

The arguments must be provided as numbers. They are interpreted as pixel values.

### Get the scroll position

Get the current scroll position of the parent window. The returned number is a pixel value. The functions take no arguments.

```js
parentWindow.scrollX(); // -> 0
parentWindow.scrollY(); // -> 0
```

### Get and set the size of the iframe

Get and set the height and width of the iframe. Numbers are interpreted as pixels and strings as css values.

```js
iframe.height(); // -> 620
iframe.height('100vh');
```

### Position of the iframe in the parent document

The following functions return the position of the iframe in the parent document. The returned number is a pixel value. The functions take no arguments.

```js
iframe.top() // -> 360
iframe.left() // -> 16
iframe.right() // -> 16
iframe.bottom(): // -> 840
```

The following funtions return the position of the iframe relative to the viewport. The returned number is a pixel value. The functions take no arguments.

```js
iframe.viewport.top(); // -> 100
iframe.viewport.left(); // -> 16
iframe.viewport.right(); // -> 16
iframe.viewport.bottom(); // -> 200
```

### Listen to events (not implemented yet)

In the parent document:

```js
import { setup } from '@sidp/iframes';
const iframe = setup(document.getElementById('iframe'));

iframe.on('resize', ({ width, height }) => {
	console.log('the iframe resized itself', width, height);
});

iframe.on('scroll', ({ x, y }) => {
	console.log('iframe scrolled the window to', x, y);
});
```

In the iframed document:

```js
import { parent, iframe } from '@sidp/iframes';
parent.on('init', () => {
	console.log(
		'The parent document initialized the iframe script for this iframe'
	);
});
```
npm package: @sidpagariya/prettier-config
Description: Sid's personal Prettier config
Author: Sid Pagariya
Latest version: 1.1.0

# `@sidpagariya/prettier-config`

> My personal [Prettier](https://prettier.io) config.

## Usage

**Install**:

```bash
$ yarn add --dev @sidpagariya/prettier-config
```

**Edit `package.json`**:

```jsonc
{
  // ...
  "prettier": "@sidpagariya/prettier-config"
}
```
npm package: @sidri-fe/imodel-hooks
Description: 一个在 iModel 项目中使用的 react hook。
Latest version: 0.1.1

## iModel Hooks

一个在 iModel 项目中使用的 react hook。

为了避免多重嵌套，重复创建 connection，自动获取 `child`，在组件卸载时自动销毁实例。

### 使用方法

1. 引入 `ImodelFrame` 作为初始化 iframe 以及 context 的容器

```tsx
// index.tsx
import { ImodelFrame } from '@sidri/imodel-hooks';

const App = () => {
  return (
    <Wrapper>
      <ImodelFrame>
        <Father>
          <Son />
        </Father>
      </ImodelFrame>
    </Wrapper>
  );
};
```

2. 在 `ImodelFrame` 内（**请注意一定要在该组件内**）任意级别的子组件内使用 `useImodel` 来获取 `child` ，方便快捷的调用 iModel Frame 提供的 API。

```tsx
// Son.tsx
import React from 'react';
import { useImodel } from '@sidri/imodel-hooks';

const Son = () => {
  const { child } = useImodel();

  return (
    <div
      onClick={() => {
        child?.test('42');
      }}
    >
      don't panic
    </div>
  );
};

export default Son;
```

3. `ImodelFrame` 接受的主要参数如下图所示（另外接受的参数包含 iframe 作为 element 的所有属性）：

**注：为了避免嵌套，此 hooks 已经将 `onCompleted` 集成在内部，不再需要使用方监听**

```tsx
// index.tsx
import { ImodelFrame } from '@sidri/imodel-hooks';

const App = () => {
  return (
    <Wrapper>
      <ImodelFrame
        onError={(error) => {
          // `error` 为握手时发生的错误
        }}
        methods={{
          // 具体请参考 iModel Frame 的 API 文档
          onLeftClick(info) {
            console.log(info);
          },
          onToolChange(toolName) {
            console.log(toolName);
          },
        }}
        // 是否展示调试日志（默认为否）
        debug={false}
        // 握手的超时时间，默认为 10000（单位：毫秒）
        timeout={10000}
        // 以下常用 props 就不再赘述了
        className={}
        style={}
      >
        <Father>
          <Son />
        </Father>
      </ImodelFrame>
    </Wrapper>
  );
};
```

### 引入方法

1. 使用 nrm 或者 cgr 之类的工具将 npm 源切换为 http://10.190.44.202:4444 (内网用户)

```shell
yarn add @sidri-fe/imodel-hooks
```

2. 直接使用 tgz 包（内网用户）

```json
{
  "dependencies": {
    "@sidri-fe/imodel-hooks": "http://10.190.44.202:4444/@sidri-fe/imodel-hooks/-/imodel-hooks-0.1.1.tgz"
  }
}
```

3. 从 npm 市场下载（非内网用户），请注意：最新的 patch 会优先发布在内网

```shell
yarn add @sidri-fe/imodel-hooks
```
npm package: @sidstack/api-server
Description: REST API server for SidStack Web UI
Latest version: 0.4.6

# @sidstack/api-server

REST API server for SidStack desktop app.

## Endpoints

```
# Tasks
GET    /api/tasks                  - List tasks
POST   /api/tasks                  - Create task
GET    /api/tasks/:id              - Get task
PUT    /api/tasks/:id              - Update task
POST   /api/tasks/:id/complete     - Complete with governance check

# Tickets
GET    /api/tickets                - List tickets
POST   /api/tickets                - Create ticket
PUT    /api/tickets/:id            - Update ticket
POST   /api/tickets/:id/convert    - Convert to task

# Knowledge
GET    /api/knowledge              - List documents
GET    /api/knowledge/search       - Search documents
GET    /api/knowledge/context      - Build context

# Sessions
POST   /api/sessions/launch        - Launch Claude session
GET    /api/sessions               - List sessions

# Impact Analysis
POST   /api/impact/analyze         - Run impact analysis
GET    /api/impact/:id/gate        - Check gate status

# Training
POST   /api/training/incidents     - Create incident
POST   /api/training/lessons       - Create lesson
```

## Development

```bash
# Start server (port 19432)
pnpm dev

# Build
pnpm build
```

## Configuration

Uses SQLite database at `.sidstack/db/`. Port defaults to 19432.
npm package: @sidstack/cli
Description: SidStack CLI - Project Intelligence for AI Coding Agents
Author: SidStack Team
Latest version: 0.4.6

# @sidstack/cli

Command-line interface for SidStack project intelligence.

## Installation

```bash
npx @sidstack/cli init
```

## Commands

```bash
# Initialize project
sidstack init                    # Basic setup
sidstack init --scan             # AI-powered knowledge generation
sidstack init --governance       # With governance templates

# Governance
sidstack governance show         # Show governance overview
sidstack governance check        # Check compliance

# Knowledge
sidstack knowledge init          # Initialize knowledge structure
sidstack knowledge create        # Create from template

# System
sidstack doctor                  # Health check
sidstack update                  # Check for updates
```

## Development

```bash
# Build
pnpm build

# Link globally
pnpm link --global

# Run in dev mode
./bin/run.js <command>
```

## Configuration

Config stored in `.sidstack/` after `sidstack init`.
npm package: @sidstack/mcp-server
Description: MCP Server for SidStack - task management, knowledge, and impact analysis for Claude Code
Latest version: 0.4.6

# @sidstack/mcp-server

MCP Server for SidStack - knowledge, task management, impact analysis, and governance for Claude Code.

## Install

Add to your Claude Code MCP settings (`~/.claude/settings.json`):

```json
{
  "mcpServers": {
    "sidstack": {
      "command": "npx",
      "args": ["-y", "@sidstack/mcp-server"]
    }
  }
}
```

Or in a project `.mcp.json`:

```json
{
  "mcpServers": {
    "sidstack": {
      "command": "npx",
      "args": ["-y", "@sidstack/mcp-server"]
    }
  }
}
```

## Tools (20)

### Knowledge
- `knowledge_context` - Build session context for a task/module
- `knowledge_search` - Search across knowledge docs
- `knowledge_list` - List available docs
- `knowledge_modules` - List modules with stats

### Tasks
- `task_create` - Create task with governance
- `task_update` - Update status/progress
- `task_list` - List tasks
- `task_complete` - Complete with quality gate check

### Impact Analysis
- `impact_analyze` - Run impact analysis on a planned change
- `impact_check_gate` - Check gate status (blocked/warning/clear)
- `impact_list` - List analyses

### Tickets
- `ticket_create` - Create ticket
- `ticket_list` - List/filter tickets
- `ticket_update` - Update status
- `ticket_convert_to_task` - Convert ticket to task

### Training
- `lesson_create` - Create lesson from incident
- `rule_check` - Check rules for context

### Sessions
- `session_launch` - Launch Claude session with role and context

## Setup

Initialize a project with SidStack:

```bash
npx @sidstack/cli init         # Basic init
npx @sidstack/cli init --scan  # Init + AI-powered knowledge scan
```

## Development

```bash
pnpm build    # Build
pnpm dev      # Watch mode
pnpm start    # Run server
```

## License

MIT
npm package: @sidstack/shared
Description: Shared types and utilities for SidStack
Latest version: 0.4.6

# @sidstack/shared

Shared TypeScript types, database layer, and utilities for SidStack packages.

## Usage

```typescript
import { TaskStatus, AgentRole, KnowledgeDocument } from '@sidstack/shared';
```

## Exports

- `TaskStatus` - Task lifecycle states
- `AgentRole` - Agent roles (Worker, Reviewer)
- `KnowledgeDocument` - Knowledge document types
- `Database` - SQLite database layer (better-sqlite3)
- `KnowledgeService` - Knowledge document operations
- `ImpactEngine` - Impact analysis engine

## Development

```bash
pnpm build
```
npm package: @sidv/avro-to-typescript
Description: Package for converting Avro schema files (.avsc) to TypeScript interface files
Author: Sidharth V
Latest version: 2.2.22

# avro-to-typescript

avro-to-typescript compiles avro schema files (.avsc) to TypeScript interfaces. Making using avro schematics with node.js easy and comfortable.

## Features

- Compiles most if not all avro types (**record**, **enum**, **primitive**, **map**, **array**)
- Provides methods for effective serialization and deserialization of avro to js and vice versa

## Usage

#### Global:

Most projects will use avro-to-typescript this way

```sh
npm install -g @sidv/avro-to-typescript

avro-to-typescript --compile [ schema-directory ] [ output-directory ]
```

This will generate namespaced folders and files for your schemas inside
output directory so have that in mind.

You also need to install avro-to-typescript in your project.

```
npm install @sidv/avro-to-typescript --save
```

#### Project:

This way is if your projects needs to generate avro classes while running.

```
npm install @sidv/avro-to-typescript --save
```

    import { Compiler } from "@sidv/avro-to-typescript";

    const compiler = new Compiler(outputDir);
    await compiler.compile(avro);

#### Logical Types:

If you want to take advantage of logical types, you can pass these as an argument to the cli

```sh
avro-to-typescript --compile [ schema-directory ] [ output-directory ] --logical-types [avro type] [typescript type]
```

You can even pass more than one if you alternate them:

```sh
avro-to-typescript --compile [ schema-directory ] [ output-directory ] --logical-types [avro type] [typescript type] [avro type] [typescript type]
```

You can also pass them to the compilre in your code directly:

    import { Compiler } from "@sidv/avro-to-typescript";

    const compiler = new Compiler(outputDir, { date: 'string', 'timestamp-millis': 'string'} });
    await compiler.compile(avro);

If there are logical types in the avro schema but you don't provide a mapping for them, they will default to the underlying primitive type.

## Contribution and Support

If you are having issues, please let us know on our issue tracker.

- Issue Tracker: github.com/sidharthv96/avro-to-typescript/issues
- Source Code: github.com/sidharthv96/avro-to-typescript

## License

The project is licensed under the MIT license.
npm package: @sidv/docusaurus-theme-mermaid
Description: Mermaid components for Docusaurus.
Latest version: 3.5.0-beta.1

# Docusaurus Theme Mermaid

The mermaid components for Docusaurus.

## Installation

Add `docusaurus/theme-mermaid` to your package:

```bash
npm i @docusaurus/theme-mermaid
# or
yarn add @docusaurus/theme-mermaid
```

## Swizzling components

```bash
$ npm swizzle @docusaurus/theme-mermaid [component name]
```

All components used by this theme can be found [here](https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-theme-mermaid/src/theme)
npm package: @sidvind/build-nunjucks
Description: ## Usage
Author: David Sveningsson
Latest version: 2.1.0

# Nunjucks filters and helpers for generating HTML static pages

## Usage

It exports a single function taking the nunjucks `Environment` instance:

```js
const configure = require('@sidvind/build-nunjucks')({
  /* options */
});
const env = new nunjucks.Environment(..);
configure(env);
```

With `grunt-nunjucks-2-html`:

```js
nunjucks: {
  options: {
    configureEnvironment: require('@sidvind/build-nunjucks')({
      /* options */
    }),
  },
}
```

## Options

### `assetDir`

- Type: `string`
- Default: `"public/assets"`

Source directory to read assets from.

### `assetHash`

- Type: `Function`
- Prototype: `function(filename: string): string`

Assign a custom hash function. Takes the filename and should return the
calculated hash.

### `assetUrl`

- Type: `string`
- Default: `"assets/${path}${filename}.${ext}?${hash:10}"` (e.g. `"assets/js/site.min.js?1234567890"`)

Supports the following parameters:

- `path`: asset path.
- `filename`: asset filename without extension.
- `ext`: asset extension
- `hash[:N]`: asset hash, optionally limited to first N characters.
- `mtime`: asset file modification timestamp.

### `sri`

- Type: `boolean | "auto"`
- Default: `"auto"`

Enable/disable SRI. The `sri` filter will only output the integrity value it
enabled.

When set to `auto` the filter is enabled for production builds
(`NODE_ENV=production`).

## Filters

### `assetUrl` filter

Generate a cache-buster URL for an asset.

Template:

```html
<link rel="stylesheet" href="{{ 'css/site.min.css' | assetUrl }}">
```

Output:

```html
<link rel="stylesheet" href="assets/css/site.min.css?e4202148fa903327c91d89f0c6fec4af">
```

The format can be customized by setting the `assetUrl` option.

### `sri` filter

SRI integrity (hash) of an asset. See `sri` option to enable/disable. By default
this does not output anything in development builds.

Template:

```html
<link rel="stylesheet" .. integrity="{{ 'css/site.min.css' | sri('sha384') }}">
```

Output:

```html
<link rel="stylesheet" .. integrity="sha384-zwJH9nUlOkCDg2d1r1c5jLqv8NQ2O9CHKIa0sAYozc0MD1aPSbNqGM9YY7+Sz6n1">
```

## Globals

### `now` global

Build timestamp (seconds since 1 jan 1970).

### `git` global

Git metadata.

```js
{
  "commit": "...",
  "branch": "my-branch"
}
```

Template:

```html
<pre>{{ git | dump }}</pre>
```

Output:

```
<pre>{&quot;commit&quot;:&quot;9b27067&quot;,&quot;branch&quot;:&quot;feature/my-fancy-branch&quot;}</pre>
```

## API - `cachebuster.js`

The module exports the the following functions:

### `hash(filename: string): string`

Calculates the file hash (used by asset url).

### `mtime(filename: string): string`

Get the file modification time.
npm package: @sidvind/build-scripts
Description: ## sv-update-changelog
Author: David Sveningsson
Latest version: 1.0.0

# Sidvind build scripts

## sv-update-changelog

Usage: `sv-update-changelog -i [FILENAME]`.

In `package.json` add:

    {
        "scripts": {
            "version": "sv-update-changelog -i && git add CHANGELOG.md"
        }
    }
npm package: @sidvind/rollup-plugin-worker
Description: Rollup plugin to import a worker and get the worker URL
Author: David Sveningsson
Latest version: 1.0.4

# @sidvind/rollup-plugin-worker

[![NPM Version](https://img.shields.io/npm/v/%40sidvind%2Frollup-plugin-worker)](https://www.npmjs.com/package/@sidvind/rollup-plugin-worker)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/ext/rollup-plugin-worker/.github%2Fworkflows%2Fbuild.yml)

Rollup plugin to import a worker and get the worker URL.

- Import worker as URL
- Generates separate chunk for each worker.
- ESM only
- Typescript compatible

> [!IMPORTANT]
> This plugin is intended for my own use-cases and I'll maintain it as such.
> Feel free to use it as you feel fit but I will not accept feature requests without pull requests, i.e. if you don't intend to put in the work yourself it is unlikely to be implemented.
> Issues and bugs are accepted.

## Usage

```ts
import { Worker } from "node:worker_threads";
import workerUrl from "./awesome-worker?worker&url";

const worker = new Worker(workerUrl);
```

This generates a separate chunk `awesome-worker-[chunk].js` and is exported as a URL to the chunk.
npm package: @sidvind/serve-rewrite
Description: connect/express middleware for rewriting all urls
Author: David Sveningsson
Latest version: 1.0.0

# Connect/Express middleware for rewriting all urls.

When writing single-page applications with HTML5 history API it is desirable to
rewrite all urls back to the application, e.g. `index.html`.

This middleware will do an internal redirect with the rewritten URL.

## Usage

```js
const serveRewrite = require('@sidvind/serve-rewrite');

const middleware = [
	serveRewrite('/index.html', {
		ignore: [
			'^/(assets/|favicon)', /* do not rewrite assets and favicon */
		],
	}),
	serveStatic('public'), /* serve files from public folder */
];
```

## Options

### `ignore`

`RegExp | RegExp[]` of URL patterns to ignore (i.e. not rewrite).

### `debug`

`boolean`. If `true` debugging information will be written to stdout.
npm package: @sidvsai/samya-shared
Description: Shared TypeScript types, constants, and utilities for Samya expense tracker
Author: Siddharth Vijay Sai
Latest version: 0.0.3

# @samya/shared

Shared TypeScript types, constants, and utilities for the Samya expense tracking app.

## Installation

npm install @samya/shared

## Usage

import { User, Expense, formatCurrency } from '@samya/shared';
npm package: @sidww/zen
Description: Dead simple state-management
Author: Sidwebworks
Latest version: 1.0.5

# Zen


[![npm version](https://badgen.net/npm/v/@sidww/zen)](https://npm.im/@sidww/zen) [![npm downloads](https://badgen.net/npm/dm/@sidwebworks/get-packages)](https://npm.im/@sidwebworks/get-packages)

> Dead simple state-management

- 📦 Tiny (less than 1kb)
- 🔩 Typesafe APIs
- ⚡️ React and Selectors support

## Install

```bash
npm i @sidww/zen
```

## Usage

```ts
import { zen } from "@sidww/zen"

const todos = zen([{ id: 1, completed: false, title: "Idk man" }])
```

### Reading from state

```ts
const value = todos.read()
```

### Writing to state

```ts
todos.write([]) // Clear all todos

// Or if the next state depends on previous one

todos.write((prev) => [
  ...prev,
  { id: 123, title: "Last one", completed: true },
])

// U can also directly use the .read() method instead
```

### Subscribing to changes

```ts
todos.subscribe((state) => {
  console.log("CHANGE: ", state)
})
```


### Usage with React

```ts
import { useZen } from "@sidww/zen/react"

const todos = useZen(todosZen);
```

#### Selector support

```ts
import { useZen } from "@sidww/zen/react"

const firstTodo = useZen(todosZen, (s) => s[0]);
```

Type docs: https://paka.dev/npm/@sidww/zen

## License

MIT &copy; [sidwebworks](https://github.com/sponsors/sidwebworks)
npm package: @sidx1024/object-sizeof
Description: Sizeof of a JavaScript object in Bytes
Author: Andrei Karpushonak
Latest version: 1.6.4

## object-sizeof

[![Build Status](https://travis-ci.org/miktam/sizeof.svg?branch=master)](https://travis-ci.org/miktam/sizeof) [![Dependency Status](https://david-dm.org/miktam/sizeof.svg)](https://david-dm.org/miktam/sizeof)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmiktam%2Fsizeof.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmiktam%2Fsizeof?ref=badge_shield)

[![NPM](https://nodei.co/npm/object-sizeof.png?downloads=true&downloadRank=true)](https://nodei.co/npm/object-sizeof/)

### Get size of a JavaScript object in Bytes

JavaScript does not provide sizeof (like in C), and programmer does not need to care about memory allocation/deallocation. 

However, according to [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/), each String value is represented by 16-bit unsigned integer, Number uses  the double-precision 64-bit format IEEE 754 values including the special "Not-a-Number" (NaN) values, positive infinity, and negative infinity.

Having this knowledge, the module calculates how much memory object will allocate. 

### Limitations
Please note, that V8 which compiles the JavaScript into native machine code, is not taken into account, as the compiled code is additionally heavily optimized. 

### Installation

`npm install object-sizeof`

### Examples

#### ES5

```javascript
  var sizeof = require('object-sizeof')
  
  // 2B per character, 6 chars total => 12B
  console.log(sizeof({abc: 'def'}))
  
  // 8B for Number => 8B
  console.log(sizeof(12345))
  
  var param = { 
    'a': 1, 
    'b': 2, 
    'c': {
      'd': 4
    }
  }
  // 4 one two-bytes char strings and 3 eighth-bytes numbers => 32B
  console.log(sizeof(param))
```

#### ES6

```javascript
  import sizeof from 'object-sizeof'
  
  // 2B per character, 6 chars total => 12B
  console.log(sizeof({abc: 'def'}))
  
  // 8B for Number => 8B
  console.log(sizeof(12345))
  
  const param = { 
    'a': 1, 
    'b': 2, 
    'c': {
      'd': 4
    }
  }
  // 4 one two-bytes char strings and 3 eighth-bytes numbers => 32B
  console.log(sizeof(param))
```

### Licence

The MIT License (MIT)

Copyright (c) 2015, Andrei Karpushonak aka @miktam

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmiktam%2Fsizeof.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmiktam%2Fsizeof?ref=badge_large)
npm package: @sidx1024/svelte
Description: Cybernetically enhanced web apps
Author: Rich Harris
Latest version: 3.53.0

[![Cybernetically enhanced web apps: Svelte](https://sveltejs.github.io/assets/banner.png)](https://svelte.dev)


[![npm version](https://img.shields.io/npm/v/svelte.svg)](https://www.npmjs.com/package/svelte) [![license](https://img.shields.io/npm/l/svelte.svg)](LICENSE.md) [![Chat](https://img.shields.io/discord/457912077277855764?label=chat&logo=discord)](https://svelte.dev/chat)


## What is Svelte?

Svelte is a new way to build web applications. It's a compiler that takes your declarative components and converts them into efficient JavaScript that surgically updates the DOM.

Learn more at the [Svelte website](https://svelte.dev), or stop by the [Discord chatroom](https://svelte.dev/chat).


## Supporting Svelte

Svelte is an MIT-licensed open source project with its ongoing development made possible entirely by fantastic volunteers. If you'd like to support their efforts, please consider:

- [Becoming a backer on Open Collective](https://opencollective.com/svelte).

Funds donated via Open Collective will be used for compensating expenses related to Svelte's development such as hosting costs. If sufficient donations are received, funds may also be used to support Svelte's development more directly.


## Development

Pull requests are encouraged and always welcome. [Pick an issue](https://github.com/sveltejs/svelte/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) and help us out!

To install and work on Svelte locally:

```bash
git clone https://github.com/sveltejs/svelte.git
cd svelte
npm install
```

> Do not use Yarn to install the dependencies, as the specific package versions in `package-lock.json` are used to build and test Svelte.

To build the compiler and all the other modules included in the package:

```bash
npm run build
```

To watch for changes and continually rebuild the package (this is useful if you're using [npm link](https://docs.npmjs.com/cli/link.html) to test out changes in a project locally):

```bash
npm run dev
```

The compiler is written in [TypeScript](https://www.typescriptlang.org/), but don't let that put you off — it's basically just JavaScript with type annotations. You'll pick it up in no time. If you're using an editor other than [Visual Studio Code](https://code.visualstudio.com/), you may need to install a plugin in order to get syntax highlighting and code hints, etc.


### Running Tests

```bash
npm run test
```

To filter tests, use `-g` (aka `--grep`). For example, to only run tests involving transitions:

```bash
npm run test -- -g transition
```


## svelte.dev

The source code for https://svelte.dev lives in the [sites](https://github.com/sveltejs/sites) repository, with all the documentation in the [site/content](site/content) directory. The site is built with [SvelteKit](https://kit.svelte.dev).

### Is svelte.dev down?

Probably not, but it's possible. If you can't seem to access any `.dev` sites, check out [this SuperUser question and answer](https://superuser.com/q/1413402).

## License

[MIT](LICENSE.md)