コンテンツにスキップ

検索はプロダクションビルドでのみ利用可能です。 ローカルでテストするには、サイトをビルドしてプレビューしてください。

Packages (共有ライブラリ)

packages/ ディレクトリには、複数のアプリ・サービスで共有されるライブラリパッケージが含まれます。全パッケージは @speakeasy/ プレフィックスで workspace 参照されます。


パッケージ名前役割
Cellar@speakeasy/cellar業務データベース(Drizzle ORM)
Vault@speakeasy/vault認証データベース(Drizzle ORM)
Jigger@speakeasy/jigger共有スキーマ・型定義(Zod)
Glass@speakeasy/glassUI コンポーネント(Svelte 5)
Garnish@speakeasy/garnishデザイントークン(Tailwind + daisyUI)
purelovers-client@speakeasy/purelovers-client外部連携クライアント

業務データベースパッケージ — 連絡先・チャット・店舗・配信など、ビジネスデータの Drizzle ORM スキーマとクライアントを提供します。

項目内容
パスpackages/cellar
技術Drizzle ORM v1.0 beta + PostgreSQL
依存@speakeasy/jigger, drizzle-orm, pg, zod
import { createDrizzleClient } from '@speakeasy/cellar'; // DB クライアント
import { chatRoom, chatMessage } from '@speakeasy/cellar/client'; // スキーマ直接参照
エクスポートパス内容
@speakeasy/cellarメインエントリ(クライアント生成関数)
@speakeasy/cellar/clientスキーマ・型定義の直接エクスポート
ファイルテーブル
schema/contact.tscontact, contact_purelovers, contact_chat_ng, contact_chat_ng_history
schema/chat.tschat_room, chat_message, user_room_state, chat_attachment
schema/shop.tsshop, shop_line_account, shop_transfer, shop_purelovers
schema/broadcast.tsbroadcast
schema/label.tslabel
schema/notification.tsnotification_setting
schema/shop-notification.tsshop_notification_setting, shop_push_subscription, shop_email_recipient
schema/customer-notification.tscustomer_notification_setting, customer_push_subscription
schema/push.tspush_subscription, push_message
schema/domain-blacklist.tsdomain_blacklist, global_domain_blacklist
Terminal window
bun run generate # Drizzle マイグレーション生成
bun run migrate:dev # 開発環境マイグレーション実行
bun run migrate:deploy # 本番環境マイグレーション実行
bun run studio # Drizzle Studio(本番)
bun run studio:dev # Drizzle Studio(開発)

詳細は Cellar DB 仕様 を参照してください。


認証データベースパッケージ — better-auth が管理するユーザー・セッション・組織データの Drizzle ORM スキーマとクライアントを提供します。

項目内容
パスpackages/vault
技術Drizzle ORM v1.0 beta + PostgreSQL
依存@speakeasy/jigger, drizzle-orm, pg
import { user, session } from '@speakeasy/vault/schema'; // スキーマ参照
import { createVaultClient } from '@speakeasy/vault/client'; // DB クライアント
エクスポートパス内容
@speakeasy/vaultメインエントリ
@speakeasy/vault/clientDB クライアント生成関数
@speakeasy/vault/schemaスキーマ・型定義
ファイルテーブル
schema/user.tsuser, session, account, verification
schema/organization.tsorganization, member, organizationRole, memberRole, invitation
schema/apikey.tsapikey, passkey
schema/oauth.tsoauthApplication, oauthAccessToken, oauthConsent
schema/custom.tsouterMail, outerPhone, scimProvider

詳細は Vault DB 仕様 を参照してください。


共有スキーマ・型定義パッケージ — Zod スキーマ、TypeScript 型、列挙型、RPC ユーティリティ、Hono ミドルウェアなど、全サービスで共有される定義を提供します。

項目内容
パスpackages/jigger
技術Zod v4 + Hono + TypeScript
依存hono, zod
import { ContactSchema } from '@speakeasy/jigger/schemas'; // Zod スキーマ
import type { Contact } from '@speakeasy/jigger/schemas'; // 型定義(スキーマから推論)
import type { NotificationQueueMessage } from '@speakeasy/jigger/types'; // 型定義
import { createSmartClient } from '@speakeasy/jigger/rpc'; // RPC ユーティリティ
import { domainBlacklist } from '@speakeasy/jigger/middleware'; // Hono ミドルウェア
import { trackDbOperation } from '@speakeasy/jigger/analytics'; // 分析ユーティリティ
import { createPipelinesLogstreamClient } from '@speakeasy/jigger/logstream'; // 監査ログ
import { rateLimitMiddleware } from '@speakeasy/jigger/rate-limit'; // レートリミット
import { securityHeadersMiddleware } from '@speakeasy/jigger/security-headers'; // セキュリティヘッダー
import { isMaintenanceMode } from '@speakeasy/jigger/maintenance'; // メンテナンスモード
import { validateRedirectUrl } from '@speakeasy/jigger/url-validation'; // URL バリデーション
import { statement } from '@speakeasy/jigger/permissions'; // パーミッション
エクスポートパス内容
@speakeasy/jigger非推奨 メインエントリ(全モジュール再エクスポート)
@speakeasy/jigger/schemasZod v4 スキーマ定義(base, contact, chatroom 等)
@speakeasy/jigger/typesTypeScript 型定義(通知キューメッセージ等)
@speakeasy/jigger/rpcRPC クライアントユーティリティ
@speakeasy/jigger/middlewareHono ミドルウェア(domainBlacklist 等)
@speakeasy/jigger/analyticsAnalytics Engine ユーティリティ
@speakeasy/jigger/logstream監査ログ(Pipelines ベース)
@speakeasy/jigger/rate-limitレートリミットミドルウェア
@speakeasy/jigger/security-headersセキュリティヘッダーミドルウェア
@speakeasy/jigger/maintenanceメンテナンスモード判定
@speakeasy/jigger/url-validationURL バリデーション
@speakeasy/jigger/permissionsパーミッション文(better-auth 用)
// schemas/base.ts で定義される基本型
const UUID = z.string().uuid();
const Email = z.string().email();
const URL = z.string().url();
const DateTime = z.string().datetime();
const Int = z.number().int();
const Entity = z.object({ id: UUID, createdAt: DateTime, updatedAt: DateTime });

共有 UI コンポーネントライブラリ — Svelte 5 (Runes) + Melt UI で構築された再利用可能な UI コンポーネントを提供します。

項目内容
パスpackages/glass
技術Svelte 5 + Melt UI + daisyUI
依存@speakeasy/garnish, @lucide/svelte, melt
<script>
import { Select, SelectOption } from '@speakeasy/glass';
import { CommandPalette, CommandItem, CommandGroup } from '@speakeasy/glass';
import { Tooltip } from '@speakeasy/glass';
import { Toaster, addToast } from '@speakeasy/glass';
</script>
コンポーネント説明
Selectドロップダウンセレクト
SelectOptionセレクトのオプション項目
CommandPaletteコマンドパレット(Spotlight 風)
CommandItemコマンドパレットの項目
CommandGroupコマンドパレットのグループ
CommandEmptyコマンドパレットの空状態
CommandSeparatorコマンドパレットのセパレータ
Tooltipツールチップ
Toaster / addToast()トースト通知システム

Glass コンポーネントの対話的ドキュメントは Storybook で確認できます。

Terminal window
cd docs/menu
bun run storybook # Storybook 起動

デザイントークンパッケージ — Tailwind CSS v4 + daisyUI 5 のテーマとデザイントークンを提供します。

項目内容
パスpackages/garnish
技術Tailwind CSS v4 + daisyUI 5
Peer 依存daisyui, tailwindcss
import { speakeasyLight, speakeasyDark } from '@speakeasy/garnish/themes';
import { spacing, fontSize, shadow } from '@speakeasy/garnish/tokens';
import '@speakeasy/garnish/css'; // メイン CSS
エクスポートパス内容
@speakeasy/garnishメインエントリ
@speakeasy/garnish/themesテーマ定義(light / dark)
@speakeasy/garnish/tokensデザイントークン
@speakeasy/garnish/cssメイン CSS ファイル
テーマベースカラープライマリアクセント
speakeasyLightWarm Paper (#fffbf0)Antique GoldBrand Pink
speakeasyDarkDeep Abyss (#1a1824)Luminous GoldNeon Rouge
カテゴリ範囲
spacing0〜32(0〜8rem)
fontSizexs〜5xl(line-height 付き)
fontWeightthin〜black(100〜900)
borderRadiusnone〜full
shadowsm〜2xl + inner
animationduration(fast/normal/slow)+ easing
zIndexauto, 0〜50, semantic(dropdown/modal/tooltip 等)

外部連携クライアント — purelovers.com ロイヤリティプラットフォームの Speakeasy モジュール API クライアントです。

項目内容
パスpackages/purelovers-client
技術TypeScript(依存なし)
import { fetchPurelovers } from '@speakeasy/purelovers-client';
import type { PureloversResult } from '@speakeasy/purelovers-client';
  • API キー認証: X-API-KEY ヘッダーによる認証
  • snake_case → camelCase 変換: レスポンスのキーを自動変換
  • Result 型: 成功/失敗を判別可能な discriminated union を返却
  • レビュー環境対応: Basic 認証 + Cookie のサポート
type PureloversResult<T> =
| { readonly ok: true; readonly data: T }
| { readonly ok: false; readonly error: string; readonly statusCode: number };
  • Base — purelovers 連携設定の管理
  • Tap — 外部 API 経由のデータ同期