---
title: パッケージ
description: 標準ライブラリ、コネクターの構造定義、データリポジトリから、内容を固定した関数と JSON の構造をインポートします。
species: reference
---
# パッケージ

typesql パッケージは、関数、モデルのシグネチャ、JSON の構造をまとめた、バージョン付きの名前空間です。解決は内容に固定され、同じ `typesql.lock` のバイト列からは常に同じパッケージ成果物を選びます。

```typesql
import type shapes from 'connector/stripe';
import finance from 'skycrane/finance';
```

## パッケージ名

参照は正確に `stdlib`、または小文字の `namespace/name` で指定します。各部分は `a-z` で始め、その後に `a-z`、`0-9`、`_`、`-` を使えます。

組織のパッケージは `packages/<namespace>/<name>/typesql.pkg` に置きます。`connector/*` はコネクターの構造定義パッケージ用に予約されています。絶対パス、`.` と `..`、連続する区切り文字、大文字の別名、3 つ目のパス要素は拒否します。

## インポート

`import type` は構造とシグネチャを取り込み、その後完全に消去されます。単独の `import` は関数本体も取り込み、typesql の拡張層に属します。

パッケージ自身がファイルシステムを読み取ることはありません。呼び出し側が、正規化した成果物のパスがリポジトリの `packages/` ディレクトリ内に収まることを検証し、バイト列を渡します。

## ロックファイル

`typesql.lock` には、正確な成果物ハッシュごとに 1 行を、ソートした順序で記述します。

```text
typesql-lock-v1
package skycrane/finance sha256:813c25d0f81d8963fd60345cf6be0a8d3e40f52612f491d6d97e06c77b16f9d0
```

固定情報の欠落には `TS0601`、成果物の欠落には `TS0602`、ハッシュの不一致には `TS0603` を使います。形式、エクスポート、循環、名前の隠蔽、リソース上限、未使用のインポートの問題には `TS0604`～`TS0609` を使います。
