diff --git a/ADDITIONAL_TERMS.md b/ADDITIONAL_TERMS.md index 67f98b7..e3e89b0 100644 --- a/ADDITIONAL_TERMS.md +++ b/ADDITIONAL_TERMS.md @@ -12,7 +12,7 @@ If you convey (distribute) the software or any modified version of it, or operat 1. The name of the original software: **OpenMiQ** 2. The name of the original author: **otoneko.** -3. The URL of the original repository: **https://github.com/otnc/OpenMiQ** +3. The URL of the original repository: **https://github.com/OpenMiQ/discord-bot** The attribution must be provided: @@ -22,7 +22,7 @@ The attribution must be provided: ## 2. Marking of Modified Versions (Section 7(c)) -You must not represent a modified version of the software as the original. If you convey or operate a modified version, you must mark it in a reasonable way as modified, for example by stating that it is "based on OpenMiQ (https://github.com/otnc/OpenMiQ), with modifications", and by identifying yourself or the modified version under a name that is not identical to "OpenMiQ". +You must not represent a modified version of the software as the original. If you convey or operate a modified version, you must mark it in a reasonable way as modified, for example by stating that it is "based on OpenMiQ (https://github.com/OpenMiQ/discord-bot), with modifications", and by identifying yourself or the modified version under a name that is not identical to "OpenMiQ". ## 3. No Trademark License diff --git a/README-ja.md b/README-ja.md index 1445689..e7720b1 100644 --- a/README-ja.md +++ b/README-ja.md @@ -12,7 +12,7 @@ _[English](./README.md)_ -メッセージをクォート画像に変換する、セルフホスト型の**Web API**です。Discord Bot版の[OpenMiQ](https://github.com/otnc/OpenMiQ)をもとに、Web API向けに改変しています — 詳細は[Credits](#credits)を参照してください。 +メッセージをクォート画像に変換する、セルフホスト型の**Web API**です。Discord Bot版の[OpenMiQ](https://github.com/OpenMiQ/discord-bot)をもとに、Web API向けに改変しています — 詳細は[Credits](#credits)を参照してください。 ## Discord Bot版との違い @@ -33,8 +33,8 @@ _[English](./README.md)_ ### クイックスタート ```bash -git clone https://github.com/otnc/OpenMiQ-API.git -cd OpenMiQ-API +git clone https://github.com/OpenMiQ/api.git +cd api pnpm install cp .env.example .env # 値を埋める。詳細は下記Configurationを参照 pnpm run db:migrate # SQLiteスキーマを適用 @@ -133,8 +133,8 @@ otoneko. https://github.com/otnc ## Credits -- **OpenMiQ** — https://github.com/otnc/OpenMiQ — 本APIはDiscord Bot「OpenMiQ」(**otoneko.**作)をもとに、Web APIとして公開するための改変を加えたものです。 -- **makeitaquote** — https://github.com/otnc/makeitaquote — 本APIが画像生成に使用しているライブラリです。 +- **OpenMiQ** — https://github.com/OpenMiQ/discord-bot — 本APIはDiscord Bot「OpenMiQ」(**otoneko.**作)をもとに、Web APIとして公開するための改変を加えたものです。 +- **makeitaquote** — https://github.com/OpenMiQ/makeitaquote — 本APIが画像生成に使用しているライブラリです。 - Make it a Quote (Twitter) — https://twitter.com/MakeItAQuote - Make it a Quote (Discord/Misskey/Bluesky) — https://miq.moe/ - アイコン・ロゴ: 原作者(OpenMiQの著作者でもあります)の許諾のもと使用しています — 詳細は[ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md#4-brand-assets-githubassets)を参照してください。 @@ -144,7 +144,7 @@ otoneko. https://github.com/otnc 本プロジェクトは[GNU Affero General Public License v3.0 or later](./LICENSE)のもとでライセンスされており、OpenMiQ本家が付している[追加条項](./ADDITIONAL_TERMS.md)(AGPL-3.0 第7条)をそのまま引き継いでいます — 本APIはOpenMiQの改変版であるため、これらの条項は無改変のまま維持されます。 - **SPDX:** `AGPL-3.0-or-later`(AGPL-3.0 第7条に基づく追加条項付き) -- 本APIの改変版を配布または運用する場合、同じ追加条項により、改変版のソースをAGPL-3.0のもとで公開し、OpenMiQ(本家リポジトリURL: https://github.com/otnc/OpenMiQ)への帰属表示を[ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md)に記載の方法で行う必要があります。 +- 本APIの改変版を配布または運用する場合、同じ追加条項により、改変版のソースをAGPL-3.0のもとで公開し、OpenMiQ(本家リポジトリURL: https://github.com/OpenMiQ/discord-bot) への帰属表示を[ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md)に記載の方法で行う必要があります。 ## クライアントライブラリ diff --git a/README.md b/README.md index c313586..c1907d8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ _[日本語](./README-ja.md)_ -A self-hosted **Web API** that turns a message into a quote image over HTTP. Based on [OpenMiQ](https://github.com/otnc/OpenMiQ) (a Discord bot), with modifications for a Web API — see [Credits](#credits). +A self-hosted **Web API** that turns a message into a quote image over HTTP. Based on [OpenMiQ](https://github.com/OpenMiQ/discord-bot) (a Discord bot), with modifications for a Web API — see [Credits](#credits). ## What's different from the Discord bot version @@ -33,8 +33,8 @@ A self-hosted **Web API** that turns a message into a quote image over HTTP. Bas ### Quick start ```bash -git clone https://github.com/otnc/OpenMiQ-API.git -cd OpenMiQ-API +git clone https://github.com/OpenMiQ/api.git +cd api pnpm install cp .env.example .env # fill in the values, see Configuration below pnpm run db:migrate # applies the SQLite schema @@ -133,8 +133,8 @@ otoneko. https://github.com/otnc ## Credits -- **OpenMiQ** — https://github.com/otnc/OpenMiQ — this API is based on OpenMiQ (a Discord bot) by **otoneko.**, with modifications to expose it as a Web API. -- **makeitaquote** — https://github.com/otnc/makeitaquote — the library this API renders images with. +- **OpenMiQ** — https://github.com/OpenMiQ/discord-bot — this API is based on OpenMiQ (a Discord bot) by **otoneko.**, with modifications to expose it as a Web API. +- **makeitaquote** — https://github.com/OpenMiQ/makeitaquote — the library this API renders images with. - Make it a Quote (Twitter) — https://twitter.com/MakeItAQuote - Make it a Quote (Discord/Misskey/Bluesky) — https://miq.moe/ - Icon/Logo: used with permission of their original author (also the author of OpenMiQ) — see [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md#4-brand-assets-githubassets). @@ -144,7 +144,7 @@ otoneko. https://github.com/otnc This project is licensed under the [GNU Affero General Public License v3.0 or later](./LICENSE), carrying forward the [additional terms](./ADDITIONAL_TERMS.md) OpenMiQ itself is licensed under (AGPL-3.0 Section 7) — preserved here, unmodified, since this API is a modified version of that software. - **SPDX:** `AGPL-3.0-or-later` (with additional terms under AGPL-3.0 Section 7) -- If you distribute or run a modified version of _this_ API, the same additional terms require you to make your modified source available under AGPL-3.0 and to display attribution to OpenMiQ (original repository URL: https://github.com/otnc/OpenMiQ) as described in [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md). +- If you distribute or run a modified version of _this_ API, the same additional terms require you to make your modified source available under AGPL-3.0 and to display attribution to OpenMiQ (original repository URL: https://github.com/OpenMiQ/discord-bot) as described in [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md). ## Client library diff --git a/apps/api/legal/terms/3/TERMS-ja.md b/apps/api/legal/terms/3/TERMS-ja.md new file mode 100644 index 0000000..c3a50db --- /dev/null +++ b/apps/api/legal/terms/3/TERMS-ja.md @@ -0,0 +1,11 @@ +# 利用規約 + +OpenMiQ-APIは、OpenMiQ (https://github.com/OpenMiQ/discord-bot) をもとにしたセルフホスト型のクォート画像生成APIであり、GNU Affero General Public License v3.0 or laterおよびADDITIONAL_TERMS.mdに記載の追加条項のもとで提供されます。 + +APIキーは、Discordアカウントを連携し管理者の承認を得た場合にのみ発行されます。APIキーを第三者と共有すること、不正利用・スパム・違法な目的での利用は禁止します。本規約への違反はAPIキーの即時取消およびBANの対象となります。 + +各APIキーにはレート制限が適用され、現在の利用状況はAPI Consoleまたは GET /api/usage からいつでも確認できます。 + +本サービスはセルフホストで運用されており、稼働時間の保証(SLA)はありません。「hosted: true」で生成された画像はサーバー上に一時的に保存されるものであり、恒久的な保存を保証するホスティングサービスではありません。詳細はプライバシーポリシーを参照してください。 + +本規約は今後変更されることがあります。現在のバージョンはTERMS_VERSIONで管理され、重要な変更があった場合は再同意をお願いします。 diff --git a/apps/api/legal/terms/3/TERMS.md b/apps/api/legal/terms/3/TERMS.md new file mode 100644 index 0000000..eed6bed --- /dev/null +++ b/apps/api/legal/terms/3/TERMS.md @@ -0,0 +1,11 @@ +# Terms of Service + +OpenMiQ-API is a self-hosted quote-image generation API, based on OpenMiQ (https://github.com/OpenMiQ/discord-bot) and licensed under the GNU Affero General Public License v3.0 or later, with the additional terms in ADDITIONAL_TERMS.md. + +An API key is only issued after linking your Discord account and being approved by an administrator. You must not share your API key with others, and you must not use the service for abuse, spam, or any illegal purpose. Violating these terms may result in immediate API key revocation and a ban. + +Each API key is subject to a rate limit, and its current usage can be checked at any time via the API Console or GET /api/usage. + +This service is self-hosted and run without any uptime guarantee (no SLA). Images generated with "hosted: true" are stored on the server temporarily and are not a guaranteed permanent hosting service — see the Privacy Policy. + +These terms may change over time; the current version is tracked by TERMS_VERSION, and you will be asked to re-agree after a meaningful change. diff --git a/apps/api/src/app.ts b/apps/api/src/app.ts index 7a6cdec..c99c6f8 100644 --- a/apps/api/src/app.ts +++ b/apps/api/src/app.ts @@ -67,7 +67,7 @@ export function createApp(env: Env) { title: "OpenMiQ-API", version: "0.1.0", description: - "Based on OpenMiQ (https://github.com/otnc/OpenMiQ) by otoneko., with modifications for a Web API. Source: https://github.com/otnc/OpenMiQ-API", + "Based on OpenMiQ (https://github.com/OpenMiQ/discord-bot) by otoneko., with modifications for a Web API. Source: https://github.com/OpenMiQ/api", }, }); app.get("/api/docs", swaggerUI({ url: "/api/docs/openapi.json" })); diff --git a/apps/api/src/routes/about.ts b/apps/api/src/routes/about.ts index 708e6d9..b406e2a 100644 --- a/apps/api/src/routes/about.ts +++ b/apps/api/src/routes/about.ts @@ -36,9 +36,9 @@ export function createAboutApp(env: Env) { basedOn: { name: "OpenMiQ", author: "otoneko.", - url: "https://github.com/otnc/OpenMiQ", + url: "https://github.com/OpenMiQ/discord-bot", }, - sourceUrl: "https://github.com/otnc/OpenMiQ-API", + sourceUrl: "https://github.com/OpenMiQ/api", discordInviteUrl: env.DISCORD_INVITE_URL ?? null, playgroundSharedKeyAvailable: env.PLAYGROUND_SHARED_KEY_LIMIT > 0, }); diff --git a/apps/web/src/routes/+layout.svelte b/apps/web/src/routes/+layout.svelte index 7cc6801..eea0452 100644 --- a/apps/web/src/routes/+layout.svelte +++ b/apps/web/src/routes/+layout.svelte @@ -100,7 +100,7 @@ class="hover:text-foreground">{tr.common.apiDocs} {tr.footer.sourceCode}npm GitHub
makeitaquote This project is licensed under the [GNU Affero General Public License v3.0 or later](./LICENSE), carrying forward the [additional terms](./ADDITIONAL_TERMS.md) OpenMiQ itself is licensed under (AGPL-3.0 Section 7) — preserved here, unmodified, since this bot is a modified version of that software. > > - **SPDX:** `AGPL-3.0-or-later` (with additional terms under AGPL-3.0 Section 7) - > - If you distribute or run a modified version of _this_ bot, the same additional terms require you to make your modified source available under AGPL-3.0 and to display attribution to OpenMiQ (original repository URL: https://github.com/otnc/OpenMiQ) as described in [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md). + > - If you distribute or run a modified version of _this_ bot, the same additional terms require you to make your modified source available under AGPL-3.0 and to display attribution to OpenMiQ (original repository URL: https://github.com/OpenMiQ/discord-bot) as described in [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md). - badges: CI / License / Additional Terms / Node version をREADME冒頭に並べるスタイル - `## Configuration` 節: 環境変数を Markdown テーブル(`Variable | Purpose`)で列挙するスタイル → 本設計の §11 もこの形式に統一する - `## Known vX limitations` 節: 元のDiscord版との機能差・既知の制約を正直に明記するスタイル → 本プロジェクトでも「Botの対話的ボタン編集は無い」「一部コマンドはWeb UIのみ」等の差分をREADMEに明記する @@ -554,7 +554,7 @@ OpenMiQ-misskeyと同じ構成をWeb API向けに読み替えたテンプレー _[日本語](./README-ja.md)_ A self-hosted **Web API** that turns a message into a quote image over HTTP. -Based on [OpenMiQ](https://github.com/otnc/OpenMiQ) (a Discord bot), with modifications for a Web API — see [Credits](#credits). +Based on [OpenMiQ](https://github.com/OpenMiQ/discord-bot) (a Discord bot), with modifications for a Web API — see [Credits](#credits). ## What's different from the Discord bot version - No Discord message / button interaction for generating quotes — quotes are requested via `POST /api/quote` with an API key. @@ -570,8 +570,8 @@ Based on [OpenMiQ](https://github.com/otnc/OpenMiQ) (a Discord bot), with modifi ### Quick start ```bash -git clone https://github.com/otnc/OpenMiQ-API.git -cd OpenMiQ-API +git clone https://github.com/OpenMiQ/api.git +cd api pnpm install cp .env.example .env # fill in the values, see Configuration below pnpm run db:migrate # applies the SQLite schema @@ -597,8 +597,8 @@ otoneko. https://github.com/otnc (本プロジェクトの実装者: ${使用者名 or GitHubハンドルをここに記載}) ## Credits -- **OpenMiQ** — https://github.com/otnc/OpenMiQ — this API is based on OpenMiQ (a Discord bot) by **otoneko.**, with modifications to expose it as a Web API. -- **makeitaquote** — https://github.com/otnc/makeitaquote — the library this API renders images with. +- **OpenMiQ** — https://github.com/OpenMiQ/discord-bot — this API is based on OpenMiQ (a Discord bot) by **otoneko.**, with modifications to expose it as a Web API. +- **makeitaquote** — https://github.com/OpenMiQ/makeitaquote — the library this API renders images with. - Make it a Quote (Twitter) — https://twitter.com/MakeItAQuote - Make it a Quote (Discord/Misskey/Bluesky) — https://miq.moe/ - Icon/Logo: used with permission of their original author (also the author of OpenMiQ) — see [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md#4-brand-assets-githubassets). @@ -607,7 +607,7 @@ otoneko. https://github.com/otnc This project is licensed under the [GNU Affero General Public License v3.0 or later](./LICENSE), carrying forward the [additional terms](./ADDITIONAL_TERMS.md) OpenMiQ itself is licensed under (AGPL-3.0 Section 7) — preserved here, unmodified, since this API is a modified version of that software. - **SPDX:** `AGPL-3.0-or-later` (with additional terms under AGPL-3.0 Section 7) -- If you distribute or run a modified version of _this_ API, the same additional terms require you to make your modified source available under AGPL-3.0 and to display attribution to OpenMiQ (original repository URL: https://github.com/otnc/OpenMiQ) as described in [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md). +- If you distribute or run a modified version of _this_ API, the same additional terms require you to make your modified source available under AGPL-3.0 and to display attribution to OpenMiQ (original repository URL: https://github.com/OpenMiQ/discord-bot) as described in [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md). ## Configuration (§11の環境変数テーブルをここに転記。`ICON_PATH`/`LOGO_PATH` は省略すると`GET /api/branding/icon`/`logo`が404になる(本家アセットへの自動フォールバックは無し、§0.1)。`.github/assets/icon.png`/`logo.png`を使いたい場合はこの変数にそのパスを明示的に設定する。別ブランドとして名乗る場合は自分自身の画像に差し替えること — `ADDITIONAL_TERMS.md` §4 により OpenMiQ本家のアイコン・ロゴに手を加えて別ブランドの独自資産として転用することはできない) @@ -835,8 +835,8 @@ const image = await new OpenMiQ({ 同じ著者(otoneko.)が公開している姉妹パッケージ2つの実装を確認し、設計・コーディング規約をそのまま踏襲する: -- **[`@makeitaquote/voids`](https://github.com/otnc/makeitaquote-voids)**(Voids APIのラッパー) -- **[`@makeitaquote/miqx`](https://github.com/otnc/makeitaquote-miqx)**(MiqX APIのラッパー) +- **[`@makeitaquote/voids`](https://github.com/OpenMiQ/makeitaquote-voids)**(Voids APIのラッパー) +- **[`@makeitaquote/miqx`](https://github.com/OpenMiQ/makeitaquote-miqx)**(MiqX APIのラッパー) 両パッケージから読み取れる共通規約: diff --git a/package.json b/package.json index 4a6f9b4..40569ca 100644 --- a/package.json +++ b/package.json @@ -5,16 +5,16 @@ "description": "Self-hosted Web API for OpenMiQ's quote image generation, based on OpenMiQ (a Discord bot)", "repository": { "type": "git", - "url": "git+https://github.com/otnc/OpenMiQ-API.git" + "url": "git+https://github.com/OpenMiQ/api.git" }, "author": "otoneko. (https://github.com/otnc)", "license": "AGPL-3.0-or-later", "type": "module", "packageManager": "pnpm@11.25.0", "bugs": { - "url": "https://github.com/otnc/OpenMiQ-API/issues" + "url": "https://github.com/OpenMiQ/api/issues" }, - "homepage": "https://github.com/otnc/OpenMiQ-API#readme", + "homepage": "https://github.com/OpenMiQ/api#readme", "engines": { "node": ">=24" }, diff --git a/packages/openmiq/CONTRIBUTING.md b/packages/openmiq/CONTRIBUTING.md index 951fc71..076cd9a 100644 --- a/packages/openmiq/CONTRIBUTING.md +++ b/packages/openmiq/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -This package lives inside the [OpenMiQ-API](https://github.com/otnc/OpenMiQ-API) monorepo, under `packages/openmiq`, but is linted, tested and published independently of the rest of it. +This package lives inside the [OpenMiQ-API](https://github.com/OpenMiQ/api) monorepo, under `packages/openmiq`, but is linted, tested and published independently of the rest of it. ```bash cd packages/openmiq @@ -12,7 +12,7 @@ pnpm run build # tsdown — emits dist/index.{mjs,cjs} + .d.mts/.d.cts ``` - Lint/format is [Biome](https://biomejs.dev/), not the ESLint/Prettier setup the rest of the monorepo uses — `pnpm run check`/`pnpm run ci` here, not the root `pnpm run lint`. -- Coding style follows [`@makeitaquote/voids`](https://github.com/otnc/makeitaquote-voids) and [`@makeitaquote/miqx`](https://github.com/otnc/makeitaquote-miqx): a single Fluent-builder class, per-field `normalize*()` validators shared between setters and `setFromObject()`, `payload.ts` isolating the actual request/response wire format from `client.ts`. Unlike `miqx`'s `v1.ts`, this file isn't named after an API version — OpenMiQ-API itself has no version scheme. +- Coding style follows [`@makeitaquote/voids`](https://github.com/OpenMiQ/makeitaquote-voids) and [`@makeitaquote/miqx`](https://github.com/OpenMiQ/makeitaquote-miqx): a single Fluent-builder class, per-field `normalize*()` validators shared between setters and `setFromObject()`, `payload.ts` isolating the actual request/response wire format from `client.ts`. Unlike `miqx`'s `v1.ts`, this file isn't named after an API version — OpenMiQ-API itself has no version scheme. - `baseUrl` has no default and is required on every `OpenMiQ` instance — OpenMiQ-API is meant to be self-hosted, so (unlike `voids`/`miqx`, which each wrap one specific third-party API) there's no single instance this package could default to. - Every export from `@makeitaquote/utils` this package can reuse (HTTP client, error base classes, validation helpers, Discord/Misskey/Twitter text handling) should be reused rather than reimplemented — see its subpath exports (`/http`, `/errors`, `/validation`, `/discord`, `/mfm`, `/twitter`, `/markdown`). - `.github/workflows/ci.yml` and `release.yml` live at the **repo root** (GitHub Actions only reads `.github/workflows/` there, not in subdirectories), scoped to `packages/openmiq/**` via `paths` filters. diff --git a/packages/openmiq/README.md b/packages/openmiq/README.md index 52ac34d..0f8939f 100644 --- a/packages/openmiq/README.md +++ b/packages/openmiq/README.md @@ -1,6 +1,6 @@ # @makeitaquote/openmiq -Generate "Make it a Quote" images through the [OpenMiQ-API](https://github.com/otnc/OpenMiQ-API). +Generate "Make it a Quote" images through the [OpenMiQ-API](https://github.com/OpenMiQ/api). [](https://www.npmjs.com/package/@makeitaquote/openmiq) [](LICENSE) [](https://www.npmjs.com/package/@makeitaquote/openmiq) @@ -20,7 +20,7 @@ const image = await new OpenMiQ({ .toBuffer(); ``` -Both `apiKey` and `baseUrl` are required. OpenMiQ-API is meant to be self-hosted — there's no single official instance this package could default to — so `baseUrl` always has to point at the instance you're actually using, and an API key is issued from that instance's own Web Console (see the [main repo's README](https://github.com/otnc/OpenMiQ-API#readme) for how to get one, or to self-host your own instance). +Both `apiKey` and `baseUrl` are required. OpenMiQ-API is meant to be self-hosted — there's no single official instance this package could default to — so `baseUrl` always has to point at the instance you're actually using, and an API key is issued from that instance's own Web Console (see the [main repo's README](https://github.com/OpenMiQ/api#readme) for how to get one, or to self-host your own instance). ## Install @@ -91,4 +91,4 @@ otoneko. https://github.com/otnc ## License -MIT — see [LICENSE](./LICENSE). This is a thin HTTP client and contains no code from OpenMiQ itself; whatever OpenMiQ-API instance you point `baseUrl` at is a separate deployment, licensed under AGPL-3.0-or-later with additional terms (see the [main repo](https://github.com/otnc/OpenMiQ-API)). +MIT — see [LICENSE](./LICENSE). This is a thin HTTP client and contains no code from OpenMiQ itself; whatever OpenMiQ-API instance you point `baseUrl` at is a separate deployment, licensed under AGPL-3.0-or-later with additional terms (see the [main repo](https://github.com/OpenMiQ/api)). diff --git a/packages/openmiq/package.json b/packages/openmiq/package.json index f1823e6..26d69e1 100644 --- a/packages/openmiq/package.json +++ b/packages/openmiq/package.json @@ -17,13 +17,13 @@ "api", "openmiq" ], - "homepage": "https://github.com/otnc/OpenMiQ-API/tree/main/packages/openmiq#readme", + "homepage": "https://github.com/OpenMiQ/api/tree/main/packages/openmiq#readme", "bugs": { - "url": "https://github.com/otnc/OpenMiQ-API/issues" + "url": "https://github.com/OpenMiQ/api/issues" }, "repository": { "type": "git", - "url": "git+https://github.com/otnc/OpenMiQ-API.git", + "url": "git+https://github.com/OpenMiQ/api.git", "directory": "packages/openmiq" }, "license": "MIT",